private void add(final ConfigurationOption<?> configurationOption) { configurationOption.setConfiguration(this); configurationOption.setConfigurationSources(configurationSources); final String key = configurationOption.getKey(); addConfigurationOptionByKey(configurationOption, key); for (String alternateKey : configurationOption.getAliasKeys()) { addConfigurationOptionByKey(configurationOption, alternateKey); } addConfigurationOptionByCategory(configurationOption.getConfigurationCategory(), configurationOption); }
private static String prepareOptionValueForLog(ConfigurationOption<?> option) { if (option.isSensitive()) { return "XXXX"; } else { return option.getValueAsSafeString(); } } }
@Test public void testToJsonDoesNotThrowException() throws Exception { final ConfigurationOptionProvider optionProvider = TestConfigurationOptionProvider.of( ConfigurationOption.stringOption().key("foo").description("Foo").configurationCategory("Foos").build()); final ConfigurationRegistry configuration = ConfigurationRegistry.builder().addOptionProvider(optionProvider).build(); new ObjectMapper().writeValueAsString(configuration.getConfigurationOptionsByCategory()); }
private ConfigurationRegistry createConfiguration(List<ConfigurationOption<?>> configurationOptions, ConfigurationSource configurationSource) { return ConfigurationRegistry.builder() .addOptionProvider(new ConfigurationOptionProvider() { public List<ConfigurationOption<?>> getConfigurationOptions() { return configurationOptions; } }) .addConfigSource(configurationSource) .build(); }
@Test(expected = IllegalArgumentException.class) public void testDuplicateLabel() throws Exception { final ConfigurationOptionProvider optionProvider = TestConfigurationOptionProvider.of( ConfigurationOption.stringOption().key("foo").description("Foo").build(), ConfigurationOption.stringOption().key("foo").label("Bar").build()); ConfigurationRegistry.builder().addOptionProvider(optionProvider).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(); }
/** * Adds a configuration source as first priority to the configuration. * <p> * Don't forget to call {@link #reloadAllConfigurationOptions()} or {@link #reloadDynamicConfigurationOptions()} * after adding all configuration sources. * * @param configurationSource the configuration source to add */ public void addConfigurationSource(ConfigurationSource configurationSource) { addConfigurationSource(configurationSource, true); }
private void setToDefault() { final String msg = "Missing required value for configuration option " + key; if (isInitialized() && required && defaultValue == null) { handleMissingRequiredValue(msg); } setValue(defaultValue, defaultValueAsString, "Default Value"); }
public ConfigurationOptionBuilder<T> validOptions(List<T> options) { for (T option : options) { addValidOption(option); } return this; }
/** * Constructs a {@link ConfigurationOptionBuilder} whose value is of type {@link Boolean} * * @return a {@link ConfigurationOptionBuilder} whose value is of type {@link Boolean} */ public static ConfigurationOptionBuilder<Boolean> booleanOption() { return new ConfigurationOptionBuilder<Boolean>(BooleanValueConverter.INSTANCE, Boolean.class); }
private void setValue(T value, String valueAsString, String nameOfCurrentConfigurationSource) { for (Validator<T> validator : validators) { validator.assertValid(value); } this.value = value; this.valueAsString = valueAsString; this.nameOfCurrentConfigurationSource = nameOfCurrentConfigurationSource; }
private void registerConfigurationOptions(Iterable<? extends ConfigurationOptionProvider> optionProviders) { for (ConfigurationOptionProvider configurationOptionProvider : optionProviders) { registerOptionProvider(configurationOptionProvider); } }
/** * Reloads all {@link ConfigurationOption}s where {@link ConfigurationOption#dynamic} is true */ public void reloadDynamicConfigurationOptions() { reload(false); }
synchronized void reload(boolean reloadNonDynamicValues) { if (dynamic || reloadNonDynamicValues) { loadValue(); } }
private RequestMonitor(ConfigurationRegistry configuration, Metric2Registry registry, TracingPlugin tracingPlugin) { this.metricRegistry = registry; this.corePlugin = configuration.getConfig(CorePlugin.class); this.tracingPlugin = tracingPlugin; }
public ConfigurationOptionBuilder<T> addValidOptions(T... options) { for (T option : options) { addValidOption(option); } return this; }
/** * Constructs a {@link ConfigurationOptionBuilder} whose value is of type {@link String} * * @return a {@link ConfigurationOptionBuilder} whose value is of type {@link String} */ public static ConfigurationOptionBuilder<String> stringOption() { return new ConfigurationOptionBuilder<String>(StringValueConverter.INSTANCE, String.class); }
/** * Constructs a {@link ConfigurationOptionBuilder} whose value is of type {@link Double} * * @return a {@link ConfigurationOptionBuilder} whose value is of type {@link Double} */ public static ConfigurationOptionBuilder<Double> doubleOption() { return new ConfigurationOptionBuilder<Double>(DoubleValueConverter.INSTANCE, Double.class); }
/** * Constructs a {@link ConfigurationOptionBuilder} whose value is of type {@link Integer} * * @return a {@link ConfigurationOptionBuilder} whose value is of type {@link Integer} */ public static ConfigurationOptionBuilder<Integer> integerOption() { return new ConfigurationOptionBuilder<Integer>(IntegerValueConverter.INSTANCE, Integer.class); }