Return-Path: Delivered-To: apmail-sling-commits-archive@www.apache.org Received: (qmail 15191 invoked from network); 14 Apr 2010 12:38:47 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 14 Apr 2010 12:38:47 -0000 Received: (qmail 79169 invoked by uid 500); 14 Apr 2010 12:38:47 -0000 Delivered-To: apmail-sling-commits-archive@sling.apache.org Received: (qmail 79097 invoked by uid 500); 14 Apr 2010 12:38:46 -0000 Mailing-List: contact commits-help@sling.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@sling.apache.org Delivered-To: mailing list commits@sling.apache.org Received: (qmail 79090 invoked by uid 99); 14 Apr 2010 12:38:46 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Apr 2010 12:38:46 +0000 X-ASF-Spam-Status: No, hits=-1275.0 required=10.0 tests=ALL_TRUSTED,AWL X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Apr 2010 12:38:45 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 4B9FA23889CB; Wed, 14 Apr 2010 12:38:25 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r933928 - /sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java Date: Wed, 14 Apr 2010 12:38:25 -0000 To: commits@sling.apache.org From: cziegeler@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100414123825.4B9FA23889CB@eris.apache.org> Author: cziegeler Date: Wed Apr 14 12:38:24 2010 New Revision: 933928 URL: http://svn.apache.org/viewvc?rev=933928&view=rev Log: SLING-1447 : support for resource paths containing workspace name Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.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=933928&r1=933927&r2=933928&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 Wed Apr 14 12:38:24 2010 @@ -27,7 +27,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.jcr.NamespaceException; -import javax.jcr.Node; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.Value; @@ -494,15 +493,15 @@ public class JcrResourceResolver extends public Resource getResource(String path) { checkClosed(); - if (path.contains(":")) { - String[] parts = path.split(":"); - String workspaceName = parts[0]; + final int wsSepPos = path.indexOf(":/"); + if (wsSepPos != -1) { + final String workspaceName = path.substring(0, wsSepPos); if (workspaceName.equals(getSession().getWorkspace().getName())) { - path = parts[1]; + path = path.substring(wsSepPos + 1); } else { try { ResourceResolver wsResolver = getResolverForWorkspace(workspaceName); - return wsResolver.getResource(parts[1]); + return wsResolver.getResource(path.substring(wsSepPos + 1)); } catch (LoginException e) { // requested a resource in a workspace I don't have access to. // TODO @@ -558,15 +557,13 @@ public class JcrResourceResolver extends /** * @see org.apache.sling.api.resource.ResourceResolver#listChildren(org.apache.sling.api.resource.Resource) */ - public Iterator listChildren(Resource parent) { + public Iterator listChildren(final Resource parent) { checkClosed(); - String path = parent.getPath(); - if (path.contains(":")) { - String[] parts = path.split(":"); - String workspaceName = parts[0]; - if (workspaceName.equals(getSession().getWorkspace().getName())) { - path = parts[1]; - } else { + final String path = parent.getPath(); + final int wsSepPos = path.indexOf(":/"); + if (wsSepPos != -1) { + final String workspaceName = path.substring(0, wsSepPos); + if (!workspaceName.equals(getSession().getWorkspace().getName())) { try { ResourceResolver wsResolver = getResolverForWorkspace(workspaceName); return wsResolver.listChildren(parent);