THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- The route models (definition classes) preserve property placeholders, which allows round trip editing, and also prevents showing potential sensitive information
- Added onPrepareFailure option to Dead Letter Channel to allow a custom processor to prepare the Exchange before sending to the dead letter queue.
- MongoDB tailable consumers now allow setting the
readPreference
option. - Using setFaultBody / setFaultHeader behaves similar to setBody / setHeader to preserve existing headers/attachments by setting on existing IN or OUT message.
- Java DSL using choice with end vs endChoice now validates you use them as intended. Any misconfiguration now throws an exception explaining the problem.
- POJO Producing and POJO Consuming lifecycle is now in sync with CamelContext which ensures it works as similar to Camel Routes does. Also the created producer/consumer is stopped when CamelContext is stopping to cleanup properly.
- JMS component now allows configuring concurrentConsumers/maxConcurrentConsumers separately between from(jms) vs to(jms) using request/reply over JMS
- Added SEARCH operation to Elasticsearch component
- The Properties component (property placeholder) now supports an encoding option to allow reading the .properties files using a specific charset such as UTF-8. By default ISO-8859-1 is used (latin1)
- Added
receviveBufferSize
option to the FTP component to make download faster. The size is by default 32kb buffer. - The Aggregator2 EIP now allows an external source using a
AggregateController
to control the aggregator, such as for forcing completing a group or all groups, or query runtime information from the aggregator. A default controller is provided out of the box if none has been configured. - The Aggregator2 now enlists in JMX using a
ManagedAggregateProcessorMBean
which has more information, and also allows using the aggregate controller to control it. - The Aggregator2 now includes more runtime statistics which can be accessed from Java and JMX about number of incoming and completed exchanges, and per different completion triggers.
- The Aggregator2 now supports pre-completion mode if the aggregation strategy implements
PreCompletionAwareAggregationStrategy
. This supports the use-case where an incoming Exchange are used to determine if the current aggregated group is completed or not. If completed the group is emitted as-is, and the new incoming Exchange is used to start a new group from scratch. - Added options to Mail consumer so it can skip or handle a mail message that cannot be read from the mail server in the batch; and then move on to read the next message. This ensures the consumer can deal with mail boxes that has problematic mails that otherwise will cause no mails to be retrieve by the consumer in the batch.
- The runtime route processors and their corresponding model definition are now linked by their id using
HasId
, so its easier to obtain the processor or model definition from thegetProcessor(id)
andgetProcessorDefintion(id)
api on CamelContext. - CamelContext now also includes a getManagedProcessor API to easily get the mbean client api for the processor, so you can access the runtime JMX statistics from Java code.
- Spring Boot applications now block the main thread of the execution
- Spring Boot automagically loads XML routes definitions from classpath
- Added
MainListener
to make it easier for Camel Boot / Standalone Camel to implement custom logic to trigger during the starting and stopping of the application. - Camel Jackson now provides
Map
toObject
converter - Ability to refer to existing hazelcast instance by id, using Hazelcast Component
- Direct and Direct-VM now supports the failIfNoConsumers option
- Making it easier to add custom Type Converter to your Camel applications without having to use the META-INF file. In Spring or Blueprint just add them as <bean>s. See more details at Type Converter documentation.
- camel-cxf PAYLOAD supports stream cache out of box.
BridgePropertyPlaceholderConfigurer
supports to handle the jasypt encryption inside and outside of the camelContext.The camel-aws component now support Amazon DynamoDB version 2
The Wire Tap eip now also emits event notifications when sending the Exchange to the wire tap destination
- Camel Test has new option isDumpRouteStats that dumps all route usage statistics as XML files in target/camel-route-stats directory, which can be used to inspect "route coverage" reports.
- Now Camel Netty component doesn't intercept consumers with
httpMethodRestrict=OPTIONS
- Now Netty HTTP resolves OPTIONS prefix matches earlier
- Using Load Balancer with Java DSL now builds the route model using the specific model types, which renders a more accurate route model
- Enhanced the PredicateBuilder to support vargs and list in the "or" builder method
- Using custom
HttpBinding
with HTTP and HTTP4 is now easier as they can be instantiated using a default no-arg constructor - Added
readLock=idempotent
to the File2 consumer which allows to reuse an idempotent repository as read-lock which enables Camel to run reliable in clustered mode, where each node competes for the same files from a shared file system. This requires that the idempotent repository supports clustering such as Hazelcast Component or Infinispan - or using the JDBC for a shared database table. - Camel RX now ensures that observe and subscribe are done within an unit of work to ensure on completions is executed, such as they are done when you use regular Camel routes.
- The JMS component now includes the underlying
javax.jms.Session
instance on the Camel message which allows end users to easier to use client acknowledge mode, in case the client wants to use the session to call recover or rollback. - Added
completionEager
option to Idempotent Consumer to whether to complete the idempotent consumer eager or when the exchange is done. - Working with the Camel source code in Eclipse with m2eclipse plugin improved to avoid endless file changed detection and recompile the source.
- Add option
suppressExceptions
to JSonPath which allows to ignore exceptions such as NoSuchPathException when the json payload does not contain the path defined in the json expression. - Spring Boot now creates
CamelContext
,ProducerTemplate
andConsumerTemplate
beans only if those are not defined by the user. - New
camel-archetype-spring-boot
to create a new Camel Spring Boot project using Maven. - New
camel-archetype-cdi
to create a new Camel CDI project using Maven. - FTP2 doesn't support absolute directories in endpoint URIs. In such cases, paths will be treated as relative and WARN message will be printed in logs. In future versions, there'll be no such assumption and validation exception will be thrown instead.
Fixed the following issues:
...