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/04/21 18:59:22 UTC

[1/5] camel git commit: Added camel-irc docs to gitbook

Repository: camel
Updated Branches:
  refs/heads/master d298a84f8 -> 44c7bd696


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

Branch: refs/heads/master
Commit: a858596b5901c68b76655269d19a0055608d2a96
Parents: d298a84
Author: Andrea Cosentino <an...@gmail.com>
Authored: Thu Apr 21 17:54:48 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Thu Apr 21 17:54:48 2016 +0200

----------------------------------------------------------------------
 components/camel-irc/src/main/docs/irc.adoc | 181 +++++++++++++++++++++++
 docs/user-manual/en/SUMMARY.md              |   1 +
 2 files changed, 182 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/a858596b/components/camel-irc/src/main/docs/irc.adoc
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/main/docs/irc.adoc b/components/camel-irc/src/main/docs/irc.adoc
new file mode 100644
index 0000000..07b96e9
--- /dev/null
+++ b/components/camel-irc/src/main/docs/irc.adoc
@@ -0,0 +1,181 @@
+[[IRC-IRCComponent]]
+IRC Component
+~~~~~~~~~~~~~
+
+The *irc* component implements an
+http://en.wikipedia.org/wiki/Internet_Relay_Chat[IRC] (Internet Relay
+Chat) transport.
+
+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-irc</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[IRC-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+---------------------------------------------------------------------
+irc:nick@host[:port]/#room[?options]
+irc:nick@host[:port]?channels=#channel1,#channel2,#channel3[?options]
+---------------------------------------------------------------------
+
+You can append query options to the URI in the following format,
+`?option=value&option=value&...`
+
+[[IRC-Options]]
+Options
+^^^^^^^
+
+
+// component options: START
+The IRC component has no options.
+// component options: END
+
+
+
+// endpoint options: START
+The IRC component supports 23 endpoint options which are listed below:
+
+[width="100%",cols="2s,1,1m,1m,5",options="header"]
+|=======================================================================
+| Name | Group | Default | Java Type | Description
+| hostname | common |  | String | *Required* Hostname for the IRC chat server
+| port | common | 6667,6668,6669 | int | Port number for the IRC chat server
+| autoRejoin | common | true | boolean | Whether to auto re-join when being kicked
+| colors | common | true | boolean | Whether or not the server supports color codes.
+| nickname | common |  | String | The nickname used in chat.
+| nickPassword | common |  | String | Your IRC server nickname password.
+| onJoin | common | true | boolean | Handle user join events.
+| onKick | common | true | boolean | Handle kick events.
+| onMode | common | true | boolean | Handle mode change events.
+| onNick | common | true | boolean | Handle nickname change events.
+| onPart | common | true | boolean | Handle user part events.
+| onPrivmsg | common | true | boolean | Handle private message events.
+| onQuit | common | true | boolean | Handle user quit events.
+| onReply | common | false | boolean | Whether or not to handle general responses to commands or informational messages.
+| onTopic | common | true | boolean | Handle topic change events.
+| password | common |  | String | The IRC server password.
+| persistent | common | true | boolean | Use persistent messages.
+| realname | common |  | String | The IRC user's actual name.
+| username | common |  | String | The IRC server user name.
+| bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.
+| exceptionHandler | consumer (advanced) |  | ExceptionHandler | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored.
+| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange
+| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
+|=======================================================================
+// endpoint options: END
+
+
+[[IRC-SSLSupport]]
+SSL Support
+^^^^^^^^^^^
+
+[[IRC-UsingtheJSSEConfigurationUtility]]
+Using the JSSE Configuration Utility
+++++++++++++++++++++++++++++++++++++
+
+As of Camel 2.9, the IRC component supports SSL/TLS configuration
+through the link:camel-configuration-utilities.html[Camel JSSE
+Configuration Utility].  This utility greatly decreases the amount of
+component specific code you need to write and is configurable at the
+endpoint and component levels.  The following examples demonstrate how
+to use the utility with the IRC component.
+
+[[IRC-Programmaticconfigurationoftheendpoint]]
+Programmatic configuration of the endpoint
+
+[source,java]
+-----------------------------------------------------------------------------------------------------------------------------------------
+KeyStoreParameters ksp = new KeyStoreParameters();
+ksp.setResource("/users/home/server/truststore.jks");
+ksp.setPassword("keystorePassword");
+
+TrustManagersParameters tmp = new TrustManagersParameters();
+tmp.setKeyStore(ksp);
+
+SSLContextParameters scp = new SSLContextParameters();
+scp.setTrustManagers(tmp);
+
+Registry registry = ...
+registry.bind("sslContextParameters", scp);
+
+...
+
+from(...)
+    .to("ircs://camel-prd-user@server:6669/#camel-test?nickname=camel-prd&password=password&sslContextParameters=#sslContextParameters");
+-----------------------------------------------------------------------------------------------------------------------------------------
+
+[[IRC-SpringDSLbasedconfigurationofendpoint]]
+Spring DSL based configuration of endpoint
+
+[source,xml]
+----------------------------------------------------------------------------------------------------------------------------------------------
+...
+  <camel:sslContextParameters
+      id="sslContextParameters">
+    <camel:trustManagers>
+      <camel:keyStore
+          resource="/users/home/server/truststore.jks"
+          password="keystorePassword"/>
+    </camel:keyManagers>
+  </camel:sslContextParameters>...
+...
+  <to uri="ircs://camel-prd-user@server:6669/#camel-test?nickname=camel-prd&password=password&sslContextParameters=#sslContextParameters"/>...
+----------------------------------------------------------------------------------------------------------------------------------------------
+
+[[IRC-Usingthelegacybasicconfigurationoptions]]
+Using the legacy basic configuration options
+++++++++++++++++++++++++++++++++++++++++++++
+
+You can also connect to an SSL enabled IRC server, as follows:
+
+[source,java]
+--------------------------------------------------
+ircs:host[:port]/#room?username=user&password=pass
+--------------------------------------------------
+
+By default, the IRC transport uses
+http://moepii.sourceforge.net/irclib/javadoc/org/schwering/irc/lib/ssl/SSLDefaultTrustManager.html[SSLDefaultTrustManager].
+If you need to provide your own custom trust manager, use the
+`trustManager` parameter as follows:
+
+[source,java]
+----------------------------------------------------------------------------------------------
+ircs:host[:port]/#room?username=user&password=pass&trustManager=#referenceToMyTrustManagerBean
+----------------------------------------------------------------------------------------------
+
+[[IRC-Usingkeys]]
+Using keys
+^^^^^^^^^^
+
+*Available as of Camel 2.2*
+
+Some irc rooms requires you to provide a key to be able to join that
+channel. The key is just a secret word.
+
+For example we join 3 channels where as only channel 1 and 3 uses a key.
+
+[source,java]
+-----------------------------------------------------------------------------
+irc:nick@irc.server.org?channels=#chan1,#chan2,#chan3&keys=chan1Key,,chan3key
+-----------------------------------------------------------------------------
+
+[[IRC-SeeAlso]]
+See Also
+^^^^^^^^
+
+* link:configuring-camel.html[Configuring Camel]
+* link:component.html[Component]
+* link:endpoint.html[Endpoint]
+* link:getting-started.html[Getting Started]
+

http://git-wip-us.apache.org/repos/asf/camel/blob/a858596b/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index 4c97057..958f0f1 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -158,6 +158,7 @@
     * [Hystrix](hystrix.adoc)
     * [Ibatis](ibatis.adoc)
     * [Infinispan](infinispan.adoc)
+    * [IRC](irc.adoc)
     * [Ironmq](ironmq.adoc)
     * [JMS](jms.adoc)
     * [JMX](jmx.adoc)


[3/5] camel git commit: Added camel-javaspace docs to gitbook

Posted by ac...@apache.org.
Added camel-javaspace 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/5e167449
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5e167449
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5e167449

Branch: refs/heads/master
Commit: 5e1674495d00ff11a8093d8df7f27fa5642f4791
Parents: 5a5fa39
Author: Andrea Cosentino <an...@gmail.com>
Authored: Thu Apr 21 18:42:47 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Thu Apr 21 18:42:47 2016 +0200

----------------------------------------------------------------------
 .../src/main/docs/javaspace.adoc                | 147 +++++++++++++++++++
 docs/user-manual/en/SUMMARY.md                  |   1 +
 2 files changed, 148 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/5e167449/components/camel-javaspace/src/main/docs/javaspace.adoc
----------------------------------------------------------------------
diff --git a/components/camel-javaspace/src/main/docs/javaspace.adoc b/components/camel-javaspace/src/main/docs/javaspace.adoc
new file mode 100644
index 0000000..d064246
--- /dev/null
+++ b/components/camel-javaspace/src/main/docs/javaspace.adoc
@@ -0,0 +1,147 @@
+[[JavaSpace-JavaSpaceComponent]]
+JavaSpace Component
+~~~~~~~~~~~~~~~~~~~
+
+*Available as of Camel 2.1*
+
+The *javaspace* component is a transport for working with any JavaSpace
+compliant implementation and this component has been tested with both
+the http://www.dancres.org/blitz/[Blitz implementation] and the
+http://www.gigaspaces.com/[GigaSpace implementation]. +
+ This component can be used for sending and receiving any object
+inheriting from the Jini `net.jini.core.entry.Entry` class. It is also
+possible to pass the bean ID of a template that can be used for
+reading/taking the entries from the space. +
+ This component can be used for sending/receiving any serializable
+object acting as a sort of generic transport. The JavaSpace component
+contains a special optimization for dealing with the `BeanExchange`. It
+can be used to invoke a POJO remotely, using a JavaSpace as a
+transport. +
+ This latter feature can provide a simple implementation of the
+master/worker pattern, where a POJO provides the business logic for the
+worker. +
+ Look at the test cases for examples of various use cases for this
+component.
+
+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-javaspace</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[JavaSpace-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+-------------------------------
+javaspace:jini://host[?options]
+-------------------------------
+
+You can append query options to the URI in the following format,
+`?option=value&option=value&...`
+
+[[JavaSpace-Options]]
+Options
+^^^^^^^
+
+
+// component options: START
+The JavaSpace component has no options.
+// component options: END
+
+
+
+// endpoint options: START
+The JavaSpace component supports 11 endpoint options which are listed below:
+
+[width="100%",cols="2s,1,1m,1m,5",options="header"]
+|=======================================================================
+| Name | Group | Default | Java Type | Description
+| url | common |  | String | *Required* The URL to the JavaSpace server
+| spaceName | common |  | String | *Required* Specifies the JavaSpace name.
+| transactional | common | false | boolean | If true sending and receiving entries is performed within a transaction.
+| transactionTimeout | common |  | long | Specifies the transaction timeout in millis. By default there is no timeout.
+| bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.
+| concurrentConsumers | consumer | 1 | int | Specifies the number of concurrent consumers getting entries from the JavaSpace.
+| templateId | consumer |  | String | If present this option specifies the Spring bean ID of the template to use for reading/taking entries.
+| verb | consumer | take | String | Specifies the verb for getting JavaSpace entries.
+| exceptionHandler | consumer (advanced) |  | ExceptionHandler | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored.
+| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange
+| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
+|=======================================================================
+// endpoint options: END
+
+
+[[JavaSpace-Examples]]
+Examples
+^^^^^^^^
+
+[[JavaSpace-SendingandReceivingEntries]]
+Sending and Receiving Entries
++++++++++++++++++++++++++++++
+
+[source,java]
+--------------------------------------------------------------------------------------------------------
+// sending route
+from("direct:input")
+    .to("javaspace:jini://localhost?spaceName=mySpace");
+
+// receiving Route
+from("javaspace:jini://localhost?spaceName=mySpace&templateId=template&verb=take&concurrentConsumers=1")
+    .to("mock:foo");
+--------------------------------------------------------------------------------------------------------
+
+In this case the payload can be any object that inherits from the Jini
+`Entry` type.
+
+[[JavaSpace-Sendingandreceivingserializableobjects]]
+Sending and receiving serializable objects
+++++++++++++++++++++++++++++++++++++++++++
+
+Using the preceding routes, it is also possible to send and receive any
+serializable object. The JavaSpace component detects that the payload is
+not a Jini `Entry` and then it automatically wraps the payload with a
+Camel Jini `Entry`. In this way, a JavaSpace can be used as a generic
+transport mechanism.
+
+[[JavaSpace-UsingJavaSpaceasaremoteinvocationtransport]]
+Using JavaSpace as a remote invocation transport
+++++++++++++++++++++++++++++++++++++++++++++++++
+
+The JavaSpace component has been tailored to work in combination with
+the Camel bean component. It is therefore possible to call a remote POJO
+using JavaSpace as the transport:
+
+[source,java]
+---------------------------------------------------------------------------
+// client side
+from("direct:input")
+    .to("javaspace:jini://localhost?spaceName=mySpace");
+
+// server side
+from("javaspace:jini://localhost?concurrentConsumers=10&spaceName=mySpace")
+    .to("mock:foo");
+---------------------------------------------------------------------------
+
+In the code there are two test cases showing how to use a POJO to
+realize the master/worker pattern. The idea is to use the POJO to
+provide the business logic and rely on Camel for sending/receiving
+requests/replies with the proper correlation.
+
+[[JavaSpace-SeeAlso]]
+See Also
+^^^^^^^^
+
+* link:configuring-camel.html[Configuring Camel]
+* link:component.html[Component]
+* link:endpoint.html[Endpoint]
+* link:getting-started.html[Getting Started]
+

http://git-wip-us.apache.org/repos/asf/camel/blob/5e167449/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index 367d157..d1869c6 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -161,6 +161,7 @@
     * [IRC](irc.adoc)
     * [Ironmq](ironmq.adoc)
     * [Jasypt](jasypt.adoc)
+    * [Javaspace](javaspace.adoc)
     * [JMS](jms.adoc)
     * [JMX](jmx.adoc)
     * [JSON](json.adoc)


[2/5] camel git commit: Added camel-jasypt docs to gitbook

Posted by ac...@apache.org.
Added camel-jasypt 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/5a5fa393
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5a5fa393
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5a5fa393

Branch: refs/heads/master
Commit: 5a5fa393c09c032a353e711439e9bd67ff556869
Parents: a858596
Author: Andrea Cosentino <an...@gmail.com>
Authored: Thu Apr 21 18:09:05 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Thu Apr 21 18:09:05 2016 +0200

----------------------------------------------------------------------
 .../camel-jasypt/src/main/docs/jasypt.adoc      | 332 +++++++++++++++++++
 docs/user-manual/en/SUMMARY.md                  |   1 +
 2 files changed, 333 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/5a5fa393/components/camel-jasypt/src/main/docs/jasypt.adoc
----------------------------------------------------------------------
diff --git a/components/camel-jasypt/src/main/docs/jasypt.adoc b/components/camel-jasypt/src/main/docs/jasypt.adoc
new file mode 100644
index 0000000..f8467cb
--- /dev/null
+++ b/components/camel-jasypt/src/main/docs/jasypt.adoc
@@ -0,0 +1,332 @@
+[[Jasypt-Jasyptcomponent]]
+Jasypt component
+~~~~~~~~~~~~~~~~
+
+*Available as of Camel 2.5*
+
+http://www.jasypt.org/[Jasypt] is a simplified encryption library which
+makes encryption and decryption easy. Camel integrates with Jasypt to
+allow sensitive information in link:properties.html[Properties] files to
+be encrypted. By dropping *`camel-jasypt`* on the classpath those
+encrypted values will automatically be decrypted on-the-fly by Camel.
+This ensures that human eyes can't easily spot sensitive information
+such as usernames and passwords.
+
+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-jasypt</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[Jasypt-Tooling]]
+Tooling
+^^^^^^^
+
+The link:jasypt.html[Jasypt] component provides a little command line
+tooling to encrypt or decrypt values.
+
+The console output the syntax and which options it provides:
+
+[source,java]
+--------------------------------------------------------------
+Apache Camel Jasypt takes the following options
+
+  -h or -help = Displays the help screen
+  -c or -command <command> = Command either encrypt or decrypt
+  -p or -password <password> = Password to use
+  -i or -input <input> = Text to encrypt or decrypt
+  -a or -algorithm <algorithm> = Optional algorithm to use
+--------------------------------------------------------------
+
+For example to encrypt the value `tiger` you run with the following
+parameters. In the apache camel kit, you cd into the lib folder and run
+the following java cmd, where _<CAMEL_HOME>_ is where you have
+downloaded and extract the Camel distribution.
+
+[source,java]
+----------------------------------------------------------------
+$ cd <CAMEL_HOME>/lib
+$ java -jar camel-jasypt-2.5.0.jar -c encrypt -p secret -i tiger
+----------------------------------------------------------------
+
+Which outputs the following result
+
+[source,java]
+----------------------------------------
+Encrypted text: qaEEacuW7BUti8LcMgyjKw==
+----------------------------------------
+
+This means the encrypted representation `qaEEacuW7BUti8LcMgyjKw==` can
+be decrypted back to `tiger` if you know the master password which was
+`secret`. +
+ If you run the tool again then the encrypted value will return a
+different result. But decrypting the value will always return the
+correct original value.
+
+So you can test it by running the tooling using the following
+parameters:
+
+[source,java]
+-----------------------------------------------------------------------------------
+$ cd <CAMEL_HOME>/lib
+$ java -jar camel-jasypt-2.5.0.jar -c decrypt -p secret -i qaEEacuW7BUti8LcMgyjKw==
+-----------------------------------------------------------------------------------
+
+Which outputs the following result:
+
+[source,java]
+---------------------
+Decrypted text: tiger
+---------------------
+
+The idea is then to use those encrypted values in your
+link:properties.html[Properties] files. Notice how the password value is
+encrypted and the value has the tokens surrounding `ENC(value here)`
+
+[[Jasypt-ToolingdependenciesforCamel2.5and2.6]]
+Tooling dependencies for Camel 2.5 and 2.6
+++++++++++++++++++++++++++++++++++++++++++
+
+The tooling requires the following JARs in the classpath, which has been
+enlisted in the `MANIFEST.MF` file of `camel-jasypt` with `optional/` as
+prefix. Hence why the java cmd above can pickup the needed JARs from the
+Apache Distribution in the `optional` directory.
+
+[source,java]
+-------------------------------------------------------------------------
+jasypt-1.6.jar commons-lang-2.4.jar commons-codec-1.4.jar icu4j-4.0.1.jar
+-------------------------------------------------------------------------
+
+[Info]
+====
+ *Java 1.5 users*
+
+The `icu4j-4.0.1.jar` is only needed when running on JDK 1.5.
+
+This JAR is not distributed by Apache Camel and you have to download it
+manually and copy it to the `lib/optional` directory of the Camel
+distribution. +
+ You can download it from
+http://repo2.maven.org/maven2/com/ibm/icu/icu4j/4.0.1/[Apache Central
+Maven repo].
+
+====
+
+[[Jasypt-ToolingdependenciesforCamel2.7orbetter]]
+Tooling dependencies for Camel 2.7 or better
+++++++++++++++++++++++++++++++++++++++++++++
+
+Jasypt 1.7 onwards is now fully standalone so no additional JARs is
+needed.
+
+[[Jasypt-URIOptions]]
+URI Options
+^^^^^^^^^^^
+
+The options below are exclusive for the link:jasypt.html[Jasypt]
+component.
+
+[width="100%",cols="10%,10%,10%,70%",options="header",]
+|=======================================================================
+|Name |Default Value |Type |Description
+
+|`password` |`null` |`String` |Specifies the master password to use for decrypting. This option is
+mandatory. See below for more details.
+
+|`algorithm` |`null` |`String` |Name of an optional algorithm to use.
+|=======================================================================
+
+[[Jasypt-Protectingthemasterpassword]]
+Protecting the master password
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The master password used by link:jasypt.html[Jasypt] must be provided,
+so that it's capable of decrypting the values. However having this
+master password out in the open may not be an ideal solution. Therefore
+you could for example provide it as a JVM system property or as a OS
+environment setting. If you decide to do so then the `password` option
+supports prefixes which dictates this. `sysenv:` means to lookup the OS
+system environment with the given key. `sys:` means to lookup a JVM
+system property.
+
+For example you could provided the password before you start the
+application
+
+[source,java]
+-----------------------------------------
+$ export CAMEL_ENCRYPTION_PASSWORD=secret
+-----------------------------------------
+
+Then start the application, such as running the start script.
+
+When the application is up and running you can unset the environment
+
+[source,java]
+---------------------------------
+$ unset CAMEL_ENCRYPTION_PASSWORD
+---------------------------------
+
+The `password` option is then a matter of defining as follows:
+`password=sysenv:CAMEL_ENCRYPTION_PASSWORD`.
+
+[[Jasypt-ExamplewithJavaDSL]]
+Example with Java DSL
+^^^^^^^^^^^^^^^^^^^^^
+
+In Java DSL you need to configure link:jasypt.html[Jasypt] as a
+`JasyptPropertiesParser` instance and set it on the
+link:properties.html[Properties] component as show below:
+
+The properties file `myproperties.properties` then contain the encrypted
+value, such as shown below. Notice how the password value is encrypted
+and the value has the tokens surrounding `ENC(value here)`
+
+[[Jasypt-ExamplewithSpringXML]]
+Example with Spring XML
+^^^^^^^^^^^^^^^^^^^^^^^
+
+In Spring XML you need to configure the `JasyptPropertiesParser` which
+is shown below. Then the Camel link:properties.html[Properties]
+component is told to use `jasypt` as the properties parser, which means
+link:jasypt.html[Jasypt] has its chance to decrypt values looked up in
+the properties.
+
+[source,xml]
+-----------------------------------------------------------------------------------------------------------
+<!-- define the jasypt properties parser with the given password to be used -->
+<bean id="jasypt" class="org.apache.camel.component.jasypt.JasyptPropertiesParser">
+    <property name="password" value="secret"/>
+</bean>
+ 
+<!-- define the camel properties component -->
+<bean id="properties" class="org.apache.camel.component.properties.PropertiesComponent">
+    <!-- the properties file is in the classpath -->
+    <property name="location" value="classpath:org/apache/camel/component/jasypt/myproperties.properties"/>
+    <!-- and let it leverage the jasypt parser -->
+    <property name="propertiesParser" ref="jasypt"/>
+</bean>
+-----------------------------------------------------------------------------------------------------------
+
+The link:properties.html[Properties] component can also be inlined
+inside the `<camelContext>` tag which is shown below. Notice how we use
+the `propertiesParserRef` attribute to refer to
+link:jasypt.html[Jasypt].
+
+[source,java]
+--------------------------------------------------------------------------------------------------------------
+<!-- define the jasypt properties parser with the given password to be used -->
+<bean id="jasypt" class="org.apache.camel.component.jasypt.JasyptPropertiesParser">
+    <!-- password is mandatory, you can prefix it with sysenv: or sys: to indicate it should use
+         an OS environment or JVM system property value, so you dont have the master password defined here -->
+    <property name="password" value="secret"/>
+</bean>
+ 
+<camelContext xmlns="http://camel.apache.org/schema/spring">
+    <!-- define the camel properties placeholder, and let it leverage jasypt -->
+    <propertyPlaceholder id="properties"
+                         location="classpath:org/apache/camel/component/jasypt/myproperties.properties"
+                         propertiesParserRef="jasypt"/>
+    <route>
+        <from uri="direct:start"/>
+        <to uri="{{cool.result}}"/>
+    </route>
+</camelContext>
+--------------------------------------------------------------------------------------------------------------
+
+[[Jasypt-ExamplewithBlueprintXML]]
+Example with Blueprint XML
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In Blueprint XML you need to configure
+the `JasyptPropertiesParser` which is shown below. Then the
+Camel link:properties.html[Properties] component is told to
+use `jasypt` as the properties parser, which
+means link:jasypt.html[Jasypt] has its chance to decrypt values looked
+up in the properties.
+
+[source,xml]
+----------------------------------------------------------------------------------------------------------------
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
+           xsi:schemaLocation="
+           http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
+
+  <cm:property-placeholder id="myblue" persistent-id="mypersistent">
+      <!-- list some properties for this test -->
+      <cm:default-properties>
+          <cm:property name="cool.result" value="mock:{{cool.password}}"/>
+          <cm:property name="cool.password" value="ENC(bsW9uV37gQ0QHFu7KO03Ww==)"/>
+      </cm:default-properties>
+  </cm:property-placeholder>
+
+    <!-- define the jasypt properties parser with the given password to be used -->
+    <bean id="jasypt" class="org.apache.camel.component.jasypt.JasyptPropertiesParser">
+        <property name="password" value="secret"/>
+    </bean>
+
+    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
+      <!-- define the camel properties placeholder, and let it leverage jasypt -->
+      <propertyPlaceholder id="properties"
+                           location="blueprint:myblue"
+                           propertiesParserRef="jasypt"/>
+        <route>
+            <from uri="direct:start"/>
+            <to uri="{{cool.result}}"/>
+        </route>
+    </camelContext>
+
+</blueprint>
+----------------------------------------------------------------------------------------------------------------
+
+The link:properties.html[Properties] component can also be inlined
+inside the `<camelContext>` tag which is shown below. Notice how we use
+the `propertiesParserRef` attribute to refer
+to link:jasypt.html[Jasypt].
+
+[source,xml]
+----------------------------------------------------------------------------------------------------------------
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
+           xsi:schemaLocation="
+           http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
+
+    <!-- define the jasypt properties parser with the given password to be used -->
+    <bean id="jasypt" class="org.apache.camel.component.jasypt.JasyptPropertiesParser">
+        <property name="password" value="secret"/>
+    </bean>
+
+    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
+      <!-- define the camel properties placeholder, and let it leverage jasypt -->
+      <propertyPlaceholder id="properties"
+                           location="classpath:org/apache/camel/component/jasypt/myproperties.properties"
+                           propertiesParserRef="jasypt"/>
+        <route>
+            <from uri="direct:start"/>
+            <to uri="{{cool.result}}"/>
+        </route>
+    </camelContext>
+
+</blueprint>
+----------------------------------------------------------------------------------------------------------------
+
+ 
+
+[[Jasypt-SeeAlso]]
+See Also
+^^^^^^^^
+
+* link:security.html[Security]
+* link:properties.html[Properties]
+* http://activemq.apache.org/encrypted-passwords.html[Encrypted
+passwords in ActiveMQ] - ActiveMQ has a similar feature as this
+`camel-jasypt` component
+

http://git-wip-us.apache.org/repos/asf/camel/blob/5a5fa393/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index 958f0f1..367d157 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -160,6 +160,7 @@
     * [Infinispan](infinispan.adoc)
     * [IRC](irc.adoc)
     * [Ironmq](ironmq.adoc)
+    * [Jasypt](jasypt.adoc)
     * [JMS](jms.adoc)
     * [JMX](jmx.adoc)
     * [JSON](json.adoc)


[4/5] camel git commit: Added camel-jaxb docs to gitbook

Posted by ac...@apache.org.
Added camel-jaxb 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/a02e8497
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a02e8497
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a02e8497

Branch: refs/heads/master
Commit: a02e849723a42f5e1aed9c51087536ab0748b6e9
Parents: 5e16744
Author: Andrea Cosentino <an...@gmail.com>
Authored: Thu Apr 21 18:50:38 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Thu Apr 21 18:50:38 2016 +0200

----------------------------------------------------------------------
 components/camel-jaxb/src/main/docs/jaxb.adoc | 307 +++++++++++++++++++++
 docs/user-manual/en/SUMMARY.md                |   3 +-
 2 files changed, 309 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/a02e8497/components/camel-jaxb/src/main/docs/jaxb.adoc
----------------------------------------------------------------------
diff --git a/components/camel-jaxb/src/main/docs/jaxb.adoc b/components/camel-jaxb/src/main/docs/jaxb.adoc
new file mode 100644
index 0000000..0e7b449
--- /dev/null
+++ b/components/camel-jaxb/src/main/docs/jaxb.adoc
@@ -0,0 +1,307 @@
+[[JAXB-JAXB]]
+JAXB
+~~~~
+
+JAXB is a link:data-format.html[Data Format] which uses the JAXB2 XML
+marshalling standard which is included in Java 6 to unmarshal an XML
+payload into Java objects or to marshal Java objects into an XML
+payload.
+
+[[JAXB-UsingtheJavaDSL]]
+Using the Java DSL
+^^^^^^^^^^^^^^^^^^
+
+For example the following uses a named DataFormat of _jaxb_ which is
+configured with a number of Java package names to initialize the
+http://java.sun.com/javase/6/docs/api/javax/xml/bind/JAXBContext.html[JAXBContext].
+
+[source,java]
+-------------------------------------------------------
+DataFormat jaxb = new JaxbDataFormat("com.acme.model");
+
+from("activemq:My.Queue").
+  unmarshal(jaxb).
+  to("mqseries:Another.Queue");
+-------------------------------------------------------
+
+You can if you prefer use a named reference to a data format which can
+then be defined in your link:registry.html[Registry] such as via your
+link:spring.html[Spring] XML file. e.g.
+
+[source,java]
+-------------------------------
+from("activemq:My.Queue").
+  unmarshal("myJaxbDataType").
+  to("mqseries:Another.Queue");
+-------------------------------
+
+[[JAXB-UsingSpringXML]]
+Using Spring XML
+^^^^^^^^^^^^^^^^
+
+The following example shows how to use JAXB to unmarshal using
+link:spring.html[Spring] configuring the jaxb data type
+
+This example shows how to configure the data type just once and reuse it
+on multiple routes.
+
+*Multiple context paths*
+
+It is possible to use this data format with more than one context path.
+You can specify context path using `:` as separator, for example
+`com.mycompany:com.mycompany2`. Note that this is handled by JAXB
+implementation and might change if you use different vendor than RI.
+
+[[JAXB-Partialmarshalling/unmarshalling]]
+Partial marshalling/unmarshalling
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+*This feature is new to Camel 2.2.0.* +
+ JAXB 2 supports marshalling and unmarshalling XML tree fragments. By
+default JAXB looks for `@XmlRootElement` annotation on given class to
+operate on whole XML tree. This is useful but not always - sometimes
+generated code does not have @XmlRootElement annotation, sometimes you
+need unmarshall only part of tree. +
+ In that case you can use partial unmarshalling. To enable this
+behaviours you need set property `partClass`. Camel will pass this class
+to JAXB's unmarshaler.
+
+For marshalling you have to add `partNamespace` attribute with QName of
+destination namespace. Example of Spring DSL you can find above.
+
+[[JAXB-Fragment]]
+Fragment
+^^^^^^^^
+
+*This feature is new to Camel 2.8.0.* +
+ JaxbDataFormat has new property fragment which can set the the
+`Marshaller.JAXB_FRAGMENT` encoding property on the JAXB Marshaller. If
+you don't want the JAXB Marshaller to generate the XML declaration, you
+can set this option to be true. The default value of this property is
+false.
+
+[[JAXB-IgnoringtheNonXMLCharacter]]
+Ignoring the NonXML Character
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+*This feature is new to Camel 2.2.0.* +
+ JaxbDataFromat supports to ignore the
+http://www.w3.org/TR/2004/REC-xml-20040204/#NT-Char[NonXML Character],
+you just need to set the filterNonXmlChars property to be true,
+JaxbDataFormat will replace the NonXML character with " " when it is
+marshaling or unmarshaling the message. You can also do it by setting
+the link:exchange.html[Exchange] property
+`Exchange.FILTER_NON_XML_CHARS`.
+
+ 
+[width="100%",cols="30%,10%,60%",options="header",]
+|=======================================================================
+|   | JDK 1.5 | JDK 1.6+
+
+|Filtering in use |StAX API and implementation |No
+
+|Filtering not in use |StAX API only |No
+|=======================================================================
+
+This feature has been tested with Woodstox 3.2.9 and Sun JDK 1.6 StAX
+implementation.
+
+*New for Camel 2.12.1* +
+ JaxbDataFormat now allows you to customize the XMLStreamWriter used to
+marshal the stream to XML. Using this configuration, you can add your
+own stream writer to completely remove, escape, or replace non-xml
+characters.
+
+[source,java]
+--------------------------------------------------------------------------------------
+   JaxbDataFormat customWriterFormat = new JaxbDataFormat("org.apache.camel.foo.bar");
+  customWriterFormat.setXmlStreamWriterWrapper(new TestXmlStreamWriter());
+--------------------------------------------------------------------------------------
+
+The following example shows using the Spring DSL and also enabling
+Camel's NonXML filtering:
+
+[source,xml]
+------------------------------------------------------------------------------------------------------------------------------
+<bean id="testXmlStreamWriterWrapper" class="org.apache.camel.jaxb.TestXmlStreamWriter"/>
+<jaxb filterNonXmlChars="true"  contextPath="org.apache.camel.foo.bar" xmlStreamWriterWrapper="#testXmlStreamWriterWrapper" />
+------------------------------------------------------------------------------------------------------------------------------
+
+[[JAXB-WorkingwiththeObjectFactory]]
+Working with the ObjectFactory
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you use XJC to create the java class from the schema, you will get an
+ObjectFactory for you JAXB context. Since the ObjectFactory uses
+http://java.sun.com/javase/6/docs/api/javax/xml/bind/JAXBElement.html[JAXBElement]
+to hold the reference of the schema and element instance value,
+jaxbDataformat will ignore the JAXBElement by default and you will get
+the element instance value instead of the JAXBElement object form the
+unmarshaled message body.  +
+ If you want to get the JAXBElement object form the unmarshaled message
+body, you need to set the JaxbDataFormat object's ignoreJAXBElement
+property to be false.
+
+[[JAXB-Settingencoding]]
+Setting encoding
+^^^^^^^^^^^^^^^^
+
+You can set the *encoding* option to use when marshalling. Its the
+`Marshaller.JAXB_ENCODING` encoding property on the JAXB Marshaller. +
+ You can setup which encoding to use when you declare the JAXB data
+format. You can also provide the encoding in the
+link:exchange.html[Exchange] property `Exchange.CHARSET_NAME`. This
+property will overrule the encoding set on the JAXB data format.
+
+In this Spring DSL we have defined to use `iso-8859-1` as the encoding:
+
+[[JAXB-Controllingnamespaceprefixmapping]]
+Controlling namespace prefix mapping
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+*Available as of Camel 2.11*
+
+When marshalling using link:jaxb.html[JAXB] or link:soap.html[SOAP] then
+the JAXB implementation will automatic assign namespace prefixes, such
+as ns2, ns3, ns4 etc. To control this mapping, Camel allows you to refer
+to a map which contains the desired mapping.
+
+Notice this requires having JAXB-RI 2.1 or better (from SUN) on the
+classpath, as the mapping functionality is dependent on the
+implementation of JAXB, whether its supported.
+
+For example in Spring XML we can define a Map with the mapping. In the
+mapping file below, we map SOAP to use soap as prefix. While our custom
+namespace "http://www.mycompany.com/foo/2" is not using any prefix.
+
+[source,xml]
+-----------------------------------------------------------------------
+  <util:map id="myMap">
+    <entry key="http://www.w3.org/2003/05/soap-envelope" value="soap"/>
+    <!-- we dont want any prefix for our namespace -->
+    <entry key="http://www.mycompany.com/foo/2" value=""/>
+  </util:map>
+-----------------------------------------------------------------------
+
+To use this in link:jaxb.html[JAXB] or link:soap.html[SOAP] you refer to
+this map, using the `namespacePrefixRef` attribute as shown below. Then
+Camel will lookup in the link:registry.html[Registry] a `java.util.Map`
+with the id "myMap", which was what we defined above.
+
+[source,xml]
+----------------------------------------------------------------------------------------
+  <marshal>
+    <soapjaxb version="1.2" contextPath="com.mycompany.foo" namespacePrefixRef="myMap"/>
+  </marshal>
+----------------------------------------------------------------------------------------
+
+[[JAXB-Schemavalidation]]
+Schema validation
+^^^^^^^^^^^^^^^^^
+
+*Available as of Camel 2.11*
+
+The JAXB link:data-format.html[Data Format] supports validation by
+marshalling and unmarshalling from/to XML. Your can use the prefix
+*classpath:*, *file:* or *http:* to specify how the resource should by
+resolved. You can separate multiple schema files by using the *','*
+character.
+
+*Known issue*
+
+Camel 2.11.0 and 2.11.1 has a known issue by validation multiple
+`Exchange`'s in parallel. See
+https://issues.apache.org/jira/browse/CAMEL-6630[CAMEL-6630]. This is
+fixed with Camel 2.11.2/2.12.0.
+
+Using the Java DSL, you can configure it in the following way:
+
+[source,java]
+-----------------------------------------------------------------------
+JaxbDataFormat jaxbDataFormat = new JaxbDataFormat();
+jaxbDataFormat.setContextPath(Person.class.getPackage().getName());
+jaxbDataFormat.setSchema("classpath:person.xsd,classpath:address.xsd");
+-----------------------------------------------------------------------
+
+You can do the same using the XML DSL:
+
+[source,xml]
+-------------------------------------------------------------------------
+<marshal>
+    <jaxb id="jaxb" schema="classpath:person.xsd,classpath:address.xsd"/>
+</marshal>
+-------------------------------------------------------------------------
+
+Camel will create and pool the underling `SchemaFactory` instances on
+the fly, because the `SchemaFactory` shipped with the JDK is not thread
+safe. +
+ However, if you have a `SchemaFactory` implementation which is thread
+safe, you can configure the JAXB data format to use this one:
+
+[source,java]
+--------------------------------------------------------
+JaxbDataFormat jaxbDataFormat = new JaxbDataFormat();
+jaxbDataFormat.setSchemaFactory(thradSafeSchemaFactory);
+--------------------------------------------------------
+
+[[JAXB-SchemaLocation]]
+Schema Location
+^^^^^^^^^^^^^^^
+
+*Available as of Camel 2.14*
+
+The JAXB link:data-format.html[Data Format] supports to specify the
+SchemaLocation when marshaling the XML. 
+
+Using the Java DSL, you can configure it in the following way:
+
+[source,java]
+-------------------------------------------------------------------
+JaxbDataFormat jaxbDataFormat = new JaxbDataFormat();
+jaxbDataFormat.setContextPath(Person.class.getPackage().getName());
+jaxbDataFormat.setSchemaLocation("schema/person.xsd");
+-------------------------------------------------------------------
+
+You can do the same using the XML DSL:
+
+[source,xml]
+--------------------------------------------------------
+<marshal>
+    <jaxb id="jaxb" schemaLocation="schema/person.xsd"/>
+</marshal>
+--------------------------------------------------------
+
+[[JAXB-MarshaldatathatisalreadyXML]]
+Marshal data that is already XML
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+*Available as of Camel 2.14.1*
+
+The JAXB marshaller requires that the message body is JAXB compatible,
+eg its a JAXBElement, eg a java instance that has JAXB annotations, or
+extend JAXBElement. There can be situations where the message body is
+already in XML, eg from a String type. There is a new
+option `mustBeJAXBElement` you can set to false, to relax this check, so
+the JAXB marshaller only attempts to marshal JAXBElements
+(javax.xml.bind.JAXBIntrospector#isElement returns true). And in those
+situations the marshaller fallbacks to marshal the message body as-is.
+
+[[JAXB-Dependencies]]
+Dependencies
+^^^^^^^^^^^^
+
+To use JAXB in your camel routes you need to add the a dependency on
+*camel-jaxb* 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-jaxb</artifactId>
+  <version>x.x.x</version>
+</dependency>
+-------------------------------------

http://git-wip-us.apache.org/repos/asf/camel/blob/a02e8497/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index d1869c6..677f3df 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -187,8 +187,9 @@
 
 * Data Formats
     * [Flatpack](flatpack-dataformat.adoc)
-    * [XML JSON](xmljson.adoc)
     * [Ical](ical.adoc)
+    * [Jaxb](jaxb.adoc)
+    * [XML JSON](xmljson.adoc)
 
 * User Guide
     * [Karaf](karaf.adoc)


[5/5] camel git commit: Added camel-jbpm docs to gitbook

Posted by ac...@apache.org.
Added camel-jbpm 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/44c7bd69
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/44c7bd69
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/44c7bd69

Branch: refs/heads/master
Commit: 44c7bd6966d3d58035bcbbcc32fc620cf0b4880e
Parents: a02e849
Author: Andrea Cosentino <an...@gmail.com>
Authored: Thu Apr 21 18:58:46 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Thu Apr 21 18:58:46 2016 +0200

----------------------------------------------------------------------
 components/camel-jbpm/src/main/docs/jbpm.adoc | 156 +++++++++++++++++++++
 docs/user-manual/en/SUMMARY.md                |   1 +
 2 files changed, 157 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/44c7bd69/components/camel-jbpm/src/main/docs/jbpm.adoc
----------------------------------------------------------------------
diff --git a/components/camel-jbpm/src/main/docs/jbpm.adoc b/components/camel-jbpm/src/main/docs/jbpm.adoc
new file mode 100644
index 0000000..bc25146
--- /dev/null
+++ b/components/camel-jbpm/src/main/docs/jbpm.adoc
@@ -0,0 +1,156 @@
+[[jBPM-jBPMComponent]]
+jBPM Component
+~~~~~~~~~~~~~~
+
+*Available as of Camel 2.16*
+
+The *jbpm* component provides integration with Business Process
+Management (BPM) Suit http://www.jbpm.org/[jBPM]. It uses
+kie-remote-client API to interact with jBPM instance over REST. The
+component supports only producer.
+
+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-jbpm</artifactId>
+    <version>x.x.x</version><!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------------------------------
+
+[[jBPM-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+---------------------------------------------
+jbpm::hostName[:port][/resourceUri][?options]
+---------------------------------------------
+
+[[jBPM-URIOptions]]
+URI Options
+^^^^^^^^^^^
+
+
+// component options: START
+The JBPM component has no options.
+// component options: END
+
+
+
+// endpoint options: START
+The JBPM component supports 27 endpoint options which are listed below:
+
+[width="100%",cols="2s,1,1m,1m,5",options="header"]
+|=======================================================================
+| Name | Group | Default | Java Type | Description
+| connectionURL | producer |  | URL | *Required* The URL to the jBPM server.
+| attachmentId | producer |  | Long | attachId to use when retrieving attachments
+| contentId | producer |  | Long | contentId to use when retrieving attachments
+| deploymentId | producer |  | String | *Required* The id of the deployment
+| entities | producer |  | List | The potentialOwners when nominateTask operation is performed
+| event | producer |  | Object | the data associated with this event when signalEvent operation is performed
+| eventType | producer |  | String | the type of event to use when signalEvent operation is performed
+| identifier | producer |  | String | identifier the global identifier
+| language | producer |  | String | The language to use when filtering user tasks
+| maxNumber | producer |  | Integer | the maximum number of rules that should be fired
+| operation | producer | startProcess | String | The operation to perform
+| processId | producer |  | String | the id of the process that should be acted upon
+| processInstanceId | producer |  | Long | the id of the process instance
+| statuses | producer |  | List | The list of status to use when filtering tasks
+| targetUserId | producer |  | String | The targetUserId used when delegating a task
+| task | producer |  | Task | The task instance to use with task operations
+| taskId | producer |  | Long | the id of the task
+| timeout | producer |  | Integer | A timeout value
+| userId | producer |  | String | userId to use with task operations
+| value | producer |  | Object | the value to assign to the global identifier
+| workItemId | producer |  | Long | the id of the work item
+| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange
+| extraJaxbClasses | advanced |  | Class[] | To load additional classes when working with XML
+| parameters | advanced |  | Map | the variables that should be set for various operations
+| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
+| password | security |  | String | Password for authentication
+| userName | security |  | String | Username for authentication
+|=======================================================================
+// endpoint options: END
+
+
+[[jBPM-MessageHeaders]]
+Message Headers
+^^^^^^^^^^^^^^^
+
+[width="100%",cols="10%,10%,10%,70%",options="header",]
+|=======================================================================
+|Name |Default Value |Type |Description
+
+|CamelJBPMValue |null |Object |the value to assign to the global identifier
+
+|CamelJBPMOperation |PUT |String |The operation to perform. The operation name must be prefixed with
+CamelJBPMOperation and the name of the operation. See the full list
+above. It is case insensitive.
+
+|CamelJBPMProcessId |null |String |the id of the process that should be acted upon
+
+|CamelJBPMProcessInstanceId |0 |Long |the id of the process instance
+
+|CamelJBPMParameters |null |Map<String, Object> |the variables that should be set for various operations
+
+|CamelJBPMEventType |null |String |the type of event to use when signalEvent operation is performed
+
+|CamelJBPMEvent |null |String |The type of the received event. Possible values defined here
+org.infinispan.notifications.cachelistener.event.Event.Type
+
+|CamelJBPMMaxNumber |null |Integer |the maximum number of rules that should be fired
+
+|CamelJBPMIdentifier |null |long |identifier the global identifier
+
+|CamelJBPMWorkItemId |0 |Long |the id of the work item
+
+|CamelJBPMTaskId |0 |Long |the id of the task
+
+|CamelJBPMTask |null |Task |The task instance to use with task operations
+
+|CamelJBPMUserId |null |String |userId to use with task operations
+
+|CamelJBPMTargetUserId |null |String |The targetUserId used when delegating a task
+
+|CamelJBPMLanguage |null |String |The language to use when filtering user tasks
+
+|CamelJBPMAttachmentId |0 |Long |attachId to use when retrieving attachments
+
+|CamelJBPMContentId |0 |Long |contentId to use when retrieving attachments
+
+|CamelJBPMEntityList |null |List<OrganizationalEntity> |The potentialOwners when nominateTask operation is performed
+
+|CamelJBPMStatusList |null |List<Status> |The list of status to use when filtering tasks
+|=======================================================================
+
+[[jBPM-Example]]
+Example
+^^^^^^^
+
+Below is an example route that starts a business process with id
+project1.integration-test and deploymentId
+org.kie.example:project1:1.0.0-SNAPSHOT
+
+[source,java]
+----------------------------------------------------------------------------------------------
+from("direct:start")
+        .setHeader(JBPMConstants.PROCESS_ID, constant("project1.integration-test"))
+        .to("jbpm:http://localhost:8080/business-central?userName=bpmsAdmin&password=pa$word1"
+ + "&deploymentId=org.kie.example:project1:1.0.0-SNAPSHOT");
+----------------------------------------------------------------------------------------------
+
+[[jBPM-SeeAlso]]
+See Also
+^^^^^^^^
+
+* link:configuring-camel.html[Configuring Camel]
+* link:component.html[Component]
+* link:endpoint.html[Endpoint]
+* link:getting-started.html[Getting Started]
+
+ 

http://git-wip-us.apache.org/repos/asf/camel/blob/44c7bd69/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index 677f3df..dddc515 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -165,6 +165,7 @@
     * [JMS](jms.adoc)
     * [JMX](jmx.adoc)
     * [JSON](json.adoc)
+    * [Jbpm](jbpm.adoc)
     * [Kafka](kafka.adoc)
     * [Metrics](metrics.adoc)
     * [Mock](mock.adoc)