Author: buildbot Date: Thu Nov 13 11:20:48 2014 New Revision: 929052 Log: Production update by buildbot for camel
Modified: websites/production/camel/content/book-dataformat-appendix.html websites/production/camel/content/book-in-one-page.html websites/production/camel/content/cache/main.pageCache websites/production/camel/content/camel-2150-release.html websites/production/camel/content/xmlsecurity-dataformat.html Modified: websites/production/camel/content/book-dataformat-appendix.html ============================================================================== --- websites/production/camel/content/book-dataformat-appendix.html (original) +++ websites/production/camel/content/book-dataformat-appendix.html Thu Nov 13 11:20:48 2014 @@ -2069,66 +2069,14 @@ public class BindyComplexCsvUnmarshallTe </dependency> ]]></script> </div></div> -<h2 id="BookDataFormatAppendix-XMLSecurityDataFormat">XMLSecurity Data Format</h2> - -<p>The XMLSecurity Data Format facilitates encryption and decryption of XML payloads at the Document, Element, and Element Content levels (including simultaneous multi-node encryption/decryption using XPath). To sign messages using the XML Signature specification, please see the Camel XML Security <a shape="rect" href="xml-security-component.html">component</a>.</p> - -<p>The encryption capability is based on formats supported using the Apache XML Security (Santuario) project. Symmetric encryption/decryption is currently supported using Triple-DES and AES (128, 192, and 256) encryption formats. Additional formats can be easily added later as needed. This capability allows Camel users to encrypt/decrypt payloads while being dispatched or received along a route.</p> - -<p><strong>Available as of Camel 2.9</strong><br clear="none"> -The XMLSecurity Data Format supports asymmetric key encryption. In this encryption model a symmetric key is generated and used to perform XML content encryption or decryption. This "content encryption key" is then itself encrypted using an asymmetric encryption algorithm that leverages the recipient's public key as the "key encryption key". Use of an asymmetric key encryption algorithm ensures that only the holder of the recipient's private key can access the generated symmetric encryption key. Thus, only the private key holder can decode the message. The XMLSecurity Data Format handles all of the logic required to encrypt and decrypt the message content and encryption key(s) using asymmetric key encryption.</p> - -<p>The XMLSecurity Data Format also has improved support for namespaces when processing the XPath queries that select content for encryption. A namespace definition mapping can be included as part of the data format configuration. This enables true namespace matching, even if the prefix values in the XPath query and the target xml document are not equivalent strings.</p> - -<h3 id="BookDataFormatAppendix-BasicOptions">Basic Options</h3> - -<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Option </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>secureTag</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 XPath reference to the XML Element selected for encryption/decryption. If no tag is specified, the entire payload is encrypted/decrypted. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>secureTagContents</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A boolean value to specify whether the XML Element is to be encrypted or the contents of the XML Element </p> -<ul><li><code>false</code> = Element Level</li><li><code>true</code> = Element Content Level</li></ul> -</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>passPhrase</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A String used as passPhrase to encrypt/decrypt content. The passPhrase has to be provided. If no passPhrase is specified, a default passPhrase is used. The passPhrase needs to be put together in conjunction with the appropriate encryption algorithm. For example using <code>TRIPLEDES</code> the passPhase can be a <code>"Only another 24 Byte key"</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>xmlCipherAlgorithm</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>TRIPLEDES</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The cipher algorithm to be used for encryption/decryption of the XML message content. The available choices are:</p> -<ul><li><code>XMLCipher.TRIPLEDES</code></li><li><code>XMLCipher.AES_128</code></li><li><code>XMLCipher.AES_128_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_192</code></li><li><code>XMLCipher.AES_192_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_256</code></li><li><code>XMLCipher.AES_256_GCM</code> <strong>Camel 2.12</strong></li></ul> -</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>namespaces</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A map of namespace values indexed by prefix. The index values must match the prefixes used in the <code>secureTag</code> XPath query. </p></td></tr></tbody></table></div> - - -<h3 id="BookDataFormatAppendix-AsymmetricEncryptionOptions">Asymmetric Encryption Options</h3> - -<p>These options can be applied in addition to relevant the Basic options to use asymmetric key encryption. </p> - -<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Option </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>recipientKeyAlias</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 key alias to be used when retrieving the recipient's public or private key from a KeyStore when performing asymmetric key encryption or decryption. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>keyCipherAlgorithm</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12</strong> <code>XMLCipher.RSA_OAEP</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The cipher algorithm to be used for encrypti on/decryption of the asymmetric key. The available choices are: </p> -<ul><li><code>XMLCipher.RSA_v1dot5</code></li><li><code>XMLCipher.RSA_OAEP</code></li><li><code>XMLCipher.RSA_OAEP_11</code></li></ul> -</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>keyOrTrustStoreParameters</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Configuration options for creating and loading a KeyStore instance that represents the sender's trustStore or recipient's keyStore. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>keyPassword</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>Camel 2.10.2 / 2.11:</strong> The password to be used for retrieving the private key from the KeyStore. This key is used for asymmetric decryption. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>digestAlgorithm</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> XMLCipher.SHA1 </p></td><td colspan="1" rowspan="1" class="co nfluenceTd"><p> <strong>Camel 2.12</strong> The digest algorithm to use with the RSA OAEP algorithm. The available choices are:</p> -<ul><li><code>XMLCipher.SHA1</code></li><li><code>XMLCipher.SHA256</code></li><li><code>XMLCipher.SHA512</code></li></ul> -</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>mgfAlgorithm</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> EncryptionConstants.MGF1_SHA1 </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12</strong> The MGF Algorithm to use with the RSA OAEP algorithm. The available choices are:</p> -<ul><li><code>EncryptionConstants.MGF1_SHA1</code></li><li><code>EncryptionConstants.MGF1_SHA256</code></li><li><code>EncryptionConstants.MGF1_SHA512</code></li></ul> -</td></tr></tbody></table></div> - - -<h4 id="BookDataFormatAppendix-KeyCipherAlgorithm">Key Cipher Algorithm</h4> - -<p>As of Camel 2.12.0, the default Key Cipher Algorithm is now XMLCipher.RSA_OAEP instead of XMLCipher.RSA_v1dot5. Usage of XMLCipher.RSA_v1dot5 is discouraged due to various attacks. Requests that use RSA v1.5 as the key cipher algorithm will be rejected unless it has been explicitly configured as the key cipher algorithm.</p> - -<h3 id="BookDataFormatAppendix-Marshal.2">Marshal</h3> -<p>In order to encrypt the payload, the <code>marshal</code> processor needs to be applied on the route followed by the <strong><code>secureXML()</code></strong> tag.</p> - -<h3 id="BookDataFormatAppendix-Unmarshal.2">Unmarshal</h3> -<p>In order to decrypt the payload, the <code>unmarshal</code> processor needs to be applied on the route followed by the <strong><code>secureXML()</code></strong> tag.</p> - -<h3 id="BookDataFormatAppendix-Examples">Examples</h3> -<p>Given below are several examples of how marshalling could be performed at the Document, Element, and Content levels.</p> - -<h4 id="BookDataFormatAppendix-FullPayloadencryption/decryption">Full Payload encryption/decryption</h4> -<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("direct:start") +<h2 id="BookDataFormatAppendix-XMLSecurityDataFormat">XMLSecurity Data Format</h2><p>The XMLSecurity Data Format facilitates encryption and decryption of XML payloads at the Document, Element, and Element Content levels (including simultaneous multi-node encryption/decryption using XPath). To sign messages using the XML Signature specification, please see the Camel XML Security <a shape="rect" href="xml-security-component.html">component</a>.</p><p>The encryption capability is based on formats supported using the Apache XML Security (Santuario) project. Symmetric encryption/decryption is currently supported using Triple-DES and AES (128, 192, and 256) encryption formats. Additional formats can be easily added later as needed. This capability allows Camel users to encrypt/decrypt payloads while being dispatched or received along a route.</p><p><strong>Available as of Camel 2.9</strong><br clear="none"> The XMLSecurity Data Format supports asymmetric key encryption. In this encryption model a symmetric key is generated and used to perform XML content encryption or decryption. This "content encryption key" is then itself encrypted using an asymmetric encryption algorithm that leverages the recipient's public key as the "key encryption key". Use of an asymmetric key encryption algorithm ensures that only the holder of the recipient's private key can access the generated symmetric encryption key. Thus, only the private key holder can decode the message. The XMLSecurity Data Format handles all of the logic required to encrypt and decrypt the message content and encryption key(s) using asymmetric key encryption.</p><p>The XMLSecurity Data Format also has improved support for namespaces when processing the XPath queries that select content for encryption. A namespace definition mapping can be included as part of the data format configuration. This enables true namespace matching, even if the prefix values in the XPath query and the target xml document are not equivale nt strings.</p><h3 id="BookDataFormatAppendix-BasicOptions">Basic Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</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>secureTag</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 XPath reference to the XML Element selected for encryption/decryption. If no tag is specified, the entire payload is encrypted/decrypted.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>secureTagContents</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A boolean value to specify whether the XML Element is to be encrypted or the contents of the XML Element</p><ul><li><code>false</code> = Element Level</li><li><code>true</code> = Element Content Level</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>passPhrase</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A String used as passPhrase to encrypt/decrypt content. The passPhrase has to be provided. If no passPhrase is specified, a default passPhrase is used. The passPhrase needs to be put together in conjunction with the appropriate encryption algorithm. For example using <code>TRIPLEDES</code> the passPhase can be a <code>"Only another 24 Byte key"</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>xmlCipherAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>TRIPLEDES</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cipher algorithm to be used for encryption/decryption of the XML message content. The available choices are:</p><ul><li><code>XMLCipher.TRIPLEDES</code></li><li><code>XMLCipher.AES_128</code></li><li><code>XMLCipher.AES_128_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_192</code></li><li><code>XMLCipher.AES_192_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_256</code></li><li><code>XMLCipher.AES_256_GCM</code> <strong>Camel 2.12</strong></li><li>XMLCipher.SEED_128 <strong>Camel 2.12</strong></li><li>XMLCipher.CAMELLIA_128, XMLCipher.CAMELLIA_192, XMLCipher.CAMELLIA_256 <strong>Camel 2.12</strong></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>namespaces</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A map of namespace values indexed by prefix. The index values must match the prefixes used in the <code>secureTag</ code> XPath query.</p></td></tr></tbody></table></div><h3 id="BookDataFormatAppendix-AsymmetricEncryptionOptions">Asymmetric Encryption Options</h3><p>These options can be applied in addition to relevant the Basic options to use asymmetric key encryption.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</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>recipientKeyAlias</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 key alias to be used when retrieving the recipient's public or private key from a KeyStore when performing asymmetric key encryption or decryption.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyCiphe rAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12</strong> <code>XMLCipher.RSA_OAEP</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cipher algorithm to be used for encryption/decryption of the asymmetric key. The available choices are:</p><ul><li><code>XMLCipher.RSA_v1dot5</code></li><li><code>XMLCipher.RSA_OAEP</code></li><li><code>XMLCipher.RSA_OAEP_11</code></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyOrTrustStoreParameters</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Configuration options for creating and loading a KeyStore instance that represents the sender's trustStore or recipient's keyStore.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyPassword</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>Camel 2.10.2 / >2.11:</strong> The password to be used for retrieving the private key from >the KeyStore. This key is used for asymmetric >decryption.</p></td></tr><tr><td colspan="1" rowspan="1" >class="confluenceTd"><p><code>digestAlgorithm</code></p></td><td colspan="1" >rowspan="1" class="confluenceTd"><p>XMLCipher.SHA1</p></td><td colspan="1" >rowspan="1" class="confluenceTd"><p><strong>Camel 2.12</strong> The digest >algorithm to use with the RSA OAEP algorithm. The available choices >are:</p><ul><li><code>XMLCipher.SHA1</code></li><li><code>XMLCipher.SHA256</code></li><li><code>XMLCipher.SHA512</code></li></ul></td></tr><tr><td > colspan="1" rowspan="1" >class="confluenceTd"><p><code>mgfAlgorithm</code></p></td><td colspan="1" >rowspan="1" class="confluenceTd"><p>EncryptionConstants.MGF1_SHA1</p></td><td >colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12</strong> >The MGF Algorithm to use with the RSA OAEP algori thm. The available choices are:</p><ul><li><code>EncryptionConstants.MGF1_SHA1</code></li><li><code>EncryptionConstants.MGF1_SHA256</code></li><li><code>EncryptionConstants.MGF1_SHA512</code></li></ul></td></tr></tbody></table></div><h4 id="BookDataFormatAppendix-KeyCipherAlgorithm">Key Cipher Algorithm</h4><p>As of Camel 2.12.0, the default Key Cipher Algorithm is now XMLCipher.RSA_OAEP instead of XMLCipher.RSA_v1dot5. Usage of XMLCipher.RSA_v1dot5 is discouraged due to various attacks. Requests that use RSA v1.5 as the key cipher algorithm will be rejected unless it has been explicitly configured as the key cipher algorithm.</p><h3 id="BookDataFormatAppendix-Marshal.2">Marshal</h3><p>In order to encrypt the payload, the <code>marshal</code> processor needs to be applied on the route followed by the <strong><code>secureXML()</code></strong> tag.</p><h3 id="BookDataFormatAppendix-Unmarshal.2">Unmarshal</h3><p>In order to decrypt the payload, the <code>unmarshal</code> processor need s to be applied on the route followed by the <strong><code>secureXML()</code></strong> tag.</p><h3 id="BookDataFormatAppendix-Examples">Examples</h3><p>Given below are several examples of how marshalling could be performed at the Document, Element, and Content levels.</p><h4 id="BookDataFormatAppendix-FullPayloadencryption/decryption">Full Payload encryption/decryption</h4><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("direct:start") .marshal().secureXML() .unmarshal().secureXML() .to("direct:end"); ]]></script> -</div></div> - -<h4 id="BookDataFormatAppendix-PartialPayloadContentOnlyencryption/decryption">Partial Payload Content Only encryption/decryption</h4> -<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[ -String tagXPATH = "//cheesesites/italy/cheese"; +</div></div><h4 id="BookDataFormatAppendix-PartialPayloadContentOnlyencryption/decryption">Partial Payload Content Only encryption/decryption</h4><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[String tagXPATH = "//cheesesites/italy/cheese"; boolean secureTagContent = true; ... from("direct:start") @@ -2136,12 +2084,8 @@ from("direct:start") .unmarshal().secureXML(tagXPATH, secureTagContent) .to("direct:end"); ]]></script> -</div></div> - -<h4 id="BookDataFormatAppendix-PartialMultiNodePayloadContentOnlyencryption/decryption">Partial Multi Node Payload Content Only encryption/decryption</h4> -<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[ -String tagXPATH = "//cheesesites/*/cheese"; +</div></div><h4 id="BookDataFormatAppendix-PartialMultiNodePayloadContentOnlyencryption/decryption">Partial Multi Node Payload Content Only encryption/decryption</h4><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[String tagXPATH = "//cheesesites/*/cheese"; boolean secureTagContent = true; ... from("direct:start") @@ -2149,12 +2093,8 @@ from("direct:start") .unmarshal().secureXML(tagXPATH, secureTagContent) .to("direct:end"); ]]></script> -</div></div> - -<h4 id="BookDataFormatAppendix-PartialPayloadContentOnlyencryption/decryptionwithchoiceofpassPhrase(password)">Partial Payload Content Only encryption/decryption with choice of passPhrase(password)</h4> -<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[ -String tagXPATH = "//cheesesites/italy/cheese"; +</div></div><h4 id="BookDataFormatAppendix-PartialPayloadContentOnlyencryption/decryptionwithchoiceofpassPhrase(password)">Partial Payload Content Only encryption/decryption with choice of passPhrase(password)</h4><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[String tagXPATH = "//cheesesites/italy/cheese"; boolean secureTagContent = true; ... String passPhrase = "Just another 24 Byte key"; @@ -2163,12 +2103,8 @@ from("direct:start") .unmarshal().secureXML(tagXPATH, secureTagContent, passPhrase) .to("direct:end"); ]]></script> -</div></div> - -<h4 id="BookDataFormatAppendix-PartialPayloadContentOnlyencryption/decryptionwithpassPhrase(password)andAlgorithm">Partial Payload Content Only encryption/decryption with passPhrase(password) and Algorithm</h4> -<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[ -import org.apache.xml.security.encryption.XMLCipher; +</div></div><h4 id="BookDataFormatAppendix-PartialPayloadContentOnlyencryption/decryptionwithpassPhrase(password)andAlgorithm">Partial Payload Content Only encryption/decryption with passPhrase(password) and Algorithm</h4><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[import org.apache.xml.security.encryption.XMLCipher; .... String tagXPATH = "//cheesesites/italy/cheese"; boolean secureTagContent = true; @@ -2179,13 +2115,8 @@ from("direct:start") .unmarshal().secureXML(tagXPATH, secureTagContent, passPhrase, algorithm) .to("direct:end"); ]]></script> -</div></div> - -<h4 id="BookDataFormatAppendix-PartialPayloadContentwithNamespacesupport">Partial Payload Content with Namespace support</h4> -<h5 id="BookDataFormatAppendix-JavaDSL">Java DSL</h5> -<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[ -final Map<String, String> namespaces = new HashMap<String, String>(); +</div></div><h4 id="BookDataFormatAppendix-PartialPayloadContentwithNamespacesupport">Partial Payload Content with Namespace support</h4><h5 id="BookDataFormatAppendix-JavaDSL">Java DSL</h5><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[final Map<String, String> namespaces = new HashMap<String, String>(); namespaces.put("cust", "http://cheese.xmlsecurity.camel.apache.org/"); final KeyStoreParameters tsParameters = new KeyStoreParameters(); @@ -2201,13 +2132,8 @@ context.addRoutes(new RouteBuilder() { } } ]]></script> -</div></div> - -<h5 id="BookDataFormatAppendix-SpringXML">Spring XML</h5> -<p>A namespace prefix that is defined as part of the <code>camelContext</code> definition can be re-used in context within the data format <code>secureTag</code> attribute of the <code>secureXML</code> element.</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[ -<camelContext id="springXmlSecurityDataFormatTestCamelContext" +</div></div><h5 id="BookDataFormatAppendix-SpringXML">Spring XML</h5><p>A namespace prefix that is defined as part of the <code>camelContext</code> definition can be re-used in context within the data format <code>secureTag</code> attribute of the <code>secureXML</code> element.</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[<camelContext id="springXmlSecurityDataFormatTestCamelContext" xmlns="http://camel.apache.org/schema/spring" xmlns:cheese="http://cheese.xmlsecurity.camel.apache.org/"> <route> @@ -2218,13 +2144,8 @@ context.addRoutes(new RouteBuilder() { </marshal> ... ]]></script> -</div></div> - -<h4 id="BookDataFormatAppendix-AsymmetricKeyEncryption">Asymmetric Key Encryption</h4> -<h5 id="BookDataFormatAppendix-SpringXMLSender">Spring XML Sender</h5> -<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[ -<!-- trust store configuration --> +</div></div><h4 id="BookDataFormatAppendix-AsymmetricKeyEncryption">Asymmetric Key Encryption</h4><h5 id="BookDataFormatAppendix-SpringXMLSender">Spring XML Sender</h5><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[<!-- trust store configuration --> <camel:keyStoreParameters id="trustStoreParams" resource="./sender.ts" password="password"/> <camelContext id="springXmlSecurityDataFormatTestCamelContext" @@ -2242,10 +2163,7 @@ context.addRoutes(new RouteBuilder() { </marshal> ... ]]></script> -</div></div> - -<h5 id="BookDataFormatAppendix-SpringXMLRecipient">Spring XML Recipient</h5> -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div><h5 id="BookDataFormatAppendix-SpringXMLRecipient">Spring XML Recipient</h5><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[ <!-- key store configuration --> <camel:keyStoreParameters id="keyStoreParams" resource="./recipient.ks" password="password" /> @@ -2266,11 +2184,7 @@ context.addRoutes(new RouteBuilder() { </unmarshal> ... ]]></script> -</div></div> - -<h3 id="BookDataFormatAppendix-Dependencies.9">Dependencies</h3> - -<p>This data format is provided within the <strong>camel-xmlsecurity</strong> component.</p> +</div></div><h3 id="BookDataFormatAppendix-Dependencies.9">Dependencies</h3><p>This data format is provided within the <strong>camel-xmlsecurity</strong> component.</p> The GZip <a shape="rect" href="data-format.html">Data Format</a> is a message compression and de-compression format. It uses the same deflate algorithm that is used in <a shape="rect" href="zip-dataformat.html">Zip DataFormat</a>, although some additional headers are provided. This format is produced by popular <code>gzip</code>/<code>gunzip</code> tool. Messages marshalled using GZip compression can be unmarshalled using GZip decompression just prior to being consumed at the endpoint. The compression capability is quite useful when you deal with large XML and Text based payloads or when you read messages previously comressed using <code>gzip</code> tool. <h3 id="BookDataFormatAppendix-Options.4">Options</h3> 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 Thu Nov 13 11:20:48 2014 @@ -4120,11 +4120,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.rbtoc1415780249783 {padding: 0px;} -div.rbtoc1415780249783 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1415780249783 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1415877503832 {padding: 0px;} +div.rbtoc1415877503832 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1415877503832 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1415780249783"> +/*]]>*/</style></p><div class="toc-macro rbtoc1415877503832"> <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> @@ -6310,11 +6310,11 @@ So we completed the last piece in the pi <style type="text/css">/*<![CDATA[*/ -div.rbtoc1415780250351 {padding: 0px;} -div.rbtoc1415780250351 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1415780250351 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1415877506780 {padding: 0px;} +div.rbtoc1415877506780 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1415877506780 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style><div class="toc-macro rbtoc1415780250351"> +/*]]>*/</style><div class="toc-macro rbtoc1415877506780"> <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> @@ -12257,66 +12257,14 @@ public class BindyComplexCsvUnmarshallTe </dependency> ]]></script> </div></div> -<h2 id="BookInOnePage-XMLSecurityDataFormat">XMLSecurity Data Format</h2> - -<p>The XMLSecurity Data Format facilitates encryption and decryption of XML payloads at the Document, Element, and Element Content levels (including simultaneous multi-node encryption/decryption using XPath). To sign messages using the XML Signature specification, please see the Camel XML Security <a shape="rect" href="xml-security-component.html">component</a>.</p> - -<p>The encryption capability is based on formats supported using the Apache XML Security (Santuario) project. Symmetric encryption/decryption is currently supported using Triple-DES and AES (128, 192, and 256) encryption formats. Additional formats can be easily added later as needed. This capability allows Camel users to encrypt/decrypt payloads while being dispatched or received along a route.</p> - -<p><strong>Available as of Camel 2.9</strong><br clear="none"> -The XMLSecurity Data Format supports asymmetric key encryption. In this encryption model a symmetric key is generated and used to perform XML content encryption or decryption. This "content encryption key" is then itself encrypted using an asymmetric encryption algorithm that leverages the recipient's public key as the "key encryption key". Use of an asymmetric key encryption algorithm ensures that only the holder of the recipient's private key can access the generated symmetric encryption key. Thus, only the private key holder can decode the message. The XMLSecurity Data Format handles all of the logic required to encrypt and decrypt the message content and encryption key(s) using asymmetric key encryption.</p> - -<p>The XMLSecurity Data Format also has improved support for namespaces when processing the XPath queries that select content for encryption. A namespace definition mapping can be included as part of the data format configuration. This enables true namespace matching, even if the prefix values in the XPath query and the target xml document are not equivalent strings.</p> - -<h3 id="BookInOnePage-BasicOptions">Basic Options</h3> - -<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Option </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>secureTag</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 XPath reference to the XML Element selected for encryption/decryption. If no tag is specified, the entire payload is encrypted/decrypted. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>secureTagContents</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A boolean value to specify whether the XML Element is to be encrypted or the contents of the XML Element </p> -<ul><li><code>false</code> = Element Level</li><li><code>true</code> = Element Content Level</li></ul> -</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>passPhrase</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A String used as passPhrase to encrypt/decrypt content. The passPhrase has to be provided. If no passPhrase is specified, a default passPhrase is used. The passPhrase needs to be put together in conjunction with the appropriate encryption algorithm. For example using <code>TRIPLEDES</code> the passPhase can be a <code>"Only another 24 Byte key"</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>xmlCipherAlgorithm</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>TRIPLEDES</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The cipher algorithm to be used for encryption/decryption of the XML message content. The available choices are:</p> -<ul><li><code>XMLCipher.TRIPLEDES</code></li><li><code>XMLCipher.AES_128</code></li><li><code>XMLCipher.AES_128_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_192</code></li><li><code>XMLCipher.AES_192_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_256</code></li><li><code>XMLCipher.AES_256_GCM</code> <strong>Camel 2.12</strong></li></ul> -</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>namespaces</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A map of namespace values indexed by prefix. The index values must match the prefixes used in the <code>secureTag</code> XPath query. </p></td></tr></tbody></table></div> - - -<h3 id="BookInOnePage-AsymmetricEncryptionOptions">Asymmetric Encryption Options</h3> - -<p>These options can be applied in addition to relevant the Basic options to use asymmetric key encryption. </p> - -<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Option </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>recipientKeyAlias</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 key alias to be used when retrieving the recipient's public or private key from a KeyStore when performing asymmetric key encryption or decryption. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>keyCipherAlgorithm</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12</strong> <code>XMLCipher.RSA_OAEP</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The cipher algorithm to be used for encrypti on/decryption of the asymmetric key. The available choices are: </p> -<ul><li><code>XMLCipher.RSA_v1dot5</code></li><li><code>XMLCipher.RSA_OAEP</code></li><li><code>XMLCipher.RSA_OAEP_11</code></li></ul> -</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>keyOrTrustStoreParameters</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Configuration options for creating and loading a KeyStore instance that represents the sender's trustStore or recipient's keyStore. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>keyPassword</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>Camel 2.10.2 / 2.11:</strong> The password to be used for retrieving the private key from the KeyStore. This key is used for asymmetric decryption. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>digestAlgorithm</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> XMLCipher.SHA1 </p></td><td colspan="1" rowspan="1" class="co nfluenceTd"><p> <strong>Camel 2.12</strong> The digest algorithm to use with the RSA OAEP algorithm. The available choices are:</p> -<ul><li><code>XMLCipher.SHA1</code></li><li><code>XMLCipher.SHA256</code></li><li><code>XMLCipher.SHA512</code></li></ul> -</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>mgfAlgorithm</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> EncryptionConstants.MGF1_SHA1 </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12</strong> The MGF Algorithm to use with the RSA OAEP algorithm. The available choices are:</p> -<ul><li><code>EncryptionConstants.MGF1_SHA1</code></li><li><code>EncryptionConstants.MGF1_SHA256</code></li><li><code>EncryptionConstants.MGF1_SHA512</code></li></ul> -</td></tr></tbody></table></div> - - -<h4 id="BookInOnePage-KeyCipherAlgorithm">Key Cipher Algorithm</h4> - -<p>As of Camel 2.12.0, the default Key Cipher Algorithm is now XMLCipher.RSA_OAEP instead of XMLCipher.RSA_v1dot5. Usage of XMLCipher.RSA_v1dot5 is discouraged due to various attacks. Requests that use RSA v1.5 as the key cipher algorithm will be rejected unless it has been explicitly configured as the key cipher algorithm.</p> - -<h3 id="BookInOnePage-Marshal.2">Marshal</h3> -<p>In order to encrypt the payload, the <code>marshal</code> processor needs to be applied on the route followed by the <strong><code>secureXML()</code></strong> tag.</p> - -<h3 id="BookInOnePage-Unmarshal.2">Unmarshal</h3> -<p>In order to decrypt the payload, the <code>unmarshal</code> processor needs to be applied on the route followed by the <strong><code>secureXML()</code></strong> tag.</p> - -<h3 id="BookInOnePage-Examples.5">Examples</h3> -<p>Given below are several examples of how marshalling could be performed at the Document, Element, and Content levels.</p> - -<h4 id="BookInOnePage-FullPayloadencryption/decryption">Full Payload encryption/decryption</h4> -<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("direct:start") +<h2 id="BookInOnePage-XMLSecurityDataFormat">XMLSecurity Data Format</h2><p>The XMLSecurity Data Format facilitates encryption and decryption of XML payloads at the Document, Element, and Element Content levels (including simultaneous multi-node encryption/decryption using XPath). To sign messages using the XML Signature specification, please see the Camel XML Security <a shape="rect" href="xml-security-component.html">component</a>.</p><p>The encryption capability is based on formats supported using the Apache XML Security (Santuario) project. Symmetric encryption/decryption is currently supported using Triple-DES and AES (128, 192, and 256) encryption formats. Additional formats can be easily added later as needed. This capability allows Camel users to encrypt/decrypt payloads while being dispatched or received along a route.</p><p><strong>Available as of Camel 2.9</strong><br clear="none"> The XMLSecurity Data Format supports asymmetric key encryption. In this encryption model a symmetric key is generated and used to perform XML content encryption or decryption. This "content encryption key" is then itself encrypted using an asymmetric encryption algorithm that leverages the recipient's public key as the "key encryption key". Use of an asymmetric key encryption algorithm ensures that only the holder of the recipient's private key can access the generated symmetric encryption key. Thus, only the private key holder can decode the message. The XMLSecurity Data Format handles all of the logic required to encrypt and decrypt the message content and encryption key(s) using asymmetric key encryption.</p><p>The XMLSecurity Data Format also has improved support for namespaces when processing the XPath queries that select content for encryption. A namespace definition mapping can be included as part of the data format configuration. This enables true namespace matching, even if the prefix values in the XPath query and the target xml document are not equivalent string s.</p><h3 id="BookInOnePage-BasicOptions">Basic Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</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>secureTag</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 XPath reference to the XML Element selected for encryption/decryption. If no tag is specified, the entire payload is encrypted/decrypted.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>secureTagContents</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A boolean value to specify whether the XML Element is to be e ncrypted or the contents of the XML Element</p><ul><li><code>false</code> = Element Level</li><li><code>true</code> = Element Content Level</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>passPhrase</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A String used as passPhrase to encrypt/decrypt content. The passPhrase has to be provided. If no passPhrase is specified, a default passPhrase is used. The passPhrase needs to be put together in conjunction with the appropriate encryption algorithm. For example using <code>TRIPLEDES</code> the passPhase can be a <code>"Only another 24 Byte key"</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>xmlCipherAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>TRIPLEDES</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cipher algorithm t o be used for encryption/decryption of the XML message content. The available choices are:</p><ul><li><code>XMLCipher.TRIPLEDES</code></li><li><code>XMLCipher.AES_128</code></li><li><code>XMLCipher.AES_128_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_192</code></li><li><code>XMLCipher.AES_192_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_256</code></li><li><code>XMLCipher.AES_256_GCM</code> <strong>Camel 2.12</strong></li><li>XMLCipher.SEED_128 <strong>Camel 2.12</strong></li><li>XMLCipher.CAMELLIA_128, XMLCipher.CAMELLIA_192, XMLCipher.CAMELLIA_256 <strong>Camel 2.12</strong></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>namespaces</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A map of namespace values indexed by prefix. The index values must match the prefixes used in the <code>secureTag</code> XPath query. </p></td></tr></tbody></table></div><h3 id="BookInOnePage-AsymmetricEncryptionOptions">Asymmetric Encryption Options</h3><p>These options can be applied in addition to relevant the Basic options to use asymmetric key encryption.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</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>recipientKeyAlias</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 key alias to be used when retrieving the recipient's public or private key from a KeyStore when performing asymmetric key encryption or decryption.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyCipherAlgorithm</code></p></td>< td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12</strong> <code>XMLCipher.RSA_OAEP</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cipher algorithm to be used for encryption/decryption of the asymmetric key. The available choices are:</p><ul><li><code>XMLCipher.RSA_v1dot5</code></li><li><code>XMLCipher.RSA_OAEP</code></li><li><code>XMLCipher.RSA_OAEP_11</code></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyOrTrustStoreParameters</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Configuration options for creating and loading a KeyStore instance that represents the sender's trustStore or recipient's keyStore.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyPassword</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>Camel 2.10.2 / 2.11:</strong> The password to be used for retrieving the private key from the KeyStore. This key is used for asymmetric decryption.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>digestAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>XMLCipher.SHA1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12</strong> The digest algorithm to use with the RSA OAEP algorithm. The available choices are:</p><ul><li><code>XMLCipher.SHA1</code></li><li><code>XMLCipher.SHA256</code></li><li><code>XMLCipher.SHA512</code></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>mgfAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>EncryptionConstants.MGF1_SHA1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12</strong> The MGF Algorithm to use with the RSA OAEP algorithm. The available choices are:</p><ul><li><code>EncryptionConstants.MGF1_SHA1</code></li><li><code>EncryptionConstants.MGF1_SHA256</code></li><li><code>EncryptionConstants.MGF1_SHA512</code></li></ul></td></tr></tbody></table></div><h4 id="BookInOnePage-KeyCipherAlgorithm">Key Cipher Algorithm</h4><p>As of Camel 2.12.0, the default Key Cipher Algorithm is now XMLCipher.RSA_OAEP instead of XMLCipher.RSA_v1dot5. Usage of XMLCipher.RSA_v1dot5 is discouraged due to various attacks. Requests that use RSA v1.5 as the key cipher algorithm will be rejected unless it has been explicitly configured as the key cipher algorithm.</p><h3 id="BookInOnePage-Marshal.2">Marshal</h3><p>In order to encrypt the payload, the <code>marshal</code> processor needs to be applied on the route followed by the <strong><code>secureXML()</code></strong> tag.</p><h3 id="BookInOnePage-Unmarshal.2">Unmarshal</h3><p>In order to decrypt the payload, the <code>unmarshal</code> processor needs to be applied on the route followed by the <strong>< code>secureXML()</code></strong> tag.</p><h3 id="BookInOnePage-Examples.5">Examples</h3><p>Given below are several examples of how marshalling could be performed at the Document, Element, and Content levels.</p><h4 id="BookInOnePage-FullPayloadencryption/decryption">Full Payload encryption/decryption</h4><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("direct:start") .marshal().secureXML() .unmarshal().secureXML() .to("direct:end"); ]]></script> -</div></div> - -<h4 id="BookInOnePage-PartialPayloadContentOnlyencryption/decryption">Partial Payload Content Only encryption/decryption</h4> -<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[ -String tagXPATH = "//cheesesites/italy/cheese"; +</div></div><h4 id="BookInOnePage-PartialPayloadContentOnlyencryption/decryption">Partial Payload Content Only encryption/decryption</h4><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[String tagXPATH = "//cheesesites/italy/cheese"; boolean secureTagContent = true; ... from("direct:start") @@ -12324,12 +12272,8 @@ from("direct:start") .unmarshal().secureXML(tagXPATH, secureTagContent) .to("direct:end"); ]]></script> -</div></div> - -<h4 id="BookInOnePage-PartialMultiNodePayloadContentOnlyencryption/decryption">Partial Multi Node Payload Content Only encryption/decryption</h4> -<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[ -String tagXPATH = "//cheesesites/*/cheese"; +</div></div><h4 id="BookInOnePage-PartialMultiNodePayloadContentOnlyencryption/decryption">Partial Multi Node Payload Content Only encryption/decryption</h4><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[String tagXPATH = "//cheesesites/*/cheese"; boolean secureTagContent = true; ... from("direct:start") @@ -12337,12 +12281,8 @@ from("direct:start") .unmarshal().secureXML(tagXPATH, secureTagContent) .to("direct:end"); ]]></script> -</div></div> - -<h4 id="BookInOnePage-PartialPayloadContentOnlyencryption/decryptionwithchoiceofpassPhrase(password)">Partial Payload Content Only encryption/decryption with choice of passPhrase(password)</h4> -<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[ -String tagXPATH = "//cheesesites/italy/cheese"; +</div></div><h4 id="BookInOnePage-PartialPayloadContentOnlyencryption/decryptionwithchoiceofpassPhrase(password)">Partial Payload Content Only encryption/decryption with choice of passPhrase(password)</h4><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[String tagXPATH = "//cheesesites/italy/cheese"; boolean secureTagContent = true; ... String passPhrase = "Just another 24 Byte key"; @@ -12351,12 +12291,8 @@ from("direct:start") .unmarshal().secureXML(tagXPATH, secureTagContent, passPhrase) .to("direct:end"); ]]></script> -</div></div> - -<h4 id="BookInOnePage-PartialPayloadContentOnlyencryption/decryptionwithpassPhrase(password)andAlgorithm">Partial Payload Content Only encryption/decryption with passPhrase(password) and Algorithm</h4> -<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[ -import org.apache.xml.security.encryption.XMLCipher; +</div></div><h4 id="BookInOnePage-PartialPayloadContentOnlyencryption/decryptionwithpassPhrase(password)andAlgorithm">Partial Payload Content Only encryption/decryption with passPhrase(password) and Algorithm</h4><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[import org.apache.xml.security.encryption.XMLCipher; .... String tagXPATH = "//cheesesites/italy/cheese"; boolean secureTagContent = true; @@ -12367,13 +12303,8 @@ from("direct:start") .unmarshal().secureXML(tagXPATH, secureTagContent, passPhrase, algorithm) .to("direct:end"); ]]></script> -</div></div> - -<h4 id="BookInOnePage-PartialPayloadContentwithNamespacesupport">Partial Payload Content with Namespace support</h4> -<h5 id="BookInOnePage-JavaDSL">Java DSL</h5> -<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[ -final Map<String, String> namespaces = new HashMap<String, String>(); +</div></div><h4 id="BookInOnePage-PartialPayloadContentwithNamespacesupport">Partial Payload Content with Namespace support</h4><h5 id="BookInOnePage-JavaDSL">Java DSL</h5><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[final Map<String, String> namespaces = new HashMap<String, String>(); namespaces.put("cust", "http://cheese.xmlsecurity.camel.apache.org/"); final KeyStoreParameters tsParameters = new KeyStoreParameters(); @@ -12389,13 +12320,8 @@ context.addRoutes(new RouteBuilder() { } } ]]></script> -</div></div> - -<h5 id="BookInOnePage-SpringXML">Spring XML</h5> -<p>A namespace prefix that is defined as part of the <code>camelContext</code> definition can be re-used in context within the data format <code>secureTag</code> attribute of the <code>secureXML</code> element.</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[ -<camelContext id="springXmlSecurityDataFormatTestCamelContext" +</div></div><h5 id="BookInOnePage-SpringXML">Spring XML</h5><p>A namespace prefix that is defined as part of the <code>camelContext</code> definition can be re-used in context within the data format <code>secureTag</code> attribute of the <code>secureXML</code> element.</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[<camelContext id="springXmlSecurityDataFormatTestCamelContext" xmlns="http://camel.apache.org/schema/spring" xmlns:cheese="http://cheese.xmlsecurity.camel.apache.org/"> <route> @@ -12406,13 +12332,8 @@ context.addRoutes(new RouteBuilder() { </marshal> ... ]]></script> -</div></div> - -<h4 id="BookInOnePage-AsymmetricKeyEncryption">Asymmetric Key Encryption</h4> -<h5 id="BookInOnePage-SpringXMLSender">Spring XML Sender</h5> -<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[ -<!-- trust store configuration --> +</div></div><h4 id="BookInOnePage-AsymmetricKeyEncryption">Asymmetric Key Encryption</h4><h5 id="BookInOnePage-SpringXMLSender">Spring XML Sender</h5><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[<!-- trust store configuration --> <camel:keyStoreParameters id="trustStoreParams" resource="./sender.ts" password="password"/> <camelContext id="springXmlSecurityDataFormatTestCamelContext" @@ -12430,10 +12351,7 @@ context.addRoutes(new RouteBuilder() { </marshal> ... ]]></script> -</div></div> - -<h5 id="BookInOnePage-SpringXMLRecipient">Spring XML Recipient</h5> -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div><h5 id="BookInOnePage-SpringXMLRecipient">Spring XML Recipient</h5><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[ <!-- key store configuration --> <camel:keyStoreParameters id="keyStoreParams" resource="./recipient.ks" password="password" /> @@ -12454,11 +12372,7 @@ context.addRoutes(new RouteBuilder() { </unmarshal> ... ]]></script> -</div></div> - -<h3 id="BookInOnePage-Dependencies.28">Dependencies</h3> - -<p>This data format is provided within the <strong>camel-xmlsecurity</strong> component.</p> +</div></div><h3 id="BookInOnePage-Dependencies.28">Dependencies</h3><p>This data format is provided within the <strong>camel-xmlsecurity</strong> component.</p> The GZip <a shape="rect" href="data-format.html">Data Format</a> is a message compression and de-compression format. It uses the same deflate algorithm that is used in <a shape="rect" href="zip-dataformat.html">Zip DataFormat</a>, although some additional headers are provided. This format is produced by popular <code>gzip</code>/<code>gunzip</code> tool. Messages marshalled using GZip compression can be unmarshalled using GZip decompression just prior to being consumed at the endpoint. The compression capability is quite useful when you deal with large XML and Text based payloads or when you read messages previously comressed using <code>gzip</code> tool. <h3 id="BookInOnePage-Options.7">Options</h3> @@ -19772,11 +19686,11 @@ template.send("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.rbtoc1415780261529 {padding: 0px;} -div.rbtoc1415780261529 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1415780261529 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1415877534269 {padding: 0px;} +div.rbtoc1415877534269 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1415877534269 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1415780261529"> +/*]]>*/</style></p><div class="toc-macro rbtoc1415877534269"> <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> Modified: websites/production/camel/content/cache/main.pageCache ============================================================================== Binary files - no diff available. Modified: websites/production/camel/content/camel-2150-release.html ============================================================================== --- websites/production/camel/content/camel-2150-release.html (original) +++ websites/production/camel/content/camel-2150-release.html Thu Nov 13 11:20:48 2014 @@ -84,7 +84,7 @@ <tbody> <tr> <td valign="top" width="100%"> -<div class="wiki-content maincontent"><h1 id="Camel2.15.0Release-Camel2.15.0release(currentlyinprogress)">Camel 2.15.0 release (currently in progress)</h1><div style="padding-right:20px;float:left;margin-left:-20px;"><p><img class="confluence-embedded-image confluence-external-resource" src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png" data-image-src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"></p></div><div style="min-height:200px"> </div><h2 id="Camel2.15.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to the 2.15.0 release which approx XXX issues resolved (new features, improvements and bug fixes such as...)</p><ul><li><span>Component documentation now included in the built component JARs. And Java API and JMX API to access that documentation. And APIs to explain an endpoint uri and what all those configured options mean. </span></li><li><span>Provide Configurer for user to configure the CXF conduit and CXF d estination from Java code</span></li><li><span><span>Added a <code>DelegateEndpoint</code> interface into Camel API</span></span></li><li>Support to setup the SslContextParameters in the <a shape="rect" href="restlet.html">camel-restlet</a> component</li><li>Java DSL - Should support nested choice in doTry .. doCatch</li><li><a shape="rect" href="mongodb.html">MongoDb</a> component now <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7996">stores OIDs</a> of the inserted records in the message header</li><li>Added <code>org.apache.camel.spi.CamelContextRegistry</code><span> as a replacement for <code>org.apache.camel.spi.Container</code> and acting as global registry for all CamelContexts' in the JVM. Though its still intended for SPI's to hook into the lifecycle of creation of <code>CamelContext</code>'s and being able to influence behavior - such as adding insight or other capabilities.</span></li><li><a shape="r ect" href="recipient-list.html">Recipient List</a> now supports specifying custom <a shape="rect" href="exchange-pattern.html">Exchange Pattern</a> in the endpoint ur's</li><li><a shape="rect" href="type-converter.html">Type Converter</a> to enum's is now case insensitive, so you can convert safely level=info to an enum with name Level.INFO etc.</li><li><a shape="rect" href="xslt.html">XSLT</a> and <a shape="rect" href="https://cwiki.apache.org/confluence/display/SM/Validation">Validation</a> components now provides all their endpoint configurations in the endpoint, and not only in the component, making these components like any other components.<br clear="none"><br clear="none"></li></ul><p>Fixed issues</p><ul><li>Fixed processors was not enlisted in JMX when routes was transacted.</li><li>Fixed the NullPointerException when using CXF endpoint with enrich</li><li>Fixed the endpointProperty of restConfiguration doesn't work issue</li><li>Fixed the issue that  ;CircuitBreakerLoadBalancer fails on async processors</li><li>Fixed MyBatis consumer <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-8011">ignoring maxMessagesPerPoll</a> option</li><li>Fixed potential issue with pollEnrich not triggering error handler if an exception was thrown in the polling.<br clear="none"><br clear="none"></li></ul><h3 id="Camel2.15.0Release-New">New <a shape="rect" href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a></h3><h3 id="Camel2.15.0Release-New.1">New <a shape="rect" href="components.html">Components</a></h3><ul><li><a shape="rect" href="beanstalk.html">camel-beanstalk</a> - for working with Amazon Beanstalk jobs.</li><li><a shape="rect" href="docker.html">camel-docker</a> - to communicate with Docker.</li><li>camel-github - for integrating with github</li><li>camel-jira - for integrating with JIRA issue tracker</li><li>camel-scr - for using Camel with <a shape="rect" class="ex ternal-link" href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html">SCR</a> (OSGi declarative services) on OSGi containers such as Apache Karaf</li><li><a shape="rect" href="spring-boot.html">camel-spring-boot</a> - for using Camel with Spring Boot</li><li>camel-test-spring40 - for testing with Spring 4.0.x. camel-test-spring is for Spring 4.1.x onwards.</li></ul><h3 id="Camel2.15.0Release-NewDSL">New DSL</h3><h3 id="Camel2.15.0Release-NewAnnotations">New Annotations</h3><h3 id="Camel2.15.0Release-NewDataFormats">New <a shape="rect" href="data-format.html">Data Formats</a></h3><h3 id="Camel2.15.0Release-New.2">New <a shape="rect" href="languages.html">Languages</a></h3><h3 id="Camel2.15.0Release-New.3">New <a shape="rect" href="examples.html">Examples</a></h3><h3 id="Camel2.15.0Release-New.4">New <a shape="rect" href="tutorials.html">Tutorials</a></h3><h2 id="Camel2.15.0Release-APIbreaking">API breaking</h2><h2 id="Camel2.15. 0Release-KnownIssues">Known Issues</h2><h2 id="Camel2.15.0Release-DependencyUpgrades"><span>Dependency Upgrades</span></h2><ul><li>AWS-Java-SDK 1.8.3 to 1.8.9.1</li><li>Codahale Metrics 3.0 to 3.1</li><li>Guava 17.0 to 18.0</li><li>Jsch 0.1.50 to 0.1.51</li><li>Spring 4.0.7.RELEASE to 4.1.1.RELEASE</li><li>Spring Security 3.1.7.RELEASE to 3.2.5.RELEASE</li><li>... and many other upgrades</li></ul><h2 id="Camel2.15.0Release-Importantchangestoconsiderwhenupgrading">Important changes to consider when upgrading</h2><ul><li>Spring 4.1.x is now the default out of the box Spring version.</li><li><span style="color: rgb(0,0,0);">Unit testing with Spring 4.0.x requires using camel-test-spring40, as camel-test-spring is for Spring 4.1 or better.</span></li><li><span style="color: rgb(0,0,0);">Remember to add <code class="java color1">@BootstrapWith</code><code class="java plain">(CamelTestContextBootstrapper.</code><code class="java keyword">class</code><code class="java plain">)</code>& #160;if upgrading from Spring 3.x or 4.0.x to Spring 4.1 onwards, and using the camel-test-spring module.</span></li><li><a shape="rect" href="xslt.html">XSLT</a> component now require configuring <code>transformerFactory</code> using <a shape="rect" href="uris.html">URIs</a> with the #syntax to refer to a bean. Just like any other component would do.</li></ul><h2 id="Camel2.15.0Release-GettingtheDistributions">Getting the Distributions</h2><h3 id="Camel2.15.0Release-BinaryDistributions">Binary Distributions</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Download Link</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>PGP Signature file of download</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Windows Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" cla ss="external-link" href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip">apache-camel-2.15.0.zip</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip.asc">apache-camel-2.15.0.zip.asc</a></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Unix/Linux/Cygwin Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz">apache-camel-2.15.0.tar.gz</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz.asc">apache-camel-2.15.0.tar.gz.asc</a></p></td></tr></tbody></table></div> <div class="aui-message hint shadowed information-mac ro"> +<div class="wiki-content maincontent"><h1 id="Camel2.15.0Release-Camel2.15.0release(currentlyinprogress)">Camel 2.15.0 release (currently in progress)</h1><div style="padding-right:20px;float:left;margin-left:-20px;"><p><img class="confluence-embedded-image confluence-external-resource" src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png" data-image-src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"></p></div><div style="min-height:200px"> </div><h2 id="Camel2.15.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to the 2.15.0 release which approx XXX issues resolved (new features, improvements and bug fixes such as...)</p><ul><li><span>Component documentation now included in the built component JARs. And Java API and JMX API to access that documentation. And APIs to explain an endpoint uri and what all those configured options mean. </span></li><li><span>Provide Configurer for user to configure the CXF conduit and CXF d estination from Java code</span></li><li><span><span>Added a <code>DelegateEndpoint</code> interface into Camel API</span></span></li><li>Support to setup the SslContextParameters in the <a shape="rect" href="restlet.html">camel-restlet</a> component</li><li>Java DSL - Should support nested choice in doTry .. doCatch</li><li><a shape="rect" href="mongodb.html">MongoDb</a> component now <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7996">stores OIDs</a> of the inserted records in the message header</li><li>Added <code>org.apache.camel.spi.CamelContextRegistry</code><span> as a replacement for <code>org.apache.camel.spi.Container</code> and acting as global registry for all CamelContexts' in the JVM. Though its still intended for SPI's to hook into the lifecycle of creation of <code>CamelContext</code>'s and being able to influence behavior - such as adding insight or other capabilities.</span></li><li><a shape="r ect" href="recipient-list.html">Recipient List</a> now supports specifying custom <a shape="rect" href="exchange-pattern.html">Exchange Pattern</a> in the endpoint ur's</li><li><a shape="rect" href="type-converter.html">Type Converter</a> to enum's is now case insensitive, so you can convert safely level=info to an enum with name Level.INFO etc.</li><li><a shape="rect" href="xslt.html">XSLT</a> and <a shape="rect" href="https://cwiki.apache.org/confluence/display/SM/Validation">Validation</a> components now provides all their endpoint configurations in the endpoint, and not only in the component, making these components like any other components.</li><li>Made the <a shape="rect" href="karaf.html">Camel Karaf Commands</a> reusable by moving common code into a <code>camel-commands-core</code> module that SPI can extend and plugin Camel commands for other environments.<br clear="none"><br clear="none"></li></ul><p>Fixed issues</p><ul><li>Fixed processors was not enlisted in JMX when routes was transacted.</li><li>Fixed the NullPointerException when using CXF endpoint with enrich</li><li>Fixed the endpointProperty of restConfiguration doesn't work issue</li><li>Fixed the issue that CircuitBreakerLoadBalancer fails on async processors</li><li>Fixed MyBatis consumer <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-8011">ignoring maxMessagesPerPoll</a> option</li><li>Fixed potential issue with pollEnrich not triggering error handler if an exception was thrown in the polling.<br clear="none"><br clear="none"></li></ul><h3 id="Camel2.15.0Release-New">New <a shape="rect" href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a></h3><h3 id="Camel2.15.0Release-New.1">New <a shape="rect" href="components.html">Components</a></h3><ul><li><a shape="rect" href="beanstalk.html">camel-beanstalk</a> - for working with Amazon Beanstalk jobs.</li><li><a shape="rect" href="docker.ht ml">camel-docker</a> - to communicate with Docker.</li><li>camel-github - for integrating with github</li><li>camel-jira - for integrating with JIRA issue tracker</li><li>camel-scr - for using Camel with <a shape="rect" class="external-link" href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html">SCR</a> (OSGi declarative services) on OSGi containers such as Apache Karaf</li><li><a shape="rect" href="spring-boot.html">camel-spring-boot</a> - for using Camel with Spring Boot</li><li>camel-test-spring40 - for testing with Spring 4.0.x. camel-test-spring is for Spring 4.1.x onwards.</li></ul><h3 id="Camel2.15.0Release-NewDSL">New DSL</h3><h3 id="Camel2.15.0Release-NewAnnotations">New Annotations</h3><h3 id="Camel2.15.0Release-NewDataFormats">New <a shape="rect" href="data-format.html">Data Formats</a></h3><h3 id="Camel2.15.0Release-New.2">New <a shape="rect" href="languages.html">Languages</a></h3><h3 id="Camel2.15.0Release-New.3 ">New <a shape="rect" href="examples.html">Examples</a></h3><h3 id="Camel2.15.0Release-New.4">New <a shape="rect" href="tutorials.html">Tutorials</a></h3><h2 id="Camel2.15.0Release-APIbreaking">API breaking</h2><h2 id="Camel2.15.0Release-KnownIssues">Known Issues</h2><h2 id="Camel2.15.0Release-DependencyUpgrades"><span>Dependency Upgrades</span></h2><ul><li>AWS-Java-SDK 1.8.3 to 1.8.9.1</li><li>Codahale Metrics 3.0 to 3.1</li><li>Guava 17.0 to 18.0</li><li>Jsch 0.1.50 to 0.1.51</li><li>Spring 4.0.7.RELEASE to 4.1.1.RELEASE</li><li>Spring Security 3.1.7.RELEASE to 3.2.5.RELEASE</li><li>... and many other upgrades</li></ul><h2 id="Camel2.15.0Release-Importantchangestoconsiderwhenupgrading">Important changes to consider when upgrading</h2><ul><li>Spring 4.1.x is now the default out of the box Spring version.</li><li><span style="color: rgb(0,0,0);">Unit testing with Spring 4.0.x requires using camel-test-spring40, as camel-test-spring is for Spring 4.1 or better.</span></li><li><span s tyle="color: rgb(0,0,0);">Remember to add <code class="java color1">@BootstrapWith</code><code class="java plain">(CamelTestContextBootstrapper.</code><code class="java keyword">class</code><code class="java plain">)</code> if upgrading from Spring 3.x or 4.0.x to Spring 4.1 onwards, and using the camel-test-spring module.</span></li><li><a shape="rect" href="xslt.html">XSLT</a> component now require configuring <code>transformerFactory</code> using <a shape="rect" href="uris.html">URIs</a> with the #syntax to refer to a bean. Just like any other component would do.</li></ul><h2 id="Camel2.15.0Release-GettingtheDistributions">Getting the Distributions</h2><h3 id="Camel2.15.0Release-BinaryDistributions">Binary Distributions</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Download Link</p></th><th colspan="1" rowspan ="1" class="confluenceTh"><p>PGP Signature file of download</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Windows Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip">apache-camel-2.15.0.zip</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip.asc">apache-camel-2.15.0.zip.asc</a></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Unix/Linux/Cygwin Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz">apache-camel-2.15.0.tar.gz</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="ext ernal-link" href="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz.asc">apache-camel-2.15.0.tar.gz.asc</a></p></td></tr></tbody></table></div> <div class="aui-message hint shadowed information-macro"> <p class="title">The above URLs use redirection</p> <span class="aui-icon icon-hint">Icon</span> <div class="message-content">