This is an automated email from the ASF dual-hosted git repository.
drazzib pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/gora.git
The following commit(s) were added to refs/heads/master by this push:
new 6191aea GORA-668 Allow gora-benchmark to perform proper setup of
MongoDB
6191aea is described below
commit 6191aeae8fd3bfb1e87525ac3d02d5f5eaf7996e
Author: Damien Raude-Morvan <[email protected]>
AuthorDate: Sat Oct 31 15:55:29 2020 +0100
GORA-668 Allow gora-benchmark to perform proper setup of MongoDB
---
.../org/apache/gora/benchmark/GoraBenchmarkClient.java | 1 +
.../java/org/apache/gora/benchmark/GoraClientTest.java | 17 ++++++++++-------
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git
a/gora-benchmark/src/main/java/org/apache/gora/benchmark/GoraBenchmarkClient.java
b/gora-benchmark/src/main/java/org/apache/gora/benchmark/GoraBenchmarkClient.java
index 79c5840..ecfb377 100644
---
a/gora-benchmark/src/main/java/org/apache/gora/benchmark/GoraBenchmarkClient.java
+++
b/gora-benchmark/src/main/java/org/apache/gora/benchmark/GoraBenchmarkClient.java
@@ -84,6 +84,7 @@ public class GoraBenchmarkClient extends DB {
GoraBenchmarkUtils.generateMappingFile(dataStoreName);
GoraBenchmarkUtils.generateDataBeans();
}
+ properties.putAll(prop);
String keyClass = prop.getProperty(Constants.KEY_CLASS_KEY,
Constants.KEY_CLASS_VALUE);
String persistentClass =
prop.getProperty(Constants.PERSISTENCE_CLASS_KEY,
Constants.PERSISTENCE_CLASS_VALUE);
dataStore = DataStoreFactory.getDataStore(keyClass, persistentClass,
properties, new Configuration());
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 b6a5cce..91a7c07 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
@@ -35,7 +35,6 @@ 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;
@@ -51,6 +50,7 @@ public class GoraClientTest {
private static HashMap<String, ByteIterator> DATA_TO_UPDATE;
private static HashMap<String, ByteIterator> INTEGER_DATA;
private static boolean isMongoDBSetupDone = false;
+ private static MongoContainer mongo;
/**
* Setup MongoDB embed cluster. This function will auto provision a MongoDB
@@ -59,11 +59,13 @@ public class GoraClientTest {
*/
private void setupMongoDBCluster() {
try {
- MongoContainer mongo = new MongoContainer("3.6")
- .withFixedExposedPort(MONGO_PORT, MONGO_PORT);
- mongo.start();
+ if (!isMongoDBSetupDone) {
+ mongo = new MongoContainer("3.6");
+ mongo.start();
+ }
ServerAddress address = mongo.getServerAddress();
LOG.info("Started MongoDB Server on " + address.getHost() + ":" +
address.getPort());
+ isMongoDBSetupDone = true;
} catch (Exception e) {
LOG.info("Cannot Start MongoDB Server {}", e.getMessage(), e);
}
@@ -95,11 +97,12 @@ public class GoraClientTest {
//Setup and start embedded MongoDB, make sure local mongodb is not running.
Properties dataStoreProperties = DataStoreFactory.createProps();
String dataStoreToTest =
GoraBenchmarkUtils.getDataBase(dataStoreProperties);
- if (!isMongoDBSetupDone && dataStoreToTest == Constants.MONGODB) {
+ if (Constants.MONGODB.equals(dataStoreToTest)) {
setupMongoDBCluster();
- isMongoDBSetupDone = true;
+ ServerAddress address = mongo.getServerAddress();
+ properties.setProperty("gora.mongodb.servers", address.getHost() + ":" +
address.getPort());
}
-
+
benchmarkClient = new GoraBenchmarkClient();
benchmarkClient.setProperties(properties);
benchmarkClient.init();