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.8.0 Release
Date Thu, 30 Jun 2011 10:15:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/1/_/styles/combined.css?spaceKey=CAMEL&amp;forWysiwyg=true" type="text/css">
    </head>
<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="https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.8.0+Release">Camel 2.8.0 Release</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~davsclaus">Claus Ibsen</a>
    </h4>
        <br/>
                         <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" >* In addition of [Apache Karaf|http://karaf.apache.org] features descriptor, Camel now provides a Karaf shell commands to manipulate CamelContext, routes, etc. <br>* [Mock] endpoint now accepts multiple expected headers/properties using the {{expectedHeaderReceived}} / {{expectedPropertyReceived}} methods. <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">* Added the {{changed}} read lock option to the [FTP|FTP2] component. <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h3. New [Enterprise Integration Patterns] <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="Camel2.8.0Release-Camel2.8.0release%28currentlyinprogress%29"></a>Camel 2.8.0 release (currently in progress)</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><a name="Camel2.8.0Release-NewandNoteworthy"></a>New and Noteworthy</h2>

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

<ul>
	<li>Fixed the OGNL support of <a href="/confluence/display/CAMEL/Simple" title="Simple">Simple</a> language to support dots in key for map access.</li>
	<li>You can now configure the <tt>resultType</tt> when using <a href="/confluence/display/CAMEL/Simple" title="Simple">Simple</a> expressions.</li>
	<li>You can now specify <a href="/confluence/display/CAMEL/Bean+Binding" title="Bean Binding">type parameters</a> in <a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a> to exact select method to be used when having overloaded methods (overloaded methods have same name, but vary in parameter types).</li>
	<li>The <a href="/confluence/display/CAMEL/FTP" title="FTP">SFTP</a> component now allows you to customize keep alive settings.</li>
	<li>Fixed issue if explict setting <tt>JmsMessage</tt> body to <tt>null</tt> would cause Camel to re-initialize the body from the underlying <tt>javax.jms.Message</tt> on access again.</li>
	<li><a href="/confluence/display/CAMEL/Mock" title="Mock">Mock</a> endpoints is now lenient, which means its easier to replace components with <a href="/confluence/display/CAMEL/Mock" title="Mock">Mock</a> for testing purposes. Using uri parameters which the <a href="/confluence/display/CAMEL/Mock" title="Mock">Mock</a> endpoint wont no longer complain about being unknown parameters.</li>
	<li>Camel places a breadcrumb header in the Camel <a href="/confluence/display/CAMEL/Message" title="Message">Message</a> which allow us to keep track of messages across transports such as <a href="/confluence/display/CAMEL/JMS" title="JMS">JMS</a>, <a href="/confluence/display/CAMEL/HTTP" title="HTTP">HTTP</a> and many others. See more details at <a href="/confluence/display/CAMEL/MDC+logging" title="MDC logging">MDC logging</a>.</li>
	<li>Improved <a href="/confluence/display/CAMEL/XPath" title="XPath">XPath</a> to allow GC to kick-in a bit earlier to free memory as Camel will clear references to used <a href="/confluence/display/CAMEL/Exchange" title="Exchange">Exchange</a>s used during <a href="/confluence/display/CAMEL/XPath" title="XPath">XPath</a> evaluations.</li>
	<li>Fixed an issue using <a href="/confluence/display/CAMEL/FTP" title="FTP">FTP</a> endpoints with the <a href="/confluence/display/CAMEL/Intercept" title="Intercept">interceptSendToEndpoint</a></li>
	<li><a href="/confluence/display/CAMEL/Using+CamelProxy" title="Using CamelProxy">Camel Proxy</a> supports asynchronous invocations using <tt>Future</tt> handles.</li>
	<li>The <a href="/confluence/display/CAMEL/How+do+I+configure+the+maximum+endpoint+cache+size+for+CamelContext" title="How do I configure the maximum endpoint cache size for CamelContext">endpoint cache</a> can be configured on <a href="/confluence/display/CAMEL/CamelContext" title="CamelContext">CamelContext</a>.</li>
	<li><a href="/confluence/display/CAMEL/Cometd" title="Cometd">Cometd</a> supports custom security policy and extensions as <a href="http://cometd.org/documentation/howtos/authentication" class="external-link" rel="nofollow">documented here</a></li>
	<li>Caches such as <tt>ProducerCache</tt> and <tt>EndpointRegistry</tt> can now be purged from <a href="/confluence/display/CAMEL/Camel+JMX" title="Camel JMX">JMX</a>.</li>
	<li>Added stats for number of redeliveries and handled failures to JMX.</li>
	<li>Added support for <a href="/confluence/display/CAMEL/camel-jboss" title="camel-jboss">JBoss 6</a>.</li>
	<li><a href="/confluence/display/CAMEL/JMS" title="JMS">JMS</a> consumer uses <tt>CACHE_AUTO</tt> for default cache level. This ensure that it will automatic detect if its transacted and use <tt>CACHE_NONE</tt> which must be used for transacted. And <tt>CACHE_CONSUMER</tt> for non transacted.</li>
	<li>Improved <a href="/confluence/display/CAMEL/Splitter" title="Splitter">Splitter</a> in parallel mode to be more responsive when aggregating on-the-fly under high load, and reducing number of threads in-use.</li>
	<li>Added <tt>onPrepare</tt> to <a href="/confluence/display/CAMEL/Multicast" title="Multicast">Multicast</a>, <a href="/confluence/display/CAMEL/Splitter" title="Splitter">Splitter</a>, <a href="/confluence/display/CAMEL/Recipient+List" title="Recipient List">Recipient List</a>, and <a href="/confluence/display/CAMEL/Wire+Tap" title="Wire Tap">Wire Tap</a> to execute custom logic when preparing messages. For example you can use that to deep clone message bodies, or enrich messages before they are processed.</li>
	<li>Added <tt>CamelSqlQuery</tt> header to <a href="/confluence/display/CAMEL/SQL+Component" title="SQL Component">SQL Component</a> to specify (per exchange) SQL query.</li>
	<li><tt><a href="/confluence/display/CAMEL/Cache" title="Cache">camel-cache</a></tt> now works in OSGi.</li>
	<li>Fixed an issue with <a href="/confluence/display/CAMEL/HawtDB" title="HawtDB">HawtDB</a> file store growing to large.</li>
	<li>Added <tt>repeatCount</tt> option to <a href="/confluence/display/CAMEL/Timer" title="Timer">Timer</a> so you can limit the number of times it fires.</li>
	<li>Consuming from <a href="/confluence/display/CAMEL/JMS" title="JMS">JMS</a> will now uses default exchange ids, instead of overring and uses ids based on <tt>JMSMessageID</tt>. This makes exchange ids consistent with all components in Camel.</li>
	<li>The <tt>camel-script</tt> component now works in OSGi and being able to discover and use <tt>ScriptEngineFactory</tt> from bundles.</li>
	<li><a href="/confluence/display/CAMEL/Restlet" title="Restlet">Restlet</a> producer now supports the <a href="/confluence/display/CAMEL/Asynchronous+Routing+Engine" title="Asynchronous Routing Engine">Asynchronous Routing Engine</a></li>
	<li><a href="/confluence/display/CAMEL/Throttler" title="Throttler">Throttler</a> now uses an <a href="/confluence/display/CAMEL/Expression" title="Expression">Expression</a> for the maximum messages per period, which means it can be adjusted dynamic at runtime.</li>
	<li><a href="/confluence/display/CAMEL/Cache" title="Cache">Cache</a> now supports replicating cache across nodes using listeners.</li>
	<li><a href="/confluence/display/CAMEL/Cache" title="Cache">Cache</a> headers are now prefixed with 'CamelCache' and use mixed case, also they are removed from the exchange after a cache operation is performed</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/XMPP" title="XMPP">XMPP</a> being redeployed (hot-deploy) in Apache ServiceMix may fail.</li>
	<li><a href="/confluence/display/CAMEL/CXF" title="CXF">CXF</a> uses case-insensitive keys for CXF protocol headers, which Apache CXF itself also uses.</li>
	<li>Fixed issue with stopping context scoped <a href="/confluence/display/CAMEL/Error+Handler" title="Error Handler">Error Handler</a> if a route was stopped, for example using <a href="/confluence/display/CAMEL/Camel+JMX" title="Camel JMX">JMX</a>.</li>
	<li>Updated documentation of each <a href="/confluence/display/CAMEL/EIP" title="EIP">EIP</a> to include a table with the options they support.</li>
	<li>Improved the <a href="/confluence/display/CAMEL/AWS-SQS" title="AWS-SQS">AWS&#45;SQS</a>, <a href="/confluence/display/CAMEL/AWS-SNS" title="AWS-SNS">AWS&#45;SNS</a> and <a href="/confluence/display/CAMEL/AWS-S3" title="AWS-S3">AWS&#45;S3</a> components to be able to configure the region with which the Amazon client wants to work with.</li>
	<li>Improved the <a href="/confluence/display/CAMEL/AWS-S3" title="AWS-S3">AWS&#45;S3</a> component to be able to set the content length and content type of streamed objects.</li>
	<li>The <tt>testConnectionOnStartup</tt> option on <a href="/confluence/display/CAMEL/JMS" title="JMS">JMS</a> now also checks JMS producers as well.</li>
	<li>Upgraded <a href="/confluence/display/CAMEL/Cometd" title="Cometd">Cometd</a> from 1.0.1 to 2.1.0</li>
	<li><a href="/confluence/display/CAMEL/Message+Filter" title="Message Filter">Message Filter</a> EIP now fail on startup if it was mis-configured in XML DSL</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/Content+Based+Router" title="Content Based Router">Content Based Router</a> in <a href="/confluence/display/CAMEL/Scala+DSL" title="Scala DSL">Scala DSL</a> not evaluating as <a href="/confluence/display/CAMEL/Predicate" title="Predicate">Predicate</a>s.</li>
	<li>Improved the <a href="/confluence/display/CAMEL/JDBC" title="JDBC">JDBC</a> component to not leave the database in an inconsistent state if one of multiple updates fails.</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/JMS" title="JMS">JMS</a> consumer may report a class cast exception at WARN level during processing a message.</li>
	<li>Removed not needed type conversion attempts by <tt>camel-jaxb</tt>, when routing messages to <a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a>s, for JAXB annotated payloads</li>
	<li>Optimized routing with <a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a> slightly</li>
	<li>Fixed an issue when restarting routes with scheduled polling consumers having <tt>consumer.xxx</tt> properties configured. The <tt>consumer.xxx</tt> properties would be lost on restart.</li>
	<li>Added fallback to <a href="/confluence/display/CAMEL/File2" title="File2">File</a> component, to do a copy/delete if a native file rename fails. This may happen if you rename files between different file systems such as linux -&gt; shared windows directory.</li>
	<li>Minor improvements to <a href="/confluence/display/CAMEL/Scala+DSL" title="Scala DSL">Scala DSL</a></li>
	<li><a href="/confluence/display/CAMEL/Aggregator2" title="Aggregator2">Aggregator</a> EIP will now by default uses eager completion check when grouped exchange has been enabled.</li>
	<li>Internal Camel caches now uses a <a href="http://download.oracle.com/javase/6/docs/api/java/lang/ref/SoftReference.html" class="external-link" rel="nofollow">SoftReference</a> which allows the JVM to be able to garbage collection from the cache in case its running out of memory. This should help Camel end users when running in low memory systems.</li>
	<li>Added 2 new <a href="/confluence/display/CAMEL/Camel+Maven+Archetypes" title="Camel Maven Archetypes">Camel Maven Archetypes</a> for OSGi using spring-dm or blueprint</li>
	<li>The <a href="/confluence/display/CAMEL/Log" title="Log">Log</a> component will now by default <b>not</b> show stream message bodies. Use the new <tt>showStreams</tt> option to enable that explicit.</li>
	<li>Improved startup time of Camel by hard loading type converters from <tt>camel-core</tt> JAR</li>
	<li>Made unit testing the Camel <a href="/confluence/display/CAMEL/Source" title="Source">Source</a> go faster</li>
	<li>The Camel <a href="/confluence/display/CAMEL/Testing" title="Testing">test kit</a> will now by default lazy load type converters which makes unit testing faster for most tests.</li>
	<li>Added new features to <a href="/confluence/display/CAMEL/AdviceWith" title="AdviceWith">AdviceWith</a> to support <tt>weaveByType</tt>, selectors, and a shorthand to easily add nodes to start/end of routes.</li>
	<li><a href="/confluence/display/CAMEL/Camel+Test" title="Camel Test">Camel Test</a> support setting up <a href="/confluence/display/CAMEL/CamelContext" title="CamelContext">CamelContext</a> once per test class, instead of every test method. This can speedup testing when having multiple test methods in the same unit test class.</li>
	<li>Fixed an issue with <a href="/confluence/display/CAMEL/FTP2" title="FTP2">FTP</a> producer not trying to re-connect if pre write check fails. By re-connecting the producer can recover and process the message without failing.</li>
	<li><a href="/confluence/display/CAMEL/Camel+JMX" title="Camel JMX">Camel JMX</a> can now show the routes as XML on the CamelContext/Route mbeans. Likewise route(s) can be updated/added from XML as well.</li>
	<li><a href="/confluence/display/CAMEL/Camel+JMX" title="Camel JMX">Camel JMX</a> added operations to <tt>ManagedCamelContext</tt> to send messages which has headers as well.</li>
	<li><a href="/confluence/display/CAMEL/Camel+JMX" title="Camel JMX">Camel JMX</a> added operations to <tt>BrowsableEndpoint</tt> mbeans to show message in generic XML format.</li>
	<li>The JDBC and JPA based idempotent repositories now contains a createdAt property/column.</li>
	<li>Improved the <a href="/confluence/display/CAMEL/AWS-SQS" title="AWS-SQS">AWS&#45;SQS</a> component to change all queue attributes (VisibilityTimeout, MaximumMessageSize, MessageRetentionPeriod and Policy) at a later time if needed.</li>
	<li>Aligned the authentication and proxy parameter names so <a href="/confluence/display/CAMEL/HTTP4" title="HTTP4">HTTP4</a> uses same names as <a href="/confluence/display/CAMEL/HTTP" title="HTTP">HTTP</a> component.</li>
	<li>Removed some very seldom used expression builders in Java DSL that caused a minor problem with being able to render the routes as XML. By removing those we ensure the routes creating using Java DSL can accurately render itself as XML DSL routes.</li>
	<li>Added <a href="/confluence/display/CAMEL/Hazelcast+Component" title="Hazelcast Component">Hazelcast</a> as supported store for the <a href="/confluence/display/CAMEL/Idempotent+Consumer" title="Idempotent Consumer">Idempotent Consumer</a> EIP</li>
	<li><a href="/confluence/display/CAMEL/Tracer" title="Tracer">Tracer</a> uses same logic as <a href="/confluence/display/CAMEL/Log" title="Log">Log</a> component for extracting message body. By default they will not log/trace message bodies from stream/files. But instead indicate its a stream/file message body. You can control this behavior by setting a property on the <a href="/confluence/display/CAMEL/CamelContext" title="CamelContext">CamelContext</a>.</li>
	<li>Added monitor type consumer to <a href="/confluence/display/CAMEL/JMX" title="JMX">JMX</a> consumer. This new style of consumer automatically creates and deploys a monitor bean (counter, gauge, or string) to monitor the specified attribute of an existing bean. This is useful for cases where a route wants to monitor a bean without relying on an pre-existing deployment and configuration of a monitor.</li>
	<li>Added <a href="/confluence/display/CAMEL/Ref+Language" title="Ref Language">Ref Language</a> to make it easy to refer and use custom <a href="/confluence/display/CAMEL/Expression" title="Expression">Expression</a> in XML DSLs.</li>
	<li>You can provide additional arguments to <a href="/confluence/display/CAMEL/Scripting+Languages" title="Scripting Languages">Scripting Languages</a> as a header on the Camel Message.</li>
	<li>Added support for setting custom properties in the endpoint uri for <a href="/confluence/display/CAMEL/CXF" title="CXF">CXF</a> by using <tt>properties.</tt> as prefix, eg <tt>properties.mtom-enabled=true</tt> to enable MTOM. This is usable if you configure and use <a href="/confluence/display/CAMEL/CXF" title="CXF">CXF</a> from Java DSL. The XML DSL has a specialized CXF schema to configure this using XML tags.</li>
	<li>Added option <tt>disableTimeToLive</tt> on <a href="/confluence/display/CAMEL/JMS" title="JMS">JMS</a> to force disabling time to live value. Added more details in <a href="/confluence/display/CAMEL/JMS" title="JMS">JMS</a> documentation about the need for synchronizing clocks for <a href="/confluence/display/CAMEL/JMS" title="JMS">JMS</a> systems when doing request/reply, and why the option <tt>disableTimeToLive</tt> may come handy.</li>
	<li><a href="/confluence/display/CAMEL/Spring+Web+Services" title="Spring Web Services">Spring Web Services</a> producer now propagates headers correctly.</li>
	<li>Components loading resources such as <a href="/confluence/display/CAMEL/Velocity" title="Velocity">Velocity</a>, <a href="/confluence/display/CAMEL/XSLT" title="XSLT">XSLT</a>, <a href="/confluence/display/CAMEL/XQuery" title="XQuery">XQuery</a>, <a href="/confluence/display/CAMEL/FreeMarker" title="FreeMarker">FreeMarker</a> etc. now leverages Camels <a href="/confluence/display/CAMEL/Pluggable+Class+Resolvers" title="Pluggable Class Resolvers">Pluggable Class Resolvers</a> which ensures they now work in <a href="/confluence/display/CAMEL/Using+OSGi+blueprint+with+Camel" title="Using OSGi blueprint with Camel">OSGi Blueprint</a>.</li>
	<li><tt>DefaultPackageScanClassResolver</tt> uses a JAR cache to speedup scanning JARs. This ensures Camel bootup faster, in case it re-scan JARs from the cache.</li>
	<li>Exposed Restlet API in <a href="/confluence/display/CAMEL/Restlet" title="Restlet">Restlet</a> to allow end users to be in full control. For example using the <tt>org.restlet.Response</tt> instance to populate the response from a <a href="/confluence/display/CAMEL/Restlet" title="Restlet">Restlet</a> route.</li>
	<li>Splited camel transport for cxf out of camel-cxf module. If you want to use camel transport for cxf or the cxfbean component, you need to add the dependency of camel-cxf-transport.</li>
	<li><a href="/confluence/display/CAMEL/Aggregator2" title="Aggregator2">Aggregate</a> EIP will restore timeout values from existing exchanges from aggregation repository upon start. This ensures that restarting Camel, will allow the aggregator trigger timeouts for those existing exchanges.</li>
	<li><a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a> component: <a href="/confluence/display/CAMEL/Parameter+Binding+Annotations" title="Parameter Binding Annotations">Parameter Binding Annotations</a> are now also inherited from superclasses and interfaces.</li>
	<li>Fixed routes using a <a href="/confluence/display/CAMEL/Content+Based+Router" title="Content Based Router">Content Based Router</a> not having its child nodes enlisted in <a href="/confluence/display/CAMEL/Camel+JMX" title="Camel JMX">JMX</a> for management.</li>
	<li>Fixed parent/child relationship in <a href="/confluence/display/CAMEL/Content+Based+Router" title="Content Based Router">Content Based Router</a> to be more fine grained.</li>
	<li>Fixed issue related to non optional camel-core dependency on javax.script in OSGi.</li>
	<li>Added option <tt>shareUnitOfWork</tt> to <a href="/confluence/display/CAMEL/Splitter" title="Splitter">Splitter</a>, <a href="/confluence/display/CAMEL/Multicast" title="Multicast">Multicast</a>, and <a href="/confluence/display/CAMEL/Recipient+List" title="Recipient List">Recipient List</a> to make the entire operation appear as one unit of work, that either succeed or failure. This underpins some use cases, especially with the <a href="/confluence/display/CAMEL/Splitter" title="Splitter">Splitter</a> and using a <a href="/confluence/display/CAMEL/Dead+Letter+Channel" title="Dead Letter Channel">Dead Letter Channel</a> to only store one failed <a href="/confluence/display/CAMEL/Exchange" title="Exchange">Exchange</a> (one unit of work).</li>
	<li>Exceptions thrown while handling other exceptions in <a href="/confluence/display/CAMEL/Exception+Clause" title="Exception Clause">OnException</a> will now caught by a fallback error handler logging to 2nd exception and propagating the 2nd exception on the <a href="/confluence/display/CAMEL/Exchange" title="Exchange">Exchange</a> and causing that <a href="/confluence/display/CAMEL/Exchange" title="Exchange">Exchange</a> to break out processing and fail immediately. This avoids complications, what to do if a exceptions occur while handling a previous exception. For example you could end up going in circles. Now its predictable (Log the 2nd and fail).</li>
	<li><a href="/confluence/display/CAMEL/Exception+Clause" title="Exception Clause">OnException</a> will fail on startup if it has been misconfigured (eg its empty, such as <tt>onException(Exception.class);</tt>). You must either add redelivery settings, handled, continued, retryWhile, outputs, etc. to configure it</li>
	<li>Fixed issue when sending <a href="/confluence/display/CAMEL/Mail" title="Mail">Mail</a> as Camel could mistakenly drop characters from <tt>Content-Type</tt> header. Improved how <tt>charset</tt> is parsed and configured in the <tt>Content-Type</tt> header.</li>
	<li>The <tt>ScheduledPollingConsumer</tt> now rigorously catches all erros in the scheduled thread to avoid the thread from terminating by the JDK scheduled thread pool, causing the scheduled polling to stop. Added option <tt>runLoggingLevel</tt> to configure logging level for logging start/complete logs when the polling task runs.</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a> endpoint propagating <tt>CamelBeanMethodName</tt> header. This header was only intended for the first <a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a> endpoint, and not any subsequent <a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a> endpoints.</li>
	<li><a href="/confluence/display/CAMEL/Spring+Web+Services" title="Spring Web Services">Spring Web Services</a> consumer now propagates exceptions back to Spring-WS. This allows for exception handling by Spring-WS EndpointExceptionResolver's</li>
	<li>Optimized Camel's routing engine by moving the need for defensive copy of <a href="/confluence/display/CAMEL/Exchange" title="Exchange">Exchange</a> during routing, to the <a href="/confluence/display/CAMEL/Error+Handler" title="Error Handler">Error Handler</a>s instead (which is capable of performing redelivery). Optimized to only perform defensive copy if redelivery has been enabled.</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/Error+Handler" title="Error Handler">Error Handler</a> doing redelivery, the passed in <a href="/confluence/display/CAMEL/Exchange" title="Exchange">Exchange</a> could have left over state from the previous attempt.</li>
	<li><a href="/confluence/display/CAMEL/SEDA" title="SEDA">SEDA</a> now supports suspend/resume <a href="/confluence/display/CAMEL/Lifecycle" title="Lifecycle">Lifecycle</a>, which for example is a more gentle way for temporary pausing <a href="/confluence/display/CAMEL/SEDA" title="SEDA">SEDA</a> routes.</li>
	<li>Fixed issue with <a href="/confluence/display/CAMEL/RoutePolicy" title="RoutePolicy">ThrottlingInflightRoutePolicy</a> in context scope may not trigger to resume routes, when <a href="/confluence/display/CAMEL/Exchange" title="Exchange">Exchange</a>s started from other independent routes, were completed.</li>
	<li>Added <tt>ManagementObjectStrategy</tt> as SPI to make it easier to reuse all the various MBeans created by Camel, or to plugin a custom strategy if needed.</li>
	<li>Improved <a href="/confluence/display/CAMEL/SMPP" title="SMPP">SMPP</a> to be able to return error codes to the SMSC in case of failures by processing the incoming message. This is useful e.g. to instruct the SMSC to redeliver the short message.</li>
	<li>Camel <a href="/confluence/display/CAMEL/Mail" title="Mail">Mail</a> component now supports marking mails as SEEN/DELETED after processing when using the pop3 protocol.</li>
	<li>Fixed issue using <a href="/confluence/display/CAMEL/Content+Enricher" title="Content Enricher">Content Enricher</a> or <a href="/confluence/display/CAMEL/Polling+Consumer" title="Polling Consumer">Polling Consumer</a> with <a href="/confluence/display/CAMEL/Batch+Consumer" title="Batch Consumer">Batch Consumer</a> could cause the consumer to keep polling after usage. For example a <a href="/confluence/display/CAMEL/FTP2" title="FTP2">FTP</a> consumer would keep polling the FTP server.</li>
	<li><a href="/confluence/display/CAMEL/Content+Enricher" title="Content Enricher">Content Enricher</a> using <tt>pollEnrich</tt> will now set an empty message body if the <a href="/confluence/display/CAMEL/Content+Enricher" title="Content Enricher">Content Enricher</a> could not poll from the resource. Previously the old message body would be preserved.</li>
	<li>Add fragment property on the <a href="/confluence/display/CAMEL/JAXB" title="JAXB">Camel JAXB</a> dataformat.</li>
	<li>In addition of <a href="http://karaf.apache.org" class="external-link" rel="nofollow">Apache Karaf</a> features descriptor, Camel now provides a Karaf shell commands to manipulate CamelContext, routes, etc.</li>
	<li><a href="/confluence/display/CAMEL/Mock" title="Mock">Mock</a> endpoint now accepts multiple expected headers/properties using the <tt>expectedHeaderReceived</tt> / <tt>expectedPropertyReceived</tt> methods.</li>
	<li>Added the <tt>changed</tt> read lock option to the <a href="/confluence/display/CAMEL/FTP2" title="FTP2">FTP</a> component.</li>
</ul>


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

<ul>
	<li><a href="/confluence/display/CAMEL/AHC" title="AHC">AHC</a> - An asynchronous http client</li>
	<li><a href="/confluence/display/CAMEL/APNS" title="APNS">APNS</a> - To send notifications to Apple iOS devices</li>
	<li><a href="/confluence/display/CAMEL/AWS-SNS" title="AWS-SNS">AWS&#45;SNS</a> - Simple Notification Service for Amazon AWS Cloud</li>
	<li><a href="/confluence/display/CAMEL/AWS-S3" title="AWS-S3">AWS&#45;S3</a> - Simple Storage Service for Amazon AWS Cloud</li>
	<li><a href="/confluence/display/CAMEL/HDFS" title="HDFS">HDFS</a> - Hadoop File System</li>
	<li><a href="/confluence/display/CAMEL/Camel+Test" title="Camel Test">TestNG</a> - Unit testing with TestNG</li>
</ul>


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

<ul>
	<li><a href="/confluence/display/CAMEL/Wire+Tap" title="Wire Tap">Wire Tap</a> has now fluent builders in Java DSL to make it easier to configure.</li>
	<li><a href="/confluence/display/CAMEL/Wire+Tap" title="Wire Tap">Wire Tap</a> can now set headers directly in the DSL when using the send new message mode.</li>
	<li>Added <tt>skipDuplicate</tt> option to <a href="/confluence/display/CAMEL/Idempotent+Consumer" title="Idempotent Consumer">Idempotent Consumer</a> EIP to allow end users to handle duplicate messages more easily in Camel routes.</li>
	<li><a href="/confluence/display/CAMEL/Throttler" title="Throttler">Throttler</a> now uses an <a href="/confluence/display/CAMEL/Expression" title="Expression">Expression</a> to set the maximum requests per period, allow that to be dynamic evaluated at runtime. This means you need to migrate if you use XML DSL.</li>
	<li>Added <tt>copy</tt> option to <a href="/confluence/display/CAMEL/Loop" title="Loop">Loop</a> EIP so you can run in copy mode, which mean each iteration is reset and use a copy of the same input exchange.</li>
	<li><tt>endDoTry</tt> added to Java DSL</li>
	<li>Added option <tt>shareUnitOfWork</tt> to <a href="/confluence/display/CAMEL/Splitter" title="Splitter">Splitter</a>, <a href="/confluence/display/CAMEL/Multicast" title="Multicast">Multicast</a>, and <a href="/confluence/display/CAMEL/Recipient+List" title="Recipient List">Recipient List</a> to make the entire operation appear as one unit of work, that either succeed or failure. This underpins some use cases, especially with the <a href="/confluence/display/CAMEL/Splitter" title="Splitter">Splitter</a> and using a <a href="/confluence/display/CAMEL/Dead+Letter+Channel" title="Dead Letter Channel">Dead Letter Channel</a> to only store one failed <a href="/confluence/display/CAMEL/Exchange" title="Exchange">Exchange</a> (one unit of work).</li>
	<li>&lt;bean&gt;, &lt;marshal&gt;, and &lt;unmarshal&gt; tags in XML DSL no longer accepts children (outputs).</li>
</ul>


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

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

<h3><a name="Camel2.8.0Release-NewLanguages"></a>New <a href="/confluence/display/CAMEL/Languages" title="Languages">Languages</a></h3>
<ul>
	<li><a href="/confluence/display/CAMEL/Ref+Language" title="Ref Language">Ref Language</a></li>
</ul>


<h3><a name="Camel2.8.0Release-NewExamples"></a>New <a href="/confluence/display/CAMEL/Examples" title="Examples">Examples</a></h3>
<ul>
	<li><a href="/confluence/display/CAMEL/CXF+Example+OSGi" title="CXF Example OSGi">CXF Example OSGi</a> using Spring-DM</li>
	<li><a href="/confluence/display/CAMEL/CXF+Example+OSGi+Blueprint" title="CXF Example OSGi Blueprint">CXF Example OSGi Blueprint</a> using Blueprint</li>
</ul>


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

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

<ul>
	<li>Added <tt>purge</tt> method to <tt>ServicePool</tt></li>
	<li>If you use <a href="/confluence/display/CAMEL/Wire+Tap" title="Wire Tap">Wire Tap</a> from within a <a href="/confluence/display/CAMEL/Content+Based+Router" title="Content Based Router">Content Based Router</a> in Java DSL, then you need to use <tt>end()</tt> to indicate the end of the <a href="/confluence/display/CAMEL/Wire+Tap" title="Wire Tap">Wire Tap</a>. See this <a href="https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/CBRWithWireTapTest.java" class="external-link" rel="nofollow">test</a></li>
	<li><tt>WireTapDefinition</tt> no longer extends from <tt>SendDefinition</tt></li>
	<li>Removed <tt>maximumRequestsPerPeriod</tt> attribute on <a href="/confluence/display/CAMEL/Throttler" title="Throttler">&lt;throttle&gt;</a> in XML DSL. You should use an <a href="/confluence/display/CAMEL/Expression" title="Expression">Expression</a> instead, such as <tt>&lt;constant&gt;10&lt;/constant&gt;</tt></li>
	<li><a href="/confluence/display/CAMEL/Cache" title="Cache">Cache</a> headers are now prefixed with 'CamelCache' (see CacheConstants) and are removed from the exchange after the cache operation is performed</li>
	<li><a href="/confluence/display/CAMEL/Scala+DSL" title="Scala DSL">Scala DSL</a> uses 'Camel case names' for its DSL to be consistent and aligned with the Java DSL</li>
	<li>The <tt>sendBody</tt> and <tt>requestBody</tt> methods on <tt>ManagedCamelContext</tt> have changed signature to use a <tt>java.lang.Object</tt> type in the 2nd parameter. Instead we have introduced <tt>sendStringBody</tt> and <tt>requestStringBody</tt> that has a <tt>java.lang.String</tt> type in the 2nd parameter. For example you can use those from JConsole.</li>
	<li>The JDBC and JPA based idempotent repositories now contains a createdAt property/column.</li>
	<li>The authentication and proxy parameter names have been renamed in the <a href="/confluence/display/CAMEL/HTTP4" title="HTTP4">HTTP4</a> component. See the <a href="/confluence/display/CAMEL/HTTP4" title="HTTP4">HTTP4</a> page for details.</li>
	<li>Removed seldom used methods on EIPs that uses an <tt>ExpressionClause</tt> to build up an expression. There are other existing methods that accept an <tt>Expression</tt> as parameter to be used instead:
	<ul>
		<li><tt>completionPredicate()</tt> on <tt>AggregationDefinition</tt></li>
		<li><tt>onWhen()</tt> on <tt>CatchDefinition</tt></li>
		<li><tt>expression()</tt> on <tt>IdempotentConsumerDefinition</tt></li>
		<li><tt>onWhen()</tt> on <tt>OnCompletionDefinition</tt></li>
		<li><tt>onWhen()</tt> on <tt>OnExceptionDefinition</tt></li>
		<li><tt>idempotentConsumer()</tt> on <tt>ProcessorDefinition</tt></li>
		<li><tt>expression()</tt> on <tt>SplitDefinition</tt></li>
		<li><tt>onWhen()</tt> on <tt>TryDefinition</tt></li>
		<li><tt>expression()</tt> on <tt>WhenDefinition</tt></li>
	</ul>
	</li>
	<li>Removed the deprecated <tt>handled</tt> methods on <a href="/confluence/display/CAMEL/Error+Handler" title="Error Handler">Error Handler</a>. If you used <tt>handled(false)</tt> on the <a href="/confluence/display/CAMEL/Error+Handler" title="Error Handler">Error Handler</a> you would have to migrate to using <a href="/confluence/display/CAMEL/Exception+Clause" title="Exception Clause">Exception Clause</a> instead that support <tt>handled</tt>.</li>
	<li><tt>GZIPHelper</tt> moved from <a href="/confluence/display/CAMEL/HTTP" title="HTTP">HTTP</a>/<a href="/confluence/display/CAMEL/HTTP4" title="HTTP4">HTTP4</a>/<a href="/confluence/display/CAMEL/ghttp" title="ghttp">ghttp</a> components to <tt>camel-core</tt></li>
	<li>Removed <tt>org.apache.camel.spi.ScriptEngineResolver</tt></li>
	<li><tt>org.apache.camel.component.cxf.CxfHeaderFilterStrategy</tt> moved from <tt>camel-cxf</tt> to <tt>camel-cxf-transport</tt> as <tt>org.apache.camel.component.cxf.common.header.CxfHeaderFilterStrategy</tt></li>
	<li>Added <tt>removeEventNotifier</tt> method to <tt>ManagementStrategy</tt></li>
	<li>Added getter/setter for <tt>ManagementObjectStrategy</tt> on <tt>ManagementStrategy</tt></li>
	<li>Moved the exception <tt>ProxyInstantiationException</tt> from the package <tt>org.apache.camel.impl</tt> to <tt>org.apache.camel</tt></li>
</ul>


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

<ul>
	<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>Not all <a href="/confluence/display/CAMEL/Examples" title="Examples">Examples</a> have ANT build.xml files to run the example using ANT.</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>
</ul>


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

<ul>
	<li>Upgraded to slf4j 1.6.1</li>
	<li>Upgraded to Apache CXF 2.4.0 (CXF 2.3.x or older is no longer supported)</li>
	<li>The <tt>testConnectionOnStartup</tt> option on <a href="/confluence/display/CAMEL/JMS" title="JMS">JMS</a> now also checks JMS producers as well.</li>
	<li>Fixed <tt>InterceptStrategy</tt> to pass in actual <tt>OutputDefinition</tt>. For example in a route with a <a href="/confluence/display/CAMEL/Splitter" title="Splitter">Splitter</a>, it would now pass in the children of the splitter, in the <tt>wrapProcessorInInterceptors</tt> method.</li>
	<li>The <a href="/confluence/display/CAMEL/Log" title="Log">Log</a> component will now by default <b>not</b> show stream message bodies. Use the new <tt>showStreams</tt> option to enable that explicit. Likewise the <a href="/confluence/display/CAMEL/Log" title="Log">Log</a> component will <b>not</b> automatic convert the payload to <tt>StreamCache</tt>. For that you need to explicit enable <a href="/confluence/display/CAMEL/Stream+caching" title="Stream caching">Stream caching</a> on the route or CamelContext.</li>
	<li>Removed the artifacts <tt>camel-spring-tests.jar</tt> and <tt>camel-blueprint-tests.jars</tt> from being released to <a href="http://repo2.maven.org/maven2/" class="external-link" rel="nofollow">Maven Central Repository</a>.</li>
	<li>Upgraded to use Commons Net 2.2 (was 2.0) in <a href="/confluence/display/CAMEL/FTP2" title="FTP2">FTP</a> component.</li>
	<li>Splited Camel transport for <a href="/confluence/display/CAMEL/CXF" title="CXF">CXF</a> out of <tt>camel-cxf</tt> module. If you want to use camel transport for <a href="/confluence/display/CAMEL/CXF" title="CXF">CXF</a> or the <tt>cxfbean</tt> component, you need to add the dependency of <tt>camel-cxf-transport</tt>.</li>
	<li>Upgraded <a href="/confluence/display/CAMEL/Spring+Web+Services" title="Spring Web Services">Spring Web Services</a> to release 2.0.2 from 1.x.</li>
	<li>Exceptions thrown while handling other exceptions in <a href="/confluence/display/CAMEL/Exception+Clause" title="Exception Clause">OnException</a> will now caught by a fallback error handler logging to 2nd exception and propagating the 2nd exception on the <a href="/confluence/display/CAMEL/Exchange" title="Exchange">Exchange</a> and causing that <a href="/confluence/display/CAMEL/Exchange" title="Exchange">Exchange</a> to break out processing and fail immediately. This avoids complications, what to do if a exceptions occur while handling a previous exception. For example you could end up going in circles. Now its predictable (Log the 2nd and fail).</li>
	<li>The default option <tt>useFixedDelay</tt> has been changed from <tt>false</tt> to <tt>true</tt> in the <a href="/confluence/display/CAMEL/File2" title="File2">File</a> and <a href="/confluence/display/CAMEL/FTP2" title="FTP2">FTP</a> consumers.</li>
	<li>The <tt>CamelBeanMethodName</tt> header on a Camel message will not be propagated routing through <a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a> components. The <a href="/confluence/display/CAMEL/Bean" title="Bean">Bean</a> component will remove the header after usage.</li>
	<li><a href="/confluence/display/CAMEL/Content+Enricher" title="Content Enricher">Content Enricher</a> using <tt>pollEnrich</tt> will now set an empty message body if the <a href="/confluence/display/CAMEL/Content+Enricher" title="Content Enricher">Content Enricher</a> could not poll from the resource. Previously the old message body would be preserved.</li>
</ul>


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

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

<div class='table-wrap'>
<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/camel/apache-camel/2.8.0/apache-camel-2.8.0.zip" class="external-link" rel="nofollow">apache-camel-2.8.0.zip</a> </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dist/camel/apache-camel/2.8.0/apache-camel-2.8.0.zip.asc" class="external-link" rel="nofollow">apache-camel-2.8.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/camel/apache-camel/2.8.0/apache-camel-2.8.0.tar.gz" class="external-link" rel="nofollow">apache-camel-2.8.0.tar.gz</a> </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dist/camel/apache-camel/2.8.0/apache-camel-2.8.0.tar.gz.asc" class="external-link" rel="nofollow">apache-camel-2.8.0.tar.gz.asc</a> </td>
</tr>
</tbody></table>
</div>

<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="http://www.mozilla.com/en-US/firefox/" class="external-link" rel="nofollow">FireFox</a></td></tr></table></div>

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

<div class='table-wrap'>
<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/camel/apache-camel/2.8.0/apache-camel-2.8.0-src.zip" class="external-link" rel="nofollow">apache-camel-2.8.0-src.zip</a> </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dist/camel/apache-camel/2.8.0/apache-camel-2.8.0-src.zip.asc" class="external-link" rel="nofollow">apache-camel-2.8.0-src.zip.asc</a> </td>
</tr>
</tbody></table>
</div>


<div class='table-wrap'>
<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/camel/apache-camel/2.8.0/apache-camel-2.8.0-src.tar.gz" class="external-link" rel="nofollow">apache-camel-2.8.0-src.tar.gz</a> </td>
<td class='confluenceTd'> <a href="http://www.apache.org/dist/camel/apache-camel/2.8.0/apache-camel-2.8.0-src.tar.gz.asc" class="external-link" rel="nofollow">apache-camel-2.8.0-src.tar.gz.asc</a> </td>
</tr>
</tbody></table>
</div>


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

<h3><a name="Camel2.8.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.8.0</span>
</pre>
</div></div>

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

<p>For a more detailed view of new features and bug fixes, see the:</p>
<ul>
	<li><a href="http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311211&amp;styleName=Html" class="external-link" rel="nofollow">release notes for 2.8.0</a></li>
</ul>

    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action" class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.8.0+Release">View Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=26116230&revisedVersion=136&originalVersion=135">View Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.8.0+Release?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message