You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2015/01/06 16:41:25 UTC
svn commit: r1649839 - in
/sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl:
MergedResource.java MergedValueMap.java
Author: cziegeler
Date: Tue Jan 6 15:41:24 2015
New Revision: 1649839
URL: http://svn.apache.org/r1649839
Log:
SLING-4247 : Reconsider resource type handling
Modified:
sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java
Modified: sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java?rev=1649839&r1=1649838&r2=1649839&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java (original)
+++ sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java Tue Jan 6 15:41:24 2015
@@ -63,7 +63,15 @@ public class MergedResource extends Abst
this.resolver = resolver;
this.path = (relativePath.length() == 0 ? mergeRootPath : mergeRootPath + "/" + relativePath);
this.properties = new DeepReadValueMapDecorator(this, new MergedValueMap(valueMaps));
- this.resourceType = this.properties.get(ResourceResolver.PROPERTY_RESOURCE_TYPE, (relativePath.length() == 0 ? "/" : relativePath));
+ // get resource type
+ String rt = (relativePath.length() == 0 ? "/" : relativePath);
+ for(final Resource rsrc : mappedResources) {
+ final String value = rsrc.getResourceType();
+ if ( value != null ) {
+ rt = value;
+ }
+ }
+ this.resourceType = rt;
metadata.put(MergedResourceConstants.METADATA_FLAG, true);
final String[] resourcePaths = new String[mappedResources.size()];
int i = 0;
Modified: sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java?rev=1649839&r1=1649838&r2=1649839&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java (original)
+++ sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java Tue Jan 6 15:41:24 2015
@@ -53,38 +53,26 @@ public class MergedValueMap extends Valu
super(new HashMap<String, Object>());
// Iterate over value maps
for (final ValueMap vm : valueMaps) {
- if (this.isEmpty()) {
- // Add all properties
- this.putAll(vm);
- } else {
- // Get properties to add or override
- for (final String key : vm.keySet()) {
- if (!isExcludedProperty(key)) {
- this.put(key, vm.get(key));
- }
- }
+ // Add all properties
+ this.putAll(vm);
- // Get properties to hide
- final String[] propertiesToHide = vm.get(MergedResourceConstants.PN_HIDE_PROPERTIES, String[].class);
- if ( propertiesToHide != null ) {
- for (final String propName : propertiesToHide) {
- if (propName.equals("*")) {
- this.clear();
- break;
- } else {
- this.remove(propName);
- }
+ // Get properties to hide
+ final String[] propertiesToHide = vm.get(MergedResourceConstants.PN_HIDE_PROPERTIES, String[].class);
+ if ( propertiesToHide != null ) {
+ for (final String propName : propertiesToHide) {
+ if (propName.equals("*")) {
+ this.clear();
+ break;
+ } else {
+ this.remove(propName);
}
}
}
}
+
// Hide excluded properties
for (final String excludedProperty : EXCLUDED_PROPERTIES) {
this.remove(excludedProperty);
}
}
-
- private boolean isExcludedProperty(String key) {
- return EXCLUDED_PROPERTIES.contains(key);
- }
}