|
|
|
...
- Using <camelContext> in Spring will now shutdown <camelContext> eager by default. This ensure a cleaner shutdown of Camel, as dependent <bean> are not shutdown at this moment. The <bean> will then be shutdown after <camelContext>. There is a new attribute shutdownEager on <camelContext> to turn this off, and use the old behavior.
- The MBean names registered by Camel JMX no longer include the hostname in the
context part, eg before context=myHost/myCamelId and now after context=myCamelId . Having the hostname in the MBean name does not bring much value, and in fact makes things more complicated as the mbean name changes depending on the host running Camel.
- MBean naming in OSGi cleaned up to use simpler naming with symbolicName. Before we could have MBean names with duplicate bundle ids such as
context=114-114-camel-6 , which now is using the symbolic name instead, context=MyApplication .
- When using multiple OSGi Blueprint <cm:property-placeholder>'s then Camel now favors using non-default placeholders, or the last property-placeholder defined in the Blueprint XML file. This allows for example to define default properties in one placeholder, and override these values in other placeholders.
- FTP consumer allow to download a single named file without using the FTP LIST command. This allows to download a known file from a FTP server even when the user account does not have permission to do FTP LIST command.
- FTP consumer allow to ignore file not found or insufficient file permission errors.
- Data Format using marshal now leverages Stream caching out of the box if enabled, which allows to marshal big streams and spool to disk, instead of being pure in-memory based.
- Improved using Bean when the bean is looked up in the Registry, when using concurrent processing in the route.
- Added
cache option to beanRef and <bean> in the DSL. This avoids looking up the Bean from the Registry on each usage; this can safely be done for singleton beans.
- Configuring Data Formats in XML attributes now supports reference lookup using the # syntax, eg
<jaxb xmlStreamWriterWrapper="#myWriterWrapper" ..>
- JDBC component now also support
outputType to specify the expected output as either a List or single Object. As well allow to map to a bean using a BeanRowMapper to control the mapping of ROW names to bean properties.
- Both Quartz as well as Quartz2 based ScheduledRoutePolicy has been improved to better support cluster setups (e.g. to not schedule jobs being already scheduled through another node inside a given cluster).
- Reduced the work the Aggregate EIP does while holding a lock during aggregation, which can lead to improved performance in some use-cases.
-
JndiRegistry now implements all the find methods.
- VM component now supports
multipleConsumers=true across deployment units.
- Added
@PreConsumed to JPA consumer.
- Added CamelFileName header support to the HDFS producer
- Like as
JpaConsumer now also JpaProducer of the JPA component supports the CamelEntityManager header.
- Restlet consumer now supports returning custom headers as HTTP headers from the Camel Message.
- Spring Java Config
CamelConfiguration now automagically detects all RouteBuilder instances registered in the Spring context if CamelConfiguration#routes method is not overridden.
- Added support for transferring custom headers with RabbitMQ component.
- PGPDataFormat enables stream cache during unmarshaling.
-
FileIdempotentRepository now creates necessary parent directories together with the new repository file.
- Properties component and property placeholder will now ignore non existing JVM and environment options as well if
ignoreMissingLocation is set to true .
- Improved Stream consumer to enrich the Message with headers about current index / completion flag.
- Added
@BeanInject to inject beans (obtained from the Registry) in your beans such as RouteBuilder classes.
- Polished the Karaf commands to output tables sorted and auto calculated width, so the data is formatted nicely.
- Introduced
UnitOfWorkFactory to allow end users to use custom UnitOfWork implementations created by the factory.
- Doing request/reply over JMS allows per individual message
requestTimeout value by specifying the timeout value in the "CamelJmsRequestTimeout" header.
- Quartz and Quartz2 components now enlist the quartz scheduler by default in JMX, unless configured to be disabled.
- Twitter Component supports to set proxy.
- Netty HTTP consumer now remembers the raw (not decoded) value of URI query in the "
CamelHttpRawQuery " header.
- Bean Validator component can be now configured to use custom
ValidationProviderResolver (CAMEL-7162)
- TypeConverterRegistry exposes more information in JMX and allows to browse all the registered type converters.
- Bean Validator component is now shipped with the optional OSGi-friendly
HibernateValidationProviderResolver (CAMEL-7168)
- AMQP has been updated to QPid 0.24 and has been tested using AMQP 1.0.
- Allow to turn off useOriginalMessage (camelContext.setAllowUseOriginalMessage) which avoids a defensive copy of the incoming original message, which can improve performance; in situations where access to the original message is not needed.
- Bean Validator component now automatically uses OSGi-friendly
ValidationProviderResolver if deployed in the OSGi environment (CAMEL-7212)
- Threads DSL thread pool options and
executorServiceRef option are now mutually exclusive. (CAMEL-7250)
- Shiro Security now supports access control by roles.
Fixed Issues
- Fixed an
ArrayIndexOutOfBoundsException with Message History when using SEDA
- Fixed
requestTimeout on Netty not triggering when we have received message.
- Fixed Parameter Binding Annotations on boolean types to evaluate as Predicate instead of _expression_
- Fixed using File consumer with
delete=true&readLock=fileLock not being able to delete the file on Windows.
- Fixed Throttler to honor time slots after period expires (eg so it works consistently and as expected).
- Fixed getting JMSXUserID property when consuming from ActiveMQ
- Fixed interceptFrom to support property placeholders
- Fixed a race condition in initializing
SSLContext in Netty and Netty HTTP
- Fixed using Recipient List, Routing Slip calling another route which is configured with
NoErrorHandler , and an exception occurred in that route, would be propagated back as not-exhausted, allow the caller route to have its error handler react on the exception.
- Fixed Quartz and exception was thrown when scheduling a job, would affect during shutdown, assuming the job was still in progress, and not shutdown the Quartz scheduler.
- Fixed so you can configure Stomp endpoints using URIs
- Fixed memory leak when using Language component with
camel-script languages and having contentCache=false
- Fixed Error Handler may log at
WARN level "Cannot determine current route from Exchange" when using Splitter
- Fixed
camel-fop to work in Apache Karaf and ServiceMix
- Fixed HDFS producer to use the configured UuidGenerator when generating split file names to avoid filename collisions
- Fixed
JpaProducer and JpaConsumer of the JPA component to not share/reuse the same EntityManager object which could cause problems if this would occur in the context of multiple/different threads.
- Fixed HTTP4 to support multiple custom component names in use, each configured using different
SSLContext .
- Fixed Content Based Router using method call's as Predicates if threw an exception, the Content Based Router will call next predicate before triggering Error Handler.
- Fixed Netty HTTP producer with query parameters may use wrong parameters from a previous call.
- Fixed Netty producer may cause
NullPointerException in messageReceived in client handler, if a Channel was destroyed from the producer pool.
- Fixed File and FTP consumer(s) when
idempotent=true could not detect changed file(s) as a new file, but would regard the file as idempotent.
- Fixed Stream consumer reading a file using
groupLines would not read last group of message if there was not enough lines to hit the threshold.
- Fixed deleting the done file if File or FTP consumer rollback and the
moveFailed option is in use.
- Fixed avro data format in OSGi not being able to load schema classes.
- Fixed JMX when using custom beans in routes with
@ManagedResource to expose JMX attributes/operations to not include Camel standard attributes/operations from its processors, which would be shown as unavailable in JMX consoles.
- Fixed Quartz2 simple trigger repeat count default value not working causing the trigger to only fire once, instead of forever.
- Fixed JMS with a JMSRepyTo header using a topic, was mistakenly used as a queue instead.
- Fixed CSV to not modify the properties of the strategy constants declared by
org.apache.commons.csv.CSVStrategy which would cause side effects when multiple CsvDataFormat objects are concurrently in use.
- Fixed camel-script may return result from previous evaluation instead of result from current exchange.
- Fixed
ThreadsProcessor to resolve RejectedPolicy from the referenced ThreadPoolProfile (CAMEL-7240)
- Fixed XmlJson
elementName and arrayName properties when setting them from the xmljson(Map) DSL.
...
|
|
|