Camel 2.11.0 release
Div |
---|
Wiki Markup |
---|
{div:style= | padding-right:20px;float:left;margin-left:-20px; |
| }
!http://camel.apache.org/download.data/camel-box-v1.0-150x200.png!
{div} |
Image Added
|
Div |
---|
Wiki Markup |
---|
{div:style= | | }
{div} |
|
New and Noteworthy
Welcome to the 2.11.0 release with approximately 679 issues resolved - including new features, improvements, and bug fixes, such as:
- Camel RX provides a typesafe and composable API for working with asynchronous events from camel endpoints using Reactive Extensions using the RxJava library
- Added Binding support, so it is easy to combine things like a Data Format to an Endpoint for easier composition of routes.
- 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
and readLockMinLength
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 the fastExistsCheck=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 option false
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 a MessageListenerContainerFactory
to determine what org.springframework.jms.listener.AbstractMessageListenerContainer
to use to consume messages. - MQTT producer now leverages the Asynchronous Routing Engine
- The Netty producer scales up and down much better by leveraging a channel pool.
- Added new Camel Maven Archetypes for creating Camel and Groovy applications.
- Added a Groovy DSL that allows to use Groovy closures and Groovy XML parsing in routes.
- Camel now injects
CamelContext
on Language
and DataFormat
that implements CamelContextAware
- Thread pools in Camel with
maximumQueueSize
of 0 or negative will now not use a worker queue but do direct hand-over to thread instead. - Simple unary operators for inc and dec must now have function on left hand side, to be parsed as unary function. Otherwise its now regarded as literal.
- Custom assigned id's on Camel Routes is now validated on starting the routes, that they must be unique within the same CamelContext.
- Added
AbstractListAggregationStrategy
abstract class to make it easier to aggregate into a List<V> using a custom AggregationStrategy
. - EIPs which support using
AggregationStrategy
now control the lifecycle of the strategy; allowing end users to do custom logic in the start/stop methods of their strategy implementation. - Added option
includeSentJMSMessageID
to JMS to allow to enrich Camel Message with the actual JMSMessageID for the sent message. Can be used by end users for logging purpose etc. - Added option
allowShortLines
and ignoreExtraColumns
to Flatpack data format. - Mail consumer now supports using search terms to filter mails by terms such as subject, from, body, sent date etc.
- The cached script file in the Language component can now be cleared via JMX.
- improved the karaf context-info command by adding a verbose mode to view endpoints list (now hidden by default) and adding stats on the number of active/inactive routes
- Added support for
UpdateList
, DeleteList
and ExecutorType
to MyBatis component. - Added support for easier configuration of using concurrent message listener consumer when doing request/reply over JMS, by leveraging the existing
concurrentConsumers
and maxConcurrentConsumers
options. - Improved the SMPP consumer to expose more data by receiving a
DeliverSM
message, including the optional parameters. - Camels property placeholders can now be used in route id / node id's in the routes in XML and Java DSLs, eg <route id="
coolName
"> - The thread name pattern can easily be configured on <camelContext> with the new threadNamePattern attribute
- Camel now validates SEDA and VM endpoints using same queue name, that if any queue size is in use, that size must match. As well Camel logs at INFO level when starting up the queues and the sizes. This allows end users to easily spot any issues if mistakenly using different queue sizes for the same queue names.
- Added JMX operations to throughput logger so you can get stats and also reset the stats at runtime.
- Added ACL support on the AWS-S3 component.
- Allow to configure Jetty http client thread pool settings in uri to make it easier to have different settings per endpoint.
- Added support for implied decimal formats to Bindy
- Added option
backlog
to Netty which can be used to allow more concurrent clients to connect to a Netty consumer. - Added support for parsing CSV if a field has a ' (single quote) at it's beging
- Added support for using custom url rewrite plugins in HTTP, HTTP4, and Jetty producers, which gives more control of url mappings, such as when bridging/proxying http based routes. Provided
camel-urlrewrite
as out of the box implementation. - Improved the Spring-Integration consumer to also send back the message headers.
- The Camel Guice component has been upgraded to latest Guice 3.0, and no longer dependent on Guice extension project
guiceyfruit
. - ReplyTo Temporary Queue now refreshed when the underlying JMS Connection fails.
- When processing an Exchange fails, the failed route id is available for end users. See details at Dead Letter Channel.
- When using XSLT includes will use same file or classpath loading as endpoint configuration, if not explicit configured.
- Now Camel Transport for CXF supports to configure with blueprint.
- SQL Component now supports named parameters in the queries.
- SQL Component now supports Batch Consumer to consume data; for example to pickup new rows being inserted into a table. As well having queries being execute after each row has been processed, such as deleting/marking the row as processed.
- JDBC based aggregation repository now allows to store message body and headers as text in individual columns. This makes the data human readable, as by default the data is stored as binary.
- File consumer will on first poll run the check to delete old orphaned lock files. As opposed to before where this happened during startup of Camel itself; which could delay starting Camel if the delete process takes a long time.
- File and FTP can now use a custom idempotent key with the built-in idempotent consumer. For example you can now use both the file name and size as key.
- File and FTP producers support the
CamelOverruleFileName
header as a use once and discard header to overrule and use as filename for writing; while preserving the original filename in the CamelFileName
header. - The Languages and Language component can now load the script from external resource using
"resource:scheme:location"
syntax. - HDFS producer without a split strategy will now close file stream after writing. You can use the
CamelHdfsClose
header to explicit to control if to close file stream or not. - Simple language now has
type
function to refer to a type, enum or constant field. - Using
allowRedeliveryWhileStopping=false
on Dead Letter Channel now moves the message to the DLC (when stopping) instead of rejecting the message. - Unit testing with Blueprint Testing is now easier to override Blueprint property placeholder values from both external .cfg files, as well from placeholders defined directly in the XML file. See further details at Using PropertyPlaceholder page.
- Bindy FixedLengthRecord is improved with support for header and footer records, delimited fields, and field lengths defined within a record.
- Added
transacted
option to Hazelcast SEDA consumer to use Hazelcast transaction. - Improved performance of Simple and Bean language when using OGNL expression, by leveraging an internal cache to avoid introspecting the same types over and over again.
- Camel now validates better when using Try Catch Finally in the routes has been configured properly.
- Added Karaf commands for using the BacklogTracer when running Camel application in a Apache Karaf container.
- The VM component can now safely communicate Camel Contexts residing in different bundles in an OSGi environment, as the issue leading to an incoherent state when restarting one of the bundles has been fixed.
- Made it easy to use Saxon as the transformer with the XSLT component.
- Improved AWS to not only support the Amazon provided clients for accessing the services.* Improved AWS to not only support the Amazon provided clients for accessing the services.
- Added multiple consumers support to Guava EventBus endpoints.
- Added support for listener interfaces to Guava EventBus in order to provide better
DeadEvent
handling. - Made it easier to configure options such as passwords on Camel endpoint URIs and use the value as is, using the new RAW token. See more details at How do I configure endpointsDo I Configure Endpoints?
- Improved Flatpack and Flatpack DataFormat to allow short lines and ignore extra columns.
- Fully customize the output of the Log component by providing a custom
ExchangeFormatter
. - You can now configure more options on GSON Data format, for example field mapping strategies.
- Simplified consuming REST requests with CXFRS with the Simple Binding Style.
- Improve JAXB to support validation by marshaling/unmarshaling objects from/to XML.
- Improved
org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer
to support both Camel and Spring property placeholder syntax in the .properties files. - New Karaf commands for using the BacklogTracer as well for profile routes.
...