camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [CONF] Apache Camel > Camel 2.9.0 Release
Date Mon, 12 Sep 2011 14:15:00 GMT
    <base href="">
            <link rel="stylesheet" href="/confluence/s/2042/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.9.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" >* Added {{idleConsumerLimit}} option
to the [JMS] component which sets the limit for the number of consumers that are allowed to
be idle at any given time. <br>* [Simple] language has a much better syntax parser,
being able to report what and where syntax errors are. Added unary operators, which for example
can be used to increment counters. <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">*
[Simple] language now supports nested functions, so you can do &quot;${header.${}}&quot;,
for example to refer to a header key from another header. <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h3. Fixed issues <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="Camel2.9.0Release-Camel2.9.0release%28currentlyinprogress%29"></a>Camel
2.9.0 release (currently in progress)</h1>

<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.9.0Release-NewandNoteworthy"></a>New and Noteworthy</h2>

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

	<li>Introduced <tt>ThreadPoolFactory</tt> with a simpler API for 3rd party
SPI. See <a href="/confluence/display/CAMEL/Threading+Model" title="Threading Model">Threading
Model</a> for more details.</li>
	<li>The <a href="/confluence/display/CAMEL/SOAP" title="SOAP">SOAP</a>
data format now supports using multiple parameters on the JAXB objects.</li>
	<li>The <a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a>
component now supports specifying parameter values to use directly in the method syntax. See
more details at <a href="/confluence/display/CAMEL/Bean+Binding" title="Bean Binding">Bean
Binding</a>. For example to invoke a bean with body as first parameter, and a boolean
true as second you can now do: <tt>.to("bean:myBean?method=myMethod(body, true)")</tt></li>
	<li>Improved labels of all model definitions which appear in <a href="/confluence/display/CAMEL/Tracer"
title="Tracer">Tracer</a> output</li>
	<li>Reduced dependency for <tt>camel-core</tt> to not require <tt>commons-management</tt>
JAR anymore</li>
	<li>Added blueprint support of cxfrs endpoint.</li>
	<li>Camel no longer depend on using Spring JARs for having Camel enlisted in <a
href="/confluence/display/CAMEL/Camel+JMX" title="Camel JMX">JMX</a>.</li>
	<li>Introduced a set of Camel JMX annotations in <tt></tt>
that can be used to easily instrument Camel <a href="/confluence/display/CAMEL/Components"
title="Components">Components</a>, <a href="/confluence/display/CAMEL/EIP" title="EIP">EIP</a>s,
custom <a href="/confluence/display/CAMEL/Processor" title="Processor">Processor</a>s,
<a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a>s etc. for being
managed in <a href="/confluence/display/CAMEL/Camel+JMX" title="Camel JMX">JMX</a>.
Using the Spring JMX annotations is still supported (you would need <tt>camel-spring</tt>
on the classpath).</li>
	<li>Updated the <a href="/confluence/display/CAMEL/Aggregator2" title="Aggregator2">Aggregator2</a>
to allow for manually completing all exchange groups by sending a message containing the header
<tt>Exchange.AGGREGATION_COMPLETE_ALL_GROUPS</tt> set to true.</li>
	<li>Removed dependency on Spring JARs in the following components: <a href="/confluence/display/CAMEL/Validation"
title="Validation">Validation</a>, <a href="/confluence/display/CAMEL/XSLT" title="XSLT">XSLT</a>,
<a href="/confluence/display/CAMEL/Velocity" title="Velocity">Velocity</a>, <a
href="/confluence/display/CAMEL/FreeMarker" title="FreeMarker">FreeMarker</a>, <a
href="/confluence/display/CAMEL/Flatpack" title="Flatpack">Flatpack</a>, <a href="/confluence/display/CAMEL/StringTemplate"
title="StringTemplate">StringTemplate</a>, <a href="/confluence/display/CAMEL/iBATIS"
title="iBATIS">iBATIS</a>, <a href="/confluence/display/CAMEL/Jing" title="Jing">Jing</a>,
<a href="/confluence/display/CAMEL/MSV" title="MSV">MSV</a>, <a href="/confluence/display/CAMEL/XQuery"
title="XQuery">XQuery</a>, and <a href="/confluence/display/CAMEL/Test" title="Test">Test</a></li>
	<li>Using <a href="/confluence/display/CAMEL/Content+Enricher" title="Content Enricher">pollEnrich</a>
with a file/ftp endpoint will now only poll on demand, beforehand the polling could be started
when the route started.</li>
	<li>Added option <tt>ReplyToType</tt> on <a href="/confluence/display/CAMEL/JMS"
title="JMS">JMS</a> to allow people to control which kind of reply queue they are
using (temporary, shared, exclusive). Added support for exclusive reply queues. Mind they
have some limitations, by which the shared dont have. So use exclusive with a bit caution.</li>
	<li>Added <tt>wereSentTo</tt> to <a href="/confluence/display/CAMEL/NotifyBuilder"
title="NotifyBuilder">NotifyBuilder</a> allowing to set expectation that <a href="/confluence/display/CAMEL/Exchange"
title="Exchange">Exchange</a>s was sent to the given endpoint uri.</li>
	<li><a href="/confluence/display/CAMEL/Bindy" title="Bindy">Bindy</a> in
CSV format now uses trim, clip, and length attributes on @DataField when marshalling.</li>
	<li>Improved managed browsable endpoints (JMX) so you can browse all/range messages
and whether to include message body or not.</li>
	<li><a href="/confluence/display/CAMEL/File2" title="File2">File</a> and
<a href="/confluence/display/CAMEL/FTP2" title="FTP2">FTP</a> endpoints is now
browsable endpoints. For example using JMX people can browse the endpoint listing available
files. The returned data does <b>not</b> contain the actual file body to avoid
loading big data into memory.</li>
	<li>Added <tt>replaceFromWith</tt> to <a href="/confluence/display/CAMEL/AdviceWith"
title="AdviceWith">AdviceWith</a> making it easy to swap a route input endpoint with
something else, for easier unit testing.</li>
	<li>Added Java DSL support for route autoStartup(String) and autoStartup(boolean)</li>
	<li>Switched to a better performing non locking endpoint cache based on Google's ConcurrentLinkedHashMap.</li>
	<li>Added <tt>isUseAdviceWith</tt> to <a href="/confluence/display/CAMEL/Camel+Test"
title="Camel Test">Camel Test</a> which allows end users to tell Camel that the unit
tests uses <a href="/confluence/display/CAMEL/AdviceWith" title="AdviceWith">AdviceWith</a>
which allows you to defer starting <a href="/confluence/display/CAMEL/CamelContext" title="CamelContext">CamelContext</a>
until after the adviceWith has been executed.</li>
	<li>Added <tt>filtersRef</tt> option to <a href="/confluence/display/CAMEL/Jetty"
title="Jetty">Jetty</a> endpoint, and it supports to setup the Filters on the Jetty
	<li>Added <tt>ciphers</tt> option to the <a href="/confluence/display/CAMEL/FTP2"
title="FTP2">SFTP</a> endpoint to allow configuration of the ciphers used by default.</li>
	<li>Added <tt>fastExitsCheck</tt> option to the <a href="/confluence/display/CAMEL/FTP2"
title="FTP2">SFTP FTP</a> endpoint to check the file exits fast.</li>
	<li>Added <tt>errorHandler</tt> option to the <a href="/confluence/display/CAMEL/JMS"
title="JMS">JMS</a> component which allows you to set a <tt>org.springframework.util.ErrorHandler</tt>
to be invoked in case of any uncaught exceptions thrown while processing a <tt>Message</tt>.</li>
	<li>Added <tt>idleConsumerLimit</tt> option to the <a href="/confluence/display/CAMEL/JMS"
title="JMS">JMS</a> component which sets the limit for the number of consumers that
are allowed to be idle at any given time.</li>
	<li><a href="/confluence/display/CAMEL/Simple" title="Simple">Simple</a>
language has a much better syntax parser, being able to report what and where syntax errors
are. Added unary operators, which for example can be used to increment counters.</li>
	<li><a href="/confluence/display/CAMEL/Simple" title="Simple">Simple</a>
language now supports nested functions, so you can do "${header.${}}", for example
to refer to a header key from another header.</li>

<h3><a name="Camel2.9.0Release-Fixedissues"></a>Fixed issues</h3>

	<li>Fixed issue with <a href="/confluence/display/CAMEL/Properties" title="Properties">Properties</a>
component may cache duplicates and thus take up unnecessary memory in the cache</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/Tracer" title="Tracer">Tracer</a>
out exchanges when using <a href="/confluence/display/CAMEL/Asynchronous+Processing" title="Asynchronous
Processing">Asynchronous Processing</a> by the <a href="/confluence/display/CAMEL/Asynchronous+Routing+Engine"
title="Asynchronous Routing Engine">Asynchronous Routing Engine</a></li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/Component" title="Component">Component</a>s
or <a href="/confluence/display/CAMEL/Endpoint" title="Endpoint">Endpoint</a>s
not being registered in <a href="/confluence/display/CAMEL/Camel+JMX" title="Camel JMX">JMX</a>
when using <a href="/confluence/display/CAMEL/POJO+Producing" title="POJO Producing">POJO
Producing</a>, <a href="/confluence/display/CAMEL/POJO+Consuming" title="POJO Consuming">POJO
Consuming</a> or other Camel bean annotations.</li>
	<li>Fixed issue which could cause <tt>DefaultUnitOfWork</tt> to throw a
<tt>java.util.EmptyStackException</tt> under heavy load</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/MDC+logging" title="MDC
logging">MDC logging</a> not remembering old values, for example when using a <tt>ProducerTemplate</tt>
from within routes to send new messages.</li>
	<li>Fixed issue when invoking a <a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a>
and that bean is using a <tt>@Bean</tt> in its method signature, causing the <tt>@Bean</tt>
to not invoke its intended method</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/Bindy" title="Bindy">Bindy</a>
unmarshalling in key value mode when using @OneToMany bindings, may cause inconsistency for
multiple threaded unmarshalling</li>
	<li>Fixed issue with <tt>ExchangeSentEvent</tt> being fired to early when
being sent to <a href="/confluence/display/CAMEL/Asynchronous+Routing+Engine" title="Asynchronous
Routing Engine">asynchronously</a> endpoint. Now its being fired when sent is done.</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/Using+OSGi+blueprint+with+Camel"
title="Using OSGi blueprint with Camel">OSGi Blueprint</a> when consuming <a href="/confluence/display/CAMEL/JAXB"
title="JAXB">JAXB</a> annotated objects from <a href="/confluence/display/CAMEL/ActiveMQ"
title="ActiveMQ">ActiveMQ</a> causing ClassCastException's.</li>

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

	<li><a href="/confluence/display/CAMEL/Zookeeper" title="Zookeeper">Zookeeper</a></li>

<h3><a name="Camel2.9.0Release-DSLChanges"></a>DSL Changes</h3>

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

	<li>Added some JMX annotations in that replace the
spring jmx annotations to make camel-core independent of spring</li>

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

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

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

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

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

<p>We did some fairly large refactoring in preparation for camel 3. In Camel 2.9.0 most
changes should be compatible. If you hit any problematic API changes please report in jira
and we will try to add compatibility stubs in a 2.9.1 release.<br/>
The main goal of this refactoring is to prepare for a self contained minimal API that can
be used as a basis for component development. We already did some changes in regard to this
in 2.9.0 to make backporting 3.0 features easier once we start with camel 3.</p>

	<li>The class <tt>ExecutorServiceStrategy</tt> is <b>@deprecated</b>
in favor of a new <tt>ExecutorServiceManager</tt> class, which have a slightly
reduced and improved API. See <a href="/confluence/display/CAMEL/Threading+Model" title="Threading
Model">Threading Model</a> for more details.</li>
	<li>The <tt>org.apache.camel.component.ResourceBasedComponent</tt> class
from <tt>camel-spring</tt> has been deleted. Use <tt>DefaultComponent</tt>
	<li>The <tt>org.apache.camel.component.ResourceBasedEndpoint</tt> class
from <tt>camel-spring</tt> has been moved to <tt>camel-core</tt>,
and its dependency on Spring JARs has been removed. Use the new APIs on <tt>ResourceBasedEndpoint</tt>
to load resources.</li>
	<li>Changed the method <tt>beforePoll</tt> slightly in the <tt>org.apache.camel.PollingConsumerPollingStrategy</tt>
	<li><tt>ServiceSupport</tt> and <tt>EventNotifierSupport</tt>
classes are moved to This package is meant for mostly abstract base
classes that make it easier to implement the API. To keep compatibility the old classes are
kept as @Deprecated versions (see <a href=""
class="external-link" rel="nofollow">CAMEL-4358</a>)</li>
	<li>ServiceSupport now does no handle child services anymore (was used only in two
places in camel-core). A new class ChildServiceSupport now handles this case. Additionally
the org.apache.camel.StatefulService interface was created which allows to access ServiceSupport
methods without knowing the implementation</li>
	<li>DataFormatResolver does not support resolveDataFormatDefinition anymore. The current
implementations for OSGi and Default where exactly the same so this code was moved to DefaultCamelContext.
If this is needed please open a jira issue</li>
	<li>All methods in CamelContext that reference model elements where deprecated. An
additional interface ModelCamelContext was created to hold these methods</li>

<h2><a name="Camel2.9.0Release-NonAPIrefactoringsthatmayaffectusers"></a>Non
API refactorings that may affect users</h2>

	<li>BytesSource and StringSource were moved from org.apache.camel.converter.jaxp to
org.apache.camel as they are used in several places</li>
	<li>Ordered interface was moved from util to org.apache.camel.api</li>
	<li>org.apache.camel.WrappedFile interface was introduced as abstraction of GenericFile
for usage outside the file component</li>
	<li>TimeoutMap inteface was moved from org.apache.camel.util to org.apache.camel</li>
	<li>ModelHelper was moved from org.apache.camel.util to org.apache.camel.model to avoid
referrences from util to model</li>
	<li>DefaultTimeoutMap was moved from org.apache.camel.util to
as it needs access to ServiceSupport</li>
	<li>Moved some management interfaces from to</li>

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

	<li>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.</li>
	<li>The project cannot fully build the site using Maven (eg running <tt>"mvn
site"</tt>. There is no plan to make this work as the project do not use the maven site.</li>
	<li>The source code cannot fully build with JDK 7</li>

<h2><a name="Camel2.9.0Release-DependencyUpgrades"></a>Dependency Upgrades</h2>

	<li>Apache CXF 2.4.1 to 2.4.2</li>
	<li>Jackrabbit 1.5.5 to 1.6.4</li>
	<li>Groovy 1.8.0 to 1.8.1</li>
	<li>HawtDB 1.5 to 1.6</li>
	<li>Scalate 1.5.0 to 1.5.1</li>
	<li>Smack 3.1.0 to 3.2.0</li>
	<li>XStream 1.3.1 to 1.4.1</li>

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

	<li>The <a href="/confluence/display/CAMEL/XSLT" title="XSLT">XSLT</a>,
and <a href="/confluence/display/CAMEL/Validation" title="Validation">Validation</a>
components has been moved from <tt>camel-spring</tt> to <tt>camel-core</tt>
as they no longer depend upon Spring JARs</li>
	<li>Building the source with Apache Maven 2.x is <b>deprecated</b> and
support for that is to be removed in the next release.</li>
	<li><a href="/confluence/display/CAMEL/Debugger" title="Debugger">Debugger</a>
is now disabled by default in <a href="/confluence/display/CAMEL/Camel+Test" title="Camel
Test">Camel Test</a>. You would need to override <tt>isUseDebugger()</tt>
method and return <tt>true</tt> to enable it.</li>
	<li><a href="/confluence/display/CAMEL/Simple" title="Simple">Simple</a>
language improved syntax parser. <a href="/confluence/display/CAMEL/Simple" title="Simple">Simple</a>
is now more strict and will report syntax errors for invalid input. For example <a href="/confluence/display/CAMEL/Predicate"
title="Predicate">Predicate</a>s now requires literal texts to be enclosed in quotes,
just as any programming language such as Java would do. Range operator also requires the range
to be enclosed in quotes as well. See more details at <a href="/confluence/display/CAMEL/Simple"

<h2><a name="Camel2.9.0Release-Notice"></a>Notice</h2>

	<li>Removed ANT support for the <a href="/confluence/display/CAMEL/Examples" title="Examples">Examples</a></li>
	<li>The <tt>commons-management</tt> JAR is no longer required as dependency.</li>
	<li>Camel no longer depend on using Spring JARs for having Camel enlisted in <a
href="/confluence/display/CAMEL/Camel+JMX" title="Camel JMX">JMX</a>.</li>
	<li>Building the source with Apache Maven 2.x is <b>deprecated</b> and
support for that is to be removed in the next release.</li>

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

<h3><a name="Camel2.9.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.9.0.tar.gz</a> </td>
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow">apache-camel-2.9.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.9.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.9.0-src.tar.gz</a> </td>
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow">apache-camel-2.9.0-src.tar.gz.asc</a> </td>

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

<h3><a name="Camel2.9.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.9.0Release-Changelog"></a>Changelog</h2>

<p>For a more detailed view of new features and bug fixes, see the:<br/>
TODO: Update link</p>
	<li><a href=";styleName=Html"
class="external-link" rel="nofollow">release notes for 2.9.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