You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:59:41 UTC

[sling-org-apache-sling-resourcemerger] annotated tag org.apache.sling.resourcemerger-1.2.10 created (now f062ba9)

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a change to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git.


      at f062ba9  (tag)
 tagging e2bbe5c9c6fedf4f921509797c1c51e74395048f (commit)
      by Radu Cotescu
      on Wed Jul 15 09:51:25 2015 +0000

- Log -----------------------------------------------------------------
org.apache.sling.resourcemerger-1.2.10
-----------------------------------------------------------------------

This annotated tag includes the following new commits:

     new a2fed28  SLING-2986 : Merged Resource Provider. Apply contribution by Gilles Knobloch
     new 4c9a3bc  SLING-2986 : Merged Resource Provider. Minor code changes and metatype info
     new 4e7cb83  SLING-2986 : remove accidentally added security property
     new e9da669  SLING-2986 : Fix path handling, especially when the root node is requested
     new 7118c57  SLING-2986 : Fix metadata handling
     new a5af909  SLING-2986 : Fix value map and property type handling
     new 6a8e82c  SLING-2986 : Minor code optimization
     new 6527512  SLING-2986 : Check if resource is hidden through properties (own or parent)
     new 61a953f  SLING-2986 : Check if resource is hidden through properties (own or parent)
     new 12e8054  SLING-2986 : Cache value map, implement hashCode and toString
     new 7abf60c  SLING-2986 : Use sling:resourceType property to define the resource type
     new 6c95810  SLING-2986 : Reimplement listChildren and make MergedResource immutable
     new 64d1911  SLING-2986 : Fix listChildren and add test case
     new 8618883  SLING-2986 : Remove unneeded null checks for search path, add test for property merging
     new 97c8967  SLING-2986 : Add test for resource type handling
     new 6c49a8d  Use new resource resolver mock testing lib
     new f5ca99b  Add test for hiding properties
     new d3fa422  SLING-2986 : Fix resource hiding when parent resource contains attribute but child resource is not available. Reduce resource getting to a minimum
     new 093d7a4  SLING-2986 : Reduce object creation for a resource
     new e52ec84  SLING-2986 : Rename mount point to /mnt/overlay
     new c6bb75c  SLING-3397 : Provide a way for path operations. Apply modified patch from Gilles Knobloch
     new b666a53  SLING-3397 : Provide a way for path operations. Apply modified patch from Gilles Knobloch
     new 62c6cbb  [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.0.0
     new 2af6f79  [maven-release-plugin] prepare for next development iteration
     new f043a23  SLING-3418 : Wrong path handling wrt search paths SLING-3419 : Component name specified instead of component label SLING-3420 : Implement ModifyingResourceProvider - first version
     new 68dcf37  SLING-3420 : Revert implementation of ModifyingResourceProvider and provide an utility method instead
     new 2b5dc7a  [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.1.0
     new a5d33d3  [maven-release-plugin] prepare for next development iteration
     new c6b604a  SLING-3451 : Support for deep reads from a value map
     new 4853e9d  Use released Sling API
     new d01d101  [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.1.2
     new 9915cfa  [maven-release-plugin] prepare for next development iteration
     new d8f00f5  Switch to current snapshot of api until release is out
     new 1cb3844  Use released Sling API 2.7.0
     new 613615e  Update to parent pom v19
     new 9262285  SLING-3521 : Merged resource is not available if parent folder is unreadable
     new 0429178  Update to latest parent pom 20
     new 7e8a9e9  SLING-3423 / SLING-3657 - adding MergedResourcePicker for implementing additional merged resource selection algorithms. Implmeneting OverridingResourcePicker to provide /mnt/override which merges resources based on the resource type hierarchy
     new ddecb4c  SLING-3423 - ResourceMergerService API must allow custom merge paths
     new 7177d76  SLING-3657 - adding metatype
     new 10e7537  SLING-3657 - requiring configuration to avoid excess registration
     new 02e184d  SLING-3909 : Merged ResourceProviders should be optionally modifiable
     new b355a95  SLING-3909 : Merged ResourceProviders should be optionally modifiable
     new 290ce09  Refactoring - put pickers into separate package, align name of CRUD implementation
     new 35e7df3  SLING-3423/SLING-3657 : Change return type of picker interface from iterator to List
     new 380a3e0  SLING-3909 : Merged ResourceProviders should be optionally modifiable
     new ee50068  Use a better pid as this is actually public api
     new ca4af83  Correct delete behaviour
     new e6c5e1d  SLING-3927 : Cleanup / deprecate ResourceMergerService
     new 2ed6a66  SLING-3909 : Merged ResourceProviders should be optionally modifiable
     new f2d2834  SLING-3909 : Merged ResourceProviders should be optionally modifiable
     new 72da0b1  Update to Sling Parent POM 22 with baselining enabled
     new d85b336  [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.0
     new 59590ad  [maven-release-plugin] prepare for next development iteration
     new 68333e8  SLING-4247 : Reconsider resource type handling
     new 0989a7c  Add a new test case
     new 069ecb1  SLING-4311 - have the overriding resource picker create stub (non-existing) resources to accommodate for missing hierarchy nodes.
     new 477ce3d  [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.2
     new 50ec08b  [maven-release-plugin] prepare for next development iteration
     new 36a5fb2  SLING-4311 - edge case where reusing an hidden ancestor name caused the wrong resource to be hidden
     new 91be8e7  SLING-4311 - edge case where reusing an hidden ancestor name caused the wrong resource to be hidden
     new 1ba1bb4  SLING-4340 - getting the resource type property *first* and then falling back to the first non-null getResourceType() result.
     new d824761  SLING-4247 : clean up code and add missing break
     new 65864b6  SLING-4247 : clean up code and add missing break
     new 916191e  Remove wrong break statement again
     new 677a077  SLING-4340 : SLING-4247 created odd side-effects
     new 887f936  [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.4
     new 3f3cfd7  [maven-release-plugin] prepare for next development iteration
     new f529898  SLING-4398 : Potential NPE when non existing resource has no parent
     new 11fb113  [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.6
     new 1c09315  [maven-release-plugin] prepare for next development iteration
     new 0b50e21  SLING-4468 - fixing case where parent is missing but grandparent is available
     new a66f602  [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.8
     new 41d183b  [maven-release-plugin] prepare for next development iteration
     new b1a0be7  SLING-4568 : Performance: MergingResourceProvider.ParentHidingHandler adds about 30pp rendering overhead. Apply partial patch from Joel Richard
     new 72cd433  SLING-4653 : [Regression] Merging resource provider is traversing parent hierarchy for finding hide properties
     new f73c6a1  SLING-4568 : Performance: MergingResourceProvider.ParentHidingHandler adds about 30pp rendering overhead. Apply slightly modified patch from Joel Richard
     new 57cf2bc  SLING-4568 : Performance: MergingResourceProvider.ParentHidingHandler adds about 30pp rendering overhead. Apply slightly modified patch from Joel Richard
     new 7a9b67c  Update contrib modules to Parent 23
     new 28ee44c  set parent version to 24 and add empty relativePath where missing
     new 8e5af97  SLING-4878 - Resource Merger: Infinite loop in case a parent resource has one of its children as a supertype
     new ce83fb1  trivial: updated JavaDoc to comply with Java 1.8
     new 5042a61  [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.10
     new e2bbe5c  [maven-release-plugin] copy for tag org.apache.sling.resourcemerger-1.2.10

The 84 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


-- 
To stop receiving notification emails like this one, please contact
['"commits@sling.apache.org" <co...@sling.apache.org>'].

[sling-org-apache-sling-resourcemerger] 15/31: [maven-release-plugin] prepare for next development iteration

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 3f3cfd76710840f3385d0ee864a1788c346e16d7
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Feb 4 12:44:38 2015 +0000

    [maven-release-plugin] prepare for next development iteration
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1657172 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 03d867a..fe60cc9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.resourcemerger</artifactId>
     <packaging>bundle</packaging>
-    <version>1.2.4</version>
+    <version>1.2.5-SNAPSHOT</version>
 
     <name>Apache Sling Resource Merger</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.4</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.4</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.resourcemerger-1.2.4</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 27/31: set parent version to 24 and add empty relativePath where missing

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 28ee44ce0913d932c221e89368d72945007a2824
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Tue Jul 7 07:36:29 2015 +0000

    set parent version to 24 and add empty relativePath where missing
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1689588 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5d1c8c9..bf16c41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>23</version>
+        <version>24</version>
         <relativePath />
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 28/31: SLING-4878 - Resource Merger: Infinite loop in case a parent resource has one of its children as a supertype

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 8e5af97dcf551d56dd86eebd42f53047bee4b73d
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Wed Jul 15 08:30:34 2015 +0000

    SLING-4878 - Resource Merger: Infinite loop in case a parent resource has one of its children as a supertype
    
    * fixed infinite loop if an inheritance loop exists
    (applied patch from Vlad Bailescu)
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1691143 13f79535-47bb-0310-9956-ffa450edef68
---
 .../impl/picker/OverridingResourcePicker.java        |  8 +++++++-
 .../impl/OverridingResourceProviderTest.java         | 20 ++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java b/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
index 49090ec..40ac7b8 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
@@ -20,7 +20,9 @@ package org.apache.sling.resourcemerger.impl.picker;
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.ConfigurationPolicy;
@@ -52,6 +54,7 @@ public class OverridingResourcePicker implements MergedResourcePicker {
     public List<Resource> pickResources(ResourceResolver resolver, String relativePath) {
         String absPath = "/" + relativePath;
         final List<Resource> resources = new ArrayList<Resource>();
+        final Set<String> roots = new HashSet<String>();
 
         Resource currentTarget = resolver.getResource(absPath);
 
@@ -70,7 +73,9 @@ public class OverridingResourcePicker implements MergedResourcePicker {
                 final Resource inheritanceRootResource = info.resource;
                 final String pathRelativeToInheritanceRoot = info.getPathRelativeToInheritanceRoot();
                 final String superType = inheritanceRootResource.getResourceSuperType();
-                if (superType == null) {
+
+                if (superType == null
+                       || roots.contains(inheritanceRootResource.getPath())) { // avoid inheritance loops
                     currentTarget = null;
                 } else {
                     final String superTypeChildPath = superType + pathRelativeToInheritanceRoot;
@@ -81,6 +86,7 @@ public class OverridingResourcePicker implements MergedResourcePicker {
                         currentTarget = new StubResource(resolver, superTypeChildPath);
                     }
                     resources.add(currentTarget);
+                    roots.add(inheritanceRootResource.getPath());
                 }
             }
         }
diff --git a/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java b/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
index 7531002..8017f1f 100644
--- a/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
+++ b/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
@@ -62,6 +62,9 @@ public class OverridingResourceProviderTest {
      *
      * /apps/a/2 has the super type of /apps/a/1
      * /apps/a/3 has the super type of /apps/a/2
+     *
+     * /apps/a/4 has the super type of /apps/a/4/b/4
+     * /apps/x has the super type of x/y
      */
     @Before
     public void setup() throws Exception {
@@ -85,6 +88,13 @@ public class OverridingResourceProviderTest {
                     .resource("/apps/a/2").p(SUPER_TYPE, "a/1").p("b", "2").p(MergedResourceConstants.PN_HIDE_CHILDREN, new String[] {"b"})
                     .resource("c").p("1", "c")
                     .resource("/apps/a/3").p(SUPER_TYPE, "a/2")
+                    .resource("/apps/a/4").p(SUPER_TYPE, "/apps/a/4/b/4")
+                    .resource("b")
+                    .resource("4")
+                    .resource("d")
+                    .resource("/apps/x").p(SUPER_TYPE, "x/y")
+                    .resource("y")
+                    .resource("z")
                     .commit();
 
         this.provider = new MergingResourceProvider("/override", new OverridingResourcePicker(), false, true);
@@ -168,4 +178,14 @@ public class OverridingResourceProviderTest {
         assertNotNull(d1a);
     }
 
+    @Test
+    public void testLoopInInheritance() {
+        final Resource rsrcA4 = this.provider.getResource(this.resolver, "/override/apps/a/4");
+
+        Resource d = getChildResource(rsrcA4, "d");
+        assertNotNull(d);
+
+        final Resource z = this.provider.getResource(this.resolver, "/override/apps/x/z");
+        assertNotNull(z);
+    }
 }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 29/31: trivial: updated JavaDoc to comply with Java 1.8

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit ce83fb121cd9bf1365f0cdf8aeed13e06957e539
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Wed Jul 15 09:49:39 2015 +0000

    trivial: updated JavaDoc to comply with Java 1.8
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1691152 13f79535-47bb-0310-9956-ffa450edef68
---
 .../java/org/apache/sling/resourcemerger/api/ResourceMergerService.java | 2 +-
 src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/api/ResourceMergerService.java b/src/main/java/org/apache/sling/resourcemerger/api/ResourceMergerService.java
index 62e178d..c13081c 100644
--- a/src/main/java/org/apache/sling/resourcemerger/api/ResourceMergerService.java
+++ b/src/main/java/org/apache/sling/resourcemerger/api/ResourceMergerService.java
@@ -35,7 +35,7 @@ public interface ResourceMergerService {
      *
      * @param relativePath The relative path
      * @return Returns the merged resource path
-     * @throw IllegalArgumentException if relativePath is <code>null</code> or absolute
+     * @throws IllegalArgumentException if relativePath is <code>null</code> or absolute
      */
     String getMergedResourcePath(String relativePath);
 
diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java
index 764feb4..d0bfe6b 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java
@@ -47,7 +47,7 @@ public class MergedValueMap extends ValueMapDecorator {
     /**
      * Constructor
      *
-     * @param resource The merged resource to get properties from
+     * @param valueMaps a list of value maps to be aggregated into <i>this</i> value map
      */
     public MergedValueMap(final List<ValueMap> valueMaps) {
         super(new HashMap<String, Object>());

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 24/31: SLING-4568 : Performance: MergingResourceProvider.ParentHidingHandler adds about 30pp rendering overhead. Apply slightly modified patch from Joel Richard

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit f73c6a1a542a1061a36048ccb1104fc0172caec2
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Apr 27 11:23:03 2015 +0000

    SLING-4568 : Performance: MergingResourceProvider.ParentHidingHandler adds about 30pp rendering overhead. Apply slightly modified patch from Joel Richard
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1676239 13f79535-47bb-0310-9956-ffa450edef68
---
 .../impl/CRUDMergingResourceProvider.java          | 28 +++++++++++++--------
 .../impl/MergingResourceProvider.java              | 29 ++++++++++++++--------
 2 files changed, 36 insertions(+), 21 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
index 6197263..91cb218 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
@@ -63,22 +63,30 @@ public class CRUDMergingResourceProvider
         holder.count = 0;
 
         // Loop over resources
+        boolean isUnderlying = true;
         final Iterator<Resource> iter = this.picker.pickResources(resolver, relativePath).iterator();
         while ( iter.hasNext() ) {
             final Resource rsrc = iter.next();
             holder.count++;
             holder.highestResourcePath = rsrc.getPath();
-            if ( !ResourceUtil.isNonExistingResource(rsrc) ) {
-                // check parent for hiding
-                final Resource parent = rsrc.getParent();
-                if ( parent != null ) {
-                    final boolean hidden = new ParentHidingHandler(parent, this.traverseHierarchie).isHidden(holder.name);
-                    if ( hidden ) {
-                        holder.resources.clear();
-                    } else {
-                        holder.resources.add(rsrc);
-                    }
+
+            if (!ResourceUtil.isNonExistingResource(rsrc)) {
+                final boolean hidden;
+                if (isUnderlying) {
+                    hidden = false;
+                } else {
+                    // check parent for hiding
+                    // SLING 3521 : if parent is not readable, nothing is hidden
+                    final Resource parent = rsrc.getParent();
+                    hidden = (parent == null ? false : new ParentHidingHandler(parent, this.traverseHierarchie).isHidden(holder.name));
+                }
+                if (hidden) {
+                    holder.resources.clear();
+                } else {
+                    holder.resources.add(rsrc);
                 }
+            } else {
+                isUnderlying = false;
             }
         }
 
diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
index 6682b8d..3ae6a5a 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
@@ -70,6 +70,10 @@ class MergingResourceProvider implements ResourceProvider {
         }
     }
 
+    /**
+     * Class to check whether a child resource must be hidden. It should not be instantiated for the underlying resource
+     * tree (which is /libs by default) because this check is expensive.
+     */
     protected static final class ParentHidingHandler {
 
         private List<ExcludeEntry> entries = new ArrayList<ExcludeEntry>();
@@ -213,16 +217,14 @@ class MergingResourceProvider implements ResourceProvider {
                 return null;
             }
 
-            boolean first = true;
+            boolean isUnderlying = true;
             while (resources.hasNext()) {
                 final Resource resource = resources.next();
 
                 final boolean hidden;
-                if (first) {
-                    // The ParentHidingHandler does not have to be executed for the first resource because it isn't an
-                    // overlay. This can drastically improve the performance in some cases.
+                if (isUnderlying) {
                     hidden = false;
-                    first = false;
+                    isUnderlying = false;
                 } else {
                     // check parent for hiding
                     // SLING 3521 : if parent is not readable, nothing is hidden
@@ -254,9 +256,12 @@ class MergingResourceProvider implements ResourceProvider {
 
             final Iterator<Resource> resources = picker.pickResources(resolver, relativePath).iterator();
 
+            boolean isUnderlying = true;
             while (resources.hasNext()) {
                 Resource parentResource = resources.next();
-                final ParentHidingHandler handler = new ParentHidingHandler(parentResource, this.traverseHierarchie);
+                final ParentHidingHandler handler = !isUnderlying ? new ParentHidingHandler(parentResource, this.traverseHierarchie) : null;
+                isUnderlying = false;
+
                 for (final Resource child : parentResource.getChildren()) {
                     final String rsrcName = child.getName();
                     ResourceHolder holder = null;
@@ -294,11 +299,13 @@ class MergingResourceProvider implements ResourceProvider {
                         candidates.remove(candidates.size() - 1);
                     }
                 }
-                final Iterator<ResourceHolder> iter = candidates.iterator();
-                while (iter.hasNext()) {
-                    final ResourceHolder holder = iter.next();
-                    if (handler.isHidden(holder.name)) {
-                        iter.remove();
+                if (handler != null) {
+                    final Iterator<ResourceHolder> iter = candidates.iterator();
+                    while (iter.hasNext()) {
+                        final ResourceHolder holder = iter.next();
+                        if (handler.isHidden(holder.name)) {
+                            iter.remove();
+                        }
                     }
                 }
             }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 25/31: SLING-4568 : Performance: MergingResourceProvider.ParentHidingHandler adds about 30pp rendering overhead. Apply slightly modified patch from Joel Richard

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 57cf2bc7f323a889c9d4b4e2b41f5ecedbb71eef
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Apr 27 11:39:24 2015 +0000

    SLING-4568 : Performance: MergingResourceProvider.ParentHidingHandler adds about 30pp rendering overhead. Apply slightly modified patch from Joel Richard
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1676240 13f79535-47bb-0310-9956-ffa450edef68
---
 .../impl/CRUDMergingResourceProvider.java          | 29 ++++++++++------------
 1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
index 91cb218..f0fe40c 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
@@ -70,23 +70,20 @@ public class CRUDMergingResourceProvider
             holder.count++;
             holder.highestResourcePath = rsrc.getPath();
 
-            if (!ResourceUtil.isNonExistingResource(rsrc)) {
-                final boolean hidden;
-                if (isUnderlying) {
-                    hidden = false;
-                } else {
-                    // check parent for hiding
-                    // SLING 3521 : if parent is not readable, nothing is hidden
-                    final Resource parent = rsrc.getParent();
-                    hidden = (parent == null ? false : new ParentHidingHandler(parent, this.traverseHierarchie).isHidden(holder.name));
-                }
-                if (hidden) {
-                    holder.resources.clear();
-                } else {
-                    holder.resources.add(rsrc);
-                }
-            } else {
+            final boolean hidden;
+            if (isUnderlying) {
                 isUnderlying = false;
+                hidden = false;
+            } else {
+                // check parent for hiding
+                // SLING 3521 : if parent is not readable, nothing is hidden
+                final Resource parent = rsrc.getParent();
+                hidden = (parent == null ? false : new ParentHidingHandler(parent, this.traverseHierarchie).isHidden(holder.name));
+            }
+            if (hidden) {
+                holder.resources.clear();
+            } else if (!ResourceUtil.isNonExistingResource(rsrc)) {
+                holder.resources.add(rsrc);
             }
         }
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 20/31: [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.8

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit a66f6029f16d327ea333381220c74ed7f9313513
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Mar 9 08:33:48 2015 +0000

    [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.8
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1665151 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index c2340d3..b688af9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.resourcemerger</artifactId>
     <packaging>bundle</packaging>
-    <version>1.2.7-SNAPSHOT</version>
+    <version>1.2.8</version>
 
     <name>Apache Sling Resource Merger</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.8</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.8</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.resourcemerger-1.2.8</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 11/31: SLING-4247 : clean up code and add missing break

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 65864b67094225d1e95aedb78dae0b90295235f2
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Jan 26 14:40:00 2015 +0000

    SLING-4247 : clean up code and add missing break
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1654818 13f79535-47bb-0310-9956-ffa450edef68
---
 src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
index 118f44e..73d6ca1 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
@@ -71,6 +71,7 @@ public class MergedResource extends AbstractResource {
                 final String value = rsrc.getResourceType();
                 if ( value != null ) {
                     rt = value;
+                    break;
                 }
             }
         }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 16/31: SLING-4398 : Potential NPE when non existing resource has no parent

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit f5298988abbaab056ecc562577e6569b39327d94
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Feb 10 13:10:15 2015 +0000

    SLING-4398 : Potential NPE when non existing resource has no parent
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1658706 13f79535-47bb-0310-9956-ffa450edef68
---
 .../org/apache/sling/resourcemerger/impl/MergingResourceProvider.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
index 08d68df..3bc3af7 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
@@ -211,7 +211,7 @@ class MergingResourceProvider implements ResourceProvider {
                 // check parent for hiding
                 // SLING 3521 : if parent is not readable, nothing is hidden
                 final Resource parent = resource.getParent();
-                final boolean hidden = new ParentHidingHandler(parent).isHidden(holder.name);
+                final boolean hidden = (parent == null ? false : new ParentHidingHandler(parent).isHidden(holder.name));
                 if (hidden) {
                     holder.resources.clear();
                 } else if (!ResourceUtil.isNonExistingResource(resource)) {

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 09/31: SLING-4340 - getting the resource type property *first* and then falling back to the first non-null getResourceType() result.

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 1ba1bb453b0c918d5c44ec3afb733c97538d75b8
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Wed Jan 21 17:05:14 2015 +0000

    SLING-4340 - getting the resource type property *first* and then falling back to the first non-null getResourceType() result.
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1653604 13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/sling/resourcemerger/impl/MergedResource.java    | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
index 2a76ae7..118f44e 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
@@ -64,11 +64,14 @@ public class MergedResource extends AbstractResource {
         this.path = (relativePath.length() == 0 ? mergeRootPath : mergeRootPath + "/" + relativePath);
         this.properties = new DeepReadValueMapDecorator(this, new MergedValueMap(valueMaps));
         // get resource type
-        String rt = (relativePath.length() == 0 ? "/" : relativePath);
-        for(final Resource rsrc : mappedResources) {
-            final String value = rsrc.getResourceType();
-            if ( value != null ) {
-                rt = value;
+        String rt = this.properties.get(ResourceResolver.PROPERTY_RESOURCE_TYPE, String.class);
+        if (rt == null) {
+            rt = relativePath.length() == 0 ? "/" : relativePath;
+            for(final Resource rsrc : mappedResources) {
+                final String value = rsrc.getResourceType();
+                if ( value != null ) {
+                    rt = value;
+                }
             }
         }
         this.resourceType = rt;

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 30/31: [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.10

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 5042a61c7056ded82c38130be2c9dc9b7712b88c
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Wed Jul 15 09:51:12 2015 +0000

    [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.10
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1691156 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index bf16c41..3f27c4b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.resourcemerger</artifactId>
     <packaging>bundle</packaging>
-    <version>1.2.9-SNAPSHOT</version>
+    <version>1.2.10</version>
 
     <name>Apache Sling Resource Merger</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.10</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.10</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.resourcemerger-1.2.10</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 02/31: SLING-4247 : Reconsider resource type handling

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 68333e87a121362406bd019fa38b5d952373a90d
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Jan 6 15:41:24 2015 +0000

    SLING-4247 : Reconsider resource type handling
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1649839 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/resourcemerger/impl/MergedResource.java  | 10 +++++-
 .../sling/resourcemerger/impl/MergedValueMap.java  | 36 ++++++++--------------
 2 files changed, 21 insertions(+), 25 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
index ae8c0bf..2a76ae7 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
@@ -63,7 +63,15 @@ public class MergedResource extends AbstractResource {
         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;
diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java
index 4bb186d..764feb4 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java
@@ -53,38 +53,26 @@ public class MergedValueMap extends ValueMapDecorator {
         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);
-    }
 }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 19/31: SLING-4468 - fixing case where parent is missing but grandparent is available

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 0b50e2121367c96a822ee3bd75e2b4693aba7328
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Mon Mar 2 15:35:44 2015 +0000

    SLING-4468 - fixing case where parent is missing but grandparent is available
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1663332 13f79535-47bb-0310-9956-ffa450edef68
---
 .../impl/picker/OverridingResourcePicker.java      | 43 +++++++++++++++-------
 .../impl/OverridingResourceProviderTest.java       | 11 ++++++
 2 files changed, 40 insertions(+), 14 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java b/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
index 878db88..febeffc 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
@@ -63,25 +63,25 @@ public class OverridingResourcePicker implements MergedResourcePicker {
         resources.add(currentTarget);
 
         while (currentTarget != null) {
-            final Resource inheritanceRootResource = findInheritanceRoot(currentTarget);
-            if (inheritanceRootResource == null) {
+            final InheritanceRootInfo info = new InheritanceRootInfo();
+            findInheritanceRoot(currentTarget, info);
+            if (info.resource == null) {
                 currentTarget = null;
             } else {
-                final String relPath = currentTarget.getPath()
-                        .substring(inheritanceRootResource.getPath().length());
+                final Resource inheritanceRootResource = info.resource;
+                final String pathRelativeToInheritanceRoot = info.getPathRelativeToInheritanceRoot();
                 final String superType = inheritanceRootResource.getResourceSuperType();
                 if (superType == null) {
                     currentTarget = null;
                 } else {
-                    final String superTypeChildPath = superType + relPath;
+                    final String superTypeChildPath = superType + pathRelativeToInheritanceRoot;
                     final Resource superTypeResource = resolver.getResource(superTypeChildPath);
                     if (superTypeResource != null) {
-                        resources.add(superTypeResource);
                         currentTarget = superTypeResource;
                     } else {
-                        resources.add(new NonExistingResource(resolver, superTypeChildPath));
-                        currentTarget = null;
+                        currentTarget = new StubResource(resolver, superTypeChildPath);
                     }
+                    resources.add(currentTarget);
                 }
             }
         }
@@ -91,18 +91,33 @@ public class OverridingResourcePicker implements MergedResourcePicker {
         return resources;
     }
 
-    private Resource findInheritanceRoot(final Resource target) {
+    private void findInheritanceRoot(final Resource target, final InheritanceRootInfo info) {
         String superType = target.getResourceSuperType();
         if (superType != null) {
-            return target;
+            info.resource = target;
         } else {
             Resource parent = target.getParent();
-            if (parent == null) {
-                return null;
-            } else {
-                return findInheritanceRoot(parent);
+            if (parent != null) {
+                info.addLevel(target.getName());
+                findInheritanceRoot(parent, info);
             }
         }
     }
 
+    // Using a value object here as a sort-of tuple because the original
+    // way of calculating the relative path of the current resource from the
+    // inheritance root did not deal with missing resources.
+    private class InheritanceRootInfo {
+        private Resource resource;
+        private final StringBuilder pathRelativeToInheritanceRoot = new StringBuilder();
+
+        private String getPathRelativeToInheritanceRoot() {
+            return pathRelativeToInheritanceRoot.toString();
+        }
+
+        private void addLevel(String name) {
+            pathRelativeToInheritanceRoot.insert(0, name).insert(0, '/');
+        }
+    }
+
 }
diff --git a/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java b/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
index fced547..acbe0b8 100644
--- a/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
+++ b/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
@@ -58,8 +58,10 @@ public class OverridingResourceProviderTest {
      * /apps/a/1/d/1/b/1
      * /apps/a/1/c
      * /apps/a/2/c
+     * /apps/a/3
      * 
      * /apps/a/2 has the super type of /apps/a/1
+     * /apps/a/3 has the super type of /apps/a/2
      */
     @Before
     public void setup() throws Exception {
@@ -82,6 +84,7 @@ public class OverridingResourceProviderTest {
                     .resource("/apps/a/1/c").p("1", "a").p("2", "b")
                     .resource("/apps/a/2").p(SUPER_TYPE, "a/1").p("b", "2").p(MergedResourceConstants.PN_HIDE_CHILDREN, new String[] {"b"})
                     .resource("c").p("1", "c")
+                    .resource("/apps/a/3").p(SUPER_TYPE, "a/2")
                     .commit();
 
         this.provider = new MergingResourceProvider("/override", new OverridingResourcePicker(), true);
@@ -108,6 +111,14 @@ public class OverridingResourceProviderTest {
     }
 
     @Test
+    public void testInheritingFromGrandParent() {
+        assertNotNull(this.provider.getResource(this.resolver, "/override/apps/a/3/a"));
+        assertNull(this.provider.getResource(this.resolver, "/override/apps/a/3/b"));
+        assertNotNull(this.provider.getResource(this.resolver, "/override/apps/a/3/c"));
+        assertNotNull(this.provider.getResource(this.resolver, "/override/apps/a/3/d"));
+    }
+
+    @Test
     public void testHideChildrenFromList() {
         final Resource rsrcA2 = this.provider.getResource(this.resolver, "/override/apps/a/2");
         final Iterator<Resource> children = this.provider.listChildren(rsrcA2);

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 18/31: [maven-release-plugin] prepare for next development iteration

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 1c093150371d35a0129ac0f728ebb6381bf9e91e
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Feb 12 02:17:43 2015 +0000

    [maven-release-plugin] prepare for next development iteration
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1659131 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 86c5ba1..c2340d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.resourcemerger</artifactId>
     <packaging>bundle</packaging>
-    <version>1.2.6</version>
+    <version>1.2.7-SNAPSHOT</version>
 
     <name>Apache Sling Resource Merger</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.6</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.6</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.resourcemerger-1.2.6</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 23/31: SLING-4653 : [Regression] Merging resource provider is traversing parent hierarchy for finding hide properties

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 72cd4333fcae3b39b37b94bea902a82391bd25e9
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Apr 23 15:26:28 2015 +0000

    SLING-4653 : [Regression] Merging resource provider is traversing parent hierarchy for finding hide properties
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1675623 13f79535-47bb-0310-9956-ffa450edef68
---
 .../resourcemerger/impl/CRUDMergingResourceProvider.java  |  7 ++++---
 .../impl/MergedResourcePickerWhiteboard.java              |  3 ++-
 .../resourcemerger/impl/MergingResourceProvider.java      | 15 +++++++++++----
 .../impl/MergingResourceProviderFactory.java              | 14 +++++++++-----
 .../impl/picker/OverridingResourcePicker.java             |  5 ++---
 .../sling/resourcemerger/spi/MergedResourcePicker.java    |  8 ++++++++
 .../org/apache/sling/resourcemerger/spi/package-info.java |  2 +-
 .../resourcemerger/impl/MergedResourceProviderTest.java   |  2 +-
 .../impl/OverridingResourceProviderTest.java              |  4 ++--
 9 files changed, 40 insertions(+), 20 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
index 1ef1d6b..6197263 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
@@ -40,8 +40,9 @@ public class CRUDMergingResourceProvider
     implements ModifyingResourceProvider {
 
     public CRUDMergingResourceProvider(final String mergeRootPath,
-            final MergedResourcePicker picker) {
-        super(mergeRootPath, picker, false);
+            final MergedResourcePicker picker,
+            final boolean traverseHierarchie) {
+        super(mergeRootPath, picker, false, traverseHierarchie);
     }
 
     private static final class ExtendedResourceHolder {
@@ -71,7 +72,7 @@ public class CRUDMergingResourceProvider
                 // check parent for hiding
                 final Resource parent = rsrc.getParent();
                 if ( parent != null ) {
-                    final boolean hidden = new ParentHidingHandler(parent).isHidden(holder.name);
+                    final boolean hidden = new ParentHidingHandler(parent, this.traverseHierarchie).isHidden(holder.name);
                     if ( hidden ) {
                         holder.resources.clear();
                     } else {
diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourcePickerWhiteboard.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourcePickerWhiteboard.java
index 8954a75..dd411b4 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourcePickerWhiteboard.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourcePickerWhiteboard.java
@@ -64,7 +64,8 @@ public class MergedResourcePickerWhiteboard implements ServiceTrackerCustomizer
             final String mergeRoot = PropertiesUtil.toString(reference.getProperty(MergedResourcePicker.MERGE_ROOT), null);
             if (mergeRoot != null) {
                 final ResourceProviderFactory providerFactory = new MergingResourceProviderFactory(mergeRoot, picker,
-                        PropertiesUtil.toBoolean(reference.getProperty(MergedResourcePicker.READ_ONLY), true));
+                        PropertiesUtil.toBoolean(reference.getProperty(MergedResourcePicker.READ_ONLY), true),
+                        PropertiesUtil.toBoolean(reference.getProperty(MergedResourcePicker.TRAVERSE_PARENT), false));
                 final Dictionary<Object, Object> props = new Hashtable<Object, Object>();
                 props.put(ResourceProvider.ROOTS, mergeRoot);
                 props.put(ResourceProvider.OWNS_ROOTS, true);
diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
index fac390c..6682b8d 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
@@ -39,12 +39,16 @@ class MergingResourceProvider implements ResourceProvider {
 
     private final boolean readOnly;
 
+    protected final boolean traverseHierarchie;
+
     MergingResourceProvider(final String mergeRootPath,
             final MergedResourcePicker picker,
-            final boolean readOnly) {
+            final boolean readOnly,
+            final boolean traverseHierarchie) {
         this.mergeRootPath = mergeRootPath;
         this.picker = picker;
         this.readOnly = readOnly;
+        this.traverseHierarchie = traverseHierarchie;
     }
 
     protected static final class ExcludeEntry {
@@ -70,7 +74,7 @@ class MergingResourceProvider implements ResourceProvider {
 
         private List<ExcludeEntry> entries = new ArrayList<ExcludeEntry>();
 
-        public ParentHidingHandler(final Resource parent) {
+        public ParentHidingHandler(final Resource parent, final boolean traverseParent) {
             final ValueMap parentProps = parent.getValueMap();
             final String[] childrenToHideArray = parentProps.get(MergedResourceConstants.PN_HIDE_CHILDREN, String[].class);
             if (childrenToHideArray != null) {
@@ -95,6 +99,9 @@ class MergingResourceProvider implements ResourceProvider {
                             }
                         }
                     }
+                    if ( !traverseParent ) {
+                        break;
+                    }
                     previousAncestorName = ancestor.getName();
                     ancestor = ancestor.getParent();
                 }
@@ -220,7 +227,7 @@ class MergingResourceProvider implements ResourceProvider {
                     // check parent for hiding
                     // SLING 3521 : if parent is not readable, nothing is hidden
                     final Resource parent = resource.getParent();
-                    hidden = (parent == null ? false : new ParentHidingHandler(parent).isHidden(holder.name));
+                    hidden = (parent == null ? false : new ParentHidingHandler(parent, this.traverseHierarchie).isHidden(holder.name));
                 }
                 if (hidden) {
                     holder.resources.clear();
@@ -249,7 +256,7 @@ class MergingResourceProvider implements ResourceProvider {
 
             while (resources.hasNext()) {
                 Resource parentResource = resources.next();
-                final ParentHidingHandler handler = new ParentHidingHandler(parentResource);
+                final ParentHidingHandler handler = new ParentHidingHandler(parentResource, this.traverseHierarchie);
                 for (final Resource child : parentResource.getChildren()) {
                     final String rsrcName = child.getName();
                     ResourceHolder holder = null;
diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProviderFactory.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProviderFactory.java
index 72bbddf..8760747 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProviderFactory.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProviderFactory.java
@@ -33,28 +33,32 @@ class MergingResourceProviderFactory implements ResourceProviderFactory {
 
     private final boolean readOnly;
 
+    private final boolean traverseHierarchie;
+
     MergingResourceProviderFactory(final String mergeRootPath,
             final MergedResourcePicker picker,
-            final boolean readOnly) {
+            final boolean readOnly,
+            final boolean traverseHierarchie) {
         this.mergeRootPath = mergeRootPath;
         this.picker = picker;
         this.readOnly = readOnly;
+        this.traverseHierarchie = traverseHierarchie;
     }
 
     public ResourceProvider getResourceProvider(final Map<String, Object> authenticationInfo)
     throws LoginException {
         if ( this.readOnly ) {
-            return new MergingResourceProvider(mergeRootPath, picker, this.readOnly);
+            return new MergingResourceProvider(mergeRootPath, picker, this.readOnly, this.traverseHierarchie);
         }
-        return new CRUDMergingResourceProvider(mergeRootPath, picker);
+        return new CRUDMergingResourceProvider(mergeRootPath, picker, this.traverseHierarchie);
     }
 
     public ResourceProvider getAdministrativeResourceProvider(final Map<String, Object> authenticationInfo)
     throws LoginException {
         if ( this.readOnly ) {
-            return new MergingResourceProvider(mergeRootPath, picker, this.readOnly);
+            return new MergingResourceProvider(mergeRootPath, picker, this.readOnly, this.traverseHierarchie);
         }
-        return new CRUDMergingResourceProvider(mergeRootPath, picker);
+        return new CRUDMergingResourceProvider(mergeRootPath, picker, this.traverseHierarchie);
     }
 
 }
diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java b/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
index febeffc..49090ec 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
@@ -27,7 +27,6 @@ import org.apache.felix.scr.annotations.ConfigurationPolicy;
 import org.apache.felix.scr.annotations.Properties;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Service;
-import org.apache.sling.api.resource.NonExistingResource;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.resourcemerger.impl.StubResource;
@@ -43,8 +42,8 @@ import org.apache.sling.resourcemerger.spi.MergedResourcePicker;
             label = "Root", description = "Root path at which merged resources will be available."),
     @Property(name=MergedResourcePicker.READ_ONLY, boolValue=true,
     label="Read Only",
-    description="Specifies if the resources are read-only or can be modified.")
-
+    description="Specifies if the resources are read-only or can be modified."),
+    @Property(name=MergedResourcePicker.TRAVERSE_PARENT, boolValue=true, propertyPrivate=true)
 })
 public class OverridingResourcePicker implements MergedResourcePicker {
 
diff --git a/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker.java b/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker.java
index f5619ab..d3d0935 100644
--- a/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker.java
+++ b/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker.java
@@ -51,6 +51,14 @@ public interface MergedResourcePicker {
     String READ_ONLY = "merge.readOnly";
 
     /**
+     * Service property name specifying whether the parent hierarchy is
+     * traversed to check for hiding properties. If not specified this
+     * property defaults to <code>false</code>. The value of this
+     * property must be of type Boolean.
+     */
+    String TRAVERSE_PARENT = "merge.traverseParent";
+
+    /**
      * Method invoked by the MergingResourceProvider to identify the resources to be merged for a given
      * relative path. The resources returned may be either resources returned from the ResourceResolver
      * directory or an instance of NonExistingResource.
diff --git a/src/main/java/org/apache/sling/resourcemerger/spi/package-info.java b/src/main/java/org/apache/sling/resourcemerger/spi/package-info.java
index 68a22a6..a97f861 100644
--- a/src/main/java/org/apache/sling/resourcemerger/spi/package-info.java
+++ b/src/main/java/org/apache/sling/resourcemerger/spi/package-info.java
@@ -20,7 +20,7 @@
 /**
  * Provides a service to merge multiple physical resources into a single one
  */
-@Version("1.0.0")
+@Version("1.1.0")
 package org.apache.sling.resourcemerger.spi;
 
 import aQute.bnd.annotation.Version;
diff --git a/src/test/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderTest.java b/src/test/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderTest.java
index 73b24cb..587dde0 100644
--- a/src/test/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderTest.java
+++ b/src/test/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderTest.java
@@ -81,7 +81,7 @@ public class MergedResourceProviderTest {
                                           .resource("/libs/a/Y/c")
                                         .commit();
 
-        this.provider = new CRUDMergingResourceProvider("/merged", new MergingResourcePicker());
+        this.provider = new CRUDMergingResourceProvider("/merged", new MergingResourcePicker(), false);
     }
 
     @Test public void testHideChildren() {
diff --git a/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java b/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
index acbe0b8..7531002 100644
--- a/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
+++ b/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
@@ -59,7 +59,7 @@ public class OverridingResourceProviderTest {
      * /apps/a/1/c
      * /apps/a/2/c
      * /apps/a/3
-     * 
+     *
      * /apps/a/2 has the super type of /apps/a/1
      * /apps/a/3 has the super type of /apps/a/2
      */
@@ -87,7 +87,7 @@ public class OverridingResourceProviderTest {
                     .resource("/apps/a/3").p(SUPER_TYPE, "a/2")
                     .commit();
 
-        this.provider = new MergingResourceProvider("/override", new OverridingResourcePicker(), true);
+        this.provider = new MergingResourceProvider("/override", new OverridingResourcePicker(), false, true);
     }
 
     @Test

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 05/31: [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.2

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 477ce3d823909c0dfdb6f5d7b3ecf41219415943
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Sat Jan 17 10:45:35 2015 +0000

    [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.2
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1652576 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 9476e40..8cd69e5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.resourcemerger</artifactId>
     <packaging>bundle</packaging>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2</version>
 
     <name>Apache Sling Resource Merger</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.2</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.2</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.resourcemerger-1.2.2</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 01/31: [maven-release-plugin] prepare for next development iteration

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 59590ad7397f69215272b61d97ffb4402c6d1ed4
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Mon Nov 24 22:18:57 2014 +0000

    [maven-release-plugin] prepare for next development iteration
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1641498 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 2734443..9476e40 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.resourcemerger</artifactId>
     <packaging>bundle</packaging>
-    <version>1.2.0</version>
+    <version>1.2.1-SNAPSHOT</version>
 
     <name>Apache Sling Resource Merger</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.0</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.0</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.resourcemerger-1.2.0</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 12/31: Remove wrong break statement again

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 916191e399f7e5edca008de593accd429ae96713
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Jan 28 09:46:11 2015 +0000

    Remove wrong break statement again
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1655252 13f79535-47bb-0310-9956-ffa450edef68
---
 src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
index 73d6ca1..7b00b98 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
@@ -67,11 +67,11 @@ public class MergedResource extends AbstractResource {
         String rt = this.properties.get(ResourceResolver.PROPERTY_RESOURCE_TYPE, String.class);
         if (rt == null) {
             rt = relativePath.length() == 0 ? "/" : relativePath;
+            // use the resource type of the last resource in the set that provides one
             for(final Resource rsrc : mappedResources) {
                 final String value = rsrc.getResourceType();
                 if ( value != null ) {
                     rt = value;
-                    break;
                 }
             }
         }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 10/31: SLING-4247 : clean up code and add missing break

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit d824761e9ed3f172a73edc8c3e761cdce50c197b
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Jan 26 14:03:33 2015 +0000

    SLING-4247 : clean up code and add missing break
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1654805 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/resourcemerger/impl/CRUDMergingResourceProvider.java      | 2 --
 .../apache/sling/resourcemerger/impl/MergingResourceProvider.java   | 6 +++---
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
index 782b21e..1ef1d6b 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
@@ -30,7 +30,6 @@ 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.resourcemerger.spi.MergedResourcePicker;
 
 /**
@@ -48,7 +47,6 @@ public class CRUDMergingResourceProvider
     private static final class ExtendedResourceHolder {
         public final String name;
         public final List<Resource> resources = new ArrayList<Resource>();
-        public final List<ValueMap> valueMaps = new ArrayList<ValueMap>();
         public int count;
         public String highestResourcePath;
 
diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
index 82a9f91..08d68df 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
@@ -71,7 +71,7 @@ class MergingResourceProvider implements ResourceProvider {
         private List<ExcludeEntry> entries = new ArrayList<ExcludeEntry>();
 
         public ParentHidingHandler(final Resource parent) {
-            final ValueMap parentProps = ResourceUtil.getValueMap(parent);
+            final ValueMap parentProps = parent.getValueMap();
             final String[] childrenToHideArray = parentProps.get(MergedResourceConstants.PN_HIDE_CHILDREN, String[].class);
             if (childrenToHideArray != null) {
                 for (final String value : childrenToHideArray) {
@@ -83,7 +83,7 @@ class MergingResourceProvider implements ResourceProvider {
                 Resource ancestor = parent.getParent();
                 String previousAncestorName = parent.getName();
                 while (ancestor != null) {
-                    final ValueMap ancestorProps = ResourceUtil.getValueMap(ancestor);
+                    final ValueMap ancestorProps = ancestor.getValueMap();
                     final String[] ancestorChildrenToHideArray = ancestorProps.get(MergedResourceConstants.PN_HIDE_CHILDREN, String[].class);
                     if (ancestorChildrenToHideArray != null) {
                         for (final String value : ancestorChildrenToHideArray) {
@@ -117,7 +117,7 @@ class MergingResourceProvider implements ResourceProvider {
 
         /**
          * Determine if an entry should hide the named resource.
-         * 
+         *
          * @return a non-null value if the entry matches; a null value if it does not
          */
         private Boolean hides(final ExcludeEntry entry, final String name) {

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 26/31: Update contrib modules to Parent 23

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 7a9b67c18d94d599ef5eb3fbfef0ee1f39216676
Author: Robert Munteanu <ro...@apache.org>
AuthorDate: Thu Jun 25 13:10:59 2015 +0000

    Update contrib modules to Parent 23
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1687503 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index cb32e43..5d1c8c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>22</version>
+        <version>23</version>
         <relativePath />
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 04/31: SLING-4311 - have the overriding resource picker create stub (non-existing) resources to accommodate for missing hierarchy nodes.

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 069ecb1a138b93b49b4a9a309e6fb03895a0e8f2
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Wed Jan 14 22:36:57 2015 +0000

    SLING-4311 - have the overriding resource picker create stub (non-existing) resources to accommodate for missing hierarchy nodes.
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1651858 13f79535-47bb-0310-9956-ffa450edef68
---
 .../impl/MergingResourceProvider.java              | 45 +++++++++++--
 .../sling/resourcemerger/impl/StubResource.java    | 75 ++++++++++++++++++++++
 .../impl/picker/OverridingResourcePicker.java      | 48 +++++++-------
 .../impl/OverridingResourceProviderTest.java       | 35 ++++++++++
 4 files changed, 175 insertions(+), 28 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
index 917dd67..3ffbdf7 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
@@ -68,32 +68,65 @@ class MergingResourceProvider implements ResourceProvider {
 
     protected static final class ParentHidingHandler {
 
-        private List<ExcludeEntry> entries;
+        private List<ExcludeEntry> entries = new ArrayList<ExcludeEntry>();
 
         public ParentHidingHandler(final Resource parent) {
             final ValueMap parentProps = ResourceUtil.getValueMap(parent);
             final String[] childrenToHideArray = parentProps.get(MergedResourceConstants.PN_HIDE_CHILDREN, String[].class);
-            if ( childrenToHideArray != null ) {
-                this.entries = new ArrayList<ExcludeEntry>();
-                for(final String value : childrenToHideArray) {
+            if (childrenToHideArray != null) {
+                for (final String value : childrenToHideArray) {
                     final ExcludeEntry entry = new ExcludeEntry(value);
                     this.entries.add(entry);
                 }
             }
+            if (parent != null) {
+                Resource ancestor = parent.getParent();
+                while (ancestor != null) {
+                    String previousAncestorName = parent.getName();
+                    final ValueMap ancestorProps = ResourceUtil.getValueMap(ancestor);
+                    final String[] ancestorChildrenToHideArray = ancestorProps.get(MergedResourceConstants.PN_HIDE_CHILDREN, String[].class);
+                    if (ancestorChildrenToHideArray != null) {
+                        for (final String value : ancestorChildrenToHideArray) {
+                            final ExcludeEntry entry = new ExcludeEntry(value);
+                            final Boolean hides = hides(entry, previousAncestorName);
+                            if (hides != null && hides.booleanValue() == true) {
+                                this.entries.add(new ExcludeEntry("*"));
+                                break;
+                            }
+                        }
+                    }
+                    ancestor = ancestor.getParent();
+                }
+            }
         }
 
         public boolean isHidden(final String name) {
             boolean hidden = false;
             if ( this.entries != null ) {
                 for(final ExcludeEntry entry : this.entries) {
-                    if ( entry.name.equals("*") || entry.name.equals(name) ) {
-                        hidden = !entry.exclude;
+                    Boolean result = hides(entry, name);
+                    if (result != null) {
+                        hidden = result.booleanValue();
                         break;
                     }
                 }
             }
             return hidden;
         }
+
+        /**
+         * Determine if an entry should hide the named resource.
+         * 
+         * @return a non-null value if the entry matches; a null value if it does not
+         */
+        private Boolean hides(final ExcludeEntry entry, final String name) {
+            Boolean result = null;
+            if (entry.name.equals("*") || entry.name.equals(name)) {
+                result = Boolean.valueOf(!entry.exclude);
+            }
+            return result;
+        }
+
     }
 
     protected static final class ResourceHolder {
diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/StubResource.java b/src/main/java/org/apache/sling/resourcemerger/impl/StubResource.java
new file mode 100644
index 0000000..1ec7c3c
--- /dev/null
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/StubResource.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.resourcemerger.impl;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.resource.SyntheticResource;
+
+/**
+ * Simple helper class representing nonexisting resources.
+ * 
+ * This is similar to NonExistingResource, with the exception that it 
+ * always returns a valid resource for the parent resource unless
+ * this is a top level (e.g. /foo) path.
+ */
+public final class StubResource extends SyntheticResource {
+
+    /**
+     * Create a new stub resource.
+     * @param resourceResolver The resource resolver.
+     * @param resourceURI The path of the resource.
+     */
+    public StubResource(final ResourceResolver resourceResolver,
+            final String resourceURI) {
+        super(resourceResolver, resourceURI, RESOURCE_TYPE_NON_EXISTING);
+    }
+
+    /**
+     * @see org.apache.sling.api.resource.SyntheticResource#getResourceType()
+     */
+    public final String getResourceType() {
+        // overwrite to prevent overwriting of this method in extensions of
+        // this class because the specific resource type is the marker of a
+        // NonExistingResource
+        return RESOURCE_TYPE_NON_EXISTING;
+    }
+
+    public String toString() {
+        // overwrite to only list the class name and path, type is irrelevant
+        return getClass().getSimpleName() + ", path=" + getPath();
+    }
+
+    @Override
+    public Resource getParent() {
+        final Resource parent = super.getParent();
+        if (parent != null) {
+            return parent;
+        } else {
+            final String absPath = getPath();
+            final int lastIdx = absPath.lastIndexOf('/');
+            if (lastIdx <= 0) {
+                return null;
+            } else {
+                final String parentPath = absPath.substring(0, lastIdx);
+                return new StubResource(getResourceResolver(), parentPath);
+            }
+        }
+    }
+}
diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java b/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
index 1798a56..878db88 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/picker/OverridingResourcePicker.java
@@ -30,6 +30,7 @@ import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.resource.NonExistingResource;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.resourcemerger.impl.StubResource;
 import org.apache.sling.resourcemerger.spi.MergedResourcePicker;
 
 @Component(name = "org.apache.sling.resourcemerger.picker.overriding",
@@ -55,39 +56,42 @@ public class OverridingResourcePicker implements MergedResourcePicker {
 
         Resource currentTarget = resolver.getResource(absPath);
 
-        if (currentTarget != null) {
-            resources.add(currentTarget);
+        if (currentTarget == null) {
+            currentTarget = new StubResource(resolver, absPath);
+        }
+
+        resources.add(currentTarget);
 
-            while (currentTarget != null) {
-                final Resource inheritanceRootResource = findInheritanceRoot(currentTarget);
-                if (inheritanceRootResource == null) {
+        while (currentTarget != null) {
+            final Resource inheritanceRootResource = findInheritanceRoot(currentTarget);
+            if (inheritanceRootResource == null) {
+                currentTarget = null;
+            } else {
+                final String relPath = currentTarget.getPath()
+                        .substring(inheritanceRootResource.getPath().length());
+                final String superType = inheritanceRootResource.getResourceSuperType();
+                if (superType == null) {
                     currentTarget = null;
                 } else {
-                    final String relPath = currentTarget.getPath()
-                            .substring(inheritanceRootResource.getPath().length());
-                    final String superType = inheritanceRootResource.getResourceSuperType();
-                    if (superType == null) {
-                        currentTarget = null;
+                    final String superTypeChildPath = superType + relPath;
+                    final Resource superTypeResource = resolver.getResource(superTypeChildPath);
+                    if (superTypeResource != null) {
+                        resources.add(superTypeResource);
+                        currentTarget = superTypeResource;
                     } else {
-                        final String superTypeChildPath = superType + relPath;
-                        final Resource superTypeResource = resolver.getResource(superTypeChildPath);
-                        if (superTypeResource != null) {
-                            resources.add(superTypeResource);
-                            currentTarget = superTypeResource;
-                        } else {
-                            resources.add(new NonExistingResource(resolver, superTypeChildPath));
-                            currentTarget = null;
-                        }
+                        resources.add(new NonExistingResource(resolver, superTypeChildPath));
+                        currentTarget = null;
                     }
                 }
             }
-
-            Collections.reverse(resources);
         }
+
+        Collections.reverse(resources);
+
         return resources;
     }
 
-    private Resource findInheritanceRoot(Resource target) {
+    private Resource findInheritanceRoot(final Resource target) {
         String superType = target.getResourceSuperType();
         if (superType != null) {
             return target;
diff --git a/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java b/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
index 064f2a0..49e0dc1 100644
--- a/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
+++ b/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
@@ -52,8 +52,13 @@ public class OverridingResourceProviderTest {
      * /apps/a/1/a
      * /apps/a/1/b
      * /apps/a/1/b/1
+     * /apps/a/1/d
+     * /apps/a/1/d/1
+     * /apps/a/1/d/1/a
      * /apps/a/1/c
      * /apps/a/2/c
+     * 
+     * /apps/a/2 has the super type of /apps/a/1
      */
     @Before
     public void setup() throws Exception {
@@ -68,6 +73,9 @@ public class OverridingResourceProviderTest {
                     .resource("a").p("1", "a").p("2", "b")
                     .resource(".b").p("1", "a").p("2", "b")
                     .resource("1")
+                    .resource("/apps/a/1/d").p("a", "1").p("b", "2")
+                    .resource("1").p("1", "a").p("2", "b")
+                    .resource("a")
                     .resource("/apps/a/1/c").p("1", "a").p("2", "b")
                     .resource("/apps/a/2").p(SUPER_TYPE, "a/1").p("b", "2").p(MergedResourceConstants.PN_HIDE_CHILDREN, new String[] {"b"})
                     .resource("c").p("1", "c")
@@ -116,4 +124,31 @@ public class OverridingResourceProviderTest {
         assertNull(this.provider.getResource(this.resolver, "/override/apps/a/2/b/1"));
     }
 
+    // doing it this way because the mock resource resolver doesn't
+    // access the resource provider
+    private Resource getChildResource(Resource parent, String name) {
+        final Iterator<Resource> children = this.provider.listChildren(parent);
+        while (children.hasNext()) {
+            final Resource candidate = children.next();
+            if (candidate.getName().equals(name)) {
+               return candidate;
+            }
+        }
+        return null;
+    }
+
+    @Test
+    public void testOverriddenIncludesChildFromSuper() {
+        final Resource rsrcA2 = this.provider.getResource(this.resolver, "/override/apps/a/2");
+
+        Resource d = getChildResource(rsrcA2, "d");
+        assertNotNull(d);
+
+        Resource d1 = getChildResource(d, "1");
+        assertNotNull(d1);
+
+        Resource d1a = getChildResource(d1, "a");
+        assertNotNull(d1a);
+    }
+
 }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 13/31: SLING-4340 : SLING-4247 created odd side-effects

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 677a077ff97e843b8b49da5e54910d477ebac7ab
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Jan 29 08:01:43 2015 +0000

    SLING-4340 : SLING-4247 created odd side-effects
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1655545 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/resourcemerger/impl/MergedResource.java  |  26 ++--
 .../resourcemerger/impl/MergedResourceTest.java    | 142 +++++++++++++++++++++
 2 files changed, 159 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
index 7b00b98..daa45e1 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
@@ -41,6 +41,9 @@ public class MergedResource extends AbstractResource {
     /** Resource type. */
     private final String resourceType;
 
+    /** Resource super type. */
+    private final String resourceSuperType;
+
     /** Resource meta data. */
     private final ResourceMetadata metadata = new ResourceMetadata();
 
@@ -64,18 +67,24 @@ public class MergedResource extends AbstractResource {
         this.path = (relativePath.length() == 0 ? mergeRootPath : mergeRootPath + "/" + relativePath);
         this.properties = new DeepReadValueMapDecorator(this, new MergedValueMap(valueMaps));
         // get resource type
-        String rt = this.properties.get(ResourceResolver.PROPERTY_RESOURCE_TYPE, String.class);
+        final String slingPropRT = this.properties.get(ResourceResolver.PROPERTY_RESOURCE_TYPE, String.class);
+        String rt = slingPropRT;
         if (rt == null) {
             rt = relativePath.length() == 0 ? "/" : relativePath;
-            // use the resource type of the last resource in the set that provides one
-            for(final Resource rsrc : mappedResources) {
-                final String value = rsrc.getResourceType();
-                if ( value != null ) {
-                    rt = value;
-                }
+        }
+        // use the resource type of the last resource in the set that provides one
+        for(final Resource rsrc : mappedResources) {
+            final String value = rsrc.getResourceType();
+            if ( value != null ) {
+                rt = value;
             }
         }
         this.resourceType = rt;
+        if ( !rt.equals(slingPropRT) ) {
+            this.resourceSuperType = slingPropRT;
+        } else {
+            this.resourceSuperType = null;
+        }
         metadata.put(MergedResourceConstants.METADATA_FLAG, true);
         final String[] resourcePaths = new String[mappedResources.size()];
         int i = 0;
@@ -104,8 +113,7 @@ public class MergedResource extends AbstractResource {
      * {@inheritDoc}
      */
     public String getResourceSuperType() {
-        // So far, there's no concept of resource super type for a merged resource
-        return null;
+        return this.resourceSuperType;
     }
 
     /**
diff --git a/src/test/java/org/apache/sling/resourcemerger/impl/MergedResourceTest.java b/src/test/java/org/apache/sling/resourcemerger/impl/MergedResourceTest.java
new file mode 100644
index 0000000..591037d
--- /dev/null
+++ b/src/test/java/org/apache/sling/resourcemerger/impl/MergedResourceTest.java
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.resourcemerger.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.api.wrappers.ValueMapDecorator;
+import org.apache.sling.testing.resourceresolver.MockResource;
+import org.junit.Test;
+
+public class MergedResourceTest {
+
+    @Test public void testResourceTypeByMethod() throws Exception {
+
+        final MockResource r1 = new MockResource("/a", null, null) {
+
+            @Override
+            public String getResourceType() {
+                return "a";
+            }
+        };
+        final MockResource r2 = new MockResource("/b", null, null) {
+
+            @Override
+            public String getResourceType() {
+                return "b";
+            }
+        };
+        final MockResource r3 = new MockResource("/c", null, null) {
+
+            @Override
+            public String getResourceType() {
+                return "c";
+            }
+        };
+
+        final List<Resource> resources = new ArrayList<Resource>();
+        resources.add(r1);
+        resources.add(r2);
+        resources.add(r3);
+
+        final MergedResource mr = new MergedResource(null, "/a", "a", resources, Collections.EMPTY_LIST);
+
+        assertEquals("c", mr.getResourceType());
+        assertNull(mr.getResourceSuperType());
+    }
+
+    @Test public void testResourceTypeByValueMap() throws Exception {
+        final ValueMap vm1 = new ValueMapDecorator(Collections.singletonMap(ResourceResolver.PROPERTY_RESOURCE_TYPE, (Object)"vma"));
+        final MockResource r1 = new MockResource("/a", vm1, null);
+        final ValueMap vm2 = new ValueMapDecorator(Collections.singletonMap(ResourceResolver.PROPERTY_RESOURCE_TYPE, (Object)"vmb"));
+        final MockResource r2 = new MockResource("/b", vm2, null);
+        final ValueMap vm3 = new ValueMapDecorator(Collections.singletonMap(ResourceResolver.PROPERTY_RESOURCE_TYPE, (Object)"vmc"));
+        final MockResource r3 = new MockResource("/c", vm3, null);
+
+        final List<Resource> resources = new ArrayList<Resource>();
+        resources.add(r1);
+        resources.add(r2);
+        resources.add(r3);
+
+        final List<ValueMap> valueMaps = new ArrayList<ValueMap>();
+        valueMaps.add(vm1);
+        valueMaps.add(vm2);
+        valueMaps.add(vm3);
+
+        final MergedResource mr = new MergedResource(null, "/a", "a", resources, valueMaps);
+
+        assertEquals("vmc", mr.getResourceType());
+        assertNull(mr.getResourceSuperType());
+    }
+
+    @Test public void testResourceTypeMixed() throws Exception {
+        final ValueMap vm1 = new ValueMapDecorator(Collections.singletonMap(ResourceResolver.PROPERTY_RESOURCE_TYPE, (Object)"vma"));
+        final MockResource r1 = new MockResource("/a", vm1, null) {
+
+            @Override
+            public String getResourceType() {
+                return "a";
+            }
+        };
+        final ValueMap vm2 = new ValueMapDecorator(Collections.singletonMap(ResourceResolver.PROPERTY_RESOURCE_TYPE, (Object)"vmb"));
+        final MockResource r2 = new MockResource("/b", vm2, null) {
+
+            @Override
+            public String getResourceType() {
+                return "b";
+            }
+        };
+        final ValueMap vm3 = new ValueMapDecorator(Collections.singletonMap(ResourceResolver.PROPERTY_RESOURCE_TYPE, (Object)"vmc"));
+        final MockResource r3 = new MockResource("/c", vm3, null) {
+
+            @Override
+            public String getResourceType() {
+                return "c";
+            }
+        };
+
+        final List<Resource> resources = new ArrayList<Resource>();
+        resources.add(r1);
+        resources.add(r2);
+        resources.add(r3);
+
+        final List<ValueMap> valueMaps = new ArrayList<ValueMap>();
+        valueMaps.add(vm1);
+        valueMaps.add(vm2);
+        valueMaps.add(vm3);
+
+        final MergedResource mr1 = new MergedResource(null, "/a", "a", resources, valueMaps);
+
+        assertEquals("c", mr1.getResourceType());
+        assertEquals("vmc", mr1.getResourceSuperType());
+
+        final MergedResource mr2 = new MergedResource(null, "/a", "a", resources, Collections.singletonList(vm2));
+
+        assertEquals("c", mr2.getResourceType());
+        assertEquals("vmb", mr2.getResourceSuperType());
+    }
+}

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 22/31: SLING-4568 : Performance: MergingResourceProvider.ParentHidingHandler adds about 30pp rendering overhead. Apply partial patch from Joel Richard

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit b1a0be799ad6f75517d95e5cd15bb1b669c2e3c7
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Apr 23 09:10:27 2015 +0000

    SLING-4568 : Performance: MergingResourceProvider.ParentHidingHandler adds about 30pp rendering overhead. Apply partial patch from Joel Richard
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1675563 13f79535-47bb-0310-9956-ffa450edef68
---
 .../resourcemerger/impl/MergingResourceProvider.java   | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
index 3bc3af7..fac390c 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
@@ -206,12 +206,22 @@ class MergingResourceProvider implements ResourceProvider {
                 return null;
             }
 
+            boolean first = true;
             while (resources.hasNext()) {
                 final Resource resource = resources.next();
-                // check parent for hiding
-                // SLING 3521 : if parent is not readable, nothing is hidden
-                final Resource parent = resource.getParent();
-                final boolean hidden = (parent == null ? false : new ParentHidingHandler(parent).isHidden(holder.name));
+
+                final boolean hidden;
+                if (first) {
+                    // The ParentHidingHandler does not have to be executed for the first resource because it isn't an
+                    // overlay. This can drastically improve the performance in some cases.
+                    hidden = false;
+                    first = false;
+                } else {
+                    // check parent for hiding
+                    // SLING 3521 : if parent is not readable, nothing is hidden
+                    final Resource parent = resource.getParent();
+                    hidden = (parent == null ? false : new ParentHidingHandler(parent).isHidden(holder.name));
+                }
                 if (hidden) {
                     holder.resources.clear();
                 } else if (!ResourceUtil.isNonExistingResource(resource)) {

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 14/31: [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.4

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 887f936a1b1f16278f18b0fe710a78bea5efba2f
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Feb 4 12:44:24 2015 +0000

    [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.4
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1657170 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 594dd6a..03d867a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.resourcemerger</artifactId>
     <packaging>bundle</packaging>
-    <version>1.2.3-SNAPSHOT</version>
+    <version>1.2.4</version>
 
     <name>Apache Sling Resource Merger</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.4</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.4</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.resourcemerger-1.2.4</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 03/31: Add a new test case

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 0989a7ceb4b0b31e99b633bb59412c5ff3df56e1
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Jan 13 15:42:06 2015 +0000

    Add a new test case
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1651385 13f79535-47bb-0310-9956-ffa450edef68
---
 .../impl/MergedResourceProviderTest.java               | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/test/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderTest.java b/src/test/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderTest.java
index 9980c41..73b24cb 100644
--- a/src/test/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderTest.java
+++ b/src/test/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderTest.java
@@ -76,6 +76,9 @@ public class MergedResourceProviderTest {
                                             .resource(".4").p("a", "1").p("b", "2").p("c", "3")
                                             .resource(".Y")
                                             .resource(".Z")
+                                          .resource("/libs/a/Y/a")
+                                          .resource("/libs/a/Y/b")
+                                          .resource("/libs/a/Y/c")
                                         .commit();
 
         this.provider = new CRUDMergingResourceProvider("/merged", new MergingResourcePicker());
@@ -120,6 +123,21 @@ public class MergedResourceProviderTest {
         assertTrue(names.contains("X"));
     }
 
+    @Test public void testListSubChildren() {
+        final Resource rsrcY = this.provider.getResource(this.resolver, "/merged/a/Y");
+        assertNotNull(rsrcY);
+        final Iterator<Resource> i = this.provider.listChildren(rsrcY);
+        assertNotNull(i);
+        final List<String> names = new ArrayList<String>();
+        while ( i.hasNext() ) {
+            names.add(i.next().getName());
+        }
+        assertEquals(3, names.size());
+        assertTrue(names.contains("a"));
+        assertTrue(names.contains("b"));
+        assertTrue(names.contains("c"));
+    }
+
     @Test public void testProperties() {
         final Resource rsrcA1 = this.provider.getResource(this.resolver, "/merged/a/1");
         final ValueMap vm = rsrcA1.adaptTo(ValueMap.class);

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 21/31: [maven-release-plugin] prepare for next development iteration

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 41d183ba910d07850dffa7694c0b467008cea9ae
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Mar 9 08:34:00 2015 +0000

    [maven-release-plugin] prepare for next development iteration
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1665153 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index b688af9..cb32e43 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.resourcemerger</artifactId>
     <packaging>bundle</packaging>
-    <version>1.2.8</version>
+    <version>1.2.9-SNAPSHOT</version>
 
     <name>Apache Sling Resource Merger</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.8</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.8</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.resourcemerger-1.2.8</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 08/31: SLING-4311 - edge case where reusing an hidden ancestor name caused the wrong resource to be hidden

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 91be8e73677878e9a77f0d993b8a70aa36781c00
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Mon Jan 19 22:38:04 2015 +0000

    SLING-4311 - edge case where reusing an hidden ancestor name caused the wrong resource to be hidden
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1653144 13f79535-47bb-0310-9956-ffa450edef68
---
 .../org/apache/sling/resourcemerger/impl/MergingResourceProvider.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
index 4a8200c..82a9f91 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
@@ -81,8 +81,8 @@ class MergingResourceProvider implements ResourceProvider {
             }
             if (parent != null) {
                 Resource ancestor = parent.getParent();
+                String previousAncestorName = parent.getName();
                 while (ancestor != null) {
-                    String previousAncestorName = parent.getName();
                     final ValueMap ancestorProps = ResourceUtil.getValueMap(ancestor);
                     final String[] ancestorChildrenToHideArray = ancestorProps.get(MergedResourceConstants.PN_HIDE_CHILDREN, String[].class);
                     if (ancestorChildrenToHideArray != null) {

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 06/31: [maven-release-plugin] prepare for next development iteration

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 50ec08b16b28740bf8a81e503f08dac19125707e
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Sat Jan 17 10:45:51 2015 +0000

    [maven-release-plugin] prepare for next development iteration
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1652578 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 8cd69e5..594dd6a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.resourcemerger</artifactId>
     <packaging>bundle</packaging>
-    <version>1.2.2</version>
+    <version>1.2.3-SNAPSHOT</version>
 
     <name>Apache Sling Resource Merger</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.2</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.2</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.resourcemerger-1.2.2</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 07/31: SLING-4311 - edge case where reusing an hidden ancestor name caused the wrong resource to be hidden

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 36a5fb289a176535bc65d5797882584dde45d21f
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Mon Jan 19 22:28:47 2015 +0000

    SLING-4311 - edge case where reusing an hidden ancestor name caused the wrong resource to be hidden
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1653137 13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/sling/resourcemerger/impl/MergingResourceProvider.java   | 1 +
 .../sling/resourcemerger/impl/OverridingResourceProviderTest.java   | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
index 3ffbdf7..4a8200c 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
@@ -95,6 +95,7 @@ class MergingResourceProvider implements ResourceProvider {
                             }
                         }
                     }
+                    previousAncestorName = ancestor.getName();
                     ancestor = ancestor.getParent();
                 }
             }
diff --git a/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java b/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
index 49e0dc1..fced547 100644
--- a/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
+++ b/src/test/java/org/apache/sling/resourcemerger/impl/OverridingResourceProviderTest.java
@@ -55,6 +55,7 @@ public class OverridingResourceProviderTest {
      * /apps/a/1/d
      * /apps/a/1/d/1
      * /apps/a/1/d/1/a
+     * /apps/a/1/d/1/b/1
      * /apps/a/1/c
      * /apps/a/2/c
      * 
@@ -76,6 +77,8 @@ public class OverridingResourceProviderTest {
                     .resource("/apps/a/1/d").p("a", "1").p("b", "2")
                     .resource("1").p("1", "a").p("2", "b")
                     .resource("a")
+                    .resource("/apps/a/1/d/1/b")
+                    .resource("1")
                     .resource("/apps/a/1/c").p("1", "a").p("2", "b")
                     .resource("/apps/a/2").p(SUPER_TYPE, "a/1").p("b", "2").p(MergedResourceConstants.PN_HIDE_CHILDREN, new String[] {"b"})
                     .resource("c").p("1", "c")
@@ -122,6 +125,9 @@ public class OverridingResourceProviderTest {
         assertNotNull(this.provider.getResource(this.resolver, "/override/apps/a/1/b/1"));
         assertNull(this.provider.getResource(this.resolver, "/override/apps/a/2/b"));
         assertNull(this.provider.getResource(this.resolver, "/override/apps/a/2/b/1"));
+        assertNotNull(this.provider.getResource(this.resolver, "/override/apps/a/2/d/1/a"));
+        assertNotNull(this.provider.getResource(this.resolver, "/override/apps/a/2/d/1/b"));
+        assertNotNull(this.provider.getResource(this.resolver, "/override/apps/a/2/d/1/b/1"));
     }
 
     // doing it this way because the mock resource resolver doesn't

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 17/31: [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.6

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 11fb1139f1be1ed2297ea9e42ab5504af2f93b5e
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Feb 12 02:17:30 2015 +0000

    [maven-release-plugin] prepare release org.apache.sling.resourcemerger-1.2.6
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1659129 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index fe60cc9..86c5ba1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.resourcemerger</artifactId>
     <packaging>bundle</packaging>
-    <version>1.2.5-SNAPSHOT</version>
+    <version>1.2.6</version>
 
     <name>Apache Sling Resource Merger</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.6</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.6</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.resourcemerger-1.2.6</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-resourcemerger] 31/31: [maven-release-plugin] copy for tag org.apache.sling.resourcemerger-1.2.10

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit e2bbe5c9c6fedf4f921509797c1c51e74395048f
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Wed Jul 15 09:51:25 2015 +0000

    [maven-release-plugin] copy for tag org.apache.sling.resourcemerger-1.2.10
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.resourcemerger-1.2.10@1691157 13f79535-47bb-0310-9956-ffa450edef68

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.