]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/acr/JcrContentProvider.java
Make JCR content independent of a given node.
[lgpl/argeo-commons.git] / jcr / org.argeo.cms.jcr / src / org / argeo / cms / jcr / acr / JcrContentProvider.java
index fc4a61bf9e61a72c316f5b5f5f8bf50a291932fb..a7005ce23c826b464c7716a5277a6edf1e2e2e95 100644 (file)
@@ -6,7 +6,6 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
-import javax.jcr.Node;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
@@ -41,7 +40,12 @@ public class JcrContentProvider implements ContentProvider, NamespaceContext {
 
        @Override
        public Content get(ProvidedSession contentSession, String mountPath, String relativePath) {
-               String workspace = ContentUtils.getParentPath(mountPath)[1];
+               String jcrWorkspace = ContentUtils.getParentPath(mountPath)[1];
+               String jcrPath = "/" + relativePath;
+               return new JcrContent(contentSession, this, jcrWorkspace, jcrPath);
+       }
+
+       public Session getJcrSession(ProvidedSession contentSession, String jcrWorkspace) {
                JcrSessionAdapter sessionAdapter = sessionAdapters.get(contentSession);
                if (sessionAdapter == null) {
                        final JcrSessionAdapter newSessionAdapter = new JcrSessionAdapter(jcrRepository,
@@ -51,15 +55,8 @@ public class JcrContentProvider implements ContentProvider, NamespaceContext {
                        sessionAdapter = newSessionAdapter;
                }
 
-               Session jcrSession = sessionAdapter.getSession(workspace);
-               String jcrPath = "/" + relativePath;
-               try {
-                       Node node = jcrSession.getNode(jcrPath);
-                       return new JcrContent(contentSession, this, node);
-               } catch (RepositoryException e) {
-                       throw new JcrException("Cannot get JCR content '" + jcrPath + ", mounted from '" + mountPath
-                                       + "' with JCR session " + jcrSession, e);
-               }
+               Session jcrSession = sessionAdapter.getSession(jcrWorkspace);
+               return jcrSession;
        }
 
        /*