diff --git a/archaius2-archaius1-bridge/src/main/java/com/netflix/archaius/bridge/AbstractConfigurationBridge.java b/archaius2-archaius1-bridge/src/main/java/com/netflix/archaius/bridge/AbstractConfigurationBridge.java index 94c1ebdde..fddcacb31 100644 --- a/archaius2-archaius1-bridge/src/main/java/com/netflix/archaius/bridge/AbstractConfigurationBridge.java +++ b/archaius2-archaius1-bridge/src/main/java/com/netflix/archaius/bridge/AbstractConfigurationBridge.java @@ -192,4 +192,8 @@ public void onConfigUpdated(Config config) { } }); } + + public Object resolve(String value) { + return config.resolve(value); + } } diff --git a/archaius2-archaius1-bridge/src/main/java/com/netflix/archaius/bridge/StaticAbstractConfiguration.java b/archaius2-archaius1-bridge/src/main/java/com/netflix/archaius/bridge/StaticAbstractConfiguration.java index 0a30c0b34..e0bc4e067 100644 --- a/archaius2-archaius1-bridge/src/main/java/com/netflix/archaius/bridge/StaticAbstractConfiguration.java +++ b/archaius2-archaius1-bridge/src/main/java/com/netflix/archaius/bridge/StaticAbstractConfiguration.java @@ -211,6 +211,16 @@ protected void addPropertyDirect(String key, Object value) { delegate.addPropertyDirect(key, value); } + @Override + protected String interpolate(String base) { + return delegate.resolve(base).toString(); + } + + @Override + protected Object interpolate(Object value) { + return delegate.resolve(value.toString()); + } + @Override protected void clearPropertyDirect(String key) { delegate.clearProperty(key); diff --git a/archaius2-archaius1-bridge/src/test/java/com/netflix/archaius/bridge/AbstractConfigurationBridgeTest.java b/archaius2-archaius1-bridge/src/test/java/com/netflix/archaius/bridge/AbstractConfigurationBridgeTest.java index 59af2527b..6458dd80b 100644 --- a/archaius2-archaius1-bridge/src/test/java/com/netflix/archaius/bridge/AbstractConfigurationBridgeTest.java +++ b/archaius2-archaius1-bridge/src/test/java/com/netflix/archaius/bridge/AbstractConfigurationBridgeTest.java @@ -244,4 +244,19 @@ public void testCommonConfigurationListener() { Mockito.verify(listener, Mockito.times(2)).configurationChanged(Mockito.any()); } + + @Test + public void verifyValueInterpollation() { + AbstractConfiguration config = ConfigurationManager.getConfigInstance(); + config.setProperty("foo", "${ABC:true}"); + boolean value = config.getBoolean("foo"); + Assert.assertTrue(value); + } + + @Test + public void verifyMissingProperty() { + AbstractConfiguration config = ConfigurationManager.getConfigInstance(); + Boolean value = config.getBoolean("foo", null); + Assert.assertNull(value); + } }