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