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());
+    }
+
 }


Reply via email to