You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ju...@apache.org on 2011/06/03 20:24:41 UTC
svn commit: r1131133 - in /sling/trunk/bundles/jcr/resource/src:
main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java
Author: justin
Date: Fri Jun 3 18:24:40 2011
New Revision: 1131133
URL: http://svn.apache.org/viewvc?rev=1131133&view=rev
Log:
SLING-2093 - applying patch to get partial aliasing working
Modified:
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java
Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java?rev=1131133&r1=1131132&r2=1131133&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java (original)
+++ sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java Fri Jun 3 18:24:40 2011
@@ -634,21 +634,21 @@ public class JcrResourceResolver
StringBuilder buf = new StringBuilder();
Resource current = res.getResourceResolver().getResource("/");
for (String name: segments) {
- current = current.getChild(name);
- if (current == null) {
+ Resource child = current.getChild(name);
+ if (child == null) {
LOGGER.warn("map: could not load child resource {}/{} for alias mapping.", buf, name);
- buf = new StringBuilder(res.getPath());
- break;
- }
- String alias = getProperty(current, PROP_ALIAS);
- if (alias == null || alias.length() == 0) {
- alias = name;
+ current = new NonExistingResource(res.getResourceResolver(), current.getPath() + "/" + name);
+ buf.append('/').append(name);
+ } else {
+ String alias = getProperty(child, PROP_ALIAS);
+ if (alias == null || alias.length() == 0) {
+ alias = name;
+ }
+ buf.append('/').append(alias);
+ current = child;
}
- buf.append('/').append(alias);
- }
- if (buf.length() == 0) {
- buf.append('/');
}
+
// reappend the resolutionPathInfo
if (resolutionPathInfo != null) {
buf.append(resolutionPathInfo);
Modified: sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java?rev=1131133&r1=1131132&r2=1131133&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java (original)
+++ sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java Fri Jun 3 18:24:40 2011
@@ -1871,11 +1871,10 @@ public class JcrResourceResolverTest ext
AccessControlUtil.replaceAccessControlEntry(session, grandchild.getPath(), testUserPrincipal, new String[] { "jcr:all" }, null, null, "first");
session.save();
- // expect /child/grandchild due to parent node not being
+ // expect /child/enkel due to parent node not being
// visible to the test user and no parent due to mapping
// the rootPath onto root
- // TODO - get partial aliases to work, i.e. this should be /child/enkel
- String pathEnkel = "/child/grandchild";
+ String pathEnkel = "/child/enkel";
String mappedEnkel = testUserResolver.map(grandchild.getPath());
assertEquals(pathEnkel, mappedEnkel);