Modified: websites/production/camel/content/camel-220-release.html
==============================================================================
--- websites/production/camel/content/camel-220-release.html (original)
+++ websites/production/camel/content/camel-220-release.html Sun Mar 9
23:18:55 2014
@@ -86,159 +86,25 @@
<tbody>
<tr>
<td valign="top" width="100%">
-<div class="wiki-content maincontent"><h1
id="Camel2.2.0Release-Camel2.2.0release">Camel 2.2.0 release</h1>
-
-<div style="padding-right:20px;float:left;margin-left:-20px;">
-<p><span class="image-wrap" style=""><img
src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"
style="border: 0px solid black"></span></p></div>
-<div style="min-height:200px"></div>
-
-<h2 id="Camel2.2.0Release-NewandNoteworthy">New and Noteworthy</h2>
-
-<p>Welcome to the 2.2.0 release which approx 180 issues resolved (new
features, improvements and bug fixes such as...)</p>
-
-<ul><li><a shape="rect" href="routing-slip.html">Routing Slip</a> now breaks
when an exception occurred</li><li><a shape="rect" href="mina.html">Mina</a>
now supports easier configuration of multiple custom codecs, which is needed
when working with SSL.</li><li>Improved <a shape="rect"
href="transactionerrorhandler.html">TransactionErrorHandler</a> two fold by
reducing complexity of internal logic in Camel when working with transactions.
And added better support for using multiple transactions in multiple routes.
See more at section <em>Using multiple routes with different propagation
behaviors</em> at <a shape="rect"
href="transactional-client.html">Transactional Client</a>.</li><li><a
shape="rect" href="recipient-list.html">Recipient List</a> now supports
<code>parallelProcessing</code>, <code>stopOnException</code> and references
for <code>AggregationStrategy</code> and thread pools. This applies to the
<code>@RecipientList</code> annotation as well.</li><li>Cleanup of spring jar
dependencies.</li><li><a shape="rect" href="file-language.html">File
Language</a> is now merged directly into <a shape="rect"
href="simple.html">Simple</a> language which among others makes <a shape="rect"
href="content-based-router.html">Content Based Router</a> in Spring XML using
file language syntax easier.</li><li><a shape="rect" href="http.html">HTTP</a>
is now using CamelContext Properties instead of System Properties to set the
http proxy configuration.</li><li>Fixed <a shape="rect"
href="using-camelproxy.html">Camel Proxy</a> throwing exception if
<code>null</code> was returned.</li><li>Improved error handling with <a
shape="rect" href="recipient-list.html">Recipient List</a> and <a shape="rect"
href="multicast.html">Multicast</a> which now performs redelivery etc. on that
<em>output</em> node instead of starting again from the
scratch.</li><li>Improved the <a shape="rect" href="etl-example.html">ETL
EXAMPLE</a> and <a shape="rect" href="bam-example.html">BAM EXAMPLE</a> s
o they can be deployed into ServiceMix4(Karaf).</li><li><a shape="rect"
href="seda.html">SEDA</a> now supports <code>multipleConsumers</code> which
allows you to use it for pub-sub messaging where each consumer concurrently
will receive a copy of the <a shape="rect" href="exchange.html">Exchange</a>.
This is done with the help from <a shape="rect"
href="multicast.html">Multicast</a> EIP.</li><li><a shape="rect"
href="defaulterrorhandler.html">DefaultErrorHandler</a> will now log a log line
at <code>ERROR</code> level in case an Exception was thrown which could not be
redelivered either. This aid to see that an Exception occurred instead of
relying on the client logging it. You can customize this behavior on the <a
shape="rect" href="error-handler.html">Error Handler</a>.</li><li>Fixed
<code>groupedExchange</code> not working properly on <a shape="rect"
href="aggregator.html">Aggregator</a>.</li><li><a shape="rect"
href="graceful-shutdown.html">Graceful Shutdown</a> which ensures Cam
el now shutdown in a more reliable and graceful manner. This also works with
in memory components such as <a shape="rect"
href="seda.html">SEDA</a>.</li><li>Added new <code><a shape="rect"
href="logeip.html">log</a></code> in the DSL for dynamic human readable log
messages.</li><li>Camel now supports Spring 3.0 as well (will still use Camel
2.5.6 as default). However camel-spring-javaconfig now requires Spring 3.0 as
Spring have native support for java configuration.</li><li>Added methods for
getting header and property (Exchange / Message API) which uses a default
parameter.</li><li>Added OsgiClassResolver which supports to load the class or
resources within OSGi platform.</li><li>Added fireNow option to <a shape="rect"
href="quartz.html">Quartz</a> component to fire the trigger when the route is
started.</li><li><a shape="rect" href="file2.html">File</a> will delete
orphaned lock files on startup. This allows it to selfheal in cases when Camel
was terminated/killed abruptly.</li><
li>Fixed issue with using Spring XML for routing could in some cases
<em>loose</em> route scoped configured <code><onException></code>,
<code><onCompletion/></code> when using in combination with
<code><transacted/></code>.</li><li><code><proxy></code>,
<code><export></code>, <code><endpoint></code>,
<code><template></code>, <code><consumerTemplate></code> can be
defined outside of <code><camelContext></code>.</li><li><a shape="rect"
href="jaxb.html">JAXB</a> will filter the nonXml characters when it unmarshals
the inputstream or marshal the java object.</li><li>Slightly reworked how
correlation id is determined in <a shape="rect" href="jms.html">JMS</a> when
using InOut messaging. See more at <em>important changes to consider when
upgrading</em>.</li><li><code>EventNotifier</code> improved to allow ignoring
events based on categories. Easier configuration to only notify those events
you care about.</li><li>Added <code>PublishEve
ntNotifier</code> to send the events to any kind of Camel <a shape="rect"
href="endpoint.html">Endpoint</a>.</li><li><a shape="rect"
href="jdbc.html">JDBC</a> added option
<code>useJDBC4ColumnNameAndLabelSemantics</code> to let you choose semantics to
use in case you have issue with your JDBC driver when using SQL SELECT with
aliases.</li><li><a shape="rect" href="cache.html">Cache</a> can now store
message bodies which are <code>Serializable</code> out of the box and not
forcing to be converted into a byte stream as it otherwise would.</li><li>Fixed
an issue with running the <a shape="rect" href="examples.html">Examples</a>
using ANT.</li><li><code>ManagementStrategy</code> now supports using multiple
<code>EventNotifier</code> instead of just one.</li><li>Introduced <a
shape="rect" href="notifybuilder.html">NotifyBuilder</a> which helps during
testing. For example when testing routes without mocks etc. It will help to
notify when a certain condition has occurred such as X messages
has is done etc.</li><li><a shape="rect" href="ftp2.html">FTP</a> now allows
using starting directory with a dot in the name. It used to invalidate those to
easy transition from Camel 1.x to 2.x as 1.x did also support using a file as
starting (which was not good practice).</li><li><a shape="rect"
href="file2.html">File</a> producer now supports option to keep last modified
timestamp in case a message was received from some file source. You can also
set the timestamp it should use in the header
<code>Exchange.FILE_LAST_MODIFIED</code>.</li><li><a shape="rect"
href="bean-language.html">Bean Language</a> using <code>bean</code> or
<code>method</code> to invoke a <a shape="rect" href="bean.html">Bean</a> now
supports using an existing bean instance. This is convenient for testing where
you can quickly use an instance you have prepared in the unit test.</li><li><a
shape="rect" href="camel-jboss.html">camel-jboss</a> for running Camel inside
JBoss Application Server which uses it specia
lized classloading which prevents typically frameworks to not work out of the
box inside JBoss.</li><li><a shape="rect" class="external-link"
href="http://camel-extra.googlecode.com/" rel="nofollow">Camel Extra</a>
projects migrated to use Camel 2.1.0 release.</li><li><a shape="rect"
href="jaxb.html">JAXB</a> now supports partial
marshalling/unmarshalling.</li><li><a shape="rect" href="bean.html">Bean</a>
parameter binding using Camel annotations now works with CGLIB enhanced
classes.</li><li><a shape="rect" href="cxf.html">CXF</a> supports to configure
the endpoint with CXF style configuration.</li><li><a shape="rect"
href="defaulterrorhandler.html">DefaultErrorHandler</a> will now log
stracktrace when an <a shape="rect" href="exchange.html">Exchange</a> is
exhausted (give up). Added new <code>logRetryStackTrace</code> option to set
whether or not stacktraces are logged for failed redelivery attempts. Most
people dont like the logs spammed if you retry 5 times etc.</li><li><a shape
="rect" href="bean.html">Bean</a> component now honors void method invocations
and accepts methods returning <code>null</code> as a valid response.</li><li><a
shape="rect" href="error-handler.html">Error Handler</a> now catches and
handles all exceptions (Throwable). This ensures fatal errors such as
<code>NoSuchMethodException</code> etc. will now be handle by Camel and logged
etc.</li><li><a shape="rect" href="cxf.html">cxfbean</a> now propagates
CONTENT_TYPE for other camel component to use.</li></ul>
-
-
-<h3 id="Camel2.2.0Release-New">New <a shape="rect"
href="enterprise-integration-patterns.html">Enterprise Integration
Patterns</a></h3>
-
-<h3 id="Camel2.2.0Release-New.1">New <a shape="rect"
href="components.html">Components</a></h3>
-
-<ul><li><a shape="rect" href="ftp2.html">camel-ftp</a> now supports
<code>FTPS</code> (FTP over SSL/TLS)</li><li><a shape="rect"
href="smpp.html">camel-smpp</a></li><li><a shape="rect"
href="lucene.html">camel-lucene</a></li><li><a shape="rect"
href="hdfs.html">camel-hdfs</a></li><li><a shape="rect"
href="camel-jboss.html">camel-jboss</a> for running Camel inside JBoss out of
the box</li></ul>
-
-
-<h3 id="Camel2.2.0Release-NewDSL">New DSL</h3>
-
-<ul><li><code>markRollbackOnlyLast</code></li><li><code><a shape="rect"
href="logeip.html">log</a></code></li></ul>
-
-
-<h3 id="Camel2.2.0Release-NewAnnotations">New Annotations</h3>
-
-<h3 id="Camel2.2.0Release-NewDataFormats">New <a shape="rect"
href="data-format.html">Data Formats</a></h3>
-
-<ul><li><a shape="rect" href="protobuf.html">camel-protobuff</a></li><li><a
shape="rect" href="dozer-type-conversion.html">camel-dozer</a></li></ul>
-
-
-<h3 id="Camel2.2.0Release-New.2">New <a shape="rect"
href="languages.html">Languages</a></h3>
-
-<h3 id="Camel2.2.0Release-New.3">New <a shape="rect"
href="examples.html">Examples</a></h3>
-<ul><li><a shape="rect" href="cafe-example.html">cafe example</a></li></ul>
-
-
-<h2 id="Camel2.2.0Release-APIbreaking">API breaking</h2>
-
-<h3 id="Camel2.2.0Release-DefaultComponent">DefaultComponent</h3>
-<p>The methods
<code>DefaultComponent.resolveAndRemoveReferenceParameter</code> and
<code>DefaultComponent.resolveAndRemoveReferenceParameterList</code> have been
changed to make the leading <code>#</code> sign for bean references optional
and to throw an <code>IllegalArgumentException</code> if a referenced bean is
not in the registry. For details see <a shape="rect" class="external-link"
href="https://issues.apache.org/activemq/browse/CAMEL-2248">CAMEL-2248</a>.</p>
-
-<h3 id="Camel2.2.0Release-Exchange">Exchange</h3>
-<p>The property <code>Exchange.FILTETED</code> have been removed as part of <a
shape="rect" class="external-link"
href="https://issues.apache.org/activemq/browse/CAMEL-2248">CAMEL-2288</a>.</p>
-
-<p>Added two new methods for <code>getProperty</code> to accept a
<code>defaultValue</code> as parameter to be used when the property does not
exists.</p>
-
-<h3 id="Camel2.2.0Release-Message">Message</h3>
-<p>Added two new methods for <code>getHeader</code> to accept a
<code>defaultValue</code> as parameter to be used when the header does not
exists.</p>
-
-<h3 id="Camel2.2.0Release-ExceptionHandler">ExceptionHandler</h3>
-<p>The class <code>org.apache.camel.spi.ExceptionHandler</code> now have two
additional methods which accepts more details when an Exception occurred such
as a message and the current Exchange.</p>
-
-<h3 id="Camel2.2.0Release-@EndpointInject">@EndpointInject</h3>
-<p>The <code>name</code> attribute in @EndpointInject has been renamed to
<code>ref</code> to be consistent with the other annotations. Its a reference
for an Endpoint to be looked up in the <a shape="rect"
href="registry.html">Registry</a>.</p>
-
-<h3 id="Camel2.2.0Release-BatchConsumer">BatchConsumer</h3>
-<p>The <code>BatchConsumer</code> have a new method
<code>isBatchAllowed</code> which should be used during processing the batch,
to break out the batch loop in case its not allowed anymore. Also
<code>BatchConsumer</code> should consider implement <code>ShutdownAware</code>
to support fine grained control during shutdown. See for example the
<code>GenericFileConsumer</code> for details.</p>
-
-<h3
id="Camel2.2.0Release-GenericFileProcessStrategy">GenericFileProcessStrategy</h3>
-<p>The <code>GenericFileProcessStrategy</code> has a new method
<code>prepareOnStartup</code> which is used to <em>prepare</em> the <a
shape="rect" href="file2.html">File</a> component on startup, such as deleting
orphaned lock files. The same applies for the
<code>GenericFileExclusiveReadLockStrategy</code> interface in case you have
developed a custom lock strategy.</p>
-
-<h3 id="Camel2.2.0Release-ManagementStrategy">ManagementStrategy</h3>
-<p>The <code>ManagementStrategy</code> now supports multiple
<code>EventNotifier</code> and thus have its setter/getter methods adjusted to
a <code>List<EventNotifier></code> and there is a
<code>addEventNotifier</code> method as well to add a single
<code>EventNotifier</code>.</p>
-
-<h3 id="Camel2.2.0Release-EventNotifier">EventNotifier</h3>
-<p>The <code>EventNotifier</code> has new methods for filtering events based
on categories. The <code>DefaultEventNotifier</code> class has been renamed to
<code>LoggingEventNotifier</code> and a new <code>EventNotifierSupport</code>
class is added which is meant for custom implementations to extend.</p>
-
-<h3 id="Camel2.2.0Release-UnitOfWork">UnitOfWork</h3>
-<p>The <code>UnitOfWork</code> have adjusted its methods for setting
<code>RouteContext</code> from a setter to a <code>push</code> and
<code>pop</code> style.</p>
-
-<h2 id="Camel2.2.0Release-KnownIssues">Known Issues</h2>
-
-<p>See known issues from previous releases.</p>
-
-<h3 id="Camel2.2.0Release-UsingRecipientListandMina">Using RecipientList and
Mina</h3>
-<p>When using the <a shape="rect" href="recipient-list.html">Recipient
List</a> together with <a shape="rect" href="mina.html">Mina</a> endpoints
Camel will over time hold on to memory which could lead to OutOfMemoryErrors.
See more at: <a shape="rect" class="external-link"
href="https://issues.apache.org/activemq/browse/CAMEL-2484">CAMEL-2484</a></p>
-
-<h2 id="Camel2.2.0Release-Importantchangestoconsiderwhenupgrading">Important
changes to consider when upgrading</h2>
-
-<h3 id="Camel2.2.0Release-Featuresfilemoved">Features file moved</h3>
-<p>For Camel 2.2.0, the newly named <code>features.xml</code> file can be
found in <a shape="rect" class="external-link"
href="http://repo2.maven.org/maven2/org/apache/camel/karaf/apache-camel/2.2.0/"
rel="nofollow">http://repo2.maven.org/maven2/org/apache/camel/karaf/apache-camel/2.2.0/</a><br
clear="none">
-You can use it in Karaf by doing a <strong><code>features:addUrl
mvn:org.apache.camel.karaf/apache-camel/2.2.0/xml/features</code></strong></p>
-
-<h3
id="Camel2.2.0Release-Pleasedon'tinstallcamel-osgiandcamel-spring-osgibundleinOSGienvironmentatthesametime">Please
don't install camel-osgi and camel-spring-osgi bundle in OSGi environment at
the same time</h3>
-<p>We have an issue that installing camel-osgi and camel-spring in different
order will cause the "http://camel.apache.org/schema/spring" namespace can't be
handled rightly in OSGi environment. From Camel 2.2.0 we merged the camel-osgi
and camel-spring bundles together, it's camel-spring-osgi.<br clear="none">
-In this way camel-osgi and camel-spring-osgi both have the BundleActivator
which helps camel-core to load the component in OSGi container. If you install
these two bundle at the same time will cause some conflict on the component
finding.<br clear="none">
-You just need to install camel-core, camel-spring-osgi bundle to let the basic
camel application work.</p>
-
-<h3
id="Camel2.2.0Release-Springjardependencieshavebeencutdownincamel-core.">Spring
jar dependencies have been cut down in camel-core.</h3>
-<p>The <code>pom.xml</code> file for <strong>camel-core</strong> have cut down
number of spring jar dependencies to allow Camel to easily run without any
Spring .jars at all. However this affects you if you use maven and use
camel-core without camel-spring or spring at all. If you want to use JMX with
Camel then you need to add the following 4 spring jars required:
<code>spring-core.jar, spring-beans.jar, spring-context.jar,
spring-aop.jar</code>. With maven you only need to depend on
<code>spring-context</code> and <code>spring-aop</code> as they will bring in
the other two jars.</p>
-
-<p>See also <a shape="rect" href="camel-jar-dependencies.html">Camel Jar
Dependencies</a> and <a shape="rect" href="camel-jmx.html">Camel JMX</a>.</p>
-
-<h3 id="Camel2.2.0Release-Usingfilterin">Using filter in <a shape="rect"
href="splitter.html">Splitter</a></h3>
-<p>The <code>filter</code> no long influence the <code>split</code> and its
<code>AggregationStrategy</code> as it was just too confusing why it did that.
See <a shape="rect" class="external-link"
href="https://issues.apache.org/activemq/browse/CAMEL-2248">CAMEL-2288</a> for
details.</p>
-
-<h3 id="Camel2.2.0Release-camel-httpandproxy">camel-http and proxy</h3>
-<p>The <a shape="rect" href="http.html">HTTP</a> component used to read Proxy
settings directly from system properties. You should instead configure proxy
wide information as properties to the <code>CamelContext</code> instead. See <a
shape="rect" href="http.html">HTTP</a> for details.</p>
-
-<h3 id="Camel2.2.0Release-camel-jms">camel-jms</h3>
-<p>How correlationId is determined has been changed slightly. Now <a
shape="rect" href="jms.html">JMS</a> will always use messageId if configured to
do so using <code>useMessageIDAsCorrelationID==true</code>. Otherwise
<code>JMSCorrelationID</code> is used but if that has not been set then Camel
will fallback to use <code>messageId</code> instead. See the method
<code>determineCorrelationId</code> in the class
<code>org.apache.camel.component.jms.EndpointMessageListener</code> for actual
implementation. This change will most likely not affect most users.</p>
-
-<h2 id="Camel2.2.0Release-GettingtheDistributions">Getting the
Distributions</h2>
-
-<h3 id="Camel2.2.0Release-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/2.2.0/apache-camel-2.2.0.zip">apache-camel-2.2.0.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/2.2.0/apache-camel-2.2.0.zip.asc">apache-camel-2.2.0.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 sh
ape="rect" class="external-link"
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.2.0/apache-camel-2.2.0.tar.gz">apache-camel-2.2.0.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/2.2.0/apache-camel-2.2.0.tar.gz.asc">apache-camel-2.2.0.tar.gz.asc</a>
</p></td></tr></tbody></table></div>
-
- <div class="aui-message hint shadowed information-macro">
+<div class="wiki-content maincontent"><h1
id="Camel2.2.0Release-Camel2.2.0release">Camel 2.2.0 release</h1><div
style="padding-right:20px;float:left;margin-left:-20px;">
+<p><span class="image-wrap" style=""><img
src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"
style="border: 0px solid black"></span></p></div><div
style="min-height:200px"></div><h2 id="Camel2.2.0Release-NewandNoteworthy">New
and Noteworthy</h2><p>Welcome to the 2.2.0 release which approx 180 issues
resolved (new features, improvements and bug fixes such as...)</p><ul><li><a
shape="rect" href="routing-slip.html">Routing Slip</a> now breaks when an
exception occurred</li><li><a shape="rect" href="mina.html">MINA</a> now
supports easier configuration of multiple custom codecs, which is needed when
working with SSL.</li><li>Improved <a shape="rect"
href="transactionerrorhandler.html">TransactionErrorHandler</a> two fold by
reducing complexity of internal logic in Camel when working with transactions.
And added better support for using multiple transactions in multiple routes.
See more at section <em>Using multiple routes with different propagation
behaviors</em> at
<a shape="rect" href="transactional-client.html">Transactional
Client</a>.</li><li><a shape="rect" href="recipient-list.html">Recipient
List</a> now supports <code>parallelProcessing</code>,
<code>stopOnException</code> and references for
<code>AggregationStrategy</code> and thread pools. This applies to the
<code>@RecipientList</code> annotation as well.</li><li>Cleanup of spring jar
dependencies.</li><li><a shape="rect" href="file-language.html">File
Language</a> is now merged directly into <a shape="rect"
href="simple.html">Simple</a> language which among others makes <a shape="rect"
href="content-based-router.html">Content Based Router</a> in Spring XML using
file language syntax easier.</li><li><a shape="rect" href="http.html">HTTP</a>
is now using CamelContext Properties instead of System Properties to set the
http proxy configuration.</li><li>Fixed <a shape="rect"
href="using-camelproxy.html">Camel Proxy</a> throwing exception if
<code>null</code> was returned.</li><li>Improv
ed error handling with <a shape="rect" href="recipient-list.html">Recipient
List</a> and <a shape="rect" href="multicast.html">Multicast</a> which now
performs redelivery etc. on that <em>output</em> node instead of starting again
from the scratch.</li><li>Improved the <a shape="rect"
href="etl-example.html">ETL Example</a> and <a shape="rect"
href="bam-example.html">BAM Example</a> so they can be deployed into
ServiceMix4(Karaf).</li><li><a shape="rect" href="seda.html">SEDA</a> now
supports <code>multipleConsumers</code> which allows you to use it for pub-sub
messaging where each consumer concurrently will receive a copy of the <a
shape="rect" href="exchange.html">Exchange</a>. This is done with the help from
<a shape="rect" href="multicast.html">Multicast</a> EIP.</li><li><a
shape="rect" href="defaulterrorhandler.html">DefaultErrorHandler</a> will now
log a log line at <code>ERROR</code> level in case an Exception was thrown
which could not be redelivered either. This aid to see
that an Exception occurred instead of relying on the client logging it. You
can customize this behavior on the <a shape="rect"
href="error-handler.html">Error Handler</a>.</li><li>Fixed
<code>groupedExchange</code> not working properly on <a shape="rect"
href="aggregator.html">Aggregator</a>.</li><li><a shape="rect"
href="graceful-shutdown.html">Graceful Shutdown</a> which ensures Camel now
shutdown in a more reliable and graceful manner. This also works with in memory
components such as <a shape="rect" href="seda.html">SEDA</a>.</li><li>Added new
<code><a shape="rect" href="logeip.html">log</a></code> in the DSL for dynamic
human readable log messages.</li><li>Camel now supports Spring 3.0 as well
(will still use Camel 2.5.6 as default). However camel-spring-javaconfig now
requires Spring 3.0 as Spring have native support for java
configuration.</li><li>Added methods for getting header and property (Exchange
/ Message API) which uses a default parameter.</li><li>Added OsgiClassReso
lver which supports to load the class or resources within OSGi
platform.</li><li>Added fireNow option to <a shape="rect"
href="quartz.html">Quartz</a> component to fire the trigger when the route is
started.</li><li><a shape="rect" href="file2.html">File</a> will delete
orphaned lock files on startup. This allows it to selfheal in cases when Camel
was terminated/killed abruptly.</li><li>Fixed issue with using Spring XML for
routing could in some cases <em>loose</em> route scoped configured
<code><onException></code>, <code><onCompletion/></code> when using
in combination with
<code><transacted/></code>.</li><li><code><proxy></code>,
<code><export></code>, <code><endpoint></code>,
<code><template></code>, <code><consumerTemplate></code> can be
defined outside of <code><camelContext></code>.</li><li><a shape="rect"
href="jaxb.html">JAXB</a> will filter the nonXml characters when it unmarshals
the inputstream or marshal the java obj
ect.</li><li>Slightly reworked how correlation id is determined in <a
shape="rect" href="jms.html">JMS</a> when using InOut messaging. See more at
<em>important changes to consider when
upgrading</em>.</li><li><code>EventNotifier</code> improved to allow ignoring
events based on categories. Easier configuration to only notify those events
you care about.</li><li>Added <code>PublishEventNotifier</code> to send the
events to any kind of Camel <a shape="rect"
href="endpoint.html">Endpoint</a>.</li><li><a shape="rect"
href="jdbc.html">JDBC</a> added option
<code>useJDBC4ColumnNameAndLabelSemantics</code> to let you choose semantics to
use in case you have issue with your JDBC driver when using SQL SELECT with
aliases.</li><li><a shape="rect" href="cache.html">Cache</a> can now store
message bodies which are <code>Serializable</code> out of the box and not
forcing to be converted into a byte stream as it otherwise would.</li><li>Fixed
an issue with running the <a shape="rect" href="examp
les.html">Examples</a> using ANT.</li><li><code>ManagementStrategy</code> now
supports using multiple <code>EventNotifier</code> instead of just
one.</li><li>Introduced <a shape="rect"
href="notifybuilder.html">NotifyBuilder</a> which helps during testing. For
example when testing routes without mocks etc. It will help to notify when a
certain condition has occurred such as X messages has is done etc.</li><li><a
shape="rect" href="ftp2.html">FTP</a> now allows using starting directory with
a dot in the name. It used to invalidate those to easy transition from Camel
1.x to 2.x as 1.x did also support using a file as starting (which was not good
practice).</li><li><a shape="rect" href="file2.html">File</a> producer now
supports option to keep last modified timestamp in case a message was received
from some file source. You can also set the timestamp it should use in the
header <code>Exchange.FILE_LAST_MODIFIED</code>.</li><li><a shape="rect"
href="bean-language.html">Bean Language</a>
using <code>bean</code> or <code>method</code> to invoke a <a shape="rect"
href="bean.html">Bean</a> now supports using an existing bean instance. This is
convenient for testing where you can quickly use an instance you have prepared
in the unit test.</li><li><a shape="rect"
href="camel-jboss.html">camel-jboss</a> for running Camel inside JBoss
Application Server which uses it specialized classloading which prevents
typically frameworks to not work out of the box inside JBoss.</li><li><a
shape="rect" class="external-link" href="http://camel-extra.googlecode.com/"
rel="nofollow">Camel Extra</a> projects migrated to use Camel 2.1.0
release.</li><li><a shape="rect" href="jaxb.html">JAXB</a> now supports partial
marshalling/unmarshalling.</li><li><a shape="rect" href="bean.html">Bean</a>
parameter binding using Camel annotations now works with CGLIB enhanced
classes.</li><li><a shape="rect" href="cxf.html">CXF</a> supports to configure
the endpoint with CXF style configuration.</li><li
><a shape="rect" href="defaulterrorhandler.html">DefaultErrorHandler</a> will
>now log stracktrace when an <a shape="rect" href="exchange.html">Exchange</a>
>is exhausted (give up). Added new <code>logRetryStackTrace</code> option to
>set whether or not stacktraces are logged for failed redelivery attempts.
>Most people dont like the logs spammed if you retry 5 times etc.</li><li><a
>shape="rect" href="bean.html">Bean</a> component now honors void method
>invocations and accepts methods returning <code>null</code> as a valid
>response.</li><li><a shape="rect" href="error-handler.html">Error Handler</a>
>now catches and handles all exceptions (Throwable). This ensures fatal errors
>such as <code>NoSuchMethodException</code> etc. will now be handle by Camel
>and logged etc.</li><li><a shape="rect" href="cxf.html">cxfbean</a> now
>propagates CONTENT_TYPE for other camel component to use.</li></ul><h3
>id="Camel2.2.0Release-New">New <a shape="rect"
>href="enterprise-integration-patterns.html">Enterp
rise Integration Patterns</a></h3><h3 id="Camel2.2.0Release-New.1">New <a
shape="rect" href="components.html">Components</a></h3><ul><li><a shape="rect"
href="ftp2.html">camel-ftp</a> now supports <code>FTPS</code> (FTP over
SSL/TLS)</li><li><a shape="rect" href="smpp.html">camel-smpp</a></li><li><a
shape="rect" href="lucene.html">camel-lucene</a></li><li><a shape="rect"
href="hdfs.html">camel-hdfs</a></li><li><a shape="rect"
href="camel-jboss.html">camel-jboss</a> for running Camel inside JBoss out of
the box</li></ul><h3 id="Camel2.2.0Release-NewDSL">New
DSL</h3><ul><li><code>markRollbackOnlyLast</code></li><li><code><a shape="rect"
href="logeip.html">log</a></code></li></ul><h3
id="Camel2.2.0Release-NewAnnotations">New Annotations</h3><h3
id="Camel2.2.0Release-NewDataFormats">New <a shape="rect"
href="data-format.html">Data Formats</a></h3><ul><li><a shape="rect"
href="protobuf.html">camel-protobuff</a></li><li><a shape="rect"
href="dozer-type-conversion.html">camel-dozer</a></li
></ul><h3 id="Camel2.2.0Release-New.2">New <a shape="rect"
>href="languages.html">Languages</a></h3><h3 id="Camel2.2.0Release-New.3">New
><a shape="rect" href="examples.html">Examples</a></h3><ul><li><a shape="rect"
>href="cafe-example.html">Cafe Example</a></li></ul><h2
>id="Camel2.2.0Release-APIbreaking">API breaking</h2><h3
>id="Camel2.2.0Release-DefaultComponent">DefaultComponent</h3><p>The methods
><code>DefaultComponent.resolveAndRemoveReferenceParameter</code> and
><code>DefaultComponent.resolveAndRemoveReferenceParameterList</code> have
>been changed to make the leading <code>#</code> sign for bean references
>optional and to throw an <code>IllegalArgumentException</code> if a
>referenced bean is not in the registry. For details see <a shape="rect"
>class="external-link"
>href="https://issues.apache.org/activemq/browse/CAMEL-2248">CAMEL-2248</a>.</p><h3
> id="Camel2.2.0Release-Exchange">Exchange</h3><p>The property
><code>Exchange.FILTETED</code> have been removed as part of <a shape="rect
" class="external-link"
href="https://issues.apache.org/activemq/browse/CAMEL-2248">CAMEL-2288</a>.</p><p>Added
two new methods for <code>getProperty</code> to accept a
<code>defaultValue</code> as parameter to be used when the property does not
exists.</p><h3 id="Camel2.2.0Release-Message">Message</h3><p>Added two new
methods for <code>getHeader</code> to accept a <code>defaultValue</code> as
parameter to be used when the header does not exists.</p><h3
id="Camel2.2.0Release-ExceptionHandler">ExceptionHandler</h3><p>The class
<code>org.apache.camel.spi.ExceptionHandler</code> now have two additional
methods which accepts more details when an Exception occurred such as a message
and the current Exchange.</p><h3
id="Camel2.2.0Release-@EndpointInject">@EndpointInject</h3><p>The
<code>name</code> attribute in @EndpointInject has been renamed to
<code>ref</code> to be consistent with the other annotations. Its a reference
for an Endpoint to be looked up in the <a shape="rect" href="regis
try.html">Registry</a>.</p><h3
id="Camel2.2.0Release-BatchConsumer">BatchConsumer</h3><p>The
<code>BatchConsumer</code> have a new method <code>isBatchAllowed</code> which
should be used during processing the batch, to break out the batch loop in case
its not allowed anymore. Also <code>BatchConsumer</code> should consider
implement <code>ShutdownAware</code> to support fine grained control during
shutdown. See for example the <code>GenericFileConsumer</code> for
details.</p><h3
id="Camel2.2.0Release-GenericFileProcessStrategy">GenericFileProcessStrategy</h3><p>The
<code>GenericFileProcessStrategy</code> has a new method
<code>prepareOnStartup</code> which is used to <em>prepare</em> the <a
shape="rect" href="file2.html">File</a> component on startup, such as deleting
orphaned lock files. The same applies for the
<code>GenericFileExclusiveReadLockStrategy</code> interface in case you have
developed a custom lock strategy.</p><h3
id="Camel2.2.0Release-ManagementStrategy">ManagementSt
rategy</h3><p>The <code>ManagementStrategy</code> now supports multiple
<code>EventNotifier</code> and thus have its setter/getter methods adjusted to
a <code>List<EventNotifier></code> and there is a
<code>addEventNotifier</code> method as well to add a single
<code>EventNotifier</code>.</p><h3
id="Camel2.2.0Release-EventNotifier">EventNotifier</h3><p>The
<code>EventNotifier</code> has new methods for filtering events based on
categories. The <code>DefaultEventNotifier</code> class has been renamed to
<code>LoggingEventNotifier</code> and a new <code>EventNotifierSupport</code>
class is added which is meant for custom implementations to extend.</p><h3
id="Camel2.2.0Release-UnitOfWork">UnitOfWork</h3><p>The <code>UnitOfWork</code>
have adjusted its methods for setting <code>RouteContext</code> from a setter
to a <code>push</code> and <code>pop</code> style.</p><h2
id="Camel2.2.0Release-KnownIssues">Known Issues</h2><p>See known issues from
previous releases.</p><h3 id="Camel2.
2.0Release-UsingRecipientListandMina">Using RecipientList and Mina</h3><p>When
using the <a shape="rect" href="recipient-list.html">Recipient List</a>
together with <a shape="rect" href="mina.html">MINA</a> endpoints Camel will
over time hold on to memory which could lead to OutOfMemoryErrors. See more at:
<a shape="rect" class="external-link"
href="https://issues.apache.org/activemq/browse/CAMEL-2484">CAMEL-2484</a></p><h2
id="Camel2.2.0Release-Importantchangestoconsiderwhenupgrading">Important
changes to consider when upgrading</h2><h3
id="Camel2.2.0Release-Featuresfilemoved">Features file moved</h3><p>For Camel
2.2.0, the newly named <code>features.xml</code> file can be found in <a
shape="rect" class="external-link"
href="http://repo2.maven.org/maven2/org/apache/camel/karaf/apache-camel/2.2.0/"
rel="nofollow">http://repo2.maven.org/maven2/org/apache/camel/karaf/apache-camel/2.2.0/</a><br
clear="none"> You can use it in Karaf by doing a <strong><code>features:addUrl
mvn:org.apach
e.camel.karaf/apache-camel/2.2.0/xml/features</code></strong></p><h3
id="Camel2.2.0Release-Pleasedon'tinstallcamel-osgiandcamel-spring-osgibundleinOSGienvironmentatthesametime">Please
don't install camel-osgi and camel-spring-osgi bundle in OSGi environment at
the same time</h3><p>We have an issue that installing camel-osgi and
camel-spring in different order will cause the
"http://camel.apache.org/schema/spring" namespace can't be handled rightly in
OSGi environment. From Camel 2.2.0 we merged the camel-osgi and camel-spring
bundles together, it's camel-spring-osgi.<br clear="none"> In this way
camel-osgi and camel-spring-osgi both have the BundleActivator which helps
camel-core to load the component in OSGi container. If you install these two
bundle at the same time will cause some conflict on the component finding.<br
clear="none"> You just need to install camel-core, camel-spring-osgi bundle to
let the basic camel application work.</p><h3
id="Camel2.2.0Release-Springjardependenc
ieshavebeencutdownincamel-core.">Spring jar dependencies have been cut down in
camel-core.</h3><p>The <code>pom.xml</code> file for
<strong>camel-core</strong> have cut down number of spring jar dependencies to
allow Camel to easily run without any Spring .jars at all. However this affects
you if you use maven and use camel-core without camel-spring or spring at all.
If you want to use JMX with Camel then you need to add the following 4 spring
jars required: <code>spring-core.jar, spring-beans.jar, spring-context.jar,
spring-aop.jar</code>. With maven you only need to depend on
<code>spring-context</code> and <code>spring-aop</code> as they will bring in
the other two jars.</p><p>See also <a shape="rect"
href="camel-jar-dependencies.html">Camel jar dependencies</a> and <a
shape="rect" href="camel-jmx.html">Camel JMX</a>.</p><h3
id="Camel2.2.0Release-Usingfilterin">Using filter in <a shape="rect"
href="splitter.html">Splitter</a></h3><p>The <code>filter</code> no long
influence the <
code>split</code> and its <code>AggregationStrategy</code> as it was just too
confusing why it did that. See <a shape="rect" class="external-link"
href="https://issues.apache.org/activemq/browse/CAMEL-2248">CAMEL-2288</a> for
details.</p><h3 id="Camel2.2.0Release-camel-httpandproxy">camel-http and
proxy</h3><p>The <a shape="rect" href="http.html">HTTP</a> component used to
read Proxy settings directly from system properties. You should instead
configure proxy wide information as properties to the <code>CamelContext</code>
instead. See <a shape="rect" href="http.html">HTTP</a> for details.</p><h3
id="Camel2.2.0Release-camel-jms">camel-jms</h3><p>How correlationId is
determined has been changed slightly. Now <a shape="rect"
href="jms.html">JMS</a> will always use messageId if configured to do so using
<code>useMessageIDAsCorrelationID==true</code>. Otherwise
<code>JMSCorrelationID</code> is used but if that has not been set then Camel
will fallback to use <code>messageId</code> instea
d. See the method <code>determineCorrelationId</code> in the class
<code>org.apache.camel.component.jms.EndpointMessageListener</code> for actual
implementation. This change will most likely not affect most users.</p><h2
id="Camel2.2.0Release-GettingtheDistributions">Getting the
Distributions</h2><h3 id="Camel2.2.0Release-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://archive.apache.org/dist/camel/apache-camel/2.2.0/apache-camel-2.2.0.zip">apache-camel-2.2.0.zip</a></p></td><td
colspan="1" rowspan
="1" class="confluenceTd"><p><a shape="rect" class="external-link"
href="http://archive.apache.org/dist/camel/apache-camel/2.2.0/apache-camel-2.2.0.zip.asc">apache-camel-2.2.0.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://archive.apache.org/dist/camel/apache-camel/2.2.0/apache-camel-2.2.0.tar.gz">apache-camel-2.2.0.tar.gz</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link"
href="http://archive.apache.org/dist/camel/apache-camel/2.2.0/apache-camel-2.2.0.tar.gz.asc">apache-camel-2.2.0.tar.gz.asc</a></p></td></tr></tbody></table></div>
<div class="aui-message hint shadowed information-macro">
<p class="title">The above URLs use redirection</p>
<span class="aui-icon icon-hint">Icon</span>
<div class="message-content">
-
-<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>
+ <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.2.0Release-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
for Windows </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/2.2.0/apache-camel-2.2.0-src.zip">apache-camel-2.2.0-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/2.2.0/apache-camel-2.2.0-src.zip.asc">apache-camel-2.2.0-src.zip.asc</a>
</p></td></tr></tbody></table></div>
-
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p> Source for Unix/Linux/Cygwin
</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/2.2.0/apache-camel-2.2.0-src.tar.gz">apache-camel-2.2.0-src.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/2.2.0/apache-camel-2.2.0-src.tar.gz.asc">apache-camel-2.2.0-src.tar.gz.asc</a>
</p></td></tr></tbody></table></div>
-
-
-<h3 id="Camel2.2.0Release-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="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<dependency>
+<h3 id="Camel2.2.0Release-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 for Windows</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" class="external-link"
href="http://archive.apache.org/dist/camel/apache-camel/2.2.0/apache-camel-2.2.0-src.zip">apache-camel-2.2.0-src.zip</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link"
href="http://archive.apache.org/dist/camel/apache-camel/2.2.0/apache-camel-2.2.0-src.zip.asc">apache-camel-2.2.0-src.zip.asc</a></p></td></tr></tbody></table></div><div
class="table-wrap"><table class="confluenceTable"><tbody
><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Source for
>Unix/Linux/Cygwin</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p><a shape="rect" class="external-link"
>href="http://archive.apache.org/dist/camel/apache-camel/2.2.0/apache-camel-2.2.0-src.tar.gz">apache-camel-2.2.0-src.tar.gz</a></p></td><td
> colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
>class="external-link"
>href="http://archive.apache.org/dist/camel/apache-camel/2.2.0/apache-camel-2.2.0-src.tar.gz.asc">apache-camel-2.2.0-src.tar.gz.asc</a></p></td></tr></tbody></table></div><h3
> id="Camel2.2.0Release-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="codeCo
ntent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.2.0</version>
</dependency>
]]></script>
-</div></div>
-
-<h3 id="Camel2.2.0Release-SVNTagCheckout">SVN Tag Checkout</h3>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-svn co http://svn.apache.org/repos/asf/camel/tags/camel-2.2.0
+</div></div><h3 id="Camel2.2.0Release-SVNTagCheckout">SVN Tag
Checkout</h3><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[svn co
http://svn.apache.org/repos/asf/camel/tags/camel-2.2.0
]]></script>
-</div></div>
-
-<h2 id="Camel2.2.0Release-Changelog">Changelog</h2>
-
-<p>For a more detailed view of new features and bug fixes, see the:</p>
-<ul><li><a shape="rect" class="external-link"
href="http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311211&styleName=Html&version=12315686">JIRA
Release notes for 2.2.0</a></li></ul></div>
+</div></div><h2 id="Camel2.2.0Release-Changelog">Changelog</h2><p>For a more
detailed view of new features and bug fixes, see the:</p><ul><li><a
shape="rect" class="external-link"
href="http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311211&styleName=Html&version=12315686">JIRA
Release notes for 2.2.0</a></li></ul></div>
</td>
<td valign="top">
<div class="navigation">