Author: buildbot
Date: Sat Dec 5 08:19:31 2015
New Revision: 974622
Log:
Production update by buildbot for camel
Modified:
websites/production/camel/content/advanced-configuration-of-camelcontext-using-spring.html
websites/production/camel/content/cache/main.pageCache
Modified:
websites/production/camel/content/advanced-configuration-of-camelcontext-using-spring.html
==============================================================================
---
websites/production/camel/content/advanced-configuration-of-camelcontext-using-spring.html
(original)
+++
websites/production/camel/content/advanced-configuration-of-camelcontext-using-spring.html
Sat Dec 5 08:19:31 2015
@@ -86,7 +86,7 @@
<tbody>
<tr>
<td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2
id="AdvancedconfigurationofCamelContextusingSpring-AdvancedconfigurationofCamelContextusingSpring">Advanced
configuration of CamelContext using Spring</h2><p>When using Spring the
CamelContext can be pre configured based on defined beans in spring XML.<br
clear="none"> This wiki page documentes these features. Most of these features
requires <strong>Camel 2.0</strong>.</p><h3
id="AdvancedconfigurationofCamelContextusingSpring-Whatcanbeconfigured">What
can be configured</h3><p>The following functions can be configured:</p><ul
class="alternate"><li>Class resolvers</li><li>Lifecycle
factories</li><li>Registry for lookup</li><li><a shape="rect"
href="debugger.html">Debugger</a>, <a shape="rect"
href="tracer.html">Tracer</a>, <a shape="rect"
href="delay-interceptor.html">Delay</a> and <a shape="rect"
href="uuidgenerator.html">UuidGenerator</a></li><li><a shape="rect"
href="intercept.html">Intercept</a></li><li><a shape="rect" href="graceful-shutd
own.html">Graceful Shutdown</a></li><li><a shape="rect"
href="stream-caching.html">Stream caching</a></li><li>Logging</li></ul><p>Camel
will configure these functions by doing a lookup in the Spring bean registry to
find beans of the given type<br clear="none"> When Camel finds and uses any of
these it logs at <code>INFO</code> level.</p><p>The following list all requires
at most 1 beans defined. If there are more than 1 bean of this type, then Camel
will <strong>not</strong> use it.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Number of beans</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>PackageScanClassResolver</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>To use a 3rd pa
rty package scan resolver. More details at <a shape="rect"
href="pluggable-class-resolvers.html">Pluggable Class
Resolvers</a>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ClassResolver</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a 3rd party class resolver. More details at <a
shape="rect" href="pluggable-class-resolvers.html">Pluggable Class
Resolvers</a>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>FactoryFinderResolver</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a 3rd party factory finder.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>Registry</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>To use a 3rd party bean registry. By
default Camel will use Spring Appl
icationContext as registry.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Debugger</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a <a shape="rect"
href="debugger.html">Debugger</a> usually for tooling.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>Tracer</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a 3rd party <a shape="rect"
href="tracer.html">Tracer</a>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>TraceFormatter</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a bean that has the tracing options
configured.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>HandleFault</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><
td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd part fault
handler to handle FAULT messages.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Delayer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a 3rd part <a shape="rect"
href="delayer.html">Delayer</a>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ManagementStrategy</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part strategy
for <a shape="rect" href="camel-jmx.html">management</a>, for example JMX
management.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ManagementNamingStrategy</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.6:</strong> To use a 3rd part
strategy for naming MBeans for <a shape="rect"
href="camel-jmx.html">management</a>.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>NodeIdFactory</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.10:</strong> To use a 3rd part node id
factory.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>EventFactory</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part event
factory.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>EventNotifier</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part event
notifier. In Camel 2.2 onwards you can have multiple notifiers, see next
table.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>InflightRepository</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd
part inflight repository.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ShutdownStrategy</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.2:</strong> To use a 3rd part shutdown
strategy.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ExecutorServiceStrategy</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.3 - 2.8.x:</strong> To use a 3rd part
executor service strategy. More details at <a shape="rect"
href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>ExecutorServiceManager</
p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To
use a 3rd part executor service manager. More details at <a shape="rect"
href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>ThreadPoolFactory</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To use a 3rd
part thread pool factory. More details at <a shape="rect"
href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>ProcessorFactory</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> To use a 3rd
part processor factory.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>UuidGenerator</
p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> To
use a 3rd part <a shape="rect"
href="uuidgenerator.html">UuidGenerator</a>.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>StreamCachingStrategy</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> To use a 3rd
part <a shape="rect" href="stream-caching.html">Stream caching</a>
strategy.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>UnitOfWorkFactory</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.12.3/2.13:</strong> To use 3rd part
<code>UnitOfWork</code> implementations created by the
factory.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">RuntimeEndpointRegistry</td><td colsp
an="1" rowspan="1" class="confluenceTd">0..1</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.13.1:</strong> To use a 3rd party
RuntimeEndpointRegistry implementation.</td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">Logger</td><td colspan="1" rowspan="1"
class="confluenceTd">0..1</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.12.4/2.13.1:</strong> To use provided
org.slf4j.Logger for <a shape="rect" href="log.html">Log</a> component and <a
shape="rect" href="logeip.html">log() EIP</a>.</td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">AsyncProcessorAwaitManager</td><td colspan="1"
rowspan="1" class="confluenceTd">0..1</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.15:</strong> To use a 3rd part async
process await manager.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><span>ModelJAXBContextFactory</span></td><td colspan="1"
rowspan="1" class="confluenceTd">0..1</td><td colspan="
1" rowspan="1" class="confluenceTd"><strong>Camel 2.15.2:</strong> To use a
3rd party model JAXB ContextFactory</td></tr></tbody></table></div><p>And the
following options have support for any number of beans defined.</p><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Number of beans</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>InterceptStrategy</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..n</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use your own <a shape="rect"
href="intercept.html">Intercept</a> that intercepts every processing steps in
all routes in the <a shape="rect" href="camelcontext.html">CamelContext</a>.
For instance you can use this to do an AOP like performance timer
interceptor.</p></td></tr><tr><td colspa
n="1" rowspan="1" class="confluenceTd"><p>LifecycleStrategy</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..n</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use 3rd
party lifecycle strategies. By default Camel uses a JMX aware that does JMX
instrumentation.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>EventNotifier</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..n</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.2:</strong> To use 3rd part event
notifiers.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">RoutePolicyFactory</td><td colspan="1" rowspan="1"
class="confluenceTd">0..n</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.14:</strong> To use a 3rd party route
policy factory to create a route policy for every
route.</td></tr></tbody></table></div><p>Camel will log at <code>INFO</code>
level if it pickup and uses a cust
om bean using <code>org.apache.camel.spring.CamelContextFactoryBean</code> as
name.</p><h3
id="AdvancedconfigurationofCamelContextusingSpring-Usingcontainerwideinterceptors">Using
container wide interceptors</h3><p>Imagine that you have multiple <a
shape="rect" href="camelcontext.html">CamelContext</a> and you want to
configure that they all use the same container wide interceptor. How do we do
that? Well we can leverage the fact that Camel can auto detect and use custom
interceptors. So what we simply do is to define our interceptor in the spring
xml file. The sample below does this and also define 2 camel contexts. The
sample is based on unit test.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>Spring DSL</b></div><div
class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h2
id="AdvancedconfigurationofCamelContextusingSpring-AdvancedconfigurationofCamelContextusingSpring">Advanced
configuration of CamelContext using Spring</h2><p>When using Spring the
CamelContext can be pre configured based on defined beans in spring XML.<br
clear="none"> This wiki page documentes these features. Most of these features
requires <strong>Camel 2.0</strong>.</p><h3
id="AdvancedconfigurationofCamelContextusingSpring-Whatcanbeconfigured">What
can be configured</h3><p>The following functions can be configured:</p><ul
class="alternate"><li>Class resolvers</li><li>Lifecycle
factories</li><li>Registry for lookup</li><li><a shape="rect"
href="debugger.html">Debugger</a>, <a shape="rect"
href="tracer.html">Tracer</a>, <a shape="rect"
href="delay-interceptor.html">Delay</a> and <a shape="rect"
href="uuidgenerator.html">UuidGenerator</a></li><li><a shape="rect"
href="intercept.html">Intercept</a></li><li><a shape="rect" href="graceful-shutd
own.html">Graceful Shutdown</a></li><li><a shape="rect"
href="stream-caching.html">Stream caching</a></li><li>Logging</li></ul><p>Camel
will configure these functions by doing a lookup in the Spring bean registry to
find beans of the given type<br clear="none"> When Camel finds and uses any of
these it logs at <code>INFO</code> level.</p><p>The following list all requires
at most 1 beans defined. If there are more than 1 bean of this type, then Camel
will <strong>not</strong> use it.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Number of beans</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>PackageScanClassResolver</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>To use a 3rd pa
rty package scan resolver. More details at <a shape="rect"
href="pluggable-class-resolvers.html">Pluggable Class
Resolvers</a>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ClassResolver</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a 3rd party class resolver. More details at <a
shape="rect" href="pluggable-class-resolvers.html">Pluggable Class
Resolvers</a>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>FactoryFinderResolver</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a 3rd party factory finder.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>Registry</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>To use a 3rd party bean registry. By
default Camel will use Spring Appl
icationContext as registry.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Debugger</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a <a shape="rect"
href="debugger.html">Debugger</a> usually for tooling.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>Tracer</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a 3rd party <a shape="rect"
href="tracer.html">Tracer</a>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>TraceFormatter</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a bean that has the tracing options
configured.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>HandleFault</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><
td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd part fault
handler to handle FAULT messages.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Delayer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use a 3rd part <a shape="rect"
href="delayer.html">Delayer</a>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ManagementStrategy</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part strategy
for <a shape="rect" href="camel-jmx.html">management</a>, for example JMX
management.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ManagementNamingStrategy</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.6:</strong> To use a 3rd part
strategy for naming MBeans for <a shape="rect"
href="camel-jmx.html">management</a>.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>NodeIdFactory</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.10:</strong> To use a 3rd part node id
factory.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>EventFactory</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part event
factory.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>EventNotifier</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part event
notifier. In Camel 2.2 onwards you can have multiple notifiers, see next
table.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>InflightRepository</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd
part inflight repository.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ShutdownStrategy</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.2:</strong> To use a 3rd part shutdown
strategy.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ExecutorServiceStrategy</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.3 - 2.8.x:</strong> To use a 3rd part
executor service strategy. More details at <a shape="rect"
href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>ExecutorServiceManager</
p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To
use a 3rd part executor service manager. More details at <a shape="rect"
href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>ThreadPoolFactory</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To use a 3rd
part thread pool factory. More details at <a shape="rect"
href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>ProcessorFactory</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> To use a 3rd
part processor factory.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>UuidGenerator</
p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> To
use a 3rd part <a shape="rect"
href="uuidgenerator.html">UuidGenerator</a>.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>StreamCachingStrategy</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> To use a 3rd
part <a shape="rect" href="stream-caching.html">Stream caching</a>
strategy.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>UnitOfWorkFactory</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.12.3/2.13:</strong> To use 3rd part
<code>UnitOfWork</code> implementations created by the
factory.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">RuntimeEndpointRegistry</td><td colsp
an="1" rowspan="1" class="confluenceTd">0..1</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.13.1:</strong> To use a 3rd party
RuntimeEndpointRegistry implementation.</td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">Logger</td><td colspan="1" rowspan="1"
class="confluenceTd">0..1</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.12.4/2.13.1:</strong> To use provided
org.slf4j.Logger for <a shape="rect" href="log.html">Log</a> component and <a
shape="rect" href="logeip.html">log() EIP</a>.</td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">AsyncProcessorAwaitManager</td><td colspan="1"
rowspan="1" class="confluenceTd">0..1</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.15:</strong> To use a 3rd part async
process await manager.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><span>ModelJAXBContextFactory</span></td><td colspan="1"
rowspan="1" class="confluenceTd">0..1</td><td colspan="
1" rowspan="1" class="confluenceTd"><strong>Camel 2.15.2:</strong> To use a
3rd party model JAXB ContextFactory</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">MessageHistoryFactory</td><td colspan="1" rowspan="1"
class="confluenceTd">0..1</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.17:</strong> To use a 3rd party
MessageHistoryFactory implementation.</td></tr></tbody></table></div><p>And the
following options have support for any number of beans defined.</p><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Number of beans</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>InterceptStrategy</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..n</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>To use your
own <a shape="rect" href="intercept.html">Intercept</a> that intercepts every
processing steps in all routes in the <a shape="rect"
href="camelcontext.html">CamelContext</a>. For instance you can use this to do
an AOP like performance timer interceptor.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>LifecycleStrategy</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0..n</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.1:</strong> To use 3rd party lifecycle
strategies. By default Camel uses a JMX aware that does JMX
instrumentation.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>EventNotifier</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0..n</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.2:</strong> To use 3rd part event
notifiers.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">RoutePolicyFactory</td><td colspan="1" rowspan="1"
class="conflu
enceTd">0..n</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.14:</strong> To use a 3rd party route
policy factory to create a route policy for every
route.</td></tr></tbody></table></div><p>Camel will log at <code>INFO</code>
level if it pickup and uses a custom bean using
<code>org.apache.camel.spring.CamelContextFactoryBean</code> as name.</p><h3
id="AdvancedconfigurationofCamelContextusingSpring-Usingcontainerwideinterceptors">Using
container wide interceptors</h3><p>Imagine that you have multiple <a
shape="rect" href="camelcontext.html">CamelContext</a> and you want to
configure that they all use the same container wide interceptor. How do we do
that? Well we can leverage the fact that Camel can auto detect and use custom
interceptors. So what we simply do is to define our interceptor in the spring
xml file. The sample below does this and also define 2 camel contexts. The
sample is based on unit test.</p><div class="code panel pdl"
style="border-width: 1px;"
><div class="codeHeader panelHeader pdl" style="border-bottom-width:
>1px;"><b>Spring DSL</b></div><div class="codeContent panelContent pdl">
<script class="brush: xml; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[
<!-- here we define a spring bean that is our container wide interceptor
@@ -115,7 +115,7 @@
</route>
</camelContext>
]]></script>
-</div></div><p>Okay lets build our interceptor to simply count the number of
interceptions. This is quite easy as we can just implement this logic in our
implementation directly as the code below illustrates:</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>InterceptorStrategy</b></div><div
class="codeContent panelContent pdl">
+</div></div>Okay lets build our interceptor to simply count the number of
interceptions. This is quite easy as we can just implement this logic in our
implementation directly as the code below illustrates:<div class="code panel
pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>InterceptorStrategy</b></div><div
class="codeContent panelContent pdl">
<script class="brush: java; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[
public class ContainerWideInterceptor implements InterceptStrategy {
@@ -148,7 +148,7 @@ public class ContainerWideInterceptor im
}
}
]]></script>
-</div></div><p>When Camel boots up it logs at <code>INFO</code> level the
container wide interceptors it have found:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>When Camel boots up it logs at <code>INFO</code> level the
container wide interceptors it have found:<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[INFO CamelContextFactoryBean - Using
custom intercept strategy with id: myInterceptor and
implementation:org.apache.camel.spring.interceptor.ContainerWideInterceptor@b84c44
]]></script>
</div></div><p><strong>Notice:</strong> If we have more than 1 container wide
interceptor, we can just define them as spring bean. Camel will find and use
them.</p><h2 id="AdvancedconfigurationofCamelContextusingSpring-SeeAlso">See
Also</h2><ul><li><a shape="rect" href="spring.html">Spring</a></li><li><a
shape="rect" href="tutorial-jmsremoting.html">Spring JMS
Tutorial</a></li><li><a shape="rect"
href="creating-a-new-spring-based-camel-route.html">Creating a new Spring based
Camel Route</a></li><li><a shape="rect" href="spring-example.html">Spring
example</a></li><li><a shape="rect" href="xml-reference.html">Xml
Reference</a></li></ul></div>
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.