camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Camel > Camel 2.2.0 Release
Date Fri, 08 Jan 2010 10:41:00 GMT
<html>
<head>
    <base href="http://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1519/1/1/_/styles/combined.css?spaceKey=CAMEL&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background-color: white" bgcolor="white">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
     <h2><a href="http://cwiki.apache.org/confluence/display/CAMEL/Camel+2.2.0+Release">Camel
2.2.0 Release</a></h2>
     <h4>Page <b>edited</b> by             <a href="http://cwiki.apache.org/confluence/display/~davsclaus">Claus
Ibsen</a>
    </h4>
     
          <br/>
     <div class="notificationGreySide">
         <h1><a name="Camel2.2.0Release-Camel2.2.0release%28currentlyinprogress%29"></a>Camel
2.2.0 release (currently in progress)</h1>

<div style="padding-right:20px;float:left;margin-left:-20px;"><p><img src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"
align="absmiddle" border="0" /></p></div>
<div style="min-height:200px"></div>

<h2><a name="Camel2.2.0Release-NewandNoteworthy"></a>New and Noteworthy</h2>

<p>Welcome to the 2.2.0 release which approx XXX issues resolved (new features, improvements
and bug fixes such as...)</p>

<ul>
	<li><a href="/confluence/display/CAMEL/Routing+Slip" title="Routing Slip">Routing
Slip</a> now breaks when an exception occurred</li>
	<li><a href="/confluence/display/CAMEL/MINA" title="MINA">MINA</a> now
supports easier configuration of multiple custom codecs, which is needed when working with
SSL.</li>
	<li>Improved <a href="/confluence/display/CAMEL/TransactionErrorHandler" title="TransactionErrorHandler">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 href="/confluence/display/CAMEL/Transactional+Client"
title="Transactional Client">Transactional Client</a>.</li>
	<li><a href="/confluence/display/CAMEL/Recipient+List" title="Recipient List">Recipient
List</a> now supports <tt>parallelProcessing</tt>, <tt>stopOnException</tt>
and references for <tt>AggregationStrategy</tt> and thread pools. This applies
to the <tt>@RecipientList</tt> annotation as well.</li>
	<li>Cleanup of spring jar dependencies.</li>
	<li><a href="/confluence/display/CAMEL/File+Language" title="File Language">File
Language</a> is now merged directly into <a href="/confluence/display/CAMEL/Simple"
title="Simple">Simple</a> language which among others makes <a href="/confluence/display/CAMEL/Content+Based+Router"
title="Content Based Router">Content Based Router</a> in Spring XML using file language
syntax easier.</li>
	<li><a href="/confluence/display/CAMEL/HTTP" title="HTTP">HTTP</a> is now
using CamelContext Properties instead of System Properties to set the http proxy configuration.</li>
	<li>Fixed <a href="/confluence/display/CAMEL/Using+CamelProxy" title="Using CamelProxy">Camel
Proxy</a> throwing exception if <tt>null</tt> was returned.</li>
	<li>Improved error handling with <a href="/confluence/display/CAMEL/Recipient+List"
title="Recipient List">Recipient List</a> and <a href="/confluence/display/CAMEL/Multicast"
title="Multicast">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 href="/confluence/display/CAMEL/ETL+Example" title="ETL Example">ETL
Example</a> and <a href="/confluence/display/CAMEL/BAM+Example" title="BAM Example">BAM
Example</a> so they can be deployed into ServiceMix4(Karaf).</li>
	<li><a href="/confluence/display/CAMEL/SEDA" title="SEDA">SEDA</a> now
supports <tt>multipleConsumers</tt> which allows you to use it for pub-sub messaging
where each consumer concurrently will receive a copy of the <a href="/confluence/display/CAMEL/Exchange"
title="Exchange">Exchange</a>. This is done with the help from <a href="/confluence/display/CAMEL/Multicast"
title="Multicast">Multicast</a> EIP.</li>
	<li><a href="/confluence/display/CAMEL/DefaultErrorHandler" title="DefaultErrorHandler">DefaultErrorHandler</a>
will now log a log line at <tt>ERROR</tt> 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 href="/confluence/display/CAMEL/Error+Handler"
title="Error Handler">Error Handler</a>.</li>
	<li>Fixed <tt>groupedExchange</tt> not working properly on <a href="/confluence/display/CAMEL/Aggregator"
title="Aggregator">Aggregator</a>.</li>
	<li><a href="/confluence/display/CAMEL/Graceful+Shutdown" title="Graceful Shutdown">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 href="/confluence/display/CAMEL/SEDA"
title="SEDA">SEDA</a>.</li>
	<li>Added new <tt><a href="/confluence/display/CAMEL/LogEIP" title="LogEIP">log</a></tt>
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 href="/confluence/display/CAMEL/Quartz" title="Quartz">Quartz</a>
component to fire the trigger when the route is started.</li>
	<li><a href="/confluence/display/CAMEL/File2" title="File2">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 <tt>&lt;onException&gt;</tt>, <tt>&lt;onCompletion/&gt;</tt>
when using in combination with <tt>&lt;transacted/&gt;</tt>.</li>
	<li><tt>&lt;proxy&gt;</tt>, <tt>&lt;export&gt;</tt>,
<tt>&lt;endpoint&gt;</tt>, <tt>&lt;template&gt;</tt>,
<tt>&lt;consumerTemplate&gt;</tt> can be defined outside of <tt>&lt;camelContext&gt;</tt>.</li>
	<li><a href="/confluence/display/CAMEL/JAXB" title="JAXB">JAXB</a> will
filter the ISO-control characters when it unmarshals the inputstream.</li>
	<li>Slightly reworked how correlation id is determined in <a href="/confluence/display/CAMEL/JMS"
title="JMS">JMS</a> when using InOut messaging. See more at <em>important changes
to consider when upgrading</em>.</li>
</ul>


<h3><a name="Camel2.2.0Release-NewEnterpriseIntegrationPatterns"></a>New
<a href="/confluence/display/CAMEL/Enterprise+Integration+Patterns" title="Enterprise Integration
Patterns">Enterprise Integration Patterns</a></h3>

<h3><a name="Camel2.2.0Release-NewComponents"></a>New <a href="/confluence/display/CAMEL/Components"
title="Components">Components</a></h3>

<ul>
	<li><a href="/confluence/display/CAMEL/FTP2" title="FTP2">camel-ftp</a>
now supports <tt>FTPS</tt> (FTP over SSL/TLS)</li>
	<li><a href="/confluence/display/CAMEL/SMPP" title="SMPP">camel-smpp</a></li>
	<li><a href="/confluence/display/CAMEL/Lucene" title="Lucene">camel-lucene</a></li>
</ul>


<h3><a name="Camel2.2.0Release-NewDSL"></a>New DSL</h3>

<ul>
	<li><tt>markRollbackOnlyLast</tt></li>
	<li><tt><a href="/confluence/display/CAMEL/LogEIP" title="LogEIP">log</a></tt></li>
</ul>


<h3><a name="Camel2.2.0Release-NewAnnotations"></a>New Annotations</h3>

<h3><a name="Camel2.2.0Release-NewDataFormatsDataFormat"></a>New <a href="/confluence/display/CAMEL/Data+Format"
title="Data Format">Data Formats</a></h3>

<ul>
	<li><a href="/confluence/display/CAMEL/Protobuf" title="Protobuf">camel-protobuff</a></li>
</ul>


<h3><a name="Camel2.2.0Release-NewLanguages"></a>New <a href="/confluence/display/CAMEL/Languages"
title="Languages">Languages</a></h3>

<h3><a name="Camel2.2.0Release-NewExamples"></a>New <a href="/confluence/display/CAMEL/Examples"
title="Examples">Examples</a></h3>

<h2><a name="Camel2.2.0Release-APIbreaking"></a>API breaking</h2>

<h3><a name="Camel2.2.0Release-DefaultComponent"></a>DefaultComponent</h3>
<p>The methods <tt>DefaultComponent.resolveAndRemoveReferenceParameter</tt>
and <tt>DefaultComponent.resolveAndRemoveReferenceParameterList</tt> have been
changed to make the leading <tt>#</tt> sign for bean references optional and to
throw an <tt>IllegalArgumentException</tt> if a referenced bean is not in the
registry. For details see <a href="https://issues.apache.org/activemq/browse/CAMEL-2248"
rel="nofollow">CAMEL-2248</a>.</p>

<h3><a name="Camel2.2.0Release-Exchange"></a>Exchange</h3>
<p>The property <tt>Exchange.FILTETED</tt> have been removed as part of
<a href="https://issues.apache.org/activemq/browse/CAMEL-2248" rel="nofollow">CAMEL-2288</a>.</p>

<p>Added two new methods for <tt>getProperty</tt> to accept a <tt>defaultValue</tt>
as parameter to be used when the property does not exists.</p>

<h3><a name="Camel2.2.0Release-Message"></a>Message</h3>
<p>Added two new methods for <tt>getHeader</tt> to accept a <tt>defaultValue</tt>
as parameter to be used when the header does not exists.</p>

<h3><a name="Camel2.2.0Release-ExceptionHandler"></a>ExceptionHandler</h3>
<p>The class <tt>org.apache.camel.spi.ExceptionHandler</tt> now have two
additional methods which accepts more details when an Exception occurred such as a message
and the current Exchange.</p>

<h3><a name="Camel2.2.0Release-@EndpointInject"></a>@EndpointInject</h3>
<p>The <tt>name</tt> attribute in @EndpointInject has been renamed to <tt>ref</tt>
to be consistent with the other annotations. Its a reference for an Endpoint to be looked
up in the <a href="/confluence/display/CAMEL/Registry" title="Registry">Registry</a>.</p>

<h3><a name="Camel2.2.0Release-BatchConsumer"></a>BatchConsumer</h3>
<p>The <tt>BatchConsumer</tt> have a new method <tt>isBatchAllowed</tt>
which should be used during processing the batch, to break out the batch loop in case its
not allowed anymore. Also <tt>BatchConsumer</tt> should consider implement <tt>ShutdownAware</tt>
to support fine grained control during shutdown. See for example the <tt>GenericFileConsumer</tt>
for details.</p>

<h3><a name="Camel2.2.0Release-GenericFileProcessStrategy"></a>GenericFileProcessStrategy</h3>
<p>The <tt>GenericFileProcessStrategy</tt> has a new method <tt>prepareOnStartup</tt>
which is used to <em>prepare</em> the <a href="/confluence/display/CAMEL/File2"
title="File2">File</a> component on startup, such as deleting orphaned lock files.
The same applies for the <tt>GenericFileExclusiveReadLockStrategy</tt> interface
in case you have developed a custom lock strategy.</p>

<h2><a name="Camel2.2.0Release-KnownIssues"></a>Known Issues</h2>

<p>See known issues from previous releases.</p>

<h2><a name="Camel2.2.0Release-Importantchangestoconsiderwhenupgrading"></a>Important
changes to consider when upgrading</h2>

<h3><a name="Camel2.2.0Release-Springjardependencieshavebeencutdownincamelcore."></a>Spring
jar dependencies have been cut down in camel-core.</h3>
<p>The <tt>pom.xml</tt> file for <b>camel-core</b> 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: <tt>spring-core.jar, spring-beans.jar, spring-context.jar, spring-aop.jar</tt>.
With maven you only need to depend on <tt>spring-context</tt> and <tt>spring-aop</tt>
as they will bring in the other two jars.</p>

<p>See also <a href="/confluence/display/CAMEL/Camel+jar+dependencies" title="Camel
jar dependencies">Camel jar dependencies</a> and <a href="/confluence/display/CAMEL/Camel+JMX"
title="Camel JMX">Camel JMX</a>.</p>

<h3><a name="Camel2.2.0Release-UsingfilterinSplitter"></a>Using filter in
<a href="/confluence/display/CAMEL/Splitter" title="Splitter">Splitter</a></h3>
<p>The <tt>filter</tt> no long influence the <tt>split</tt>
and its <tt>AggregationStrategy</tt> as it was just too confusing why it did that.
See <a href="https://issues.apache.org/activemq/browse/CAMEL-2248" rel="nofollow">CAMEL-2288</a>
for details.</p>

<h3><a name="Camel2.2.0Release-camelhttpandproxy"></a>camel-http and proxy</h3>
<p>The <a href="/confluence/display/CAMEL/HTTP" title="HTTP">HTTP</a> component
used to read Proxy settings directly from system properties. You should instead configure
proxy wide information as properties to the <tt>CamelContext</tt> instead. See
<a href="/confluence/display/CAMEL/HTTP" title="HTTP">HTTP</a> for details.</p>

<h3><a name="Camel2.2.0Release-cameljms"></a>camel-jms</h3>
<p>How correlationId is determined has been changed slightly. Now <a href="/confluence/display/CAMEL/JMS"
title="JMS">JMS</a> will always use messageId if configured to do so using <tt>useMessageIDAsCorrelationID==true</tt>.
Otherwise <tt>JMSCorrelationID</tt> is used but if that has not been set then
Camel will fallback to use <tt>messageId</tt> instead. See the method <tt>determineCorrelationId</tt>
in the class <tt>org.apache.camel.component.jms.EndpointMessageListener</tt> for
actual implementation. This change will most likely not affect most users.</p>

<h2><a name="Camel2.2.0Release-GettingtheDistributions"></a>Getting the
Distributions</h2>

<h3><a name="Camel2.2.0Release-BinaryDistributions"></a>Binary Distributions</h3>

<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Description </th>
<th class='confluenceTh'> Download Link </th>
<th class='confluenceTh'> PGP Signature file of download </th>
</tr>
<tr>
<td class='confluenceTd'> Windows Distribution </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dyn/closer.cgi/activemq/apache-camel/2.2.0/apache-camel-2.2.0.zip"
rel="nofollow">apache-camel-2.2.0.zip</a> </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dist/activemq/apache-camel/2.2.0/apache-camel-2.2.0.zip.asc"
rel="nofollow">apache-camel-2.2.0.zip.asc</a> </td>
</tr>
<tr>
<td class='confluenceTd'> Unix/Linux/Cygwin Distribution </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dyn/closer.cgi/activemq/apache-camel/2.2.0/apache-camel-2.2.0.tar.gz"
rel="nofollow">apache-camel-2.2.0.tar.gz</a> </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dist/activemq/apache-camel/2.2.0/apache-camel-2.2.0.tar.gz.asc"
rel="nofollow">apache-camel-2.2.0.tar.gz.asc</a> </td>
</tr>
</tbody></table>
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/information.gif" width="16"
height="16" align="absmiddle" alt="" border="0"></td><td><b>The above
URLs use redirection</b><br /><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 href="http://www.mozilla.com/en-US/firefox/"
rel="nofollow">FireFox</a></p></td></tr></table></div>

<h3><a name="Camel2.2.0Release-SourceDistributions"></a>Source Distributions</h3>

<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Description </th>
<th class='confluenceTh'> Download Link </th>
<th class='confluenceTh'> PGP Signature file of download </th>
</tr>
<tr>
<td class='confluenceTd'> Source for Windows </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dyn/closer.cgi/activemq/apache-camel/2.2.0/apache-camel-2.2.0-src.zip"
rel="nofollow">apache-camel-2.2.0-src.zip</a> </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dist/activemq/apache-camel/2.2.0/apache-camel-2.2.0-src.zip.asc"
rel="nofollow">apache-camel-2.2.0-src.zip.asc</a> </td>
</tr>
</tbody></table>

<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> Source for Unix/Linux/Cygwin </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dyn/closer.cgi/activemq/apache-camel/2.2.0/apache-camel-2.2.0-src.tar.gz"
rel="nofollow">apache-camel-2.2.0-src.tar.gz</a> </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dist/activemq/apache-camel/2.2.0/apache-camel-2.2.0-src.tar.gz.asc"
rel="nofollow">apache-camel-2.2.0-src.tar.gz.asc</a> </td>
</tr>
</tbody></table>

<h3><a name="Camel2.2.0Release-GettingtheBinariesusingMaven2"></a>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 href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html"
rel="nofollow">Maven POM</a> is:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;dependency&gt;</span>
  <span class="code-tag">&lt;groupId&gt;</span>org.apache.camel<span
class="code-tag">&lt;/groupId&gt;</span>
  <span class="code-tag">&lt;artifactId&gt;</span>camel-core<span class="code-tag">&lt;/artifactId&gt;</span>
  <span class="code-tag">&lt;version&gt;</span>2.2.0<span class="code-tag">&lt;/version&gt;</span>
<span class="code-tag">&lt;/dependency&gt;</span>
</pre>
</div></div>

<h3><a name="Camel2.2.0Release-SVNTagCheckout"></a>SVN Tag Checkout</h3>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
svn co http:<span class="code-comment">//svn.apache.org/repos/asf/camel/tags/camel-2.2.0</span>
</pre>
</div></div>

<h2><a name="Camel2.2.0Release-Changelog"></a>Changelog</h2>

<p>For a more detailed view of new features and bug fixes, see the:<br/>
TODO: Fix for 2.2.0</p>
<ul>
	<li><a href="http://issues.apache.org/activemq/secure/ReleaseNote.jspa?projectId=11020&amp;styleName=Html&amp;version=11900"
rel="nofollow">release notes for 2.2.0</a></li>
</ul>

     </div>
     <div id="commentsSection" class="wiki-content pageSection">
       <div style="float: right;">
            <a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
       </div>

       <a href="http://cwiki.apache.org/confluence/display/CAMEL/Camel+2.2.0+Release">View
Online</a>
       |
       <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=9011430&revisedVersion=34&originalVersion=33">View
Change</a>
              |
       <a href="http://cwiki.apache.org/confluence/display/CAMEL/Camel+2.2.0+Release?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message