Publish Jackrabbit repositories as such.
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 19 Oct 2015 10:07:58 +0000 (10:07 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 19 Oct 2015 10:07:58 +0000 (10:07 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@8522 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.cms/src/org/argeo/cms/internal/kernel/Kernel.java
org.argeo.server.jcr/src/org/argeo/jackrabbit/JackrabbitWrapper.java

index 8a1cf8e96c5655442caef71be8cb84586f36a721..c9f9b5fe817374d78eaa3b70c8d08b2f2f73b021 100644 (file)
@@ -31,6 +31,7 @@ import javax.transaction.UserTransaction;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.util.TransientFileFactory;
 import org.argeo.ArgeoException;
 import org.argeo.ArgeoLogger;
@@ -79,7 +80,7 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener {
        private ServiceRegistration<TransactionManager> tmReg;
        private ServiceRegistration<UserTransaction> utReg;
        private ServiceRegistration<TransactionSynchronizationRegistry> tsrReg;
-       private ServiceRegistration<Repository> repositoryReg;
+       private ServiceRegistration<? extends Repository> repositoryReg;
        private ServiceRegistration<RepositoryFactory> repositoryFactoryReg;
        private ServiceRegistration<UserAdmin> userAdminReg;
 
@@ -106,8 +107,6 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener {
 
        public Kernel() {
                nodeSecurity = new NodeSecurity();
-               // log.debug(bc.getDataFile(""));
-               // log.debug(bc.getDataFile("test"));
        }
 
        final void init() {
@@ -281,6 +280,7 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener {
                }
        }
 
+       @SuppressWarnings("unchecked")
        private void publish() {
                // Listen to service publication (also ours)
                bc.addServiceListener(Kernel.this);
@@ -300,8 +300,10 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener {
                // JCR
                Hashtable<String, String> regProps = new Hashtable<String, String>();
                regProps.put(JCR_REPOSITORY_ALIAS, ALIAS_NODE);
-               repositoryReg = bc.registerService(Repository.class, repository,
-                               regProps);
+               repositoryReg = (ServiceRegistration<? extends Repository>) bc
+                               .registerService(new String[] { Repository.class.getName(),
+                                               JackrabbitRepository.class.getName() }, repository,
+                                               regProps);
                repositoryFactoryReg = bc.registerService(RepositoryFactory.class,
                                repositoryFactory, null);
        }
index a9f97d44eb0bacd9bcfa651812eda5265b60591e..7288cdf4bbea30908e1f813210fe443442f4ff36 100644 (file)
@@ -26,8 +26,11 @@ import java.util.List;
 import java.util.Map;
 
 import javax.jcr.Credentials;
+import javax.jcr.LoginException;
+import javax.jcr.NoSuchWorkspaceException;
 import javax.jcr.Node;
 import javax.jcr.NodeIterator;
+import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
 
@@ -35,6 +38,7 @@ import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.commons.NamespaceHelper;
 import org.apache.jackrabbit.commons.cnd.CndImporter;
 import org.argeo.ArgeoException;
@@ -59,7 +63,7 @@ import org.springframework.core.io.ResourceLoader;
  */
 @SuppressWarnings("deprecation")
 public class JackrabbitWrapper extends JcrRepositoryWrapper implements
-               ResourceLoaderAware {
+               JackrabbitRepository, ResourceLoaderAware {
        private final static Log log = LogFactory.getLog(JackrabbitWrapper.class);
        private final static String DIGEST_ALGORITHM = "MD5";
 
@@ -298,8 +302,21 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
        }
 
        /*
-        * REPOSITORY INTERCEPTOR
+        * JACKRABBIT REPOSITORY IMPLEMENTATION
         */
+       @Override
+       public Session login(Credentials credentials, String workspaceName,
+                       Map<String, Object> attributes) throws LoginException,
+                       NoSuchWorkspaceException, RepositoryException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public void shutdown() {
+               // TODO Auto-generated method stub
+
+       }
 
        /*
         * UTILITIES