Author: buildbot Date: Mon Jan 4 21:21:41 2016 New Revision: 977045 Log: Production update by buildbot for camel
Modified: websites/production/camel/content/bean.html websites/production/camel/content/book-component-appendix.html websites/production/camel/content/book-in-one-page.html websites/production/camel/content/cache/main.pageCache websites/production/camel/content/camel-2170-release.html websites/production/camel/content/class.html Modified: websites/production/camel/content/bean.html ============================================================================== --- websites/production/camel/content/bean.html (original) +++ websites/production/camel/content/bean.html Mon Jan 4 21:21:41 2016 @@ -86,35 +86,10 @@ <tbody> <tr> <td valign="top" width="100%"> -<div class="wiki-content maincontent"><h2 id="Bean-BeanComponent">Bean Component</h2> - -<p>The <strong>bean:</strong> component binds beans to Camel message exchanges.</p> - -<h3 id="Bean-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[ -bean:beanID[?options] +<div class="wiki-content maincontent"><h2 id="Bean-BeanComponent">Bean Component</h2><p>The <strong>bean:</strong> component binds beans to Camel message exchanges.</p><h3 id="Bean-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[bean:beanID[?options] ]]></script> -</div></div> -<p>Where <strong>beanID</strong> can be any string which is used to look up the bean in the <a shape="rect" href="registry.html">Registry</a></p> - -<h3 id="Bean-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> Type </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>method</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>String</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The method name from the bean that will be invoked. If not provided, Camel will try to determine the method itself. In case of ambiguity an exception will be thrown. See <a shape="rect" href="bean-binding.html">Bean Binding</a> for more details. From <strong>Camel 2.8</strong> onwards you can specify type qualifiers to pin-point the exact method to use for overloaded methods. From <strong>Camel 2.9</strong> onwards you can specify parameter values directly in the method syntax. See more details at <a shape="rect" href="bean-binding.html">Bean Binding</a>. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>cache</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> If enabled, Camel will cache the result of the first <a shape="rect" href="registry.html">Registry</a> look-up. Cache can be enabled if the bean in the <a shape="rect" href="registry.html">Registry</a> is defined as a singleton scope. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>multiParameterArray</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class=" confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> How to treat the parameters which are passed from the message body; if it is <code>true</code>, the In message body should be an array of parameters. </p></td></tr></tbody></table></div> -</div> - -<p>You can append query options to the URI in the following format, <code>?option=value&option=value&...</code></p> - -<h3 id="Bean-Using">Using</h3> - -<p>The object instance that is used to consume messages must be explicitly registered with the <a shape="rect" href="registry.html">Registry</a>. For example, if you are using Spring you must define the bean in the Spring configuration, <code>spring.xml</code>; or if you don't use Spring, by registering the bean in JNDI.</p> - -<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div> - -<p>Once an endpoint has been registered, you can build Camel routes that use it to process exchanges.</p> - -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div><p>Where <strong>beanID</strong> can be any string which is used to look up the bean in the <a shape="rect" href="registry.html">Registry</a></p><h3 id="Bean-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>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>method</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The method name from the bean that will be invoked. If not provided, Camel will try to determine the method itself. In case of ambiguity an exception will be thrown. See <a shape="rect" href="bean-binding.html">Bean Binding</a> for more details. From <strong>Camel 2.8</strong> onwards you can specify type qualifiers to pin-point the exact method to use for overloaded methods. From <strong>Camel 2.9</strong> onwards you can specify parameter values directly in the method syntax. See more details at <a shape="rect" href="bean-binding.html">Bean Binding</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cache</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If enabled, Camel will cache the result of the first <a shape="rect" href="registry.html">Registry</a> look-up. Cache can be enabled if the bean in the <a shape="rect" href="registry.html">Registry</a> is defined as a singleton scope.</p></td></tr><tr><td colspan= "1" rowspan="1" class="confluenceTd"><p><code>multiParameterArray</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How to treat the parameters which are passed from the message body; if it is <code>true</code>, the In message body should be an array of parameters.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>bean.xxx</code></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.17:</strong> To configure additional options on the create bean instance from the class name. For example to configure a foo option on the bean, use bean.foo=123.</td></tr></tbody></table></div></div><p>You can append query options to the URI in the following f ormat, <code>?option=value&option=value&...</code></p><h3 id="Bean-Using">Using</h3><p>The object instance that is used to consume messages must be explicitly registered with the <a shape="rect" href="registry.html">Registry</a>. For example, if you are using Spring you must define the bean in the Spring configuration, <code>spring.xml</code>; or if you don't use Spring, by registering the bean in JNDI.</p><div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>Once an endpoint has been registered, you can build Camel routes that use it to process exchanges.<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[ // lets add simple route camelContext.addRoutes(new RouteBuilder() { @@ -123,33 +98,19 @@ camelContext.addRoutes(new RouteBuilder( } }); ]]></script> -</div></div> - -<p>A <strong>bean:</strong> endpoint cannot be defined as the input to the route; i.e. you cannot consume from it, you can only route from some inbound message <a shape="rect" href="endpoint.html">Endpoint</a> to the bean endpoint as output. So consider using a <strong>direct:</strong> or <strong>queue:</strong> endpoint as the input. </p> - -<p>You can use the <code>createProxy()</code> methods on <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/bean/ProxyHelper.html">ProxyHelper</a> to create a proxy that will generate BeanExchanges and send them to any endpoint:</p> - -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div>A <strong>bean:</strong> endpoint cannot be defined as the input to the route; i.e. you cannot consume from it, you can only route from some inbound message <a shape="rect" href="endpoint.html">Endpoint</a> to the bean endpoint as output. So consider using a <strong>direct:</strong> or <strong>queue:</strong> endpoint as the input.<p>You can use the <code>createProxy()</code> methods on <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/bean/ProxyHelper.html">ProxyHelper</a> to create a proxy that will generate BeanExchanges and send them to any endpoint:</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[ ISay proxy = new ProxyBuilder(camelContext).endpoint("direct:hello").build(ISay.class); String rc = proxy.say(); assertEquals("Good Bye!", rc); ]]></script> -</div></div> - -<p>And the same route using Spring DSL:</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> +</div></div>And the same route using Spring DSL:<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:hello"> <to uri="bean:bye"/> </route> ]]></script> -</div></div> - -<h3 id="Bean-Beanasendpoint">Bean as endpoint</h3> -<p>Camel also supports invoking <a shape="rect" href="bean.html">Bean</a> as an Endpoint. In the route below:</p> -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div><h3 id="Bean-Beanasendpoint">Bean as endpoint</h3><p>Camel also supports invoking <a shape="rect" href="bean.html">Bean</a> as an Endpoint. In the route below:</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[ <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> @@ -161,10 +122,7 @@ assertEquals("Good Bye!", rc); <bean id="myBean" class="org.apache.camel.spring.bind.ExampleBean"/> ]]></script> -</div></div> -<p>What happens is that when the exchange is routed to the <code>myBean</code> Camel will use the <a shape="rect" href="bean-binding.html">Bean Binding</a> to invoke the bean.<br clear="none"> -The source for the bean is just a plain POJO:</p> -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div>What happens is that when the exchange is routed to the <code>myBean</code> Camel will use the <a shape="rect" href="bean-binding.html">Bean Binding</a> to invoke the bean.<br clear="none"> The source for the bean is just a plain POJO:<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[ public class ExampleBean { @@ -173,16 +131,8 @@ public class ExampleBean { } } ]]></script> -</div></div> -<p>Camel will use <a shape="rect" href="bean-binding.html">Bean Binding</a> to invoke the <code>sayHello</code> method, by converting the Exchange's In body to the <code>String</code> type and storing the output of the method on the Exchange Out body.</p> - -<h3 id="Bean-JavaDSLbeansyntax">Java DSL bean syntax</h3> - -<p>Java DSL comes with syntactic sugar for the <a shape="rect" href="bean.html">Bean</a> component. Instead of specifying the bean explicitly as the endpoint (i.e. <code>to("bean:beanName")</code>) you can use the following syntax:</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[ -// Send message to the bean endpoint +</div></div>Camel will use <a shape="rect" href="bean-binding.html">Bean Binding</a> to invoke the <code>sayHello</code> method, by converting the Exchange's In body to the <code>String</code> type and storing the output of the method on the Exchange Out body.<h3 id="Bean-JavaDSLbeansyntax">Java DSL bean syntax</h3><p>Java DSL comes with syntactic sugar for the <a shape="rect" href="bean.html">Bean</a> component. Instead of specifying the bean explicitly as the endpoint (i.e. <code>to("bean:beanName")</code>) you can use the following syntax:</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[// Send message to the bean endpoint // and invoke method resolved using Bean Binding. from("direct:start").beanRef("beanName"); @@ -190,13 +140,8 @@ from("direct:start").beanRef(& // and invoke given method. from("direct:start").beanRef("beanName", "methodName"); ]]></script> -</div></div> - -<p>Instead of passing name of the reference to the bean (so that Camel will lookup for it in the registry), you can specify the bean itself:</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[ -// Send message to the given bean instance. +</div></div><p>Instead of passing name of the reference to the bean (so that Camel will lookup for it in the registry), you can specify the bean itself:</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[// Send message to the given bean instance. from("direct:start").bean(new ExampleBean()); // Explicit selection of bean method to be invoked. @@ -205,15 +150,8 @@ from("direct:start").bean(new // Camel will create the instance of bean and cache it for you. from("direct:start").bean(ExampleBean.class); ]]></script> -</div></div> - -<h3 id="Bean-BeanBinding">Bean Binding</h3> - -<p>How bean methods to be invoked are chosen (if they are not specified explicitly through the <strong>method</strong> parameter) and how parameter values are constructed from the <a shape="rect" href="message.html">Message</a> are all defined by the <a shape="rect" href="bean-binding.html">Bean Binding</a> mechanism which is used throughout all of the various <a shape="rect" href="bean-integration.html">Bean Integration</a> mechanisms in Camel.</p> - -<h3 id="Bean-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><li><a shape="rect" href="class.html">Class</a> component</li><li><a shape="rect" href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" href="bean-integration.html">Bean Integration</a></li></ul></div> +</div></div><h3 id="Bean-BeanBinding">Bean Binding</h3><p>How bean methods to be invoked are chosen (if they are not specified explicitly through the <strong>method</strong> parameter) and how parameter values are constructed from the <a shape="rect" href="message.html">Message</a> are all defined by the <a shape="rect" href="bean-binding.html">Bean Binding</a> mechanism which is used throughout all of the various <a shape="rect" href="bean-integration.html">Bean Integration</a> mechanisms in Camel.</p><p></p><h3 id="Bean-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><li><a shape="rect" href="class.html">Class</a> component</li><li><a shape="rect" href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" href="bean-integration.html">Bean Integration</a></li></ul></div> </td> <td valign="top"> <div class="navigation"> Modified: websites/production/camel/content/book-component-appendix.html ============================================================================== --- websites/production/camel/content/book-component-appendix.html (original) +++ websites/production/camel/content/book-component-appendix.html Mon Jan 4 21:21:41 2016 @@ -404,35 +404,10 @@ public class BlogService { ]]></script> </div></div><h3 id="BookComponentAppendix-SeeAlso.3">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="rss.html">RSS</a></li></ul> <h2 id="BookComponentAppendix-BeanComponent">Bean Component</h2> - -<p>The <strong>bean:</strong> component binds beans to Camel message exchanges.</p> - -<h3 id="BookComponentAppendix-URIformat.3">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[ -bean:beanID[?options] +<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="rss.html">RSS</a></li></ul> <h2 id="BookComponentAppendix-BeanComponent">Bean Component</h2><p>The <strong>bean:</strong> component binds beans to Camel message exchanges.</p><h3 id="BookComponentAppendix-URIformat.3">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[bean:beanID[?options] ]]></script> -</div></div> -<p>Where <strong>beanID</strong> can be any string which is used to look up the bean in the <a shape="rect" href="registry.html">Registry</a></p> - -<h3 id="BookComponentAppendix-Options.2">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> Type </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>method</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>String</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The method name from the bean that will be invoked. If not provided, Camel will try to determine the method itself. In case of ambiguity an exception will be thrown. See <a shape="rect" href="bean-binding.html">Bean Binding</a> for more details. From <strong>Camel 2.8</strong> onwards you can specify type qualifiers to pin-point the exact method to use for overloaded methods. From <strong>Camel 2.9</strong> onwards you can specify parameter values directly in the method syntax. See more details at <a shape="rect" href="bean-binding.html">Bean Binding</a>. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>cache</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> If enabled, Camel will cache the result of the first <a shape="rect" href="registry.html">Registry</a> look-up. Cache can be enabled if the bean in the <a shape="rect" href="registry.html">Registry</a> is defined as a singleton scope. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>multiParameterArray</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class=" confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> How to treat the parameters which are passed from the message body; if it is <code>true</code>, the In message body should be an array of parameters. </p></td></tr></tbody></table></div> -</div> - -<p>You can append query options to the URI in the following format, <code>?option=value&option=value&...</code></p> - -<h3 id="BookComponentAppendix-Using">Using</h3> - -<p>The object instance that is used to consume messages must be explicitly registered with the <a shape="rect" href="registry.html">Registry</a>. For example, if you are using Spring you must define the bean in the Spring configuration, <code>spring.xml</code>; or if you don't use Spring, by registering the bean in JNDI.</p> - -<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div> - -<p>Once an endpoint has been registered, you can build Camel routes that use it to process exchanges.</p> - -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div><p>Where <strong>beanID</strong> can be any string which is used to look up the bean in the <a shape="rect" href="registry.html">Registry</a></p><h3 id="BookComponentAppendix-Options.2">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>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>method</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The method name from the bean that will be invoked. If not provided, Camel will try to determine the method itself. In case of ambiguity an exception will be thrown. See <a shape="rect" href="bean-binding.html">Bean Binding</a> for more details. From <strong>Camel 2.8</strong> onwards you can specify type qualifiers to pin-point the exact method to use for overloaded methods. From <strong>Camel 2.9</strong> onwards you can specify parameter values directly in the method syntax. See more details at <a shape="rect" href="bean-binding.html">Bean Binding</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cache</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If enabled, Camel will cache the result of the first <a shape="rect" href="registry.html">Registry</a> look-up. Cache can be enabled if the bean in the <a shape="rect" href="registry.html">Registry</a> is defined as a singleton scope.</p></td></ tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>multiParameterArray</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How to treat the parameters which are passed from the message body; if it is <code>true</code>, the In message body should be an array of parameters.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>bean.xxx</code></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.17:</strong> To configure additional options on the create bean instance from the class name. For example to configure a foo option on the bean, use bean.foo=123.</td></tr></tbody></table></div></div><p>You can append query options to the URI in the following format, <code>?option=value&option=value&...</code></p><h3 id="BookComponentAppendix-Using">Using</h3><p>The object instance that is used to consume messages must be explicitly registered with the <a shape="rect" href="registry.html">Registry</a>. For example, if you are using Spring you must define the bean in the Spring configuration, <code>spring.xml</code>; or if you don't use Spring, by registering the bean in JNDI.</p><div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>Once an endpoint has been registered, you can build Camel routes that use it to process exchanges.<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[ // lets add simple route camelContext.addRoutes(new RouteBuilder() { @@ -441,33 +416,19 @@ camelContext.addRoutes(new RouteBuilder( } }); ]]></script> -</div></div> - -<p>A <strong>bean:</strong> endpoint cannot be defined as the input to the route; i.e. you cannot consume from it, you can only route from some inbound message <a shape="rect" href="endpoint.html">Endpoint</a> to the bean endpoint as output. So consider using a <strong>direct:</strong> or <strong>queue:</strong> endpoint as the input. </p> - -<p>You can use the <code>createProxy()</code> methods on <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/bean/ProxyHelper.html">ProxyHelper</a> to create a proxy that will generate BeanExchanges and send them to any endpoint:</p> - -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div>A <strong>bean:</strong> endpoint cannot be defined as the input to the route; i.e. you cannot consume from it, you can only route from some inbound message <a shape="rect" href="endpoint.html">Endpoint</a> to the bean endpoint as output. So consider using a <strong>direct:</strong> or <strong>queue:</strong> endpoint as the input.<p>You can use the <code>createProxy()</code> methods on <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/bean/ProxyHelper.html">ProxyHelper</a> to create a proxy that will generate BeanExchanges and send them to any endpoint:</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[ ISay proxy = new ProxyBuilder(camelContext).endpoint("direct:hello").build(ISay.class); String rc = proxy.say(); assertEquals("Good Bye!", rc); ]]></script> -</div></div> - -<p>And the same route using Spring DSL:</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> +</div></div>And the same route using Spring DSL:<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:hello"> <to uri="bean:bye"/> </route> ]]></script> -</div></div> - -<h3 id="BookComponentAppendix-Beanasendpoint">Bean as endpoint</h3> -<p>Camel also supports invoking <a shape="rect" href="bean.html">Bean</a> as an Endpoint. In the route below:</p> -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div><h3 id="BookComponentAppendix-Beanasendpoint">Bean as endpoint</h3><p>Camel also supports invoking <a shape="rect" href="bean.html">Bean</a> as an Endpoint. In the route below:</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[ <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> @@ -479,10 +440,7 @@ assertEquals("Good Bye!", rc); <bean id="myBean" class="org.apache.camel.spring.bind.ExampleBean"/> ]]></script> -</div></div> -<p>What happens is that when the exchange is routed to the <code>myBean</code> Camel will use the <a shape="rect" href="bean-binding.html">Bean Binding</a> to invoke the bean.<br clear="none"> -The source for the bean is just a plain POJO:</p> -<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +</div></div>What happens is that when the exchange is routed to the <code>myBean</code> Camel will use the <a shape="rect" href="bean-binding.html">Bean Binding</a> to invoke the bean.<br clear="none"> The source for the bean is just a plain POJO:<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[ public class ExampleBean { @@ -491,16 +449,8 @@ public class ExampleBean { } } ]]></script> -</div></div> -<p>Camel will use <a shape="rect" href="bean-binding.html">Bean Binding</a> to invoke the <code>sayHello</code> method, by converting the Exchange's In body to the <code>String</code> type and storing the output of the method on the Exchange Out body.</p> - -<h3 id="BookComponentAppendix-JavaDSLbeansyntax">Java DSL bean syntax</h3> - -<p>Java DSL comes with syntactic sugar for the <a shape="rect" href="bean.html">Bean</a> component. Instead of specifying the bean explicitly as the endpoint (i.e. <code>to("bean:beanName")</code>) you can use the following syntax:</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[ -// Send message to the bean endpoint +</div></div>Camel will use <a shape="rect" href="bean-binding.html">Bean Binding</a> to invoke the <code>sayHello</code> method, by converting the Exchange's In body to the <code>String</code> type and storing the output of the method on the Exchange Out body.<h3 id="BookComponentAppendix-JavaDSLbeansyntax">Java DSL bean syntax</h3><p>Java DSL comes with syntactic sugar for the <a shape="rect" href="bean.html">Bean</a> component. Instead of specifying the bean explicitly as the endpoint (i.e. <code>to("bean:beanName")</code>) you can use the following syntax:</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[// Send message to the bean endpoint // and invoke method resolved using Bean Binding. from("direct:start").beanRef("beanName"); @@ -508,13 +458,8 @@ from("direct:start").beanRef(& // and invoke given method. from("direct:start").beanRef("beanName", "methodName"); ]]></script> -</div></div> - -<p>Instead of passing name of the reference to the bean (so that Camel will lookup for it in the registry), you can specify the bean itself:</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[ -// Send message to the given bean instance. +</div></div><p>Instead of passing name of the reference to the bean (so that Camel will lookup for it in the registry), you can specify the bean itself:</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[// Send message to the given bean instance. from("direct:start").bean(new ExampleBean()); // Explicit selection of bean method to be invoked. @@ -523,15 +468,8 @@ from("direct:start").bean(new // Camel will create the instance of bean and cache it for you. from("direct:start").bean(ExampleBean.class); ]]></script> -</div></div> - -<h3 id="BookComponentAppendix-BeanBinding">Bean Binding</h3> - -<p>How bean methods to be invoked are chosen (if they are not specified explicitly through the <strong>method</strong> parameter) and how parameter values are constructed from the <a shape="rect" href="message.html">Message</a> are all defined by the <a shape="rect" href="bean-binding.html">Bean Binding</a> mechanism which is used throughout all of the various <a shape="rect" href="bean-integration.html">Bean Integration</a> mechanisms in Camel.</p> - -<h3 id="BookComponentAppendix-SeeAlso.4">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><li><a shape="rect" href="class.html">Class</a> component</li><li><a shape="rect" href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" href="bean-integration.html">Bean Integration</a></li></ul> <div class="error"><span class="error">Unable to render {include}</span> The included page could not be found.</div> <h2 id="BookComponentAppendix-BrowseComponent">Browse Component</h2> +</div></div><h3 id="BookComponentAppendix-BeanBinding">Bean Binding</h3><p>How bean methods to be invoked are chosen (if they are not specified explicitly through the <strong>method</strong> parameter) and how parameter values are constructed from the <a shape="rect" href="message.html">Message</a> are all defined by the <a shape="rect" href="bean-binding.html">Bean Binding</a> mechanism which is used throughout all of the various <a shape="rect" href="bean-integration.html">Bean Integration</a> mechanisms in Camel.</p><p></p><h3 id="BookComponentAppendix-SeeAlso.4">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><li><a shape="rect" href="class.html">Class</a> component</li><li><a shape="rect" href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" href="bean-integration.html">Bean Integration</a></li></ul> <div class="error"><span class="error">Unable to render {include}</span> The included page could not be found.</div> <h2 id="BookComponentAppendix-BrowseComponent">Browse Component</h2> <p>The Browse component provides a simple <a shape="rect" href="browsableendpoint.html">BrowsableEndpoint</a> which can be useful for testing, visualisation tools or debugging. The exchanges sent to the endpoint are all available to be browsed.</p> @@ -727,71 +665,39 @@ browse:someName[?options] </div></div><p>Of course you can do the same thing in straight Java:</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[ManagementService.registerMBeans(CacheManager.getInstance(), mbeanServer, true, true, true, true); ]]></script> -</div></div><p>You can get cache hits, misses, in-memory hits, disk hits, size stats this way. You can also change CacheConfiguration parameters on the fly.</p><h3 id="BookComponentAppendix-CachereplicationCamel2.8+">Cache replication Camel 2.8+</h3><p>The Camel Cache component is able to distribute a cache across server nodes using several different replication mechanisms including: RMI, JGroups, JMS and Cache Server.</p><p>There are two different ways to make it work:</p><p><strong>1.</strong> You can configure <code>ehcache.xml</code> manually</p><p>OR</p><p><strong>2.</strong> You can configure these three options:</p><ul class="alternate"><li>cacheManagerFactory</li><li>eventListenerRegistry</li><li>cacheLoaderRegistry</li></ul><p>Configuring Camel Cache replication using the first option is a bit of hard work as you have to configure all caches separately. So in a situation when the all names of caches are not known, using <code>ehcache.xml</code> is not a good idea.</p><p>The second option is much better when you want to use many different caches as you do not need to define options per cache. This is because replication options are set per <code>CacheManager</code> and per <code>CacheEndpoint</code>. Also it is the only way when cache names are not know at the development phase.</p><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>It might be useful to read the <a shape="rect" class="external-link" href="http://ehcache.org/documentation" rel="nofollow">EHCache manual</a> to get a better understanding of the Camel Cache replication mechanism.</p></div></div><h4 id="BookComponentAppendix-Example:JMScachereplication">Example: JMS cache replication</h4><p>JMS replication is the most powerful and secured replication method. Used together with Camel Cache replication makes it also rath er simple.<br clear="none"> An example is available on <a shape="rect" href="cachereplicationjmsexample.html">a separate page</a>.</p> <h2 id="BookComponentAppendix-ClassComponent">Class Component</h2> -<p><strong>Available as of Camel 2.4</strong></p> - -<p>The <strong>class:</strong> component binds beans to Camel message exchanges. It works in the same way as the <a shape="rect" href="bean.html">Bean</a> component but instead of looking up beans from a <a shape="rect" href="registry.html">Registry</a> it creates the bean based on the class name.</p> - -<h3 id="BookComponentAppendix-URIformat.6">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[ -class:className[?options] +</div></div><p>You can get cache hits, misses, in-memory hits, disk hits, size stats this way. You can also change CacheConfiguration parameters on the fly.</p><h3 id="BookComponentAppendix-CachereplicationCamel2.8+">Cache replication Camel 2.8+</h3><p>The Camel Cache component is able to distribute a cache across server nodes using several different replication mechanisms including: RMI, JGroups, JMS and Cache Server.</p><p>There are two different ways to make it work:</p><p><strong>1.</strong> You can configure <code>ehcache.xml</code> manually</p><p>OR</p><p><strong>2.</strong> You can configure these three options:</p><ul class="alternate"><li>cacheManagerFactory</li><li>eventListenerRegistry</li><li>cacheLoaderRegistry</li></ul><p>Configuring Camel Cache replication using the first option is a bit of hard work as you have to configure all caches separately. So in a situation when the all names of caches are not known, using <code>ehcache.xml</code> is not a good idea.</p><p>The second option is much better when you want to use many different caches as you do not need to define options per cache. This is because replication options are set per <code>CacheManager</code> and per <code>CacheEndpoint</code>. Also it is the only way when cache names are not know at the development phase.</p><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>It might be useful to read the <a shape="rect" class="external-link" href="http://ehcache.org/documentation" rel="nofollow">EHCache manual</a> to get a better understanding of the Camel Cache replication mechanism.</p></div></div><h4 id="BookComponentAppendix-Example:JMScachereplication">Example: JMS cache replication</h4><p>JMS replication is the most powerful and secured replication method. Used together with Camel Cache replication makes it also rath er simple.<br clear="none"> An example is available on <a shape="rect" href="cachereplicationjmsexample.html">a separate page</a>.</p> <h2 id="BookComponentAppendix-ClassComponent">Class Component</h2><p><strong>Available as of Camel 2.4</strong></p><p>The <strong>class:</strong> component binds beans to Camel message exchanges. It works in the same way as the <a shape="rect" href="bean.html">Bean</a> component but instead of looking up beans from a <a shape="rect" href="registry.html">Registry</a> it creates the bean based on the class name.</p><h3 id="BookComponentAppendix-URIformat.6">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[class:className[?options] ]]></script> -</div></div> -<p>Where <strong>className</strong> is the fully qualified class name to create and use as bean.</p> - -<h3 id="BookComponentAppendix-Options.4">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> Type </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>method</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>String</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The method name that bean will be invoked. If not provided, Camel will try to pick the method itself. In case of ambiguity an exception is thrown. See <a shape="rect" href="bean-binding.html">Bean Binding</a> for more details. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>multiParameterArray</code> </p></td><td col span="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> How to treat the parameters which are passed from the message body; if it is <code>true</code>, the In message body should be an array of parameters. </p></td></tr></tbody></table></div> -</div> - -<p>You can append query options to the URI in the following format, <code>?option=value&option=value&...</code></p> - -<h3 id="BookComponentAppendix-Using.1">Using</h3> - -<p>You simply use the <strong>class</strong> component just as the <a shape="rect" href="bean.html">Bean</a> component but by specifying the fully qualified classname instead.<br clear="none"> -For example to use the <code>MyFooBean</code> you have to do as follows:</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("class:org.apache.camel.component.bean.MyFooBean").to("mock:result"); +</div></div><p>Where <strong>className</strong> is the fully qualified class name to create and use as bean.</p><h3 id="BookComponentAppendix-Options.4">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>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>method</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The method name that bean will be invoked. If not provided, Camel will try to pick the method itself. In case of ambiguity an exception is thrown. See <a shape="re ct" href="bean-binding.html">Bean Binding</a> for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>multiParameterArray</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How to treat the parameters which are passed from the message body; if it is <code>true</code>, the In message body should be an array of parameters.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>bean.xxx</code></td><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.17:</strong> To configure additional options on the create bean instance from the class name. For example to configure a foo option on the bean, use bean.foo=123.</td></tr>< /tbody></table></div></div><p>You can append query options to the URI in the following format, <code>?option=value&option=value&...</code></p><h3 id="BookComponentAppendix-Using.1">Using</h3><p>You simply use the <strong>class</strong> component just as the <a shape="rect" href="bean.html">Bean</a> component but by specifying the fully qualified classname instead.<br clear="none"> For example to use the <code>MyFooBean</code> you have to do as follows:</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("class:org.apache.camel.component.bean.MyFooBean").to("mock:result"); ]]></script> -</div></div> - -<p>You can also specify which method to invoke on the <code>MyFooBean</code>, for example <code>hello</code>:</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("class:org.apache.camel.component.bean.MyFooBean?method=hello").to("mock:result"); +</div></div><p>You can also specify which method to invoke on the <code>MyFooBean</code>, for example <code>hello</code>:</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("class:org.apache.camel.component.bean.MyFooBean?method=hello").to("mock:result"); ]]></script> -</div></div> - -<h2 id="BookComponentAppendix-Settingpropertiesonthecreatedinstance">Setting properties on the created instance</h2> - -<p>In the endpoint uri you can specify properties to set on the created instance, for example if it has a <code>setPrefix</code> method:</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") +</div></div><h2 id="BookComponentAppendix-Settingpropertiesonthecreatedinstance">Setting properties on the created instance</h2><p>In the endpoint uri you can specify properties to set on the created instance, for example if it has a <code>setPrefix</code> method:</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[ // Camel 2.17 onwards + from("direct:start") + .to("class:org.apache.camel.component.bean.MyPrefixBean?bean.prefix=Bye") + .to("mock:result"); + + // Camel 2.16 and older + from("direct:start") .to("class:org.apache.camel.component.bean.MyPrefixBean?prefix=Bye") .to("mock:result"); ]]></script> -</div></div> +</div></div><p>And you can also use the <code style="line-height: 1.42857;">#</code> syntax to refer to properties to be looked up in the <a shape="rect" href="registry.html">Registry</a>.</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[ // Camel 2.17 onwards + from("direct:start") + .to("class:org.apache.camel.component.bean.MyPrefixBean?bean.cool=#foo") + .to("mock:result"); -<p>And you can also use the <code>#</code> syntax to refer to properties to be looked up in the <a shape="rect" href="registry.html">Registry</a>.</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[ + // Camel 2.16 and older from("direct:start") .to("class:org.apache.camel.component.bean.MyPrefixBean?cool=#foo") .to("mock:result"); ]]></script> -</div></div> -<p>Which will lookup a bean from the <a shape="rect" href="registry.html">Registry</a> with the id <code>foo</code> and invoke the <code>setCool</code> method on the created instance of the <code>MyPrefixBean</code> class.</p> - -<div class="confluence-information-macro confluence-information-macro-tip"><p class="title">See more</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"> -<p>See more details at the <a shape="rect" href="bean.html">Bean</a> component as the <strong>class</strong> component works in much the same way.</p></div></div> - -<h3 id="BookComponentAppendix-SeeAlso.6">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><li><a shape="rect" href="bean.html">Bean</a></li><li><a shape="rect" href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" href="bean-integration.html">Bean Integration</a></li></ul> <h2 id="BookComponentAppendix-CometdComponent">Cometd Component</h2><p>The <strong>cometd:</strong> component is a transport for working with the <a shape="rect" class="external-link" href="http://www.mortbay.org/jetty" rel="nofollow">jetty</a> implementation of the <a shape="rect" class="external-link" href="http://docs.codehaus.org/display/JETTY/Cometd+%28aka+Bayeux%29" rel="nofollow">cometd/bayeux protocol</a>.<br clear="none"> Using this component in combination with the dojo toolkit library it's possible to push Camel messages directly into the browser using an AJAX based mechanism.</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 panelConte nt pdl"> +</div></div><p>Which will lookup a bean from the <a shape="rect" href="registry.html">Registry</a> with the id <code>foo</code> and invoke the <code>setCool</code> method on the created instance of the <code>MyPrefixBean</code> class.</p><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">See more</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>See more details at the <a shape="rect" href="bean.html">Bean</a> component as the <strong>class</strong> component works in much the same way.</p></div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.6">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><li><a shape="rect" href="bean.html">Bean</a></li><li><a shape="rect" href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" href="bean-integration.html">Bean Integration</a></li></ul> <h2 id="BookComponentAppendix-CometdComponent">Cometd Component</h2><p>The <strong>cometd:</strong> component is a transport for working with the <a shape="rect" class="external-link" href="http://www.mortbay.org/jetty" rel="nofollow">jetty</a> implementation of the <a shape="rect" class="external-link" href="http://docs.codehaus.org/display/JETTY/Cometd+%28aka+Bayeux%29" rel="nofollow">cometd/bayeux protocol</a>.<br clear="none"> Using this component in combination with the dojo toolkit library it's possible to push Camel messages directly into the browser using an AJAX based mechanism.</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-cometd</artifactId> @@ -1110,11 +1016,11 @@ template.send("direct:alias-verify& ]]></script> </div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.8">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><li><a shape="rect" href="crypto.html">Crypto</a> Crypto is also available as a <a shape="rect" href="data-format.html">Data Format</a></li></ul> <h2 id="BookComponentAppendix-CXFComponent">CXF Component</h2><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When using CXF as a consumer, the <a shape="rect" href="cxf-bean-component.html">CXF Bean Component</a> allows you to factor out how message payloads are received from their processing as a RESTful or SOAP web service. This has the potential of using a multitude of transports to cons ume web services. The bean component's configuration is also simpler and provides the fastest method to implement web services using Camel and CXF.</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>When using CXF in streaming modes (see DataFormat option), then also read about <a shape="rect" href="stream-caching.html">Stream caching</a>.</p></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.rbtoc1450347740500 {padding: 0px;} -div.rbtoc1450347740500 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1450347740500 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1451942269509 {padding: 0px;} +div.rbtoc1451942269509 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1451942269509 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1450347740500"> +/*]]>*/</style></p><div class="toc-macro rbtoc1451942269509"> <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-CXFComponent">CXF Component</a> <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-URIformat">URI format</a></li><li><a shape="rect" href="#BookComponentAppendix-Options">Options</a> <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-Thedescriptionsofthedataformats">The descriptions of the dataformats</a> @@ -6538,12 +6444,12 @@ map.put("Subject", "Camel </div></div><p>In this sample we want to send a mail to multiple recipients:</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[ // all the recipients of this mail are: -// To: ca...@riders.org , e...@riders.org -// CC: m...@you.org -// BCC: some...@somewhere.org -String recipients = "&To=ca...@riders.org,e...@riders.org&CC=m...@you.org&BCC=some...@somewhere.org"; +// to: ca...@riders.org , e...@riders.org +// cc: m...@you.org +// bcc: some...@somewhere.org +String recipients = "&to=ca...@riders.org,e...@riders.org&cc=m...@you.org&bcc=some...@somewhere.org"; -from("direct:a").to("smtp://y...@mymailserver.com?password=secret&From=y...@apache.org" + recipients); +from("direct:a").to("smtp://y...@mymailserver.com?password=secret&from=y...@apache.org" + recipients); ]]></script> </div></div><h3 id="BookComponentAppendix-Sendingmailwithattachmentsample">Sending mail with attachment sample</h3><div class="confluence-information-macro confluence-information-macro-warning"><p class="title">Attachments are not support by all Camel components</p><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The <em>Attachments API</em> is based on the Java Activation Framework and is generally only used by the Mail API. Since many of the other Camel components do not support attachments, the attachments could potentially be lost as they propagate along the route. The rule of thumb, therefore, is to add attachments just before sending a message to the mail endpoint.</p></div></div><p>The mail component supports attachments. In the sample below, we send a mail message containing a plain text message with a logo file attachment.</p><div class="code panel pdl" style="border-width: 1p x;"><div class="codeContent panelContent pdl"> <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[