You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/08/16 12:02:50 UTC

camel git commit: CAMEL-9541: component docs

Repository: camel
Updated Branches:
  refs/heads/master d4fa3c55c -> 92ebceef3


CAMEL-9541: component docs


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

Branch: refs/heads/master
Commit: 92ebceef3714d0f537fddb38b71288b6067ef5e8
Parents: d4fa3c5
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Aug 16 14:02:43 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Aug 16 14:02:43 2016 +0200

----------------------------------------------------------------------
 .../src/main/docs/tarfile-dataformat.adoc       | 175 +++++++++++++++++++
 .../src/main/docs/zipfile-dataformat.adoc       |  21 +++
 2 files changed, 196 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/92ebceef/components/camel-tarfile/src/main/docs/tarfile-dataformat.adoc
----------------------------------------------------------------------
diff --git a/components/camel-tarfile/src/main/docs/tarfile-dataformat.adoc b/components/camel-tarfile/src/main/docs/tarfile-dataformat.adoc
new file mode 100644
index 0000000..fba4bae
--- /dev/null
+++ b/components/camel-tarfile/src/main/docs/tarfile-dataformat.adoc
@@ -0,0 +1,175 @@
+[[TarFileDataFormat-TarFile]]
+Tar File
+~~~~~~~~
+
+TIP:*Available since Camel 2.18.0*
+
+The Tar File link:data-format.html[Data Format] is a message compression
+and de-compression format. Messages can be marshalled (compressed) to
+Tar Files containing a single entry, and Tar Files containing a single
+entry can be unmarshalled (decompressed) to the original file contents.
+
+There is also a aggregation strategy that can
+aggregate multiple messages into a single Tar File.
+
+[[TarFile-Options]]
+TarFile Options
+^^^^^^^^^^^^^^^
+
+
+// dataformat options: START
+The Tar File dataformat supports 1 options which are listed below.
+
+
+
+{% raw %}
+[width="100%",cols="2s,1m,1m,6",options="header"]
+|=======================================================================
+| Name | Default | Java Type | Description
+| usingIterator | false | Boolean | If the tar file has more then one entry the setting this option to true allows to work with the splitter EIP to split the data using an iterator in a streaming mode.
+|=======================================================================
+{% endraw %}
+// dataformat options: END
+
+
+[[TarFileDataFormat-Marshal]]
+Marshal
+^^^^^^^
+
+In this example we marshal a regular text/XML payload to a compressed
+payload using Tar File compression, and send it to an ActiveMQ queue
+called MY_QUEUE.
+
+[source,java]
+-----------------------------------------------------------------------
+from("direct:start").marshal().tarFile().to("activemq:queue:MY_QUEUE");
+-----------------------------------------------------------------------
+
+The name of the Tar entry inside the created Tar File is based on the
+incoming `CamelFileName` message header, which is the standard message
+header used by the link:file2.html[file component]. Additionally, the
+outgoing `CamelFileName` message header is automatically set to the
+value of the incoming `CamelFileName` message header, with the ".tar"
+suffix. So for example, if the following route finds a file named
+"test.txt" in the input directory, the output will be a Tar File named
+"test.txt.tar" containing a single Tar entry named "test.txt":
+
+[source,java]
+-----------------------------------------------------------------------------------------------
+from("file:input/directory?antInclude=*/.txt").marshal().tarFile().to("file:output/directory");
+-----------------------------------------------------------------------------------------------
+
+If there is no incoming `CamelFileName` message header (for example, if
+the link:file2.html[file component] is not the consumer), then the
+message ID is used by default, and since the message ID is normally a
+unique generated ID, you will end up with filenames like
+`ID-MACHINENAME-2443-1211718892437-1-0.tar`. If you want to override
+this behavior, then you can set the value of the `CamelFileName` header
+explicitly in your route:
+
+[source,java]
+---------------------------------------------------------------------------------------------------------------------------
+from("direct:start").setHeader(Exchange.FILE_NAME, constant("report.txt")).marshal().tarFile().to("file:output/directory");
+---------------------------------------------------------------------------------------------------------------------------
+
+This route would result in a Tar File named "report.txt.tar" in the
+output directory, containing a single Tar entry named "report.txt".
+
+[[TarFileDataFormat-Unmarshal]]
+Unmarshal
+^^^^^^^^^
+
+In this example we unmarshal a Tar File payload from an ActiveMQ queue
+called MY_QUEUE to its original format, and forward it for processing to
+the `UnTarpedMessageProcessor`.
+
+[source,java]
+-----------------------------------------------------------------------------------------------
+from("activemq:queue:MY_QUEUE").unmarshal().tarFile().process(new UnTarpedMessageProcessor());�
+-----------------------------------------------------------------------------------------------
+
+If the Tar File has more then one entry, the usingIterator option of
+TarFileDataFormat to be true, and you can use splitter to do the further
+work.
+
+[source,java]
+----------------------------------------------------------------------------------------------------
+  TarFileDataFormat tarFile = new TarFileDataFormat();
+  tarFile.setUsingIterator(true);
+  from("file:src/test/resources/org/apache/camel/dataformat/tarfile/?consumer.delay=1000&noop=true")
+    .unmarshal(tarFile)
+    .split(body(Iterator.class))
+        .streaming()
+          .process(new UnTarpedMessageProcessor())
+    .end();
+----------------------------------------------------------------------------------------------------
+
+Or you can use the TarSplitter as an expression for splitter directly
+like this
+
+[source,java]
+----------------------------------------------------------------------------------------------------
+   from("file:src/test/resources/org/apache/camel/dataformat/tarfile?consumer.delay=1000&noop=true")
+     .split(new TarSplitter())
+        .streaming()
+        .process(new UnTarpedMessageProcessor())
+     .end();
+----------------------------------------------------------------------------------------------------
+
+
+[[TarFileDataFormat-Aggregate]]
+Aggregate
+^^^^^^^^^
+
+INFO:Please note that this aggregation strategy requires eager completion
+check to work properly.
+
+In this example we aggregate all text files found in the input directory
+into a single Tar File that is stored in the output directory.�
+
+[source,java]
+-------------------------------------------------
+   from("file:input/directory?antInclude=*/.txt")
+     .aggregate(new TarAggregationStrategy())
+       .constant(true)
+       .completionFromBatchConsumer()
+       .eagerCheckCompletion()
+   .to("file:output/directory");
+-------------------------------------------------
+
+The outgoing�`CamelFileName`�message header is created using
+java.io.File.createTempFile, with the ".tar" suffix.�If you want to
+override this behavior, then you can set the value of
+the�`CamelFileName`�header explicitly in your route:
+
+[source,java]
+------------------------------------------------------------
+   from("file:input/directory?antInclude=*/.txt")
+     .aggregate(new TarAggregationStrategy())
+       .constant(true)
+       .completionFromBatchConsumer()
+       .eagerCheckCompletion()
+     .setHeader(Exchange.FILE_NAME, constant("reports.tar"))
+   .to("file:output/directory");
+------------------------------------------------------------
+
+[[TarFileDataFormat-Dependencies]]
+Dependencies
+^^^^^^^^^^^^
+
+To use Tar Files in your camel routes you need to add a dependency on
+*camel-tarfile* which implements this data format.
+
+If you use Maven you can 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,xml]
+----------------------------------------------------------
+<dependency>
+  <groupId>org.apache.camel</groupId>
+  <artifactId>camel-tarfile</artifactId>
+  <version>x.x.x</version>
+  <!-- use the same version as your Camel core version -->
+</dependency>
+----------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/camel/blob/92ebceef/components/camel-zipfile/src/main/docs/zipfile-dataformat.adoc
----------------------------------------------------------------------
diff --git a/components/camel-zipfile/src/main/docs/zipfile-dataformat.adoc b/components/camel-zipfile/src/main/docs/zipfile-dataformat.adoc
index 0f61ea6..0b1e10d 100644
--- a/components/camel-zipfile/src/main/docs/zipfile-dataformat.adoc
+++ b/components/camel-zipfile/src/main/docs/zipfile-dataformat.adoc
@@ -15,6 +15,27 @@ https://blogs.oracle.com/xuemingshen/entry/zip64_support_for_4g_zipfile[Java
 Since Camel 2.12.3 there is also a aggregation strategy that can
 aggregate multiple messages into a single Zip file.
 
+[[ZipFile-Options]]
+ZipFile Options
+^^^^^^^^^^^^^^^
+
+
+// dataformat options: START
+The Zip File dataformat supports 1 options which are listed below.
+
+
+
+{% raw %}
+[width="100%",cols="2s,1m,1m,6",options="header"]
+|=======================================================================
+| Name | Default | Java Type | Description
+| usingIterator | false | Boolean | If the zip file has more then one entry the setting this option to true allows to work with the splitter EIP to split the data using an iterator in a streaming mode.
+|=======================================================================
+{% endraw %}
+// dataformat options: END
+
+
+
 [[ZipFileDataFormat-Marshal]]
 Marshal
 ^^^^^^^