You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2016/03/25 10:25:23 UTC

[2/2] camel git commit: Added flatpack-dataformat docs to gitbook

Added flatpack-dataformat 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/ac7662e5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ac7662e5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ac7662e5

Branch: refs/heads/master
Commit: ac7662e536a29685f18a3054a30c6d371bb2a272
Parents: 7f6bd60
Author: Andrea Cosentino <an...@gmail.com>
Authored: Fri Mar 25 10:24:40 2016 +0100
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Fri Mar 25 10:24:40 2016 +0100

----------------------------------------------------------------------
 .../src/main/docs/flatpack-dataformat.adoc      | 107 +++++++++++++++++++
 docs/user-manual/en/SUMMARY.md                  |   1 +
 2 files changed, 108 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/ac7662e5/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc
----------------------------------------------------------------------
diff --git a/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc b/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc
new file mode 100644
index 0000000..d4d526b
--- /dev/null
+++ b/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc
@@ -0,0 +1,107 @@
+[[FlatpackDataFormat-FlatpackDataFormat]]
+Flatpack DataFormat
+~~~~~~~~~~~~~~~~~~~
+
+The link:flatpack.html[Flatpack] component ships with the Flatpack data
+format that can be used to format between fixed width or delimited text
+messages to a `List` of rows as `Map`.
+
+* marshal = from `List<Map<String, Object>>` to `OutputStream` (can be
+converted to `String`)
+* unmarshal = from `java.io.InputStream` (such as a `File` or `String`)
+to a `java.util.List` as an
+`org.apache.camel.component.flatpack.DataSetList` instance. +
+ The result of the operation will contain all the data. If you need to
+process each row one by one you can split the exchange, using
+link:splitter.html[Splitter].
+
+*Notice:* The Flatpack library does currently not support header and
+trailers for the marshal operation.
+
+[[FlatpackDataFormat-Options]]
+Options
+^^^^^^^
+
+The data format has the following options:
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Option |Default |Description
+
+|`definition` |`null` |The flatpack pzmap configuration file. Can be omitted in simpler
+situations, but its preferred to use the pzmap.
+
+|`fixed` |`false` |Delimited or fixed.
+
+|`ignoreFirstRecord` |`true` |Whether the first line is ignored for delimited files (for the column
+headers).
+
+|`textQualifier` |`"` |If the text is qualified with a char such as `"`.
+
+|`delimiter` |`,` |The delimiter char (could be `;` `,` or similar)
+
+|`parserFactory` |`null` |Uses the default Flatpack parser factory.
+
+|`allowShortLines` |`false` |*Camel 2.9.7 and 2.10.5 onwards*: Allows for lines to be shorter than
+expected and ignores the extra characters.
+
+|`ignoreExtraColumns` |`false` |*Camel 2.9.7 and 2.10.5 onwards*: Allows for lines to be longer than
+expected and ignores the extra characters.
+|=======================================================================
+
+[[FlatpackDataFormat-Usage]]
+Usage
+^^^^^
+
+To use the data format, simply instantiate an instance and invoke the
+marshal or unmarshal operation in the route builder:
+
+[source,java]
+---------------------------------------------------------------------------
+  FlatpackDataFormat fp = new FlatpackDataFormat();
+  fp.setDefinition(new ClassPathResource("INVENTORY-Delimited.pzmap.xml"));
+  ...
+  from("file:order/in").unmarshal(df).to("seda:queue:neworder");
+---------------------------------------------------------------------------
+
+The sample above will read files from the `order/in` folder and
+unmarshal the input using the Flatpack configuration file
+`INVENTORY-Delimited.pzmap.xml` that configures the structure of the
+files. The result is a `DataSetList` object we store on the SEDA queue.
+
+[source,java]
+-----------------------------------------------------------------------------------
+FlatpackDataFormat df = new FlatpackDataFormat();
+df.setDefinition(new ClassPathResource("PEOPLE-FixedLength.pzmap.xml"));
+df.setFixed(true);
+df.setIgnoreFirstRecord(false);
+
+from("seda:people").marshal(df).convertBodyTo(String.class).to("jms:queue:people");
+-----------------------------------------------------------------------------------
+
+In the code above we marshal the data from a Object representation as a
+`List` of rows as `Maps`. The rows as `Map` contains the column name as
+the key, and the the corresponding value. This structure can be created
+in Java code from e.g. a processor. We marshal the data according to the
+Flatpack format and convert the result as a `String` object and store it
+on a JMS queue.
+
+[[FlatpackDataFormat-Dependencies]]
+Dependencies
+^^^^^^^^^^^^
+
+To use Flatpack in your camel routes you need to add the a dependency on
+*camel-flatpack* which implements this data format.
+
+If you use maven you could just add the following to your pom.xml,
+substituting the version number for the latest & greatest release (see
+link:download.html[the download page for the latest versions]).
+
+[source,java]
+-----------------------------------------
+<dependency>
+  <groupId>org.apache.camel</groupId>
+  <artifactId>camel-flatpack</artifactId>
+  <version>x.x.x</version>
+</dependency>
+-----------------------------------------

http://git-wip-us.apache.org/repos/asf/camel/blob/ac7662e5/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index 1e94f8e..6054bc7 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -150,6 +150,7 @@
 -->
 
 * Data Formats
+    * [Flatpack](flatpack-dataformat.adoc)
     * [XML JSON](xmljson.adoc)
 
 * User Guide