Author: buildbot
Date: Thu May 10 09:23:53 2012
New Revision: 817058
Log:
Production update by buildbot for camel
Modified:
websites/production/camel/content/cache/main.pageCache
websites/production/camel/content/camel-2100-release.html
websites/production/camel/content/cdi.html
websites/production/camel/content/dependency-injection.html
websites/production/camel/content/karaf.html
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/camel/content/camel-2100-release.html
==============================================================================
--- websites/production/camel/content/camel-2100-release.html (original)
+++ websites/production/camel/content/camel-2100-release.html Thu May 10
09:23:53 2012
@@ -90,7 +90,7 @@
<h3><a shape="rect" name="Camel2.10.0Release-Fixedissues"></a>Fixed issues</h3>
-<ul><li>Fixed memory leak when dynamically adding and removing many routes at
runtime. See this <a shape="rect"
href="memory-leak-when-adding-and-removing-routes-at-runtime.html"
title="Memory leak when adding and removing routes at runtime">FAQ</a> for more
information.</li><li>Fixed potential NPE in <a shape="rect" href="ftp2.html"
title="FTP2">FTP</a> consumer when using double slashes as starting
directory.</li><li>Fixed <a shape="rect"
href="intercept.html#Intercept-InterceptSendToEndpoint">InterceptSendToEndpoint</a>
when using <tt>skipSendToEndpoint=true</tt> with a <a shape="rect"
href="predicate.html" title="Predicate">when</a> predicate to only skip sending
if the predicate was true.</li><li>Fixed an issue with <a shape="rect"
href="bean-binding.html" title="Bean Binding">Bean Binding</a> directly in a
method name not working properly with method call expressions.</li><li>Fixed
issue with using custom namespaces in <a shape="rect" href="xpath.html"
title="XPath">XP
ath</a> expressions when using <a shape="rect"
href="using-osgi-blueprint-with-camel.html" title="Using OSGi blueprint with
Camel">OSGi Blueprint</a></li><li>Fixed <a shape="rect" href="validation.html"
title="Validation">Validation</a> to support <tt>xs:import</tt> in the schema
files.</li><li>Fixed <a shape="rect" href="content-enricher.html"
title="Content Enricher">Poll Enrich</a> where the timeout was not explicitly
configured to use blocking mode (was wrongly using non-blocking
mode).</li><li>Fixed <a shape="rect" href="async.html" title="Async">Threads
EIP</a> to handle rejected policies, ensuring the <a shape="rect"
href="exchange.html" title="Exchange">Exchange</a> will finish the
<tt>UnitOfWork</tt> and will be de-registered from the inflight
registry.</li><li>Fixed <a shape="rect" href="delayer.html"
title="Delayer">Delayer</a> not working with a <a shape="rect" href="bean.html"
title="Bean">Bean</a> expression to define the delay when using XML
DSL</li><li>Fixed
<a shape="rect" href="jms.html" title="JMS">JMS</a> consumer to no longer
complain by default if no errorHandler is configured when an uncaught exception
was thrown while processing a message.</li><li>Fixed the String trim issue in
<a shape="rect" href="simple.html" title="Simple">Simple</a>
expressions.</li><li>Fixed the issue with <a shape="rect"
href="recipient-list.html" title="Recipient List">Recipient List</a> not
triggering <a shape="rect" href="error-handler.html" title="Error
Handler">Error Handler</a> for endpoints with non existing <a shape="rect"
href="component.html" title="Component">Component</a>s.</li><li>Fixed <a
shape="rect" href="load-balancer.html" title="Load Balancer">Load Balancer</a>
to update statistics in <a shape="rect" href="camel-jmx.html" title="Camel
JMX">JMX</a></li><li>Fixed <a shape="rect" href="seda.html"
title="SEDA">SEDA</a> producer configured with
<tt>waitForTaskToComplete=Always</tt> to not hand over on-completion tasks,
which otherwis
e could be processed prematurely.</li><li>Fixed a potential issue with
configuring custom start and end tokens for the <a shape="rect"
href="simple.html" title="Simple">Simple</a> language when using Spring
XML.</li><li>Fixed an issue with <a shape="rect" href="type-converter.html"
title="Type Converter">Type Converter</a> where NaN values were converted to
integers.</li><li>Fixed <a shape="rect" href="http.html" title="HTTP">HTTP</a>,
<a shape="rect" href="http4.html" title="HTTP4">HTTP4</a>, and <a shape="rect"
href="jetty.html" title="Jetty">Jetty</a> producers to send empty HTTP headers
for <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> headers
with an empty value.</li><li>Fixed an issue with configuring a custom thread
pool profile on some <a shape="rect" href="eip.html"
title="EIP">EIP</a>s.</li><li>Fixed an issue with <a shape="rect"
href="intercept.html" title="Intercept">Intercept</a> causing processors to not
update their performance statistics
in <a shape="rect" href="camel-jmx.html" title="Camel
JMX">JMX</a></li><li>Fixed using <errorHandler> with embedded
<redeliveryPolicy> to support <a shape="rect"
href="using-propertyplaceholder.html" title="Using PropertyPlaceholder">Using
PropertyPlaceholder</a></li><li>Fixed issue with using
<redeliveryPolicy>, and <redeliveryPolicyProfile> with OSGi
Blueprint.</li><li>Fixed failover <a shape="rect" href="load-balancer.html"
title="Load Balancer">Load Balancer</a> to perform defensive copy of the
message before attempting failover, to ensure previous attempts do not
propagate back into succeeding attempts.</li><li>Fixed issue when restarting
application using <a shape="rect" href="quartz.html" title="Quartz">Quartz</a>
with a persistent (non clustered) job store, where the app was not shutdown
cleanly (such as crashed)</li><li>Fixed issue when using consumer endpoints
with <a shape="rect" href="using-propertyplaceholder.html" title="Using
PropertyPl
aceholder">Property placeholders</a> not working with <a shape="rect"
href="intercept.html" title="Intercept">inteceptors</a> such as
<tt>interceptFrom</tt>.</li><li>Fixed issue with suspend/resume a <a
shape="rect" href="timer.html" title="Timer">Timer</a> consumer, not causing
timer task to stop firing.</li><li>Fixed <a shape="rect" href="netty.html"
title="Netty">Netty</a> producer to re-use existing connections when sending.
This avoid re-creating a new connection for every message being
sent.</li><li>Fixed issue with <a shape="rect" href="simple.html"
title="Simple">Simple</a> invoking overloaded methods using OGNL notation,
where method name was explicitly declared to invoke the no-parameter
method</li><li>Fixed continued and handled <a shape="rect"
href="predicate.html" title="Predicate">Predicates</a> of <a shape="rect"
href="exception-clause.html" title="Exception Clause">OnException</a> to be
evaluated once per exception, instead of twice.</li><li>Fixed <a shape="r
ect" href="throttler.html" title="Throttler">Throttler</a> and <a shape="rect"
href="delayer.html" title="Delayer">Delayer</a> EIPs when evaluating of
max/delay expression fails at runtime, not causing error handling to
react.</li><li>Fixed <a shape="rect" href="mail.html" title="Mail">Mail</a>
message with attachments may appear to be lost when <a shape="rect"
href="error-handler.html" title="Error Handler">Error Handler</a> performs 2+
redelivery attempts.</li><li>Fixed issue with a failed type conversion using <a
shape="rect" href="jaxb.html" title="JAXB">JAXB</a> may cause subsequent
attempts to be regarded as failed as well</li><li>Fixed method call <a
shape="rect" href="expression.html" title="Expression">Expression</a> to
preserve headers and <a shape="rect" href="exchange.html"
title="Exchange">Exchange</a> properties, which allow to use it for storing
state with the <a shape="rect" href="dynamic-router.html" title="Dynamic
Router">Dynamic Router</a> EIP</li><li>Fixe
d locale issue with configuring endpoints using uris, such as Turkish with the
lower/upper case of the letter i.</li><li>Fixed issue reading and writing files
when a <tt>charset</tt> was configured on the file endpoint.</li><li>Fixed
issue with <tt>convertBodyTo</tt> not working internally as <tt>transform</tt>
and <tt>setBody</tt>, by resetting the message type to
<tt>DefaultMessage</tt>.</li><li>Fixed issue with <a shape="rect"
href="loop.html" title="Loop">Loop</a> using <tt>copy</tt> and an exception
occurred</li><li>Fixed so <a shape="rect" href="file2.html"
title="File2">File</a> consumer using done file name, will not automatic delete
the done file if <tt>noop=true</tt> is configured.</li></ul>
+<ul><li>Fixed memory leak when dynamically adding and removing many routes at
runtime. See this <a shape="rect"
href="memory-leak-when-adding-and-removing-routes-at-runtime.html"
title="Memory leak when adding and removing routes at runtime">FAQ</a> for more
information.</li><li>Fixed potential NPE in <a shape="rect" href="ftp2.html"
title="FTP2">FTP</a> consumer when using double slashes as starting
directory.</li><li>Fixed <a shape="rect"
href="intercept.html#Intercept-InterceptSendToEndpoint">InterceptSendToEndpoint</a>
when using <tt>skipSendToEndpoint=true</tt> with a <a shape="rect"
href="predicate.html" title="Predicate">when</a> predicate to only skip sending
if the predicate was true.</li><li>Fixed an issue with <a shape="rect"
href="bean-binding.html" title="Bean Binding">Bean Binding</a> directly in a
method name not working properly with method call expressions.</li><li>Fixed
issue with using custom namespaces in <a shape="rect" href="xpath.html"
title="XPath">XP
ath</a> expressions when using <a shape="rect"
href="using-osgi-blueprint-with-camel.html" title="Using OSGi blueprint with
Camel">OSGi Blueprint</a></li><li>Fixed <a shape="rect" href="validation.html"
title="Validation">Validation</a> to support <tt>xs:import</tt> in the schema
files.</li><li>Fixed <a shape="rect" href="content-enricher.html"
title="Content Enricher">Poll Enrich</a> where the timeout was not explicitly
configured to use blocking mode (was wrongly using non-blocking
mode).</li><li>Fixed <a shape="rect" href="async.html" title="Async">Threads
EIP</a> to handle rejected policies, ensuring the <a shape="rect"
href="exchange.html" title="Exchange">Exchange</a> will finish the
<tt>UnitOfWork</tt> and will be de-registered from the inflight
registry.</li><li>Fixed <a shape="rect" href="delayer.html"
title="Delayer">Delayer</a> not working with a <a shape="rect" href="bean.html"
title="Bean">Bean</a> expression to define the delay when using XML
DSL</li><li>Fixed
<a shape="rect" href="jms.html" title="JMS">JMS</a> consumer to no longer
complain by default if no errorHandler is configured when an uncaught exception
was thrown while processing a message.</li><li>Fixed the String trim issue in
<a shape="rect" href="simple.html" title="Simple">Simple</a>
expressions.</li><li>Fixed the issue with <a shape="rect"
href="recipient-list.html" title="Recipient List">Recipient List</a> not
triggering <a shape="rect" href="error-handler.html" title="Error
Handler">Error Handler</a> for endpoints with non existing <a shape="rect"
href="component.html" title="Component">Component</a>s.</li><li>Fixed <a
shape="rect" href="load-balancer.html" title="Load Balancer">Load Balancer</a>
to update statistics in <a shape="rect" href="camel-jmx.html" title="Camel
JMX">JMX</a></li><li>Fixed <a shape="rect" href="seda.html"
title="SEDA">SEDA</a> producer configured with
<tt>waitForTaskToComplete=Always</tt> to not hand over on-completion tasks,
which otherwis
e could be processed prematurely.</li><li>Fixed a potential issue with
configuring custom start and end tokens for the <a shape="rect"
href="simple.html" title="Simple">Simple</a> language when using Spring
XML.</li><li>Fixed an issue with <a shape="rect" href="type-converter.html"
title="Type Converter">Type Converter</a> where NaN values were converted to
integers.</li><li>Fixed <a shape="rect" href="http.html" title="HTTP">HTTP</a>,
<a shape="rect" href="http4.html" title="HTTP4">HTTP4</a>, and <a shape="rect"
href="jetty.html" title="Jetty">Jetty</a> producers to send empty HTTP headers
for <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> headers
with an empty value.</li><li>Fixed an issue with configuring a custom thread
pool profile on some <a shape="rect" href="eip.html"
title="EIP">EIP</a>s.</li><li>Fixed an issue with <a shape="rect"
href="intercept.html" title="Intercept">Intercept</a> causing processors to not
update their performance statistics
in <a shape="rect" href="camel-jmx.html" title="Camel
JMX">JMX</a></li><li>Fixed using <errorHandler> with embedded
<redeliveryPolicy> to support <a shape="rect"
href="using-propertyplaceholder.html" title="Using PropertyPlaceholder">Using
PropertyPlaceholder</a></li><li>Fixed issue with using
<redeliveryPolicy>, and <redeliveryPolicyProfile> with OSGi
Blueprint.</li><li>Fixed failover <a shape="rect" href="load-balancer.html"
title="Load Balancer">Load Balancer</a> to perform defensive copy of the
message before attempting failover, to ensure previous attempts do not
propagate back into succeeding attempts.</li><li>Fixed issue when restarting
application using <a shape="rect" href="quartz.html" title="Quartz">Quartz</a>
with a persistent (non clustered) job store, where the app was not shutdown
cleanly (such as crashed)</li><li>Fixed issue when using consumer endpoints
with <a shape="rect" href="using-propertyplaceholder.html" title="Using
PropertyPl
aceholder">Property placeholders</a> not working with <a shape="rect"
href="intercept.html" title="Intercept">inteceptors</a> such as
<tt>interceptFrom</tt>.</li><li>Fixed issue with suspend/resume a <a
shape="rect" href="timer.html" title="Timer">Timer</a> consumer, not causing
timer task to stop firing.</li><li>Fixed <a shape="rect" href="netty.html"
title="Netty">Netty</a> producer to re-use existing connections when sending.
This avoid re-creating a new connection for every message being
sent.</li><li>Fixed issue with <a shape="rect" href="simple.html"
title="Simple">Simple</a> invoking overloaded methods using OGNL notation,
where method name was explicitly declared to invoke the no-parameter
method</li><li>Fixed continued and handled <a shape="rect"
href="predicate.html" title="Predicate">Predicates</a> of <a shape="rect"
href="exception-clause.html" title="Exception Clause">OnException</a> to be
evaluated once per exception, instead of twice.</li><li>Fixed <a shape="r
ect" href="throttler.html" title="Throttler">Throttler</a> and <a shape="rect"
href="delayer.html" title="Delayer">Delayer</a> EIPs when evaluating of
max/delay expression fails at runtime, not causing error handling to
react.</li><li>Fixed <a shape="rect" href="mail.html" title="Mail">Mail</a>
message with attachments may appear to be lost when <a shape="rect"
href="error-handler.html" title="Error Handler">Error Handler</a> performs 2+
redelivery attempts.</li><li>Fixed issue with a failed type conversion using <a
shape="rect" href="jaxb.html" title="JAXB">JAXB</a> may cause subsequent
attempts to be regarded as failed as well</li><li>Fixed method call <a
shape="rect" href="expression.html" title="Expression">Expression</a> to
preserve headers and <a shape="rect" href="exchange.html"
title="Exchange">Exchange</a> properties, which allow to use it for storing
state with the <a shape="rect" href="dynamic-router.html" title="Dynamic
Router">Dynamic Router</a> EIP</li><li>Fixe
d locale issue with configuring endpoints using uris, such as Turkish with the
lower/upper case of the letter i.</li><li>Fixed issue reading and writing files
when a <tt>charset</tt> was configured on the file endpoint.</li><li>Fixed
issue with <tt>convertBodyTo</tt> not working internally as <tt>transform</tt>
and <tt>setBody</tt>, by resetting the message type to
<tt>DefaultMessage</tt>.</li><li>Fixed issue with <a shape="rect"
href="loop.html" title="Loop">Loop</a> using <tt>copy</tt> and an exception
occurred</li><li>Fixed so <a shape="rect" href="file2.html"
title="File2">File</a> consumer using done file name, will not automatic delete
the done file if <tt>noop=true</tt> is configured.</li><li>Fixed issue with <a
shape="rect" href="servlet.html" title="SERVLET">SERVLET</a> may send back
incorrect content length for data with unicode characters outside the normal
ASCII range.</li></ul>
<h3><a shape="rect"
name="Camel2.10.0Release-NewEnterpriseIntegrationPatterns"></a>New <a
shape="rect" href="enterprise-integration-patterns.html" title="Enterprise
Integration Patterns">Enterprise Integration Patterns</a></h3>
@@ -140,7 +140,7 @@
<h2><a shape="rect"
name="Camel2.10.0Release-DependencyUpgrades"></a>Dependency Upgrades</h2>
-<ul><li>AHC 1.6.5 to 1.7.4</li><li>AWS 1.2.2 to 1.3.0</li><li>Commons-codec
1.4 to 1.6</li><li>Commons-net 2.2 to 3.1.0</li><li>CXF 2.5.1 to
2.6.0</li><li>EHCache 2.4.3 to 2.5.1</li><li>Freemarker 2.3.18 to
2.3.19</li><li>Groovy 1.8.5 to 1.8.6</li><li>Hadoop 0.20.203.0 to
1.0.0</li><li>HTTP4 core 4.1.2 to 4.1.4</li><li>HTTP4 client 4.1.2 to
4.1.3</li><li>Hazelcast 1.9.4.4 to 2.0.2</li><li>Hawtbuf 1.7 to
1.9</li><li>Jackson 1.9.2 to 1.9.5</li><li>Jackrabbit 2.2.4 to
2.2.11</li><li>Jasypt 1.7 to 1.9.0</li><li>Javax Mail 1.4.4. to
1.4.5</li><li>Jersey 1.10 to 1.12</li><li>JClouds 1.3.1 to
1.4.0</li><li>Jettison 1.3 to 1.3.1</li><li>Jetty 7.5.3 to 7.5.4</li><li>JRuby
1.6.6 to 1.6.7</li><li>JSCH 0.1.44 to 0.1.46</li><li>JuEL 2.1.3 to
2.1.4</li><li>Kratti 0.4.1 to 0.4.5</li><li>Logback 1.0.0 to
1.0.1</li><li>Lucene 3.0.3 to 3.5.0</li><li>MyBatis 3.0.6 to
3.1.1</li><li>Netty 3.2.6 to 3.4.2</li><li>OGNL 3.0.2 to 3.0.4</li><li>Resetlet
2.0.10 to 2.0.11</li><li>SNMP 1.8.1 to 1.10.1</l
i><li>Shiro 1.1.0 to 1.2.0</li><li>Stringtemplate 3.0 to 3.2.1</li><li>Spring
3.0.6 to 3.0.7/3.1.1</li><li>Spring Integration 2.0.5 to 2.1.1</li><li>Spring
Security 3.0.7 to 3.1.0</li><li>Spring WebServices 2.0.3 to
2.0.5</li><li>Spymemcached 2.5 to 2.8.0</li><li>Tagsoup 1.2 to
1.2.1</li><li>Woodstox 4.1.1 to 4.1.2</li><li>XStream 1.4.1 to
1.4.2</li><li>XML Security 1.4.5 to 1.5.1</li></ul>
+<ul><li>AHC 1.6.5 to 1.7.4</li><li>AWS 1.2.2 to 1.3.8</li><li>Commons-codec
1.4 to 1.6</li><li>Commons-net 2.2 to 3.1.0</li><li>CXF 2.5.1 to
2.6.0</li><li>EHCache 2.4.3 to 2.5.1</li><li>Freemarker 2.3.18 to
2.3.19</li><li>Groovy 1.8.5 to 1.8.6</li><li>Hadoop 0.20.203.0 to
1.0.0</li><li>HTTP4 core 4.1.2 to 4.1.4</li><li>HTTP4 client 4.1.2 to
4.1.3</li><li>Hazelcast 1.9.4.4 to 2.0.2</li><li>Hawtbuf 1.7 to
1.9</li><li>Jackson 1.9.2 to 1.9.5</li><li>Jackrabbit 2.2.4 to
2.2.11</li><li>Jasypt 1.7 to 1.9.0</li><li>Javax Mail 1.4.4. to
1.4.5</li><li>Jersey 1.10 to 1.12</li><li>JClouds 1.3.1 to
1.4.0</li><li>Jettison 1.3 to 1.3.1</li><li>Jetty 7.5.3 to 7.5.4</li><li>JRuby
1.6.6 to 1.6.7</li><li>JSCH 0.1.44 to 0.1.46</li><li>JuEL 2.1.3 to
2.1.4</li><li>Kratti 0.4.1 to 0.4.5</li><li>Logback 1.0.0 to
1.0.1</li><li>Lucene 3.0.3 to 3.5.0</li><li>MyBatis 3.0.6 to
3.1.1</li><li>Netty 3.2.6 to 3.4.2</li><li>OGNL 3.0.2 to 3.0.4</li><li>Resetlet
2.0.10 to 2.0.11</li><li>SNMP 1.8.1 to 1.10.1</l
i><li>Shiro 1.1.0 to 1.2.0</li><li>Stringtemplate 3.0 to 3.2.1</li><li>Spring
3.0.6 to 3.0.7/3.1.1</li><li>Spring Integration 2.0.5 to 2.1.1</li><li>Spring
Security 3.0.7 to 3.1.0</li><li>Spring WebServices 2.0.3 to
2.0.5</li><li>Spymemcached 2.5 to 2.8.0</li><li>Tagsoup 1.2 to
1.2.1</li><li>Woodstox 4.1.1 to 4.1.2</li><li>XStream 1.4.1 to
1.4.2</li><li>XML Security 1.4.5 to 1.5.1</li></ul>
<h2><a shape="rect"
name="Camel2.10.0Release-Importantchangestoconsiderwhenupgrading"></a>Important
changes to consider when upgrading</h2>
Modified: websites/production/camel/content/cdi.html
==============================================================================
--- websites/production/camel/content/cdi.html (original)
+++ websites/production/camel/content/cdi.html Thu May 10 09:23:53 2012
@@ -77,98 +77,86 @@
<td valign="top" width="100%">
<div class="wiki-content maincontent"><h2><a shape="rect"
name="CDI-CamelCDI"></a>Camel CDI</h2>
-<p>As of 2.10 we now have support for <a shape="rect" class="external-link"
href="http://jcp.org/en/jsr/detail?id=299" rel="nofollow">Contexts and
Dependency Injection - JSR299</a> and <a shape="rect" class="external-link"
href="http://jcp.org/en/jsr/detail?id=330" rel="nofollow">Dependency Injection
for Java - JSR330</a> as a dependency injection framework.</p>
+<p>As of 2.10 we now have support <a shape="rect" class="external-link"
href="http://jcp.org/en/jsr/detail?id=299" rel="nofollow">Contexts and
Dependency Injection - JSR299</a> and <a shape="rect" class="external-link"
href="http://jcp.org/en/jsr/detail?id=330" rel="nofollow">Dependency Injection
for Java - JSR330</a> as a dependency injection framework. This offers new
opportunities to develop and deploy Apache Camel projects in <a shape="rect"
class="external-link"
href="http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition"
rel="nofollow">Java EE 6 containers</a> but also in standalone Java SE or <a
shape="rect" class="external-link"
href="http://openwebbeans.apache.org/owb/index.html">CDI container</a> </p>
-<h3><a shape="rect" name="CDI-DependencyInjectingCamelwithCDI"></a>Dependency
Injecting Camel with CDI</h3>
-
-<p>The <a shape="rect" class="external-link"
href="http://camel.apache.org/maven/current/camel-guice/apidocs/org/apache/camel/guice/GuiceCamelContext.html">GuiceCamelContext</a>
is designed to work nicely inside Guice. You then need to bind it using some
Guice Module.</p>
+<p>The current project is under active development and does not provide all
the features that we have with injection frameworks like Spring or Blueprint
</p>
-<p>The camel-guice library comes with a number of reusable Guice Modules you
can use if you wish - or you can bind the GuiceCamelContext yourself in your
own module.</p>
+<h3><a shape="rect" name="CDI-DependencyInjectingCamelwithCDI"></a>Dependency
Injecting Camel with CDI</h3>
-<ul><li><a shape="rect" class="external-link"
href="http://camel.apache.org/maven/current/camel-guice/apidocs/org/apache/camel/guice/CamelModule.html">CamelModule</a>
is the base module which binds the GuiceCamelContext but leaves it up you to
bind the RouteBuilder instances</li><li><a shape="rect" class="external-link"
href="hhttp://camel.apache.org/maven/current/camel-guice/apidocs/org/apache/camel/guice/CamelModuleWithRouteTypes.html"
rel="nofollow">CamelModuleWithRouteTypes</a> extends CamelModule so that in
the constructor of the module you specify the RouteBuilder classes or instances
to use</li><li><a shape="rect" class="external-link"
href="http://camel.apache.org/maven/current/camel-guice/apidocs/org/apache/camel/guice/CamelModuleWithMatchingRoutes.html">CamelModuleWithMatchingRoutes</a>
extends CamelModule so that all bound RouteBuilder instances will be injected
into the CamelContext or you can supply an optional Matcher to find
RouteBuilder instances matching som
e kind of predicate.</li></ul>
+<p>Basically, two things should be done to use Apache Camel in a CDI
environment. First, we just need to create a <a shape="rect"
class="external-link"
href="https://github.com/cmoulliard/cdi-camel/blob/master/src/main/java/com/fusesource/cdi/camel/simple/BootStrap.java"
rel="nofollow">BootStrap</a> class which will be use by the Java EE 6
container or Java SE to start the Camel Context. The <a shape="rect"
class="external-link"
href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/CdiCamelContext.java">CdiCamelContext</a>
when instantiated will add a CDI <a shape="rect" class="external-link"
href="http://docs.oracle.com/javaee/6/api/javax/enterprise/inject/spi/BeanManager.html"
rel="nofollow">Bean Registry</a>. That will allow Camel to perform lookup of
beans injected and registered in CDI container. Next, we must add CDI annotated
beans (@inject, @named, ...) to use them from the Apache Camel routes.</p>
+<h3><a shape="rect"
name="CDI-BootstrappingCamelwithCDIcontainer"></a>Bootstrapping Camel with CDI
container</h3>
-<p>So you can specify the exact <a shape="rect" href="routebuilder.html"
title="RouteBuilder">RouteBuilder</a> instances you want</p>
+<p>The following example shows how we can bootstrap an Apache Camel Context in
a Boot Strap class. This class contains important annotations like the <a
shape="rect" class="external-link"
href="http://docs.oracle.com/javaee/6/api/javax/ejb/Singleton.html"
rel="nofollow">javax.ejb.Singleton</a>. This annotation will tell the container
to create a Singleton instance of the BootStrapClass class. This mechanism is
similar to Bean instance creation that we have with Spring framework. By
combining this annotation with <a shape="rect" class="external-link"
href="http://docs.oracle.com/javaee/6/api/javax/ejb/Startup.html"
rel="nofollow">javax.ejb.Startup</a>, the container will start the camel
context at the startup of the CDI container. </p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
<pre class="code-java">
-Injector injector = Guice.createInjector(<span class="code-keyword">new</span>
CamelModuleWithRouteTypes(MyRouteBuilder.class, AnotherRouteBuilder.class));
-<span class="code-comment">// <span class="code-keyword">if</span> required
you can lookup the CamelContext
-</span>CamelContext camelContext = injector.getInstance(CamelContext.class);
+ @Singleton
+ @Startup
+ <span class="code-keyword">public</span> class BootStrap {
+ ...
</pre>
</div></div>
-<p>Or inject them all</p>
+<p>When the @PreConstruct annotation is called, then we inject a
CdiCamelContext objet, register a SimpleCamelRoute using @Inject annotation and
starts the Camel Route.</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
<pre class="code-java">
-Injector injector = Guice.createInjector(<span class="code-keyword">new</span>
CamelModuleWithRouteTypes());
-<span class="code-comment">// <span class="code-keyword">if</span> required
you can lookup the CamelContext
-</span>CamelContext camelContext = injector.getInstance(CamelContext.class);
+ @PostConstruct
+ <span class="code-keyword">public</span> void init() <span
class="code-keyword">throws</span> Exception {
+ logger.info(<span class="code-quote">">> Create CamelContext
and register Camel Route."</span>);
+
+ <span class="code-comment">// Define Timer URI
+</span> simpleRoute.setTimerUri(<span
class="code-quote">"timer:<span class="code-comment">//simple?fixedRate=<span
class="code-keyword">true</span>&period=10s"</span>);
+</span>
+ <span class="code-comment">// Add Camel Route
+</span> camelCtx.addRoutes(simpleRoute);
+
+ <span class="code-comment">// Start Camel Context
+</span> camelCtx.start();
</pre>
</div></div>
-<p>You can then use Guice in the usual way to inject the route instances or
any other dependent objects.</p>
-
-<h3><a shape="rect" name="CDI-BootstrappingwithJNDI"></a>Bootstrapping with
JNDI</h3>
-
-<p>A common pattern used in J2EE is to bootstrap your application or root
objects by looking them up in JNDI. This has long been the approach when
working with JMS for example - looking up the JMS ConnectionFactory in JNDI for
example.</p>
-
-<p>You can follow a similar pattern with Guice using the <a shape="rect"
class="external-link"
href="http://code.google.com/p/guiceyfruit/wiki/GuiceyJndi"
rel="nofollow">GuiceyFruit JNDI Provider</a> which lets you bootstrap Guice
from a <b>jndi.properties</b> file which can include the Guice Modules to
create along with environment specific properties you can inject into your
modules and objects.</p>
-
-<p>If the <b>jndi.properties</b> is conflict with other component, you can
specify the jndi properties file name in the Guice Main with option -j or
-jndiProperties with the properties file location to let Guice Main to load
right jndi properties file.</p>
-
-<h3><a shape="rect"
name="CDI-ConfiguringComponent%2CEndpointorRouteBuilderinstances"></a>Configuring
Component, Endpoint or RouteBuilder instances</h3>
-
-<p>You can use <a shape="rect" href="guice.html" title="Guice">Guice</a> to
dependency inject whatever objects you need to create, be it an <a shape="rect"
href="endpoint.html" title="Endpoint">Endpoint</a>, <a shape="rect"
href="component.html" title="Component">Component</a>, <a shape="rect"
href="routebuilder.html" title="RouteBuilder">RouteBuilder</a> or arbitrary <a
shape="rect" href="bean-integration.html" title="Bean Integration">bean used
within a route</a>. </p>
-
-<p>The easiest way to do this is to create your own Guice Module class which
extends one of the above module classes and add a provider method for each
object you wish to create. A provider method is annotated with <b>@Provides</b>
as follows</p>
+<p>When you look to the following Camel Route code, you can see that we do a
lookup to find a bean "helloWorld" which has been injected. This is possible
because the CdiCamelContext registers a Camel Registry containing a reference
to a CDI BeanManager.</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
<pre class="code-java">
-<span class="code-keyword">public</span> class MyModule <span
class="code-keyword">extends</span> CamelModuleWithMatchingRoutes {
+ @Override
+ <span class="code-keyword">public</span> void configure() <span
class="code-keyword">throws</span> Exception {
+
+ from(timerUri)
+ .setBody()
+ .simple(<span class="code-quote">"Bean Injected"</span>)
+
+ <span class="code-comment">// Lookup <span
class="code-keyword">for</span> bean injected by CDI container
+</span> <span class="code-comment">// The HellowWorld class is
annotated using @Named
+</span> .beanRef(<span class="code-quote">"helloWorld"</span>,
<span class="code-quote">"sayHello"</span>)
+
+ .log(<span class="code-quote">">> Response :
${body}"</span>);
- @Provides
- @JndiBind(<span class="code-quote">"jms"</span>)
- JmsComponent jms(@Named(<span
class="code-quote">"activemq.brokerURL"</span>) <span
class="code-object">String</span> brokerUrl) {
- <span class="code-keyword">return</span>
JmsComponent.jmsComponent(<span class="code-keyword">new</span>
ActiveMQConnectionFactory(brokerUrl));
}
-}
</pre>
</div></div>
-<p>You can optionally annotate the method with <b>@JndiBind</b> to bind the
object to JNDI at some name if the object is a component, endpoint or bean you
wish to refer to by name in your routes.</p>
-
-<p>You can inject any environment specific properties (such as URLs, machine
names, usernames/passwords and so forth) from the jndi.properties file easily
using the <b>@Named</b> annotation as shown above. This allows most of your
configuration to be in Java code which is typesafe and easily refactorable -
then leaving some properties to be environment specific (the jndi.properties
file) which you can then change based on development, testing, production
etc.</p>
-
-
-<h3><a shape="rect"
name="CDI-CreatingmultipleRouteBuilderinstancespertype"></a>Creating multiple
RouteBuilder instances per type</h3>
-
-<p>It is sometimes useful to create multiple instances of a particular <a
shape="rect" href="routebuilder.html" title="RouteBuilder">RouteBuilder</a>
with different configurations.</p>
-
-<p>To do this just create multiple provider methods for each configuration; or
create a single provider method that returns a collection of RouteBuilder
instances.</p>
-
-<p>For example</p>
+<p>Here is the code of the HelloWorld Bean</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
<pre class="code-java">
-<span class="code-keyword">import</span>
org.apache.camel.guice.CamelModuleWithMatchingRoutes;
-<span class="code-keyword">import</span> com.google.common.collect.Lists;
+@Named
+<span class="code-keyword">public</span> class HelloWorld {
-<span class="code-keyword">public</span> class MyModule <span
class="code-keyword">extends</span> CamelModuleWithMatchingRoutes {
-
- @Provides
- @JndiBind(<span class="code-quote">"foo"</span>)
- Collection<RouteBuilder> foo(@Named(<span
class="code-quote">"fooUrl"</span>) <span class="code-object">String</span>
fooUrl) {
- <span class="code-keyword">return</span> Lists.newArrayList(<span
class="code-keyword">new</span> MyRouteBuilder(fooUrl), <span
class="code-keyword">new</span> MyRouteBuilder(<span
class="code-quote">"activemq:CheeseQueue"</span>));
+ <span class="code-keyword">public</span> <span
class="code-object">String</span> sayHello(@Body <span
class="code-object">String</span> message) {
+ <span class="code-keyword">return</span> <span
class="code-quote">">> Hello "</span> + message + <span
class="code-quote">" user."</span>;
}
}
</pre>
</div></div>
+<p>This project is started using the <a shape="rect" class="external-link"
href="http://embedded-glassfish.java.net/nonav/plugindocs/3.1/plugin-info.html"
rel="nofollow">GlassFish maven plugin</a> but alternatively, you can deploy the
war file produced in any Java EE 6 servers : Glassfish, JBoss AS 7, OpenEJB,
Apache TomEE or Apache KarafEE or using a <a shape="rect" class="external-link"
href="http://agoncal.wordpress.com/2011/01/12/bootstrapping-cdi-in-several-environments/"
rel="nofollow">Java SE</a>.</p>
+
<h3><a shape="rect" name="CDI-SeeAlso"></a>See Also</h3>
-<ul><li>there are a number of <a shape="rect" href="examples.html"
title="Examples">Examples</a> you can look at to see Guice and Camel being used
such as <a shape="rect" href="guice-jms-example.html" title="Guice JMS
Example">Guice JMS Example</a></li><li><a shape="rect"
href="guice-maven-plugin.html" title="Guice Maven Plugin">Guice Maven
Plugin</a> for running your Guice based routes via Maven</li></ul>
+<ul><li>Simple <a shape="rect" class="external-link"
href="https://github.com/cmoulliard/cdi-camel" rel="nofollow">Camel CDI
BootStrap project</a></li><li><a shape="rect" class="external-link"
href="http://docs.jboss.org/weld/reference/1.1.5.Final/en-US/html_single/"
rel="nofollow">JSR299</a> and <a shape="rect" class="external-link"
href="http://openwebbeans.apache.org/owb/jsr330.html">JSR330</a> reference
documentations</li><li>CDI revealed by Antonio - <a shape="rect"
class="external-link"
href="https://agoncal.wordpress.com/2011/04/07/injection-with-cdi-part-i/"
rel="nofollow">part 1</a>, <a shape="rect" class="external-link"
href="https://agoncal.wordpress.com/2011/05/03/injection-with-cdi-part-ii/"
rel="nofollow">part 2</a>, <a shape="rect" class="external-link"
href="https://agoncal.wordpress.com/2011/09/25/injection-with-cdi-part-iii/"
rel="nofollow">part 3</a></li><li>Apache CDI implementation <a shape="rect"
class="external-link" href="http://openwebbeans.apache.or
g/owb/index.html">OpenWebbeans</a> and Apache <a shape="rect"
class="external-link" href="http://openejb.apache.org/">OpenEJB</a> which
provide the containers to deploy camel CDI projects</li><li>Apache Karaf
featured with OpenEJB and OpenCDI - <a shape="rect" class="external-link"
href="https://svn.apache.org/repos/asf/openejb/trunk/openejb/osgi/">Apache
KarafEE</a></li></ul>
</div>
</td>
<td valign="top">
Modified: websites/production/camel/content/dependency-injection.html
==============================================================================
--- websites/production/camel/content/dependency-injection.html (original)
+++ websites/production/camel/content/dependency-injection.html Thu May 10
09:23:53 2012
@@ -79,10 +79,10 @@
<p><em>Dependency Injection</em> or <em>Inversion of Control</em> is a pattern
where dependencies of an object are injected into the object without the object
being too aware of how the injection is performed. The two most popular
Dependency Injection libraries available at the time of writing are</p>
-<ul><li><a shape="rect" href="spring.html"
title="Spring">Spring</a></li><li><a shape="rect" href="guice.html"
title="Guice">Guice</a></li></ul>
+<ul><li><a shape="rect" href="spring.html"
title="Spring">Spring</a></li><li><a shape="rect" href="guice.html"
title="Guice">Guice</a></li><li><a shape="rect" href="cdi.html"
title="CDI">CDI</a></li></ul>
-<p>Camel is developed such that any Dependency Injection framework can be used
easily - though we've tried hard to optimise Camel for both <a shape="rect"
href="spring.html" title="Spring">Spring</a> and <a shape="rect"
href="guice.html" title="Guice">Guice</a></p></div>
+<p>Camel is developed such that any Dependency Injection framework can be used
easily - though we've tried hard to optimise Camel for both <a shape="rect"
href="spring.html" title="Spring">Spring</a>,<a shape="rect" href="cdi.html"
title="CDI">CDI</a> and <a shape="rect" href="guice.html"
title="Guice">Guice</a></p></div>
</td>
<td valign="top">
<div class="navigation">
Modified: websites/production/camel/content/karaf.html
==============================================================================
--- websites/production/camel/content/karaf.html (original)
+++ websites/production/camel/content/karaf.html Thu May 10 09:23:53 2012
@@ -189,6 +189,12 @@ karaf@root> features:install camel-st
</div>
+<h3><a shape="rect" name="Karaf-KarafcommandsinCamel2.10onwards"></a>Karaf
commands in Camel 2.10 onwards</h3>
+<div class="table-wrap">
+<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"> Command </th><th colspan="1" rowspan="1"
class="confluenceTh"> Description </th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"> <b>camel:endpoint-list</b> </td><td colspan="1"
rowspan="1" class="confluenceTd"> Lists endpoints fromm all camel contexts
available in the current Karaf instance </td></tr></tbody></table>
+</div>
+
+
<h3><a shape="rect"
name="Karaf-camel%3Alistcontexts"></a>camel:list-contexts</h3>
<p>The *<b>camel:list-contexts</b>* command displays the list of CamelContext
available in the current Karaf instance:</p>
@@ -389,7 +395,24 @@ karaf@root> camel:route-suspend route
karaf@root> camel:route-resume route1
</pre>
</div></div>
-<p><em>Tip: use TAB key for completion on the route name.</em></p></div>
+<p><em>Tip: use TAB key for completion on the route name.</em></p>
+
+<h4><a shape="rect" name="Karaf-Camel2.10ornewer%3A"></a>Camel 2.10 or
newer:</h4>
+
+<h3><a shape="rect"
name="Karaf-camel%3Aendpointlist"></a>camel:endpoint-list</h3>
+
+<p>The *<b>camel:endpoint-list</b>* command displays the list of the endpoints
available in all camel contexts of the current Karaf instance:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">
+karaf@root> camel:endpoint-list
+camel-id uri Status
+[test ] [timer:<span class="code-comment">//test ] [Started
]
+</span>[test ] [direct:<span class="code-comment">//A ]
[Started ]</span>
+</pre>
+</div></div>
+
+<p>It displays the context name/ID (used in others commands), the URI of the
endpoint and the current status (started/stopped).</p></div>
</td>
<td valign="top">
<div class="navigation">