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).
- The buffer size of Stream caching is now configurable.
- Improved startup performance.
- Added JMS URI option
messageListenerContainerFactoryRef
which allows you to specify aMessageListenerContainerFactory
to determine whatorg.springframework.jms.listener.AbstractMessageListenerContainer
to use to consume messages. - MQTT producer now leverages the Asynchronous Routing Engine
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. - Fixed issue with restarting a SEDA consumer would not stop previous used thread pool.
- Fixed issue when running low on memory and doing request/reply over JMS may GC producer, causing a new producer to be created, and leaving a message listener running from the previous producer.
- Fixed issue with Try Catch Finally should clear redelivery exhaust state when catching exception in doCatch.
- Fixed potential NPE in MQTT producer, if a connection has been disconnected, and sending fails.
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
. LRUCache
will attempt to stop service on eviction of entry.
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.2
- 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.1
- 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
- Mina 2.0.4 to 2.0.6
- MongoDB Java Driver 2.7.3 to 2.9.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. If using SSL etc. then ordered is required to be used.camel-netty
now usesOrderedMemoryAwareThreadPoolExecutor
by default. There is a new optionorderedThreadPoolExecutor
you can configure it to false to revert back to unordered if needed. If using SSL etc. then ordered is required to be used.- 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 |