Modified: websites/production/camel/content/content-enricher.html ============================================================================== --- websites/production/camel/content/content-enricher.html (original) +++ websites/production/camel/content/content-enricher.html Fri Jul 17 07:20:59 2015 @@ -120,7 +120,7 @@ from("direct:start").process(n <to uri="activemq:Output"/> </route> ]]></script> -</div></div><p><span class="confluence-anchor-link" id="ContentEnricher-enrich-dsl"></span></p><h3 id="ContentEnricher-ContentenrichmentusingtheenrichDSLelement">Content enrichment using the <code>enrich</code> DSL element</h3><p>Camel comes with two flavors of content enricher in the DSL</p><ul class="alternate"><li><code>enrich</code></li><li><code>pollEnrich</code></li></ul><p><code>enrich</code> uses a <code>Producer</code> to obtain the additional data. It is usually used for <a shape="rect" href="request-reply.html">Request Reply</a> messaging, for instance to invoke an external web service.<br clear="none"> <code>pollEnrich</code> on the other hand uses a <a shape="rect" href="polling-consumer.html">Polling Consumer</a> to obtain the additional data. It is usually used for <a shape="rect" href="event-message.html">Event Message</a> messaging, for instance to read a file or download a <a shape="rect" href="ftp2.html">FTP</a> file.</p><div class="confluence-information-macro co nfluence-information-macro-warning"><p class="title">Camel 2.15 or older - Data from current Exchange not used</p><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p><code>pollEnrich</code> or <code>enrich</code> does <strong>not</strong> access any data from the current <a shape="rect" href="exchange.html">Exchange</a> which means when polling it cannot use any of the existing headers you may have set on the <a shape="rect" href="exchange.html">Exchange</a>. For example you cannot set a filename in the <code>Exchange.FILE_NAME</code> header and use <code>pollEnrich</code> to consume only that file. For that you <strong>must</strong> set the filename in the endpoint URI.</p><p>Instead of using <code>enrich</code> you can use <a shape="rect" href="recipient-list.html">Recipient List</a> and have dynamic endpoints and define an <code>AggregationStrategy</code> on the <a shape="rect" href="r ecipient-list.html">Recipient List</a> which then would work as a <code>enrich</code> would do.</p><p>pollEnrich only accept one message as response. That means that if you target to enrich your original message with the enricher collecting messages from a seda, ... components using an aggregation strategy. Only one response message will be aggregated with the original message.</p><p>From <strong>Camel 2.16</strong> onwards both enrich and pollEnrich supports dynamic endpoints that uses an <a shape="rect" href="expression.html">Expression</a> to compute the uri, which allows to use data from the current <a shape="rect" href="exchange.html">Exchange</a>. In other words all what is told above no longer apply and it just works.</p></div></div><h3 id="ContentEnricher-EnrichOptions">Enrich Options</h3><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>uri</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The endpoint uri for the external service to enrich from. You must use either <code>uri</code> or <code>ref</code>. <strong>Important:</strong> From Camel 2.16 onwards, this option is removed, and you use an <a shape="rect" href="expression.html">Expression</a> to configure the uri, such as <a shape="rect" href="simple.html">Simple</a> or <a shape="rect" href="constant.html">Constant</a> or any other dynamic language that can compute the uri dynamically using values from the current <a shape="rect" href="exchange.html">Exchange</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ref</code></p></td><td colspan="1" rowspan="1" class="co nfluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Refers to the endpoint for the external service to enrich from. You must use either <code>uri</code> or <code>ref</code>. <span> </span><strong>Important:</strong><span> From Camel 2.16 onwards, this option is removed, and you use an </span><a shape="rect" href="expression.html">Expression</a><span> to configure the uri, such as </span><a shape="rect" href="simple.html">Simple</a><span> or </span><a shape="rect" href="constant.html">Constant</a><span> or any other dynamic language that can compute the uri dynamically using values from the current </span><span> </span><a shape="rect" href="exchange.html">Exchange</a><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">expression</td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> Mandatory. The<span> </span><a shape="rect" href="expression.html">Expression</a><span> to configure the uri, such as </span><a shape="rect" href="simple.html">Simple</a><span> or </span><a shape="rect" href="constant.html">Constant</a><span> or any other dynamic language that can compute the uri dynamically using values from the current </span><span> </span><a shape="rect" href="exchange.html">Exchange</a><span>.</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>strategyRef</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Refers to an <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html">AggregationStrategy</a> to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message. From <strong>Camel 2 .12</strong> onwards you can also use a POJO as the <code>AggregationStrategy</code>, see the <a shape="rect" href="aggregator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>strategyMethodName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> This option can be used to explicit declare the method name to use, when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggregator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>strategyMethodAllowNull</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> If this option is <code>false</code> then the aggregate method is not used if there was no data to enrich. If this option is <code>true</code> then <code>null</code> values is used as the <code>oldExchange</code> (when no data to enrich), when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggregator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>aggregateOnException</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.14:</strong> If this option is <code>false</code> then the aggregate method is <strong>not</strong> used if there was an exception thrown while trying to retrieve the data to enrich from the resource. Setting this option to <code>true</code> allows end users to control what to do if there was an exception in the <code>aggregate</code> method. For example to suppress the exception or set a custom message body etc.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>shareUnitOfWork</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> <span style="color: rgb(0,0,0);"> Shares the unit of work with the parent and the resource exchange. Enrich will by default not share unit of work between the parent exchange and the resource exchange. This means the resource exchange has its own individual unit of work. See <a shape="rect" href="splitter.html">Splitter</a> for more information and example.</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>cacheSize</code></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> <span style="color: rgb(0,0,0);">Allows to configure the cache size for the </span><code>ProducerCache</code><span style="color: rgb(0,0,0);"> which caches producers for reuse in the e nrich. Will by default use the default cache size which is 1000. Setting the value to -1 allows to turn off the cache all together.</span></td></tr></tbody></table></div></div><p><strong>Using the</strong> <strong><a shape="rect" href="fluent-builders.html">Fluent Builders</a></strong></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div><p><span class="confluence-anchor-link" id="ContentEnricher-enrich-dsl"></span></p><h3 id="ContentEnricher-ContentenrichmentusingtheenrichDSLelement">Content enrichment using the <code>enrich</code> DSL element</h3><p>Camel comes with two flavors of content enricher in the DSL</p><ul class="alternate"><li><code>enrich</code></li><li><code>pollEnrich</code></li></ul><p><code>enrich</code> uses a <code>Producer</code> to obtain the additional data. It is usually used for <a shape="rect" href="request-reply.html">Request Reply</a> messaging, for instance to invoke an external web service.<br clear="none"> <code>pollEnrich</code> on the other hand uses a <a shape="rect" href="polling-consumer.html">Polling Consumer</a> to obtain the additional data. It is usually used for <a shape="rect" href="event-message.html">Event Message</a> messaging, for instance to read a file or download a <a shape="rect" href="ftp2.html">FTP</a> file.</p><div class="confluence-information-macro co nfluence-information-macro-warning"><p class="title">Camel 2.15 or older - Data from current Exchange not used</p><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p><code>pollEnrich</code> or <code>enrich</code> does <strong>not</strong> access any data from the current <a shape="rect" href="exchange.html">Exchange</a> which means when polling it cannot use any of the existing headers you may have set on the <a shape="rect" href="exchange.html">Exchange</a>. For example you cannot set a filename in the <code>Exchange.FILE_NAME</code> header and use <code>pollEnrich</code> to consume only that file. For that you <strong>must</strong> set the filename in the endpoint URI.</p><p>Instead of using <code>enrich</code> you can use <a shape="rect" href="recipient-list.html">Recipient List</a> and have dynamic endpoints and define an <code>AggregationStrategy</code> on the <a shape="rect" href="r ecipient-list.html">Recipient List</a> which then would work as a <code>enrich</code> would do.</p><p>pollEnrich only accept one message as response. That means that if you target to enrich your original message with the enricher collecting messages from a seda, ... components using an aggregation strategy. Only one response message will be aggregated with the original message.</p><p>From <strong>Camel 2.16</strong> onwards both enrich and pollEnrich supports dynamic endpoints that uses an <a shape="rect" href="expression.html">Expression</a> to compute the uri, which allows to use data from the current <a shape="rect" href="exchange.html">Exchange</a>. In other words all what is told above no longer apply and it just works.</p></div></div><h3 id="ContentEnricher-EnrichOptions">Enrich Options</h3><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>uri</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The endpoint uri for the external service to enrich from. You must use either <code>uri</code> or <code>ref</code>. <strong>Important:</strong> From Camel 2.16 onwards, this option is removed, and you use an <a shape="rect" href="expression.html">Expression</a> to configure the uri, such as <a shape="rect" href="simple.html">Simple</a> or <a shape="rect" href="constant.html">Constant</a> or any other dynamic language that can compute the uri dynamically using values from the current <a shape="rect" href="exchange.html">Exchange</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ref</code></p></td><td colspan="1" rowspan="1" class="co nfluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Refers to the endpoint for the external service to enrich from. You must use either <code>uri</code> or <code>ref</code>. <span> </span><strong>Important:</strong><span> From Camel 2.16 onwards, this option is removed, and you use an </span><a shape="rect" href="expression.html">Expression</a><span> to configure the uri, such as </span><a shape="rect" href="simple.html">Simple</a><span> or </span><a shape="rect" href="constant.html">Constant</a><span> or any other dynamic language that can compute the uri dynamically using values from the current </span><span> </span><a shape="rect" href="exchange.html">Exchange</a><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">expression</td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> Mandatory. The<span> </span><a shape="rect" href="expression.html">Expression</a><span> to configure the uri, such as </span><a shape="rect" href="simple.html">Simple</a><span> or </span><a shape="rect" href="constant.html">Constant</a><span> or any other dynamic language that can compute the uri dynamically using values from the current </span><span> </span><a shape="rect" href="exchange.html">Exchange</a><span>.</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>strategyRef</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Refers to an <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html">AggregationStrategy</a> to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message. From <strong>Camel 2 .12</strong> onwards you can also use a POJO as the <code>AggregationStrategy</code>, see the <a shape="rect" href="aggregator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>strategyMethodName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> This option can be used to explicit declare the method name to use, when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggregator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>strategyMethodAllowNull</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> If this option is <code>false</code> then the aggregate method is not used if there was no data to enrich. If this option is <code>true</code> then <code>null</code> values is used as the <code>oldExchange</code> (when no data to enrich), when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggregator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>aggregateOnException</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.14:</strong> If this option is <code>false</code> then the aggregate method is <strong>not</strong> used if there was an exception thrown while trying to retrieve the data to enrich from the resource. Setting this option to <code>true</code> allows end users to control what to do if there was an exception in the <code>aggregate</code> method. For example to suppress the exception or set a custom message body etc.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>shareUnitOfWork</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> <span style="color: rgb(0,0,0);"> Shares the unit of work with the parent and the resource exchange. Enrich will by default not share unit of work between the parent exchange and the resource exchange. This means the resource exchange has its own individual unit of work. See <a shape="rect" href="splitter.html">Splitter</a> for more information and example.</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>cacheSize</code></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> <span style="color: rgb(0,0,0);">Allows to configure the cache size for the </span><code>ProducerCache</code><span style="color: rgb(0,0,0);"> which caches producers for reuse in the e nrich. Will by default use the default cache size which is 1000. Setting the value to -1 allows to turn off the cache all together.</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>ignoreInvalidEndpoint</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong><span style="color: rgb(0,0,0);"> Whether to ignore an endpoint URI that could not be resolved. If disabled, Camel will throw an exception identifying the invalid endpoint URI.</span></td></tr></tbody></table></div></div><p><strong>Using the</strong> <strong><a shape="rect" href="fluent-builders.html">Fluent Builders</a></strong></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[AggregationStrategy aggregationStrategy = ... from("direct:start") @@ -213,7 +213,7 @@ from("direct:resource") <to uri="direct:result"/> </route> ]]></script> -</div></div><h3 id="ContentEnricher-ContentenrichmentusingpollEnrich">Content enrichment using <code>pollEnrich</code></h3><p>The <code>pollEnrich</code> works just as the <code>enrich</code> however as it uses a <a shape="rect" href="polling-consumer.html">Polling Consumer</a> we have 3 methods when polling</p><ul class="alternate"><li>receive</li><li>receiveNoWait</li><li>receive(timeout)</li></ul><h3 id="ContentEnricher-PollEnrichOptions">PollEnrich Options</h3><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>uri</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The endpoint uri for the external service to enrich from. You must use either <code>uri</code> or <code>ref</code>. <strong>Important:</strong><span> From Camel 2.16 onwards, this option is removed, and you use an </span><a shape="rect" href="expression.html">Expression</a><span> to configure the uri, such as </span><a shape="rect" href="simple.html">Simple</a><span> or </span><a shape="rect" href="constant.html">Constant</a><span> or any other dynamic language that can compute the uri dynamically using values from the current </span><span> </span><a shape="rect" href="exchange.html">Exchange</a><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ref</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Refers to the endpoint for the external service to enrich from. You must use either <code>uri</code> or <code>ref</code>. <strong>Important:</strong><span> From Camel 2.16 o nwards, this option is removed, and you use an </span><a shape="rect" href="expression.html">Expression</a><span> to configure the uri, such as </span><a shape="rect" href="simple.html">Simple</a><span> or </span><a shape="rect" href="constant.html">Constant</a><span> or any other dynamic language that can compute the uri dynamically using values from the current </span><span> </span><a shape="rect" href="exchange.html">Exchange</a><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>expression</code></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong><span> Mandatory. The</span><span> </span><a shape="rect" href="expression.html">Expression</a><span> to configure the uri, such as </span><a shape="rect" href="simple.html">Simple</a><span> or </span><a shape="rect" href="constant.html">Constant</a><span> or any other dynamic language that can compute t he uri dynamically using values from the current </span><span> </span><a shape="rect" href="exchange.html">Exchange</a><span>.</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>strategyRef</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Refers to an <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html">AggregationStrategy</a> to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message. From <strong>Camel 2.12</strong> onwards you can also use a POJO as the <code>AggregationStrategy</code>, see the <a shape="rect" href="aggregator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>st rategyMethodName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> This option can be used to explicit declare the method name to use, when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggregator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>strategyMethodAllowNull</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> If this option is <code>false</code> then the aggregate method is not used if there was no data to enrich. If this option is <code>true</code> then <code>null</code> values is used as the <code>oldExchange</code> (when no data to enrich), when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggre gator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeout</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>-1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Timeout in millis when polling from the external service. See below for important details about the timeout.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>aggregateOnException</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.14:</strong> If this option is <code>false</code> then the aggregate method is <strong>not</strong> used if there was an exception thrown while trying to retrieve the data to enrich from the resource. Setting this option to <code>true</code> allows end users to control what to do if there was an exception in the <code>aggregate</code> method. For example to suppress th e exception or set a custom message body etc.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>cacheSize</code></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> <span style="color: rgb(0,0,0);">Allows to configure the cache size for the </span><code>ConsumerCache</code><span style="color: rgb(0,0,0);"> which caches consumers for reuse in the pollEnrich. Will by default use the default cache size which is 1000. Setting the value to -1 allows to turn off the cache all together.</span></td></tr></tbody></table></div></div><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Good practice to use timeout value</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>By default Camel will use the <code>receive</code>. Which may blo ck until there is a message available. It is therefore recommended to always provide a timeout value, to make this clear that we may wait for a message, until the timeout is hit.</p></div></div><p>If there is no data then the <code>newExchange</code> in the aggregation strategy is <code>null</code>.</p><p>You can pass in a timeout value that determines which method to use</p><ul class="alternate"><li>if timeout is -1 or other negative number then <code>receive</code> is selected (<strong>Important:</strong> the <code>receive</code> method may block if there is no message)</li><li>if timeout is 0 then <code>receiveNoWait</code> is selected</li><li>otherwise <code>receive(timeout)</code> is selected</li></ul><p>The timeout values is in millis.</p><div class="confluence-information-macro confluence-information-macro-warning"><p class="title">Camel 2.15 or older - Data from current Exchange not used</p><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro- icon"></span><div class="confluence-information-macro-body"><p><code>pollEnrich</code> does <strong>not</strong> access any data from the current <a shape="rect" href="exchange.html">Exchange</a> which means when polling it cannot use any of the existing headers you may have set on the <a shape="rect" href="exchange.html">Exchange</a>. For example you cannot set a filename in the <code>Exchange.FILE_NAME</code> header and use <code>pollEnrich</code> to consume only that file. For that you <strong>must</strong> set the filename in the endpoint URI.</p><p><span>From </span><strong>Camel 2.16</strong><span> onwards both enrich and pollEnrich supports dynamic endpoints that uses an </span><a shape="rect" href="expression.html">Expression</a><span> to compute the uri, which allows to use data from the current </span><a shape="rect" href="exchange.html">Exchange</a><span>. In other words all what is told above no longer apply and it just works.</span></p></div></div><h4 id="ContentEnriche r-Example">Example</h4><p>In this example we enrich the message by loading the content from the file named inbox/data.txt.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div><h3 id="ContentEnricher-ContentenrichmentusingpollEnrich">Content enrichment using <code>pollEnrich</code></h3><p>The <code>pollEnrich</code> works just as the <code>enrich</code> however as it uses a <a shape="rect" href="polling-consumer.html">Polling Consumer</a> we have 3 methods when polling</p><ul class="alternate"><li>receive</li><li>receiveNoWait</li><li>receive(timeout)</li></ul><h3 id="ContentEnricher-PollEnrichOptions">PollEnrich Options</h3><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>uri</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The endpoint uri for the external service to enrich from. You must use either <code>uri</code> or <code>ref</code>. <strong>Important:</strong><span> From Camel 2.16 onwards, this option is removed, and you use an </span><a shape="rect" href="expression.html">Expression</a><span> to configure the uri, such as </span><a shape="rect" href="simple.html">Simple</a><span> or </span><a shape="rect" href="constant.html">Constant</a><span> or any other dynamic language that can compute the uri dynamically using values from the current </span><span> </span><a shape="rect" href="exchange.html">Exchange</a><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ref</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Refers to the endpoint for the external service to enrich from. You must use either <code>uri</code> or <code>ref</code>. <strong>Important:</strong><span> From Camel 2.16 o nwards, this option is removed, and you use an </span><a shape="rect" href="expression.html">Expression</a><span> to configure the uri, such as </span><a shape="rect" href="simple.html">Simple</a><span> or </span><a shape="rect" href="constant.html">Constant</a><span> or any other dynamic language that can compute the uri dynamically using values from the current </span><span> </span><a shape="rect" href="exchange.html">Exchange</a><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>expression</code></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong><span> Mandatory. The</span><span> </span><a shape="rect" href="expression.html">Expression</a><span> to configure the uri, such as </span><a shape="rect" href="simple.html">Simple</a><span> or </span><a shape="rect" href="constant.html">Constant</a><span> or any other dynamic language that can compute t he uri dynamically using values from the current </span><span> </span><a shape="rect" href="exchange.html">Exchange</a><span>.</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>strategyRef</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Refers to an <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html">AggregationStrategy</a> to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message. From <strong>Camel 2.12</strong> onwards you can also use a POJO as the <code>AggregationStrategy</code>, see the <a shape="rect" href="aggregator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>st rategyMethodName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> This option can be used to explicit declare the method name to use, when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggregator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>strategyMethodAllowNull</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> If this option is <code>false</code> then the aggregate method is not used if there was no data to enrich. If this option is <code>true</code> then <code>null</code> values is used as the <code>oldExchange</code> (when no data to enrich), when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggre gator2.html">Aggregate</a> page for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeout</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>-1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Timeout in millis when polling from the external service. See below for important details about the timeout.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>aggregateOnException</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.14:</strong> If this option is <code>false</code> then the aggregate method is <strong>not</strong> used if there was an exception thrown while trying to retrieve the data to enrich from the resource. Setting this option to <code>true</code> allows end users to control what to do if there was an exception in the <code>aggregate</code> method. For example to suppress th e exception or set a custom message body etc.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>cacheSize</code></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> <span style="color: rgb(0,0,0);">Allows to configure the cache size for the </span><code>ConsumerCache</code><span style="color: rgb(0,0,0);"> which caches consumers for reuse in the pollEnrich. Will by default use the default cache size which is 1000. Setting the value to -1 allows to turn off the cache all together.</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>ignoreInvalidEndpoint</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong><span style="color: rgb(0,0,0);"> Whether to ignore an endpoint URI that could not be resolved. If disabled, Camel will throw an exc eption identifying the invalid endpoint URI.</span></td></tr></tbody></table></div></div><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Good practice to use timeout value</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>By default Camel will use the <code>receive</code>. Which may block until there is a message available. It is therefore recommended to always provide a timeout value, to make this clear that we may wait for a message, until the timeout is hit.</p></div></div><p>If there is no data then the <code>newExchange</code> in the aggregation strategy is <code>null</code>.</p><p>You can pass in a timeout value that determines which method to use</p><ul class="alternate"><li>if timeout is -1 or other negative number then <code>receive</code> is selected (<strong>Important:</strong> the <code>receive</code> method may block if there is no message)</li><li>if timeout is 0 then <code>receiveNoWait</code> is selected</li><li>otherwise <code>receive(timeout)</code> is selected</li></ul><p>The timeout values is in millis.</p><div class="confluence-information-macro confluence-information-macro-warning"><p class="title">Camel 2.15 or older - Data from current Exchange not used</p><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p><code>pollEnrich</code> does <strong>not</strong> access any data from the current <a shape="rect" href="exchange.html">Exchange</a> which means when polling it cannot use any of the existing headers you may have set on the <a shape="rect" href="exchange.html">Exchange</a>. For example you cannot set a filename in the <code>Exchange.FILE_NAME</code> header and use <code>pollEnrich</code> to consume only that file. For that you <strong>must</strong> set the filename in the endpoint URI.</p>< p><span>From </span><strong>Camel 2.16</strong><span> onwards both enrich and pollEnrich supports dynamic endpoints that uses an </span><a shape="rect" href="expression.html">Expression</a><span> to compute the uri, which allows to use data from the current </span><a shape="rect" href="exchange.html">Exchange</a><span>. In other words all what is told above no longer apply and it just works.</span></p></div></div><h4 id="ContentEnricher-Example">Example</h4><p>In this example we enrich the message by loading the content from the file named inbox/data.txt.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[from("direct:start") .pollEnrich("file:inbox?fileName=data.txt") .to("direct:result");
Modified: websites/production/camel/content/transport.html ============================================================================== --- websites/production/camel/content/transport.html (original) +++ websites/production/camel/content/transport.html Fri Jul 17 07:20:59 2015 @@ -591,7 +591,9 @@ disruptor-vm:someName[?<option>] </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to generate message exchanges when a timer fires You can only consume events from this endpoint.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="twitter.html">Twitter</a> / camel-twitter</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[twitter://endpoint[?options] ]]></script> -</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A twitter endpoint</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="validation.html">Validation</a> / camel-core (camel-spring for Camel 2.8 or older)</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A twitter endpoint</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="undertow.html">Undertow</a> / camel-undertow</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[undertow://host:port/context-path[?options]]]></script> +</div></div></td><td colspan="1" rowspan="1" class="confluenceTd">HTTP server and client using the light-weight <a shape="rect" class="external-link" href="http://undertow.io/index.html" rel="nofollow">Undertow</a> server.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="validation.html">Validation</a> / camel-core (camel-spring for Camel 2.8 or older)</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[validation:someLocalOrRemoteResource[?options] ]]></script> </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Validates the payload of a message using <a shape="rect" class="external-link" href="http://www.w3.org/XML/Schema" rel="nofollow">XML Schema</a> and JAXP Validation</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="velocity.html">Velocity</a> / camel-velocity</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> Added: websites/production/camel/content/undertow.html ============================================================================== --- websites/production/camel/content/undertow.html (added) +++ websites/production/camel/content/undertow.html Fri Jul 17 07:20:59 2015 @@ -0,0 +1,183 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<html> +<head> + <link href="//camel.apache.org/styles/site.css" rel="stylesheet" type="text/css"> + <link href="//camel.apache.org/styles/type-settings.css" rel="stylesheet" type="text/css"> + <script src="//camel.apache.org/styles/prototype.js" type="text/javascript"></script> + <script src="//camel.apache.org/styles/rico.js" type="text/javascript"></script> + <script src="//camel.apache.org/styles/site.js" type="text/javascript"></script> + + <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> + + <style type="text/css"> + .maincontent { overflow:hidden; } + </style> + <!--[if IE]> + <style type="text/css"> + .maincontent { width:100%; } + </style> + <![endif]--> + + + <link href='//camel.apache.org/styles/highlighter/styles/shCoreCamel.css' rel='stylesheet' type='text/css' /> + <link href='//camel.apache.org/styles/highlighter/styles/shThemeCamel.css' rel='stylesheet' type='text/css' /> + <script src='//camel.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> + <script src='//camel.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> + <script src='//camel.apache.org/styles/highlighter/scripts/shBrushXml.js' type='text/javascript'></script> + + <script type="text/javascript"> + SyntaxHighlighter.defaults['toolbar'] = false; + SyntaxHighlighter.all(); + </script> + + <title> + Apache Camel: Undertow + </title> +</head> +<body> +<div class="white_box"> +<div class="header"> + <div class="header_l"> + <div class="header_r"> + </div> + </div> +</div> +<div class="content"> + <div class="content_l"> + <div class="content_r"> + <div> + <!-- Banner --> +<div id="banner-content"><div id="asf_logo"> + <div id="activemq_logo" style="height:108px; background:transparent url(banner.data/apache-camel-7.png) no-repeat scroll left top;"> + <a shape="rect" style="float:left; width:310px;display:block;text-indent:-5000px;text-decoration:none;line-height:140px; margin-top:20px; margin-left:18px;" href="http://camel.apache.org/">Camel</a> + <a shape="rect" style="float:right; width:180px;display:block;text-indent:-5000px;text-decoration:none;line-height:80px; margin-top:45px; margin-right:10px;" href="http://www.apache.org">Apache</a> + </div> +</div></div> + <!-- Banner --> + <div class="top_red_bar"> + <div id="site-breadcrumbs"> + <!-- Breadcrumbs --> +<a href="index.html">Apache Camel</a> > <a href="documentation.html">Documentation</a> > <a href="components.html">Components</a> > <a href="undertow.html">Undertow</a> + </div> + <!-- Quicklinks --> +<div id="site-quicklinks"><p><a shape="rect" href="download.html">Download</a> | <a shape="rect" href="javadoc.html">JavaDoc</a> | <a shape="rect" href="source.html">Source</a> | <a shape="rect" href="discussion-forums.html">Forums</a> | <a shape="rect" href="support.html">Support</a></p></div> + <!-- Quicklinks --> + </div> + + <table border="0"> + <tbody> + <tr> + <td valign="top" width="100%"> +<div class="wiki-content maincontent"><h2 id="Undertow-UndertowComponent">Undertow Component</h2><p><strong>Available as of Camel 2.16</strong></p><p>The <strong>undertow</strong> component provides HTTP-based <a shape="rect" href="endpoint.html">endpoints</a> for consuming and producing HTTP requests. That is, the Undertow component behaves as a simple Web server.<br clear="none"> Undertow can also be used as a http client which mean you can also use it with Camel as a producer.</p><p>Maven users will need to add the following dependency to their <code>pom.xml</code> for this component:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[<dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-undertow</artifactId> + <version>x.x.x</version> + <!-- use the same version as your Camel core version --> +</dependency> +]]></script> +</div></div><h3 id="Undertow-URIformat">URI format</h3><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[undertow:http://hostname[:port][/resourceUri][?options] +]]></script> +</div></div><p>You can append query options to the URI in the following format, <code>?option=value&option=value&...</code></p><h3 id="Undertow-Options">Options</h3><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>httpMethodRestrict</p></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd">Used to only allow consuming if the HttpMethod matches, such as GET/POST/PUT etc. Multiple methods can be specified separated by comma.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>matchOnUriPrefix</p></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" cl ass="confluenceTd">Whether or not the consumer should try to find a target consumer by matching the URI prefix if no exact match is found.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>headerFilterStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd">To use a custom HeaderFilterStrategy to filter header to and from Camel message.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>sslContext</p></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd">To configure security using SSLContextParameters</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">throwExceptionOnFailure</td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd">If the option is true, HttpProducer will ignore the Exchange.HTTP_URI header, and use the endpoint's URI for request. You may also se t the option throwExceptionOnFailure to be false to let the producer send all the fault response back.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">transferException</td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd">Option to disable throwing the HttpOperationFailedException in case of failed responses from the remote server. This allows you to get all responses regardless of the HTTP status code.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">undertowHttpBinding</td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd">To use a custom UndertowHttpBinding to control the mapping between Camel message and undertow.</td></tr></tbody></table></div></div><h3 id="Undertow-MessageHeaders">Message Headers</h3><p>Camel uses the same message headers as the <a shape="rect" href="http.html">HTTP</a> component.<br clear="none"> From Camel 2.2, it a lso uses <code>Exchange.HTTP_CHUNKED,CamelHttpChunked</code> header to turn on or turn off the chuched encoding on the camel-undertow consumer.</p><p>Camel also populates <strong>all</strong> request.parameter and request.headers. For example, given a client request with the URL, <code><a shape="rect" class="external-link" href="http://myserver/myserver?orderid=123" rel="nofollow">http://myserver/myserver?orderid=123</a></code>, the exchange will contain a header named <code>orderid</code> with the value 123.</p><h3 id="Undertow-ComponentOptions">Component Options</h3><p>The <code>UndertowComponent</code> provides the following options:</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>undertowHttpBinding</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom UndertowHttpBinding to control the mapping between Camel message and undertow.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>httpConfiguration</p></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd">To use the shared HttpConfiguration as base configuration.</td></tr></tbody></table></div></div><h3 id="Undertow-ProducerExample">Producer Example</h3><p>The following is a basic example of how to send an HTTP request to an existing HTTP endpoint.</p><p>in Java DSL</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[from("direct:start").to("undertow:http://www.google.com"); +]]></script> +</div></div><p>or in Spring XML</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[<route> + <from uri="direct:start"/> + <to uri="undertow:http://www.google.com"/> +<route> +]]></script> +</div></div><h3 id="Undertow-ConsumerExample">Consumer Example</h3><p>In this sample we define a route that exposes a HTTP service at <code><a shape="rect" class="external-link" href="http://localhost:8080/myapp/myservice" rel="nofollow">http://localhost:8080/myapp/myservice</a></code>:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[<route> + <from uri="undertow:http://localhost:8080/myapp/myservice"/> + <to uri="bean:myBean"/> +</route>]]></script> +</div></div><div class="confluence-information-macro confluence-information-macro-note"><p class="title">Usage of localhost</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When you specify <code>localhost</code> in a URL, Camel exposes the endpoint only on the local TCP/IP network interface, so it cannot be accessed from outside the machine it operates on.</p><p>If you need to expose a Jetty endpoint on a specific network interface, the numerical IP address of this interface should be used as the host. If you need to expose a Jetty endpoint on all network interfaces, the <code>0.0.0.0</code> address should be used.</p></div></div><div class="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>To listen across an entire UR I prefix, see <a shape="rect" href="how-do-i-let-jetty-match-wildcards.html">How do I let Jetty match wildcards</a>.</p></div></div><div class="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>If you actually want to expose routes by HTTP and already have a Servlet, you should instead refer to the <a shape="rect" href="https://cwiki.apache.org/confluence/display/CXF20DOC/Servlet+Transport">Servlet Transport</a>.</p></div></div><p> </p><p> </p><p></p><h3 id="Undertow-SeeAlso">See Also</h3> +<ul><li><a shape="rect" href="configuring-camel.html">Configuring Camel</a></li><li><a shape="rect" href="component.html">Component</a></li><li><a shape="rect" href="endpoint.html">Endpoint</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li></ul><ul class="alternate"><li><a shape="rect" href="jetty.html">Jetty</a></li><li><a shape="rect" href="http.html">HTTP</a></li></ul></div> + </td> + <td valign="top"> + <div class="navigation"> + <div class="navigation_top"> + <!-- NavigationBar --> +<div class="navigation_bottom" id="navigation_bottom"><h3 id="Navigation-Overview"><a shape="rect" href="overview.html">Overview</a></h3><ul class="alternate"><li><a shape="rect" href="index.html">Home</a></li><li><a shape="rect" href="download.html">Download</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="faq.html">FAQ</a></li></ul><h3 id="Navigation-Documentation"><a shape="rect" href="documentation.html">Documentation</a></h3><ul class="alternate"><li><a shape="rect" href="user-guide.html">User Guide</a></li><li><a shape="rect" href="manual.html">Manual</a></li><li><a shape="rect" href="books.html">Books</a></li><li><a shape="rect" href="tutorials.html">Tutorials</a></li><li><a shape="rect" href="examples.html">Examples</a></li><li><a shape="rect" href="cookbook.html">Cookbook</a></li><li><a shape="rect" href="architecture.html">Architecture</a></li><li><a shape="rect" href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a></li><li><a shape="rect" href="dsl.html">DSL</a></li><li><a shape="rect" href="components.html">Components</a></li><li><a shape="rect" href="data-format.html">Data Format</a></li><li><a shape="rect" href="languages.html">Languages</a></li><li><a shape="rect" href="security.html">Security</a></li><li><a shape="rect" href="security-advisories.html">Security Advisories</a></li></ul><h3 id="Navigation-Search">Search</h3><form enctype="application/x-www-form-urlencoded" method="get" id="cse-search-box" action="http://www.google.com/cse"> + <div> + <input type="hidden" name="cx" value="007878419884033443453:m5nhvy4hmyq"> + <input type="hidden" name="ie" value="UTF-8"> + <input type="text" name="q" size="21"> + <input type="submit" name="sa" value="Search"> + </div> +</form> +<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script><h3 id="Navigation-Community"><a shape="rect" href="community.html">Community</a></h3><ul class="alternate"><li><a shape="rect" href="support.html">Support</a></li><li><a shape="rect" href="contributing.html">Contributing</a></li><li><a shape="rect" href="discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" href="mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" href="user-stories.html">User Stories</a></li><li><a shape="rect" href="news.html">News</a></li><li><a shape="rect" href="articles.html">Articles</a></li><li><a shape="rect" href="site.html">Site</a></li><li><a shape="rect" href="team.html">Team</a></li><li><a shape="rect" class="external-link" href="http://camel-extra.googlecode.com/" rel="nofollow">Camel Extra</a></li></ul><h3 id="Navigation-Developers"><a shape="rect" href="developers.html">Developers</a></h3><ul class="alternate" ><li><a shape="rect" href="developers.html">Developer Guide</a></li><li><a >shape="rect" href="source.html">Source</a></li><li><a shape="rect" >href="building.html">Building</a></li><li><a shape="rect" >href="javadoc.html">JavaDoc</a></li><li><a shape="rect" >href="irc-room.html">IRC Room</a></li></ul><h3 >id="Navigation-ApacheSoftwareFoundation">Apache Software Foundation</h3><ul >class="alternate"><li><a shape="rect" class="external-link" >href="http://www.apache.org/licenses/">License</a></li><li><a shape="rect" >class="external-link" >href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a > shape="rect" class="external-link" >href="http://www.apache.org/foundation/thanks.html">Thanks</a></li><li><a >shape="rect" class="external-link" >href="http://www.apache.org/security/">Security</a></li></ul></div> + <!-- NavigationBar --> + </div> + </div> + </td> + </tr> + </tbody> + </table> + + + <div class="bottom_red_bar"></div> + </div> + </div> + </div> +</div> +<div class="black_box"> +<div class="footer"> + <div class="footer_l"> + <div class="footer_r"> + <div> + <a href="$base/privacy-policy.html">Privacy Policy</a> - + (<a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=60623900">edit page</a>) + (<a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=60623900&showComments=true&showCommentArea=true#addcomment">add comment</a>) + </div> + </div> + </div> +</div> +</div> +</div> +<div class="design_attribution"> +© 2004-2015 The Apache Software Foundation. +<br> +Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. +<br> +<a href="http://hiramchirino.com">Graphic Design By Hiram</a> +</div> + +<!-- Camel committers that would like access to the Analytics, send a note to priv...@camel.apache.org --> +<script type="text/javascript"> + + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-25976253-1']); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); + +</script> + +</body> +</html> + + Modified: websites/production/camel/content/uris.html ============================================================================== --- websites/production/camel/content/uris.html (original) +++ websites/production/camel/content/uris.html Fri Jul 17 07:20:59 2015 @@ -596,7 +596,9 @@ disruptor-vm:someName[?<option>] </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to generate message exchanges when a timer fires You can only consume events from this endpoint.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="twitter.html">Twitter</a> / camel-twitter</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[twitter://endpoint[?options] ]]></script> -</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A twitter endpoint</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="validation.html">Validation</a> / camel-core (camel-spring for Camel 2.8 or older)</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A twitter endpoint</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="undertow.html">Undertow</a> / camel-undertow</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[undertow://host:port/context-path[?options]]]></script> +</div></div></td><td colspan="1" rowspan="1" class="confluenceTd">HTTP server and client using the light-weight <a shape="rect" class="external-link" href="http://undertow.io/index.html" rel="nofollow">Undertow</a> server.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="validation.html">Validation</a> / camel-core (camel-spring for Camel 2.8 or older)</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[validation:someLocalOrRemoteResource[?options] ]]></script> </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Validates the payload of a message using <a shape="rect" class="external-link" href="http://www.w3.org/XML/Schema" rel="nofollow">XML Schema</a> and JAXP Validation</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="velocity.html">Velocity</a> / camel-velocity</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">