You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by dr...@apache.org on 2020/03/21 22:39:47 UTC

[gora] 06/07: GORA-647 Update gora-benchmark/pom.xml to depends on gora-mongodb:test-jar

This is an automated email from the ASF dual-hosted git repository.

drazzib pushed a commit to branch GORA-647-test-containers-mongo
in repository https://gitbox.apache.org/repos/asf/gora.git

commit 96179eab6149f9640198953f54447da6936678ea
Author: Damien Raude-Morvan <dr...@drazzib.com>
AuthorDate: Sat Mar 21 23:36:39 2020 +0100

    GORA-647 Update gora-benchmark/pom.xml to depends on gora-mongodb:test-jar
    
    We can import MongoContainer in GoraClientTest
    (with fixed MongoDB port on localhost)
---
 gora-benchmark/pom.xml                             |  7 +++
 .../org/apache/gora/benchmark/GoraClientTest.java  | 63 ++++++----------------
 pom.xml                                            |  6 +++
 3 files changed, 30 insertions(+), 46 deletions(-)

diff --git a/gora-benchmark/pom.xml b/gora-benchmark/pom.xml
index d804483..c8d6e9d 100644
--- a/gora-benchmark/pom.xml
+++ b/gora-benchmark/pom.xml
@@ -187,6 +187,13 @@
       <scope>test</scope>
     </dependency>
 
+    <dependency>
+      <groupId>org.apache.gora</groupId>
+      <artifactId>gora-mongodb</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
     <!-- Apache CouchDB java client -->
     <dependency>
       <groupId>org.ektorp</groupId>
diff --git a/gora-benchmark/src/test/java/org/apache/gora/benchmark/GoraClientTest.java b/gora-benchmark/src/test/java/org/apache/gora/benchmark/GoraClientTest.java
index 321d151..b6a5cce 100644
--- a/gora-benchmark/src/test/java/org/apache/gora/benchmark/GoraClientTest.java
+++ b/gora-benchmark/src/test/java/org/apache/gora/benchmark/GoraClientTest.java
@@ -17,19 +17,9 @@
  */
 package org.apache.gora.benchmark;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Properties;
-import java.util.Set;
-import java.util.Vector;
-
+import com.mongodb.ServerAddress;
 import org.apache.gora.benchmark.generated.User;
+import org.apache.gora.mongodb.MongoContainer;
 import org.apache.gora.store.DataStoreFactory;
 import org.apache.gora.util.GoraException;
 import org.junit.After;
@@ -37,22 +27,19 @@ import org.junit.Before;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
-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.process.runtime.Network;
 import site.ycsb.ByteIterator;
 import site.ycsb.Status;
 import site.ycsb.StringByteIterator;
 import site.ycsb.workloads.CoreWorkload;
 
+import java.io.File;
+import java.util.*;
+
+import static org.apache.gora.mongodb.MongoContainer.MONGO_PORT;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 /**
  * The Class GoraClientTest.
  */
@@ -63,9 +50,6 @@ public class GoraClientTest {
   private static HashMap<String, ByteIterator> DATA_TO_INSERT;
   private static HashMap<String, ByteIterator> DATA_TO_UPDATE;
   private static HashMap<String, ByteIterator> INTEGER_DATA;
-  private MongodExecutable mongodExecutable;
-  private MongodProcess mongodProcess;
-  private MongoClient mongoClient;
   private static boolean isMongoDBSetupDone = false;
 
   /**
@@ -74,28 +58,15 @@ public class GoraClientTest {
    * {@link setUp() class} which is executed testUpdate after each test.
    */
   private void setupMongoDBCluster() {
-    MongodStarter starter = MongodStarter.getDefaultInstance();
-    String bindIp = Constants.LOCALHOST;
-    int port = Constants.MONGO_DEFAULT_PORT;
-    IMongodConfig mongodConfig = null;
-    try {
-      mongodConfig = new MongodConfigBuilder().version(Version.Main.PRODUCTION)
-          .net(new Net(bindIp, port, Network.localhostIsIPv6())).build();
-    } catch (IOException e) {
-      LOG.info("There is a problem in configuring MongoDB", e.getMessage(), e);
-    }
-    this.mongodExecutable = starter.prepare(mongodConfig);
     try {
-      LOG.info("Starting MongDB Server on port " + bindIp + ":" + port);
-      this.mongodProcess = mongodExecutable.start();
-    } catch (IOException e) {
-      LOG.info("Cannot Start MongDB Server on port " + bindIp + ":" + port, e.getMessage(), e);
-      this.mongodProcess.stop();
-      this.mongodExecutable.stop();
-      if (this.mongoClient != null)
-        this.mongoClient.close();
+      MongoContainer mongo = new MongoContainer("3.6")
+              .withFixedExposedPort(MONGO_PORT, MONGO_PORT);
+      mongo.start();
+      ServerAddress address = mongo.getServerAddress();
+      LOG.info("Started MongoDB Server on " + address.getHost() + ":" + address.getPort());
+    } catch (Exception e) {
+      LOG.info("Cannot Start MongoDB Server {}", e.getMessage(), e);
     }
-    this.mongoClient = new MongoClient(bindIp, port);
   }
 
   /**
diff --git a/pom.xml b/pom.xml
index 5fbb8d3..eb8dc3d 100755
--- a/pom.xml
+++ b/pom.xml
@@ -1060,6 +1060,12 @@
         <artifactId>gora-mongodb</artifactId>
         <version>${project.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.gora</groupId>
+        <artifactId>gora-mongodb</artifactId>
+        <version>${project.version}</version>
+        <type>test-jar</type>
+      </dependency>
 
       <!--Kudu DataStore dependencies -->
       <dependency>