Author: mreutegg
Date: Thu Jan  9 10:31:56 2014
New Revision: 1556779

URL: http://svn.apache.org/r1556779
Log:
OAK-1313: Process does not exit after benchmark run

Modified:
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakRepositoryFixture.java

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakRepositoryFixture.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakRepositoryFixture.java?rev=1556779&r1=1556778&r2=1556779&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakRepositoryFixture.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakRepositoryFixture.java
 Thu Jan  9 10:31:56 2014
@@ -21,6 +21,7 @@ import java.io.File;
 import javax.jcr.Repository;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.mk.api.MicroKernel;
 import org.apache.jackrabbit.mk.core.MicroKernelImpl;
 import org.apache.jackrabbit.oak.plugins.mongomk.MongoMK;
@@ -41,7 +42,7 @@ public abstract class OakRepositoryFixtu
     public static RepositoryFixture getMemory(final long cacheSize) {
         return new OakRepositoryFixture("Oak-Memory") {
             @Override
-            public Repository[] setUpCluster(int n) throws Exception {
+            protected Repository[] internalSetUpCluster(int n) throws 
Exception {
                 Repository[] cluster = new Repository[n];
                 MicroKernel kernel = new MicroKernelImpl();
                 for (int i = 0; i < cluster.length; i++) {
@@ -58,7 +59,7 @@ public abstract class OakRepositoryFixtu
         return new OakRepositoryFixture("Oak-Default") {
             private MicroKernelImpl[] kernels;
             @Override
-            public Repository[] setUpCluster(int n) throws Exception {
+            protected Repository[] internalSetUpCluster(int n) throws 
Exception {
                 Repository[] cluster = new Repository[n];
                 kernels = new MicroKernelImpl[cluster.length];
                 for (int i = 0; i < cluster.length; i++) {
@@ -71,6 +72,7 @@ public abstract class OakRepositoryFixtu
             }
             @Override
             public void tearDownCluster() {
+                super.tearDownCluster();
                 for (MicroKernelImpl kernel : kernels) {
                     kernel.dispose();
                 }
@@ -86,7 +88,7 @@ public abstract class OakRepositoryFixtu
             private String dbName = database != null ? database : unique;
             private MongoMK[] kernels;
             @Override
-            public Repository[] setUpCluster(int n) throws Exception {
+            protected Repository[] internalSetUpCluster(int n) throws 
Exception {
                 Repository[] cluster = new Repository[n];
                 kernels = new MongoMK[cluster.length];
                 for (int i = 0; i < cluster.length; i++) {
@@ -102,6 +104,7 @@ public abstract class OakRepositoryFixtu
             }
             @Override
             public void tearDownCluster() {
+                super.tearDownCluster();
                 for (MongoMK kernel : kernels) {
                     kernel.dispose();
                 }
@@ -126,7 +129,7 @@ public abstract class OakRepositoryFixtu
             private String dbName = database != null ? database : unique;
             private MongoNodeStore[] stores;
             @Override
-            public Repository[] setUpCluster(int n) throws Exception {
+            protected Repository[] internalSetUpCluster(int n) throws 
Exception {
                 Repository[] cluster = new Repository[n];
                 stores = new MongoNodeStore[cluster.length];
                 for (int i = 0; i < cluster.length; i++) {
@@ -143,6 +146,7 @@ public abstract class OakRepositoryFixtu
             }
             @Override
             public void tearDownCluster() {
+                super.tearDownCluster();
                 for (MongoNodeStore store : stores) {
                     store.dispose();
                 }
@@ -166,7 +170,7 @@ public abstract class OakRepositoryFixtu
             private SegmentStore[] stores;
             private MongoClient mongo;
             @Override
-            public Repository[] setUpCluster(int n) throws Exception {
+            protected Repository[] internalSetUpCluster(int n) throws 
Exception {
                 Repository[] cluster = new Repository[n];
                 stores = new SegmentStore[cluster.length];
                 mongo = new MongoClient(host, port);
@@ -179,6 +183,7 @@ public abstract class OakRepositoryFixtu
             }
             @Override
             public void tearDownCluster() {
+                super.tearDownCluster();
                 for (SegmentStore store : stores) {
                     store.close();
                 }
@@ -194,7 +199,7 @@ public abstract class OakRepositoryFixtu
         return new OakRepositoryFixture("Oak-Tar") {
             private SegmentStore[] stores;
             @Override
-            public Repository[] setUpCluster(int n) throws Exception {
+            protected Repository[] internalSetUpCluster(int n) throws 
Exception {
                 Repository[] cluster = new Repository[n];
                 stores = new FileStore[cluster.length];
                 for (int i = 0; i < cluster.length; i++) {
@@ -208,6 +213,7 @@ public abstract class OakRepositoryFixtu
             }
             @Override
             public void tearDownCluster() {
+                super.tearDownCluster();
                 for (SegmentStore store : stores) {
                     store.close();
                 }
@@ -220,6 +226,8 @@ public abstract class OakRepositoryFixtu
 
     protected final String unique;
 
+    private Repository[] cluster;
+
     protected OakRepositoryFixture(String name) {
         this.name = name;
         this.unique = String.format("%s-%d", name, System.currentTimeMillis());
@@ -230,6 +238,11 @@ public abstract class OakRepositoryFixtu
         return true;
     }
 
+    @Override
+    public final Repository[] setUpCluster(int n) throws Exception {
+        cluster = internalSetUpCluster(n);
+        return cluster;
+    }
 
     @Override
     public void syncRepositoryCluster(Repository... nodes) {
@@ -238,7 +251,13 @@ public abstract class OakRepositoryFixtu
 
     @Override
     public void tearDownCluster() {
-        // nothing to do by default
+        if (cluster != null) {
+            for (Repository repo : cluster) {
+                if (repo instanceof JackrabbitRepository) {
+                    ((JackrabbitRepository) repo).shutdown();
+                }
+            }
+        }
     }
 
     @Override
@@ -246,4 +265,5 @@ public abstract class OakRepositoryFixtu
         return name;
     }
 
+    protected abstract Repository[] internalSetUpCluster(int n) throws 
Exception;
 }


Reply via email to