Repository: camel Updated Branches: refs/heads/master c8d23d327 -> 1e923eca2
CAMEL-7877: support the prettyPrint option by all the supported JSON libraries, that's XStream, Jackson and GSon. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/1e923eca Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1e923eca Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1e923eca Branch: refs/heads/master Commit: 1e923eca2ce118be090231de7454b8793d1e5e54 Parents: c8d23d3 Author: Babak Vahdat <bvah...@apache.org> Authored: Thu Apr 2 20:03:33 2015 +0200 Committer: Babak Vahdat <bvah...@apache.org> Committed: Thu Apr 2 20:03:33 2015 +0200 ---------------------------------------------------------------------- .../apache/camel/builder/DataFormatClause.java | 69 ++++++++++++++++++++ .../camel/component/gson/GsonDataFormat.java | 44 +++++++++++-- .../gson/SpringGsonJsonDataFormatTest.java | 22 +++++++ .../gson/SpringGsonJsonDataFormatTest.xml | 12 ++++ .../jackson/JacksonJsonDataFormatTest.java | 8 +-- .../component/jackson/JacksonMarshalTest.java | 4 +- .../SpringJacksonJsonDataFormatTest.java | 2 +- .../jackson/SpringJacksonJsonDataFormatTest.xml | 2 +- .../dataformat/xstream/JsonDataFormat.java | 21 ++++++ .../dataformat/xstream/XStreamDataFormat.java | 2 +- .../xstream/MarshalDomainObjectJSONTest.java | 34 +++++++++- .../XStreamDataFormatDriverConfigTest.java | 2 +- .../SpringMarshalDomainObjectJSONTest.xml | 12 ++++ 13 files changed, 215 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java b/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java index c0857a9..1a446c3 100644 --- a/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java +++ b/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java @@ -361,6 +361,17 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> { } /** + * Uses the JSON data format using the XStream json library with pretty-print option on or off + * + * @param prettyPrint turn the pretty-print option on or off + */ + public T json(boolean prettyPrint) { + JsonDataFormat json = new JsonDataFormat(); + json.setPrettyPrint(prettyPrint); + return dataFormat(json); + } + + /** * Uses the JSON data format * * @param library the json library to use @@ -372,6 +383,18 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> { /** * Uses the JSON data format * + * @param library the json library to use + * @param prettyPrint turn the pretty-print option on or off + */ + public T json(JsonLibrary library, boolean prettyPrint) { + JsonDataFormat json = new JsonDataFormat(library); + json.setPrettyPrint(prettyPrint); + return dataFormat(json); + } + + /** + * Uses the JSON data format + * * @param type the json type to use * @param unmarshalType unmarshal type for json jackson type */ @@ -382,6 +405,20 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> { } /** + * Uses the JSON data format + * + * @param type the json type to use + * @param unmarshalType unmarshal type for json jackson type + * @param prettyPrint turn the pretty-print option on or off + */ + public T json(JsonLibrary type, Class<?> unmarshalType, boolean prettyPrint) { + JsonDataFormat json = new JsonDataFormat(type); + json.setUnmarshalType(unmarshalType); + json.setPrettyPrint(prettyPrint); + return dataFormat(json); + } + + /** * Uses the Jackson JSON data format * * @param unmarshalType unmarshal type for json jackson type @@ -399,6 +436,21 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> { * * @param unmarshalType unmarshal type for json jackson type * @param jsonView the view type for json jackson type + * @param prettyPrint turn the pretty-print option on or off + */ + public T json(Class<?> unmarshalType, Class<?> jsonView, boolean prettyPrint) { + JsonDataFormat json = new JsonDataFormat(JsonLibrary.Jackson); + json.setUnmarshalType(unmarshalType); + json.setJsonView(jsonView); + json.setPrettyPrint(prettyPrint); + return dataFormat(json); + } + + /** + * Uses the Jackson JSON data format + * + * @param unmarshalType unmarshal type for json jackson type + * @param jsonView the view type for json jackson type * @param include include such as <tt>ALWAYS</tt>, <tt>NON_NULL</tt>, etc. */ public T json(Class<?> unmarshalType, Class<?> jsonView, String include) { @@ -410,6 +462,23 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> { } /** + * Uses the Jackson JSON data format + * + * @param unmarshalType unmarshal type for json jackson type + * @param jsonView the view type for json jackson type + * @param include include such as <tt>ALWAYS</tt>, <tt>NON_NULL</tt>, etc. + * @param prettyPrint turn the pretty-print option on or off + */ + public T json(Class<?> unmarshalType, Class<?> jsonView, String include, boolean prettyPrint) { + JsonDataFormat json = new JsonDataFormat(JsonLibrary.Jackson); + json.setUnmarshalType(unmarshalType); + json.setJsonView(jsonView); + json.setInclude(include); + json.setPrettyPrint(prettyPrint); + return dataFormat(json); + } + + /** * Uses the protobuf data format */ public T protobuf() { http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/components/camel-gson/src/main/java/org/apache/camel/component/gson/GsonDataFormat.java ---------------------------------------------------------------------- diff --git a/components/camel-gson/src/main/java/org/apache/camel/component/gson/GsonDataFormat.java b/components/camel-gson/src/main/java/org/apache/camel/component/gson/GsonDataFormat.java index f12ff71..92ca6b9 100644 --- a/components/camel-gson/src/main/java/org/apache/camel/component/gson/GsonDataFormat.java +++ b/components/camel-gson/src/main/java/org/apache/camel/component/gson/GsonDataFormat.java @@ -51,8 +51,8 @@ public class GsonDataFormat extends ServiceSupport implements DataFormat { private LongSerializationPolicy longSerializationPolicy; private FieldNamingPolicy fieldNamingPolicy; private FieldNamingStrategy fieldNamingStrategy; - private Boolean serializeNulls; - private Boolean prettyPrinting; + private boolean serializeNulls; + private boolean prettyPrint; private String dateFormatPattern; public GsonDataFormat() { @@ -154,10 +154,10 @@ public class GsonDataFormat extends ServiceSupport implements DataFormat { if (fieldNamingStrategy != null) { builder.setFieldNamingStrategy(fieldNamingStrategy); } - if (serializeNulls != null && serializeNulls) { + if (serializeNulls) { builder.serializeNulls(); } - if (prettyPrinting != null && prettyPrinting) { + if (prettyPrint) { builder.setPrettyPrinting(); } if (dateFormatPattern != null) { @@ -223,20 +223,52 @@ public class GsonDataFormat extends ServiceSupport implements DataFormat { this.fieldNamingStrategy = fieldNamingStrategy; } + /** + * @deprecated use {@link #isSerializeNulls()} instead + */ + @Deprecated public Boolean getSerializeNulls() { return serializeNulls; } + public boolean isSerializeNulls() { + return serializeNulls; + } + + /** + * @deprecated use {@link #setSerializeNulls(boolean)} instead + */ + @Deprecated public void setSerializeNulls(Boolean serializeNulls) { this.serializeNulls = serializeNulls; } + public void setSerializeNulls(boolean serializeNulls) { + this.serializeNulls = serializeNulls; + } + + /** + * @deprecated use {@link #isPrettyPrint()} instead + */ + @Deprecated public Boolean getPrettyPrinting() { - return prettyPrinting; + return prettyPrint; + } + + public boolean isPrettyPrint() { + return prettyPrint; } + /** + * @deprecated use {@link #setPrettyPrint(boolean)} instead + */ + @Deprecated public void setPrettyPrinting(Boolean prettyPrinting) { - this.prettyPrinting = prettyPrinting; + this.prettyPrint = prettyPrinting; + } + + public void setPrettyPrint(boolean prettyPrint) { + this.prettyPrint = prettyPrint; } public String getDateFormatPattern() { http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/components/camel-gson/src/test/java/org/apache/camel/component/gson/SpringGsonJsonDataFormatTest.java ---------------------------------------------------------------------- diff --git a/components/camel-gson/src/test/java/org/apache/camel/component/gson/SpringGsonJsonDataFormatTest.java b/components/camel-gson/src/test/java/org/apache/camel/component/gson/SpringGsonJsonDataFormatTest.java index 656d0c6..cece6fd 100644 --- a/components/camel-gson/src/test/java/org/apache/camel/component/gson/SpringGsonJsonDataFormatTest.java +++ b/components/camel-gson/src/test/java/org/apache/camel/component/gson/SpringGsonJsonDataFormatTest.java @@ -46,6 +46,28 @@ public class SpringGsonJsonDataFormatTest extends CamelSpringTestSupport { mock.assertIsSatisfied(); } + @Test + public void testMarshalAndUnmarshalPojoWithPrettyPrint() throws Exception { + TestPojo in = new TestPojo(); + in.setName("Camel"); + + MockEndpoint mock = getMockEndpoint("mock:reversePojo"); + mock.expectedMessageCount(1); + mock.message(0).body().isInstanceOf(TestPojo.class); + mock.message(0).body().equals(in); + + Object marshalled = template.requestBody("direct:inPretty", 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(); + } + @Override protected AbstractXmlApplicationContext createApplicationContext() { return new ClassPathXmlApplicationContext("org/apache/camel/component/gson/SpringGsonJsonDataFormatTest.xml"); http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/components/camel-gson/src/test/resources/org/apache/camel/component/gson/SpringGsonJsonDataFormatTest.xml ---------------------------------------------------------------------- diff --git a/components/camel-gson/src/test/resources/org/apache/camel/component/gson/SpringGsonJsonDataFormatTest.xml b/components/camel-gson/src/test/resources/org/apache/camel/component/gson/SpringGsonJsonDataFormatTest.xml index 2111799..8064cb3 100644 --- a/components/camel-gson/src/test/resources/org/apache/camel/component/gson/SpringGsonJsonDataFormatTest.xml +++ b/components/camel-gson/src/test/resources/org/apache/camel/component/gson/SpringGsonJsonDataFormatTest.xml @@ -29,6 +29,7 @@ <dataFormats> <!-- this one uses our own TestPojo class as unmarshal type --> <json id="gson" library="Gson" unmarshalTypeName="org.apache.camel.component.gson.TestPojo"/> + <json id="pretty" library="Gson" prettyPrint="true" unmarshalTypeName="org.apache.camel.component.gson.TestPojo"/> </dataFormats> <route> @@ -42,6 +43,17 @@ <to uri="mock:reversePojo"/> </route> + <route> + <from uri="direct:inPretty"/> + <marshal ref="pretty"/> + </route> + + <route> + <from uri="direct:backPretty"/> + <unmarshal ref="pretty"/> + <to uri="mock:reversePojo"/> + </route> + </camelContext> <!-- END SNIPPET: e1 --> http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/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 dfaa3ce..1555367 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,12 +29,8 @@ 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:inPretty").marshal().json(JsonLibrary.Jackson, true); + from("direct:backPretty").unmarshal().json(JsonLibrary.Jackson).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/1e923eca/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 bb7d0f5..95b8220 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 @@ -55,7 +55,7 @@ public class JacksonMarshalTest extends CamelTestSupport { mock.message(0).body().isInstanceOf(Map.class); mock.message(0).body().equals(in); - Object marshalled = template.requestBody("direct:pretty", in); + Object marshalled = template.requestBody("direct:inPretty", in); String marshalledAsString = context.getTypeConverter().convertTo(String.class, marshalled); String expected = String.format("{%s \"name\" : \"Camel\"%s}", System.lineSeparator(), System.lineSeparator()); assertEquals(expected, marshalledAsString); @@ -99,7 +99,7 @@ public class JacksonMarshalTest extends CamelTestSupport { JacksonDataFormat prettyPrintDataFormat = new JacksonDataFormat(); prettyPrintDataFormat.setPrettyPrint(true); - from("direct:pretty").marshal(prettyPrintDataFormat); + from("direct:inPretty").marshal(prettyPrintDataFormat); from("direct:backPretty").unmarshal(prettyPrintDataFormat).to("mock:reverse"); JacksonDataFormat formatPojo = new JacksonDataFormat(TestPojo.class); http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/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 bfa13ac..b1ef3ad 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 @@ -59,7 +59,7 @@ public class SpringJacksonJsonDataFormatTest extends CamelSpringTestSupport { mock.message(0).body().isInstanceOf(Map.class); mock.message(0).body().equals(in); - Object marshalled = template.requestBody("direct:pretty", in); + Object marshalled = template.requestBody("direct:inPretty", in); String marshalledAsString = context.getTypeConverter().convertTo(String.class, marshalled); String expected = String.format("{%s \"name\" : \"Camel\"%s}", System.lineSeparator(), System.lineSeparator()); assertEquals(expected, marshalledAsString); http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/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 61bd1a0..6849b95 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 @@ -42,7 +42,7 @@ </route> <route> - <from uri="direct:pretty"/> + <from uri="direct:inPretty"/> <marshal ref="pretty"/> </route> http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/JsonDataFormat.java ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/JsonDataFormat.java b/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/JsonDataFormat.java index 7f6d714..bbf96b7 100644 --- a/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/JsonDataFormat.java +++ b/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/JsonDataFormat.java @@ -18,6 +18,8 @@ package org.apache.camel.dataformat.xstream; import java.io.InputStream; import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; @@ -26,6 +28,7 @@ import javax.xml.stream.XMLStreamException; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; +import com.thoughtworks.xstream.io.json.JsonWriter; import com.thoughtworks.xstream.io.xml.QNameMap; import com.thoughtworks.xstream.io.xml.StaxReader; import com.thoughtworks.xstream.io.xml.StaxWriter; @@ -45,6 +48,7 @@ import org.codehaus.jettison.mapped.MappedXMLOutputFactory; public class JsonDataFormat extends AbstractXStreamWrapper { private final MappedXMLOutputFactory mof; private final MappedXMLInputFactory mif; + private boolean prettyPrint; public JsonDataFormat() { final Map<?, ?> nstjsons = new HashMap<Object, Object>(); @@ -52,6 +56,14 @@ public class JsonDataFormat extends AbstractXStreamWrapper { mif = new MappedXMLInputFactory(nstjsons); } + public boolean isPrettyPrint() { + return prettyPrint; + } + + public void setPrettyPrint(boolean prettyPrint) { + this.prettyPrint = prettyPrint; + } + @Override protected XStream createXStream(ClassResolver resolver, ClassLoader classLoader) { XStream xs = super.createXStream(resolver, classLoader); @@ -64,6 +76,15 @@ public class JsonDataFormat extends AbstractXStreamWrapper { } protected HierarchicalStreamWriter createHierarchicalStreamWriter(Exchange exchange, Object body, OutputStream stream) throws XMLStreamException { + if (isPrettyPrint()) { + try { + // the json spec. expects UTF-8 as the default encoding + return new JsonWriter(new OutputStreamWriter(stream, "UTF-8")); + } catch (UnsupportedEncodingException uee) { + throw new XMLStreamException(uee); + } + } + return new StaxWriter(new QNameMap(), mof.createXMLStreamWriter(stream)); } http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/XStreamDataFormat.java ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/XStreamDataFormat.java b/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/XStreamDataFormat.java index 1ae7c34..ca8a945 100644 --- a/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/XStreamDataFormat.java +++ b/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/XStreamDataFormat.java @@ -42,7 +42,7 @@ import org.apache.camel.util.IOHelper; * @version */ public class XStreamDataFormat extends AbstractXStreamWrapper { - String encoding; + private String encoding; public XStreamDataFormat() { } http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectJSONTest.java ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectJSONTest.java b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectJSONTest.java index 3c5da94..6c3cdac 100644 --- a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectJSONTest.java +++ b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectJSONTest.java @@ -17,18 +17,50 @@ package org.apache.camel.dataformat.xstream; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.mock.MockEndpoint; +import org.junit.Test; public class MarshalDomainObjectJSONTest extends MarshalDomainObjectTest { + @Test + public void testMarshalAndUnmarshalWithPrettyPrint() throws Exception { + PurchaseOrder order = new PurchaseOrder(); + order.setName("pretty printed Camel"); + order.setAmount(1); + order.setPrice(7.91); + + MockEndpoint mock = getMockEndpoint("mock:reverse"); + mock.expectedMessageCount(1); + mock.message(0).body().isInstanceOf(PurchaseOrder.class); + mock.message(0).body().equals(order); + + Object marshalled = template.requestBody("direct:inPretty", order); + String marshalledAsString = context.getTypeConverter().convertTo(String.class, marshalled); + // the line-separator used by JsonWriter is "\n", even on windows + String expected = "{\"org.apache.camel.dataformat.xstream.PurchaseOrder\": {\n" + + " \"name\": \"pretty printed Camel\",\n"+ + " \"price\": 7.91,\n" + + " \"amount\": 1.0\n" + + "}}"; + assertEquals(expected, marshalledAsString); + + template.sendBody("direct:backPretty", marshalled); + + mock.assertIsSatisfied(); + } + protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { public void configure() throws Exception { from("direct:in").marshal().json().to("mock:result"); - // just used for helping to marhsal + // just used for helping to marshal from("direct:marshal").marshal().json(); from("direct:reverse").unmarshal().json().to("mock:reverse"); + + from("direct:inPretty").marshal().json(true); + from("direct:backPretty").unmarshal().json().to("mock:reverse"); } }; } http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamDataFormatDriverConfigTest.java ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamDataFormatDriverConfigTest.java b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamDataFormatDriverConfigTest.java index d4777fb..c3e44fe 100644 --- a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamDataFormatDriverConfigTest.java +++ b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamDataFormatDriverConfigTest.java @@ -32,7 +32,7 @@ public class XStreamDataFormatDriverConfigTest extends CamelTestSupport { XStreamDataFormat xStreamDataFormat = new XStreamDataFormat(); xStreamDataFormat.setXstreamDriver(new JsonHierarchicalStreamDriver()); - XStream xStream = xStreamDataFormat.createXStream(new DefaultClassResolver()); + XStream xStream = xStreamDataFormat.createXStream(context.getClassResolver(), context.getApplicationContextClassLoader()); String marshalledOrder = xStream.toXML(purchaseOrder); assertEquals("{", marshalledOrder.substring(0, 1)); http://git-wip-us.apache.org/repos/asf/camel/blob/1e923eca/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalDomainObjectJSONTest.xml ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalDomainObjectJSONTest.xml b/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalDomainObjectJSONTest.xml index 0e9f7e4..d44d587 100644 --- a/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalDomainObjectJSONTest.xml +++ b/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalDomainObjectJSONTest.xml @@ -28,6 +28,7 @@ <!-- we define the json xstream data formats to be used (xstream is default) --> <dataFormats> <json id="json"/> + <json id="pretty" prettyPrint="true"/> </dataFormats> <route> @@ -47,6 +48,17 @@ <to uri="mock:reverse"/> </route> + <route> + <from uri="direct:inPretty"/> + <marshal ref="pretty"/> + </route> + + <route> + <from uri="direct:backPretty"/> + <unmarshal ref="pretty"/> + <to uri="mock:reverse"/> + </route> + </camelContext> <!-- END SNIPPET: e1 -->