Welcome to the 2.2.0 release which approx 180 issues resolved (new features, improvements and bug fixes such as...)
parallelProcessing
, stopOnException
and references for AggregationStrategy
and thread pools. This applies to the @RecipientList
annotation as well.null
was returned.multipleConsumers
which allows you to use it for pub-sub messaging where each consumer concurrently will receive a copy of the Exchange. This is done with the help from Multicast EIP.ERROR
level in case an Exception was thrown which could not be redelivered either. This aid to see that an Exception occurred instead of relying on the client logging it. You can customize this behavior on the Error Handler.groupedExchange
not working properly on Aggregator.log
in the DSL for dynamic human readable log messages.<onException>
, <onCompletion/>
when using in combination with <transacted/>
.<proxy>
, <export>
, <endpoint>
, <template>
, <consumerTemplate>
can be defined outside of <camelContext>
.EventNotifier
improved to allow ignoring events based on categories. Easier configuration to only notify those events you care about.PublishEventNotifier
to send the events to any kind of Camel Endpoint.useJDBC4ColumnNameAndLabelSemantics
to let you choose semantics to use in case you have issue with your JDBC driver when using SQL SELECT with aliases.Serializable
out of the box and not forcing to be converted into a byte stream as it otherwise would.ManagementStrategy
now supports using multiple EventNotifier
instead of just one.Exchange.FILE_LAST_MODIFIED
.bean
or method
to invoke a Bean now supports using an existing bean instance. This is convenient for testing where you can quickly use an instance you have prepared in the unit test.logRetryStackTrace
option to set whether or not stacktraces are logged for failed redelivery attempts. Most people dont like the logs spammed if you retry 5 times etc.null
as a valid response.NoSuchMethodException
etc. will now be handle by Camel and logged etc.FTPS
(FTP over SSL/TLS)markRollbackOnlyLast
log
The methods DefaultComponent.resolveAndRemoveReferenceParameter
and DefaultComponent.resolveAndRemoveReferenceParameterList
have been changed to make the leading #
sign for bean references optional and to throw an IllegalArgumentException
if a referenced bean is not in the registry. For details see CAMEL-2248.
The property Exchange.FILTETED
have been removed as part of CAMEL-2288.
Added two new methods for getProperty
to accept a defaultValue
as parameter to be used when the property does not exists.
Added two new methods for getHeader
to accept a defaultValue
as parameter to be used when the header does not exists.
The class org.apache.camel.spi.ExceptionHandler
now have two additional methods which accepts more details when an Exception occurred such as a message and the current Exchange.
The name
attribute in @EndpointInject has been renamed to ref
to be consistent with the other annotations. Its a reference for an Endpoint to be looked up in the Registry.
The BatchConsumer
have a new method isBatchAllowed
which should be used during processing the batch, to break out the batch loop in case its not allowed anymore. Also BatchConsumer
should consider implement ShutdownAware
to support fine grained control during shutdown. See for example the GenericFileConsumer
for details.
The GenericFileProcessStrategy
has a new method prepareOnStartup
which is used to prepare the File component on startup, such as deleting orphaned lock files. The same applies for the GenericFileExclusiveReadLockStrategy
interface in case you have developed a custom lock strategy.
The ManagementStrategy
now supports multiple EventNotifier
and thus have its setter/getter methods adjusted to a List<EventNotifier>
and there is a addEventNotifier
method as well to add a single EventNotifier
.
The EventNotifier
has new methods for filtering events based on categories. The DefaultEventNotifier
class has been renamed to LoggingEventNotifier
and a new EventNotifierSupport
class is added which is meant for custom implementations to extend.
The UnitOfWork
have adjusted its methods for setting RouteContext
from a setter to a push
and pop
style.
See known issues from previous releases.
When using the Recipient List together with MINA endpoints Camel will over time hold on to memory which could lead to OutOfMemoryErrors. See more at: CAMEL-2484
For Camel 2.2.0, the newly named features.xml
file can be found in http://repo2.maven.org/maven2/org/apache/camel/karaf/apache-camel/2.2.0/
You can use it in Karaf by doing a features:addUrl mvn:org.apache.camel.karaf/apache-camel/2.2.0/xml/features
We have an issue that installing camel-osgi and camel-spring in different order will cause the "http://camel.apache.org/schema/spring" namespace can't be handled rightly in OSGi environment. From Camel 2.2.0 we merged the camel-osgi and camel-spring bundles together, it's camel-spring-osgi.
In this way camel-osgi and camel-spring-osgi both have the BundleActivator which helps camel-core to load the component in OSGi container. If you install these two bundle at the same time will cause some conflict on the component finding.
You just need to install camel-core, camel-spring-osgi bundle to let the basic camel application work.
The pom.xml
file for camel-core have cut down number of spring jar dependencies to allow Camel to easily run without any Spring .jars at all. However this affects you if you use maven and use camel-core without camel-spring or spring at all. If you want to use JMX with Camel then you need to add the following 4 spring jars required: spring-core.jar, spring-beans.jar, spring-context.jar, spring-aop.jar
. With maven you only need to depend on spring-context
and spring-aop
as they will bring in the other two jars.
See also Camel JAR Dependencies and Camel JMX.
The filter
no long influence the split
and its AggregationStrategy
as it was just too confusing why it did that. See CAMEL-2288 for details.
The HTTP component used to read Proxy settings directly from system properties. You should instead configure proxy wide information as properties to the CamelContext
instead. See HTTP for details.
How correlationId is determined has been changed slightly. Now JMS will always use messageId if configured to do so using useMessageIDAsCorrelationID==true
. Otherwise JMSCorrelationID
is used but if that has not been set then Camel will fallback to use messageId
instead. See the method determineCorrelationId
in the class org.apache.camel.component.jms.EndpointMessageListener
for actual implementation. This change will most likely not affect most users.
Description | Download Link | PGP Signature file of download |
---|---|---|
Windows Distribution | ||
Unix/Linux/Cygwin Distribution |
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 |
Description | Download Link | PGP Signature file of download |
---|---|---|
Source for Windows |
Source for Unix/Linux/Cygwin |
To use this release in your maven project, the proper dependency configuration that you should use in your Maven POM is:
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> <version>2.2.0</version> </dependency> |
svn co http://svn.apache.org/repos/asf/camel/tags/camel-2.2.0 |
For a more detailed view of new features and bug fixes, see the: