Improve MongoDB TestDriver

* pom.xml: Use 1.45 release of flapdoodle embed mongo
* pom.xml: Bump mongo java driver to 2.12.1
* GoraMongodbTestDriver: Use MongoDB 2.6 release
* GoraMongodbTestDriver: Start with a random free port (and inject this random 
port into Hadoop configuration)
* gora.properties: Cleanup file to only keep mongo properties


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/a7c5f779
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/a7c5f779
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/a7c5f779

Branch: refs/heads/master
Commit: a7c5f7791923742513e254ad3e968e0c898b5c9a
Parents: ce83f25
Author: Damien Raude-Morvan <dam...@dictanova.com>
Authored: Thu May 8 12:06:50 2014 +0200
Committer: Damien Raude-Morvan <dam...@dictanova.com>
Committed: Thu May 8 12:06:50 2014 +0200

----------------------------------------------------------------------
 gora-mongodb/pom.xml                            |  4 +-
 gora-mongodb/src/test/conf/gora.properties      | 72 ++------------------
 .../gora/mongodb/GoraMongodbTestDriver.java     | 47 +++++++------
 .../gora/mongodb/store/TestMongoStore.java      |  1 -
 4 files changed, 32 insertions(+), 92 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/gora/blob/a7c5f779/gora-mongodb/pom.xml
----------------------------------------------------------------------
diff --git a/gora-mongodb/pom.xml b/gora-mongodb/pom.xml
index aaf2944..6e3baa7 100644
--- a/gora-mongodb/pom.xml
+++ b/gora-mongodb/pom.xml
@@ -115,7 +115,7 @@
         <dependency>
             <groupId>org.mongodb</groupId>
             <artifactId>mongo-java-driver</artifactId>
-            <version>2.12.0</version>
+            <version>2.12.1</version>
         </dependency>
 
         <dependency>
@@ -170,7 +170,7 @@
         <dependency>
             <groupId>de.flapdoodle.embed</groupId>
             <artifactId>de.flapdoodle.embed.mongo</artifactId>
-            <version>1.42</version>
+            <version>1.45</version>
             <scope>test</scope>
         </dependency>
 

http://git-wip-us.apache.org/repos/asf/gora/blob/a7c5f779/gora-mongodb/src/test/conf/gora.properties
----------------------------------------------------------------------
diff --git a/gora-mongodb/src/test/conf/gora.properties 
b/gora-mongodb/src/test/conf/gora.properties
index 1d15229..40be223 100644
--- a/gora-mongodb/src/test/conf/gora.properties
+++ b/gora-mongodb/src/test/conf/gora.properties
@@ -13,77 +13,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-#gora.datastore.default=org.apache.gora.mock.store.MockDataStore
-gora.datastore.autocreateschema=true
-
-###############################
-# Default SqlStore properties #
-###############################
-
-gora.sqlstore.jdbc.driver=org.hsqldb.jdbc.JDBCDriver
-gora.sqlstore.jdbc.url=jdbc:hsqldb:hsql://localhost/nutchtest
-gora.sqlstore.jdbc.user=sa
-gora.sqlstore.jdbc.password=
-
-################################
-# Default AvroStore properties #
-################################
-
-# gora.avrostore.codec.type=BINARY||JSON
-# gora.avrostore.output.path=file:///tmp/gora.avrostore.test.output
-
-################################
-# DatafileAvroStore properties #
-################################
-# DataFileAvroStore is file based store which uses Avro's 
-# DataFile{Writer,Reader}'s as a backend. This datastore supports 
-# mapreduce.
-
-# gora.datafileavrostore.###=
-
-#########################
-# HBaseStore properties #
-#########################
-# HBase requires that the Configuration has a valid "hbase.zookeeper.quorum"
-# property. It should be included within hbase-site.xml on the classpath. When
-# this property is omitted, it expects Zookeeper to run on localhost:2181.
-
-# To greatly improve scan performance, increase the hbase-site Configuration
-# property "hbase.client.scanner.caching". This sets the number of rows to grab
-# per request.
-
-# HBase autoflushing. Enabling autoflush decreases write performance. 
-# Available since Gora 0.2. Defaults to disabled.
-# hbase.client.autoflush.default=false
-
-#############################
-# CassandraStore properties #
-#############################
-
-# gora.cassandrastore.servers=localhost:9160
-
-#######################
-# MemStore properties #
-#######################
-# This is a memory based {@link DataStore} implementation for tests.
-
-# gora.memstore.###=
-
-############################
-# AccumuloStore properties #
-############################
-#gora.datastore.default=org.apache.gora.accumulo.store.AccumuloStore
-#gora.datastore.accumulo.mock=true
-#gora.datastore.accumulo.instance=a14
-#gora.datastore.accumulo.zookeepers=localhost
-#gora.datastore.accumulo.user=root
-#gora.datastore.accumulo.password=secret
-
 ############################
 # MongoDBStore properties  #
 ############################
+
+gora.datastore.autocreateschema=true
 gora.datastore.default=org.apache.gora.mongodb.store.MongoStore
-gora.mongodb.override_hadoop_configuration=true
+# Don't override properties coming from Hadoop configuration for test
+# Those properties will contains override for Mongo server port
+gora.mongodb.override_hadoop_configuration=false
 gora.mongodb.mapping.file=/gora-mongodb-mapping.xml
 gora.mongodb.servers=localhost
 gora.mongodb.db=nutchtest

http://git-wip-us.apache.org/repos/asf/gora/blob/a7c5f779/gora-mongodb/src/test/java/org/apache/gora/mongodb/GoraMongodbTestDriver.java
----------------------------------------------------------------------
diff --git 
a/gora-mongodb/src/test/java/org/apache/gora/mongodb/GoraMongodbTestDriver.java 
b/gora-mongodb/src/test/java/org/apache/gora/mongodb/GoraMongodbTestDriver.java
index e4f6e38..406284b 100644
--- 
a/gora-mongodb/src/test/java/org/apache/gora/mongodb/GoraMongodbTestDriver.java
+++ 
b/gora-mongodb/src/test/java/org/apache/gora/mongodb/GoraMongodbTestDriver.java
@@ -23,60 +23,63 @@
  */
 package org.apache.gora.mongodb;
 
-import com.mongodb.Mongo;
+import org.apache.gora.GoraTestDriver;
+import org.apache.gora.mongodb.store.MongoStore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
+import com.mongodb.Mongo;
 import com.mongodb.MongoClient;
+
+import de.flapdoodle.embed.mongo.MongodExecutable;
+import de.flapdoodle.embed.mongo.MongodProcess;
+import de.flapdoodle.embed.mongo.MongodStarter;
 import de.flapdoodle.embed.mongo.config.IMongodConfig;
 import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;
 import de.flapdoodle.embed.mongo.config.Net;
 import de.flapdoodle.embed.mongo.distribution.Version;
-import de.flapdoodle.embed.mongo.MongodExecutable;
-import de.flapdoodle.embed.mongo.MongodProcess;
-import de.flapdoodle.embed.mongo.MongodStarter;
 import de.flapdoodle.embed.process.runtime.Network;
 
-import org.apache.gora.GoraTestDriver;
-import org.apache.gora.mongodb.store.MongoStore;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 public class GoraMongodbTestDriver extends GoraTestDriver {
 
-  private static Logger log = 
LoggerFactory.getLogger(GoraMongodbTestDriver.class);
+  private static Logger log = LoggerFactory
+      .getLogger(GoraMongodbTestDriver.class);
 
   private MongodExecutable _mongodExe;
   private MongodProcess _mongod;
   private MongoClient _mongo;
 
-  
   /**
    * Constructor for this class.
    */
   public GoraMongodbTestDriver() {
     super(MongoStore.class);
   }
-  
+
   /**
    * Initiate the MongoDB server on the default port
    */
   @Override
   public void setUpClass() throws Exception {
     super.setUpClass();
-      MongodStarter runtime = MongodStarter.getDefaultInstance();
+    MongodStarter runtime = MongodStarter.getDefaultInstance();
+
+    int port = Network.getFreeServerPort();
+    IMongodConfig mongodConfig = new MongodConfigBuilder()
+        .version(Version.Main.V2_6)
+        .net(new Net(port, Network.localhostIsIPv6())).build();
 
-      int port = 27017;
-      IMongodConfig mongodConfig = new MongodConfigBuilder()
-              .version(Version.Main.PRODUCTION)
-              .net(new Net(port, Network.localhostIsIPv6()))
-              .build();
+    // Store Mongo server "host:port" in Hadoop configuration
+    // so that MongoStore will be able to get it latter
+    conf.set(MongoStore.PROP_MONGO_SERVERS, "127.0.0.1:" + port);
 
-    log.info("Starting embedded Mongodb server on the default port: {}" + 
port);
+    log.info("Starting embedded Mongodb server on {} port.", port);
     try {
 
-        _mongodExe = runtime.prepare(mongodConfig);
+      _mongodExe = runtime.prepare(mongodConfig);
       _mongod = _mongodExe.start();
 
-       _mongo = new MongoClient("localhost", port);
+      _mongo = new MongoClient("localhost", port);
     } catch (Exception e) {
       log.error("Error starting embedded Mongodb server... tearing down test 
driver.");
       tearDownClass();
@@ -84,7 +87,7 @@ public class GoraMongodbTestDriver extends GoraTestDriver {
   }
 
   /**
-   * Tear the server down 
+   * Tear the server down
    */
   @Override
   public void tearDownClass() throws Exception {

http://git-wip-us.apache.org/repos/asf/gora/blob/a7c5f779/gora-mongodb/src/test/java/org/apache/gora/mongodb/store/TestMongoStore.java
----------------------------------------------------------------------
diff --git 
a/gora-mongodb/src/test/java/org/apache/gora/mongodb/store/TestMongoStore.java 
b/gora-mongodb/src/test/java/org/apache/gora/mongodb/store/TestMongoStore.java
index 3efc3ce..02a86db 100644
--- 
a/gora-mongodb/src/test/java/org/apache/gora/mongodb/store/TestMongoStore.java
+++ 
b/gora-mongodb/src/test/java/org/apache/gora/mongodb/store/TestMongoStore.java
@@ -30,7 +30,6 @@ import org.junit.Ignore;
 import java.io.IOException;
 
 public class TestMongoStore extends DataStoreTestBase {
-//public class TestMongoStore {
 
   private Configuration conf;
   

Reply via email to