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 mr...@apache.org on 2014/02/18 12:27:23 UTC

svn commit: r1569277 - in /jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak: benchmark/BenchmarkRunner.java fixture/OakRepositoryFixture.java

Author: mreutegg
Date: Tue Feb 18 11:27:23 2014
New Revision: 1569277

URL: http://svn.apache.org/r1569277
Log:
OAK-1428: Change Oak-Mongo fixture to DocumentNodeStore

Modified:
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
    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/benchmark/BenchmarkRunner.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java?rev=1569277&r1=1569276&r2=1569277&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java Tue Feb 18 11:27:23 2014
@@ -89,6 +89,10 @@ public class BenchmarkRunner {
                         host.value(options), port.value(options),
                         dbName.value(options), dropDBAfterTest.value(options),
                         cacheSize * MB),
+                OakRepositoryFixture.getMongoMK(
+                        host.value(options), port.value(options),
+                        dbName.value(options), dropDBAfterTest.value(options),
+                        cacheSize * MB),
                 OakRepositoryFixture.getSegment(
                         host.value(options), port.value(options), cacheSize),
                 OakRepositoryFixture.getTar(

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=1569277&r1=1569276&r2=1569277&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 Tue Feb 18 11:27:23 2014
@@ -89,80 +89,31 @@ public abstract class OakRepositoryFixtu
     public static RepositoryFixture getMongo(
             final String host, final int port, final String database,
             final boolean dropDBAfterTest, final long cacheSize) {
+        return getMongo("Oak-Mongo", false, host, port, database,
+                dropDBAfterTest, cacheSize);
+    }
 
-        return new OakRepositoryFixture("Oak-Mongo") {
-            private String dbName = database != null ? database : unique;
-            private DocumentMK[] kernels;
-            private BlobStore blobStore;
-
-            private BlobStore getBlobStore() {
-                BlobStoreConfiguration config =
-                        BlobStoreConfiguration.newInstance().loadFromSystemProps();
-                try {
-                    blobStore =
-                            BlobStoreHelper.create(config).orNull();
-                } catch (Exception e) {
-                    throw new RuntimeException(e);
-                }
-
-                return blobStore;
-            }
-
-            @Override
-            protected Repository[] internalSetUpCluster(int n) throws Exception {
-                Repository[] cluster = new Repository[n];
-                kernels = new DocumentMK[cluster.length];
-                for (int i = 0; i < cluster.length; i++) {
-                    MongoConnection mongo =
-                            new MongoConnection(host, port, dbName);
-                    BlobStore blobStore = getBlobStore();
-                    DocumentMK.Builder mkBuilder = new DocumentMK.Builder().
-                            setMongoDB(mongo.getDB()).
-                            setClusterId(i).setLogging(false);
-                    if (blobStore != null) {
-                            mkBuilder.setBlobStore(blobStore);
-                    }
-                    kernels[i] = mkBuilder.open();
-                    Oak oak = new Oak(new KernelNodeStore(kernels[i], cacheSize));
-                    cluster[i] = new Jcr(oak).createRepository();
-                }
-                return cluster;
-            }
-
-            @Override
-            public void tearDownCluster() {
-                super.tearDownCluster();
-                for (DocumentMK kernel : kernels) {
-                    kernel.dispose();
-                }
-                if (dropDBAfterTest) {
-                    try {
-                        MongoConnection mongo =
-                                new MongoConnection(host, port, dbName);
-                        mongo.getDB().dropDatabase();
-                        mongo.close();
-                        if (blobStore instanceof CloudBlobStore) {
-                            ((CloudBlobStore) blobStore).deleteBucket();
-                        } else if (blobStore instanceof DataStoreBlobStore) {
-                            ((DataStoreBlobStore) blobStore).clearInUse();
-                            ((DataStoreBlobStore) blobStore).deleteAllOlderThan(
-                                    System.currentTimeMillis() + 10000000);
-                        }
-                    } catch (Exception e) {
-                        throw new RuntimeException(e);
-                    }
-                }
-            }
-        };
+    public static RepositoryFixture getMongoMK(
+            final String host, final int port, final String database,
+            final boolean dropDBAfterTest, final long cacheSize) {
+        return getMongo("Oak-MongoMK", true, host, port, database,
+                dropDBAfterTest, cacheSize);
     }
 
     public static RepositoryFixture getMongoNS(
             final String host, final int port, final String database,
             final boolean dropDBAfterTest, final long cacheSize) {
+        return getMongo("Oak-MongoNS", false, host, port, database,
+                dropDBAfterTest, cacheSize);
+    }
 
-        return new OakRepositoryFixture("Oak-MongoNS") {
+    private static RepositoryFixture getMongo(String name, final boolean useMK,
+            final String host, final int port, final String database,
+            final boolean dropDBAfterTest, final long cacheSize) {
+
+        return new OakRepositoryFixture(name) {
             private String dbName = database != null ? database : unique;
-            private DocumentNodeStore[] stores;
+            private DocumentMK[] kernels;
             private BlobStore blobStore;
 
             private BlobStore getBlobStore() {
@@ -181,21 +132,25 @@ public abstract class OakRepositoryFixtu
             @Override
             protected Repository[] internalSetUpCluster(int n) throws Exception {
                 Repository[] cluster = new Repository[n];
-                stores = new DocumentNodeStore[cluster.length];
+                kernels = new DocumentMK[cluster.length];
                 for (int i = 0; i < cluster.length; i++) {
                     MongoConnection mongo =
                             new MongoConnection(host, port, dbName);
                     BlobStore blobStore = getBlobStore();
-                    DocumentMK.Builder mkBuilder =
-                            new DocumentMK.Builder().
+                    DocumentMK.Builder mkBuilder = new DocumentMK.Builder().
                             setMongoDB(mongo.getDB()).
                             memoryCacheSize(cacheSize).
                             setClusterId(i).setLogging(false);
                     if (blobStore != null) {
-                        mkBuilder.setBlobStore(blobStore);
+                            mkBuilder.setBlobStore(blobStore);
+                    }
+                    kernels[i] = mkBuilder.open();
+                    Oak oak;
+                    if (useMK) {
+                        oak = new Oak(new KernelNodeStore(kernels[i], cacheSize));
+                    } else {
+                        oak = new Oak(kernels[i].getNodeStore());
                     }
-                    stores[i] = mkBuilder.getNodeStore();             
-                    Oak oak = new Oak(stores[i]);
                     cluster[i] = new Jcr(oak).createRepository();
                 }
                 return cluster;
@@ -204,8 +159,8 @@ public abstract class OakRepositoryFixtu
             @Override
             public void tearDownCluster() {
                 super.tearDownCluster();
-                for (DocumentNodeStore store : stores) {
-                    store.dispose();
+                for (DocumentMK kernel : kernels) {
+                    kernel.dispose();
                 }
                 if (dropDBAfterTest) {
                     try {