Author: fmeschbe
Date: Thu Sep 18 23:46:04 2008
New Revision: 696942

URL: http://svn.apache.org/viewvc?rev=696942&view=rev
Log:
SLING-666 Make JcrResourceProviderEntry delegate to root resource
provider entry for child entries to always use the correct list

Modified:
    
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java
    
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/ResourceProviderEntry.java
    
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProviderEntry.java

Modified: 
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java?rev=696942&r1=696941&r2=696942&view=diff
==============================================================================
--- 
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java
 (original)
+++ 
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverFactoryImpl.java
 Thu Sep 18 23:46:04 2008
@@ -187,7 +187,7 @@
      */
     public ResourceResolver getResourceResolver(Session session) {
         JcrResourceProviderEntry sessionRoot = new JcrResourceProviderEntry(
-            session, rootProviderEntry.getEntries(), 
getJcrResourceTypeProvider());
+            session, rootProviderEntry, getJcrResourceTypeProvider());
         return new JcrResourceResolver(sessionRoot, this);
     }
 

Modified: 
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/ResourceProviderEntry.java
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/ResourceProviderEntry.java?rev=696942&r1=696941&r2=696942&view=diff
==============================================================================
--- 
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/ResourceProviderEntry.java
 (original)
+++ 
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/ResourceProviderEntry.java
 Thu Sep 18 23:46:04 2008
@@ -321,6 +321,7 @@
         if (path.equals(this.path)) {
             return getResourceProvider().getResource(resourceResolver, 
fullPath);
         } else if (path.startsWith(this.prefix)) {
+            ResourceProviderEntry[] entries = getEntries();
             if (entries != null) {
 
                 // consider relative path for further checks
@@ -355,6 +356,7 @@
             Set<ResourceProvider> providers) {
         if (path.startsWith(this.prefix)) {
 
+            ResourceProviderEntry[] entries = getEntries();
             if (entries != null) {
 
                 // consider relative path for further checks

Modified: 
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProviderEntry.java
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProviderEntry.java?rev=696942&r1=696941&r2=696942&view=diff
==============================================================================
--- 
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProviderEntry.java
 (original)
+++ 
incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProviderEntry.java
 Thu Sep 18 23:46:04 2008
@@ -20,20 +20,24 @@
 
 import javax.jcr.Session;
 
+import org.apache.sling.api.resource.ResourceProvider;
 import org.apache.sling.jcr.resource.JcrResourceTypeProvider;
 import org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry;
 
 public class JcrResourceProviderEntry extends ResourceProviderEntry {
 
+    private final ResourceProviderEntry delegatee;
+
     private final Session session;
 
     private final JcrResourceTypeProvider[] resourceTypeProviders;
-
+    
     public JcrResourceProviderEntry(Session session,
-                                    ResourceProviderEntry[] entries,
+                                    ResourceProviderEntry delegatee,
                                     JcrResourceTypeProvider[] 
resourceTypeProviders) {
-        super("/", new JcrResourceProvider(session, resourceTypeProviders), 
entries);
+        super("/", new JcrResourceProvider(session, resourceTypeProviders), 
null);
 
+        this.delegatee = delegatee;
         this.session = session;
         this.resourceTypeProviders = resourceTypeProviders;
     }
@@ -45,4 +49,19 @@
     public JcrResourceTypeProvider[] getResourceTypeProviders() {
         return resourceTypeProviders;
     }
+    
+    @Override
+    public ResourceProviderEntry[] getEntries() {
+        return delegatee.getEntries();
+    }
+
+    @Override
+    public boolean addResourceProvider(String prefix, ResourceProvider 
provider) {
+        return delegatee.addResourceProvider(prefix, provider);
+    }
+    
+    @Override
+    public boolean removeResourceProvider(String prefix) {
+        return delegatee.removeResourceProvider(prefix);
+    }
 }


Reply via email to