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 d59a072 NIFI-5500 Adding support for array fields when outputting to
attributes when using QueryElasticsearchHttp NIFI-5500 Optimised
array-to-string conversion
d59a072 is described below
commit d59a07245ff08117b3b4245dbba84b0b093c68a8
Author: Wietze <[email protected]>
AuthorDate: Wed Aug 8 17:17:47 2018 +0100
NIFI-5500 Adding support for array fields when outputting to attributes
when using QueryElasticsearchHttp
NIFI-5500 Optimised array-to-string conversion
This closes #2942
Signed-off-by: Mike Thomsen <[email protected]>
---
.../processors/elasticsearch/QueryElasticsearchHttp.java | 13 ++++++++++++-
.../elasticsearch/TestQueryElasticsearchHttp.java | 1 +
.../src/test/resources/query-page1.json | 10 ++++++----
.../src/test/resources/query-page2.json | 5 +++--
4 files changed, 22 insertions(+), 7 deletions(-)
diff --git
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/QueryElasticsearchHttp.java
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/QueryElasticsearchHttp.java
index 33eac3b..67deb87 100644
---
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/QueryElasticsearchHttp.java
+++
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/QueryElasticsearchHttp.java
@@ -432,7 +432,18 @@ public class QueryElasticsearchHttp extends
AbstractElasticsearchHttpProcessor {
Map<String, String> attributes = new HashMap<>();
for(Iterator<Entry<String, JsonNode>> it =
source.fields(); it.hasNext(); ) {
Entry<String, JsonNode> entry = it.next();
- attributes.put(ATTRIBUTE_PREFIX + entry.getKey(),
entry.getValue().asText());
+
+ String textValue = "";
+ if(entry.getValue().isArray()){
+ ArrayList<String> text_values = new
ArrayList<String>();
+ for(Iterator<JsonNode> items =
entry.getValue().iterator(); items.hasNext(); ) {
+ text_values.add(items.next().asText());
+ }
+ textValue = StringUtils.join(text_values, ',');
+ } else {
+ textValue = entry.getValue().asText();
+ }
+ attributes.put(ATTRIBUTE_PREFIX + entry.getKey(),
textValue);
}
documentFlowFile =
session.putAllAttributes(documentFlowFile, attributes);
}
diff --git
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestQueryElasticsearchHttp.java
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestQueryElasticsearchHttp.java
index 50b950f..b67aebf 100644
---
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestQueryElasticsearchHttp.java
+++
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestQueryElasticsearchHttp.java
@@ -141,6 +141,7 @@ public class TestQueryElasticsearchHttp {
QueryElasticsearchHttp.REL_SUCCESS).get(0);
assertNotNull(out);
assertEquals("blah", new String(out.toByteArray()));
+ assertEquals("arrays,are,supported,too",
out.getAttribute("es.result.tags"));
assertEquals("Twitter", out.getAttribute("es.result.source"));
}
diff --git
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/resources/query-page1.json
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/resources/query-page1.json
index 5093076..649b480 100644
---
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/resources/query-page1.json
+++
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/resources/query-page1.json
@@ -25,7 +25,8 @@
"transit_uri":
"file://cluster2/data/outgoing/S3/abc-97b.zip",
"object_type": "Provenance Record",
"version": "ASVsZu_vShwtGCJpGOObmuSqUJRUC3L_",
- "file_size": "3645525"
+ "file_size": "3645525",
+ "tags": ["arrays", "are", "supported", "too"]
},
"sort": [
1469198828102
@@ -45,13 +46,14 @@
"transit_uri":
"file://cluster2/data/outgoing/S3/abc-a78.zip",
"object_type": "Provenance Record",
"version": "SjJkrwnv6edIRqJChEYzrE7PeT1hzioz",
- "file_size": "4480294"
+ "file_size": "4480294",
+ "tags": ["arrays", "are", "supported", "too"]
},
"sort": [
1469198828101
]
-
+
}
]
}
- }
\ No newline at end of file
+ }
diff --git
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/resources/query-page2.json
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/resources/query-page2.json
index 1ea27b3..0135703 100644
---
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/resources/query-page2.json
+++
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/test/resources/query-page2.json
@@ -25,7 +25,8 @@
"transit_uri":
"file://cluster2/data/outgoing/S3/abc-42a.zip",
"object_type": "Provenance Record",
"version": "ArPsIlGBKqDvfL6qQZOVpmDwUEB.nynh",
- "file_size": "18206872"
+ "file_size": "18206872",
+ "tags": ["arrays", "are", "supported",
"too"]
},
"sort": [
1469198828101
@@ -33,4 +34,4 @@
}
]
}
- }
\ No newline at end of file
+ }