From 3f0202f72ceae00841d10b7eca05b6b90f5eb1b8 Mon Sep 17 00:00:00 2001 From: Vijay N Date: Sun, 6 Jul 2025 10:17:17 +0530 Subject: [PATCH 1/3] No AugmentedConfigurationObjectFactory. Added RuntimeConfigRegistry, used it in ConfigurationObjectFactory. --- .../config/ConfigurationObjectFactory.java | 39 +++++++++- .../skife/config/RuntimeConfigRegistry.java | 77 +++++++++++++++++++ 2 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 config-magic/src/main/java/org/skife/config/RuntimeConfigRegistry.java diff --git a/config-magic/src/main/java/org/skife/config/ConfigurationObjectFactory.java b/config-magic/src/main/java/org/skife/config/ConfigurationObjectFactory.java index 50b421ec..d72299b3 100755 --- a/config-magic/src/main/java/org/skife/config/ConfigurationObjectFactory.java +++ b/config-magic/src/main/java/org/skife/config/ConfigurationObjectFactory.java @@ -19,14 +19,17 @@ import java.lang.annotation.Annotation; import java.lang.reflect.InvocationHandler; +import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; +import java.util.concurrent.ConcurrentHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,6 +47,8 @@ public class ConfigurationObjectFactory { private static final Logger logger = LoggerFactory.getLogger(ConfigurationObjectFactory.class); + //private static final Map RUNTIME_CONFIGS = new ConcurrentHashMap<>(); + private final ConfigSource config; private final Bully bully; @@ -65,7 +70,12 @@ public T buildWithReplacements(final Class configClass, final Map T build(final Class configClass) { - return internalBuild(configClass, null); + final T t = internalBuild(configClass, null); + + logger.info("Calling collectConfigValues"); + collectConfigValues(configClass, t); + + return t; } private T internalBuild(final Class configClass, @Nullable final Map mappedReplacements) { @@ -112,6 +122,33 @@ private T internalBuild(final Class configClass, @Nullable final Map void collectConfigValues(final Class configClass, final T instance) { + //final String configSource = configClass.getSimpleName(); + + for (final Method method : configClass.getMethods()) { + final Config configAnnotation = method.getAnnotation(Config.class); + + if (configAnnotation != null && method.getParameterCount() == 0) { + try { + final Object value = method.invoke(instance); + final String[] keys = configAnnotation.value(); + Arrays.stream(keys) + .forEach(key -> RuntimeConfigRegistry.put(key, value == null ? "" : value.toString())); + + /*Arrays.stream(keys) + .forEach(key -> RuntimeConfigRegistry.putWithSource(configSource, key, value));*/ + } catch (final IllegalAccessException | InvocationTargetException e) { + logger.warn("Failed to resolve config method: {}", method.getName(), e); + } + } else if (configAnnotation != null) { + logger.debug("Skipping config method {} due to parameters", method.getName()); + } + } + + logger.info("RUNTIME_CONFIGS updated successfully"); + //RuntimeConfigRegistry.getAll().forEach((s, s2) -> System.out.println(s + ": " + s2)); + } + private Builder buildSimple(final Builder bbBuilder, final Method method, final Config annotation, diff --git a/config-magic/src/main/java/org/skife/config/RuntimeConfigRegistry.java b/config-magic/src/main/java/org/skife/config/RuntimeConfigRegistry.java new file mode 100644 index 00000000..65a546f7 --- /dev/null +++ b/config-magic/src/main/java/org/skife/config/RuntimeConfigRegistry.java @@ -0,0 +1,77 @@ +/* + * Copyright 2020-2025 Equinix, Inc + * Copyright 2014-2025 The Billing Project, LLC + * + * The Billing Project licenses this file to you under the Apache License, version 2.0 + * (the "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package org.skife.config; + +import java.util.Collections; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; + +/** + * Registry to capture and expose runtime configuration values. + */ +public class RuntimeConfigRegistry { + + private static final Map RUNTIME_CONFIGS = new ConcurrentHashMap<>(); + + private static final Map> RUNTIME_CONFIGS_BY_SOURCE = new ConcurrentHashMap<>(); + + public static void put(final String key, final Object value) { + RUNTIME_CONFIGS.put(key, value == null ? "" : value.toString()); + } + + public static void putWithSource(final String configSource, final String key, final Object value) { + RUNTIME_CONFIGS_BY_SOURCE + .computeIfAbsent(configSource, k -> new ConcurrentHashMap<>()) + .put(key, value == null ? "" : value.toString()); + } + + public static void putAllWithSource(final String configSource, final Map values) { + if (values == null || values.isEmpty()) { + return; + } + + RUNTIME_CONFIGS_BY_SOURCE + .computeIfAbsent(configSource, k -> new ConcurrentHashMap<>()) + .putAll(values.entrySet() + .stream() + .collect(Collectors.toMap(Map.Entry::getKey, + e -> e.getValue() == null ? "" : e.getValue().toString()))); + } + + public static String get(final String key) { + return RUNTIME_CONFIGS.getOrDefault(key, ""); + } + + public static Map getBySource(final String source) { + return Collections.unmodifiableMap(RUNTIME_CONFIGS_BY_SOURCE.getOrDefault(source, Map.of())); + } + + public static Map getAll() { + return Collections.unmodifiableMap(RUNTIME_CONFIGS); + } + + public static Map> getAllBySource() { + return Collections.unmodifiableMap(RUNTIME_CONFIGS_BY_SOURCE); + } + + public static void clear() { + RUNTIME_CONFIGS.clear(); + RUNTIME_CONFIGS_BY_SOURCE.clear(); + } +} From d6456c61527b6754e4149881dd9acdd28041e3c0 Mon Sep 17 00:00:00 2001 From: Vijay N Date: Mon, 7 Jul 2025 15:33:57 +0530 Subject: [PATCH 2/3] Replaced ConfigurationObjectFactory usage with AugmentedConfigurationObjectFactory. --- .idea/misc.xml | 2 + config-magic/pom.xml | 2 +- .../AugmentedConfigurationObjectFactory.java | 76 +++++++++++++++++++ .../org/skife/config/ConfigReplacements.java | 2 +- .../config/ConfigurationObjectFactory.java | 16 ++-- .../java/org/skife/config/TestArrays.java | 4 +- .../java/org/skife/config/TestBadConfig.java | 4 +- .../TestCaseInsensitiveEnumCoercible.java | 6 +- .../java/org/skife/config/TestClasses.java | 32 ++++---- .../java/org/skife/config/TestCoercion.java | 4 +- .../org/skife/config/TestCollections.java | 4 +- .../TestConfigurationObjectFactory.java | 22 +++--- .../org/skife/config/TestCustomCoercion.java | 4 +- .../java/org/skife/config/TestDataAmount.java | 4 +- .../org/skife/config/TestDefaultNull.java | 4 +- .../org/skife/config/TestDefaultsPresent.java | 4 +- .../java/org/skife/config/TestEmptyValue.java | 4 +- .../test/java/org/skife/config/TestEnums.java | 4 +- .../config/TestExposeMappedReplacements.java | 8 +- .../test/java/org/skife/config/TestFile.java | 4 +- .../org/skife/config/TestMultiConfig.java | 4 +- .../java/org/skife/config/TestNoFinal.java | 2 +- .../java/org/skife/config/TestTimeSpan.java | 4 +- .../config/TestVariousPropertyTypes.java | 4 +- .../jdbi/guice/TestDataSourceProvider.java | 4 +- metrics-api/pom.xml | 2 +- pom.xml | 2 +- .../killbill/bus/DefaultPersistentBus.java | 4 +- .../DefaultNotificationQueueService.java | 4 +- .../src/test/java/org/killbill/TestSetup.java | 6 +- .../bus/TestLoadDefaultPersistentBus.java | 4 +- .../skeleton/modules/ConfigModule.java | 4 +- 32 files changed, 166 insertions(+), 88 deletions(-) create mode 100644 config-magic/src/main/java/org/skife/config/AugmentedConfigurationObjectFactory.java diff --git a/.idea/misc.xml b/.idea/misc.xml index cc1e11c6..f9efc1d4 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,6 @@ + @@ -9,6 +10,7 @@ + \ No newline at end of file diff --git a/config-magic/pom.xml b/config-magic/pom.xml index e390893b..38c09805 100644 --- a/config-magic/pom.xml +++ b/config-magic/pom.xml @@ -66,7 +66,7 @@ maven-surefire-plugin - + diff --git a/config-magic/src/main/java/org/skife/config/AugmentedConfigurationObjectFactory.java b/config-magic/src/main/java/org/skife/config/AugmentedConfigurationObjectFactory.java new file mode 100644 index 00000000..f63b4c06 --- /dev/null +++ b/config-magic/src/main/java/org/skife/config/AugmentedConfigurationObjectFactory.java @@ -0,0 +1,76 @@ +/* + * Copyright 2020-2025 Equinix, Inc + * Copyright 2014-2025 The Billing Project, LLC + * + * The Billing Project licenses this file to you under the Apache License, version 2.0 + * (the "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package org.skife.config; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.Properties; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Augmented version of {@link ConfigurationObjectFactory} that collects resolved config properties + * at runtime and registers them in {@link RuntimeConfigRegistry}. + */ +public class AugmentedConfigurationObjectFactory extends ConfigurationObjectFactory { + + private static final Logger log = LoggerFactory.getLogger(AugmentedConfigurationObjectFactory.class); + + public AugmentedConfigurationObjectFactory(final Properties props) { + super(new SimplePropertyConfigSource(props)); + } + + public AugmentedConfigurationObjectFactory(final ConfigSource configSource) { + super(configSource); + } + + @Override + public T build(final Class configClass) { + final T instance = super.build(configClass); + + collectConfigValues(configClass, instance); + + return instance; + } + + private void collectConfigValues(final Class configClass, final T instance) { + final String configSource = configClass.getSimpleName(); + + for (final Method method : configClass.getMethods()) { + final Config configAnnotation = method.getAnnotation(Config.class); + + if (configAnnotation != null && method.getParameterCount() == 0) { + try { + final Object value = method.invoke(instance); + final String[] keys = configAnnotation.value(); + Arrays.stream(keys) + .forEach(key -> RuntimeConfigRegistry.put(key, value)); + + Arrays.stream(keys) + .forEach(key -> RuntimeConfigRegistry.putWithSource(configSource, key, value)); + } catch (final IllegalAccessException | InvocationTargetException e) { + log.warn("Failed to resolve config method: {}", method.getName(), e); + } + } else if (configAnnotation != null) { + log.debug("Skipping config method {} due to parameters", method.getName()); + } + } + } +} diff --git a/config-magic/src/main/java/org/skife/config/ConfigReplacements.java b/config-magic/src/main/java/org/skife/config/ConfigReplacements.java index e1bbbd53..fca721a8 100644 --- a/config-magic/src/main/java/org/skife/config/ConfigReplacements.java +++ b/config-magic/src/main/java/org/skife/config/ConfigReplacements.java @@ -24,7 +24,7 @@ /** * If a configuration bean is created with mapped replacement values via - * {@link ConfigurationObjectFactory#buildWithReplacements(Class, java.util.Map)}, + * {@link AugmentedConfigurationObjectFactory#buildWithReplacements(Class, java.util.Map)}, * this annotation designates a method which should present the provided Map. * The map may not be changed and is not necessarily the same instance as the original. * If a key is provided, the return is instead the value for that key. diff --git a/config-magic/src/main/java/org/skife/config/ConfigurationObjectFactory.java b/config-magic/src/main/java/org/skife/config/ConfigurationObjectFactory.java index d72299b3..abc31872 100755 --- a/config-magic/src/main/java/org/skife/config/ConfigurationObjectFactory.java +++ b/config-magic/src/main/java/org/skife/config/ConfigurationObjectFactory.java @@ -70,12 +70,12 @@ public T buildWithReplacements(final Class configClass, final Map T build(final Class configClass) { - final T t = internalBuild(configClass, null); + return internalBuild(configClass, null); + + /*logger.info("Calling collectConfigValues"); + collectConfigValues(configClass, t);*/ - logger.info("Calling collectConfigValues"); - collectConfigValues(configClass, t); - return t; } private T internalBuild(final Class configClass, @Nullable final Map mappedReplacements) { @@ -122,7 +122,7 @@ private T internalBuild(final Class configClass, @Nullable final Map void collectConfigValues(final Class configClass, final T instance) { + /*private void collectConfigValues(final Class configClass, final T instance) { //final String configSource = configClass.getSimpleName(); for (final Method method : configClass.getMethods()) { @@ -135,8 +135,8 @@ private void collectConfigValues(final Class configClass, final T instanc Arrays.stream(keys) .forEach(key -> RuntimeConfigRegistry.put(key, value == null ? "" : value.toString())); - /*Arrays.stream(keys) - .forEach(key -> RuntimeConfigRegistry.putWithSource(configSource, key, value));*/ + *//*Arrays.stream(keys) + .forEach(key -> RuntimeConfigRegistry.putWithSource(configSource, key, value));*//* } catch (final IllegalAccessException | InvocationTargetException e) { logger.warn("Failed to resolve config method: {}", method.getName(), e); } @@ -147,7 +147,7 @@ private void collectConfigValues(final Class configClass, final T instanc logger.info("RUNTIME_CONFIGS updated successfully"); //RuntimeConfigRegistry.getAll().forEach((s, s2) -> System.out.println(s + ": " + s2)); - } + }*/ private Builder buildSimple(final Builder bbBuilder, final Method method, diff --git a/config-magic/src/test/java/org/skife/config/TestArrays.java b/config-magic/src/test/java/org/skife/config/TestArrays.java index 74bfa7be..b8017055 100644 --- a/config-magic/src/test/java/org/skife/config/TestArrays.java +++ b/config-magic/src/test/java/org/skife/config/TestArrays.java @@ -28,11 +28,11 @@ @Category(ConfigMagicTests.class) public class TestArrays { - private ConfigurationObjectFactory cof; + private AugmentedConfigurationObjectFactory cof; @Before public void setUp() { - cof = new ConfigurationObjectFactory(new Properties()); + cof = new AugmentedConfigurationObjectFactory(new Properties()); } @After diff --git a/config-magic/src/test/java/org/skife/config/TestBadConfig.java b/config-magic/src/test/java/org/skife/config/TestBadConfig.java index 7ea3beeb..4923d2e9 100644 --- a/config-magic/src/test/java/org/skife/config/TestBadConfig.java +++ b/config-magic/src/test/java/org/skife/config/TestBadConfig.java @@ -27,11 +27,11 @@ @Category(ConfigMagicTests.class) public class TestBadConfig { - ConfigurationObjectFactory c = null; + AugmentedConfigurationObjectFactory c = null; @Before public void setUp() { - this.c = new ConfigurationObjectFactory(new Properties()); + this.c = new AugmentedConfigurationObjectFactory(new Properties()); } @After diff --git a/config-magic/src/test/java/org/skife/config/TestCaseInsensitiveEnumCoercible.java b/config-magic/src/test/java/org/skife/config/TestCaseInsensitiveEnumCoercible.java index f7448f11..040ac96f 100644 --- a/config-magic/src/test/java/org/skife/config/TestCaseInsensitiveEnumCoercible.java +++ b/config-magic/src/test/java/org/skife/config/TestCaseInsensitiveEnumCoercible.java @@ -29,7 +29,7 @@ public class TestCaseInsensitiveEnumCoercible { @Test public void testHappyPath() throws Exception { - final ConfigurationObjectFactory cof = new ConfigurationObjectFactory(Props.of("creamer", "half_and_half")); + final AugmentedConfigurationObjectFactory cof = new AugmentedConfigurationObjectFactory(Props.of("creamer", "half_and_half")); final Coffee coffee = cof.build(Coffee.class); assertThat(coffee.getCreamer(), equalTo(Creamer.HALF_AND_HALF)); @@ -37,7 +37,7 @@ public void testHappyPath() throws Exception { @Test(expected = IllegalStateException.class) public void testNoMatch() throws Exception { - final ConfigurationObjectFactory cof = new ConfigurationObjectFactory(Props.of("creamer", "goat_milk")); + final AugmentedConfigurationObjectFactory cof = new AugmentedConfigurationObjectFactory(Props.of("creamer", "goat_milk")); final Coffee coffee = cof.build(Coffee.class); fail("should have raised an illegal state exception"); @@ -45,7 +45,7 @@ public void testNoMatch() throws Exception { @Test(expected = IllegalArgumentException.class) public void testExactMatch() throws Exception { - final ConfigurationObjectFactory cof = new ConfigurationObjectFactory(Props.of("creamer", "whole_milk")); + final ConfigurationObjectFactory cof = new AugmentedConfigurationObjectFactory(Props.of("creamer", "whole_milk")); cof.addCoercible(new ExactMatchEnumCoercible()); final Coffee coffee = cof.build(Coffee.class); diff --git a/config-magic/src/test/java/org/skife/config/TestClasses.java b/config-magic/src/test/java/org/skife/config/TestClasses.java index 8406052b..c816584c 100644 --- a/config-magic/src/test/java/org/skife/config/TestClasses.java +++ b/config-magic/src/test/java/org/skife/config/TestClasses.java @@ -30,100 +30,100 @@ public class TestClasses { @Test public void testRawType() { - final WithRawType config = new ConfigurationObjectFactory(Props.of("theClazz", Object.class.getName())).build(WithRawType.class); + final WithRawType config = new AugmentedConfigurationObjectFactory(Props.of("theClazz", Object.class.getName())).build(WithRawType.class); Assert.assertEquals(config.getTheClazz(), Object.class); } @Test(expected = IllegalArgumentException.class) public void testRawTypeNotFound() { - new ConfigurationObjectFactory(Props.of("theClazz", "does.not.Exist")).build(WithRawType.class); + new AugmentedConfigurationObjectFactory(Props.of("theClazz", "does.not.Exist")).build(WithRawType.class); } @Test(expected = IllegalArgumentException.class) public void testRawTypeIllegal() { - new ConfigurationObjectFactory(Props.of("theClazz", "not a class")).build(WithRawType.class); + new AugmentedConfigurationObjectFactory(Props.of("theClazz", "not a class")).build(WithRawType.class); } @Test public void testRawTypeWithDefault() { - final WithRawTypeAndDefault config = new ConfigurationObjectFactory(new Properties()).build(WithRawTypeAndDefault.class); + final WithRawTypeAndDefault config = new AugmentedConfigurationObjectFactory(new Properties()).build(WithRawTypeAndDefault.class); Assert.assertEquals(config.getTheClazz(), Object.class); } @Test public void testRawTypeWithNullDefault() { - final WithRawType config = new ConfigurationObjectFactory(new Properties()).build(WithRawType.class); + final WithRawType config = new AugmentedConfigurationObjectFactory(new Properties()).build(WithRawType.class); Assert.assertNull(config.getTheClazz()); } @Test(expected = IllegalArgumentException.class) public void testRawTypeWithNotFoundDefault() { - new ConfigurationObjectFactory(new Properties()).build(WithRawTypeAndUndefinedDefault.class); + new AugmentedConfigurationObjectFactory(new Properties()).build(WithRawTypeAndUndefinedDefault.class); } @Test(expected = IllegalArgumentException.class) public void testRawTypeWithIllegalDefault() { - new ConfigurationObjectFactory(new Properties()).build(WithRawTypeAndIllegalDefault.class); + new AugmentedConfigurationObjectFactory(new Properties()).build(WithRawTypeAndIllegalDefault.class); } @Test public void testUnspecifiedType() { - final WithUnspecifiedType config = new ConfigurationObjectFactory(Props.of("theClazz", Foo.class.getName())).build(WithUnspecifiedType.class); + final WithUnspecifiedType config = new AugmentedConfigurationObjectFactory(Props.of("theClazz", Foo.class.getName())).build(WithUnspecifiedType.class); Assert.assertEquals(config.getTheClazz(), Foo.class); } @Test public void testExtends() { - final WithExtends config = new ConfigurationObjectFactory(Props.of("theClazz", Foo.class.getName())).build(WithExtends.class); + final WithExtends config = new AugmentedConfigurationObjectFactory(Props.of("theClazz", Foo.class.getName())).build(WithExtends.class); Assert.assertEquals(config.getTheClazz(), Foo.class); } @Test public void testExtendsWithSubClass() { - final WithExtends config = new ConfigurationObjectFactory(Props.of("theClazz", FooSub.class.getName())).build(WithExtends.class); + final WithExtends config = new AugmentedConfigurationObjectFactory(Props.of("theClazz", FooSub.class.getName())).build(WithExtends.class); Assert.assertEquals(config.getTheClazz(), FooSub.class); } @Test(expected = IllegalArgumentException.class) public void testExtendsWithSuperClass() { - new ConfigurationObjectFactory(Props.of("theClazz", FooSuper.class.getName())).build(WithExtends.class); + new AugmentedConfigurationObjectFactory(Props.of("theClazz", FooSuper.class.getName())).build(WithExtends.class); } @Test(expected = IllegalArgumentException.class) public void testExtendsWithUnrelatedClass() { - new ConfigurationObjectFactory(Props.of("theClazz", Properties.class.getName())).build(WithExtends.class); + new AugmentedConfigurationObjectFactory(Props.of("theClazz", Properties.class.getName())).build(WithExtends.class); } @Test public void testNestedExtends() { - final WithNestedExtends config = new ConfigurationObjectFactory(Props.of("theClazz", FooList.class.getName())).build(WithNestedExtends.class); + final WithNestedExtends config = new AugmentedConfigurationObjectFactory(Props.of("theClazz", FooList.class.getName())).build(WithNestedExtends.class); Assert.assertEquals(config.getTheClazz(), FooList.class); } @Test public void testNestedExtendsWithSubClass() { - final WithNestedExtends config = new ConfigurationObjectFactory(Props.of("theClazz", FooSubList.class.getName())).build(WithNestedExtends.class); + final WithNestedExtends config = new AugmentedConfigurationObjectFactory(Props.of("theClazz", FooSubList.class.getName())).build(WithNestedExtends.class); Assert.assertEquals(config.getTheClazz(), FooSubList.class); } @Test public void testNestedExtendsWithSuperClass() { - final WithNestedExtends config = new ConfigurationObjectFactory(Props.of("theClazz", FooSuperList.class.getName())).build(WithNestedExtends.class); + final WithNestedExtends config = new AugmentedConfigurationObjectFactory(Props.of("theClazz", FooSuperList.class.getName())).build(WithNestedExtends.class); Assert.assertEquals(config.getTheClazz(), FooSuperList.class); } @Test public void testNestedExtendsWithUnrelatedClass() { - final WithNestedExtends config = new ConfigurationObjectFactory(Props.of("theClazz", StringList.class.getName())).build(WithNestedExtends.class); + final WithNestedExtends config = new AugmentedConfigurationObjectFactory(Props.of("theClazz", StringList.class.getName())).build(WithNestedExtends.class); Assert.assertEquals(config.getTheClazz(), StringList.class); } diff --git a/config-magic/src/test/java/org/skife/config/TestCoercion.java b/config-magic/src/test/java/org/skife/config/TestCoercion.java index e66dadac..f9d1fc62 100644 --- a/config-magic/src/test/java/org/skife/config/TestCoercion.java +++ b/config-magic/src/test/java/org/skife/config/TestCoercion.java @@ -31,11 +31,11 @@ @Category(ConfigMagicTests.class) public class TestCoercion { - private ConfigurationObjectFactory c = null; + private AugmentedConfigurationObjectFactory c = null; @Before public void setUp() { - this.c = new ConfigurationObjectFactory(new Properties() {{ + this.c = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("the-url", "http://github.org/brianm/config-magic"); }}); } diff --git a/config-magic/src/test/java/org/skife/config/TestCollections.java b/config-magic/src/test/java/org/skife/config/TestCollections.java index 082aeb10..4293ef66 100644 --- a/config-magic/src/test/java/org/skife/config/TestCollections.java +++ b/config-magic/src/test/java/org/skife/config/TestCollections.java @@ -35,11 +35,11 @@ @Category(ConfigMagicTests.class) public class TestCollections { - private ConfigurationObjectFactory cof; + private AugmentedConfigurationObjectFactory cof; @Before public void setUp() { - cof = new ConfigurationObjectFactory(new Properties()); + cof = new AugmentedConfigurationObjectFactory(new Properties()); } @After diff --git a/config-magic/src/test/java/org/skife/config/TestConfigurationObjectFactory.java b/config-magic/src/test/java/org/skife/config/TestConfigurationObjectFactory.java index 0ac2a097..f962ab72 100755 --- a/config-magic/src/test/java/org/skife/config/TestConfigurationObjectFactory.java +++ b/config-magic/src/test/java/org/skife/config/TestConfigurationObjectFactory.java @@ -36,7 +36,7 @@ public class TestConfigurationObjectFactory { @Test public void testMultipleReplacements() throws Exception { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties() {{ + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("another-option.a.1", "A1"); setProperty("another-option.a.2", "A2"); setProperty("another-option.b.1", "B1"); @@ -71,7 +71,7 @@ public void testMultipleReplacements() throws Exception { public void testReplacement() throws Exception { final Map replacementsMap = new HashMap(); replacementsMap.put("type", "first"); - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties() {{ + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("option.first", "1st"); setProperty("option.second", "2nd"); }}); @@ -85,7 +85,7 @@ public void testReplacement() throws Exception { @Test public void testFoo() throws Exception { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties() {{ + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("hello", "world"); setProperty("theValue", "value"); }}); @@ -95,7 +95,7 @@ public void testFoo() throws Exception { @Test public void testEnum() throws Exception { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties() {{ + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("option.one", "1"); setProperty("option.two", "2"); }}); @@ -107,7 +107,7 @@ public void testEnum() throws Exception { @Test public void testMultiParameters() throws Exception { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties() {{ + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("another-option.one.a", "1-x"); setProperty("another-option.two.b", "2-y"); }}); @@ -119,21 +119,21 @@ public void testMultiParameters() throws Exception { @Test public void testDefaultValue() throws Exception { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties()); + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties()); final Thing t = c.build(Thing.class); assertEquals(t.getName(), "woof"); } @Test public void testDefaultViaImpl() throws Exception { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties()); + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties()); final Config2 config = c.build(Config2.class); assertEquals(config.getOption(), "default"); } @Test public void testProvidedOverridesDefault() throws Exception { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties() {{ + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("option", "provided"); }}); @@ -143,7 +143,7 @@ public void testProvidedOverridesDefault() throws Exception { @Test public void testMissingDefault() throws Exception { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties()); + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties()); try { c.build(Config3.class); fail("Expected exception due to missing value"); @@ -153,7 +153,7 @@ public void testMissingDefault() throws Exception { @Test public void testDetectsAbstractMethod() throws Exception { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties()); + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties()); try { c.build(Config4.class); fail("Expected exception due to abstract method without @Config annotation"); @@ -163,7 +163,7 @@ public void testDetectsAbstractMethod() throws Exception { @Test public void testTypes() { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties() {{ + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("stringOption", "a string"); setProperty("booleanOption", "true"); setProperty("boxedBooleanOption", "true"); diff --git a/config-magic/src/test/java/org/skife/config/TestCustomCoercion.java b/config-magic/src/test/java/org/skife/config/TestCustomCoercion.java index 2b136650..4270b028 100644 --- a/config-magic/src/test/java/org/skife/config/TestCustomCoercion.java +++ b/config-magic/src/test/java/org/skife/config/TestCustomCoercion.java @@ -32,7 +32,7 @@ public class TestCustomCoercion { @Test(expected = IllegalStateException.class) public void testNoConverterConfig() { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties() {{ + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("the-url", "http://github.org/brianm/config-magic"); }}); @@ -41,7 +41,7 @@ public void testNoConverterConfig() { @Test public void testWithConverterConfig() { - final ConfigurationObjectFactory c = new ConfigurationObjectFactory(new Properties() {{ + final ConfigurationObjectFactory c = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("the-url", "http://github.org/brianm/config-magic"); }}); diff --git a/config-magic/src/test/java/org/skife/config/TestDataAmount.java b/config-magic/src/test/java/org/skife/config/TestDataAmount.java index 88543b52..d584cb7f 100644 --- a/config-magic/src/test/java/org/skife/config/TestDataAmount.java +++ b/config-magic/src/test/java/org/skife/config/TestDataAmount.java @@ -28,11 +28,11 @@ @Category(ConfigMagicTests.class) public class TestDataAmount { - private ConfigurationObjectFactory cof; + private AugmentedConfigurationObjectFactory cof; @Before public void setUp() { - cof = new ConfigurationObjectFactory(new Properties()); + cof = new AugmentedConfigurationObjectFactory(new Properties()); } @After diff --git a/config-magic/src/test/java/org/skife/config/TestDefaultNull.java b/config-magic/src/test/java/org/skife/config/TestDefaultNull.java index 945c2906..a0157e8c 100644 --- a/config-magic/src/test/java/org/skife/config/TestDefaultNull.java +++ b/config-magic/src/test/java/org/skife/config/TestDefaultNull.java @@ -28,11 +28,11 @@ @Category(ConfigMagicTests.class) public class TestDefaultNull { - private ConfigurationObjectFactory cof = null; + private AugmentedConfigurationObjectFactory cof = null; @Before public void setUp() { - cof = new ConfigurationObjectFactory(new Properties()); + cof = new AugmentedConfigurationObjectFactory(new Properties()); } @After diff --git a/config-magic/src/test/java/org/skife/config/TestDefaultsPresent.java b/config-magic/src/test/java/org/skife/config/TestDefaultsPresent.java index 698941db..d26bf851 100644 --- a/config-magic/src/test/java/org/skife/config/TestDefaultsPresent.java +++ b/config-magic/src/test/java/org/skife/config/TestDefaultsPresent.java @@ -28,11 +28,11 @@ @Category(ConfigMagicTests.class) public class TestDefaultsPresent { - private ConfigurationObjectFactory cof = null; + private AugmentedConfigurationObjectFactory cof = null; @Before public void setUp() { - cof = new ConfigurationObjectFactory(new Properties()); + cof = new AugmentedConfigurationObjectFactory(new Properties()); } @After diff --git a/config-magic/src/test/java/org/skife/config/TestEmptyValue.java b/config-magic/src/test/java/org/skife/config/TestEmptyValue.java index c32b1972..e79dd84a 100644 --- a/config-magic/src/test/java/org/skife/config/TestEmptyValue.java +++ b/config-magic/src/test/java/org/skife/config/TestEmptyValue.java @@ -28,11 +28,11 @@ @Category(ConfigMagicTests.class) public class TestEmptyValue { - private ConfigurationObjectFactory cof = null; + private AugmentedConfigurationObjectFactory cof = null; @Before public void setUp() { - cof = new ConfigurationObjectFactory(new Properties()); + cof = new AugmentedConfigurationObjectFactory(new Properties()); } @After diff --git a/config-magic/src/test/java/org/skife/config/TestEnums.java b/config-magic/src/test/java/org/skife/config/TestEnums.java index e522dd90..bef1975b 100644 --- a/config-magic/src/test/java/org/skife/config/TestEnums.java +++ b/config-magic/src/test/java/org/skife/config/TestEnums.java @@ -28,11 +28,11 @@ @Category(ConfigMagicTests.class) public class TestEnums { - private ConfigurationObjectFactory cof; + private AugmentedConfigurationObjectFactory cof; @Before public void setUp() { - cof = new ConfigurationObjectFactory(new Properties()); + cof = new AugmentedConfigurationObjectFactory(new Properties()); } @After diff --git a/config-magic/src/test/java/org/skife/config/TestExposeMappedReplacements.java b/config-magic/src/test/java/org/skife/config/TestExposeMappedReplacements.java index 3470c33a..0761b8fb 100644 --- a/config-magic/src/test/java/org/skife/config/TestExposeMappedReplacements.java +++ b/config-magic/src/test/java/org/skife/config/TestExposeMappedReplacements.java @@ -35,7 +35,7 @@ public void testExposeReplacements() { final Properties properties = new Properties(); properties.put("wat.1", "xyzzy"); - final ConfigurationObjectFactory factory = new ConfigurationObjectFactory(properties); + final ConfigurationObjectFactory factory = new AugmentedConfigurationObjectFactory(properties); final Map map = new HashMap(); map.put("a", "1"); @@ -48,7 +48,7 @@ public void testExposeReplacements() { @Test public void testNoReplacements() { - final ConfigurationObjectFactory factory = new ConfigurationObjectFactory(new Properties()); + final ConfigurationObjectFactory factory = new AugmentedConfigurationObjectFactory(new Properties()); final ReplacementConfig config = factory.build(ReplacementConfig.class); assertTrue(config.getMap().isEmpty()); @@ -56,7 +56,7 @@ public void testNoReplacements() { @Test public void testKeyReplacement() { - final ConfigurationObjectFactory factory = new ConfigurationObjectFactory(new Properties()); + final ConfigurationObjectFactory factory = new AugmentedConfigurationObjectFactory(new Properties()); final Map map = new HashMap(); map.put("a", "1"); @@ -69,7 +69,7 @@ public void testKeyReplacement() { @Test public void testDefaultValues() { - final ConfigurationObjectFactory factory = new ConfigurationObjectFactory(new Properties()); + final ConfigurationObjectFactory factory = new AugmentedConfigurationObjectFactory(new Properties()); final ReplacementConfig config = factory.build(ReplacementConfig.class); assertEquals(null, config.getDefaultNull()); assertEquals(3, config.getDefault3()); diff --git a/config-magic/src/test/java/org/skife/config/TestFile.java b/config-magic/src/test/java/org/skife/config/TestFile.java index 32b3e506..a12dbe00 100644 --- a/config-magic/src/test/java/org/skife/config/TestFile.java +++ b/config-magic/src/test/java/org/skife/config/TestFile.java @@ -29,11 +29,11 @@ @Category(ConfigMagicTests.class) public class TestFile { - private ConfigurationObjectFactory cof; + private AugmentedConfigurationObjectFactory cof; @Before public void setUp() { - cof = new ConfigurationObjectFactory(new Properties() {{ + cof = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("file2", ".."); }}); } diff --git a/config-magic/src/test/java/org/skife/config/TestMultiConfig.java b/config-magic/src/test/java/org/skife/config/TestMultiConfig.java index 8525d220..84537bbc 100644 --- a/config-magic/src/test/java/org/skife/config/TestMultiConfig.java +++ b/config-magic/src/test/java/org/skife/config/TestMultiConfig.java @@ -31,11 +31,11 @@ @Category(ConfigMagicTests.class) public class TestMultiConfig { - ConfigurationObjectFactory c = null; + AugmentedConfigurationObjectFactory c = null; @Before public void setUp() { - this.c = new ConfigurationObjectFactory(new Properties() {{ + this.c = new AugmentedConfigurationObjectFactory(new Properties() {{ setProperty("singleOption", "the-single-value"); setProperty("multiOption1", "the-multi-option1-value"); setProperty("multiOption2", "the-multi-option2-value"); diff --git a/config-magic/src/test/java/org/skife/config/TestNoFinal.java b/config-magic/src/test/java/org/skife/config/TestNoFinal.java index 84e616d8..8c581e65 100644 --- a/config-magic/src/test/java/org/skife/config/TestNoFinal.java +++ b/config-magic/src/test/java/org/skife/config/TestNoFinal.java @@ -27,7 +27,7 @@ public class TestNoFinal { @Test(expected = IllegalArgumentException.class) public void testExplodeOnFinal() { - final ConfigurationObjectFactory cof = new ConfigurationObjectFactory(new Properties()); + final ConfigurationObjectFactory cof = new AugmentedConfigurationObjectFactory(new Properties()); cof.build(EmptyClass.class); } diff --git a/config-magic/src/test/java/org/skife/config/TestTimeSpan.java b/config-magic/src/test/java/org/skife/config/TestTimeSpan.java index 0fdc34c1..f31d2484 100644 --- a/config-magic/src/test/java/org/skife/config/TestTimeSpan.java +++ b/config-magic/src/test/java/org/skife/config/TestTimeSpan.java @@ -29,11 +29,11 @@ @Category(ConfigMagicTests.class) public class TestTimeSpan { - private ConfigurationObjectFactory cof; + private AugmentedConfigurationObjectFactory cof; @Before public void setUp() { - cof = new ConfigurationObjectFactory(new Properties()); + cof = new AugmentedConfigurationObjectFactory(new Properties()); } @After diff --git a/config-magic/src/test/java/org/skife/config/TestVariousPropertyTypes.java b/config-magic/src/test/java/org/skife/config/TestVariousPropertyTypes.java index c5d175d8..bfe363dd 100644 --- a/config-magic/src/test/java/org/skife/config/TestVariousPropertyTypes.java +++ b/config-magic/src/test/java/org/skife/config/TestVariousPropertyTypes.java @@ -28,7 +28,7 @@ @Category(ConfigMagicTests.class) public class TestVariousPropertyTypes { - private ConfigurationObjectFactory c = null; + private AugmentedConfigurationObjectFactory c = null; private StrangeConfig sc = null; @Before @@ -39,7 +39,7 @@ public void setUp() { p.setProperty("double.second.property", "double-second-value"); p.setProperty("test.value.property", "test-value-value"); p.setProperty("test.default.property", "test-default-value"); - c = new ConfigurationObjectFactory(p); + c = new AugmentedConfigurationObjectFactory(p); sc = c.buildWithReplacements(StrangeConfig.class, Collections.singletonMap("key", "value")); } diff --git a/jdbi/src/test/java/org/killbill/commons/jdbi/guice/TestDataSourceProvider.java b/jdbi/src/test/java/org/killbill/commons/jdbi/guice/TestDataSourceProvider.java index e5199773..8bf2459b 100644 --- a/jdbi/src/test/java/org/killbill/commons/jdbi/guice/TestDataSourceProvider.java +++ b/jdbi/src/test/java/org/killbill/commons/jdbi/guice/TestDataSourceProvider.java @@ -51,7 +51,7 @@ import org.killbill.commons.embeddeddb.mysql.KillBillMariaDbDataSource; import org.killbill.commons.jdbi.guice.DataSourceProvider.DatabaseType; import org.mariadb.jdbc.Configuration; -import org.skife.config.ConfigurationObjectFactory; +import org.skife.config.AugmentedConfigurationObjectFactory; import org.slf4j.LoggerFactory; import org.testng.annotations.Test; @@ -195,7 +195,7 @@ DaoConfig buildDaoConfig(final DataSourceConnectionPoolingType poolingType, fina } DaoConfig buildDaoConfig(final Properties properties) { - return new ConfigurationObjectFactory(properties).build(DaoConfig.class); + return new AugmentedConfigurationObjectFactory(properties).build(DaoConfig.class); } private Properties defaultDaoConfigProperties(final DataSourceConnectionPoolingType poolingType, final DataSourceProvider.DatabaseType databaseType) { diff --git a/metrics-api/pom.xml b/metrics-api/pom.xml index e99c406f..57132345 100644 --- a/metrics-api/pom.xml +++ b/metrics-api/pom.xml @@ -26,5 +26,5 @@ spotbugs-exclude.xml - + diff --git a/pom.xml b/pom.xml index e36dbe09..991f66ec 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.kill-bill.billing killbill-oss-parent - 0.146.39 + 0.146.60-SNAPSHOT org.kill-bill.commons killbill-commons diff --git a/queue/src/main/java/org/killbill/bus/DefaultPersistentBus.java b/queue/src/main/java/org/killbill/bus/DefaultPersistentBus.java index da3ae8df..c4b2e89b 100644 --- a/queue/src/main/java/org/killbill/bus/DefaultPersistentBus.java +++ b/queue/src/main/java/org/killbill/bus/DefaultPersistentBus.java @@ -66,7 +66,7 @@ import org.killbill.queue.dispatching.BlockingRejectionExecutionHandler; import org.killbill.queue.dispatching.Dispatcher; import org.killbill.queue.dispatching.EventEntryDeserializer; -import org.skife.config.ConfigurationObjectFactory; +import org.skife.config.AugmentedConfigurationObjectFactory; import org.skife.jdbi.v2.DBI; import org.skife.jdbi.v2.IDBI; import org.slf4j.Logger; @@ -151,7 +151,7 @@ public Thread newThread(final Runnable r) { public DefaultPersistentBus(final DataSource dataSource, final Properties properties) { this(InTransaction.buildDDBI(dataSource), new DefaultClock(), - new ConfigurationObjectFactory(properties).buildWithReplacements(PersistentBusConfig.class, Map.of("instanceName", "main")), + new AugmentedConfigurationObjectFactory(properties).buildWithReplacements(PersistentBusConfig.class, Map.of("instanceName", "main")), new NoOpMetricRegistry(), new DatabaseTransactionNotificationApi()); } diff --git a/queue/src/main/java/org/killbill/notificationq/DefaultNotificationQueueService.java b/queue/src/main/java/org/killbill/notificationq/DefaultNotificationQueueService.java index 79cfe24c..a06af823 100644 --- a/queue/src/main/java/org/killbill/notificationq/DefaultNotificationQueueService.java +++ b/queue/src/main/java/org/killbill/notificationq/DefaultNotificationQueueService.java @@ -33,7 +33,7 @@ import org.killbill.notificationq.api.NotificationQueue; import org.killbill.notificationq.api.NotificationQueueConfig; import org.killbill.queue.InTransaction; -import org.skife.config.ConfigurationObjectFactory; +import org.skife.config.AugmentedConfigurationObjectFactory; import org.skife.config.SimplePropertyConfigSource; import org.skife.jdbi.v2.DBI; import org.skife.jdbi.v2.IDBI; @@ -68,7 +68,7 @@ public DefaultNotificationQueueService(@Named(QUEUE_NAME) final IDBI idbi, final public DefaultNotificationQueueService(final DataSource dataSource, final Properties properties) { this(InTransaction.buildDDBI(dataSource), new DefaultClock(), - new ConfigurationObjectFactory(new SimplePropertyConfigSource(properties)).buildWithReplacements(NotificationQueueConfig.class, Map.of("instanceName", "main")), + new AugmentedConfigurationObjectFactory(new SimplePropertyConfigSource(properties)).buildWithReplacements(NotificationQueueConfig.class, Map.of("instanceName", "main")), new NoOpMetricRegistry()); } diff --git a/queue/src/test/java/org/killbill/TestSetup.java b/queue/src/test/java/org/killbill/TestSetup.java index 3e32fc33..bd957321 100644 --- a/queue/src/test/java/org/killbill/TestSetup.java +++ b/queue/src/test/java/org/killbill/TestSetup.java @@ -40,7 +40,7 @@ import org.killbill.notificationq.api.NotificationQueueConfig; import org.killbill.queue.InTransaction; import org.skife.config.ConfigSource; -import org.skife.config.ConfigurationObjectFactory; +import org.skife.config.AugmentedConfigurationObjectFactory; import org.skife.config.SimplePropertyConfigSource; import org.skife.jdbi.v2.DBI; import org.testng.annotations.AfterClass; @@ -111,10 +111,10 @@ public void beforeClass() throws Exception { dbi.setTransactionHandler(new NotificationTransactionHandler(databaseTransactionNotificationApi)); final ConfigSource configSource = new SimplePropertyConfigSource(System.getProperties()); - persistentBusConfig = new ConfigurationObjectFactory(configSource).buildWithReplacements( + persistentBusConfig = new AugmentedConfigurationObjectFactory(configSource).buildWithReplacements( PersistentBusConfig.class, Map.of("instanceName", "main")); - notificationQueueConfig = new ConfigurationObjectFactory(configSource).buildWithReplacements( + notificationQueueConfig = new AugmentedConfigurationObjectFactory(configSource).buildWithReplacements( NotificationQueueConfig.class, Map.of("instanceName", "main")); } diff --git a/queue/src/test/java/org/killbill/bus/TestLoadDefaultPersistentBus.java b/queue/src/test/java/org/killbill/bus/TestLoadDefaultPersistentBus.java index 60f149d5..7b4c2a0d 100644 --- a/queue/src/test/java/org/killbill/bus/TestLoadDefaultPersistentBus.java +++ b/queue/src/test/java/org/killbill/bus/TestLoadDefaultPersistentBus.java @@ -34,7 +34,7 @@ import org.killbill.bus.api.PersistentBusConfig; import org.killbill.commons.eventbus.AllowConcurrentEvents; import org.killbill.commons.eventbus.Subscribe; -import org.skife.config.ConfigurationObjectFactory; +import org.skife.config.AugmentedConfigurationObjectFactory; import org.skife.jdbi.v2.Handle; import org.skife.jdbi.v2.TransactionCallback; import org.skife.jdbi.v2.TransactionStatus; @@ -69,7 +69,7 @@ public void beforeClass() throws Exception { properties.setProperty("org.killbill.persistent.bus.main.sleep", "0"); properties.setProperty("org.killbill.persistent.bus.main.sticky", "true"); properties.setProperty("org.killbill.persistent.bus.main.useInflightQ", "true"); - final PersistentBusConfig busConfig = new ConfigurationObjectFactory(properties).buildWithReplacements(PersistentBusConfig.class, Map.of("instanceName", "main")); + final PersistentBusConfig busConfig = new AugmentedConfigurationObjectFactory(properties).buildWithReplacements(PersistentBusConfig.class, Map.of("instanceName", "main")); eventBus = new DefaultPersistentBus(dbi, clock, busConfig, metricRegistry, databaseTransactionNotificationApi); } diff --git a/skeleton/src/main/java/org/killbill/commons/skeleton/modules/ConfigModule.java b/skeleton/src/main/java/org/killbill/commons/skeleton/modules/ConfigModule.java index 10eb067e..f25fa7c1 100644 --- a/skeleton/src/main/java/org/killbill/commons/skeleton/modules/ConfigModule.java +++ b/skeleton/src/main/java/org/killbill/commons/skeleton/modules/ConfigModule.java @@ -24,7 +24,7 @@ import java.util.Properties; import org.skife.config.ConfigSource; -import org.skife.config.ConfigurationObjectFactory; +import org.skife.config.AugmentedConfigurationObjectFactory; import org.skife.config.SimplePropertyConfigSource; import com.google.inject.AbstractModule; @@ -63,7 +63,7 @@ public ConfigModule(final Iterable configs, final ConfigSource configSour @Override protected void configure() { for (final Class config : configs) { - bind(config).toInstance(new ConfigurationObjectFactory(configSource).build(config)); + bind(config).toInstance(new AugmentedConfigurationObjectFactory(configSource).build(config)); } } } From b1d22e4aef0b7b61786148e1d6c7105b224cd1bd Mon Sep 17 00:00:00 2001 From: Vijay N Date: Mon, 7 Jul 2025 16:35:10 +0530 Subject: [PATCH 3/3] changed parent to 0.149.59. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 991f66ec..00032cea 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.kill-bill.billing killbill-oss-parent - 0.146.60-SNAPSHOT + 0.146.59 org.kill-bill.commons killbill-commons