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/05 11:18:46 UTC

svn commit: r1309712 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk: MicroKernelFactory.java client/Client.java index/IndexWrapper.java wrapper/LogWrapper.java

Author: jukka
Date: Thu Apr  5 09:18:45 2012
New Revision: 1309712

URL: http://svn.apache.org/viewvc?rev=1309712&view=rev
Log:
OAK-32: Drop MicroKernel.dispose()

Inline more factory methods in to MicroKernelFactory

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/MicroKernelFactory.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/client/Client.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/index/IndexWrapper.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/LogWrapper.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/MicroKernelFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/MicroKernelFactory.java?rev=1309712&r1=1309711&r2=1309712&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/MicroKernelFactory.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/MicroKernelFactory.java Thu Apr  5 09:18:45 2012
@@ -25,6 +25,7 @@ import org.apache.jackrabbit.mk.client.C
 import org.apache.jackrabbit.mk.core.MicroKernelImpl;
 import org.apache.jackrabbit.mk.fs.FileUtils;
 import org.apache.jackrabbit.mk.index.IndexWrapper;
+import org.apache.jackrabbit.mk.server.Server;
 import org.apache.jackrabbit.mk.simple.SimpleKernelImpl;
 import org.apache.jackrabbit.mk.util.ExceptionFactory;
 import org.apache.jackrabbit.mk.wrapper.LogWrapper;
@@ -86,13 +87,13 @@ public class MicroKernelFactory {
             }
             return instance;
         } else if (url.startsWith("log:")) {
-            return LogWrapper.get(url);
+            return new LogWrapper(getInstance(url.substring("log:".length())));
         } else if (url.startsWith("sec:")) {
             return SecurityWrapper.get(url);
         } else if (url.startsWith("virtual:")) {
             return VirtualRepositoryWrapper.get(url);
         } else if (url.startsWith("index:")) {
-            return IndexWrapper.get(url);
+            return new IndexWrapper(getInstance(url.substring("index:".length())));
         } else if (url.startsWith("fs:")) {
             boolean clean = false;
             if (url.endsWith(";clean")) {
@@ -110,10 +111,24 @@ public class MicroKernelFactory {
             }
             return new MicroKernelImpl(dir);
         } else if (url.startsWith("http:")) {
-            return Client.createHttpClient(url);
+            return new Client(url);
         } else if (url.startsWith("http-bridge:")) {
-            MicroKernel mk = MicroKernelFactory.getInstance(url.substring("http-bridge:".length()));
-            return Client.createHttpBridge(mk);
+            MicroKernel mk = getInstance(url.substring("http-bridge:".length()));
+
+            final Server server = new Server(mk);
+            try {
+                server.start();
+            } catch (IOException e) {
+                throw new IllegalArgumentException(e.getMessage());
+            }
+
+            return new Client(server.getAddress()) {
+                @Override
+                public synchronized void dispose() {
+                    super.dispose();
+                    server.stop();
+                }
+            };
         } else {
             throw new IllegalArgumentException(url);
         }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/client/Client.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/client/Client.java?rev=1309712&r1=1309711&r2=1309712&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/client/Client.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/client/Client.java Thu Apr  5 09:18:45 2012
@@ -28,7 +28,6 @@ import javax.net.SocketFactory;
 
 import org.apache.jackrabbit.mk.api.MicroKernel;
 import org.apache.jackrabbit.mk.api.MicroKernelException;
-import org.apache.jackrabbit.mk.server.Server;
 import org.apache.jackrabbit.mk.util.IOUtils;
 
 /**
@@ -49,47 +48,32 @@ public class Client implements MicroKern
     private final AtomicBoolean disposed = new AtomicBoolean();
     
     private HttpExecutor executor;
-    
+
     /**
-     * Create a new instance of this class, given a URL to connect to.
+     * Returns the socket address of the given URL.
      * 
-     * @param url url
-     * @return micro kernel
+     * @param url URL
+     * @return socket address
      */
-    public static MicroKernel createHttpClient(String url) {
+    private static InetSocketAddress getAddress(String url) {
         try {
             URI uri = new URI(url);
-            return new Client(new InetSocketAddress(uri.getHost(), uri.getPort()));
+            return new InetSocketAddress(uri.getHost(), uri.getPort());
         } catch (URISyntaxException e) {
-            throw new IllegalArgumentException(e.getMessage());
+            throw new IllegalArgumentException(e);
         }
     }
     
+
     /**
-     * Create a new instance of this class, where every request goes through an HTTP bridge
-     * before being delivered to a given micro kernel implementation.
+     * Create a new instance of this class.
      * 
-     * @param mk micro kernel 
-     * @return bridged micro kernel
+     * @param addr socket address
      */
-    public static MicroKernel createHttpBridge(MicroKernel mk) {
-        final Server server = new Server(mk);
-        
-        try {
-            server.start();
-        } catch (IOException e) {
-            throw new IllegalArgumentException(e.getMessage());
-        }
-
-        return new Client(server.getAddress()) {
-            @Override
-            public synchronized void dispose() {
-                super.dispose();
-                server.stop();
-            }
-        };
+    public Client(String url) {
+        this(getAddress(url));
     }
-    
+
     /**
      * Create a new instance of this class.
      * 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/index/IndexWrapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/index/IndexWrapper.java?rev=1309712&r1=1309711&r2=1309712&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/index/IndexWrapper.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/index/IndexWrapper.java Thu Apr  5 09:18:45 2012
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.mk.index;
 import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Iterator;
-import org.apache.jackrabbit.mk.MicroKernelFactory;
 import org.apache.jackrabbit.mk.api.MicroKernel;
 import org.apache.jackrabbit.mk.api.MicroKernelException;
 import org.apache.jackrabbit.mk.json.JsopReader;
@@ -53,12 +52,6 @@ public class IndexWrapper extends MicroK
         this.indexer = new Indexer(mk);
     }
 
-    public static synchronized IndexWrapper get(String url) {
-        String u = url.substring("index:".length());
-        IndexWrapper w = new IndexWrapper(MicroKernelFactory.getInstance(u));
-        return w;
-    }
-
     public String getHeadRevision() {
         return mk.getHeadRevision();
     }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/LogWrapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/LogWrapper.java?rev=1309712&r1=1309711&r2=1309712&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/LogWrapper.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/LogWrapper.java Thu Apr  5 09:18:45 2012
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.mk.wrapper
 
 import java.io.InputStream;
 import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.jackrabbit.mk.MicroKernelFactory;
 import org.apache.jackrabbit.mk.api.MicroKernel;
 import org.apache.jackrabbit.mk.json.JsopBuilder;
 import org.apache.jackrabbit.mk.util.ExceptionFactory;
@@ -38,14 +37,6 @@ public class LogWrapper implements Micro
         this.mk = mk;
     }
 
-    public static synchronized LogWrapper get(String url) {
-        String u = url.substring("log:".length());
-        LogWrapper w = new LogWrapper(MicroKernelFactory.getInstance(u));
-        w.log("MicroKernel mk" + w.id + " = MicroKernelFactory.getInstance("
-                + JsopBuilder.encode(u) + ");");
-        return w;
-    }
-
     public String commit(String path, String jsonDiff, String revisionId, String message) {
         try {
             logMethod("commit", path, jsonDiff, revisionId, message);