private static void reloadPluginsAndConfiguration() { List<ConfigurationSource> configurationSources = new ArrayList<ConfigurationSource>(); for (StagemonitorConfigurationSourceInitializer initializer : ServiceLoader.load(StagemonitorConfigurationSourceInitializer.class, Stagemonitor.class.getClassLoader())) { initializer.modifyConfigurationSources(new StagemonitorConfigurationSourceInitializer.ModifyArguments(configurationSources)); } configurationSources.remove(null); plugins = ServiceLoader.load(StagemonitorPlugin.class, Stagemonitor.class.getClassLoader()); configuration = ConfigurationRegistry.builder() .optionProviders(plugins) .configSources(configurationSources) .build(); try { for (StagemonitorConfigurationSourceInitializer initializer : ServiceLoader.load(StagemonitorConfigurationSourceInitializer.class, Stagemonitor.class.getClassLoader())) { initializer.onConfigurationInitialized(new StagemonitorConfigurationSourceInitializer.ConfigInitializedArguments(configuration)); } } catch (Exception e) { logger.error(e.getMessage(), e); logger.error("Stagemonitor will be deactivated!"); disabled = true; } } }
@Override public void modifyConfigurationSources(ModifyArguments modifyArguments) { if (argsConfigurationSource != null) { modifyArguments.addConfigurationSourceAsFirst(argsConfigurationSource); } }
@Override public void modifyConfigurationSources(ModifyArguments modifyArguments) { modifyArguments.addConfigurationSourceAsLast(new SimpleSource()); modifyArguments.addConfigurationSourceAsLast(new SystemPropertyConfigurationSource()); final String stagemonitorPropertyOverridesLocation = System.getProperty("stagemonitor.property.overrides"); if (stagemonitorPropertyOverridesLocation != null) { logger.info("try loading of default property overrides: '" + stagemonitorPropertyOverridesLocation + "'"); modifyArguments.addConfigurationSourceAsLast(new PropertyFileConfigurationSource(stagemonitorPropertyOverridesLocation)); } if (PropertyFileConfigurationSource.isPresent("stagemonitor.properties")) { modifyArguments.addConfigurationSourceAsLast(new PropertyFileConfigurationSource("stagemonitor.properties")); } modifyArguments.addConfigurationSourceAsLast(new EnvironmentVariableConfigurationSource()); }
@Override public void modifyConfigurationSources(ModifyArguments modifyArguments) { if (argsConfigurationSource != null) { modifyArguments.addConfigurationSourceAsFirst(argsConfigurationSource); } }