Repository: nifi Updated Branches: refs/heads/master bfd6c0aef -> c3754c392
NIFI-4320 - Escape quotes for JSON output in QueryCassandra Signed-off-by: Matthew Burgess <mattyb...@apache.org> This closes #2114 Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/c3754c39 Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/c3754c39 Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/c3754c39 Branch: refs/heads/master Commit: c3754c3921ec4f1786bbd36dbfbc9190d6900d1c Parents: bfd6c0a Author: Pierre Villard <pierre.villard...@gmail.com> Authored: Sat Aug 26 17:09:15 2017 +0200 Committer: Matthew Burgess <mattyb...@apache.org> Committed: Wed Sep 6 13:05:18 2017 -0400 ---------------------------------------------------------------------- .../org/apache/nifi/processors/cassandra/QueryCassandra.java | 3 +++ .../apache/nifi/processors/cassandra/CassandraQueryTestUtil.java | 2 +- .../org/apache/nifi/processors/cassandra/QueryCassandraTest.java | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/c3754c39/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/QueryCassandra.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/QueryCassandra.java b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/QueryCassandra.java index 52eb9e0..b007c70 100644 --- a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/QueryCassandra.java +++ b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/QueryCassandra.java @@ -33,6 +33,7 @@ import org.apache.avro.generic.GenericData; import org.apache.avro.generic.GenericDatumWriter; import org.apache.avro.generic.GenericRecord; import org.apache.avro.io.DatumWriter; +import org.apache.commons.lang3.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; import org.apache.nifi.annotation.behavior.EventDriven; import org.apache.nifi.annotation.behavior.InputRequirement; @@ -497,6 +498,8 @@ public class QueryCassandra extends AbstractCassandraProcessor { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ"); dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); return "\"" + dateFormat.format((Date) value) + "\""; + } else if (value instanceof String) { + return "\"" + StringEscapeUtils.escapeJson((String) value) + "\""; } else { return "\"" + value.toString() + "\""; } http://git-wip-us.apache.org/repos/asf/nifi/blob/c3754c39/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/test/java/org/apache/nifi/processors/cassandra/CassandraQueryTestUtil.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/test/java/org/apache/nifi/processors/cassandra/CassandraQueryTestUtil.java b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/test/java/org/apache/nifi/processors/cassandra/CassandraQueryTestUtil.java index dbe2e1e..49a6760 100644 --- a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/test/java/org/apache/nifi/processors/cassandra/CassandraQueryTestUtil.java +++ b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/test/java/org/apache/nifi/processors/cassandra/CassandraQueryTestUtil.java @@ -86,7 +86,7 @@ public class CassandraQueryTestUtil { createRow("user1", "Joe", "Smith", Sets.newHashSet("jsm...@notareal.com"), Arrays.asList("New York, NY", "Santa Clara, CA"), new HashMap<Date, String>() {{ - put(aMonthPrior, "Set my alarm for a month from now"); + put(aMonthPrior, "Set my alarm \"for\" a month from now"); }}, false, 1.0f, 2.0), createRow("user2", "Mary", "Jones", Sets.newHashSet("mjo...@notareal.com"), Collections.singletonList("Orlando, FL"), http://git-wip-us.apache.org/repos/asf/nifi/blob/c3754c39/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/test/java/org/apache/nifi/processors/cassandra/QueryCassandraTest.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/test/java/org/apache/nifi/processors/cassandra/QueryCassandraTest.java b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/test/java/org/apache/nifi/processors/cassandra/QueryCassandraTest.java index 83110c3..07c1df0 100644 --- a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/test/java/org/apache/nifi/processors/cassandra/QueryCassandraTest.java +++ b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/test/java/org/apache/nifi/processors/cassandra/QueryCassandraTest.java @@ -140,7 +140,7 @@ public class QueryCassandraTest { assertEquals("One file should be transferred to success", 1, files.size()); assertEquals("{\"results\":[{\"user_id\":\"user1\",\"first_name\":\"Joe\",\"last_name\":\"Smith\"," + "\"emails\":[\"jsm...@notareal.com\"],\"top_places\":[\"New York, NY\",\"Santa Clara, CA\"]," - + "\"todo\":{\"2016-01-03 05:00:00+0000\":\"Set my alarm for a month from now\"}," + + "\"todo\":{\"2016-01-03 05:00:00+0000\":\"Set my alarm \\\"for\\\" a month from now\"}," + "\"registered\":\"false\",\"scale\":1.0,\"metric\":2.0}," + "{\"user_id\":\"user2\",\"first_name\":\"Mary\",\"last_name\":\"Jones\"," + "\"emails\":[\"mjo...@notareal.com\"],\"top_places\":[\"Orlando, FL\"]," @@ -177,7 +177,7 @@ public class QueryCassandraTest { assertEquals("One file should be transferred to success", 1, files.size()); assertEquals("{\"results\":[{\"user_id\":\"user1\",\"first_name\":\"Joe\",\"last_name\":\"Smith\"," + "\"emails\":[\"jsm...@notareal.com\"],\"top_places\":[\"New York, NY\",\"Santa Clara, CA\"]," - + "\"todo\":{\"2016-01-03 05:00:00+0000\":\"Set my alarm for a month from now\"}," + + "\"todo\":{\"2016-01-03 05:00:00+0000\":\"Set my alarm \\\"for\\\" a month from now\"}," + "\"registered\":\"false\",\"scale\":1.0,\"metric\":2.0}," + "{\"user_id\":\"user2\",\"first_name\":\"Mary\",\"last_name\":\"Jones\"," + "\"emails\":[\"mjo...@notareal.com\"],\"top_places\":[\"Orlando, FL\"],"