public static void main(String[] args) { new SampleApplication(); ConcurrentCompositeConfiguration myConfiguration = (ConcurrentCompositeConfiguration) DynamicPropertyFactory.getInstance().getBackingConfigurationSource(); ConcurrentMapConfiguration subConfig = new ConcurrentMapConfiguration(); subConfig.setProperty("com.netflix.config.samples.SampleApp.SampleBean.name", "A Coffee Bean from Cuba"); myConfiguration.setProperty("com.netflix.config.samples.sampleapp.prop1", "value1"); myConfiguration.addConfiguration(subConfig); System.out.println("Started SampleApplication. Launch JConsole to inspect and update properties."); System.out.println("To see how callback work, update property com.netflix.config.samples.SampleApp.SampleBean.sensitiveBeanData from BaseConfigBean in JConsole"); SampleBean sampleBean = new SampleBean(); // this should show the bean taking properties from two different sources // property "com.netflix.config.samples.SampleApp.SampleBean.numSeeds" is from sampleapp.properites // property "com.netflix.config.samples.SampleApp.SampleBean.name" is from subConfig added above System.out.println("SampleBean:" + sampleBean); System.out.println(sampleBean.getName()); } }
public static void main(String[] args) { new SampleApplication(); ConcurrentCompositeConfiguration myConfiguration = (ConcurrentCompositeConfiguration) DynamicPropertyFactory.getInstance().getBackingConfigurationSource(); ConcurrentMapConfiguration subConfig = new ConcurrentMapConfiguration(); subConfig.setProperty("com.netflix.config.samples.SampleApp.SampleBean.name", "A Coffee Bean from Cuba"); myConfiguration.setProperty("com.netflix.config.samples.sampleapp.prop1", "value1"); myConfiguration.addConfiguration(subConfig); System.out.println("Started SampleApplication. Launch JConsole to inspect and update properties."); System.out.println("To see how callback work, update property com.netflix.config.samples.SampleApp.SampleBean.sensitiveBeanData from BaseConfigBean in JConsole"); SampleBean sampleBean = new SampleBean(); // this should show the bean taking properties from two different sources // property "com.netflix.config.samples.SampleApp.SampleBean.numSeeds" is from sampleapp.properites // property "com.netflix.config.samples.SampleApp.SampleBean.name" is from subConfig added above System.out.println("SampleBean:" + sampleBean); System.out.println(sampleBean.getName()); } }
/** * Build the Configuration * * @return the configuration */ public AbstractConfiguration build() { initApplicationFileConfiguration(); initAppVersion(); initApplicationConfiguration(); initModuleConfiguration(); ConcurrentCompositeConfiguration finalConfiguration = new ConcurrentCompositeConfiguration(); if (addSystemConfigs) { finalConfiguration.addConfiguration(new ConcurrentMapConfiguration(new SystemConfiguration())); } finalConfiguration.addProperty(BootstrapConfigKeys.APP_VERSION_KEY.getPropertyName(), appVersion); addServerInstanceProperties(finalConfiguration); if (applicationConfiguration == null) { LOGGER.warn("\n\n ****** Default configuration being used ******\n client application \"" + appName + "\" is being configured with modules defaults. Defaults should only be used in development environments.\n In non-developement environments, a configuration provider should be used to configure the client application and it should define ALL required configuration properties.\n"); finalConfiguration.addConfiguration(applicationFileConfiguration); finalConfiguration.addConfiguration(moduleDefaultConfiguration); } else { finalConfiguration.addConfiguration(applicationConfiguration); finalConfiguration.addConfiguration(applicationFileConfiguration); } finalConfiguration.setProperty(BootstrapConfigKeys.APP_VERSION_KEY.getPropertyName(), appVersion); configureArchaius(finalConfiguration); logConfiguration(finalConfiguration); return finalConfiguration; }