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);
+ }
}