Added camel-xstream docs to Gitbook

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

Branch: refs/heads/master
Commit: 879fa6031660b589134ae3e08ba33f8b7a268c90
Parents: fc82672
Author: Andrea Cosentino <anco...@gmail.com>
Authored: Thu Jun 9 13:06:29 2016 +0200
Committer: Andrea Cosentino <anco...@gmail.com>
Committed: Thu Jun 9 13:06:29 2016 +0200

----------------------------------------------------------------------
 .../camel-xstream/src/main/docs/xstream.adoc    | 124 +++++++++++++++++++
 docs/user-manual/en/SUMMARY.md                  |   1 +
 2 files changed, 125 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/879fa603/components/camel-xstream/src/main/docs/xstream.adoc
----------------------------------------------------------------------
diff --git a/components/camel-xstream/src/main/docs/xstream.adoc 
b/components/camel-xstream/src/main/docs/xstream.adoc
new file mode 100644
index 0000000..14ce541
--- /dev/null
+++ b/components/camel-xstream/src/main/docs/xstream.adoc
@@ -0,0 +1,124 @@
+[[XStream-XStream]]
+XStream
+~~~~~~~
+
+XStream is a link:data-format.html[Data Format] which uses the
+http://xstream.codehaus.org/[XStream library] to marshal and unmarshal
+Java objects to and from XML.
+
+To use XStream in your camel routes you need to add the a dependency
+on *camel-xstream* which implements this data format.
+
+Maven users will need to add the following dependency to their
+`pom.xml` for this component:
+
+[source,xml]
+----------------------------------------------------------
+<dependency>
+  <groupId>org.apache.camel</groupId>
+  <artifactId>camel-xstream</artifactId>
+  <version>x.x.x</version>
+  <!-- use the same version as your Camel core version -->
+</dependency>
+----------------------------------------------------------
+
+[[XStream-UsingtheJavaDSL]]
+Using the Java DSL
+^^^^^^^^^^^^^^^^^^
+
+[source,java]
+-----------------------------------------------------------
+// lets turn Object messages into XML then send to MQSeries
+from("activemq:My.Queue").
+  marshal().xstream().
+  to("mqseries:Another.Queue");
+-----------------------------------------------------------
+
+If you would like to configure the `XStream` instance used by the Camel
+for the message transformation, you can simply pass a reference to that
+instance on the DSL level.
+
+[source,java]
+---------------------------------------------------------
+XStream xStream = new XStream();
+xStream.aliasField("money", PurchaseOrder.class, "cash");
+// new Added setModel option since Camel 2.14
+xStream.setModel("NO_REFERENCES");
+...
+
+from("direct:marshal").
+  marshal(new XStreamDataFormat(xStream)).
+  to("mock:marshaled");
+---------------------------------------------------------
+
+[[XStream-XMLInputFactoryandXMLOutputFactory]]
+XMLInputFactory and XMLOutputFactory
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+http://xstream.codehaus.org/[The XStream library] uses the
+`javax.xml.stream.XMLInputFactory` and
+`javax.xml.stream.XMLOutputFactory`, you can control which
+implementation of this factory should be used.
+
+The Factory is discovered using this algorithm: 
+ 1. Use the `javax.xml.stream.XMLInputFactory` ,
+`javax.xml.stream.XMLOutputFactory` system property. 
+ 2. Use the `lib/xml.stream.properties` file in the `JRE_HOME`
+directory. 
+ 3. Use the Services API, if available, to determine the classname by
+looking in the `META-INF/services/javax.xml.stream.XMLInputFactory`,
+`META-INF/services/javax.xml.stream.XMLOutputFactory` files in jars
+available to the JRE. 
+ 4. Use the platform default XMLInputFactory,XMLOutputFactory instance.
+
+[[XStream-HowtosettheXMLencodinginXstreamDataFormat]]
+How to set the XML encoding in Xstream DataFormat?
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+From Camel 2.2.0, you can set the encoding of XML in Xstream DataFormat
+by setting the Exchange's property with the key `Exchange.CHARSET_NAME`,
+or setting the encoding property on Xstream from DSL or Spring config.
+
+[source,java]
+-------------------------------
+from("activemq:My.Queue").
+  marshal().xstream("UTF-8").
+  to("mqseries:Another.Queue");
+-------------------------------
+
+[[XStream-SettingthetypepermissionsofXstreamDataFormat]]
+Setting the type permissions of Xstream DataFormat
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In Camel, one can always use its own processing step in the route to
+filter and block certain XML documents to be routed to the XStream's
+unmarhall step. From Camel 2.16.1, 2.15.5, you can
+set http://x-stream.github.io/security.html[XStream's type
+permissions] to automatically allow or deny the instantiation of certain
+types.
+
+The default type permissions setting used by Camel denies all types
+except for those from java.lang and java.util packages. This setting can
+be changed by setting System property
+org.apache.camel.xstream.permissions. Its value is a string of
+comma-separated permission terms, each representing a type being allowed
+or denied, depending on whether the term is prefixed with '+' (note '+'
+may be omitted) or with '-', respectively.
+
+Each term may contain a wildcard character '*'. For example, value
+"-*,java.lang.*,java.util.*" indicates denying all types except for
+java.lang.* and java.util.* classes. Setting this value to an empty
+string "" reverts to the default XStream's type permissions handling
+which denies certain blacklisted classes and allow others.
+
+The type permissions setting can be extended at an individual XStream
+DataFormat instance by setting its type permissions property.
+
+[source,java]
+-------------------------------------------------------------------
+    <dataFormats>
+        <xstream id="xstream-default" 
+                 permissions="org.apache.camel.samples.xstream.*"/>
+        ...
+
+-------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/camel/blob/879fa603/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index 4377518..209a5dc 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -302,6 +302,7 @@
     * [XML Beans](xmlbeans.adoc)
     * [XML JSON](xmljson.adoc)
     * [XML Rpc](xmlrpc.adoc)
+    * [XStream](xstream.adoc)
     * [YAML](yaml.adoc)
 
 * User Guide

Reply via email to