Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h1. Camel 2.8.0 release (currently in progress)

{div:style=padding-right:20px;float:left;margin-left:-20px;}
!http://camel.apache.org/download.data/camel-box-v1.0-150x200.png!
{div}
{div:style=min-height:200px}
{div}

h2. New and Noteworthy

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

* Fixed the OGNL support of [Simple] language to support dots in key for map access.
* You can now specify [type parameters|Bean Binding] in [Bean] to exact select method to be used when having overloaded methods (overloaded methods have same name, but vary in parameter types).
* The [SFTP|FTP] component now allows you to customize keep alive settings.
* Fixed issue if explict setting {{JmsMessage}} body to {{null}} would cause Camel to re-initialize the body from the underlying {{javax.jms.Message}} on access again.
* [Mock] endpoints is now lenient, which means its easier to replace components with [Mock] for testing purposes. Using uri parameters which the [Mock] endpoint wont no longer complain about being unknown parameters.
* Camel places a breadcrumb header in the Camel [Message] which allow us to keep track of messages across transports such as [JMS], [HTTP] and many others. See more details at [MDC logging].
* Improved [XPath] to allow GC to kick-in a bit earlier to free memory as Camel will clear references to used [Exchange]s used during [XPath] evaluations.
* Fixed an issue using [FTP] endpoints with the [interceptSendToEndpoint|Intercept]
* [Camel Proxy|Using CamelProxy] supports asynchronous invocations using {{Future}} handles.
* The [endpoint cache|How do I configure the maximum endpoint cache size for CamelContext] can be configured on [CamelContext].
* [Cometd] supports custom security policy and extensions as [documented here|http://cometd.org/documentation/howtos/authentication]
* Caches such as {{ProducerCache}} and {{EndpointRegistry}} can now be purged from [JMX|Camel JMX].
* Added stats for number of redeliveries and handled failures to JMX.
* Added support for [JBoss 6|camel-jboss].
* [JMS] consumer uses {{CACHE_AUTO}} for default cache level. This ensure that it will automatic detect if its transacted and use {{CACHE_NONE}} which must be used for transacted. And {{CACHE_CONSUMER}} for non transacted.
* Improved [Splitter] in parallel mode to be more responsive when aggregating on-the-fly under high load, and reducing number of threads in-use.
* Added {{onPrepare}} to [Multicast], [Splitter], [Recipient List], and [Wire Tap] 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.
* Added {{CamelSqlQuery}} header to [SQL Component] to specify (per exchange) SQL query. 
* {{[camel-cache|Cache]}} now works in OSGi.
* Fixed an issue with [HawtDB] file store growing to large.
* Added {{repeatCount}} option to [Timer] so you can limit the number of times it fires.
* Consuming from [JMS] will now uses default exchange ids, instead of overring and uses ids based on {{JMSMessageID}}. This makes exchange ids consistent with all components in Camel.
* The {{camel-script}} component now works in OSGi and being able to discover and use {{ScriptEngineFactory}} from bundles.
* [Restlet] producer now supports the [Asynchronous Routing Engine]
* [Throttler] now uses an [Expression] for the maximum messages per period, which means it can be adjusted dynamic at runtime.
* [Cache] now supports replicating cache across nodes using listeners.
* [Cache] headers are now prefixed with 'CamelCache' and use mixed case, also they are removed from the exchange after a cache operation is performed
* Fixed issue with [XMPP] being redeployed (hot-deploy) in Apache ServiceMix may fail.
* [CXF] uses case-insensitive keys for CXF protocol headers, which Apache CXF itself also uses.
* Fixed issue with stopping context scoped [Error Handler] if a route was stopped, for example using [JMX|Camel JMX].
* Updated documentation of each [EIP] to include a table with the options they support.
* Improved the [AWS-SQS], [AWS-SNS] and [AWS-S3] components to be able to configure the region with which the Amazon client wants to work with.
* The {{testConnectionOnStartup}} option on [JMS] now also checks JMS producers as well.
* Upgraded [CometD] from 1.0.1 to 2.1.0
* [Message Filter] EIP now fail on startup if it was mis-configured in XML DSL
* Fixed issue with [Content Based Router] in [Scala DSL] not evaluating as [Predicate]s.
* Improved the [JDBC] component to not leave the database in an inconsistent state if one of multiple updates fails.
* Fixed issue with [JMS] consumer may report a class cast exception at WARN level during processing a message.
* Removed not needed type conversion attempts by {{camel-jaxb}}, when routing messages to [Bean]s, for JAXB annotated payloads
* Optimized routing with [Bean] slightly
* Fixed an issue when restarting routes with scheduled polling consumers having {{consumer.xxx}} properties configured. The {{consumer.xxx}} properties would be lost on restart.
* Added fallback to [File|File2] 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 -> shared windows directory.
* Minor improvements to [Scala DSL]
* [Aggregator|Aggregator2] EIP will now by default uses eager completion check when grouped exchange has been enabled.
* Internal Camel caches now uses a [SoftReference|http://download.oracle.com/javase/6/docs/api/java/lang/ref/SoftReference.html] 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.
* Added 2 new [Camel Maven Archetypes] for OSGi using spring-dm or blueprint
* The [Log] component will now by default *not* show stream message bodies. Use the new {{showStreams}} option to enable that explicit.
* Improved startup time of Camel by hard loading type converters from {{camel-core}} JAR
* Made unit testing the Camel [Source] go faster
* The Camel [test kit|Testing] will now by default lazy load type converters which makes unit testing faster for most tests.
* Added new features to [AdviceWith] to support {{weaveByType}}, selectors, and a shorthand to easily add nodes to start/end of routes.

h3. New [Enterprise Integration Patterns]

h3. New [Components]

* [AWS-SNS]
* [AWS-S3]
* [TestNG|Camel Test]

h3. DSL Changes

* [Wire Tap] has now fluent builders in Java DSL to make it easier to configure.
* [Wire Tap] can now set headers directly in the DSL when using the send new message mode.
* Added {{skipDuplicate}} option to [Idempotent Consumer] EIP to allow end users to handle duplicate messages more easily in Camel routes.
* [Throttler] now uses an [Expression] 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.

h3. New Annotations

h3. New [Data Formats|Data Format]

h3. New [Languages]

h3. New [Examples]
* [CXF Example OSGi]

h3. New [Tutorials]

h2. API breaking

* Added {{purge}} method to {{ServicePool}}
* If you use [Wire Tap] from within a [Content Based Router] in Java DSL, then you need to use {{end()}} to indicate the end of the [Wire Tap]. See this [test|https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/CBRWithWireTapTest.java]
* {{WireTapDefinition}} no longer extends from {{SendDefinition}}
* Removed {{maximumRequestsPerPeriod}} attribute on [<throttle>|Throttler] in XML DSL. You should use an [Expression] instead, such as {{<constant>10</constant>}}
* [Cache] headers are now prefixed with 'CamelCache' (see CacheConstants) and are removed from the exchange after the cache operation is performed
* [Scala DSL] uses 'Camel case names' for its DSL to be consistent and aligned with the Java DSL

h2. Known Issues

* The [Tracer] may not output all details for some situations such as when using {{onCompletion}} or {{intercept}} etc.
* Not all [Examples] have ANT build.xml files to run the example using ANT.
* The project cannot fully build the site using Maven (eg running {{"mvn site"}}. There is no plan to make this work as the project do not use the maven site.
* The {{camel-spring-ws}} feature does not work in Apache ServiceMix or Apache Karaf.

h2. Important changes to consider when upgrading

* Upgraded to slf4j 1.6.1
* Upgraded to Apache CXF 2.4.0 (CXF 2.3.x or older is no longer supported)
* The {{testConnectionOnStartup}} option on [JMS] now also checks JMS producers as well.
* Fixed {{InterceptStrategy}} to pass in actual {{OutputDefinition}}. For example in a route with a [Splitter], it would now pass in the children of the splitter, in the {{wrapProcessorInInterceptors}} method.
* The [Log] component will now by default *not* show stream message bodies. Use the new {{showStreams}} option to enable that explicit. Likewise the [Log] component will *not* automatic convert the payload to {{StreamCache}}. For that you need to explicit enable [Stream Caching] on the route or CamelContext.
* Removed the artifacts {{camel-spring-tests.jar}} and {{camel-blueprint-tests.jars}} from being released to [Maven Central Repository|http://repo2.maven.org/maven2/].
* Upgraded to use Commons Net 2.2 (was 2.0) in [FTP|FTP2] component.

h2. Getting the Distributions

h3. Binary Distributions

|| Description || Download Link || PGP Signature file of download ||
| Windows Distribution | [apache-camel-2.8.0.zip|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.8.0/apache-camel-2.8.0.zip] | [apache-camel-2.8.0.zip.asc|http://www.apache.org/dist/camel/apache-camel/2.8.0/apache-camel-2.8.0.zip.asc] |
| Unix/Linux/Cygwin Distribution | [apache-camel-2.8.0.tar.gz|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.8.0/apache-camel-2.8.0.tar.gz] | [apache-camel-2.8.0.tar.gz.asc|http://www.apache.org/dist/camel/apache-camel/2.8.0/apache-camel-2.8.0.tar.gz.asc] |
{info:title=The above URLs use redirection}
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 [FireFox|http://www.mozilla.com/en-US/firefox/]

{info}

h3. Source Distributions

|| Description || Download Link || PGP Signature file of download ||
| Source for Windows | [apache-camel-2.8.0-src.zip|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.8.0/apache-camel-2.8.0-src.zip] | [apache-camel-2.8.0-src.zip.asc|http://www.apache.org/dist/camel/apache-camel/2.8.0/apache-camel-2.8.0-src.zip.asc] |

| Source for Unix/Linux/Cygwin | [apache-camel-2.8.0-src.tar.gz|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.8.0/apache-camel-2.8.0-src.tar.gz] | [apache-camel-2.8.0-src.tar.gz.asc|http://www.apache.org/dist/camel/apache-camel/2.8.0/apache-camel-2.8.0-src.tar.gz.asc] |

h3. Getting the Binaries using Maven 2

To use this release in your maven project, the proper dependency configuration that you should use in your [Maven POM|http://maven.apache.org/guides/introduction/introduction-to-the-pom.html] is:
{code:xml}
<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-core</artifactId>
  <version>2.8.0</version>
</dependency>
{code}

h3. SVN Tag Checkout

{code}
svn co http://svn.apache.org/repos/asf/camel/tags/camel-2.8.0
{code}

h2. Changelog

For a more detailed view of new features and bug fixes, see the:
* [release notes for 2.8.0|http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311211&styleName=Html]