Java Code Examples for com.netflix.config.ConcurrentCompositeConfiguration#addConfiguration()

The following examples show how to use com.netflix.config.ConcurrentCompositeConfiguration#addConfiguration() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ConfigUtil.java    From servicecomb-java-chassis with Apache License 2.0 6 votes vote down vote up
public static ConcurrentCompositeConfiguration createLocalConfig(List<ConfigModel> configModelList) {
  ConcurrentCompositeConfiguration config = new ConcurrentCompositeConfiguration();

  duplicateCseConfigToServicecomb(config,
      new ConcurrentMapConfiguration(new SystemConfiguration()),
      "configFromSystem");
  duplicateCseConfigToServicecomb(config,
      convertEnvVariable(new ConcurrentMapConfiguration(new EnvironmentConfiguration())),
      "configFromEnvironment");
  // If there is extra configurations, add it into config.
  EXTRA_CONFIG_MAP.entrySet()
      .stream()
      .filter(mapEntry -> !mapEntry.getValue().isEmpty())
      .forEachOrdered(configMapEntry -> duplicateCseConfigToServicecomb(config,
          new ConcurrentMapConfiguration(configMapEntry.getValue()),
          configMapEntry.getKey()));
  // we have already copy the cse config to the serviceComb config when we load the config from local yaml files
  // hence, we do not need duplicate copy it.
  config.addConfiguration(new DynamicConfiguration(
          new MicroserviceConfigurationSource(configModelList), new NeverStartPollingScheduler()),
      "configFromYamlFile");
  duplicateCseConfigToServicecombAtFront(config,
      new ConcurrentMapConfiguration(ConfigMapping.getConvertedMap(config)),
      "configFromMapping");
  return config;
}
 
Example 2
Source File: TestYAMLConfigurationSource.java    From servicecomb-java-chassis with Apache License 2.0 6 votes vote down vote up
@Test
public void testFullOperation() {
  // configuration from system properties
  ConcurrentMapConfiguration configFromSystemProperties =
      new ConcurrentMapConfiguration(new SystemConfiguration());
  // configuration from yaml file
  DynamicConfiguration configFromYamlFile =
      new DynamicConfiguration(yamlConfigSource(), new NeverStartPollingScheduler());
  // create a hierarchy of configuration that makes
  // 1) dynamic configuration source override system properties
  ConcurrentCompositeConfiguration finalConfig = new ConcurrentCompositeConfiguration();
  finalConfig.addConfiguration(configFromYamlFile, "yamlConfig");
  finalConfig.addConfiguration(configFromSystemProperties, "systemEnvConfig");
  Assert.assertEquals(0.5, finalConfig.getDouble("trace.handler.sampler.percent"), 0.5);

  Object o = finalConfig.getProperty("zq");
  @SuppressWarnings("unchecked")
  List<Map<String, Object>> listO = (List<Map<String, Object>>) o;
  Assert.assertEquals(3, listO.size());
}
 
Example 3
Source File: ConfigUtil.java    From servicecomb-java-chassis with Apache License 2.0 5 votes vote down vote up
private static void duplicateCseConfigToServicecomb(ConcurrentCompositeConfiguration compositeConfiguration,
    AbstractConfiguration source,
    String sourceName) {
  duplicateCseConfigToServicecomb(source);

  compositeConfiguration.addConfiguration(source, sourceName);
}
 
Example 4
Source File: TestPriorityProperty.java    From servicecomb-java-chassis with Apache License 2.0 5 votes vote down vote up
@Test
public void globalRefresh() {
  PriorityProperty<String> property = priorityPropertyManager.createPriorityProperty(String.class, null, null, keys);

  Assert.assertNull(property.getValue());

  ConcurrentCompositeConfiguration config = (ConcurrentCompositeConfiguration) DynamicPropertyFactory
      .getBackingConfigurationSource();
  config.addConfiguration(new MapConfiguration(Collections.singletonMap(high, "high-value")));

  Assert.assertEquals("high-value", property.getValue());
}
 
Example 5
Source File: TestMicroServiceInstance.java    From servicecomb-java-chassis with Apache License 2.0 5 votes vote down vote up
@Test
public void testCreateMicroserviceInstanceFromFile() {
  AbstractConfiguration config = ConfigUtil.createDynamicConfig();
  ConcurrentCompositeConfiguration configuration = new ConcurrentCompositeConfiguration();
  configuration.addConfiguration(config);
  ConfigurationManager.install(configuration);
  MicroserviceInstance instance = MicroserviceInstance.createFromDefinition(config);
  Assert.assertEquals(instance.getDataCenterInfo().getName(), "myDC");
  Assert.assertEquals(instance.getDataCenterInfo().getRegion(), "my-Region");
  Assert.assertEquals(instance.getDataCenterInfo().getAvailableZone(), "my-Zone");
}
 
Example 6
Source File: TestRegistry.java    From servicecomb-java-chassis with Apache License 2.0 5 votes vote down vote up
@BeforeClass
public static void initSetup() {
  AbstractConfiguration dynamicConfig = ConfigUtil.createDynamicConfig();
  ConcurrentCompositeConfiguration configuration = new ConcurrentCompositeConfiguration();
  configuration.addConfiguration(dynamicConfig);
  configuration.addConfiguration(inMemoryConfig);

  ConfigurationManager.install(configuration);
}
 
Example 7
Source File: ConsulController.java    From james with Apache License 2.0 5 votes vote down vote up
private void setupConsulWatcher(ConsulControllerConfiguration configuration,
                                InformationPointService informationPointService) {
    ConsulClient client = new ConsulClient(configuration.getHost(), configuration.getPort());
    ConsulWatchedConfigurationSource configurationSource =
            new ConsulWatchedConfigurationSource(configuration.getFolderPath(), client);
    DynamicWatchedConfiguration dynamicConfig = new DynamicWatchedConfiguration(configurationSource);

    dynamicConfig.addConfigurationListener(event -> {
        if (!event.isBeforeUpdate()) {
            switch (event.getType()) {
                case AbstractConfiguration.EVENT_ADD_PROPERTY:
                    onInformationPointAdded(event, informationPointService);
                    break;
                case AbstractConfiguration.EVENT_SET_PROPERTY:
                    onInformationPointModified(event, informationPointService);
                    break;
                case AbstractConfiguration.EVENT_CLEAR_PROPERTY:
                    onInformationPointRemoved(event, informationPointService);
                    break;
                case AbstractConfiguration.EVENT_CLEAR:
                    onInformationPointsCleared(informationPointService);
                    break;
                default:
                    LOG.debug(() -> "Unsupported event type: " + event.getType());
            }
        }
    });
    configurationSource.startAsync();

    ConcurrentCompositeConfiguration compositeConfig = new ConcurrentCompositeConfiguration();
    compositeConfig.addConfiguration(dynamicConfig, "consul-dynamic");
    ConfigurationManager.install(compositeConfig);
}
 
Example 8
Source File: ZookeeperConfigurationProvider.java    From chassis with Apache License 2.0 5 votes vote down vote up
/**
 * @see ConfigurationProvider#getApplicationConfiguration(String, String, String, com.kixeye.chassis.bootstrap.aws.ServerInstanceContext)
 */
@Override
public AbstractConfiguration getApplicationConfiguration(String environment, String applicationName, String applicationVersion, ServerInstanceContext serverInstanceContext) {
    String instanceId = serverInstanceContext == null ? "local" : serverInstanceContext.getInstanceId();

    String configRoot = getPath(environment, applicationName, applicationVersion);
    String primaryConfigPath = configRoot += "/config";
    String instanceConfigNode = instanceId + "-config";

    checkPath(primaryConfigPath);

    ZooKeeperConfigurationSource source = new ZooKeeperConfigurationSource(curatorFramework, primaryConfigPath);

    try {
        source.start();
    } catch (Exception e) {
        source.close();
        BootstrapException.zookeeperInitializationFailed(zookeeperConnectionString, primaryConfigPath, e);
    }

    logger.debug("Initializing zookeeper configuration from host " + zookeeperConnectionString + " at path " + primaryConfigPath);

    ConcurrentCompositeConfiguration configuration = new ConcurrentCompositeConfiguration();
    configuration.addConfiguration(getServerInstanceSpecificApplicationConfiguration(configRoot, instanceConfigNode));
    configuration.addConfiguration(new DynamicWatchedConfiguration(source));

    return configuration;
}
 
Example 9
Source File: CuratorFrameworkBuilder.java    From chassis with Apache License 2.0 5 votes vote down vote up
private ConcurrentCompositeConfiguration buildConfiguration() {
    ConcurrentCompositeConfiguration configuration = new ConcurrentCompositeConfiguration();
    configuration.addConfiguration(new ConcurrentMapConfiguration(new SystemConfiguration()));
    configuration.addConfiguration(this.configuration);
    configuration.addConfiguration(defaults);
    return configuration;
}
 
Example 10
Source File: ConfigurationBuilder.java    From chassis with Apache License 2.0 5 votes vote down vote up
/**
 * 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;
}
 
Example 11
Source File: SSLOptionTest.java    From servicecomb-java-chassis with Apache License 2.0 4 votes vote down vote up
@Test
public void testSSLOptionYaml() {
  // configuration from yaml files: default microservice.yaml
  DynamicConfiguration configFromYamlFile =
      new DynamicConfiguration(yamlConfigSource(), new FixedDelayPollingScheduler());
  // configuration from system properties
  ConcurrentMapConfiguration configFromSystemProperties =
      new ConcurrentMapConfiguration(new SystemConfiguration());

  // create a hierarchy of configuration that makes
  // 1) dynamic configuration source override system properties
  ConcurrentCompositeConfiguration finalConfig = new ConcurrentCompositeConfiguration();
  finalConfig.addConfiguration(configFromSystemProperties, "systemEnvConfig");
  finalConfig.addConfiguration(configFromYamlFile, "configFromYamlFile");
  ConfigurationManager.install(finalConfig);

  SSLOption option = SSLOption.buildFromYaml("server");

  String protocols = option.getProtocols();
  option.setProtocols(protocols);
  Assert.assertEquals("TLSv1.2,TLSv1.1,TLSv1,SSLv2Hello", protocols);

  String ciphers = option.getCiphers();
  option.setCiphers(ciphers);
  Assert.assertEquals(
      "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SH"
          +
          "A,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA",
      ciphers);

  boolean authPeer = option.isAuthPeer();
  option.setAuthPeer(authPeer);
  Assert.assertEquals(true, authPeer);

  boolean checkCNHost = option.isCheckCNHost();
  option.setCheckCNHost(checkCNHost);
  Assert.assertEquals(true, checkCNHost);

  boolean checkCNWhite = option.isCheckCNWhite();
  option.setCheckCNWhite(checkCNWhite);
  Assert.assertEquals(true, checkCNWhite);

  String checkCNWhiteFile = option.getCheckCNWhiteFile();
  option.setCheckCNWhiteFile(checkCNWhiteFile);
  Assert.assertEquals("white.list", checkCNWhiteFile);

  boolean allowRenegociate = option.isAllowRenegociate();
  option.setAllowRenegociate(allowRenegociate);
  Assert.assertEquals(false, allowRenegociate);

  String storePath = option.getStorePath();
  option.setStorePath(storePath);
  Assert.assertEquals("internal", storePath);

  String trustStore = option.getTrustStore();
  option.setTrustStore(trustStore);
  Assert.assertEquals("trust.jks", trustStore);

  String trustStoreType = option.getTrustStoreType();
  option.setTrustStoreType(trustStoreType);
  Assert.assertEquals("JKS", trustStoreType);

  String trustStoreValue = option.getTrustStoreValue();
  option.setTrustStoreValue(trustStoreValue);
  Assert.assertEquals("Changeme_123", trustStoreValue);

  String keyStore = option.getKeyStore();
  option.setKeyStore(keyStore);
  Assert.assertEquals("server.p12", keyStore);

  String keyStoreType = option.getKeyStoreType();
  option.setKeyStoreType(keyStoreType);
  Assert.assertEquals("PKCS12", keyStoreType);

  String keyStoreValue = option.getKeyStoreValue();
  option.setKeyStoreValue(keyStoreValue);
  Assert.assertEquals("Changeme_123", keyStoreValue);

  String crl = option.getCrl();
  option.setCrl(crl);
  Assert.assertEquals("revoke.crl", crl);

  option.setSslCustomClass("123");

  SSLCustom custom = SSLCustom.createSSLCustom(option.getSslCustomClass());
  Assert.assertArrayEquals(custom.decode("123".toCharArray()), "123".toCharArray());
}