public interface Configurable
The configuration update process includes the following steps: a proposal
of a new configuration; verification of its correctness; approval of the proposal;
and application of the new configuration. The protocol of the proposal and approval steps
is determined by the installed supervisor service. The verification and application
of the parameters are implemented by the service with
verifyConfiguration(Fork, Configuration)
and applyConfiguration(Fork, Configuration) methods.
Services may use the same configuration parameters as
in Service.initialize(Fork, Configuration), or different.
| Modifier and Type | Method and Description |
|---|---|
void |
applyConfiguration(Fork fork,
Configuration configuration)
Applies the given configuration to this service.
|
void |
verifyConfiguration(Fork fork,
Configuration configuration)
Verifies the correctness of the proposed configuration.
|
void verifyConfiguration(Fork fork, Configuration configuration)
This method is called when a new configuration is proposed. If the proposed configuration is correct, this method shall return with no changes to the service data. If it is not valid, this method shall throw an exception.
fork - a view representing the current database stateconfiguration - a proposed configurationIllegalArgumentException - if the proposed configuration is not validvoid applyConfiguration(Fork fork, Configuration configuration)
verifyConfiguration(Fork, Configuration).
The implementation shall make any changes to the service persistent state to apply the new configuration, because the supervisor does not store them for later retrieval.
fork - a fork to which to apply changesconfiguration - a new valid configurationCopyright © 2019 Exonum. All rights reserved.