Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Fri Jan  9 11:23:32 
2015
@@ -4126,11 +4126,11 @@ While not actual tutorials you might fin
                     </div>
     </div>
 <h2 id="BookInOnePage-Preface">Preface</h2><p>This tutorial aims to guide the 
reader through the stages of creating a project which uses Camel to facilitate 
the routing of messages from a JMS queue to a <a shape="rect" 
class="external-link" href="http://www.springramework.org"; 
rel="nofollow">Spring</a> service. The route works in a synchronous fashion 
returning a response to the client.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1420798789231 {padding: 0px;}
-div.rbtoc1420798789231 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1420798789231 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1420802372656 {padding: 0px;}
+div.rbtoc1420802372656 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1420802372656 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1420798789231">
+/*]]>*/</style></p><div class="toc-macro rbtoc1420802372656">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-JmsRemoting-TutorialonSpringRemotingwithJMS">Tutorial on Spring 
Remoting with JMS</a></li><li><a shape="rect" 
href="#Tutorial-JmsRemoting-Preface">Preface</a></li><li><a shape="rect" 
href="#Tutorial-JmsRemoting-Prerequisites">Prerequisites</a></li><li><a 
shape="rect" 
href="#Tutorial-JmsRemoting-Distribution">Distribution</a></li><li><a 
shape="rect" href="#Tutorial-JmsRemoting-About">About</a></li><li><a 
shape="rect" href="#Tutorial-JmsRemoting-CreatetheCamelProject">Create the 
Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-JmsRemoting-UpdatethePOMwithDependencies">Update the POM with 
Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#Tutorial-JmsRemoting-WritingtheServer">Writing 
the Server</a>
@@ -6316,11 +6316,11 @@ So we completed the last piece in the pi
 
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1420798791397 {padding: 0px;}
-div.rbtoc1420798791397 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1420798791397 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1420802377586 {padding: 0px;}
+div.rbtoc1420802377586 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1420802377586 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1420798791397">
+/*]]>*/</style><div class="toc-macro rbtoc1420802377586">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-TutorialusingAxis1.4withApacheCamel">Tutorial using 
Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-Prerequisites">Prerequisites</a></li><li><a 
shape="rect" 
href="#Tutorial-AXIS-Camel-Distribution">Distribution</a></li><li><a 
shape="rect" 
href="#Tutorial-AXIS-Camel-Introduction">Introduction</a></li><li><a 
shape="rect" href="#Tutorial-AXIS-Camel-SettinguptheprojecttorunAxis">Setting 
up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-Maven2">Maven 2</a></li><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-wsdl">wsdl</a></li><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-ConfiguringAxis">Configuring Axis</a></li><li><a 
shape="rect" href="#Tutorial-AXIS-Camel-RunningtheExample">Running the 
Example</a></li></ul>
@@ -12675,7 +12675,7 @@ from(&quot;direct:key-in-header-decrypt&
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 &lt;crypto id=&quot;nokey&quot; algorithm=&quot;DES&quot; /&gt;
 ]]></script>
-</div></div><h3 id="BookInOnePage-PGPDataFormatOptions">PGPDataFormat 
Options</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>keyUserid</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The user ID of the key in the 
PGP keyring used during encryption. See also option <code>keyUserids</code>. 
Can also be only a part of a user ID. For example, if the user ID is "Test User 
&lt;t...@camel.com&gt;" then you can use the part "Test User" or 
"&lt;t...@camel.com&gt;" 
 to address the user ID.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>keyUserids</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>List&lt;String&gt;</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since camel 
2.12.2</strong>: PGP allows to encrypt the symmetric key by several asymmetric 
public receiver keys. You can specify here the User IDs or parts of User IDs of 
several public keys contained in the PGP keyring. If you just have one User ID, 
then you can also use the option <code>keyUserid</code>. The User ID specified 
in <code>keyUserid</code> and the User IDs in <code>keyUserids</code> will be 
merged together and the corresponding public keys will be used for the 
encryption.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>password</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>
 <code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Password used when opening the private key (not used 
for encryption).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>keyFileName</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Filename of the keyring; must be accessible 
as a classpath resource (but you can specify a location in the file system by 
using the "file:" prefix).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>encryptionKeyRing</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>byte[]</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="conflue
 nceTd"><p><strong>Since camel 2.12.1</strong>; encryption keyring; you can not 
set the keyFileName and encryptionKeyRing at the same 
time.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signatureKeyUserid</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; 
optional User ID of the key in the PGP keyring used for signing (during 
encryption) or signature verification (during decryption). During the signature 
verification process the specified User ID restricts the public keys from the 
public keyring which can be used for the verification. If no User ID is 
specified for the signature verficiation then any public key in the public 
keyring can be used for the verification. Can also be only a part of a user ID. 
For example, if the user ID is "Test User &lt
 ;t...@camel.com&gt;" then you can use the part "Test User" or 
"&lt;t...@camel.com&gt;" to address the User ID.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signatureKeyUserids</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>List&lt;String&gt;</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since Camel 2.12.3</strong>; 
optional list of User IDs of the key in the PGP keyring used for signing 
(during encryption) or signature verification (during decryption). You can 
specify here the User IDs or parts of User IDs of several keys contained in the 
PGP keyring. If you just have one User ID, then you can also use the option 
<code>keyUserid</code>. The User ID specified in <code>keyUserid</code> and the 
User IDs in <code>keyUserids</code> will be merged together and the 
corresponding keys will be used for the signing or signature veri
 fication. If the specified User IDs reference several keys then for each key a 
signature is added to the PGP result during the encryption-signing process. In 
the decryption-verifying process the list of User IDs restricts the list of 
public keys which can be used for signature verification. If the list of User 
IDs is empty then any public key in the public keyring can be used for the 
signature verification.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signaturePassword</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; 
optional password used when opening the private key used for signing (during 
encryption).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signatureKeyFileName</code></p></td><td 
colspan="1" rowspan="1" cl
 ass="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; optional filename 
of the keyring to use for signing (during encryption) or for signature 
verification (during decryption); must be accessible as a classpath resource 
(but you can specify a location in the file system by using the "file:" 
prefix).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signatureKeyRing</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>byte[]</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since camel 2.12.1</strong>; 
signature keyring; you can not set the signatureKeyFileName and 
signatureKeyRing at the same time.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>algor
 ithm</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>int</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>SymmetricKeyAlgorithmTags.CAST5</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since camel 
2.12.2</strong>; symmetric key encryption algorithm; possible values are 
defined in <code>org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags</code>; for 
example 2 (= TRIPLE DES), 3 (= CAST5), 4 (= BLOWFISH), 6 (= DES), 7 (= 
AES_128). Only relevant for encrypting.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>compressionAlgorithm</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CompressionAlgorithmTags.ZIP</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since camel 
2.12.2</strong>; compression algorithm; possible values are defined in 
<code>org.bouncycastle.bcpg.C
 ompressionAlgorithmTags</code>; for example 0 (= UNCOMPRESSED), 1 (= ZIP), 2 
(= ZLIB), 3 (= BZIP2). Only relevant for encrypting.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>hashAlgorithm</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>HashAlgorithmTags.SHA1</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since camel 
2.12.2</strong>: signature hash algorithm; possible values are defined in 
<code>org.bouncycastle.bcpg.HashAlgorithmTags</code>; for example 2 (= SHA1), 8 
(= SHA256), 9 (= SHA384), 10 (= SHA512), 11 (=SHA224). Only relevant for 
signing.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>armored</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan=
 "1" class="confluenceTd"><p>This option will cause PGP to base64 encode the 
encrypted text, making it available for copy/paste, etc.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>integrity</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Adds an integrity check/sign 
into the encryption file.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>passphraseAccessor</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code><a shape="rect" class="external-link" 
href="https://github.com/apache/camel/blob/master/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/PGPPassphraseAccessor.java";
 rel="nofollow">PGPPassphraseAccessor</a></code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colsp
 an="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.12.2</strong>; provides passphrases corresponding to user Ids. If no 
passpharase can be found from the option <code>password</code> or 
<code>signaturePassword</code> and from the headers 
<code>CamelPGPDataFormatKeyPassword</code> or 
<code>CamelPGPDataFormatSignatureKeyPassword</code> then the passphrase is 
fetched from the passphrase accessor. You provide a bean which implements the 
interface <a shape="rect" class="external-link" 
href="https://github.com/apache/camel/blob/master/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/PGPPassphraseAccessor.java";
 rel="nofollow">PGPPassphraseAccessor</a>. A default implementation is given by 
<a shape="rect" class="external-link" 
href="https://github.com/apache/camel/blob/master/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/DefaultPGPPassphraseAccessor.java";
 rel="nofollow">DefaultPGPPassphraseAccessor</a>. The passphrase accessor i
 s especially useful in the decrypt case; see chapter 'PGP Decrypting/Verifying 
of Messages Encrypted/Signed by Different Private/Public Keys' 
below.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signatureVerificationOption</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>"optional"</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since camel 2.13.0</strong>: 
controls the behavior for verifying the signature during unmarshaling. There 
are three values possible:</p><ul><li><code>"optional"</code>: The PGP message 
may or may not contain signatures; if it does contain signatures, then a 
signature verification is executed. Use the constant 
PGPKeyAccessDataFormat.SIGNATURE_VERIFICATION_OPTION_OPTIONAL.</li><li><code>"required"</code>:
 The PGP message must contain at least one signature; if this is not the case 
an exception (PGPExcep
 tion) is thrown. A signature verification is executed. Use the constant 
PGPKeyAccessDataFormat.SIGNATURE_VERIFICATION_OPTION_REQUIRED.</li><li><code>"ignore"</code>:
 Contained signatures in the PGP message are ignored; no signature verification 
is executed. Use the constant 
PGPKeyAccessDataFormat.SIGNATURE_VERIFICATION_OPTION_IGNORE.</li><li><code>"no_signature_allowed"</code>:
 The PGP message must not contain a signature; otherwize an exception 
(PGPException) is thrown. Use the constant 
PGPKeyAccessDataFormat.SIGNATURE_VERIFICATION_OPTION_NO_SIGNATURE_ALLOWED.</li></ul></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd"><code>FileName</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>String</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>"_CONSOLE"</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since camel 
2.15.0:</strong> Sets the file name for the literal data packet. Can be 
overwritten by the&#160; header {@lin
 k Exchange#FILE_NAME}.</p><p>"<code>_CONSOLE</code>" indicates that the 
message is considered to be "for your eyes only". This advises that the message 
data is unusually sensitive, and the receiving program should process it more 
carefully, perhaps avoiding storing the received data to disk, for example.Only 
used for marshaling.</p></td></tr></tbody></table></div><h3 
id="BookInOnePage-PGPDataFormatMessageHeaders">PGPDataFormat Message 
Headers</h3><p>You can override the PGPDataFormat options by applying below 
headers into message dynamically.</p><p>&#160;</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatKeyFileName</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>
 <code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; filename of the 
keyring; will override existing setting directly on the 
PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatEncryptionKeyRing</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>byte[]</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.12.1</strong>; the encryption 
keyring; will override existing setting directly on the 
PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatKeyUserid</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.11.0</strong>; the User ID of the key in the PGP keyring; will override 
existing setting directly on the PGPDataFormat.</p></td></tr><tr><td
  colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatKeyUserids</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>List&lt;String&gt;</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since camel 2.12.2</strong>: the 
User IDs of the key in the PGP keyring; will override existing setting directly 
on the PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatKeyPassword</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.11.0</strong>; password used when opening the private key; will override 
existing setting directly on the PGPDataFormat.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatSignatureKeyFileName</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td col
 span="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.11.0</strong>; filename of the signature keyring; will override existing 
setting directly on the PGPDataFormat.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatSignatureKeyRing</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>byte[]</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.12.1</strong>; the signature 
keyring; will override existing setting directly on the 
PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatSignatureKeyUserid</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; the User ID of the 
signature key in the PGP keyring; will override existing setting directly on 
the PGPDataFormat.</p></td></tr><tr><td colspan
 ="1" rowspan="1" 
class="confluenceTd"><code>CamelPGPDataFormatSignatureKeyUserids</code></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>List&lt;String&gt;</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>Since Camel 2.12.3</strong>; the User 
IDs of the signature keys in the PGP keyring; will override existing setting 
directly on the PGPDataFormat.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatSignatureKeyPassword</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; password used when 
opening the signature private key; will override existing setting directly on 
the PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatEncryptionAlgorithm</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.12.2</strong>; symmetric key encryption algorithm; will override existing 
setting directly on the PGPDataFormat.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatSignatureHashAlgorithm</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.12.2</strong>; signature hash algorithm; will override existing setting 
directly on the PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatCompressionAlgorithm</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.12.2</strong>; compression algorithm; will override existing setting directly 
on the PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" c
 
lass="confluenceTd"><p><code>CamelPGPDataFormatNumberOfEncryptionKeys</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><code>Integer</code></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><strong>Since</strong>&#160;<strong>Camel 2.12.3;&#160; 
</strong>number of public keys used for encrypting the symmectric key, set by 
PGPDataFormat during encryptiion process</td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatNumberOfSigningKeys</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><code>Integer</code></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><strong>Since</strong>&#160;<strong>Camel 2.12.3;&#160; 
</strong>number of private keys used for creating signatures, set by 
PGPDataFormat during signing process</td></tr></tbody></table></div><h3 
id="BookInOnePage-EncryptingwithPGPDataFormat">Encrypting with 
PGPDataFormat</h3><p>The following sample uses the popular PGP format for 
encrypting/decrypting files using
  the <a shape="rect" class="external-link" 
href="http://www.bouncycastle.org/java.html"; rel="nofollow">Bouncy Castle Java 
libraries</a>:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><h3 id="BookInOnePage-PGPDataFormatOptions">PGPDataFormat 
Options</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>keyUserid</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The user ID of the key in the 
PGP keyring used during encryption. See also option <code>keyUserids</code>. 
Can also be only a part of a user ID. For example, if the user ID is "Test User 
&lt;t...@camel.com&gt;" then you can use the part "Test User" or 
"&lt;t...@camel.com&gt;" 
 to address the user ID.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>keyUserids</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>List&lt;String&gt;</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since camel 
2.12.2</strong>: PGP allows to encrypt the symmetric key by several asymmetric 
public receiver keys. You can specify here the User IDs or parts of User IDs of 
several public keys contained in the PGP keyring. If you just have one User ID, 
then you can also use the option <code>keyUserid</code>. The User ID specified 
in <code>keyUserid</code> and the User IDs in <code>keyUserids</code> will be 
merged together and the corresponding public keys will be used for the 
encryption.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>password</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>
 <code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Password used when opening the private key (not used 
for encryption).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>keyFileName</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Filename of the keyring; must be accessible 
as a classpath resource (but you can specify a location in the file system by 
using the "file:" prefix).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>encryptionKeyRing</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>byte[]</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="conflue
 nceTd"><p><strong>Since camel 2.12.1</strong>; encryption keyring; you can not 
set the keyFileName and encryptionKeyRing at the same 
time.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signatureKeyUserid</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; 
optional User ID of the key in the PGP keyring used for signing (during 
encryption) or signature verification (during decryption). During the signature 
verification process the specified User ID restricts the public keys from the 
public keyring which can be used for the verification. If no User ID is 
specified for the signature verficiation then any public key in the public 
keyring can be used for the verification. Can also be only a part of a user ID. 
For example, if the user ID is "Test User &lt
 ;t...@camel.com&gt;" then you can use the part "Test User" or 
"&lt;t...@camel.com&gt;" to address the User ID.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signatureKeyUserids</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>List&lt;String&gt;</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since Camel 2.12.3</strong>; 
optional list of User IDs of the key in the PGP keyring used for signing 
(during encryption) or signature verification (during decryption). You can 
specify here the User IDs or parts of User IDs of several keys contained in the 
PGP keyring. If you just have one User ID, then you can also use the option 
<code>keyUserid</code>. The User ID specified in <code>keyUserid</code> and the 
User IDs in <code>keyUserids</code> will be merged together and the 
corresponding keys will be used for the signing or signature veri
 fication. If the specified User IDs reference several keys then for each key a 
signature is added to the PGP result during the encryption-signing process. In 
the decryption-verifying process the list of User IDs restricts the list of 
public keys which can be used for signature verification. If the list of User 
IDs is empty then any public key in the public keyring can be used for the 
signature verification.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signaturePassword</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; 
optional password used when opening the private key used for signing (during 
encryption).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signatureKeyFileName</code></p></td><td 
colspan="1" rowspan="1" cl
 ass="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; optional filename 
of the keyring to use for signing (during encryption) or for signature 
verification (during decryption); must be accessible as a classpath resource 
(but you can specify a location in the file system by using the "file:" 
prefix).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signatureKeyRing</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>byte[]</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since camel 2.12.1</strong>; 
signature keyring; you can not set the signatureKeyFileName and 
signatureKeyRing at the same time.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>algor
 ithm</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>int</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>SymmetricKeyAlgorithmTags.CAST5</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since camel 
2.12.2</strong>; symmetric key encryption algorithm; possible values are 
defined in <code>org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags</code>; for 
example 2 (= TRIPLE DES), 3 (= CAST5), 4 (= BLOWFISH), 6 (= DES), 7 (= 
AES_128). Only relevant for encrypting.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>compressionAlgorithm</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CompressionAlgorithmTags.ZIP</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since camel 
2.12.2</strong>; compression algorithm; possible values are defined in 
<code>org.bouncycastle.bcpg.C
 ompressionAlgorithmTags</code>; for example 0 (= UNCOMPRESSED), 1 (= ZIP), 2 
(= ZLIB), 3 (= BZIP2). Only relevant for encrypting.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>hashAlgorithm</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>HashAlgorithmTags.SHA1</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since camel 
2.12.2</strong>: signature hash algorithm; possible values are defined in 
<code>org.bouncycastle.bcpg.HashAlgorithmTags</code>; for example 2 (= SHA1), 8 
(= SHA256), 9 (= SHA384), 10 (= SHA512), 11 (=SHA224). Only relevant for 
signing.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>armored</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan=
 "1" class="confluenceTd"><p>This option will cause PGP to base64 encode the 
encrypted text, making it available for copy/paste, etc.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>integrity</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Adds an integrity check/sign 
into the encryption file.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>passphraseAccessor</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code><a shape="rect" class="external-link" 
href="https://github.com/apache/camel/blob/master/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/PGPPassphraseAccessor.java";
 rel="nofollow">PGPPassphraseAccessor</a></code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colsp
 an="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.12.2</strong>; provides passphrases corresponding to user Ids. If no 
passpharase can be found from the option <code>password</code> or 
<code>signaturePassword</code> and from the headers 
<code>CamelPGPDataFormatKeyPassword</code> or 
<code>CamelPGPDataFormatSignatureKeyPassword</code> then the passphrase is 
fetched from the passphrase accessor. You provide a bean which implements the 
interface <a shape="rect" class="external-link" 
href="https://github.com/apache/camel/blob/master/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/PGPPassphraseAccessor.java";
 rel="nofollow">PGPPassphraseAccessor</a>. A default implementation is given by 
<a shape="rect" class="external-link" 
href="https://github.com/apache/camel/blob/master/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/DefaultPGPPassphraseAccessor.java";
 rel="nofollow">DefaultPGPPassphraseAccessor</a>. The passphrase accessor i
 s especially useful in the decrypt case; see chapter 'PGP Decrypting/Verifying 
of Messages Encrypted/Signed by Different Private/Public Keys' 
below.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>signatureVerificationOption</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>"optional"</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since camel 2.13.0</strong>: 
controls the behavior for verifying the signature during unmarshaling. There 
are three values possible:</p><ul><li><code>"optional"</code>: The PGP message 
may or may not contain signatures; if it does contain signatures, then a 
signature verification is executed. Use the constant 
PGPKeyAccessDataFormat.SIGNATURE_VERIFICATION_OPTION_OPTIONAL.</li><li><code>"required"</code>:
 The PGP message must contain at least one signature; if this is not the case 
an exception (PGPExcep
 tion) is thrown. A signature verification is executed. Use the constant 
PGPKeyAccessDataFormat.SIGNATURE_VERIFICATION_OPTION_REQUIRED.</li><li><code>"ignore"</code>:
 Contained signatures in the PGP message are ignored; no signature verification 
is executed. Use the constant 
PGPKeyAccessDataFormat.SIGNATURE_VERIFICATION_OPTION_IGNORE.</li><li><code>"no_signature_allowed"</code>:
 The PGP message must not contain a signature; otherwise an exception 
(PGPException) is thrown. Use the constant 
PGPKeyAccessDataFormat.SIGNATURE_VERIFICATION_OPTION_NO_SIGNATURE_ALLOWED.</li></ul></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd"><code>FileName</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>String</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>"_CONSOLE"</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since camel 
2.15.0:</strong> Sets the file name for the literal data packet. Can be 
overwritten by the&#160; header {@lin
 k Exchange#FILE_NAME}.</p><p>"<code>_CONSOLE</code>" indicates that the 
message is considered to be "for your eyes only". This advises that the message 
data is unusually sensitive, and the receiving program should process it more 
carefully, perhaps avoiding storing the received data to disk, for example.Only 
used for marshaling.</p></td></tr></tbody></table></div><h3 
id="BookInOnePage-PGPDataFormatMessageHeaders">PGPDataFormat Message 
Headers</h3><p>You can override the PGPDataFormat options by applying below 
headers into message dynamically.</p><p>&#160;</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatKeyFileName</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>
 <code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; filename of the 
keyring; will override existing setting directly on the 
PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatEncryptionKeyRing</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>byte[]</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.12.1</strong>; the encryption 
keyring; will override existing setting directly on the 
PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatKeyUserid</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.11.0</strong>; the User ID of the key in the PGP keyring; will override 
existing setting directly on the PGPDataFormat.</p></td></tr><tr><td
  colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatKeyUserids</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>List&lt;String&gt;</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Since camel 2.12.2</strong>: the 
User IDs of the key in the PGP keyring; will override existing setting directly 
on the PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatKeyPassword</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.11.0</strong>; password used when opening the private key; will override 
existing setting directly on the PGPDataFormat.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatSignatureKeyFileName</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td col
 span="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.11.0</strong>; filename of the signature keyring; will override existing 
setting directly on the PGPDataFormat.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatSignatureKeyRing</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>byte[]</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.12.1</strong>; the signature 
keyring; will override existing setting directly on the 
PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatSignatureKeyUserid</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; the User ID of the 
signature key in the PGP keyring; will override existing setting directly on 
the PGPDataFormat.</p></td></tr><tr><td colspan
 ="1" rowspan="1" 
class="confluenceTd"><code>CamelPGPDataFormatSignatureKeyUserids</code></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>List&lt;String&gt;</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>Since Camel 2.12.3</strong>; the User 
IDs of the signature keys in the PGP keyring; will override existing setting 
directly on the PGPDataFormat.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatSignatureKeyPassword</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Since Camel 2.11.0</strong>; password used when 
opening the signature private key; will override existing setting directly on 
the PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatEncryptionAlgorithm</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.12.2</strong>; symmetric key encryption algorithm; will override existing 
setting directly on the PGPDataFormat.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatSignatureHashAlgorithm</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.12.2</strong>; signature hash algorithm; will override existing setting 
directly on the PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatCompressionAlgorithm</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Since Camel 
2.12.2</strong>; compression algorithm; will override existing setting directly 
on the PGPDataFormat.</p></td></tr><tr><td colspan="1" rowspan="1" c
 
lass="confluenceTd"><p><code>CamelPGPDataFormatNumberOfEncryptionKeys</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><code>Integer</code></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><strong>Since</strong>&#160;<strong>Camel 2.12.3;&#160; 
</strong>number of public keys used for encrypting the symmectric key, set by 
PGPDataFormat during encryptiion process</td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelPGPDataFormatNumberOfSigningKeys</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><code>Integer</code></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><strong>Since</strong>&#160;<strong>Camel 2.12.3;&#160; 
</strong>number of private keys used for creating signatures, set by 
PGPDataFormat during signing process</td></tr></tbody></table></div><h3 
id="BookInOnePage-EncryptingwithPGPDataFormat">Encrypting with 
PGPDataFormat</h3><p>The following sample uses the popular PGP format for 
encrypting/decrypting files using
  the <a shape="rect" class="external-link" 
href="http://www.bouncycastle.org/java.html"; rel="nofollow">Bouncy Castle Java 
libraries</a>:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 // Public Key FileName
 String keyFileName = getKeyFileName();
@@ -19174,11 +19174,11 @@ template.send(&quot;direct:alias-verify&
                     </div>
     </div>
 <p>The <strong>cxf:</strong> component provides integration with <a 
shape="rect" href="http://cxf.apache.org";>Apache CXF</a> for connecting to 
JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1420798824139 {padding: 0px;}
-div.rbtoc1420798824139 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1420798824139 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1420802461821 {padding: 0px;}
+div.rbtoc1420802461821 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1420802461821 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1420798824139">
+/*]]>*/</style></p><div class="toc-macro rbtoc1420802461821">
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-CXFComponent">CXF 
Component</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-URIformat">URI 
format</a></li><li><a shape="rect" href="#CXF-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#CXF-Thedescriptionsofthedataformats">The descriptions of the 
dataformats</a>
@@ -22676,7 +22676,7 @@ hibernate:[entityClassName][?options]
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookInOnePage-HL7MLLPprotocol">HL7 MLLP 
protocol</h3><p>HL7 is often used with the HL7 MLLP protocol, which is a text 
based TCP socket based protocol. This component ships with a Mina and Netty4 
Codec that conforms to the MLLP protocol so you can easily expose an HL7 
listener accepting HL7 requests over the TCP transport layer. To expose a HL7 
listener service, the <a shape="rect" href="mina2.html">camel-mina2</a>&#160;or 
<a shape="rect" href="netty4.html">camel-netty4</a> component is used with the 
<code>HL7MLLPCodec</code>&#160;(mina2) or 
<code>HL7MLLPNettyDecoder/HL7MLLPNettyEncoder</code> (Netty4).</p><p>HL7 MLLP 
codec can be configured as follows:</p><div class="confluenceTableSmall"><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></
 tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>startByte</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0x0b</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The start byte spanning the HL7 
payload.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>endByte1</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0x1c</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The first end byte spanning the HL7 
payload.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>endByte2</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0x0d</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The 2nd end byte spanning the HL7 
payload.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>charset</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>JVM Default</p></td><td colspan="1" rows
 pan="1" class="confluenceTd"><p>The encoding (a <a shape="rect" 
class="external-link" 
href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html"; 
rel="nofollow">charset name</a>) to use for the codec. If not provided, Camel 
will use the <a shape="rect" class="external-link" 
href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html#defaultCharset()"
 rel="nofollow">JVM default Charset</a>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><code>produceString</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>true</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>(Camel 2.14.1)</strong> If true, the 
codec creates a string using the defined charset. If false, the codec sends a 
plain byte array into the route, so that the HL7 Data Format can determine the 
actual charset from the HL7 message content.</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><code>convertLFtoCR</code></td><td colspan=
 "1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" 
rowspan="1" class="confluenceTd">Will convert <code>\n</code> to 
<code>\r</code> (<code>0x0d</code>, 13 decimal) as HL7 stipulates 
<code>\r</code> as segment terminators. The HAPI library requires the use of 
<code>\r</code>.</td></tr></tbody></table></div></div><h4 
id="BookInOnePage-ExposinganHL7listenerusingMina">Exposing an HL7 listener 
using Mina</h4><p>In the Spring XML file, we configure a mina2 endpoint to 
listen for HL7 requests using TCP on port <code>8888</code>:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookInOnePage-HL7MLLPprotocol">HL7 MLLP 
protocol</h3><p>HL7 is often used with the HL7 MLLP protocol, which is a text 
based TCP socket based protocol. This component ships with a Mina and Netty4 
Codec that conforms to the MLLP protocol so you can easily expose an HL7 
listener accepting HL7 requests over the TCP transport layer. To expose a HL7 
listener service, the <a shape="rect" href="mina2.html">camel-mina2</a>&#160;or 
<a shape="rect" href="netty4.html">camel-netty4</a> component is used with the 
<code>HL7MLLPCodec</code>&#160;(mina2) or 
<code>HL7MLLPNettyDecoder/HL7MLLPNettyEncoder</code> (Netty4).</p><p>HL7 MLLP 
codec can be configured as follows:</p><div class="confluenceTableSmall"><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></
 tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>startByte</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0x0b</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The start byte spanning the HL7 
payload.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>endByte1</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0x1c</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The first end byte spanning the HL7 
payload.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>endByte2</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0x0d</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The 2nd end byte spanning the HL7 
payload.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>charset</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>JVM Default</p></td><td colspan="1" rows
 pan="1" class="confluenceTd"><p>The encoding (a <a shape="rect" 
class="external-link" 
href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html"; 
rel="nofollow">charset name</a>) to use for the codec. If not provided, Camel 
will use the <a shape="rect" class="external-link" 
href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html#defaultCharset()"
 rel="nofollow">JVM default Charset</a>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><code>produceString</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>true</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>(as of Camel 2.14.1)</strong> If true, 
the codec creates a string using the defined charset. If false, the codec sends 
a plain byte array into the route, so that the HL7 Data Format can determine 
the actual charset from the HL7 message content.</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><code>convertLFtoCR</code></td><td co
 lspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td 
colspan="1" rowspan="1" class="confluenceTd">Will convert <code>\n</code> to 
<code>\r</code> (<code>0x0d</code>, 13 decimal) as HL7 stipulates 
<code>\r</code> as segment terminators. The HAPI library requires the use of 
<code>\r</code>.</td></tr></tbody></table></div></div><h4 
id="BookInOnePage-ExposinganHL7listenerusingMina">Exposing an HL7 listener 
using Mina</h4><p>In the Spring XML file, we configure a mina2 endpoint to 
listen for HL7 requests using TCP on port <code>8888</code>:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[    &lt;endpoint 
id=&quot;hl7MinaListener&quot; 
uri=&quot;mina2:tcp://localhost:8888?sync=true&amp;amp;codec=#hl7codec&quot;/&gt;
 ]]></script>
 </div></div><p><strong>sync=true</strong> indicates that this listener is 
synchronous and therefore will return a HL7 response to the caller. The HL7 
codec is setup with <strong>codec=#hl7codec</strong>. Note that 
<code>hl7codec</code> is just a Spring bean ID, so it could be named 
<code>mygreatcodecforhl7</code> or whatever. The codec is also set up in the 
Spring XML file:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
@@ -22684,7 +22684,7 @@ hibernate:[entityClassName][?options]
         &lt;property name=&quot;charset&quot; value=&quot;iso-8859-1&quot;/&gt;
     &lt;/bean&gt;
 ]]></script>
-</div></div><p>The endpoint <strong>hl7listener</strong> can then be used in a 
route as a consumer, as this Java DSL example illustrates:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>The endpoint <strong>hl7MinaLlistener</strong> can then be used 
in a route as a consumer, as this Java DSL example illustrates:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[    
from(&quot;hl7MinaListener&quot;).beanRef(&quot;patientLookupService&quot;);
 ]]></script>
 </div></div><p>This is a very simple route that will listen for HL7 and route 
it to a service named <strong>patientLookupService</strong>. This is also 
Spring bean ID, configured in the Spring XML as:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -22705,16 +22705,16 @@ public class PatientLookupService {
         return response
     }
 ]]></script>
-</div></div><h4 
id="BookInOnePage-ExposinganHL7listenerusingNetty(availableasofCamel2.15)">Exposing
 an HL7 listener using Netty (available as of Camel 2.15)</h4><p>In the Spring 
XML file, we configure a netty4 endpoint to listen for HL7 requests using TCP 
on port <code>8888</code>:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><h4 
id="BookInOnePage-ExposinganHL7listenerusingNetty(availablefromCamel2.15onwards)">Exposing
 an HL7 listener using Netty (available from Camel 2.15 onwards)</h4><p>In the 
Spring XML file, we configure a netty4 endpoint to listen for HL7 requests 
using TCP on port <code>8888</code>:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[    &lt;endpoint 
id=&quot;hl7NettyListener&quot; 
uri=&quot;netty4:tcp://localhost:8888?sync=true&amp;amp;encoder=#hl7encoder&amp;amp;decoder=#hl7decoder&quot;/&gt;
 ]]></script>
-</div></div><p><strong>sync=true</strong> indicates that this listener is 
synchronous and therefore will return a HL7 response to the caller. The HL7 
codec is setup with <strong>encoder=#hl7encoder </strong>and<strong> 
decoder=#hl7decoder</strong>. Note that <code>hl7encoder</code> and 
<code>hl7decoder</code> are just bean IDs, so it could be named differently. 
The beans can be set in the Spring XML file:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p><strong>sync=true</strong> indicates that this listener is 
synchronous and therefore will return a HL7 response to the caller. The HL7 
codec is setup with <strong>encoder=#hl7encoder </strong>and<strong> 
decoder=#hl7decoder</strong>. Note that <code>hl7encoder</code> and 
<code>hl7decoder</code> are just bean IDs, so they could be named differently. 
The beans can be set in the Spring XML file:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[    &lt;bean id=&quot;hl7decoder&quot; 
class=&quot;org.apache.camel.component.hl7.HL7MLLPNettyDecoderFactory&quot;/&gt;
     &lt;bean id=&quot;hl7encoder&quot; 
class=&quot;org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory&quot;/&gt;]]></script>
-</div></div><p>The endpoint <strong>hl7listener</strong> can then be used in a 
route as a consumer, as this Java DSL example illustrates:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>The endpoint <strong>hl7NettyListener</strong> can then be used 
in a route as a consumer, as this Java DSL example illustrates:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[    
from(&quot;hl7NettyListener&quot;).beanRef(&quot;patientLookupService&quot;);
 ]]></script>
-</div></div><h3 id="BookInOnePage-HL7Modelusingjava.lang.Stringorbyte[]">HL7 
Model using java.lang.String or byte[]</h3><p>The HL7 MLLP codec uses plain 
String as its data format. Camel uses its <a shape="rect" 
href="type-converter.html">Type Converter</a> to convert to/from strings to the 
HAPI HL7 model objects, but you can use the plain String objects if you prefer, 
for instance if you wish to parse the data yourself.</p><p>As of Camel 2.14.1 
you can also let the codec use a plain&#160;<code>byte[]</code> as its data 
format. The Type Converter is also capable of converting 
the&#160;<code>byte[]</code> to/from HAPI HL7 model objects.</p><h3 
id="BookInOnePage-HL7v2ModelusingHAPI">HL7v2 Model using HAPI</h3><p>The HL7v2 
model uses Java objects from the HAPI library. Using this library, you can 
encode and decode from the EDI format (ER7) that is mostly used with 
HL7v2.</p><p>The sample below is a request to lookup a patient with the patient 
ID <code>0101701234</code>.</p><div class="c
 ode panel pdl" style="border-width: 1px;"><div class="codeContent panelContent 
pdl">
+</div></div><h3 id="BookInOnePage-HL7Modelusingjava.lang.Stringorbyte[]">HL7 
Model using java.lang.String or byte[]</h3><p>The HL7 MLLP codec uses plain 
String as its data format. Camel uses its <a shape="rect" 
href="type-converter.html">Type Converter</a> to convert to/from strings to the 
HAPI HL7 model objects, but you can use the plain String objects if you prefer, 
for instance if you wish to parse the data yourself.</p><p>As of Camel 2.14.1 
you can also let both the Mina and Netty codecs use a 
plain&#160;<code>byte[]</code> as its data format by setting the 
<code>produceString</code> property to false. The Type Converter is also 
capable of converting the&#160;<code>byte[]</code> to/from HAPI HL7 model 
objects.</p><h3 id="BookInOnePage-HL7v2ModelusingHAPI">HL7v2 Model using 
HAPI</h3><p>The HL7v2 model uses Java objects from the HAPI library. Using this 
library, you can encode and decode from the EDI format (ER7) that is mostly 
used with HL7v2.</p><p>The sample below is a request 
 to lookup a patient with the patient ID <code>0101701234</code>.</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[MSH|^~\\&amp;|MYSENDER|MYRECEIVER|MYAPPLICATION||200612211200||QRY^A19|1234|P|2.4
 QRD|200612211200|R|I|GetPatient|||1^RD|0101701234|DEM||
 ]]></script>

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.


Reply via email to