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 th...@apache.org on 2014/01/20 12:27:56 UTC

svn commit: r1559668 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/ test/java/org/apache/jackrabbit/oak/plugins/mongomk/ test/java/org/apache/jackrabbit/oak/plugins/mongomk/blob/ test/java/org/apache/...

Author: thomasm
Date: Mon Jan 20 11:27:56 2014
New Revision: 1559668

URL: http://svn.apache.org/r1559668
Log:
OAK-619 MongoMK: remove duplicate code, make MongoBlobStoreTest independent of AbstractMongoConnectionTest

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/MongoConnection.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/AbstractMongoConnectionTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/CacheInvalidationIT.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/ClusterJoinTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoUtils.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/blob/MongoBlobStoreTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/impl/MongoMKConcurrentAddTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/multitenancy/MultiTenancyTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/MongoConnection.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/MongoConnection.java?rev=1559668&r1=1559667&r2=1559668&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/MongoConnection.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/MongoConnection.java Mon Jan 20 11:27:56 2014
@@ -74,7 +74,7 @@ public class MongoConnection {
                 .threadsAllowedToBlockForConnectionMultiplier(100);
     }
 
-    public static String toString(MongoClientOptions opts){
+    public static String toString(MongoClientOptions opts) {
         return Objects.toStringHelper(opts)
                 .add("connectionsPerHost", opts.getConnectionsPerHost())
                 .add("connectTimeout", opts.getConnectTimeout())
@@ -85,7 +85,7 @@ public class MongoConnection {
                 .add("maxWaitTime", opts.getMaxWaitTime())
                 .add("threadsAllowedToBlockForConnectionMultiplier",
                         opts.getThreadsAllowedToBlockForConnectionMultiplier())
-                .add("readPreference",opts.getReadPreference().getName())
+                .add("readPreference", opts.getReadPreference().getName())
                 .add("writeConcern", opts.getWriteConcern())
                 .toString();
     }

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/AbstractMongoConnectionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/AbstractMongoConnectionTest.java?rev=1559668&r1=1559667&r2=1559668&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/AbstractMongoConnectionTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/AbstractMongoConnectionTest.java Mon Jan 20 11:27:56 2014
@@ -23,54 +23,25 @@ import org.junit.Assume;
 import org.junit.Before;
 import org.junit.BeforeClass;
 
-import com.mongodb.BasicDBObject;
-import com.mongodb.DB;
-
 /**
  * Base class for test cases that need a {@link MongoConnection}
  * to a clean test database. Tests in subclasses are automatically
  * skipped if the configured MongoDB connection can not be created.
  */
 public abstract class AbstractMongoConnectionTest extends MongoMKTestBase {
-
-    protected static final String HOST =
-            System.getProperty("mongo.host", "127.0.0.1");
-
-    protected static final int PORT =
-            Integer.getInteger("mongo.port", 27017);
-
-    protected static final String DB =
-            System.getProperty("mongo.db", "MongoMKDB");
-
-    protected static Boolean mongoAvailable;
-
-    private static Exception mongoException;
     
     protected MongoConnection mongoConnection;
-
     protected MongoMK mk;
-
+    
     @BeforeClass
-    public static void setUpBeforeClass() throws Exception {
-        if (mongoAvailable == null) {
-            MongoConnection mongoConnection = new MongoConnection(HOST, PORT, DB);
-            try {
-                mongoConnection.getDB().command(new BasicDBObject("ping", 1));
-                mongoAvailable = Boolean.TRUE;
-            } catch (Exception e) {
-                mongoAvailable = Boolean.FALSE;
-                mongoException = e;
-            } finally {
-                mongoConnection.close();
-            }
-        }
-        Assume.assumeNoException(mongoException);
+    public static void checkMongoDbAvailable() {
+        Assume.assumeNotNull(MongoUtils.getConnection());
     }
 
     @Before
     public void setUpConnection() throws Exception {
-        mongoConnection = new MongoConnection(HOST, PORT, DB);
-        dropCollections(mongoConnection.getDB());
+        mongoConnection = MongoUtils.getConnection();
+        MongoUtils.dropCollections(mongoConnection.getDB());
         mk = new MongoMK.Builder().setMongoDB(mongoConnection.getDB()).open();
     }
 
@@ -79,8 +50,8 @@ public abstract class AbstractMongoConne
         mk.dispose();
         // the db might already be closed
         mongoConnection.close();
-        mongoConnection = new MongoConnection(HOST, PORT, DB);
-        dropCollections(mongoConnection.getDB());
+        mongoConnection = MongoUtils.getConnection();
+        MongoUtils.dropCollections(mongoConnection.getDB());
         mongoConnection.close();
     }
 
@@ -89,12 +60,4 @@ public abstract class AbstractMongoConne
         return mk;
     }
 
-    protected void dropCollections(DB db) throws Exception {
-        for (String name : db.getCollectionNames()) {
-            if (!name.startsWith("system.")) {
-                db.getCollection(name).drop();
-            }
-        }
-    }
-
 }

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/CacheInvalidationIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/CacheInvalidationIT.java?rev=1559668&r1=1559667&r2=1559668&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/CacheInvalidationIT.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/CacheInvalidationIT.java Mon Jan 20 11:27:56 2014
@@ -196,7 +196,7 @@ public class CacheInvalidationIT extends
     }
 
     private MongoNodeStore createNS(int clusterId) throws Exception {
-        MongoConnection mc = new MongoConnection(HOST, PORT, DB);
+        MongoConnection mc = MongoUtils.getConnection();
         return new MongoMK.Builder()
                           .setMongoDB(mc.getDB())
                           .setClusterId(clusterId)

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/ClusterJoinTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/ClusterJoinTest.java?rev=1559668&r1=1559667&r2=1559668&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/ClusterJoinTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/ClusterJoinTest.java Mon Jan 20 11:27:56 2014
@@ -37,7 +37,7 @@ public class ClusterJoinTest extends Abs
         // start a new MongoMK instance. this instance sees /foo
         // because it started after the commit on the first MongoMK
         MongoMK mk2 = new MongoMK.Builder().setAsyncDelay(0)
-                .setMongoDB(new MongoConnection(HOST, PORT, DB).getDB()).open();
+                .setMongoDB(MongoUtils.getConnection().getDB()).open();
 
         try {
             // this creates a first commit from the second MongoMK instance

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoUtils.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoUtils.java?rev=1559668&r1=1559667&r2=1559668&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoUtils.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoUtils.java Mon Jan 20 11:27:56 2014
@@ -44,12 +44,22 @@ public class MongoUtils {
      * @return the connection or null
      */
     public static MongoConnection getConnection() {
+        return getConnection(DB);
+    }
+    
+    /**
+     * Get a connection if available. If not available, null is returned.
+     * 
+     * @param dbName the database name
+     * @return the connection or null
+     */    
+    public static MongoConnection getConnection(String dbName) {
         if (exception != null) {
             return null;
         }
         MongoConnection mongoConnection = null;
         try {
-            mongoConnection = new MongoConnection(HOST, PORT, DB);
+            mongoConnection = new MongoConnection(HOST, PORT, dbName);
             mongoConnection.getDB().command(new BasicDBObject("ping", 1));
             // dropCollections(mongoConnection.getDB());
         } catch (Exception e) {

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/blob/MongoBlobStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/blob/MongoBlobStoreTest.java?rev=1559668&r1=1559667&r2=1559668&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/blob/MongoBlobStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/blob/MongoBlobStoreTest.java Mon Jan 20 11:27:56 2014
@@ -34,22 +34,32 @@ import java.util.concurrent.atomic.Atomi
 
 import org.apache.jackrabbit.mk.blobs.AbstractBlobStore;
 import org.apache.jackrabbit.mk.blobs.BlobStoreInputStream;
-import org.apache.jackrabbit.oak.plugins.mongomk.AbstractMongoConnectionTest;
+import org.apache.jackrabbit.oak.plugins.mongomk.MongoUtils;
+import org.apache.jackrabbit.oak.plugins.mongomk.util.MongoConnection;
 import org.junit.After;
+import org.junit.Assume;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
- * Tests the {@link MongoBlobStore} implementation. It should really extend from
- * AbstractBlobStore but it cannot due to classpath issues, so instead AbstractBlobStore
- * tests are copied here as well.
+ * Tests the {@link MongoBlobStore} implementation.
  */
-public class MongoBlobStoreTest extends AbstractMongoConnectionTest {
+public class MongoBlobStoreTest {
 
+    private MongoConnection mongoConnection;
     protected AbstractBlobStore store;
-
+    
+    @BeforeClass
+    public static void checkMongoDbAvailable() {
+        Assume.assumeNotNull(MongoUtils.getConnection());
+    }
+    
     @Before
     public void setUp() throws Exception {
+        mongoConnection = MongoUtils.getConnection();
+        MongoUtils.dropCollections(mongoConnection.getDB());
+        
         MongoBlobStore blobStore = new MongoBlobStore(mongoConnection.getDB());
         blobStore.setBlockSize(128);
         blobStore.setBlockSizeMin(48);
@@ -58,6 +68,7 @@ public class MongoBlobStoreTest extends 
 
     @After
     public void tearDown() throws Exception {
+        MongoUtils.dropCollections(mongoConnection.getDB());
         store = null;
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/impl/MongoMKConcurrentAddTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/impl/MongoMKConcurrentAddTest.java?rev=1559668&r1=1559667&r2=1559668&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/impl/MongoMKConcurrentAddTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/impl/MongoMKConcurrentAddTest.java Mon Jan 20 11:27:56 2014
@@ -28,6 +28,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.jackrabbit.mk.api.MicroKernel;
 import org.apache.jackrabbit.oak.plugins.mongomk.AbstractMongoConnectionTest;
 import org.apache.jackrabbit.oak.plugins.mongomk.MongoMK;
+import org.apache.jackrabbit.oak.plugins.mongomk.MongoUtils;
 import org.apache.jackrabbit.oak.plugins.mongomk.util.MongoConnection;
 import org.junit.After;
 import org.junit.Test;
@@ -44,8 +45,7 @@ public class MongoMKConcurrentAddTest ex
     private List<MongoConnection> connections = new ArrayList<MongoConnection>();
 
     private MicroKernel createMicroKernel() throws Exception {
-        MongoConnection connection = new MongoConnection(HOST,
-                PORT, DB);
+        MongoConnection connection = MongoUtils.getConnection();
         connections.add(connection);
         DB mongoDB = connection.getDB();
         return new MongoMK.Builder().setMongoDB(mongoDB).open();

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/multitenancy/MultiTenancyTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/multitenancy/MultiTenancyTest.java?rev=1559668&r1=1559667&r2=1559668&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/multitenancy/MultiTenancyTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/multitenancy/MultiTenancyTest.java Mon Jan 20 11:27:56 2014
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertTru
 import org.apache.jackrabbit.mk.api.MicroKernel;
 import org.apache.jackrabbit.oak.plugins.mongomk.AbstractMongoConnectionTest;
 import org.apache.jackrabbit.oak.plugins.mongomk.MongoMK;
+import org.apache.jackrabbit.oak.plugins.mongomk.MongoUtils;
 import org.apache.jackrabbit.oak.plugins.mongomk.util.MongoConnection;
 import org.junit.After;
 import org.junit.Before;
@@ -49,8 +50,8 @@ public class MultiTenancyTest extends Ab
 
     @BeforeClass
     public static void createMongoConnections() throws Exception {
-        mongoConnection2 = new MongoConnection(HOST, PORT, DB2);
-        mongoConnection3 = new MongoConnection(HOST, PORT, DB);
+        mongoConnection2 = MongoUtils.getConnection(DB2);
+        mongoConnection3 = MongoUtils.getConnection();
     }
 
 
@@ -71,7 +72,7 @@ public class MultiTenancyTest extends Ab
 
     @After
     public void dropCollections() throws Exception {
-        dropCollections(mongoConnection2.getDB());
+        MongoUtils.dropCollections(mongoConnection2.getDB());
         // DB1 handled by the AbstractMongoConnectionTest
     }