Camel 2.11.0 release (currently in progress)
Unknown macro: {div}
Unknown macro: {div}
New and Noteworthy
Welcome to the 2.11.0 release with approximately XXX issues resolved - including new features, improvements, and bug fixes, such as:
- Added support for SOAP 1.2 in SOAP data format.
- Cache operation for add/update now supports expiry headers to control time to live/idle/eternal.
- Added
allowNullBody
option to JMS to configure whether sending messages with no body is allowed. - Added
connectOnStartup
option to HDFS to allow to connect on demand, to avoid having Hadoop block for long time connecting to the HDFS cluster, as it has a hardcoded 15 minute retry mechanism. - Added support for daily and weekly trends to Twitter component.
- The Camel Maven Archetypes now generates projects without any license headers.
- Added 'rejectOld' option to the Resequencer to prevent out of order messages from being delivered after capacity/timeout events occur
- Further optimized XPath under concurrent load, and as well ensured resources are cleaned up eagerly
- Added options
allowNullBody
andreadLockMinLength
to the File and FTP components. - Made
changed
read lock strategy on FTP go faster (eg when the FTP server has a lot of files in the directory) if you enable thefastExistsCheck=true
option as well. Notice that some FTP server may not support this. - HL7 moves to HAPI 2.0 and supports using a dedicated Parser instance in the HL7 MLLP codec and DataFormat. Added "Terser" language and expression to be able to extract fields from a parsed message. HL7 now uses Apache Mina 2.x.
- Add an option
HttpMethodRestrict
to restrict HTTP method in Jetty and SERVLET - Add support for selection of Direct-VM consumers by using ant-like path expression.
- The POJO Producing, and POJO Consuming with @Consume, @Produce, @EndpointInject now supports a new {{property} attribute to get the endpoint configuration from a bean property (eg using a getter method); this allows you to configure this on the bean using conventional bean configuration.
- Testing with
camel-test-blueprint
on Windows no longer tries to cleanup after testing taking up 5 seconds and logging WARNs. - The File, and FTP components now support
fileExist=Move
option to move any existing files before writing a file. - Added option
loadStatisticsEnabled
on Camel JMX to allow to disable load statistics if not needed (avoids a background thread being in use, to calculate the load stats). - Enabled "lazy connections" for XMPP providers via the
testConnectionOnStartup
option - Added a connection monitor to detect and fix dropped XMPP consumer connections at configurable
connectionPollDelay
intervals - Added an
org.apache.camel.builder.ExchangeBuilder
to build the Exchange using a builder pattern. - The Camel Run Maven Goal can now run CDI applications.
- The Camel CDI component has improved a lot.
- Added option
allowRedeliveryWhileStopping
to error handlers to control if redelivery is allowed during stopping/shutting down Camel or the route(s). Turning this optionfalse
allows to stop quicker by rejecting redelivery attempts. - Added support for specifying user info in Camel Endpoint urls, which contains the @ sign; now the @ sign can be given as is; without being encoded to %40.
- Added robust connection support for JMX. Optional
testConnectionOnStartup
allows a JMX consumer to attach to a JMX server that becomes available after the JMX endpoint starts;reconnectOnConnectionFailure
enables re-connection of failed JMX connections. - JAXB and SOAP data format now supports controlling namespace prefix mappings when marshalling (eg to avoid prefixes such as ns2, ns3, ns4 etc.)
- Added support for using raw uris when Components create Endpoints. This gives component writers full power in case their component has special syntax/notation for endpoint uri configurations.
- EIPs configured with custom
AggregationStrategy
will now strict check the custom strategy exists in the Registry and no longer fallback and use a default strategy if not. - Camel now logs on shutdown if any thread pools hasn't been properly shutdown, and will shutdown them as fail safe (can only be done for the thread pools Camel manages).
Fixed issues
- Fixed RoutePolicy used from Spring XML with
routePolicyRef
may not invoke all callbacks on the policy. - Fixed MINA consumer to force disconnect upon timeout when doing request/reply, as late replies may cause side effects otherwise.
- Fixed Simple language with empty quoted literals in predicates, so you can compare against empty strings.
- Fixed SOAP data format to set SOAP 1.1 namespace when marhsalling faults.
- Fixed SEDA producer to send to the right BlockingQueue being attached on the SEDA endpoint so that the sent messages don't get lost.
- Fixed using
sendEmptyMessageWhenIdle=true
on a batch consumer such as File now working with Aggregate EIP when usingcompletionFromBatchConsumer
- Fixed
MockEndpoint.expectedBodiesReceivedInAnyOrder
to allow asserting on multiple arrival of the same/equal bodies. - Fixed MyBatis to demarcate the running transactions properly while reading/writing from/to database.
- Fixed Jetty, HTTP, HTTP4, and AHC http components not working in bridge mode if content path have spaces
- Fixed the CXF fallback convertor issue which camel will unregister it when the converter return null.
- Fixed the issue that File2 endpoints on windows without volume name in the path url.
- Fixed the issue of unmarshaling pgp messages encrypted with ElGamal.
- Fixed random Load Balancer to be even spread (before was a little less likely to pick the 1st)
- Fixed Timer to not fire during starting CamelContext
- Fixed XMLSecurity DataFormat to enable retrieval of password-protected private keys for asymmetric decryption
- Fixed Exception Clause using
maximumRedeliveries(-1)
may be wrongly inherited by anotheronException
during a redelivery process. - Fixed logging Error Handler to use configured logging level.
- Fixed issue when using multiple
RouteBuilder
with the Java DSL should have the Exception Clause being scoped perRouteBuilder
instance.
New Enterprise Integration Patterns
New Camel Karaf Command
New Components
camel-cmis
- for integration of CMIS compliant content repositoriescamel-couchdb
- for integration with Apache CouchDBcamel-elasticsearch
- for ElasticSearchintegration
camel-sjms
- for "Springless" JMS integration[camel-neo4j]
- for talking to neo4j server from Camel.
DSL Changes
- Added LoggingErrorHandler fluent builder to Scala DSL.
New Annotations
New Data Formats
New Languages
- VTD-XML - for fast and efficient XPath evaluation/splitting using the VTD-XML Library.
camel-vtdxml
hosted at Camel Extra
New Examples
- ActiveMQ Camel Tomcat example shows how to embed Apache ActiveMQ and Camel in a web application running on Apache Tomcat.
New Tutorials
API changes/breaking
- HL7 upgraded to now use Apache Mina 2.x.
- Renamed
org.apache.camel.component.hbase.HBaseContats
toorg.apache.camel.component.hbase.HBaseConstants
- Added getter/setter methods for loadStatisticsEnabled on
org.apache.camel.spi.ManagementStrategy
- Added
shutdownGraceful
, andawaitTermination
methods toExecutorServiceManager
to make it easier to shutdown a thread pool gracefully waiting for its tasks to complete. - Added method
useRawUri()
toorg.apache.camel.Component
to allow Components to use raw uri when creating endpoints. (by default the uri has been encoded prior to creation). - Added method
newThread
toorg.apache.camel.spi.ExecutorServiceManager
to create a new thread without using a thread pool.
Internal/Non API refactorings that may affect users
- The Camel Test Kit provides a default Properties component out of the box; which mean using
addComponent("properties", ...)
is no longer needed; instead get the component usinggetComponent("properties")
and configure the component instead. - Minor adjustments to
org.apache.camel.builder.ErrorHandlerBuilder
.
Known Issues
- The Tracer may not output all details for some situations, such as when using
onCompletion
orintercept
, etc. - The project cannot fully build the site using Maven (e.g. running
"mvn site"
). There is no plan to fix this, as the project does not use maven site. - JBoss 7 may log a WARNing when running Camel as a WAR file.
Dependency Upgrades
- Async Http Client 1.7.5 to 1.7.6
- Axiom 1.2.10 to 1.2.12
- AWS 1.3.10 to 1.3.14
- BeanIO 2.0.0 to 2.0.1
- Commons Exec 1.0.1 to 1.1
- ConcurrentLinkedHashMap 1.2 to 1.3.1
- Ehcache bundle 2.5.1 to 2.6.0
- Groovy 1.8.6 to 2.0.4
- GSon 2.1 to 2.2.2
- Hazelcast 2.0.2 to 2.3
- HTTP Client 4.1.3 to 4.2.1
- Icu4j 4.0.1 to 4.8.1.1
- Jackson 1.9.7 to 1.9.10
- Jaxen 1.1.3 to 1.1.4
- JClouds 1.4.0 to 1.5.0
- Jettison 1.3.1 to 1.3.2
- Jetty 7.5.4 to 7.6.7
- JRuby 1.6.7 to 1.6.7.2
- JT400 6.0 to 6.7
- Krati 0.4.5 to 0.4.6
- Lucene 3.6.0 to 3.6.1
- Netty 3.5.1 to 3.5.8
- Ognl bundle 3.0.4_1 to 3.0.5_1
- Pax Logging 1.5.3 to 1.6.10
- QPid 0.16 to 0.18
- Quartz 1.8.5 to 1.8.6
- Restlet 2.0.14 to 2.0.15
- Scala 2.9.1 to 2.9.2
- Saxon 9.3.0.11 to 9.4.0.1
- Shiro 1.2.0 to 1.2.1
- Solr 3.6.0 to 3.6.1
- Spring Framework 3.1.1 to 3.1.2
- Spring Integration 2.1.2 to 2.1.3
- SSHD 0.6.0 to 0.7.0
- TestNG 6.0.1 to 6.7
- Woodstox 4.1.2 to 4.1.3
- XStream 1.4.2 to 1.4.3
Important changes to consider when upgrading
camel-mina2
now usesOrderedThreadPoolExecutor
by default. There is a new optionorderedThreadPoolExecutor
you can configure it tofalse
to revert back to unordered if needed. Mina that using SSL etc. requires ordered.- The default value of the
delay
option on Timer has been changed from0
to1000
- The default value of the
convertLFtoCR
option of the HL7 MLLP codec has been changed fromtrue
tofalse
. Likewise, the HL7 DataFormat and TypeConverter do not perform this conversion anymore. - The Simple language has limited its support for the escape character to only new line, carriage return and tab characters. This makes it easier to use back-slash characters in the Simple language without double escaping etc.
Notice
- Maven 3.0.2 or better is required to build the Source
- If you want to deploy Apache Camel 2.11.0 into Apache Karaf, we highly recommend to use the 'jre.properties.cxf' configuration, which is part of Apache Karaf 2.2.5 onwards. For example
camel-cxf
,camel-mail
, andcamel-spring-ws
requires this to be installable; as well other features may as well.
Getting the Distributions
Binary Distributions
Description |
Download Link |
PGP Signature file of download |
---|---|---|
Windows Distribution |
||
Unix/Linux/Cygwin Distribution |
Source Distributions
Description |
Download Link |
PGP Signature file of download |
---|---|---|
Source Distribution |