@OnEnabled public void onEnabled(final ConfigurationContext context) throws InitializationException { final String config = context.getProperty(CONFIGURATION_FILE).evaluateAttributeExpressions().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); } }
/** * Convenience method for creating a file-based parameters object * initialized with the given file. * * @param file the file to be loaded * @return the initialized parameters object */ private FileBasedBuilderParameters fileParams(final File file) { return fileParams().setFile(file); }
.setFile(new File(this.configDefinition)) .setListDelimiterHandler(listDelimiterHandler));
/** * method used to get credentials from configuration xml */ public static String getValue(File file, String key) { if (!file.exists() || file.isDirectory()) { throw new ConfigurationRuntimeException("Cannot find a file with credentials"); } try { Parameters params = new Parameters(); FileBasedConfigurationBuilder<XMLConfiguration> builder = new FileBasedConfigurationBuilder<>(XMLConfiguration.class).configure(params.fileBased().setFile(file)); org.apache.commons.configuration2.Configuration config = builder.getConfiguration(); return config.getString(key); } catch (ConfigurationException e) { throw new ConfigurationRuntimeException(e); } }