Work on backups and file metadata indexing.
[lgpl/argeo-commons.git] / org.argeo.jcr / src / org / argeo / jcr / JcrRepositoryWrapper.java
index d4bf4381ed1efd88149ea1bb00c44df680f51164..1098c4dee5d6a8d781e9a50f6a0dc2db2d12f21c 100644 (file)
@@ -99,7 +99,7 @@ public abstract class JcrRepositoryWrapper implements Repository {
                        throws LoginException, NoSuchWorkspaceException, RepositoryException {
                Session session;
                try {
-                       session = getRepository().login(credentials, workspaceName);
+                       session = getRepository(workspaceName).login(credentials, workspaceName);
                } catch (NoSuchWorkspaceException e) {
                        if (autocreateWorkspaces && workspaceName != null)
                                session = createWorkspaceAndLogsIn(credentials, workspaceName);
@@ -126,17 +126,24 @@ public abstract class JcrRepositoryWrapper implements Repository {
        protected void processNewSession(Session session, String workspaceName) {
        }
 
-       /** Wraps access to the repository, making sure it is available. */
+       /**
+        * Wraps access to the repository, making sure it is available.
+        * 
+        * @deprecated Use {@link #getDefaultRepository()} instead.
+        */
+       @Deprecated
        protected synchronized Repository getRepository() {
-               // if (repository == null) {
-               // throw new ArgeoJcrException("No repository initialized."
-               // + " Was the init() method called?"
-               // + " The destroy() method should also"
-               // + " be called on shutdown.");
-               // }
+               return getDefaultRepository();
+       }
+
+       protected synchronized Repository getDefaultRepository() {
                return repository;
        }
 
+       protected synchronized Repository getRepository(String workspaceName) {
+               return getDefaultRepository();
+       }
+
        /**
         * Logs in to the default workspace, creates the required workspace, logs out,
         * logs in to the required workspace.
@@ -145,10 +152,10 @@ public abstract class JcrRepositoryWrapper implements Repository {
                        throws RepositoryException {
                if (workspaceName == null)
                        throw new ArgeoJcrException("No workspace specified.");
-               Session session = getRepository().login(credentials);
+               Session session = getRepository(workspaceName).login(credentials);
                session.getWorkspace().createWorkspace(workspaceName);
                session.logout();
-               return getRepository().login(credentials, workspaceName);
+               return getRepository(workspaceName).login(credentials, workspaceName);
        }
 
        public boolean isStandardDescriptor(String key) {