You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ze...@apache.org on 2018/07/26 18:04:33 UTC

nifi git commit: NIFI-5440 Added db and collection attributes to GetMongo output.

Repository: nifi
Updated Branches:
  refs/heads/master 610cbb66b -> b1f78d58a


NIFI-5440 Added db and collection attributes to GetMongo output.

This closes #2906

Signed-off-by: zenfenan <ze...@apache.org>


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

Branch: refs/heads/master
Commit: b1f78d58a6f5250b4f4e6873b03459a8e987407a
Parents: 610cbb6
Author: Mike Thomsen <mi...@gmail.com>
Authored: Wed Jul 18 10:13:16 2018 -0400
Committer: zenfenan <si...@gmail.com>
Committed: Thu Jul 26 23:34:12 2018 +0530

----------------------------------------------------------------------
 .../apache/nifi/processors/mongodb/GetMongo.java    | 14 +++++++++++++-
 .../apache/nifi/processors/mongodb/GetMongoIT.java  | 16 ++++++++++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/b1f78d58/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java
index 19fe82b..cf9e3d7 100644
--- a/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java
+++ b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java
@@ -25,6 +25,8 @@ import com.mongodb.client.MongoCollection;
 import com.mongodb.client.MongoCursor;
 import org.apache.nifi.annotation.behavior.InputRequirement;
 import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
+import org.apache.nifi.annotation.behavior.WritesAttribute;
+import org.apache.nifi.annotation.behavior.WritesAttributes;
 import org.apache.nifi.annotation.documentation.CapabilityDescription;
 import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.components.AllowableValue;
@@ -56,8 +58,14 @@ import java.util.Set;
 
 @Tags({ "mongodb", "read", "get" })
 @InputRequirement(Requirement.INPUT_ALLOWED)
-@CapabilityDescription("Creates FlowFiles from documents in MongoDB")
+@CapabilityDescription("Creates FlowFiles from documents in MongoDB loaded by a user-specified query.")
+@WritesAttributes({
+    @WritesAttribute(attribute = GetMongo.DB_NAME, description = "The database where the results came from."),
+    @WritesAttribute(attribute = GetMongo.COL_NAME, description = "The collection where the results came from.")
+})
 public class GetMongo extends AbstractMongoProcessor {
+    static final String DB_NAME = "mongo.database.name";
+    static final String COL_NAME = "mongo.collection.name";
 
     static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("All files are routed to success").build();
     static final Relationship REL_FAILURE = new Relationship.Builder()
@@ -253,6 +261,10 @@ public class GetMongo extends AbstractMongoProcessor {
 
         try {
             final MongoCollection<Document> collection = getCollection(context, input);
+
+            attributes.put(DB_NAME, collection.getNamespace().getDatabaseName());
+            attributes.put(COL_NAME, collection.getNamespace().getCollectionName());
+
             final FindIterable<Document> it = query != null ? collection.find(query) : collection.find();
             if (projection != null) {
                 it.projection(projection);

http://git-wip-us.apache.org/repos/asf/nifi/blob/b1f78d58/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoIT.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoIT.java b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoIT.java
index 3418444..aaf6fa3 100644
--- a/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoIT.java
+++ b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoIT.java
@@ -529,4 +529,20 @@ public class GetMongoIT {
 
         }
     }
+
+    @Test
+    public void testDBAttributes() {
+        runner.enqueue("{}");
+        runner.run();
+        runner.assertTransferCount(GetMongo.REL_SUCCESS, 3);
+        List<MockFlowFile> ffs = runner.getFlowFilesForRelationship(GetMongo.REL_SUCCESS);
+        for (MockFlowFile ff : ffs) {
+            String db = ff.getAttribute(GetMongo.DB_NAME);
+            String col = ff.getAttribute(GetMongo.COL_NAME);
+            Assert.assertNotNull(db);
+            Assert.assertNotNull(col);
+            Assert.assertEquals(DB_NAME, db);
+            Assert.assertEquals(COLLECTION_NAME, col);
+        }
+    }
 }