You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 45 Next »

Camel 2.1.0 release (Work in Progress)

Unknown macro: {div}

Unknown macro: {div}

New and Noteworthy

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

  • Pluggable API for Management allowing 3rd party to manage Camel.
    • Use org.apache.camel.spi.ManagementStrategy to plugin 3rd party adapter
    • Fine grained events notifications is now being emitted using org.apache.camel.spi.EventNotifier
    • Events being fired can be created using a pluggable factory using org.apache.camel.spi.EventFactory
    • Camel now supports using multiple org.apache.camel.spi.LifecycleStrategy strategies, that also allows 3rd party to more easily integrate into Camel.
  • Overhaul of default JMX management in Camel to be much improved with more attributes, mbeans, operations, statistics, and route timing working as well.
    • And yes you can now start/stop routes and individual consumers and producers
    • And some special processors such as Delayer and Throttler can be managed to change their delay/throttle values
    • You can dynamic manage tracing even for already running applications
    • Error handling in Camel is now also manageable so you for example can change the redelivery policies.
    • JMS consumers being restarted will pickup any configuration changes on JMS endpoints such as changing concurrentConsumers. And yes its fully managed using JMX.
    • Number of inflight exchanges per consumer, route and totally per camel context.
    • And much more...
  • Improved IRC, XMPP, MINA, FreeMarker and Velocity components with much thanks to the Camel community
  • Splitter and Multicast EIP patterns now support the option stopOnException to stop continue processing at first exception occurred. See their documentation for more details.
  • Error handlers is restricted to be configured on camel context and/or routes only.
  • Camel is now more robust and fault tolerant when shutting down.
  • Fixed a race condition when shutting down Camel with JMS consumers that under some circumstances caused it to appear to hang
  • Added pluggable org.apache.camel.spi.InflightRepository with a basic implementation that can help with graceful shutdown as you can now see how many exchanges are currently in progress.
  • JmsEndpoint is now singleton
  • Individual routes can be pre configured to not auto startup when Camel starts: autoStartup=false in XML DSL and noAutoStartup() in Java DSL.
  • Camel is more robust on startup as route inputs are deferred to be started at the very end, ensuring all routes services have been pre started and thus ready when consumers is started.
  • Improved unit test coverage, now having more than 4000 unit tests in total.
  • Fixed ConsumerTemplate not working when it was dependency injected with @EndpointInjected in a Bean.
  • Using IBM special JMS headers now work when sending messages to IBM WebSphere MQ. IBM special headers uses this prefix: JMS_IBM_.
  • The ordering of which routes should be started can now be configured by the startupOrder attribute which defines a number. Lowest number is started first.
  • And autoStartup is also supported on CamelContext itself where it replaces the shouldStartContext option, which have been removed.
  • The File component handles renaming and deleting files on Windows better as Windows could block files. Also Antivirus software could causes files to be blocked.
  • Fixed issues using tempPrefix option with the File in case of clashes with existing files. The same goes for the localWorkDirectory option on the FTP component which could have a similar issue.
  • Optimized XPath to allow thread safe concurrency which greatly reduces contention.
  • Camel works better with Google App Engine
  • The Bean component is better at choosing the best method. If given a method name it will only pick among methods with such a name.
  • The Bean component is now also more strict as it must be able to convert to all the parameter types. Was to lenient before by passing in null instead, when conversion was not successful.
  • Fixed an issue with setting global error handling in Spring XML not always working
  • Camel adds properties to Exchange when sending to endpoints. This is useable with Dead Letter Channel where we can use this to know which Endpoint failed.
  • Improved file operations on Windows platform to retry in case of issues.
  • Fixed issue with replyTo option on JMS consumers which wasn't working.
  • Fixed issue with using <camel:proxy> not working
  • Improved <camel:proxy> so its easier to work with out of the box. It leverages Camels type converter mechanism to adapt to the interface. Also proxied methods with a single parameter turns that parameter value into the message body.
  • Added document for using Camel proxy.
  • Improved enrich and pollEnrich with reference lookup of endpoints and aggregation strategy.
  • Added markRollbackOnly attribute on <rollback> to only mark the Exchange for rollback. This allows you to set a custom reply message. Previously a RollbackExchangeException was always set which causes Camel to thrown an exception to the client. This also works with transacted routes as well.
  • Camel now logs on shutdown whether there was in flight exchanges or not. All together we are getting closer to having graceful shutdown supported in Camel.

New Enterprise Integration Patterns

New Components

New DSL

New Annotations

New Data Formats

New Languages

New Examples

API breaking

DSL changes

In the Java DSL the .errorHandler is now restricted to be configured on camel context and/or routes only. That means for configuring on routes you have to set it directly after the .from DSL.

In Spring DSL the errorHandlerRef attribute is now only visible on the <camelContext> and <route> XML tags.

New .jar dependencies

camel-core now depends on commons-management.jar to facilitate the new overhauled management.
This project is hosted at FuseForge

This .jar can be retrieved from the maven central repo at: http://repo1.maven.org/maven2/org/fusesource/commonman/commons-management/1.0/
The maven dependency details are:

 <groupId>org.fusesource.commonman</groupId>
 <artifactId>commons-management</artifactId>
 <version>1.0</version>

Core API

CamelContext

CamelContext have renamed the method getLifecycleStrategy to getLifecycleStrategies and now returns a List.

Exchange

The exchange id has been changed to use the java.util.UUID instead. This allows Camel to run on Google App Engine.

Management

The API in org.apache.camel.spi.ManagementNamingStrategy had its methods renaming and method signature adjusted to accommodate the big theme for Camel which was overhaul of management (JMX).

Client API

Removed classes

  • org.apache.camel.processor.CompositeProcessor was never used
  • org.apache.camel.impl.ProducerTemplateProcessor was never used
  • org.apache.camel.impl.NoPolicy was never used
  • org.apache.camel.spring.handler.LazyLoadingBeanDefinitionParser was never used
  • org.apache.camel.spring.handler.ScriptDefinitionParser was never used
  • org.apache.camel.spring.remoting.SendBeforeInterceptor was never used
  • org.apache.camel.spring.spi.SpringConverters was never used

Removed methods

  • getSingletonEndpoints method have been removed from various classes in the camel-test component.

Removed in Spring XML

The option shouldStartContext on <camelContext> have been removed. Its replaced with autoStartup which you can read more about here Configuring route startup ordering and autostartup.

Known Issues

See known issues from previous releases.

Important changes to consider when upgrading

Getting the Distributions

Binary Distributions

Description

Download Link

PGP Signature file of download

Windows Distribution

apache-camel-2.1.0.zip

apache-camel-2.1.0.zip.asc

Unix/Linux/Cygwin Distribution

apache-camel-2.1.0.tar.gz

apache-camel-2.1.0.tar.gz.asc

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

Source Distributions

Description

Download Link

PGP Signature file of download

Source for Windows

apache-camel-2.1.0-src.zip

apache-camel-2.1.0-src.zip.asc

Source for Unix/Linux/Cygwin

apache-camel-2.1.0-src.tar.gz

apache-camel-2.1.0-src.tar.gz.asc

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 is:

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-core</artifactId>
  <version>2.1.0</version>
</dependency>

SVN Tag Checkout

svn co http://svn.apache.org/repos/asf/camel/tags/camel-2.1.0

Changelog

For a more detailed view of new features and bug fixes, see the:
TODO: Fix for 2.1.0

  • No labels