Author: cziegeler
Date: Fri Oct 7 08:47:27 2016
New Revision: 1763697
URL: http://svn.apache.org/viewvc?rev=1763697&view=rev
Log:
SLING-6059 Context-Aware Config: Make resource inheritance for configuration
collections configurable. Add missing check for jcr:content
Modified:
sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java
Modified:
sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java?rev=1763697&r1=1763696&r2=1763697&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java
(original)
+++
sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/resource/impl/def/DefaultConfigurationResourceResolvingStrategy.java
Fri Oct 7 08:47:27 2016
@@ -234,7 +234,7 @@ public class DefaultConfigurationResourc
final List<Resource> result = new ArrayList<>();
final Set<String> nameCandidates = new HashSet<>();
final List<Resource> resultCandidates = new ArrayList<>();
-
+
int idx = 1;
Iterator<String> paths = getResolvePaths(contentResource);
Boolean listMergingEnabled = null;
@@ -242,10 +242,10 @@ public class DefaultConfigurationResourc
final String path = paths.next();
Resource item =
contentResource.getResourceResolver().getResource(buildResourcePath(path,
name));
if (item != null) {
-
+
// check inheritance mode on current level
listMergingEnabled =
item.getValueMap().get(PROPERTY_CONFIG_INHERIT, listMergingEnabled);
-
+
// in inheritance is enabled on this level and candidates
where collected on previous levels add them now
if (listMergingEnabled == Boolean.TRUE &&
!resultCandidates.isEmpty()) {
result.addAll(resultCandidates);
@@ -253,7 +253,7 @@ public class DefaultConfigurationResourc
resultCandidates.clear();
nameCandidates.clear();
}
-
+
if (logger.isTraceEnabled()) {
logger.trace("+ resolved config item at [{}]: {}", idx,
item.getPath());
}
@@ -261,7 +261,8 @@ public class DefaultConfigurationResourc
// add resource items only if none found yet, or inheritance
is enabled
if (result.isEmpty() || listMergingEnabled == Boolean.TRUE) {
for (Resource child : item.getChildren()) {
- if (!names.contains(child.getName())) {
+ if (isValidResourceCollectionItem(child)
+ && !names.contains(child.getName())) {
result.add(child);
names.add(child.getName());
}
@@ -298,7 +299,7 @@ public class DefaultConfigurationResourc
return result;
}
-
+
private boolean isValidResourceCollectionItem(Resource resource) {
// do not include jcr:content nodes in resource collection list
return !StringUtils.equals(resource.getName(), "jcr:content");