Search in sources :

Example 1 with ReloadingFileBasedConfigurationBuilder

use of org.apache.commons.configuration2.builder.ReloadingFileBasedConfigurationBuilder in project nifi by apache.

the class CommonsConfigurationLookupService method onEnabled.

@OnEnabled
public void onEnabled(final ConfigurationContext context) throws InitializationException {
    final String config = context.getProperty(CONFIGURATION_FILE).getValue();
    final FileBasedBuilderParameters params = new Parameters().fileBased().setFile(new File(config));
    this.builder = new ReloadingFileBasedConfigurationBuilder<>(resultClass).configure(params);
    builder.addEventListener(ConfigurationBuilderEvent.CONFIGURATION_REQUEST, new EventListener<ConfigurationBuilderEvent>() {

        @Override
        public void onEvent(ConfigurationBuilderEvent event) {
            if (builder.getReloadingController().checkForReloading(null)) {
                getLogger().debug("Reloading " + config);
            }
        }
    });
    try {
        // Try getting configuration to see if there is any issue, for example wrong file format.
        // Then throw InitializationException to keep this service in 'Enabling' state.
        builder.getConfiguration();
    } catch (ConfigurationException e) {
        throw new InitializationException(e);
    }
}
Also used : Parameters(org.apache.commons.configuration2.builder.fluent.Parameters) FileBasedBuilderParameters(org.apache.commons.configuration2.builder.fluent.FileBasedBuilderParameters) ConfigurationException(org.apache.commons.configuration2.ex.ConfigurationException) FileBasedBuilderParameters(org.apache.commons.configuration2.builder.fluent.FileBasedBuilderParameters) ReloadingFileBasedConfigurationBuilder(org.apache.commons.configuration2.builder.ReloadingFileBasedConfigurationBuilder) InitializationException(org.apache.nifi.reporting.InitializationException) File(java.io.File) ConfigurationBuilderEvent(org.apache.commons.configuration2.builder.ConfigurationBuilderEvent) OnEnabled(org.apache.nifi.annotation.lifecycle.OnEnabled)

Aggregations

File (java.io.File)1 ConfigurationBuilderEvent (org.apache.commons.configuration2.builder.ConfigurationBuilderEvent)1 ReloadingFileBasedConfigurationBuilder (org.apache.commons.configuration2.builder.ReloadingFileBasedConfigurationBuilder)1 FileBasedBuilderParameters (org.apache.commons.configuration2.builder.fluent.FileBasedBuilderParameters)1 Parameters (org.apache.commons.configuration2.builder.fluent.Parameters)1 ConfigurationException (org.apache.commons.configuration2.ex.ConfigurationException)1 OnEnabled (org.apache.nifi.annotation.lifecycle.OnEnabled)1 InitializationException (org.apache.nifi.reporting.InitializationException)1