private ConfigurationRegistry getDefaultConfigurationRegistry(List<ConfigurationSource> configSources) { try { final ConfigurationRegistry configurationRegistry = ConfigurationRegistry.builder() .configSources(configSources) .optionProviders(ServiceLoader.load(ConfigurationOptionProvider.class, ElasticApmTracer.class.getClassLoader())) .failOnMissingRequiredValues(true) .build(); configurationRegistry.scheduleReloadAtRate(30, TimeUnit.SECONDS); return configurationRegistry; } catch (IllegalStateException e) { logger.warn(e.getMessage()); return ConfigurationRegistry.builder() .addConfigSource(new SimpleSource("Noop Configuration") .add(CoreConfiguration.ACTIVE, "false") .add(CoreConfiguration.INSTRUMENT, "false") .add(CoreConfiguration.SERVICE_NAME, "none") .add(CoreConfiguration.SAMPLE_RATE, "0")) .optionProviders(ServiceLoader.load(ConfigurationOptionProvider.class, ElasticApmTracer.class.getClassLoader())) .build(); } }
@Test(expected = IllegalStateException.class) public void testFailOnRequiredValueMissing() throws Exception { final ConfigurationOption<String> configurationOption = ConfigurationOption.stringOption().key("foo").buildRequired(); final ConfigurationOptionProvider optionProvider = TestConfigurationOptionProvider.of(configurationOption); ConfigurationRegistry.builder().addOptionProvider(optionProvider).failOnMissingRequiredValues(true).build(); }