camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [CONF] Apache Camel > Camel 2.4.0 Release
Date Wed, 11 Aug 2010 13:30:00 GMT
    <base href="">
            <link rel="stylesheet" href="/confluence/s/1810/9/1/_/styles/combined.css?spaceKey=CAMEL&amp;forWysiwyg=true"
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="">Camel
2.4.0 Release</a></h2>
    <h4>Page <b>edited</b> by             <a href="">Claus
                         <h4>Changes (1)</h4>
<div id="page-diffs">
            <table class="diff" cellpadding="0" cellspacing="0">
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >The read {{timeout}} in [Netty] is
causing it to spawn threads and you end up with out of memory error. You have to disable using
timeout by setting the {{timeout=0}} in the endpoint configuration. This issue has been fixed
in the next release. <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">The
[LoggingErrorHandler|Error Handler] does not work when also using [onException|Exception Clause].
It may go into an endless loop. So refrain from using logging error handler. <br> <br></td></tr>
            <tr><td class="diff-unchanged" >h2. Important changes to consider
when upgrading <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
</div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="Camel2.4.0Release-Camel2.4.0release"></a>Camel 2.4.0

<div style="padding-right:20px;float:left;margin-left:-20px;"><p><span class="image-wrap"
style=""><img src=""
style="border: 0px solid black" /></span></p></div>
<div style="min-height:200px"></div>

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

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

	<li>Spring 3.0.3 is now the default Spring version used by Camel.</li>
	<li>Fully non blocking <a href="/confluence/display/CAMEL/Asynchronous+Routing+Engine"
title="Asynchronous Routing Engine">Asynchronous Routing Engine</a> which all <a
href="/confluence/display/CAMEL/EIP" title="EIP">EIP</a>s and some Camel <a href="/confluence/display/CAMEL/Components"
title="Components">Components</a> supported.</li>
	<li>New feature to use scheduled <a href="/confluence/display/CAMEL/Exception+Clause"
title="Exception Clause">delayed redelivery attempts</a> (they are fully asynchronous
and non blocking). You need to enable this using the option <tt>asyncDelayedRedelivery</tt>.</li>
	<li>Fixed a potential dead-lock when using <a href="/confluence/display/CAMEL/Aggregator2"
title="Aggregator2">Aggregator</a> with timeout completion set.</li>
	<li>The <b>camel-spring</b> module now supports OSGi out of box, which
renders <b>camel-osgi</b> as <b>@deprecated</b>.</li>
	<li><a href="/confluence/display/CAMEL/Using+OSGi+blueprint+with+Camel" title="Using
OSGi blueprint with Camel">OSGi blueprint</a> is now supported</li>
	<li>Added new <a href="/confluence/display/CAMEL/Spring" title="Spring"><tt>&lt;contextScan&gt;</tt></a>
to scan the <a href="/confluence/display/CAMEL/Registry" title="Registry">Registry</a>
for <tt>RouteBuilder</tt> instances, just as scanning the classpath etc.</li>
	<li>Manually started routes is now also <a href="/confluence/display/CAMEL/Graceful+Shutdown"
title="Graceful Shutdown">Graceful Shutdown</a> by Camel</li>
	<li>Fixed issue using <a href="/confluence/display/CAMEL/Configuring+Camel" title="Configuring
Camel">RouteContextRef</a> with multiple <a href="/confluence/display/CAMEL/CamelContext"
title="CamelContext">CamelContext</a> from the same Spring ApplicationContext.</li>
	<li><a href="/confluence/display/CAMEL/Bindy" title="Bindy">Bindy</a> now
supports Fixed-Length format message with padding, alignment (Left or Right)</li>
	<li>Improved and fixes some issues with the <a href="/confluence/display/CAMEL/FTP2"
title="FTP2">FTP</a> component.</li>
	<li>Improved and fixed some issues using <tt>MultiPartForm</tt> with <a
href="/confluence/display/CAMEL/Jetty" title="Jetty">Jetty</a>.</li>
	<li>Add ability to configure <a href="/confluence/display/CAMEL/Bindy" title="Bindy">Bindy</a>
to remove whitespace when binding <tt>Numeric</tt> positions</li>
	<li>Added option <tt>useOriginalBody</tt> to <a href="/confluence/display/CAMEL/OnCompletion"
	<li>Fixed issue when using mockito for testing when it uses CGLib proxies</li>
	<li>Fixed issue with <tt>@Consume</tt> not running in an unit of work to
ensure callbacks is invoked when its done</li>
	<li><a href="/confluence/display/CAMEL/Routing+Slip" title="Routing Slip">Routing
Slip</a> now uses <a href="/confluence/display/CAMEL/Expression" title="Expression">Expression</a>
to define the slip. This is similar to the <a href="/confluence/display/CAMEL/Recipient+List"
title="Recipient List">Recipient List</a> pattern</li>
	<li>The security context can be passed from <a href="/confluence/display/CAMEL/CXF"
title="CXF">CXF</a> to other camel <a href="/confluence/display/CAMEL/Components"
	<li><tt>ManagementAgent</tt> settings can now be set using setters from
Java, instead of having to use JVM system properties. See tip in <a href="/confluence/display/CAMEL/Camel+JMX"
title="Camel JMX">Camel JMX</a> wiki page.</li>
	<li><a href="/confluence/display/CAMEL/Resequencer" title="Resequencer">Resequencer</a>
in batch mode has two new options <tt>allowDuplicates</tt> and <tt>reverse</tt>
which allows you to use it for re-ordering messages from <a href="/confluence/display/CAMEL/JMS"
title="JMS">JMS</a> queues based on <tt>JMSPriority</tt></li>
	<li>Tighten up the <tt>ProducerTemplate</tt> API a bit, see more details
in the section <em>Important changes to consider when upgrading</em>.</li>
	<li><a href="/confluence/display/CAMEL/HTTP" title="HTTP">HTTP</a> now
better supports sending binary files.</li>
	<li>Fixed problem with using <a href="/confluence/display/CAMEL/Quartz" title="Quartz">Quartz</a>
in OSGi and having Camel applications being hot-deployed which potentially could cause <a
href="/confluence/display/CAMEL/Quartz" title="Quartz">Quartz</a> to stop scheduling
in applications which haven't been stopped.</li>
	<li>Fixed issue with pausing and resuming jobs when running <a href="/confluence/display/CAMEL/Quartz"
title="Quartz">Quartz</a> in clustered mode</li>
	<li>Added options on <a href="/confluence/display/CAMEL/Quartz" title="Quartz">Quartz</a>
component to specify location of custom <tt></tt> file to load
from classpath.</li>
	<li>Upgraded to latest <a href="/confluence/display/CAMEL/Quartz" title="Quartz">Quartz</a>
release 1.8.3.</li>
	<li>Introduced <tt>StartupListener</tt> to allow components/endpoints/producers/consumers
etc. as a listener to be notified when <tt>CamelContext</tt> have just been started.
This allows any custom logic to be executed as a late starter. This ensures <a href="/confluence/display/CAMEL/Quartz"
title="Quartz">Quartz</a> scheduler is only started when all the routes and so forth
is started and running.</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/FTP2" title="FTP2">FTP</a>
configuring starting directory from uri not accepting an absolute path. In the endpoint uri
just define two leading / to indicate absolute, eg <tt>"ftp:admin:secret@someserver//absolutepath/foo/bar"</tt>.</li>
	<li>Added <tt>fromRoute</tt> to <a href="/confluence/display/CAMEL/NotifyBuilder"
	<li>Improved the <a href="/confluence/display/CAMEL/CSV" title="CSV">CSV</a>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/Direct" title="Direct">Direct</a>
endpoint having no consumers if endpoint have been evicted from <tt>CamelContext</tt>
internal LRUCache.</li>
	<li>The <a href="/confluence/display/CAMEL/RouteBuilder" title="RouteBuilder">RouteBuilder</a>
now have <tt>simple</tt> and <tt>xpath</tt> expression builder methods
out of the box.</li>
	<li>Upgraded to latest release of Scala 2.8.0RC7 in <a href="/confluence/display/CAMEL/Scala+DSL"
title="Scala DSL">Scala DSL</a></li>
	<li><a href="/confluence/display/CAMEL/HawtDB" title="HawtDB">camel-hawtdb</a>
updated to <a href="" class="external-link"
rel="nofollow">HawtDB 1.1</a> picks up several bug fixes that improves stability
and performance.</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/Splitter" title="Splitter">splitting</a>
<a href="/confluence/display/CAMEL/File2" title="File2">file</a>s using <tt>tokenizer</tt>
not being able to delete/move file after processing is done on Windows platform.</li>
	<li><tt>maxMessagesPerPoll</tt> is now applied eagerly to limit intaking
files earlier for the <a href="/confluence/display/CAMEL/File2" title="File2">File</a>
and <a href="/confluence/display/CAMEL/FTP2" title="FTP2">FTP</a> components,
Thus avoid excessive memory consumption if you poll directories which contains 100.000+ files.</li>
	<li>Added <tt>connectTimeout</tt>, <tt>soTimeout</tt> and <tt>timeout</tt>
to <a href="/confluence/display/CAMEL/FTP2" title="FTP2">FTP</a> so its easier
to configure timeouts.</li>
	<li>Consolidated support for per platform disabling of tests across the entire test
	<li>Introduced <a href="/confluence/display/CAMEL/ProcessorFactory" title="ProcessorFactory">ProcessorFactory</a>
to be able to use a custom factory to be able to manipulate <a href="/confluence/display/CAMEL/Processor"
title="Processor">Processor</a> creation process. For example to add additional outputs
or manipulate the route model.</li>
	<li><a href="/confluence/display/CAMEL/JMS" title="JMS">camel-jms</a> now
supports Oracle AQ</li>
	<li>Added a <a href="/confluence/display/CAMEL/Camel+2.x+-+Debugger+API" title="Camel
2.x - Debugger API">Debugger</a> API to be leveraged by 3rd party tooling.</li>
	<li>The <tt>beanRef</tt> and <tt>methodCall</tt> DSLs will
eager check on startup, the bean reference exists in <a href="/confluence/display/CAMEL/Registry"
title="Registry">Registry</a> and the provided method name is a valid method name
on the bean as well. This helps to fail fast if end users have a typo in their routes.</li>
	<li><a href="/confluence/display/CAMEL/Camel+JMX" title="Camel JMX">JMX</a>
now exposes notifications which listeners can receive.</li>
	<li>Added <tt>ExchangeRedeliveryEvent</tt> event being emitted when Camel
<a href="/confluence/display/CAMEL/Error+Handler" title="Error Handler">Error Handler</a>
attempts a redelivery.</li>
	<li><a href="/confluence/display/CAMEL/Properties" title="Properties">Properties</a>
component can lookup <tt>java.util.Properties</tt> from the <a href="/confluence/display/CAMEL/Registry"
title="Registry">Registry</a> using the <tt>ref:</tt> prefix.</li>
	<li><a href="/confluence/display/CAMEL/Spring+Security" title="Spring Security">Spring
Security</a> is upgrade to spring security 3.0.3.RELEASE.</li>

<h3><a name="Camel2.4.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.4.0Release-NewComponents"></a>New <a href="/confluence/display/CAMEL/Components"

	<li><a href="/confluence/display/CAMEL/EJB" title="EJB">EJB</a> to access
<a href="/confluence/display/CAMEL/EJB" title="EJB">EJB</a> beans in a similar
way as with the <a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a>
	<li><a href="/confluence/display/CAMEL/Class" title="Class">Class</a> to
invoke beans defined using the fully qualified class name</li>
	<li><a href="/confluence/display/CAMEL/Using+OSGi+blueprint+with+Camel" title="Using
OSGi blueprint with Camel">OSGi Blueprint</a> to use Camel with OSGi blueprint</li>

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

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


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

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

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

<h3><a name="Camel2.4.0Release-NewTutorials"></a>New <a href="/confluence/display/CAMEL/Tutorials"

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

<p>The <a href="/confluence/display/CAMEL/ToAsync" title="ToAsync">ToAsync</a>
has been removed and replaced with a better <a href="/confluence/display/CAMEL/Asynchronous+Processing"
title="Asynchronous Processing">asynchronous routing engine</a>.</p>

<p><a href="/confluence/display/CAMEL/Routing+Slip" title="Routing Slip">Routing
Slip</a> now requires using <a href="/confluence/display/CAMEL/Expression" title="Expression">Expression</a>
to specify the routing slip header, the XML DSL of <a href="/confluence/display/CAMEL/Routing+Slip"
title="Routing Slip">Routing Slip</a> is broken.</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
    <span class="code-tag">&lt;route&gt;</span>
       <span class="code-tag">&lt;from uri=<span class="code-quote">"direct:a"</span>/&gt;</span>
       <span class="code-tag"><span class="code-comment">&lt;!--NOTE from
Camel 2.4.0, you need to specify the expression element inside of the routingSlip element
       <span class="code-tag">&lt;routingSlip ignoreInvalidEndpoints=<span class="code-quote">"true"</span>&gt;</span>
           <span class="code-tag">&lt;header&gt;</span>myHeader<span
       <span class="code-tag">&lt;/routingSlip&gt;</span>
    <span class="code-tag">&lt;/route&gt;</span>

<p>The <tt>retryUntil</tt> method on <a href="/confluence/display/CAMEL/Exception+Clause"
title="Exception Clause">onException</a> have been renamed to <tt>retryWhile</tt>
to better match what it does. It keeps retrying while the predicate returns <tt>true</tt>.</p>

<p><tt>org.apache.camel.spi.Policy</tt> now has an additional method <tt>beforeWrap</tt>
which means you need to implement this method in your implementations. Just add a empty method
to adapt.</p>

<p>The class <tt></tt>
has been renamed to <tt></tt>.</p>

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

<p>The <a href="/confluence/display/CAMEL/Tracer" title="Tracer">Tracer</a>
may not output all details for some situations such as when using <tt>onCompletion</tt>
or <tt>intercept</tt> etc.</p>

<p>Not all <a href="/confluence/display/CAMEL/Examples" title="Examples">Examples</a>
have ANT build.xml files to run the example using ANT.</p>

<p>The read <tt>timeout</tt> in <a href="/confluence/display/CAMEL/Netty"
title="Netty">Netty</a> is causing it to spawn threads and you end up with out of
memory error. You have to disable using timeout by setting the <tt>timeout=0</tt>
in the endpoint configuration. This issue has been fixed in the next release.</p>

<p>The <a href="/confluence/display/CAMEL/Error+Handler" title="Error Handler">LoggingErrorHandler</a>
does not work when also using <a href="/confluence/display/CAMEL/Exception+Clause" title="Exception
Clause">onException</a>. It may go into an endless loop. So refrain from using logging
error handler.</p>

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

<p>Camel now uses Spring 3.0.3 as the default Spring version. Spring 2.5 is still supported.<br/>
Spring 2.0.x support is now <b>@deprecated</b> and will in future releases <b>not</b>
be supported.</p>

<p><tt>IntrospectionSupport</tt> has been improved to be consistent for
<tt>getProperty</tt> and <tt>getProperties</tt>. Also <tt>getProperties</tt>
now find all relevant properties. This will often only be relevant for Camel end users who
build their own components any may use <tt>IntrospectionSupport</tt>.</p>

<p>The <tt>ProducerTemplate</tt> have been tighten up a bit. All <tt>send/request
-body</tt> methods will now throw a <tt>CamelExecutionException</tt> with
the cause wrapped. This ensures its consistent. </p>

<p>The <a href="/confluence/display/CAMEL/FTP2" title="FTP2"><tt>ftps</tt></a>
is now using secure data channel also when transferring files. There has been added some options
which you can use to control the behavior and turn it off if you want the old behavior (only
secure login).</p>

<p>The <a href="/confluence/display/CAMEL/FTP2" title="FTP2">FTP</a> starting
directory can now be set using absolute paths as well. In the endpoint uri just define two
leading / to indicate absolute, eg <tt>"ftp:admin:secret@someserver//absolutepath/foo/bar"</tt>.</p>

<p>The default port from <a href="/confluence/display/CAMEL/FTP2" title="FTP2"><tt>ftps</tt></a>
has been changed from 2222 to 21. </p>

<p>The <a href="/confluence/display/CAMEL/FTP2" title="FTP2">FTP</a> is
now using a default of 10 sec connect timeout (ALL), and 30 sec data timeout (FTP/FTPS only).</p>

<p>The <a href="/confluence/display/CAMEL/RouteBuilder" title="RouteBuilder">RouteBuilder</a>
now have <tt>simple</tt> and <tt>xpath</tt> expression builder methods
out of the box, which means you don't have to use static imports to use those two <a href="/confluence/display/CAMEL/Languages"
title="Languages">Languages</a>. The compiler may complain if you have a static import,
which you simply fix by removing the static import. </p>

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

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

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<th class='confluenceTh'> Description </th>
<th class='confluenceTh'> Download Link </th>
<th class='confluenceTh'> PGP Signature file of download </th>
<td class='confluenceTd'> Windows Distribution </td>
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow"></a> </td>
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow"></a> </td>
<td class='confluenceTd'> Unix/Linux/Cygwin Distribution </td>
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow">apache-camel-2.4.0.tar.gz</a> </td>
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow">apache-camel-2.4.0.tar.gz.asc</a> </td>

<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 />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="" class="external-link"

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

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<th class='confluenceTh'> Description </th>
<th class='confluenceTh'> Download Link </th>
<th class='confluenceTh'> PGP Signature file of download </th>
<td class='confluenceTd'> Source for Windows </td>
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow"></a> </td>
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow"></a> </td>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<td class='confluenceTd'> Source for Unix/Linux/Cygwin </td>
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow">apache-camel-2.4.0-src.tar.gz</a> </td>
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow">apache-camel-2.4.0-src.tar.gz.asc</a> </td>

<h3><a name="Camel2.4.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=""
class="external-link" 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
  <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.4.0<span class="code-tag">&lt;/version&gt;</span>
<span class="code-tag">&lt;/dependency&gt;</span>

<h3><a name="Camel2.4.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">//</span>

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

<p>For a more detailed view of new features and bug fixes, see the:</p>
	<li><a href=";styleName=Html&amp;version=12250"
class="external-link" rel="nofollow">release notes for 2.4.0</a></li>

        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href=""
class="grey">Change Notification Preferences</a>
        <a href="">View
        <a href="">View
        <a href=";showCommentArea=true#addcomment">Add

View raw message