You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2012/04/21 10:06:57 UTC

svn commit: r1328607 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/core/ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/configuration/ oak-run/src/main/java/org/ap...

Author: jukka
Date: Sat Apr 21 08:06:56 2012
New Revision: 1328607

URL: http://svn.apache.org/viewvc?rev=1328607&view=rev
Log:
OAK-18: Define Oak API

Rename TmpRepositoryService to KernelContentRepository to match the new interface name.
Streamline repository construction.

Added:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentRepository.java
      - copied, changed from r1328604, jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TmpRepositoryService.java
Removed:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TmpRepositoryService.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/configuration/OakRepositoryConfiguration.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/configuration/RepositoryConfiguration.java
Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/GlobalContext.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/OakRepositoryFactory.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java

Copied: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentRepository.java (from r1328604, jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TmpRepositoryService.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentRepository.java?p2=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentRepository.java&p1=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TmpRepositoryService.java&r1=1328604&r2=1328607&rev=1328607&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TmpRepositoryService.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentRepository.java Sat Apr 21 08:06:56 2012
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.core;
 
-import org.apache.jackrabbit.mk.MicroKernelFactory;
 import org.apache.jackrabbit.mk.api.MicroKernel;
 import org.apache.jackrabbit.oak.api.ContentSession;
 import org.apache.jackrabbit.oak.kernel.NodeState;
@@ -34,14 +33,14 @@ import javax.jcr.SimpleCredentials;
 import javax.security.auth.login.LoginException;
 
 /**
- * TmpRepositoryService...
+ * {@link MicroKernel}-based implementation of
+ * the {@link ContentRepository} interface.
  */
-public class TmpRepositoryService implements ContentRepository {
+public class KernelContentRepository implements ContentRepository {
 
-    /**
-     * logger instance
-     */
-    private static final Logger log = LoggerFactory.getLogger(TmpRepositoryService.class);
+    /** Logger instance */
+    private static final Logger log =
+            LoggerFactory.getLogger(KernelContentRepository.class);
 
     // TODO: retrieve default wsp-name from configuration
     private static final String DEFAULT_WORKSPACE_NAME = "default";
@@ -49,8 +48,8 @@ public class TmpRepositoryService implem
     private final MicroKernel microKernel;
     private final KernelNodeStore nodeStore;
 
-    public TmpRepositoryService(String microKernelUrl) {
-        microKernel = MicroKernelFactory.getInstance(microKernelUrl);
+    public KernelContentRepository(MicroKernel mk) {
+        microKernel = mk;
         nodeStore = new KernelNodeStore(microKernel);
     }
 
@@ -70,7 +69,7 @@ public class TmpRepositoryService implem
         } else {
             sc = null;
         }
-        
+
         if (sc == null) {
             throw new LoginException("login failed");
         }
@@ -103,4 +102,5 @@ public class TmpRepositoryService implem
         // TODO: define if/how desired revision can be passed in by the credentials object.
         return null;
     }
-}
\ No newline at end of file
+
+}

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/GlobalContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/GlobalContext.java?rev=1328607&r1=1328606&r2=1328607&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/GlobalContext.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/GlobalContext.java Sat Apr 21 08:06:56 2012
@@ -19,15 +19,13 @@
 
 package org.apache.jackrabbit.oak.jcr;
 
+import org.apache.jackrabbit.mk.api.MicroKernel;
 import org.apache.jackrabbit.oak.api.ContentRepository;
-import org.apache.jackrabbit.oak.core.TmpRepositoryService;
-import org.apache.jackrabbit.oak.jcr.configuration.OakRepositoryConfiguration;
-import org.apache.jackrabbit.oak.jcr.configuration.RepositoryConfiguration;
+import org.apache.jackrabbit.oak.core.KernelContentRepository;
 import org.apache.jackrabbit.oak.jcr.util.Unchecked;
 
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -41,23 +39,19 @@ import static java.text.MessageFormat.fo
  * time dependency injection mechanism.
  */
 public class GlobalContext {
+
     private final Map<Class<?>, Object> instances = new HashMap<Class<?>, Object>();
-    
-    public GlobalContext(RepositoryConfiguration repositoryConfiguration) throws RepositoryException {
-        put(RepositoryConfiguration.class, repositoryConfiguration);
-        put(ContentRepository.class, new TmpRepositoryService(repositoryConfiguration.getMicrokernelUrl()));
-        put(Repository.class, new RepositoryImpl(this));
-    }
 
-    public GlobalContext(String microKernelUrl) throws RepositoryException {
-        this(OakRepositoryConfiguration.create(Collections.singletonMap(
-                RepositoryConfiguration.MICROKERNEL_URL, microKernelUrl)));
+    public GlobalContext(MicroKernel mk) throws RepositoryException {
+        put(ContentRepository.class, new KernelContentRepository(mk));
+        put(Repository.class, new RepositoryImpl(this));
     }
 
     public <T> T getInstance(Class<T> forClass) {
         T instance = Unchecked.<T>cast(instances.get(forClass));
         if (instance == null) {
-            throw new IllegalStateException(format("Global context does not contain {0}", forClass));
+            throw new IllegalStateException(
+                    format("Global context does not contain {0}", forClass));
         }
         return instance;
     }
@@ -66,9 +60,9 @@ public class GlobalContext {
 
     private <T, I extends T> void put(Class<T> classType, I instance) {
         if (instances.containsKey(classType)) {
-            throw new IllegalStateException(format("Global context already contains {0}", classType));
+            throw new IllegalStateException(
+                    format("Global context already contains {0}", classType));
         }
-
         instances.put(classType, instance);
     }
 

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/OakRepositoryFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/OakRepositoryFactory.java?rev=1328607&r1=1328606&r2=1328607&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/OakRepositoryFactory.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/OakRepositoryFactory.java Sat Apr 21 08:06:56 2012
@@ -16,12 +16,12 @@
  */
 package org.apache.jackrabbit.oak.jcr;
 
-import org.apache.jackrabbit.oak.jcr.configuration.OakRepositoryConfiguration;
-import org.apache.jackrabbit.oak.jcr.configuration.RepositoryConfiguration;
-
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.RepositoryFactory;
+
+import org.apache.jackrabbit.mk.core.MicroKernelImpl;
+
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Map;
@@ -48,12 +48,11 @@ public class OakRepositoryFactory implem
         return null;
     }
 
-    private static Repository getRepository(URI uri, Map<String, String> parameters)
+    private static Repository getRepository(
+            URI uri, Map<String, String> parameters)
             throws RepositoryException {
-
-        // todo correctly interpret uri
-        parameters.put(RepositoryConfiguration.MICROKERNEL_URL, "simple:target/repository-test/repository");
-        GlobalContext context = new GlobalContext(OakRepositoryConfiguration.create(parameters));
+        // TODO correctly interpret uri
+        GlobalContext context = new GlobalContext(new MicroKernelImpl());
         return context.getInstance(Repository.class);
     }
 

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java?rev=1328607&r1=1328606&r2=1328607&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java Sat Apr 21 08:06:56 2012
@@ -42,14 +42,6 @@ public class RepositoryImpl implements R
     private final GlobalContext context;
     private final Descriptors descriptors = new Descriptors(new SimpleValueFactory());
 
-    /**
-     * Utility constructor that creates a JCR binding for an initially empty,
-     * newly constructed Oak repository.
-     */
-    public RepositoryImpl() throws RepositoryException {
-        context = new GlobalContext("mem:oak");
-    }
-
     public RepositoryImpl(GlobalContext context) {
         this.context = context;
     }

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java?rev=1328607&r1=1328606&r2=1328607&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java Sat Apr 21 08:06:56 2012
@@ -16,14 +16,12 @@
  */
 package org.apache.jackrabbit.oak.run;
 
-import java.util.Collections;
-
 import javax.jcr.Repository;
 import javax.servlet.Servlet;
 
+import org.apache.jackrabbit.mk.core.MicroKernelImpl;
 import org.apache.jackrabbit.oak.jcr.GlobalContext;
-import org.apache.jackrabbit.oak.jcr.configuration.OakRepositoryConfiguration;
-import org.apache.jackrabbit.oak.jcr.configuration.RepositoryConfiguration;
+import org.apache.jackrabbit.oak.jcr.RepositoryImpl;
 import org.apache.jackrabbit.webdav.jcr.JCRWebdavServerServlet;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.servlet.ServletContextHandler;
@@ -32,16 +30,8 @@ import org.eclipse.jetty.servlet.Servlet
 public class Main {
 
     public static void main(String[] args) throws Exception {
-        String url = "mem:oak";
-        if (args.length > 0) {
-            url = args[0];
-        }
-
-        RepositoryConfiguration configuration =
-                OakRepositoryConfiguration.create(Collections.singletonMap(
-                        RepositoryConfiguration.MICROKERNEL_URL, url));
         final Repository repository =
-                new GlobalContext(configuration).getInstance(Repository.class);
+                new RepositoryImpl(new GlobalContext(new MicroKernelImpl()));
         Servlet servlet = new JCRWebdavServerServlet() {
             @Override
             protected Repository getRepository() {