Repository: eagle
Updated Branches:
  refs/heads/master 278fe87b1 -> 271fa7ff5


[EAGLE-911]: Have mongo metadata dbname configurable
Support configurable database for mongo metadata implementation, this would 
help to ease prod migration (use a test db first)

Author: ralphsu
This closes #819


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

Branch: refs/heads/master
Commit: 271fa7ff56897d8d148c25896284cf835ca7fac4
Parents: 278fe87
Author: Ralph, Su <[email protected]>
Authored: Sun Feb 19 00:53:24 2017 +0800
Committer: Ralph, Su <[email protected]>
Committed: Wed Feb 22 07:49:31 2017 +0800

----------------------------------------------------------------------
 .../eagle/alert/metadata/MetadataUtils.java     | 15 ++--
 .../metadata/impl/MongoMetadataDaoImpl.java     | 74 ++++++++++++--------
 .../src/test/resources/application-mongo.conf   |  1 +
 3 files changed, 55 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/eagle/blob/271fa7ff/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/main/java/org/apache/eagle/alert/metadata/MetadataUtils.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/main/java/org/apache/eagle/alert/metadata/MetadataUtils.java
 
b/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/main/java/org/apache/eagle/alert/metadata/MetadataUtils.java
index 658703a..30868b5 100644
--- 
a/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/main/java/org/apache/eagle/alert/metadata/MetadataUtils.java
+++ 
b/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/main/java/org/apache/eagle/alert/metadata/MetadataUtils.java
@@ -18,20 +18,20 @@
 
 package org.apache.eagle.alert.metadata;
 
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
 import org.apache.eagle.alert.coordination.model.ScheduleState;
 import org.apache.eagle.alert.coordination.model.internal.PolicyAssignment;
-import org.apache.eagle.alert.engine.coordinator.PublishmentType;
 import org.apache.eagle.alert.engine.coordinator.StreamDefinition;
-import com.typesafe.config.Config;
 import org.apache.eagle.alert.engine.model.AlertPublishEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
+import com.typesafe.config.Config;
 
 public class MetadataUtils {
 
@@ -45,6 +45,7 @@ public class MetadataUtils {
     public static final String JDBC_CONNECTION_PATH = "jdbc.connection";
     public static final String JDBC_CONNECTION_PROPERTIES_PATH = 
"jdbc.connectionProperties";
     public static final String MONGO_CONNECTION_PATH = "mongo.connection";
+    public static final String MONGO_DATABASE = "mongo.database";
 
     public static <T> String getKey(T t) {
         if (t instanceof StreamDefinition) {

http://git-wip-us.apache.org/repos/asf/eagle/blob/271fa7ff/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/main/java/org/apache/eagle/alert/metadata/impl/MongoMetadataDaoImpl.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/main/java/org/apache/eagle/alert/metadata/impl/MongoMetadataDaoImpl.java
 
b/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/main/java/org/apache/eagle/alert/metadata/impl/MongoMetadataDaoImpl.java
index e747d23..2325f90 100644
--- 
a/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/main/java/org/apache/eagle/alert/metadata/impl/MongoMetadataDaoImpl.java
+++ 
b/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/main/java/org/apache/eagle/alert/metadata/impl/MongoMetadataDaoImpl.java
@@ -16,34 +16,37 @@
  */
 package org.apache.eagle.alert.metadata.impl;
 
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.inject.Inject;
-import com.mongodb.Block;
-import com.mongodb.Function;
-import com.mongodb.MongoClient;
-import com.mongodb.MongoClientURI;
-import com.mongodb.client.MongoCollection;
-import com.mongodb.client.MongoDatabase;
-import com.mongodb.client.MongoIterable;
-import com.mongodb.client.model.CreateCollectionOptions;
-import com.mongodb.client.model.IndexOptions;
-import com.mongodb.client.model.UpdateOptions;
-import com.mongodb.client.result.DeleteResult;
-import com.mongodb.client.result.UpdateResult;
-import com.typesafe.config.Config;
-import org.apache.eagle.alert.coordination.model.*;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import org.apache.eagle.alert.coordination.model.AlertBoltSpec;
+import org.apache.eagle.alert.coordination.model.Kafka2TupleMetadata;
+import org.apache.eagle.alert.coordination.model.PublishSpec;
+import org.apache.eagle.alert.coordination.model.RouterSpec;
+import org.apache.eagle.alert.coordination.model.ScheduleState;
+import org.apache.eagle.alert.coordination.model.SpoutSpec;
+import org.apache.eagle.alert.coordination.model.VersionedPolicyDefinition;
+import org.apache.eagle.alert.coordination.model.VersionedStreamDefinition;
 import org.apache.eagle.alert.coordination.model.internal.MonitoredStream;
 import org.apache.eagle.alert.coordination.model.internal.PolicyAssignment;
 import org.apache.eagle.alert.coordination.model.internal.ScheduleStateBase;
 import org.apache.eagle.alert.coordination.model.internal.Topology;
-import org.apache.eagle.alert.engine.coordinator.*;
+import org.apache.eagle.alert.engine.coordinator.PolicyDefinition;
+import org.apache.eagle.alert.engine.coordinator.Publishment;
+import org.apache.eagle.alert.engine.coordinator.PublishmentType;
+import org.apache.eagle.alert.engine.coordinator.StreamDefinition;
+import org.apache.eagle.alert.engine.coordinator.StreamingCluster;
 import org.apache.eagle.alert.engine.model.AlertPublishEvent;
 import org.apache.eagle.alert.metadata.IMetadataDao;
 import org.apache.eagle.alert.metadata.MetadataUtils;
 import org.apache.eagle.alert.metadata.resource.Models;
 import org.apache.eagle.alert.metadata.resource.OpResult;
-
 import org.bson.BsonDocument;
 import org.bson.BsonInt32;
 import org.bson.BsonString;
@@ -51,28 +54,42 @@ import org.bson.Document;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.*;
-import java.util.stream.Collectors;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.inject.Inject;
+import com.mongodb.Block;
+import com.mongodb.Function;
+import com.mongodb.MongoClient;
+import com.mongodb.MongoClientURI;
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.MongoDatabase;
+import com.mongodb.client.MongoIterable;
+import com.mongodb.client.model.CreateCollectionOptions;
+import com.mongodb.client.model.IndexOptions;
+import com.mongodb.client.model.UpdateOptions;
+import com.mongodb.client.result.DeleteResult;
+import com.mongodb.client.result.UpdateResult;
+import com.typesafe.config.Config;
 
 /**
  * @since Apr 11, 2016.
  */
 public class MongoMetadataDaoImpl implements IMetadataDao {
 
-    private static final String DB_NAME = "ump_alert_metadata";
+    private static final String DEFAULT_DB_NAME = "ump_alert_metadata";
     private static final Logger LOG = 
LoggerFactory.getLogger(MongoMetadataDaoImpl.class);
     private static final ObjectMapper mapper = new ObjectMapper();
     private static final int DEFAULT_CAPPED_MAX_SIZE = 500 * 1024 * 1024;
     private static final int DEFAULT_CAPPED_MAX_DOCUMENTS = 20000;
-    private static final String MANGO_CAPPED_MAX_SIZE = "mongo.cappedMaxSize";
-    private static final String MANGO_CAPPED_MAX_DOCUMENTS = 
"mongo.cappedMaxDocuments";
+    private static final String MONGO_CAPPED_MAX_SIZE = "mongo.cappedMaxSize";
+    private static final String MONGO_CAPPED_MAX_DOCUMENTS = 
"mongo.cappedMaxDocuments";
 
     static {
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, 
false);
     }
 
     private final String connection;
+    private final String dbname;
     private final MongoClient client;
     private final int cappedMaxSize;
     private final int cappedMaxDocuments;
@@ -101,9 +118,10 @@ public class MongoMetadataDaoImpl implements IMetadataDao {
     @Inject
     public MongoMetadataDaoImpl(Config config) {
         this.connection = 
config.getString(MetadataUtils.MONGO_CONNECTION_PATH);
-        this.cappedMaxSize = config.hasPath(MANGO_CAPPED_MAX_SIZE) ? 
config.getInt(MANGO_CAPPED_MAX_SIZE) : DEFAULT_CAPPED_MAX_SIZE;
-        this.cappedMaxDocuments = config.hasPath(MANGO_CAPPED_MAX_DOCUMENTS) ? 
config.getInt(MANGO_CAPPED_MAX_DOCUMENTS) : DEFAULT_CAPPED_MAX_DOCUMENTS;
+        this.cappedMaxSize = config.hasPath(MONGO_CAPPED_MAX_SIZE) ? 
config.getInt(MONGO_CAPPED_MAX_SIZE) : DEFAULT_CAPPED_MAX_SIZE;
+        this.cappedMaxDocuments = config.hasPath(MONGO_CAPPED_MAX_DOCUMENTS) ? 
config.getInt(MONGO_CAPPED_MAX_DOCUMENTS) : DEFAULT_CAPPED_MAX_DOCUMENTS;
         this.client = new MongoClient(new MongoClientURI(this.connection));
+        this.dbname = config.hasPath(MetadataUtils.MONGO_DATABASE) ? 
config.getString(MetadataUtils.MONGO_DATABASE) : DEFAULT_DB_NAME;
         init();
     }
 
@@ -135,7 +153,7 @@ public class MongoMetadataDaoImpl implements IMetadataDao {
     }
 
     private void init() {
-        db = client.getDatabase(DB_NAME);
+        db = client.getDatabase(this.dbname);
         IndexOptions io = new 
IndexOptions().background(true).name("nameIndex");
         BsonDocument doc = new BsonDocument();
         doc.append("name", new BsonInt32(1));

http://git-wip-us.apache.org/repos/asf/eagle/blob/271fa7ff/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/test/resources/application-mongo.conf
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/test/resources/application-mongo.conf
 
b/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/test/resources/application-mongo.conf
index 4c6fba2..80adeae 100644
--- 
a/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/test/resources/application-mongo.conf
+++ 
b/eagle-core/eagle-alert-parent/eagle-alert/alert-metadata-parent/alert-metadata/src/test/resources/application-mongo.conf
@@ -19,6 +19,7 @@ metadata {
   mongo {
     connection = "mongodb://localhost:27017"
     cappedSize = 20000
+    database = testdb
   }
 }
 

Reply via email to