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 st...@apache.org on 2012/05/29 14:54:15 UTC
svn commit: r1343706 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/mk/
oak-core/src/main/java/org/apache/jackrabbit/mk/index/
oak-core/src/main/java/org/apache/jackrabbit/mk/simple/
oak-core/src/main/java/org/apache/jackrabbi...
Author: stefan
Date: Tue May 29 12:54:14 2012
New Revision: 1343706
URL: http://svn.apache.org/viewvc?rev=1343706&view=rev
Log:
OAK-32
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/index/IndexWrapper.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/simple/SimpleKernelImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/LogWrapper.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/MicroKernelWrapperBase.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/SecurityWrapper.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/VirtualRepositoryWrapper.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/mk/MultiMkTestBase.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/mk/wrapper/VirtualRepositoryWrapperTest.java
jackrabbit/oak/trunk/oak-it/mk/src/test/java/org/apache/jackrabbit/mk/test/ClientServerFixture.java
jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/api/MicroKernel.java
jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/client/Client.java
jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/server/Server.java
jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/store/DefaultRevisionStoreTest.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/MicroKernelServer.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepositoryServlet.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=1343706&r1=1343705&r2=1343706&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 Tue May 29 12:54:14 2012
@@ -130,27 +130,43 @@ public class MicroKernelFactory {
@Override
public void dispose() {
super.dispose();
- mk.dispose();
+ MicroKernelFactory.disposeInstance(mk);
}
};
} catch (MicroKernelException e) {
- mk.dispose();
+ MicroKernelFactory.disposeInstance(mk);
throw e;
}
} else if (head.equals("virtual")) {
- MicroKernel mk = getInstance(tail);
+ final MicroKernel mk = getInstance(tail);
try {
- return new VirtualRepositoryWrapper(mk);
+ return new VirtualRepositoryWrapper(mk) {
+ @Override
+ public void dispose() {
+ super.dispose();
+ MicroKernelFactory.disposeInstance(mk);
+ }
+ };
} catch (MicroKernelException e) {
- mk.dispose();
+ MicroKernelFactory.disposeInstance(mk);
throw e;
}
} else if (head.equals("index")) {
- return new IndexWrapper(getInstance(tail));
+ final MicroKernel mk = getInstance(tail);
+ try {
+ return new IndexWrapper(mk) {
+ public void dispose() {
+ MicroKernelFactory.disposeInstance(mk);
+ }
+ };
+ } catch (MicroKernelException e) {
+ MicroKernelFactory.disposeInstance(mk);
+ throw e;
+ }
} else if (head.equals("http")) {
return new Client(url);
} else if (head.equals("http-bridge")) {
- MicroKernel mk = getInstance(tail);
+ final MicroKernel mk = getInstance(tail);
final Server server = new Server(mk);
try {
@@ -164,6 +180,7 @@ public class MicroKernelFactory {
public synchronized void dispose() {
super.dispose();
server.stop();
+ MicroKernelFactory.disposeInstance(mk);
}
};
} else {
@@ -172,10 +189,32 @@ public class MicroKernelFactory {
}
/**
- * Delete a directory or file and all subdirectories and files inside it.
- *
- * @param file the file denoting the directory to delete
+ * Disposes an instance that was created by this factory.
+ * @param mk MicroKernel instance
*/
+ public static void disposeInstance(MicroKernel mk) {
+ if (mk instanceof MicroKernelImpl) {
+ ((MicroKernelImpl) mk).dispose();
+ } else if (mk instanceof SimpleKernelImpl) {
+ ((SimpleKernelImpl) mk).dispose();
+ } else if (mk instanceof LogWrapper) {
+ ((LogWrapper) mk).dispose();
+ } else if (mk instanceof SecurityWrapper) {
+ ((SecurityWrapper) mk).dispose();
+ } else if (mk instanceof VirtualRepositoryWrapper) {
+ ((VirtualRepositoryWrapper) mk).dispose();
+ } else if (mk instanceof IndexWrapper) {
+ ((IndexWrapper) mk).dispose();
+ } else {
+ throw new IllegalArgumentException("instance was not created by this factory");
+ }
+ }
+
+ /**
+ * Delete a directory or file and all subdirectories and files inside it.
+ *
+ * @param file the file denoting the directory to delete
+ */
private static void deleteRecursive(File file) {
File[] files = file.listFiles();
for (int i = 0; files != null && i < files.length; i++) {
@@ -183,5 +222,4 @@ public class MicroKernelFactory {
}
file.delete();
}
-
}
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=1343706&r1=1343705&r2=1343706&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 Tue May 29 12:54:14 2012
@@ -253,9 +253,8 @@ public class IndexWrapper extends MicroK
return mk.getRevisionsStream(since, maxEntries, path);
}
- @Override
public void dispose() {
- mk.dispose();
+ // do nothing
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/simple/SimpleKernelImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/simple/SimpleKernelImpl.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/simple/SimpleKernelImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/simple/SimpleKernelImpl.java Tue May 29 12:54:14 2012
@@ -576,7 +576,6 @@ public class SimpleKernelImpl extends Mi
return ds.writeBlob(in);
}
- @Override
public synchronized void dispose() {
if (!disposed) {
disposed = true;
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=1343706&r1=1343705&r2=1343706&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 Tue May 29 12:54:14 2012
@@ -50,16 +50,8 @@ public class LogWrapper implements Micro
}
}
- @Override
public void dispose() {
- try {
- logMethod("dispose");
- mk.dispose();
- logResult();
- } catch (Exception e) {
- logException(e);
- throw convert(e);
- }
+ // do nothing
}
@Override
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/MicroKernelWrapperBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/MicroKernelWrapperBase.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/MicroKernelWrapperBase.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/MicroKernelWrapperBase.java Tue May 29 12:54:14 2012
@@ -136,11 +136,6 @@ public abstract class MicroKernelWrapper
}
@Override
- public void dispose() {
- wrapped.dispose();
- }
-
- @Override
public String getHeadRevision() throws MicroKernelException {
return wrapped.getHeadRevision();
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/SecurityWrapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/SecurityWrapper.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/SecurityWrapper.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/SecurityWrapper.java Tue May 29 12:54:14 2012
@@ -96,7 +96,6 @@ public class SecurityWrapper extends Mic
return mk.commitStream(rootPath, jsonDiff, revisionId, message);
}
- @Override
public void dispose() {
// do nothing
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/VirtualRepositoryWrapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/VirtualRepositoryWrapper.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/VirtualRepositoryWrapper.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/mk/wrapper/VirtualRepositoryWrapper.java Tue May 29 12:54:14 2012
@@ -226,12 +226,10 @@ public class VirtualRepositoryWrapper ex
return builder;
}
- @Override
public void dispose() {
for (MicroKernel m : mounts.values()) {
- m.dispose();
+ MicroKernelFactory.disposeInstance(m);
}
- mk.dispose();
}
@Override
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/mk/MultiMkTestBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/mk/MultiMkTestBase.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/mk/MultiMkTestBase.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/mk/MultiMkTestBase.java Tue May 29 12:54:14 2012
@@ -79,7 +79,7 @@ public class MultiMkTestBase {
if (prof != null) {
System.out.println(prof.getTop(5));
}
- mk.dispose();
+ MicroKernelFactory.disposeInstance(mk);
}
protected void reconnect() {
@@ -87,7 +87,7 @@ public class MultiMkTestBase {
if (url.equals("simple:")) {
return;
}
- mk.dispose();
+ MicroKernelFactory.disposeInstance(mk);
}
mk = MicroKernelFactory.getInstance(url);
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/mk/wrapper/VirtualRepositoryWrapperTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/mk/wrapper/VirtualRepositoryWrapperTest.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/mk/wrapper/VirtualRepositoryWrapperTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/mk/wrapper/VirtualRepositoryWrapperTest.java Tue May 29 12:54:14 2012
@@ -68,13 +68,13 @@ public class VirtualRepositoryWrapperTes
mkRep1.commit("/", "- \":mount\"", mkRep1.getHeadRevision(), "");
mkRep2.commit("/", "- \":mount\"", mkRep2.getHeadRevision(), "");
if (mkVirtual != null) {
- mkVirtual.dispose();
+ MicroKernelFactory.disposeInstance(mkVirtual);
}
if (mkRep1 != null) {
- mkRep1.dispose();
+ MicroKernelFactory.disposeInstance(mkRep1);
}
if (mkRep2 != null) {
- mkRep2.dispose();
+ MicroKernelFactory.disposeInstance(mkRep2);
}
super.tearDown();
} catch (Throwable e) {
Modified: jackrabbit/oak/trunk/oak-it/mk/src/test/java/org/apache/jackrabbit/mk/test/ClientServerFixture.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/mk/src/test/java/org/apache/jackrabbit/mk/test/ClientServerFixture.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/mk/src/test/java/org/apache/jackrabbit/mk/test/ClientServerFixture.java (original)
+++ jackrabbit/oak/trunk/oak-it/mk/src/test/java/org/apache/jackrabbit/mk/test/ClientServerFixture.java Tue May 29 12:54:14 2012
@@ -27,10 +27,13 @@ import org.apache.jackrabbit.mk.test.Mic
public class ClientServerFixture implements MicroKernelFixture {
+ private MicroKernelImpl mk;
+ private Server server;
+
@Override
public void setUpCluster(MicroKernel[] cluster) {
- MicroKernel mk = new MicroKernelImpl();
- final Server server = new Server(mk);
+ mk = new MicroKernelImpl();
+ server = new Server(mk);
try {
server.start();
} catch (IOException e) {
@@ -38,13 +41,7 @@ public class ClientServerFixture impleme
}
InetSocketAddress address = server.getAddress();
- cluster[0] = new Client(address) {
- @Override
- public synchronized void dispose() {
- super.dispose();
- server.stop();
- }
- };
+ cluster[0] = new Client(address);
for (int i = 1; i < cluster.length; i++) {
cluster[i] = new Client(address);
}
@@ -56,9 +53,7 @@ public class ClientServerFixture impleme
@Override
public void tearDownCluster(MicroKernel[] cluster) {
- for (int i = 0; i < cluster.length; i++) {
- ((Client) cluster[i]).dispose();
- }
+ server.stop();
+ mk.dispose();
}
-
}
Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/api/MicroKernel.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/api/MicroKernel.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/api/MicroKernel.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/api/MicroKernel.java Tue May 29 12:54:14 2012
@@ -47,13 +47,6 @@ import java.io.InputStream;
*/
public interface MicroKernel {
- /**
- * Dispose this instance.
- *
- * TODO remove lifecycle method from MicroKernel API (OAK-32)
- */
- void dispose();
-
//---------------------------------------------------------< REVISION ops >
/**
Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/client/Client.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/client/Client.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/client/Client.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/client/Client.java Tue May 29 12:54:14 2012
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.mk.client;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetSocketAddress;
-import java.net.Socket;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -36,8 +35,8 @@ import org.apache.jackrabbit.mk.util.IOU
*/
public class Client implements MicroKernel {
- private static final String MK_EXCEPTION_PREFIX = MicroKernelException.class.getName() + ":";
-
+ private static final String MK_EXCEPTION_PREFIX = MicroKernelException.class.getName() + ":";
+
private final InetSocketAddress addr;
private final SocketFactory socketFactory;
@@ -89,14 +88,13 @@ public class Client implements MicroKern
this.addr = addr;
this.socketFactory = socketFactory;
}
-
- //-------------------------------------------------- implements MicroKernel
-
- @Override
+
public void dispose() {
- // do nothing
+ // do nothing
}
+ //-------------------------------------------------- implements MicroKernel
+
@Override
public String getHeadRevision() throws MicroKernelException {
Request request = null;
@@ -223,7 +221,7 @@ public class Client implements MicroKern
@Override
public String getNodes(String path, String revisionId, int depth,
- long offset, int maxChildNodes, String filter) throws MicroKernelException {
+ long offset, int count, String filter) throws MicroKernelException {
Request request = null;
@@ -233,7 +231,7 @@ public class Client implements MicroKern
request.addParameter("revision_id", revisionId);
request.addParameter("depth", depth);
request.addParameter("offset", offset);
- request.addParameter("maxChildNodes", maxChildNodes);
+ request.addParameter("count", count);
request.addParameter("filter", filter);
// OAK-48: MicroKernel.getNodes() should return null for not existing nodes instead of throwing an exception
String result = request.getString();
Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/server/Server.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/server/Server.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/server/Server.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/server/Server.java Tue May 29 12:54:14 2012
@@ -225,10 +225,6 @@ public class Server {
if (!stopped.compareAndSet(false, true)) {
return;
}
- MicroKernel mk = mkref.getAndSet(null);
- if (mk != null) {
- mk.dispose();
- }
if (es != null) {
es.shutdown();
}
Modified: jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/store/DefaultRevisionStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/store/DefaultRevisionStoreTest.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/store/DefaultRevisionStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/store/DefaultRevisionStoreTest.java Tue May 29 12:54:14 2012
@@ -42,7 +42,7 @@ import org.junit.Test;
public class DefaultRevisionStoreTest {
/* avoid synthetic accessor */ DefaultRevisionStore rs;
- private MicroKernel mk;
+ private MicroKernelImpl mk;
@Before
public void setup() throws Exception {
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/MicroKernelServer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/MicroKernelServer.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/MicroKernelServer.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/MicroKernelServer.java Tue May 29 12:54:14 2012
@@ -31,7 +31,7 @@ public class MicroKernelServer {
return;
}
- MicroKernel mk = MicroKernelFactory.getInstance(args[0]);
+ final MicroKernel mk = MicroKernelFactory.getInstance(args[0]);
final Server server = new Server(mk);
if (args.length >= 2) {
@@ -48,6 +48,7 @@ public class MicroKernelServer {
@Override
public void run() {
server.stop();
+ MicroKernelFactory.disposeInstance(mk);
}
}, "ShutdownHook"));
}
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepositoryServlet.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepositoryServlet.java?rev=1343706&r1=1343705&r2=1343706&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepositoryServlet.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepositoryServlet.java Tue May 29 12:54:14 2012
@@ -28,7 +28,7 @@ class RepositoryServlet extends JCRWebda
private final String path;
- private MicroKernel kernel;
+ private MicroKernelImpl kernel;
private Repository repository;