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

Compare with Current View Page History

« Previous Version 36 Next »

Camel 1.5.0 release (work in progress)

Unknown macro: {div}

Unknown macro: {div}

New and Noteworthy

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

  • major improvements in FTP, [File] components
  • [File] consumers now default uses exclusive read locking when it consume files, meaning that they wont consume files that are in the progress of being written by third part. The FTP consumer has this support as well, however it is disabled by default as it requires write privileges.
  • [File] and FTP component supports expression to set dynamic filename patterns instead of using the FileComponent.HEADER_FILE_NAME header. See File Language for samples and use cases.
  • important changes in ProducerTemplate (see below)
  • various improvements in Flatpack and XMPP components
  • minor improvements in CXF, SpringIntegration, Mail and MINA components
  • splitter() now handles streaming avoiding reading entire content into memory (consuming very big 1gb files is now possible)
  • introduced new JT400, HL7, LDAP and Smooks components
  • introduced Delay Interceptor to slow down processing to show how things is happening nice and slow, so you are not bombarded with zillions of logging output.
  • Mail can now send html mails with the new contentType option
  • Camel Maven Archetypes now available in m2eclipse Maven project creation
  • Java WebStart support
  • refinements in loading resources using OSGi bundles, should now handle different OSGi platforms much better
  • Type Converter now supports Exchange as 2nd parameter to allow converters access to the Exchange and thus the CamelContext as well. To be used for setting encoding in the future.
  • New Loop api in DSL allows processing of a message a number of times, possibly in different ways.
  • Spring DSL improve
  • improved Tracer formatting and more options for configuration

New Enterprise Integration Patterns

New Components

New DSL

  • Loop
  • Scala (work in progress, not fully feature complete)

New Data Formats

New Languages

New Examples

API breakings

  • ProducerTemplate now throws RuntimeCamelException for sendBody/requestBody methods.
  • DefaultTypeConverter.convertTo() now throws a NoTypeConversionAvailableException (RuntimeException) when it cannot find a suitable conversion (see Type Converter).

Known Issues

  • None

Important changes to consider when upgrading

ProducerTemplate

The ProducerTemplate has refined its sendBody and requestBody methods to throw RuntimeCamelException, with the caused exception wrapper, in case the Exchange failed with an exception. Also if the exchange has set an FAULT message then the FAULT message is returned.

The old behavior in Camel 1.4 or older was just plain wrong!

JMX

Option usePlatformMBeanServer has changed its default value from false to true.

TypeConverter

An implementation of TypeConverter should now throw a NoTypeConversionAvailableException if conversion is not possible. The semantical ambiguity of null (both valid result and indication of no conversion) is now resolved, but this may impact existing code in that it should now catch the exception instead of checking for null.

setHeader element in Spring DSL changed

You can no longer use a 'value' attribute like this to set a header to a constant:

<route>
  <from uri="seda:a"/>
  <setHeader headerName="theHeader" value="the value">
    <expression/>        
  </setHeader>
  <to uri="mock:b"/>     
</route>

Now, you can use a Constant expression to do the same thing:

<route>
  <from uri="seda:a"/>
  <setHeader headerName="theHeader">
    <constant>the value</constant>        
  </setHeader>
  <to uri="mock:b"/>     
</route>

Notice that this constant expression is also possible in the Java DSL:

.setHeader("theHeader", constant("the value"))

Data format specification in Spring DSL changed

The way you specify data formats in the Spring DSL has changed. You could do this in Camel 1.4:

<camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
  <jaxb id="myJaxb" prettyPrint="true" contextPath="org.apache.camel.example"/>
  <xstream id="xs" prettyPrint="true"/>

  <route>
    <from uri="direct:start"/>
    <marshal ref="myJaxb"/>
    <to uri="direct:marshalled"/>
  </route>
  ...

Now, you specify the same as:

<camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
  <dataFormats>
    <jaxb id="myJaxb" prettyPrint="true" contextPath="org.apache.camel.example"/>
    <xstream id="xs" prettyPrint="true"/>
  </dataFormats>

  <route>
    <from uri="direct:start"/>
    <marshal ref="myJaxb"/>
    <to uri="direct:marshalled"/>
  </route>
  ...

CXF Producer

The result of CXF producer has changed to use MessageContentsList instead of Object array to hold the response.
If you use the exchange.getOut.getBody(YourType.class), CXFMessage will check the list members and chose the most right answer for you.

CXF Producer before Camel 1.5

     Object[] oldResult = (Object[])oldExchange.getOut().getBody();
     BankQuote oldQuote = (BankQuote) oldResult[0];

CXF Produer in Camel 1.5

     BankQuote oldQuote = oldExchange.getOut().getBody(BankQuote.class);

Now the CXF Producer(in Camel 1.5) will throw the exception after the CXF client gets the exception, in this way you can leverage the Camel errorHandler for handling the exception.
If you don't want camel redeliver the message when your producer got the common SOAP fault, you'd better to do some configuration on the errorHandler's for setting the redeliver number;

FTP component

The option consumer.recursive has changed the default value from true to false.

Now throws FtpOperationFailedException with the FTP error code and reason. For instance error code 530 is not authorized. This applies for both consumer and producer. The consumer will now also regard failing move or rename operations as a severe error throw a FtpOperationFailedException instead of WARN logging. As a consumer you will not receive an Exchange, as opposed to the situation in Camel 1.4.0. Bottom line: all the FTP operations should succeed before the consumer will process the Exchange.

File Consumer

The option consumer.recursive has changed the default value from true to false.

camel-mina

In Camel 1.5 the sync option has changed its default value from false to true, as we felt it was confusing for end-users when they used Mina to call remote servers and Camel wouldn't wait for the response. To remedy this you had to add the sync=true option before it worked, we want this to work out-of-the-box without having to specify this option.

camel-mail

In Camel 1.5 the following default options has changed in camel-mail:

  • deleteProcessedMessages is now false as we felt Camel should not delete mails on the mail server by default.
  • processOnlyUnseenMessages is now true as we felt Camel should only poll new mails by default.

removeOutHeader DSL method removed

Since any exchange coming into the removeOutHeader processor would have an IN message only, this method was useless and so was removed.

Getting the Distributions

Binary Distributions

Description

Download Link

PGP Signature file of download

Windows Distribution

apache-camel-1.5.0.zip

apache-camel-1.5.0.zip.asc

Unix/Linux/Cygwin Distribution

apache-camel-1.5.0.tar.gz

apache-camel-1.5.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-1.5.0-src.zip

apache-camel-1.5.0-src.zip.asc

Source for Unix/Linux/Cygwin

apache-camel-1.5.0-src.tar.gz

apache-camel-1.5.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>1.5.0</version>
</dependency>

SVN Tag Checkout

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

Changelog

For a more detailed view of new features and bug fixes, see the release notes

jiraissues: com.atlassian.confluence.extra.jira.exception.JiraIssueMacroException: com.atlassian.confluence.macro.MacroExecutionException: Data cannot be retrieved due to an unexpected error.
  • No labels