Modified: websites/production/camel/content/camel-219-release.html
==============================================================================
--- websites/production/camel/content/camel-219-release.html (original)
+++ websites/production/camel/content/camel-219-release.html Wed Dec 7
11:18:39 2016
@@ -85,7 +85,7 @@
<tbody>
<tr>
<td valign="top" width="100%">
-<div class="wiki-content maincontent"><h1
id="Camel2.19Release-Camel2.19.0Release(currentlyinprogress)">Camel 2.19.0
Release (currently in progress)</h1><div
style="padding-right:20px;float:left;margin-left:-20px;"><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image
confluence-external-resource"
src="http://camel.apache.org/images/camel-box-small.png"
data-image-src="http://camel.apache.org/images/camel-box-small.png"></span></div><div
style="min-height:200px"> </div><h2
id="Camel2.19Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to the
2.19.0 release which approx XXX issues resolved (new features, improvements and
bug fixes such as...)</p><ul><li>The <a shape="rect"
href="camel-maven-plugin.html">Camel Maven Plugin</a> now provides the
<code>camel:validate</code> goal to parse your Java and XML source code for any
Camel routes and report invalid Camel endpoint uri and simple expression
errors. You can run this at code time (not run
time). </li><li>Introduced a
new <code>camel-catalog-rest</code> artifact which is a tiny
standalone REST API of the CamelCatalog using JAX-RS and Swagger
Annotations.</li><li>Added <code>camel-catalog-rest-app</code> as a
standalone application which used Apache CXF with Jetty to host the Catalog
REST API with embedded Swagger
UI</li><li>Returning <code>null</code> from <a shape="rect"
href="bean.html">Bean</a> should work similar to
how <code>setBody</code> and <code>transform</code> works
when they set a <code>null</code> body.</li><li>The Camel Spring Boot
starter components now have their auto configuration depends
on <code>org.apache.camel.springboot.CamelAutoConfiguration</code> which
makes it easier writing unit tests where you can
exclude <code>org.apache.camel.springboot.CamelAutoConfiguration</code> to
turn off Camel Spring Boot auto configuration completely.</li><li>Camel now
supports OWASP d
ependency check maven plugin</li><li>Camel-Nats component now supports
TLS</li><li>Camel-Nats component now supports explicit flushing (with timeout)
of the connection</li><li>Camel-Metrics component now supports Gauge
type</li><li><a shape="rect" href="file2.html">File consumer</a> now
supports idempotent-changed and idempotent-rename read lock strategies for
clustering. </li><li>Camel Catalog now supports custom runtime providers
that only includes the supported Camel components, languages and data formats
running in that container. For example for Karaf or Spring Boot in the
camel-catalog-provider-karaf and
camel-catalog-provider-springboot.</li><li>The <a shape="rect"
href="https://cwiki.apache.org/confluence/display/WW/bean">bean</a> component
will when calling a method that returned an instance of
<code>Callable</code> now call that callable to obtain the chained result.
This allows to call Groovy functions/closures etc.</li><li>Failover <a
shape="rect
" href="load-balancer.html">Load Balancer</a> with inheritErrorHandler=false,
now allows Camel's <a shape="rect" href="error-handler.html">Error
Handler</a> to react after the load balancer is exhausted.</li><li><a
shape="rect" href="salesforce.html">Salesforce</a> component now supports
limits, recent items and approvals</li><li>Dumping Camel routes as XML now
includes custom namespaces which are at xpath expressions etc. Likewise
updating Camel routes from XML can now include namespaces which will be
associated on xpath expressions.</li><li>Added <code>RouteIdFactory</code>
which can auto assign route ids based on the consumer endpoints to use more
sensitible names, instead of route1, route2, etc.</li></ul><p>Fixed these
issues</p><ul><li>Fixed <a shape="rect" href="hystrix-eip.html">Hystrix
EIP</a> to also execute fallback if execution was rejected or short-circuited
or other reasons from Hystrix. </li><li>Fixed adding new routes to running
CamelContext and if
the new routes would fail to startup, then before these routes would "hang
around". Now only succesful started routes are added.</li><li>Adding or
removing routes that starts from <a shape="rect"
href="undertow.html">Undertow</a> no longer restart the entire HTTP
server</li><li><a shape="rect" href="vm.html">VM</a> endpoint should prepare
exchange with the CamelContext from the consumer and not from cached endpoint
which can be different</li><li>Fixed a bug when using <a shape="rect"
href="rest-dsl.html">Rest DSL</a> with <a shape="rect"
href="servlet.html">SERVLET</a> could cause a java.io.IOException: Stream
closed exception when using <a shape="rect" href="bean.html">Bean</a> in
the route. </li><li>Fixed an issue when using <code>pipeline</code>
in Java DSL not setting up the EIP correctly which could lead to runtime route
not as intended.</li><li>Fixed <a shape="rect"
href="dropbox.html">Dropbox</a> to use <a shape="rect" href="stream-cac
hing.html">Stream caching</a> to avoid reading entire file into memory so
Camel can process big files</li><li>Fixed Netty douhle buffer release leak
in <a shape="rect" href="netty4.html">Netty4</a> and <a shape="rect"
href="netty4-http.html">Netty4 HTTP</a></li></ul><h3
id="Camel2.19Release-New">New <a shape="rect"
href="enterprise-integration-patterns.html">Enterprise Integration
Patterns</a></h3><h3 id="Camel2.19Release-New.1">New <a shape="rect"
href="components.html">Components</a></h3><ul><li>camel-bonita - allow you
to communicate with a remote Bonita engine.</li><li>camel-google-pubsub - allow
you communicate with Google Cloud Pub/Sub</li></ul><h3
id="Camel2.19Release-NewDSL">New DSL</h3><h3
id="Camel2.19Release-NewAnnotations">New Annotations</h3><h3
id="Camel2.19Release-New.2">New <a shape="rect" href="data-format.html">Data
Format</a></h3><h3 id="Camel2.19Release-New.3">New <a shape="rect"
href="languages.html">Languages</a></h3><h3 id="Camel2.19Release-New.
4">New <a shape="rect" href="examples.html">Examples</a></h3><h3
id="Camel2.19Release-New.5">New <a shape="rect"
href="tutorials.html">Tutorials</a></h3><h2
id="Camel2.19Release-APIbreaking">API breaking</h2><ul><li>Camel-spring-LDAP
now uses java.util.function.BiFunction<L, Q, S> instead
of org.apache.camel.component.springldap.LdapOperationsFunction<Q,
S></li></ul><h2 id="Camel2.19Release-KnownIssues">Known Issues</h2><h2
id="Camel2.19Release-Importantchangestoconsiderwhenupgrading">Important changes
to consider when upgrading</h2><ul><li>Camel now uses Karaf 4.x API and
therefore not possible to run on older Karaf
versions.</li><li><code>camel-blueprint</code> changed startup behavior to
start on Blueprint.CREATED event which would be more `correct` way of startup
instead of Blueprint.REGISTERED as before.</li><li>camel-spring-boot now don't
include prototype scoped beans when auto scanning for RouteBuilder instances,
which is how camel-spring works. You can
turn this back using the includeNonSingletons option.</li></ul><h2
id="Camel2.19Release-GettingtheDistributions">Getting the Distributions</h2><h3
id="Camel2.19Release-BinaryDistributions">Binary Distributions</h3><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Download Link</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>PGP Signature file of
download</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Windows Distribution</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link"
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x.zip">apache-camel-x.y.x.zip</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link"
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x.
zip.asc">apache-camel-x.y.x.zip.asc</a></p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>Unix/Linux/Cygwin Distribution</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link"
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x.tar.gz">apache-camel-x.y.x.tar.gz</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link"
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x.tar.gz.asc">apache-camel-x.y.x.tar.gz.asc</a></p></td></tr></tbody></table></div><div
class="confluence-information-macro
confluence-information-macro-information"><p class="title">The above URLs use
redirection</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>The above URLs use the Apache
Mirror system to redirect you to a suitable mirror for your downloa
d. Some users have experienced issues with some versions of browsers (e.g.
some Safari browsers). If the download doesn't seem to work for you from the
above URL then try using <a shape="rect" class="external-link"
href="http://www.mozilla.com/en-US/firefox/"
rel="nofollow">FireFox</a></p></div></div><h3
id="Camel2.19Release-SourceDistributions">Source Distributions</h3><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Download Link</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>PGP Signature file of
download</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Source (zip)</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" class="external-link"
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.zip">apache-camel-x.y.x-src.zip</a></p></td><td
colspan="1
" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link"
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.zip.asc">apache-camel-x.y.x-src.zip.asc</a></p></td></tr></tbody></table></div><h3
id="Camel2.19Release-GettingtheBinariesusingMaven2">Getting the Binaries using
Maven 2</h3><p>To use this release in your maven project, the proper dependency
configuration that you should use in your <a shape="rect" class="external-link"
href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html">Maven
POM</a> is:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h1
id="Camel2.19Release-Camel2.19.0Release(currentlyinprogress)">Camel 2.19.0
Release (currently in progress)</h1><div
style="padding-right:20px;float:left;margin-left:-20px;"><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image
confluence-external-resource"
src="http://camel.apache.org/images/camel-box-small.png"
data-image-src="http://camel.apache.org/images/camel-box-small.png"></span></div><div
style="min-height:200px"> </div><h2
id="Camel2.19Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to the
2.19.0 release which approx XXX issues resolved (new features, improvements and
bug fixes such as...)</p><ul><li>The <a shape="rect"
href="camel-maven-plugin.html">Camel Maven Plugin</a> now provides the
<code>camel:validate</code> goal to parse your Java and XML source code for any
Camel routes and report invalid Camel endpoint uri and simple expression
errors. You can run this at code time (not run
time). </li><li>Introduced a
new <code>camel-catalog-rest</code> artifact which is a tiny
standalone REST API of the CamelCatalog using JAX-RS and Swagger
Annotations.</li><li>Added <code>camel-catalog-rest-app</code> as a
standalone application which used Apache CXF with Jetty to host the Catalog
REST API with embedded Swagger
UI</li><li>Returning <code>null</code> from <a shape="rect"
href="bean.html">Bean</a> should work similar to
how <code>setBody</code> and <code>transform</code> works
when they set a <code>null</code> body.</li><li>The Camel Spring Boot
starter components now have their auto configuration depends
on <code>org.apache.camel.springboot.CamelAutoConfiguration</code> which
makes it easier writing unit tests where you can
exclude <code>org.apache.camel.springboot.CamelAutoConfiguration</code> to
turn off Camel Spring Boot auto configuration completely.</li><li>Camel now
supports OWASP d
ependency check maven plugin</li><li>Camel-Nats component now supports
TLS</li><li>Camel-Nats component now supports explicit flushing (with timeout)
of the connection</li><li>Camel-Metrics component now supports Gauge
type</li><li><a shape="rect" href="file2.html">File consumer</a> now
supports idempotent-changed and idempotent-rename read lock strategies for
clustering. </li><li>Camel Catalog now supports custom runtime providers
that only includes the supported Camel components, languages and data formats
running in that container. For example for Karaf or Spring Boot in the
camel-catalog-provider-karaf and
camel-catalog-provider-springboot.</li><li>The <a shape="rect"
href="https://cwiki.apache.org/confluence/display/WW/bean">bean</a> component
will when calling a method that returned an instance of
<code>Callable</code> now call that callable to obtain the chained result.
This allows to call Groovy functions/closures etc.</li><li>Failover <a
shape="rect
" href="load-balancer.html">Load Balancer</a> with inheritErrorHandler=false,
now allows Camel's <a shape="rect" href="error-handler.html">Error
Handler</a> to react after the load balancer is exhausted.</li><li><a
shape="rect" href="salesforce.html">Salesforce</a> component now supports
limits, recent items and approvals</li><li>Dumping Camel routes as XML now
includes custom namespaces which are at xpath expressions etc. Likewise
updating Camel routes from XML can now include namespaces which will be
associated on xpath expressions.</li><li>Added <code>RouteIdFactory</code>
which can auto assign route ids based on the consumer endpoints to use more
sensitible names, instead of route1, route2,
etc.</li><li><code>RouteBuilder</code> auto-configuration can now be disabled
in <a shape="rect" href="cdi.html">Camel CDI</a></li></ul><p>Fixed these
issues</p><ul><li>Fixed <a shape="rect" href="hystrix-eip.html">Hystrix
EIP</a> to also execute fallback if execution was rejec
ted or short-circuited or other reasons from Hystrix. </li><li>Fixed
adding new routes to running CamelContext and if the new routes would fail to
startup, then before these routes would "hang around". Now only succesful
started routes are added.</li><li>Adding or removing routes that starts
from <a shape="rect" href="undertow.html">Undertow</a> no longer restart
the entire HTTP server</li><li><a shape="rect" href="vm.html">VM</a> endpoint
should prepare exchange with the CamelContext from the consumer and not from
cached endpoint which can be different</li><li>Fixed a bug when using <a
shape="rect" href="rest-dsl.html">Rest DSL</a> with <a shape="rect"
href="servlet.html">SERVLET</a> could cause a java.io.IOException: Stream
closed exception when using <a shape="rect" href="bean.html">Bean</a> in
the route. </li><li>Fixed an issue when using <code>pipeline</code>
in Java DSL not setting up the EIP correctly which could lead to runtime route
not as
intended.</li><li>Fixed <a shape="rect" href="dropbox.html">Dropbox</a>
to use <a shape="rect" href="stream-caching.html">Stream caching</a> to
avoid reading entire file into memory so Camel can process big
files</li><li>Fixed Netty douhle buffer release leak in <a shape="rect"
href="netty4.html">Netty4</a> and <a shape="rect"
href="netty4-http.html">Netty4 HTTP</a></li></ul><h3
id="Camel2.19Release-New">New <a shape="rect"
href="enterprise-integration-patterns.html">Enterprise Integration
Patterns</a></h3><h3 id="Camel2.19Release-New.1">New <a shape="rect"
href="components.html">Components</a></h3><ul><li>camel-bonita - allow you
to communicate with a remote Bonita engine.</li><li>camel-google-pubsub - allow
you communicate with Google Cloud Pub/Sub</li></ul><h3
id="Camel2.19Release-NewDSL">New DSL</h3><h3
id="Camel2.19Release-NewAnnotations">New Annotations</h3><h3
id="Camel2.19Release-New.2">New <a shape="rect" href="data-format.html">Data
Format</a></h3
><h3 id="Camel2.19Release-New.3">New <a shape="rect"
>href="languages.html">Languages</a></h3><h3 id="Camel2.19Release-New.4">New
><a shape="rect" href="examples.html">Examples</a></h3><h3
>id="Camel2.19Release-New.5">New <a shape="rect"
>href="tutorials.html">Tutorials</a></h3><h2
>id="Camel2.19Release-APIbreaking">API breaking</h2><ul><li>Camel-spring-LDAP
>now uses java.util.function.BiFunction<L, Q, S> instead
>of org.apache.camel.component.springldap.LdapOperationsFunction<Q,
>S></li></ul><h2 id="Camel2.19Release-KnownIssues">Known Issues</h2><h2
>id="Camel2.19Release-Importantchangestoconsiderwhenupgrading">Important
>changes to consider when upgrading</h2><ul><li>Camel now uses Karaf 4.x API
>and therefore not possible to run on older Karaf
>versions.</li><li><code>camel-blueprint</code> changed startup behavior
>to start on Blueprint.CREATED event which would be more `correct` way of
>startup instead of Blueprint.REGISTERED as before.</li><li>camel-spring-boot
>now do
n't include prototype scoped beans when auto scanning for RouteBuilder
instances, which is how camel-spring works. You can turn this back using
the includeNonSingletons option.</li></ul><h2
id="Camel2.19Release-GettingtheDistributions">Getting the Distributions</h2><h3
id="Camel2.19Release-BinaryDistributions">Binary Distributions</h3><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Download Link</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>PGP Signature file of
download</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Windows Distribution</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link"
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x.zip">apache-camel-x.y.x.zip</a></p></td><td
colspan="1" rowspan="1" class="confluence
Td"><p><a shape="rect" class="external-link"
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x.zip.asc">apache-camel-x.y.x.zip.asc</a></p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>Unix/Linux/Cygwin
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a
shape="rect" class="external-link"
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x.tar.gz">apache-camel-x.y.x.tar.gz</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link"
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x.tar.gz.asc">apache-camel-x.y.x.tar.gz.asc</a></p></td></tr></tbody></table></div><div
class="confluence-information-macro
confluence-information-macro-information"><p class="title">The above URLs use
redirection</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div class="confluence-in
formation-macro-body"><p>The above URLs use the Apache Mirror system to
redirect you to a suitable mirror for your download. Some users have
experienced issues with some versions of browsers (e.g. some Safari browsers).
If the download doesn't seem to work for you from the above URL then try using
<a shape="rect" class="external-link"
href="http://www.mozilla.com/en-US/firefox/"
rel="nofollow">FireFox</a></p></div></div><h3
id="Camel2.19Release-SourceDistributions">Source Distributions</h3><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Download Link</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>PGP Signature file of
download</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Source (zip)</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" class="external-link"
href="http://www.apache.org
/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.zip">apache-camel-x.y.x-src.zip</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link"
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.zip.asc">apache-camel-x.y.x-src.zip.asc</a></p></td></tr></tbody></table></div><h3
id="Camel2.19Release-GettingtheBinariesusingMaven2">Getting the Binaries using
Maven 2</h3><p>To use this release in your maven project, the proper dependency
configuration that you should use in your <a shape="rect" class="external-link"
href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html">Maven
POM</a> is:</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-core</artifactId>
Modified: websites/production/camel/content/cdi.html
==============================================================================
--- websites/production/camel/content/cdi.html (original)
+++ websites/production/camel/content/cdi.html Wed Dec 7 11:18:39 2016
@@ -98,7 +98,11 @@ CamelContext context;]]></script>
from("jms:invoices").to("file:/invoices");
}
}]]></script>
-</div></div><p>Note that you can declare as
many <strong><code>RoutesBuilder</code></strong> beans as you want.
Besides, <strong><code>RouteContainer</code></strong> beans are also
automatically collected, instantiated and added to
the <strong><code>CamelContext</code></strong> bean instance managed by
Camel CDI when the container initializes.</p><h3
id="CDI-Auto-ConfiguredCamelPrimitives">Auto-Configured Camel
Primitives</h3><p>Camel CDI provides beans for common Camel primitives that can
be injected in any CDI beans, e.g.:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Note that you can declare as
many <strong><code>RoutesBuilder</code></strong> beans as you want.
Besides, <strong><code>RouteContainer</code></strong> beans are also
automatically collected, instantiated and added to
the <strong><code>CamelContext</code></strong> bean instance managed by
Camel CDI when the container initializes.</p><p><strong>Available as of Camel
2.19</strong></p><p>In some situations, it may be necessary to disable the
auto-configuration of
the <strong><code>RouteBuilder</code></strong> and
<strong><code>RouteContainer</code></strong> beans. That can be achieved
by observing for
the <span><strong><code>CdiCamelConfiguration</code></strong> </span>event,
e.g.:</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[static void configuration(@Observes
CdiCamelConfiguration configuration) {
+ configuration.autoConfigureRoutes(false);
+}]]></script>
+</div></div><h3 id="CDI-Auto-ConfiguredCamelPrimitives">Auto-Configured Camel
Primitives</h3><p>Camel CDI provides beans for common Camel primitives that can
be injected in any CDI beans, e.g.:</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[@Inject
@Uri("direct:inbound")
ProducerTemplate producerTemplate;
@@ -121,7 +125,7 @@ class MyRouteBean extends RouteBuilder {
from("jms:invoices").to("file:/invoices");
}
}]]></script>
-</div></div><p>Else, if more customization is needed,
any <strong><code>CamelContext</code></strong> class can be used to
declare a custom Camel context bean. Then,
the <strong><code>@PostConstruct</code></strong> and <strong><code>@PreDestroy</code></strong> lifecycle
callbacks can be done to do the customization, e.g.:</p><div class="highlight
highlight-source-java"><p> </p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Else, if more customization is needed,
any <strong><code>CamelContext</code></strong> class can be used to
declare a custom Camel context bean. Then,
the <strong><code>@PostConstruct</code></strong> and <strong><code>@PreDestroy</code></strong> lifecycle
callbacks can be done to do the customization, e.g.:</p><div class="highlight
highlight-source-java"><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[@ApplicationScoped
class CustomCamelContext extends DefaultCamelContext {
@@ -366,7 +370,7 @@ void onRouteStarted(@Observes @Named(&qu
void onContextStarted(@Observes @Manual CamelContextStartedEvent event) {
// Called after the the Camel context qualified with '@Manual' has
started
}]]></script>
-</div></div><p>Similarly,
the <strong><code>@Default</code></strong> qualifier can be used to
observe Camel events for the <em>default</em> Camel context if
multiples contexts exist, e.g.:</p><div class="highlight
highlight-source-java"><p> </p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Similarly,
the <strong><code>@Default</code></strong> qualifier can be used to
observe Camel events for the <em>default</em> Camel context if
multiples contexts exist, e.g.:</p><div class="highlight
highlight-source-java"><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[void onExchangeCompleted(@Observes @Default
ExchangeCompletedEvent event) {
// Called after the exchange 'event.getExchange()' processing has
completed
}]]></script>
@@ -392,7 +396,7 @@ CdiEventEndpoint<String> cdiEventE
from("direct:event")
.to(cdiEventEndpoint).log("CDI event sent: ${body}");]]></script>
-</div></div><p>This is equivalent to writing:</p><div class="highlight
highlight-source-java"><p> </p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>This is equivalent to writing:</p><div class="highlight
highlight-source-java"><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[@Inject
Event<String> event;
@@ -470,7 +474,7 @@ Processor processor = exchange -> exc
Context Status Total # Failed # Inflight #
Uptime
------- ------ ------- -------- ----------
------
camel-cdi Started 1 0 0 1
minute ]]></script>
-</div></div><p>See
the <span><strong><code>camel-example-cdi-osgi</code></strong> example for
a working example of the Camel CDI OSGi integration.</span></p><h3
id="CDI-LazyInjection/ProgrammaticLookup">Lazy Injection / Programmatic
Lookup</h3><p><strong>Available as of Camel 2.17</strong></p><p>While the CDI
programmatic model favors a <a shape="rect" class="external-link"
href="http://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#typesafe_resolution"
style="text-decoration: underline;" rel="nofollow">type-safe
resolution</a> mechanism that occurs at application initialization time,
it is possible to perform dynamic / lazy injection later during the application
execution using the <a shape="rect" class="external-link"
href="http://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#programmatic_lookup"
style="text-decoration: underline;" rel="nofollow">programmatic
lookup</a> mechanism.</p><p>Camel CDI provides for convenience the
annotation literals corresponding to the
CDI qualifiers that you can use for standard injection of Camel primitives.
These annotation literals can be used in conjunction with the<strong><code>
javax.enterprise.inject.Instance</code></strong> interface which is the
CDI entry point to perform lazy injection / programmatic lookup.</p><p>For
example, you can use the provided annotation literal for
the <strong><code>@Uri</code></strong> qualifier to lazily lookup for
Camel primitives, e.g. for <strong><code>ProducerTemplate</code></strong>
beans:</p><div class="listingblock"><div class="content"><div
class="line"><p> </p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>See
the <span><strong><code>camel-example-cdi-osgi</code></strong> example for
a working example of the Camel CDI OSGi integration.</span></p><h3
id="CDI-LazyInjection/ProgrammaticLookup">Lazy Injection / Programmatic
Lookup</h3><p><strong>Available as of Camel 2.17</strong></p><p>While the CDI
programmatic model favors a <a shape="rect" class="external-link"
href="http://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#typesafe_resolution"
style="text-decoration: underline;" rel="nofollow">type-safe
resolution</a> mechanism that occurs at application initialization time,
it is possible to perform dynamic / lazy injection later during the application
execution using the <a shape="rect" class="external-link"
href="http://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#programmatic_lookup"
style="text-decoration: underline;" rel="nofollow">programmatic
lookup</a> mechanism.</p><p>Camel CDI provides for convenience the
annotation literals corresponding to the
CDI qualifiers that you can use for standard injection of Camel primitives.
These annotation literals can be used in conjunction with the<strong><code>
javax.enterprise.inject.Instance</code></strong> interface which is the
CDI entry point to perform lazy injection / programmatic lookup.</p><p>For
example, you can use the provided annotation literal for
the <strong><code>@Uri</code></strong> qualifier to lazily lookup for
Camel primitives, e.g. for <strong><code>ProducerTemplate</code></strong>
beans:</p><div class="listingblock"><div class="content"><div class="line"><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[@Any
@Inject
Instance<ProducerTemplate> producers;
@@ -478,7 +482,7 @@ Instance<ProducerTemplate> produce
ProducerTemplate inbound = producers
.select(Uri.Literal.of("direct:inbound"))
.get();]]></script>
-</div></div><p> </p></div><div class="line">Or
for <strong><code>Endpoint</code></strong> beans,
e.g.:</div></div></div><div class="paragraph"><p> </p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></div><div class="line">Or
for <strong><code>Endpoint</code></strong> beans,
e.g.:</div></div></div><div class="paragraph"><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[@Any
@Inject
Instance<Endpoint> endpoints;
@@ -486,7 +490,7 @@ Instance<Endpoint> endpoints;
MockEndpoint outbound = endpoints
.select(MockEndpoint.class, Uri.Literal.of("mock:outbound"))
.get();]]></script>
-</div></div><p> </p></div><div class="paragraph"><p>Similarly, you can
use the provided annotation literal for the<strong><code>
@ContextName</code></strong> qualifier to lazily lookup
for <strong><code>CamelContext</code></strong> beans,
e.g.:</p></div><div class="listingblock"><div class="content"><div
class="line"><p> </p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+</div></div></div><div class="paragraph"><p>Similarly, you can use the
provided annotation literal for the<strong><code>
@ContextName</code></strong> qualifier to lazily lookup
for <strong><code>CamelContext</code></strong> beans,
e.g.:</p></div><div class="listingblock"><div class="content"><div
class="line"><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[@Any
@Inject
Instance<CamelContext> contexts;
@@ -494,7 +498,7 @@ Instance<CamelContext> contexts;
CamelContext context = contexts
.select(ContextName.Literal.of("foo"))
.get();]]></script>
-</div></div><p> </p></div></div></div><div class="paragraph"><p>You can
also refined the selection based on the Camel context type, e.g.:</p></div><div
class="listingblock"><div class="content"><div class="line"><p> </p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div></div></div></div><div class="paragraph"><p>You can also refined
the selection based on the Camel context type, e.g.:</p></div><div
class="listingblock"><div class="content"><div class="line"><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[@Any
@Inject
Instance<CamelContext> contexts;
@@ -505,16 +509,16 @@ Instance<DefaultCamelContext> cont
// Check if such a bean exists then retrieve a reference
if (!context.isUnsatisfied())
context.get();]]></script>
-</div></div><p> </p></div></div></div><div class="paragraph"><p>Or even
iterate over a selection of Camel contexts, e.g.:</p></div><div
class="listingblock"><div class="content"><div class="line"><p> </p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div></div></div></div><div class="paragraph"><p>Or even iterate over a
selection of Camel contexts, e.g.:</p></div><div class="listingblock"><div
class="content"><div class="line"><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[@Any
@Inject
Instance<CamelContext> contexts;
for (CamelContext context : contexts)
context.setUseBreadcrumb(true);]]></script>
-</div></div><p> </p></div></div></div><h3 id="CDI-MavenArchetype">Maven
Archetype</h3><p>Among the available <a shape="rect"
href="camel-maven-archetypes.html">Camel Maven archetypes</a>, you can use the
provided <strong><code>camel-archetype-cdi</code></strong> to
generate a Camel CDI Maven project, e.g.:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></div></div></div><h3 id="CDI-MavenArchetype">Maven
Archetype</h3><p>Among the available <a shape="rect"
href="camel-maven-archetypes.html">Camel Maven archetypes</a>, you can use the
provided <strong><code>camel-archetype-cdi</code></strong> to
generate a Camel CDI Maven project, e.g.:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="brush: bash; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[mvn archetype:generate
-DarchetypeGroupId=org.apache.camel.archetypes
-DarchetypeArtifactId=camel-archetype-cdi]]></script>
-</div></div><h3 id="CDI-SupportedContainers">Supported Containers</h3><p>The
Camel CDI component is compatible with any CDI 1.0, CDI 1.1 and CDI 1.2
compliant runtime. It's been successfully tested against the following
runtimes:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Container</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Version</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Runtime</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Weld SE</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>1.1.28.Final</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>CDI 1.0 / Java SE 7</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>OpenWebBeans</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>1.2.7</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>CDI 1.0 / Java SE
7</p></td></tr><tr
><td colspan="1" rowspan="1" class="confluenceTd"><p>Weld SE</p></td><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p><code>2.3.4.Final</code></p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>CDI 1.2 / Java SE 7</p></td></tr><tr><td
>colspan="1" rowspan="1" class="confluenceTd"><p>OpenWebBeans</p></td><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p><code>1.6.3</code></p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>CDI 1.2 / Java SE 7</p></td></tr><tr><td
>colspan="1" rowspan="1" class="confluenceTd"><p>WildFly</p></td><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p><code>8.2.1.Final</code></p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>CDI 1.2 / Java EE 7</p></td></tr><tr><td
>colspan="1" rowspan="1" class="confluenceTd"><p>WildFly</p></td><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p><code>9.0.1.Final</code></p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>CDI 1.2 / Java EE 7</p></td></tr><tr><td
>colspan="1" rowspan="1" c
lass="confluenceTd"><p>WildFly</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>10.0.0.Final</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>CDI 1.2 / Java EE 7</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>Karaf</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>2.4.4</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>CDI 1.2 / <span>OSGi 4 / PAX
CDI</span></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Karaf</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>3.0.5</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>CDI 1.2 / <span>OSGi 5 / PAX
CDI</span></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Karaf</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>4.0.4</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>CDI 1.2 / <span>OSGi 6 / PAX
CDI</span></p></td></tr></tbody></table></div><h3
id="CDI-Examples">Examples</h3><p>The following examples are available in the
<strong><code>examples</code></strong> directory of the Camel project:</p><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Example</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Illustrates how to work with
Camel using CDI to configure components, endpoints and
beans</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi-kubernetes</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Illustrates the integration
between Camel, CDI and Kubernetes</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi-metrics</span></code></p></td><td
cols
pan="1" rowspan="1" class="confluenceTd"><p>Illustrates the integration
between Camel, Dropwizard Metrics and CDI</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi-properties</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Illustrates the integration
between Camel, DeltaSpike and CDI for configuration
properties</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi-osgi</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>A CDI application using
the SJMS component that can be executed inside an OSGi container using PAX
CDI</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi-test</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Demonstrates the testing
features that are provided as part of the integration between Camel and
CDI</p></td></tr><tr><td colspan="1" rowspan="1
"
class="confluenceTd"><p><code><span>camel-example-cdi-rest-servlet</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Illustrates the Camel REST DSL
being used in a Web application that uses CDI as dependency injection
framework</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>camel-example-cdi-xml</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><span>Illustrates the use of
Camel XML configuration files into a Camel CDI
application</span></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-widget-gadget-cdi</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The Widget and Gadget use-case
from the EIP book implemented in Java with CDI dependency
injection</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-swagger-cdi</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>An example using
REST DSL and Swagger Java with CDI</p></td></tr></tbody></table></div><h3
id="CDI-SeeAlso">See Also</h3><ul><li><a shape="rect"
href="cdi-testing.html">Camel CDI Testing</a></li><li><a shape="rect"
class="external-link" href="http://www.cdi-spec.org" rel="nofollow">CDI Web
site</a></li><li><a shape="rect" class="external-link"
href="http://www.cdi-spec.org/ecosystem/" rel="nofollow">CDI
ecosystem</a></li><li><a shape="rect" class="external-link"
href="https://github.com/astefanutti/further-cdi" rel="nofollow">Going further
with CDI</a> (See Camel CDI section)</li></ul></div>
+</div></div><h3 id="CDI-SupportedContainers">Supported Containers</h3><p>The
Camel CDI component is compatible with any CDI 1.0, CDI 1.1 and CDI 1.2
compliant runtime. It's been successfully tested against the following
runtimes:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Container</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Version</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Runtime</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Weld SE</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>1.1.28.Final</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>CDI 1.0 / Java SE 7</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>OpenWebBeans</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>1.2.7</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>CDI 1.0 / Java SE
7</p></td></tr><tr
><td colspan="1" rowspan="1" class="confluenceTd"><p>Weld SE</p></td><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p><code>2.4.1.Final</code></p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>CDI 1.2 / Java SE 7</p></td></tr><tr><td
>colspan="1" rowspan="1" class="confluenceTd"><p>OpenWebBeans</p></td><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p><code>1.7.0</code></p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>CDI 1.2 / Java SE 7</p></td></tr><tr><td
>colspan="1" rowspan="1" class="confluenceTd"><p>WildFly</p></td><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p><code>8.2.1.Final</code></p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>CDI 1.2 / Java EE 7</p></td></tr><tr><td
>colspan="1" rowspan="1" class="confluenceTd"><p>WildFly</p></td><td
>colspan="1" rowspan="1"
>class="confluenceTd"><p><code>9.0.1.Final</code></p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>CDI 1.2 / Java EE 7</p></td></tr><tr><td
>colspan="1" rowspan="1" c
lass="confluenceTd"><p>WildFly</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>10.0.0.Final</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>CDI 1.2 / Java EE 7</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>Karaf</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>2.4.4</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>CDI 1.2 / <span>OSGi 4 / PAX
CDI</span></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Karaf</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>3.0.5</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>CDI 1.2 / <span>OSGi 5 / PAX
CDI</span></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Karaf</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>4.0.4</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>CDI 1.2 / <span>OSGi 6 / PAX
CDI</span></p></td></tr></tbody></table></div><h3
id="CDI-Examples">Examples</h3><p>The following examples are available in the
<strong><code>examples</code></strong> directory of the Camel project:</p><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Example</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Illustrates how to work with
Camel using CDI to configure components, endpoints and
beans</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi-kubernetes</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Illustrates the integration
between Camel, CDI and Kubernetes</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi-metrics</span></code></p></td><td
cols
pan="1" rowspan="1" class="confluenceTd"><p>Illustrates the integration
between Camel, Dropwizard Metrics and CDI</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi-properties</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Illustrates the integration
between Camel, DeltaSpike and CDI for configuration
properties</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi-osgi</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>A CDI application using
the SJMS component that can be executed inside an OSGi container using PAX
CDI</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-cdi-test</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Demonstrates the testing
features that are provided as part of the integration between Camel and
CDI</p></td></tr><tr><td colspan="1" rowspan="1
"
class="confluenceTd"><p><code><span>camel-example-cdi-rest-servlet</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Illustrates the Camel REST DSL
being used in a Web application that uses CDI as dependency injection
framework</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>camel-example-cdi-xml</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><span>Illustrates the use of
Camel XML configuration files into a Camel CDI
application</span></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-widget-gadget-cdi</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The Widget and Gadget use-case
from the EIP book implemented in Java with CDI dependency
injection</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code><span>camel-example-swagger-cdi</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>An example using
REST DSL and Swagger Java with CDI</p></td></tr></tbody></table></div><h3
id="CDI-SeeAlso">See Also</h3><ul><li><a shape="rect"
href="cdi-testing.html">Camel CDI Testing</a></li><li><a shape="rect"
class="external-link" href="http://www.cdi-spec.org" rel="nofollow">CDI Web
site</a></li><li><a shape="rect" class="external-link"
href="http://www.cdi-spec.org/ecosystem/" rel="nofollow">CDI
ecosystem</a></li><li><a shape="rect" class="external-link"
href="https://github.com/astefanutti/further-cdi" rel="nofollow">Going further
with CDI</a> (See Camel CDI section)</li></ul></div>
</td>
<td valign="top">
<div class="navigation">