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;
}