Repository: camel Updated Branches: refs/heads/camel-2.15.x 933a24508 -> f07a33c46 refs/heads/camel-2.16.x 439299b39 -> 2d1375060 refs/heads/master 741d0dadb -> 9c6bf4689
[CAMEL-9297] Expose more configuration options from Camel's XStream. Allow to configure the types/permissions in the Java DSL. Updated the unit tests to do it like the end user would do it. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8386d8f7 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8386d8f7 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8386d8f7 Branch: refs/heads/master Commit: 8386d8f7260143802553bc6dbae2880d6c0bafda Parents: 741d0da Author: Claus Ibsen <davscl...@apache.org> Authored: Fri Nov 13 15:17:07 2015 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Nov 13 15:17:24 2015 +0100 ---------------------------------------------------------------------- .../apache/camel/builder/DataFormatClause.java | 55 +++++++++++++++++--- .../camel/model/dataformat/JsonDataFormat.java | 47 +++++++++++++++++ .../model/dataformat/XStreamDataFormat.java | 40 +++++++++++--- .../xstream/MarshalDomainObjectJSONTest.java | 5 +- .../xstream/MarshalDomainObjectTest.java | 18 ++----- .../xstream/UnmarshalThenMarshalJSONTest.java | 5 +- .../xstream/UnmarshalThenMarshalTest.java | 16 +----- .../xstream/XStreamConcurrencyTest.java | 16 +----- .../xstream/XStreamConfigurationTest.java | 17 ++---- .../dataformat/xstream/XStreamTestUtils.java | 1 - .../src/test/resources/log4j.properties | 3 +- .../SpringMarshalDomainObjectJSONTest.xml | 4 +- .../xstream/SpringMarshalListTest.xml | 4 +- .../xstream/SpringMarshalOmitFieldsTest.xml | 2 +- .../xstream/SpringXStreamConfigurationTest.xml | 4 +- 15 files changed, 154 insertions(+), 83 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/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 e87195c..ffadcdf 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 @@ -16,12 +16,10 @@ */ package org.apache.camel.builder; +import java.nio.charset.Charset; import java.util.Map; import java.util.zip.Deflater; -import org.w3c.dom.Node; - - import org.apache.camel.model.DataFormatDefinition; import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.model.dataformat.AvroDataFormat; @@ -55,7 +53,9 @@ import org.apache.camel.model.dataformat.XStreamDataFormat; import org.apache.camel.model.dataformat.XmlJsonDataFormat; import org.apache.camel.model.dataformat.ZipDataFormat; import org.apache.camel.model.dataformat.ZipFileDataFormat; +import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.jsse.KeyStoreParameters; +import org.w3c.dom.Node; /** * An expression for constructing the different possible {@link org.apache.camel.spi.DataFormat} @@ -720,17 +720,60 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> { } /** - * Uses the XStream data format + * Uses the XStream data format. + * <p/> + * Favor using {@link #xstream(String)} to pass in a permission */ public T xstream() { return dataFormat(new XStreamDataFormat()); } /** + * Uses the xstream by setting the encoding or permission + * + * @param encodingOrPermission is either an encoding or permission syntax + */ + public T xstream(String encodingOrPermission) { + // is it an encoding? if not we assume its a permission + if (Charset.isSupported(encodingOrPermission)) { + return xstream(encodingOrPermission, (String) null); + } else { + return xstream(null, encodingOrPermission); + } + } + + /** * Uses the xstream by setting the encoding */ - public T xstream(String encoding) { - return dataFormat(new XStreamDataFormat(encoding)); + public T xstream(String encoding, String permission) { + XStreamDataFormat xdf = new XStreamDataFormat(); + xdf.setPermissions(permission); + xdf.setEncoding(encoding); + return dataFormat(xdf); + } + + /** + * Uses the xstream by permitting the java type + * + * @param type the pojo xstream should use as allowed permission + */ + public T xstream(Class<?> type) { + return xstream(null, type); + } + + /** + * Uses the xstream by permitting the java type + * + * @param encoding encoding to use + * @param type the pojo class(es) xstream should use as allowed permission + */ + public T xstream(String encoding, Class<?>... type) { + CollectionStringBuffer csb = new CollectionStringBuffer(","); + for (Class<?> clazz : type) { + csb.append("+"); + csb.append(clazz.getName()); + } + return xstream(encoding, csb.toString()); } /** http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/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 c0127eb..f20aa41 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 @@ -27,6 +27,7 @@ import org.apache.camel.model.DataFormatDefinition; import org.apache.camel.spi.DataFormat; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.RouteContext; +import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.ObjectHelper; /** @@ -68,6 +69,8 @@ public class JsonDataFormat extends DataFormatDefinition { private String enableFeatures; @XmlAttribute private String disableFeatures; + @XmlAttribute + private String permissions; public JsonDataFormat() { super("json"); @@ -253,6 +256,42 @@ public class JsonDataFormat extends DataFormatDefinition { this.disableFeatures = disableFeatures; } + public String getPermissions() { + return permissions; + } + + /** + * Adds permissions that controls which Java packages and classes XStream is allowed to use during + * unmarshal from xml/json to Java beans. + * <p/> + * A permission must be configured either here or globally using a JVM system property. The permission + * can be specified in a syntax where a plus sign is allow, and minus sign is deny. + * <br/> + * Wildcards is supported by using <tt>.*</tt> as prefix. For example to allow <tt>com.foo</tt> and all subpackages + * then specfy <tt>+com.foo.*</tt>. Multiple permissions can be configured separated by comma, such as + * <tt>+com.foo.*,-com.foo.bar.MySecretBean</tt>. + * <br/> + * The following default permission is always included: <tt>"-*,java.lang.*,java.util.*"</tt> unless + * its overridden by specifying a JVM system property with they key <tt>org.apache.camel.xstream.permissions</tt>. + */ + public void setPermissions(String permissions) { + this.permissions = permissions; + } + + /** + * To add permission for the given pojo classes. + * @param type the pojo class(es) xstream should use as allowed permission + * @see #setPermissions(String) + */ + public void setPermissions(Class<?>... type) { + CollectionStringBuffer csb = new CollectionStringBuffer(","); + for (Class<?> clazz : type) { + csb.append("+"); + csb.append(clazz.getName()); + } + setPermissions(csb.toString()); + } + @Override public String getDataFormatName() { // json data format is special as the name can be from different bundles @@ -325,6 +364,14 @@ public class JsonDataFormat extends DataFormatDefinition { if (disableFeatures != null) { setProperty(camelContext, dataFormat, "disableFeatures", disableFeatures); } + if (permissions != null) { + setProperty(camelContext, dataFormat, "permissions", permissions); + } + // if we have the unmarshal type, but no permission set, then use it to be allowed + if (permissions == null && unmarshalType != null) { + String allow = "+" + unmarshalType.getName(); + setProperty(camelContext, dataFormat, "permissions", allow); + } } } http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java b/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java index 4d433d2..a7a22f3 100644 --- a/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java +++ b/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java @@ -38,6 +38,7 @@ import org.apache.camel.spi.DataFormat; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.RouteContext; import org.apache.camel.util.CamelContextHelper; +import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.ObjectHelper; /** @@ -50,6 +51,8 @@ import org.apache.camel.util.ObjectHelper; @XmlAccessorType(XmlAccessType.NONE) public class XStreamDataFormat extends DataFormatDefinition { @XmlAttribute + private String permissions; + @XmlAttribute private String encoding; @XmlAttribute private String driver; @@ -57,9 +60,7 @@ public class XStreamDataFormat extends DataFormatDefinition { private String driverRef; @XmlAttribute private String mode; - @XmlAttribute - private String permissions; - + @XmlJavaTypeAdapter(ConvertersAdapter.class) @XmlElement(name = "converters") private List<String> converters; @@ -187,12 +188,37 @@ public class XStreamDataFormat extends DataFormatDefinition { } /** - * Adds permissionsList + * Adds permissions that controls which Java packages and classes XStream is allowed to use during + * unmarshal from xml/json to Java beans. + * <p/> + * A permission must be configured either here or globally using a JVM system property. The permission + * can be specified in a syntax where a plus sign is allow, and minus sign is deny. + * <br/> + * Wildcards is supported by using <tt>.*</tt> as prefix. For example to allow <tt>com.foo</tt> and all subpackages + * then specfy <tt>+com.foo.*</tt>. Multiple permissions can be configured separated by comma, such as + * <tt>+com.foo.*,-com.foo.bar.MySecretBean</tt>. + * <br/> + * The following default permission is always included: <tt>"-*,java.lang.*,java.util.*"</tt> unless + * its overridden by specifying a JVM system property with they key <tt>org.apache.camel.xstream.permissions</tt>. */ public void setPermissions(String permissions) { this.permissions = permissions; } + /** + * To add permission for the given pojo classes. + * @param type the pojo class(es) xstream should use as allowed permission + * @see #setPermissions(String) + */ + public void setPermissions(Class<?>... type) { + CollectionStringBuffer csb = new CollectionStringBuffer(","); + for (Class<?> clazz : type) { + csb.append("+"); + csb.append(clazz.getName()); + } + setPermissions(csb.toString()); + } + @Override protected DataFormat createDataFormat(RouteContext routeContext) { if ("json".equals(this.driver)) { @@ -208,6 +234,9 @@ public class XStreamDataFormat extends DataFormatDefinition { @Override protected void configureDataFormat(DataFormat dataFormat, CamelContext camelContext) { + if (this.permissions != null) { + setProperty(camelContext, dataFormat, "permissions", this.permissions); + } if (encoding != null) { setProperty(camelContext, dataFormat, "encoding", encoding); } @@ -223,9 +252,6 @@ public class XStreamDataFormat extends DataFormatDefinition { if (this.implicitCollections != null) { setProperty(camelContext, dataFormat, "implicitCollections", this.implicitCollections); } - if (this.permissions != null) { - setProperty(camelContext, dataFormat, "permissions", this.permissions); - } if (this.mode != null) { setProperty(camelContext, dataFormat, "mode", mode); } http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/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 55fbdf0..e676c66 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 @@ -18,6 +18,7 @@ package org.apache.camel.dataformat.xstream; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.model.dataformat.JsonLibrary; import org.junit.Test; public class MarshalDomainObjectJSONTest extends MarshalDomainObjectTest { @@ -57,10 +58,10 @@ public class MarshalDomainObjectJSONTest extends MarshalDomainObjectTest { // just used for helping to marshal from("direct:marshal").marshal().json(); - from("direct:reverse").unmarshal().json().to("mock:reverse"); + from("direct:reverse").unmarshal().json(JsonLibrary.XStream, PurchaseOrder.class).to("mock:reverse"); from("direct:inPretty").marshal().json(true); - from("direct:backPretty").unmarshal().json().to("mock:reverse"); + from("direct:backPretty").unmarshal().json(JsonLibrary.XStream, PurchaseOrder.class, true).to("mock:reverse"); } }; } http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectTest.java ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectTest.java b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectTest.java index 63bc534..53bebb6 100644 --- a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectTest.java +++ b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectTest.java @@ -19,8 +19,6 @@ package org.apache.camel.dataformat.xstream; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; -import org.junit.AfterClass; -import org.junit.BeforeClass; import org.junit.Test; /** @@ -28,16 +26,6 @@ import org.junit.Test; */ public class MarshalDomainObjectTest extends CamelTestSupport { - @BeforeClass - public static void setup() { - XStreamTestUtils.setPermissionSystemProperty(""); - } - - @AfterClass - public static void cleanup() { - XStreamTestUtils.revertPermissionSystemProperty(); - } - @Test public void testMarshalDomainObject() throws Exception { MockEndpoint mock = getMockEndpoint("mock:result"); @@ -96,12 +84,12 @@ public class MarshalDomainObjectTest extends CamelTestSupport { protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { public void configure() throws Exception { - from("direct:in").marshal().xstream().to("mock:result"); + from("direct:in").marshal().xstream(PurchaseOrder.class).to("mock:result"); // just used for helping to marshal - from("direct:marshal").marshal().xstream("UTF-8"); + from("direct:marshal").marshal().xstream("UTF-8", PurchaseOrder.class); - from("direct:reverse").unmarshal().xstream("UTF-8").to("mock:reverse"); + from("direct:reverse").unmarshal().xstream("UTF-8", PurchaseOrder.class).to("mock:reverse"); } }; } http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/UnmarshalThenMarshalJSONTest.java ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/UnmarshalThenMarshalJSONTest.java b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/UnmarshalThenMarshalJSONTest.java index 53ad1e6..1dd9d12 100644 --- a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/UnmarshalThenMarshalJSONTest.java +++ b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/UnmarshalThenMarshalJSONTest.java @@ -19,19 +19,20 @@ package org.apache.camel.dataformat.xstream; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.model.dataformat.JsonLibrary; public class UnmarshalThenMarshalJSONTest extends UnmarshalThenMarshalTest { protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { public void configure() { from("direct:start"). - marshal().json(). + marshal().json(JsonLibrary.XStream, PurchaseOrder.class). process(new Processor() { public void process(Exchange exchange) throws Exception { log.debug("marshalled: " + exchange.getIn().getBody(String.class)); } }). - unmarshal().json(). + unmarshal().json(JsonLibrary.XStream, PurchaseOrder.class). to("mock:result"); } }; http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/UnmarshalThenMarshalTest.java ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/UnmarshalThenMarshalTest.java b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/UnmarshalThenMarshalTest.java index 6e936a5..a5e26bb 100644 --- a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/UnmarshalThenMarshalTest.java +++ b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/UnmarshalThenMarshalTest.java @@ -23,8 +23,6 @@ import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; -import org.junit.AfterClass; -import org.junit.BeforeClass; import org.junit.Test; /** @@ -32,16 +30,6 @@ import org.junit.Test; */ public class UnmarshalThenMarshalTest extends CamelTestSupport { - @BeforeClass - public static void setup() { - XStreamTestUtils.setPermissionSystemProperty(""); - } - - @AfterClass - public static void cleanup() { - XStreamTestUtils.revertPermissionSystemProperty(); - } - @Test public void testSendXmlAndUnmarshal() throws Exception { @@ -69,13 +57,13 @@ public class UnmarshalThenMarshalTest extends CamelTestSupport { return new RouteBuilder() { public void configure() { from("direct:start"). - marshal().xstream(). + marshal().xstream(PurchaseOrder.class). process(new Processor() { public void process(Exchange exchange) throws Exception { log.debug("marshalled: " + exchange.getIn().getBody(String.class)); } }). - unmarshal().xstream(). + unmarshal().xstream(PurchaseOrder.class). to("mock:result"); } }; http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamConcurrencyTest.java ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamConcurrencyTest.java b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamConcurrencyTest.java index b0e6aa2..1f08626 100644 --- a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamConcurrencyTest.java +++ b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamConcurrencyTest.java @@ -22,8 +22,6 @@ import java.util.concurrent.Executors; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.test.junit4.CamelTestSupport; -import org.junit.AfterClass; -import org.junit.BeforeClass; import org.junit.Test; /** @@ -31,16 +29,6 @@ import org.junit.Test; */ public class XStreamConcurrencyTest extends CamelTestSupport { - @BeforeClass - public static void setup() { - XStreamTestUtils.setPermissionSystemProperty(""); - } - - @AfterClass - public static void cleanup() { - XStreamTestUtils.revertPermissionSystemProperty(); - } - @Test public void testNoConcurrentProducers() throws Exception { doSendMessages(1, 1); @@ -79,11 +67,11 @@ public class XStreamConcurrencyTest extends CamelTestSupport { return new RouteBuilder() { public void configure() { from("direct:start"). - marshal().xstream(). + marshal().xstream(PurchaseOrder.class). to("direct:marshalled"); from("direct:marshalled"). - unmarshal().xstream(). + unmarshal().xstream(PurchaseOrder.class). to("mock:result"); } }; http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamConfigurationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamConfigurationTest.java b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamConfigurationTest.java index b411abe..5fc8858 100644 --- a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamConfigurationTest.java +++ b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamConfigurationTest.java @@ -28,13 +28,10 @@ import com.thoughtworks.xstream.converters.UnmarshallingContext; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver; - import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.model.dataformat.XStreamDataFormat; import org.apache.camel.test.junit4.CamelTestSupport; -import org.junit.AfterClass; -import org.junit.BeforeClass; import org.junit.Test; /** @@ -45,16 +42,6 @@ public class XStreamConfigurationTest extends CamelTestSupport { private static volatile boolean constructorInjected; private static volatile boolean methodInjected; - @BeforeClass - public static void setup() { - XStreamTestUtils.setPermissionSystemProperty(""); - } - - @AfterClass - public static void cleanup() { - XStreamTestUtils.revertPermissionSystemProperty(); - } - @Override public void setUp() throws Exception { super.setUp(); @@ -152,6 +139,7 @@ public class XStreamConfigurationTest extends CamelTestSupport { Map<String, String> aliases = new HashMap<String, String>(); aliases.put("purchase-order", PurchaseOrder.class.getName()); xstreamDefinition.setAliases(aliases); + xstreamDefinition.setPermissions(PurchaseOrder.class, PurchaseHistory.class); List<String> converters = new ArrayList<String>(); converters.add(PurchaseOrderConverter.class.getName()); @@ -172,6 +160,7 @@ public class XStreamConfigurationTest extends CamelTestSupport { aliases = new HashMap<String, String>(); aliases.put("purchase-order", PurchaseOrder.class.getName()); xstreamDefinition.setAliases(aliases); + xstreamDefinition.setPermissions(PurchaseOrder.class, PurchaseHistory.class); converters = new ArrayList<String>(); converters.add(PurchaseOrderConverter.class.getName()); @@ -182,6 +171,8 @@ public class XStreamConfigurationTest extends CamelTestSupport { org.apache.camel.dataformat.xstream.XStreamDataFormat xStreamDataFormat = new org.apache.camel.dataformat.xstream.XStreamDataFormat(); xStreamDataFormat.setXstreamDriver(new JsonHierarchicalStreamDriver()); + xStreamDataFormat.setPermissions("+6org.apache.camel.dataformat.xstream.*"); + from("direct:myDriver").marshal(xStreamDataFormat).to("mock:result"); } }; http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamTestUtils.java ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamTestUtils.java b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamTestUtils.java index ff6cf35..7601f43 100644 --- a/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamTestUtils.java +++ b/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamTestUtils.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.camel.dataformat.xstream; /** http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/components/camel-xstream/src/test/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/resources/log4j.properties b/components/camel-xstream/src/test/resources/log4j.properties index 034f615..af8bba9 100644 --- a/components/camel-xstream/src/test/resources/log4j.properties +++ b/components/camel-xstream/src/test/resources/log4j.properties @@ -20,7 +20,7 @@ # log4j.rootLogger=INFO, out -log4j.logger.org.apache.activemq.spring=WARN +#log4j.logger.org.apache.camel=DEBUG # CONSOLE appender not used by default log4j.appender.stdout=org.apache.log4j.ConsoleAppender @@ -34,4 +34,3 @@ log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m% log4j.appender.out.file=target/camel-xstream-test.log log4j.appender.out.append=true -log4j.logger.org.apache.camel=DEBUG http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/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 d44d587..ecc0d0f 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 @@ -27,8 +27,8 @@ <!-- we define the json xstream data formats to be used (xstream is default) --> <dataFormats> - <json id="json"/> - <json id="pretty" prettyPrint="true"/> + <json id="json" unmarshalTypeName="org.apache.camel.dataformat.xstream.PurchaseOrder"/> + <json id="pretty" prettyPrint="true" unmarshalTypeName="org.apache.camel.dataformat.xstream.PurchaseOrder"/> </dataFormats> <route> http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalListTest.xml ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalListTest.xml b/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalListTest.xml index 412f0e0..d04a881 100644 --- a/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalListTest.xml +++ b/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalListTest.xml @@ -27,8 +27,8 @@ <!-- we define the json xstream data formats to be used (xstream is default) --> <dataFormats> - <xstream id="xstream-utf8" encoding="UTF-8"/> - <xstream id="xstream-default"/> + <xstream id="xstream-utf8" encoding="UTF-8" permissions="org.apache.camel.dataformat.stream.*"/> + <xstream id="xstream-default" permissions="org.apache.camel.dataformat.stream.*"/> </dataFormats> <route> http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalOmitFieldsTest.xml ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalOmitFieldsTest.xml b/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalOmitFieldsTest.xml index f0a1880..a085de0 100644 --- a/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalOmitFieldsTest.xml +++ b/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalOmitFieldsTest.xml @@ -26,7 +26,7 @@ <!-- START SNIPPET: e1 --> <dataFormats> - <xstream id="xstream"> + <xstream id="xstream" permissions="org.apache.camel.dataformat.stream.*"> <!-- omit the price file from the PurchaseOrder class --> <omitFields> <omitField class="org.apache.camel.dataformat.xstream.PurchaseOrder"> http://git-wip-us.apache.org/repos/asf/camel/blob/8386d8f7/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringXStreamConfigurationTest.xml ---------------------------------------------------------------------- diff --git a/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringXStreamConfigurationTest.xml b/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringXStreamConfigurationTest.xml index 97a5e80..3b9deb8 100644 --- a/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringXStreamConfigurationTest.xml +++ b/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringXStreamConfigurationTest.xml @@ -44,7 +44,7 @@ </implicitCollections> </xstream> - <xstream id="xstream-json" driver="json"> + <xstream id="xstream-json" driver="json" permissions="org.apache.camel.dataformat.xstream.*"> <converters> <converter class="org.apache.camel.dataformat.xstream.XStreamConfigurationTest$PurchaseOrderConverter" /> </converters> @@ -58,7 +58,7 @@ </implicitCollections> </xstream> - <xstream id="xstream-driver" driverRef="myDriver"/> + <xstream id="xstream-driver" driverRef="myDriver" permissions="org.apache.camel.dataformat.xstream.*"/> </dataFormats> <route>