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;