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 1c44ec494..e7563f39b 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 @@ -84,6 +84,11 @@ protected void addPropertyDirect(String key, Object value) { settable.setProperty(key, value); } + @Override + protected void clearPropertyDirect(String key) { + settable.clearProperty(key); + } + @Override public void addConfiguration(AbstractConfiguration config) { addConfiguration(config, "Config-" + libNameCounter.incrementAndGet()); 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 c56840699..1b155caef 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 @@ -166,6 +166,11 @@ protected void addPropertyDirect(String key, Object value) { delegate.addPropertyDirect(key, value); } + @Override + protected void clearPropertyDirect(String key) { + delegate.clearProperty(key); + } + @Override public void addConfigurationListener(PropertyListener expandedPropertyListener) { if (delegate == null) { diff --git a/archaius2-archaius1-bridge/src/test/java/com/netflix/archaius/bridge/DynamicPropertyTest.java b/archaius2-archaius1-bridge/src/test/java/com/netflix/archaius/bridge/DynamicPropertyTest.java index cadfd360e..b0a9335b4 100644 --- a/archaius2-archaius1-bridge/src/test/java/com/netflix/archaius/bridge/DynamicPropertyTest.java +++ b/archaius2-archaius1-bridge/src/test/java/com/netflix/archaius/bridge/DynamicPropertyTest.java @@ -1,5 +1,7 @@ package com.netflix.archaius.bridge; +import com.netflix.archaius.api.Config; +import org.apache.commons.configuration.AbstractConfiguration; import org.junit.Assert; import org.junit.Test; @@ -62,4 +64,19 @@ public void testInterpolation() { Assert.assertEquals("value", prop.get()); } + + @Test + public void testPropertyDeletion() { + Injector injector = Guice.createInjector(new ArchaiusModule(), new StaticArchaiusBridgeModule()); + AbstractConfiguration config1 = ConfigurationManager.getConfigInstance(); + Config config2 = injector.getInstance(Config.class); + config1.setProperty("libA.loaded", "true"); + Assert.assertTrue(config1.getBoolean("libA.loaded", false)); + Assert.assertTrue(config2.getBoolean("libA.loaded", false)); + + config1.clearProperty("libA.loaded"); + Assert.assertFalse(config1.getBoolean("libA.loaded", false)); + Assert.assertFalse(config2.getBoolean("libA.loaded", false)); + + } }