You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mt...@apache.org on 2020/03/18 22:37:15 UTC

[nifi] branch master updated: NIFI-6293

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

mthomsen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/master by this push:
     new 943de31  NIFI-6293
943de31 is described below

commit 943de310ad5b5fa6c128882da84c88621abd69b3
Author: Eduardo Fontes <ed...@gmail.com>
AuthorDate: Fri Feb 21 13:35:33 2020 -0300

    NIFI-6293
    
    Add support to Mongo Extended JSON v2
    Add org.json lib
    Replace evil json
    Replace evil json for alternative
    Include testExtendedJsonSupport
    Style adjustment
    Remove unecessary new JSON parser
    Fix query in testExtendedJsonSupport
    Parse with Jackson and BSON
    Back to default MONGO_URI
    
    This closes #4068
    
    Signed-off-by: Mike Thomsen <mt...@apache.org>
---
 .../processors/mongodb/RunMongoAggregation.java    |  7 +++---
 .../processors/mongodb/RunMongoAggregationIT.java  | 27 ++++++++++++++++++++++
 2 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java
index 3352ab0..0c3bb762 100644
--- a/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java
+++ b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java
@@ -75,9 +75,10 @@ public class RunMongoAggregation extends AbstractMongoProcessor {
         List<Bson> result = new ArrayList<>();
 
         ObjectMapper mapper = new ObjectMapper();
-        List<Map> values = mapper.readValue(query, List.class);
-        for (Map<?, ?> val : values) {
-            result.add(new BasicDBObject(val));
+        List<Map> querySteps = mapper.readValue(query, List.class);
+        for (Map<?, ?> queryStep : querySteps) {
+            BasicDBObject bson = BasicDBObject.parse(mapper.writeValueAsString(queryStep));
+            result.add(bson);
         }
 
         return result;
diff --git a/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/RunMongoAggregationIT.java b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/RunMongoAggregationIT.java
index c74692c..23ac4f0 100644
--- a/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/RunMongoAggregationIT.java
+++ b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/RunMongoAggregationIT.java
@@ -236,4 +236,31 @@ public class RunMongoAggregationIT {
         runner.run();
         runner.assertTransferCount(RunMongoAggregation.REL_RESULTS, 9);
     }
+
+    @Test
+    public void testExtendedJsonSupport() throws Exception {
+        String pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS";
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
+        final String queryInput = "[\n" +
+            "  {\n" +
+            "    \"$match\": {\n" +
+            "      \"date\": { \"$gte\": { \"$date\": \"2019-01-01T00:00:00Z\" }, \"$lte\": { \"$date\": \"" + simpleDateFormat.format(now.getTime()) + "\" } }\n" +
+            "    }\n" +
+            "  },\n" +
+            "  {\n" +
+            "    \"$group\": {\n" +
+            "      \"_id\": \"$val\",\n" +
+            "      \"doc_count\": {\n" +
+            "        \"$sum\": 1\n" +
+            "      }\n" +
+            "    }\n" +
+            "  }\n" +
+            "]\n";
+
+        runner.setProperty(RunMongoAggregation.QUERY, queryInput);
+        runner.enqueue("test");
+        runner.run(1, true, true);
+
+        runner.assertTransferCount(RunMongoAggregation.REL_RESULTS, mappings.size());
+    }
 }