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 2010/09/13 21:35:05 UTC
svn commit: r996657 - in /sling/trunk/bundles/api/src:
main/java/org/apache/sling/api/resource/ResourceUtil.java
test/java/org/apache/sling/api/resource/ResourceUtilTest.java
Author: justin
Date: Mon Sep 13 19:35:04 2010
New Revision: 996657
URL: http://svn.apache.org/viewvc?rev=996657&view=rev
Log:
SLING-1770 - fixing Resource.getParent() method.
Modified:
sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/ResourceUtil.java
sling/trunk/bundles/api/src/test/java/org/apache/sling/api/resource/ResourceUtilTest.java
Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/ResourceUtil.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/ResourceUtil.java?rev=996657&r1=996656&r2=996657&view=diff
==============================================================================
--- sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/ResourceUtil.java (original)
+++ sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/ResourceUtil.java Mon Sep 13 19:35:04 2010
@@ -132,6 +132,14 @@ public class ResourceUtil {
if (path == null || "/".equals(path)) {
return null;
}
+
+ String workspaceName = null;
+
+ final int wsSepPos = path.indexOf(":/");
+ if (wsSepPos != -1) {
+ workspaceName = path.substring(0, wsSepPos);
+ path = path.substring(wsSepPos + 1);
+ }
// find the last slash, after which to cut off
int lastSlash = path.lastIndexOf('/');
@@ -140,10 +148,19 @@ public class ResourceUtil {
return null;
} else if (lastSlash == 0) {
// parent is root
- return "/";
+ if (workspaceName != null) {
+ return workspaceName + ":/";
+ } else {
+ return "/";
+ }
}
- return path.substring(0, lastSlash);
+ String parentPath = path.substring(0, lastSlash);
+ if (workspaceName != null) {
+ return workspaceName + ":" + parentPath;
+ } else {
+ return parentPath;
+ }
}
/**
Modified: sling/trunk/bundles/api/src/test/java/org/apache/sling/api/resource/ResourceUtilTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/test/java/org/apache/sling/api/resource/ResourceUtilTest.java?rev=996657&r1=996656&r2=996657&view=diff
==============================================================================
--- sling/trunk/bundles/api/src/test/java/org/apache/sling/api/resource/ResourceUtilTest.java (original)
+++ sling/trunk/bundles/api/src/test/java/org/apache/sling/api/resource/ResourceUtilTest.java Mon Sep 13 19:35:04 2010
@@ -151,6 +151,10 @@ public class ResourceUtilTest {
assertNull(ResourceUtil.getParent("b"));
assertNull(ResourceUtil.getParent("/b/.."));
+
+ assertEquals("security:/", ResourceUtil.getParent("security:/b"));
+ assertEquals("security:/b", ResourceUtil.getParent("security:/b/c"));
+ assertEquals("security:/b/c", ResourceUtil.getParent("security:/b/c/d"));
}
@Test public void testGetName() {