You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bv...@apache.org on 2014/09/27 21:46:54 UTC

git commit: CAMEL-7874: Fix the non-working prettyPrint option by the json dataformat

Repository: camel
Updated Branches:
  refs/heads/master c57aec585 -> 3de896222


CAMEL-7874: Fix the non-working prettyPrint option by the json
dataformat

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

Branch: refs/heads/master
Commit: 3de89622290f7fff5e241fbec2282b903d94cc7d
Parents: c57aec5
Author: Babak Vahdat <bv...@apache.org>
Authored: Sat Sep 27 21:46:27 2014 +0200
Committer: Babak Vahdat <bv...@apache.org>
Committed: Sat Sep 27 21:46:27 2014 +0200

----------------------------------------------------------------------
 .../camel/model/dataformat/JsonDataFormat.java  |  2 +-
 .../jackson/JacksonJsonDataFormatTest.java      |  7 +++++
 .../component/jackson/JacksonMarshalTest.java   | 30 ++++++++++++++++++--
 .../SpringJacksonJsonDataFormatTest.java        | 22 ++++++++++++++
 .../jackson/SpringJacksonJsonDataFormatTest.xml |  6 ++++
 5 files changed, 64 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/3de89622/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java b/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
index 17e551f..4a29415 100644
--- a/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
+++ b/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
@@ -172,7 +172,7 @@ public class JsonDataFormat extends DataFormatDefinition {
             setProperty(camelContext, dataFormat, "unmarshalType", unmarshalType);
         }
         if (prettyPrint != null) {
-            setProperty(camelContext, dataFormat, "prettyPrint", unmarshalType);
+            setProperty(camelContext, dataFormat, "prettyPrint", prettyPrint);
         }
         if (jsonView != null) {
             setProperty(camelContext, dataFormat, "jsonView", jsonView);

http://git-wip-us.apache.org/repos/asf/camel/blob/3de89622/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonJsonDataFormatTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonJsonDataFormatTest.java b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonJsonDataFormatTest.java
index 292179c..dfaa3ce 100644
--- a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonJsonDataFormatTest.java
+++ b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonJsonDataFormatTest.java
@@ -29,6 +29,13 @@ public class JacksonJsonDataFormatTest extends JacksonMarshalTest {
                 from("direct:in").marshal().json(JsonLibrary.Jackson);
                 from("direct:back").unmarshal().json(JsonLibrary.Jackson).to("mock:reverse");
 
+                // no possible usage of the json() DSL method here as there's no prettyPrint option available through it
+                JacksonDataFormat prettyPrintDataFormat = new JacksonDataFormat();
+                prettyPrintDataFormat.setPrettyPrint(true);
+
+                from("direct:pretty").marshal(prettyPrintDataFormat);
+                from("direct:backPretty").unmarshal(prettyPrintDataFormat).to("mock:reverse");
+
                 from("direct:inPojo").marshal().json(JsonLibrary.Jackson);
                 from("direct:backPojo").unmarshal().json(JsonLibrary.Jackson, TestPojo.class).to("mock:reversePojo");
             }

http://git-wip-us.apache.org/repos/asf/camel/blob/3de89622/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalTest.java b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalTest.java
index b113e5e..bd5de84 100644
--- a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalTest.java
+++ b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalTest.java
@@ -28,7 +28,6 @@ public class JacksonMarshalTest extends CamelTestSupport {
 
     @Test
     public void testMarshalAndUnmarshalMap() throws Exception {
-
         Map<String, Object> in = new HashMap<String, Object>();
         in.put("name", "Camel");
 
@@ -47,8 +46,29 @@ public class JacksonMarshalTest extends CamelTestSupport {
     }
 
     @Test
-    public void testMarshalAndUnmarshalPojo() throws Exception {
+    public void testMarshalAndUnmarshalMapWithPrettyPrint() throws Exception {
+        Map<String, Object> in = new HashMap<String, Object>();
+        in.put("name", "Camel");
+
+        MockEndpoint mock = getMockEndpoint("mock:reverse");
+        mock.expectedMessageCount(1);
+        mock.message(0).body().isInstanceOf(Map.class);
+        mock.message(0).body().equals(in);
 
+        Object marshalled = template.requestBody("direct:pretty", in);
+        String marshalledAsString = context.getTypeConverter().convertTo(String.class, marshalled);
+        String expected = "{\n"
+                         + "  \"name\" : \"Camel\""
+                         + "\n}";
+        assertEquals(expected, marshalledAsString);
+
+        template.sendBody("direct:backPretty", marshalled);
+
+        mock.assertIsSatisfied();
+    }
+
+    @Test
+    public void testMarshalAndUnmarshalPojo() throws Exception {
         TestPojo in = new TestPojo();
         in.setName("Camel");
 
@@ -78,6 +98,12 @@ public class JacksonMarshalTest extends CamelTestSupport {
                 from("direct:in").marshal(format);
                 from("direct:back").unmarshal(format).to("mock:reverse");
 
+                JacksonDataFormat prettyPrintDataFormat = new JacksonDataFormat();
+                prettyPrintDataFormat.setPrettyPrint(true);
+
+                from("direct:pretty").marshal(prettyPrintDataFormat);
+                from("direct:backPretty").unmarshal(prettyPrintDataFormat).to("mock:reverse");
+
                 JacksonDataFormat formatPojo = new JacksonDataFormat(TestPojo.class);
 
                 from("direct:inPojo").marshal(formatPojo);

http://git-wip-us.apache.org/repos/asf/camel/blob/3de89622/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/SpringJacksonJsonDataFormatTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/SpringJacksonJsonDataFormatTest.java b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/SpringJacksonJsonDataFormatTest.java
index ab2ac06..ea22b3b 100644
--- a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/SpringJacksonJsonDataFormatTest.java
+++ b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/SpringJacksonJsonDataFormatTest.java
@@ -50,6 +50,28 @@ public class SpringJacksonJsonDataFormatTest extends CamelSpringTestSupport {
     }
 
     @Test
+    public void testMarshalAndUnmarshalMapWithPrettyPrint() throws Exception {
+        Map<String, Object> in = new HashMap<String, Object>();
+        in.put("name", "Camel");
+
+        MockEndpoint mock = getMockEndpoint("mock:reverse");
+        mock.expectedMessageCount(1);
+        mock.message(0).body().isInstanceOf(Map.class);
+        mock.message(0).body().equals(in);
+
+        Object marshalled = template.requestBody("direct:pretty", in);
+        String marshalledAsString = context.getTypeConverter().convertTo(String.class, marshalled);
+        String expected = "{\n"
+                        + "  \"name\" : \"Camel\""
+                        + "\n}";
+        assertEquals(expected, marshalledAsString);
+
+        template.sendBody("direct:back", marshalled);
+
+        mock.assertIsSatisfied();
+    }
+
+    @Test
     public void testMarshalAndUnmarshalPojo() throws Exception {
         TestPojo in = new TestPojo();
         in.setName("Camel");

http://git-wip-us.apache.org/repos/asf/camel/blob/3de89622/components/camel-jackson/src/test/resources/org/apache/camel/component/jackson/SpringJacksonJsonDataFormatTest.xml
----------------------------------------------------------------------
diff --git a/components/camel-jackson/src/test/resources/org/apache/camel/component/jackson/SpringJacksonJsonDataFormatTest.xml b/components/camel-jackson/src/test/resources/org/apache/camel/component/jackson/SpringJacksonJsonDataFormatTest.xml
index a5182ea..61bd1a0 100644
--- a/components/camel-jackson/src/test/resources/org/apache/camel/component/jackson/SpringJacksonJsonDataFormatTest.xml
+++ b/components/camel-jackson/src/test/resources/org/apache/camel/component/jackson/SpringJacksonJsonDataFormatTest.xml
@@ -29,6 +29,7 @@
         <dataFormats>
             <!-- this uses the default unmarshal type that is a Map based -->
             <json id="jack" library="Jackson"/>
+            <json id="pretty" library="Jackson" prettyPrint="true"/>
             <!-- and this one uses our own TestPojo class as unmarshal type -->
             <json id="pojo" library="Jackson" unmarshalTypeName="org.apache.camel.component.jackson.TestPojo"/>
             <!-- in addition to our own TestPojoView class we make use of the jsonView attribute here as filter -->
@@ -41,6 +42,11 @@
         </route>
 
         <route>
+            <from uri="direct:pretty"/>
+            <marshal ref="pretty"/>
+        </route>
+
+        <route>
             <from uri="direct:back"/>
             <unmarshal ref="jack"/>
             <to uri="mock:reverse"/>