You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2017/05/02 14:13:31 UTC

svn commit: r1793495 - in /sling/trunk/bundles/extensions/caconfig/impl/src: main/java/org/apache/sling/caconfig/management/ main/java/org/apache/sling/caconfig/management/impl/ test/java/org/apache/sling/caconfig/management/impl/

Author: sseifert
Date: Tue May  2 14:13:31 2017
New Revision: 1793495

URL: http://svn.apache.org/viewvc?rev=1793495&view=rev
Log:
SLING-6820 Context-Aware Config: Management API - Provide ConfigurationData.isInherited

Modified:
    sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/ConfigurationData.java
    sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java
    sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/ConfigurationData.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/ConfigurationData.java?rev=1793495&r1=1793494&r2=1793495&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/ConfigurationData.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/ConfigurationData.java Tue May  2 14:13:31 2017
@@ -75,6 +75,11 @@ public interface ConfigurationData {
      * @return Value information. Null if neither property metadata nor an existing value exists.
      */
     @CheckForNull ValueInfo<?> getValueInfo(String propertyName);
+
+    /**
+     * @return true if the whole configuration is inherited.
+     */
+    boolean isInherited();
     
     /**
      * @return true if the whole configuration is overridden by an configuration override provider.

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java?rev=1793495&r1=1793494&r2=1793495&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java Tue May  2 14:13:31 2017
@@ -260,8 +260,22 @@ final class ConfigurationDataImpl implem
     }
 
     @Override
+    public boolean isInherited() {
+        // detect if the whole config or config item was inherited
+        if (resolvedConfigurationResource != null) {
+            if (writebackConfigurationResource == null) {
+                return true;
+            }
+            else {
+                return !StringUtils.equals(writebackConfigurationResource.getPath(), resolvedConfigurationResource.getPath());
+            }
+        }
+        return false;
+    }
+    
+    @Override
     public boolean isOverridden() {
         return isAllOverridden;
     }
-    
+
 }

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java?rev=1793495&r1=1793494&r2=1793495&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java Tue May  2 14:13:31 2017
@@ -226,6 +226,7 @@ public class ConfigurationManagerImplTes
     public void testGetConfiguration() {
         ConfigurationData configData = underTest.getConfiguration(contextResource, CONFIG_NAME);
         assertNotNull(configData);
+        assertFalse(configData.isInherited());
 
         assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData.getPropertyNames());
         assertEquals("value1", configData.getValues().get("prop1", String.class));
@@ -241,6 +242,7 @@ public class ConfigurationManagerImplTes
     public void testGetConfiguration_WithResourceInheritance() {
         ConfigurationData configData = underTest.getConfiguration(contextResourceLevel2, CONFIG_NAME);
         assertNotNull(configData);
+        assertTrue(configData.isInherited());
 
         assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData.getPropertyNames());
         assertNull(configData.getValues().get("prop1", String.class));
@@ -260,6 +262,7 @@ public class ConfigurationManagerImplTes
     public void testGetConfiguration_WithPropertyInheritance() {
         ConfigurationData configData = underTest.getConfiguration(contextResourceLevel3, CONFIG_NAME);
         assertNotNull(configData);
+        assertFalse(configData.isInherited());
 
         assertTrue(configData.getPropertyNames().containsAll(ImmutableSet.of("prop1", "prop2", "prop3", "prop4", "prop5")));
         assertNull(configData.getValues().get("prop1", String.class));
@@ -297,6 +300,7 @@ public class ConfigurationManagerImplTes
         
         ConfigurationData configData = underTest.getConfiguration(contextResource, CONFIG_NAME);
         assertNotNull(configData);
+        assertFalse(configData.isInherited());
         assertTrue(configData.isOverridden());
 
         assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
@@ -314,6 +318,7 @@ public class ConfigurationManagerImplTes
     public void testGetConfiguration_NoConfigResource() {
         ConfigurationData configData = underTest.getConfiguration(contextResourceNoConfig, CONFIG_NAME);
         assertNotNull(configData);
+        assertFalse(configData.isInherited());
 
         assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData.getPropertyNames());
         assertNull(configData.getValues().get("prop1", String.class));
@@ -329,6 +334,7 @@ public class ConfigurationManagerImplTes
 
         ConfigurationData configData = underTest.getConfiguration(contextResource, CONFIG_NAME);
         assertNotNull(configData);
+        assertFalse(configData.isInherited());
 
         assertEquals(ImmutableSet.of("prop1", "prop4"), configData.getPropertyNames());
         assertEquals("value1", configData.getValues().get("prop1", String.class));
@@ -353,6 +359,7 @@ public class ConfigurationManagerImplTes
         assertEquals(2, configDatas.size());
 
         ConfigurationData configData1 = configDatas.get(0);
+        assertFalse(configData1.isInherited());
         assertEquals("1", configData1.getCollectionItemName());
         assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData1.getPropertyNames());
         assertEquals("value1", configData1.getValues().get("prop1", String.class));
@@ -362,6 +369,7 @@ public class ConfigurationManagerImplTes
         assertFalse(configData1.getValueInfo("prop3").isInherited());
         
         ConfigurationData configData2 = configDatas.get(1);
+        assertFalse(configData2.isInherited());
         assertEquals("2", configData2.getCollectionItemName());
         assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
         assertNull(configData2.getValues().get("prop1", String.class));
@@ -380,6 +388,7 @@ public class ConfigurationManagerImplTes
         assertEquals(2, configDatas.size());
         
         ConfigurationData configData1 = configDatas.get(0);
+        assertFalse(configData1.isInherited());
         assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData1.getPropertyNames());
         assertEquals("value1_level2", configData1.getValues().get("prop1", String.class));
         assertEquals("value1_level2", configData1.getEffectiveValues().get("prop1", String.class));
@@ -392,6 +401,7 @@ public class ConfigurationManagerImplTes
         assertNull(configData1.getValueInfo("prop3").getConfigSourcePath());
         
         ConfigurationData configData2 = configDatas.get(1);
+        assertTrue(configData2.isInherited());
         assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
         assertNull(configData2.getValues().get("prop1", String.class));
         assertEquals((Integer)5, configData2.getEffectiveValues().get("prop3", 0));
@@ -412,6 +422,7 @@ public class ConfigurationManagerImplTes
         assertEquals(2, configDatas.size());
         
         ConfigurationData configData1 = configDatas.get(0);
+        assertFalse(configData1.isInherited());
         assertTrue(configData1.getPropertyNames().containsAll(ImmutableSet.of("prop1", "prop2", "prop3", "prop4", "prop5")));
 
         assertTrue(configData1.getPropertyNames().containsAll(ImmutableSet.of("prop1", "prop2", "prop3", "prop4", "prop5")));
@@ -441,6 +452,7 @@ public class ConfigurationManagerImplTes
         assertEquals(configPathLevel3, configData1.getValueInfo("prop5").getConfigSourcePath());
                 
         ConfigurationData configData2 = configDatas.get(1);
+        assertFalse(configData1.isInherited());
         assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
         assertNull(configData2.getValues().get("prop1", String.class));
         assertEquals((Integer)5, configData2.getEffectiveValues().get("prop3", 0));
@@ -464,6 +476,7 @@ public class ConfigurationManagerImplTes
         assertEquals(2, configDatas.size());
 
         ConfigurationData configData1 = configDatas.get(0);
+        assertFalse(configData1.isInherited());
         assertFalse(configData1.isOverridden());
         assertEquals(ImmutableSet.of("prop1", "prop2", "prop3"), configData1.getPropertyNames());
         assertEquals("value1", configData1.getValues().get("prop1", String.class));
@@ -476,6 +489,7 @@ public class ConfigurationManagerImplTes
         assertFalse(configData1.getValueInfo("prop3").isOverridden());
         
         ConfigurationData configData2 = configDatas.get(1);
+        assertFalse(configData2.isInherited());
         assertFalse(configData2.isOverridden());
         assertEquals(ImmutableSet.of("prop1", "prop2", "prop3", "prop4"), configData2.getPropertyNames());
         assertNull(configData2.getValues().get("prop1", String.class));
@@ -502,6 +516,7 @@ public class ConfigurationManagerImplTes
         assertEquals(2, configDatas.size());
         
         ConfigurationData configData1 = configDatas.get(0);
+        assertFalse(configData1.isInherited());
         assertEquals(ImmutableSet.of("prop1"), configData1.getPropertyNames());
         assertEquals("value1", configData1.getValues().get("prop1", String.class));
         assertEquals((Integer)0, configData1.getEffectiveValues().get("prop3", 0));
@@ -510,6 +525,7 @@ public class ConfigurationManagerImplTes
         assertFalse(configData1.getValueInfo("prop3").isInherited());
 
         ConfigurationData configData2 = configDatas.get(1);
+        assertFalse(configData2.isInherited());
         assertEquals(ImmutableSet.of("prop4"), configData2.getPropertyNames());
         assertNull(configData2.getValues().get("prop1", String.class));
         assertEquals((Integer)0, configData2.getEffectiveValues().get("prop3", 0));