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 2014/01/29 22:55:44 UTC

svn commit: r1562604 - in /sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl: MergedResource.java MergedResourceProvider.java

Author: cziegeler
Date: Wed Jan 29 21:55:43 2014
New Revision: 1562604

URL: http://svn.apache.org/r1562604
Log:
SLING-2986 : Check if resource is hidden through properties (own or parent)

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/MergedResourceProvider.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=1562604&r1=1562603&r2=1562604&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 Wed Jan 29 21:55:43 2014
@@ -171,7 +171,7 @@ public class MergedResource extends Abst
             return false;
         }
 
-        Resource r = (Resource) o;
+        final Resource r = (Resource) o;
         return r.getPath().equals(getPath());
     }
 

Modified: sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java?rev=1562604&r1=1562603&r2=1562604&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java (original)
+++ sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java Wed Jan 29 21:55:43 2014
@@ -63,10 +63,31 @@ public class MergedResourceProvider impl
                 // Loop over provided base paths
                 for (final String basePath : resolver.getSearchPath()) {
                     // Try to get the corresponding physical resource for this base path
-                    final Resource baseRes = resolver.getResource(ResourceUtil.normalize(basePath + "/" + relativePath));
+                    final Resource baseRes = resolver.getResource(basePath + "/" + relativePath);
                     if (baseRes != null) {
-                        // Physical resource exists, add it to the list of mapped resources
-                        mappedResources.add(0, baseRes.getPath());
+                        // check if resource is hidden
+                        boolean hidden = false;
+                        final ValueMap props = ResourceUtil.getValueMap(baseRes);
+                        if ( props.get(MergedResourceConstants.PN_HIDE_RESOURCE, Boolean.FALSE) ) {
+                            hidden = true;
+                        }
+                        if ( !hidden ) {
+                            // check parent
+                            final ValueMap parentProps = ResourceUtil.getValueMap(baseRes.getParent());
+                            final String[] childrenToHideArray = parentProps.get(MergedResourceConstants.PN_HIDE_CHILDREN, String[].class);
+                            if ( childrenToHideArray != null ) {
+                                for(final String name : childrenToHideArray ) {
+                                    if ( name.equals(baseRes.getName()) ) {
+                                        hidden = true;
+                                        break;
+                                    }
+                                }
+                            }
+                        }
+                        if ( !hidden ) {
+                            // Physical resource exists, add it to the list of mapped resources
+                            mappedResources.add(0, baseRes.getPath());
+                        }
                     }
                 }
 
@@ -119,9 +140,9 @@ public class MergedResourceProvider impl
 
                 // Browse children of current physical resource
                 for (final Resource child : mappedResource.getChildren()) {
-                    final String childRelativePath = ResourceUtil.normalize(mergedResource.getRelativePath() + "/" + child.getName());
+                    final String childRelativePath = mergedResource.getRelativePath() + "/" + child.getName();
 
-                    if (child.adaptTo(ValueMap.class).get(MergedResourceConstants.PN_HIDE_RESOURCE, Boolean.FALSE)) {
+                    if (ResourceUtil.getValueMap(child).get(MergedResourceConstants.PN_HIDE_RESOURCE, Boolean.FALSE)) {
                         // Child resource has to be hidden
                         children.remove(new MergedResource(resolver, mergeRootPath, childRelativePath));