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 2016/12/08 20:36:16 UTC

svn commit: r1773295 - in /sling/trunk/contrib/extensions/contextaware-config/impl/src: main/java/org/apache/sling/caconfig/impl/def/ main/java/org/apache/sling/caconfig/management/impl/ main/java/org/apache/sling/caconfig/resource/impl/util/ test/java...

Author: sseifert
Date: Thu Dec  8 20:36:16 2016
New Revision: 1773295

URL: http://svn.apache.org/viewvc?rev=1773295&view=rev
Log:
SLING-6367 add more filtere properties, add unit test

Added:
    sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/resource/impl/util/PropertiesFilterUtil.java
      - copied, changed from r1773273, sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/PropertiesFilter.java
Removed:
    sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/PropertiesFilter.java
Modified:
    sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java
    sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImpl.java
    sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java
    sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImplTest.java

Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java?rev=1773295&r1=1773294&r2=1773295&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java Thu Dec  8 20:36:16 2016
@@ -20,14 +20,15 @@ package org.apache.sling.caconfig.impl.d
 
 import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.sling.api.resource.ModifiableValueMap;
 import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.caconfig.resource.impl.util.PropertiesFilterUtil;
 import org.apache.sling.caconfig.spi.ConfigurationCollectionPersistData;
 import org.apache.sling.caconfig.spi.ConfigurationPersistData;
 import org.apache.sling.caconfig.spi.ConfigurationPersistenceException;
@@ -159,11 +160,10 @@ public class DefaultConfigurationPersist
     
     private void replaceProperties(Resource resource, Map<String,Object> properties) {
         ModifiableValueMap modValueMap = resource.adaptTo(ModifiableValueMap.class);
-        // remove all existing properties that do not have jcr: namespace
-        for (String propertyName : new HashSet<>(modValueMap.keySet())) {
-            if (StringUtils.startsWith(propertyName, "jcr:")) {
-                continue;
-            }
+        // remove all existing properties that are not filterd
+        Set<String> propertyNamesToRemove = new HashSet<>(modValueMap.keySet());
+        PropertiesFilterUtil.removeIgnoredProperties(propertyNamesToRemove);
+        for (String propertyName : propertyNamesToRemove) {
             modValueMap.remove(propertyName);
         }
         modValueMap.putAll(properties);

Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImpl.java?rev=1773295&r1=1773294&r2=1773295&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImpl.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImpl.java Thu Dec  8 20:36:16 2016
@@ -24,6 +24,7 @@ import java.util.Map;
 
 import org.apache.sling.caconfig.management.ConfigurationCollectionData;
 import org.apache.sling.caconfig.management.ConfigurationData;
+import org.apache.sling.caconfig.resource.impl.util.PropertiesFilterUtil;
 
 final class ConfigurationCollectionDataImpl implements ConfigurationCollectionData {
     
@@ -62,7 +63,7 @@ final class ConfigurationCollectionDataI
             filteredPropertiesCache = new HashMap<>();
             if (properties != null) {
                 filteredPropertiesCache.putAll(properties);
-                PropertiesFilter.removeIgnoredProperties(filteredPropertiesCache);
+                PropertiesFilterUtil.removeIgnoredProperties(filteredPropertiesCache);
             }
         }
         return filteredPropertiesCache;

Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java?rev=1773295&r1=1773294&r2=1773295&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java Thu Dec  8 20:36:16 2016
@@ -38,6 +38,7 @@ import org.apache.sling.caconfig.impl.ov
 import org.apache.sling.caconfig.management.ConfigurationData;
 import org.apache.sling.caconfig.management.ConfigurationManager;
 import org.apache.sling.caconfig.management.ValueInfo;
+import org.apache.sling.caconfig.resource.impl.util.PropertiesFilterUtil;
 import org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy;
 import org.apache.sling.caconfig.spi.metadata.ConfigurationMetadata;
 import org.apache.sling.caconfig.spi.metadata.PropertyMetadata;
@@ -125,7 +126,7 @@ final class ConfigurationDataImpl implem
             if (resolvedConfigurationResource != null) {
                 propertyNamesCache.addAll(new TreeSet<>(ResourceUtil.getValueMap(resolvedConfigurationResource).keySet()));
             }
-            PropertiesFilter.removeIgnoredProperties(propertyNamesCache);
+            PropertiesFilterUtil.removeIgnoredProperties(propertyNamesCache);
         }
         return propertyNamesCache;
     }
@@ -137,7 +138,7 @@ final class ConfigurationDataImpl implem
             if (writebackConfigurationResource != null) {
                 props.putAll( ResourceUtil.getValueMap(writebackConfigurationResource));
             }
-            PropertiesFilter.removeIgnoredProperties(props);
+            PropertiesFilterUtil.removeIgnoredProperties(props);
             resolveNestedConfigs(props);
             valuesCache = new ValueMapDecorator(props);
         }
@@ -158,7 +159,7 @@ final class ConfigurationDataImpl implem
             if (resolvedConfigurationResource != null) {
                 props.putAll(ResourceUtil.getValueMap(resolvedConfigurationResource));
             }
-            PropertiesFilter.removeIgnoredProperties(props);
+            PropertiesFilterUtil.removeIgnoredProperties(props);
             resolveNestedConfigs(props);
             effectiveValuesCache = new ValueMapDecorator(props);
         }

Copied: sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/resource/impl/util/PropertiesFilterUtil.java (from r1773273, sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/PropertiesFilter.java)
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/resource/impl/util/PropertiesFilterUtil.java?p2=sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/resource/impl/util/PropertiesFilterUtil.java&p1=sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/PropertiesFilter.java&r1=1773273&r2=1773295&rev=1773295&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/management/impl/PropertiesFilter.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/caconfig/resource/impl/util/PropertiesFilterUtil.java Thu Dec  8 20:36:16 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.caconfig.management.impl;
+package org.apache.sling.caconfig.resource.impl.util;
 
 import java.util.Arrays;
 import java.util.HashSet;
@@ -26,14 +26,18 @@ import java.util.Set;
 /**
  * Filter internal properties from ConfigManager API output.
  */
-final class PropertiesFilter {
+public final class PropertiesFilterUtil {
 
     private static final Set<String> PROPERTIES_TO_IGNORE = new HashSet<>(Arrays.asList(
             "jcr:primaryType",
+            "jcr:mixinTypes",
             "jcr:created",
-            "jcr:createdBy"));
+            "jcr:createdBy",
+            "jcr:lastModified",
+            "jcr:lastModifiedBy",
+            "jcr:uuid"));
     
-    private PropertiesFilter() {
+    private PropertiesFilterUtil() {
         // static methods only
     }
 

Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImplTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImplTest.java?rev=1773295&r1=1773294&r2=1773295&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImplTest.java (original)
+++ sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationCollectionDataImplTest.java Thu Dec  8 20:36:16 2016
@@ -20,6 +20,7 @@ package org.apache.sling.caconfig.manage
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
 
 import java.util.Collection;
 import java.util.Map;
@@ -31,6 +32,7 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.runners.MockitoJUnitRunner;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 
 @RunWith(MockitoJUnitRunner.class)
@@ -50,4 +52,14 @@ public class ConfigurationCollectionData
         assertEquals(ImmutableMap.<String,Object>of("prop1", "value1"), underTest.getProperties());
     }
 
+    @Test
+    public void testEmpty() {
+        ConfigurationCollectionData underTest = new ConfigurationCollectionDataImpl("name1", ImmutableList.<ConfigurationData>of(), "/path1", null);
+        
+        assertEquals("name1", underTest.getConfigName());;
+        assertTrue(underTest.getItems().isEmpty());
+        assertEquals("/path1", underTest.getResourcePath());
+        assertTrue(underTest.getProperties().isEmpty());
+    }
+
 }