Apache Camel Changelog

What's new in Apache Camel 2.15.1

Apr 17, 2015
  • Bug:
  • [CAMEL-7565] - SFTP using PollEnrich with "disconnect=true" and "delete=true" does NOT delete the file
  • [CAMEL-8437] - Simple bean call doesn't like parenthesis in parameter values
  • [CAMEL-8455] - camel-linkedin - update_key option should be optional in getHistoricalStatusUpdateStatistics
  • [CAMEL-8456] - Remove addCompanyUpdateComment endpoint from camel-linkedin
  • [CAMEL-8457] - Correct return types of some endpoints in camel-linkedin
  • [CAMEL-8458] - camel-linkedin - public_profile_url option should be String
  • [CAMEL-8461] - camel-netty-http does not respect client's keep-alive setting
  • [CAMEL-8462] - HttpServerChannelHandler should not store the instance of HttpRequest
  • [CAMEL-8464] - Remove likeCompanyUpdate endpoint from camel-linkedin
  • [CAMEL-8466] - Feature camel-linkedin is missing dependencies for xalan, xerces and xmlresolver
  • [CAMEL-8470] - Several small fixes for camel-linkedin
  • [CAMEL-8476] - Unexpected behavior in fault handling with doTry/doCatch
  • [CAMEL-8479] - TrapReceiveTest is failed within Camel 2.15.0
  • [CAMEL-8480] - camel-catalog has unnecessary imports if it cannot access some other artifacts
  • [CAMEL-8484] - File language - Should support file extensions with multiple dots such as tar.gz
  • [CAMEL-8490] - OSGI Import package are wrong
  • [CAMEL-8492] - BeanInfo introspection ignores overriden methods
  • [CAMEL-8498] - CamelContextFactoryBean missing setEndpoints method
  • [CAMEL-8500] - ClassCastException when something other than PropertiesComponent is bound to "properties" JNDI name
  • [CAMEL-8504] - Failed to process Schematron XSLT templates and/or rules on windows
  • [CAMEL-8505] - Missed CamelSchematronValidationStatus header
  • [CAMEL-8510] - NPE will be thrown from doAppend() of PaxLoggingConsumer during load testing
  • [CAMEL-8515] - Camel marshal/unmarshal - Should catch throwable in case dataformat causes an java.lang.Error
  • [CAMEL-8519] - Salesforce component security listener does not replace old auth header
  • [CAMEL-8520] - Camel XMPP doesn't use a DNS resolver to look at SRV records
  • [CAMEL-8521] - camel-script - Should try all classloaders before throwing IAE
  • [CAMEL-8530] - can't install camel-github feature in karaf
  • [CAMEL-8546] - No LanguageResolver found for language=js
  • [CAMEL-8547] - Usage of camel-xmlbeans depends on TCCL
  • [CAMEL-8556] - AnnotationTypeConverterLoader treats package as class
  • Improvement:
  • [CAMEL-5398] - Optimize String.replaceAll() to cache Patterns where suitable
  • [CAMEL-7474] - Error blocks mail-consumer
  • [CAMEL-8468] - Usage of camel-xstream depends on TCCL
  • [CAMEL-8483] - MongoDB Endpoints: Allow ReadPreference to be set on consumers
  • [CAMEL-8488] - Java DSL - Improved CBR to detect if endChoice vs end was invalid used
  • [CAMEL-8489] - camel-sjms - Allow to create empty message for null body
  • [CAMEL-8497] - Add extra capabilities to the github component
  • [CAMEL-8509] - camel-catalog - Add api to parse endpoint uri and reverse
  • [CAMEL-8511] - Properties component - Add encoding option to use when reading the properties files
  • [CAMEL-8513] - FTP consumer - Add option to use a larger buffer size so download is faster
  • [CAMEL-8514] - camel-castor should depend on castor-xml
  • [CAMEL-8516] - Salesforce component does not return the list of matching records for HTTP status code 300
  • [CAMEL-8517] - Salesforce session handling must declare shared fields volatile
  • [CAMEL-8536] - Using JCR API 2.0 jar which is already OSGi bundle
  • [CAMEL-8541] - Camel main TestSupport class is incompatible with the CDI specification
  • [CAMEL-8543] - Support easy configuration of HTTP proxy parameters for Camel salesforce component and maven plugin
  • [CAMEL-8544] - Camel - Dynamic router - unsupported cacheSize attribute
  • [CAMEL-8558] - Camel Catalog - Add humanize component name
  • New Feature:
  • [CAMEL-8465] - Add groups/getPosts endpoint to camel-linkedin
  • [CAMEL-8487] - Custom arguments to RabbitMQ queues
  • Task:
  • [CAMEL-8384] - 2.14.2 Snapshot builds missing sources/javadoc jars
  • [CAMEL-8454] - Correct a comment in files generated by camel-api-component-maven-plugin
  • [CAMEL-8533] - camel-ognl exposes servicemix ognl bundle
  • [CAMEL-8548] - upgrade commons-codec version to 1.10
  • Wish:
  • [CAMEL-8501] - BOM does not publish restlet dependencies

New in Apache Camel 2.14.1 (Feb 18, 2015)

  • Bug:
  • [CAMEL-7224] - camel-smpp - fails to correctly send messages that require UCS-2 encoding
  • [CAMEL-7627] - Quartz/Quartz2 in cluster mode doesn't apply changed trigger settings
  • [CAMEL-7662] - MQTTProducerTest fails once enables it
  • [CAMEL-7697] - from("mqtt:..").to("mqtt:...") causes a seriously delayed delivery
  • [CAMEL-7784] - Camel : RSS - Ignores posts with identical published or updated date.
  • [CAMEL-7785] - setUnitOfWork in DefaultExchange throws NPE when called from Splitter.java
  • [CAMEL-7803] - DefaultJdbcPrepareStatementStrategy Iterator fails on null value inserts
  • [CAMEL-7820] - Interceptors not working for Rest DSL
  • [CAMEL-7824] - Camel manual throws some errors by opening in Safari or Firefox
  • [CAMEL-7826] - Olingo2 component sets incorrect value for "id" element in create entry endpoint
  • [CAMEL-7829] - Olingo2 component should handle 200 OK responses from OData servers for PUT method
  • [CAMEL-7830] - RestLetHeaderFilterStrategy should filter the header of "Transfer-Encoding"
  • [CAMEL-7836] - ConcurrentModificationException when creating dynamic routes
  • [CAMEL-7839] - Xpath is not namespace aware in choice
  • [CAMEL-7842] - Avoid using InputStreamEntity for byte[] input
  • [CAMEL-7852] - camel-msv component cannot be resolved in OSGi
  • [CAMEL-7855] - If you suspend a JMS route that is stopped, calling resume on it does not work and reports no error
  • [CAMEL-7856] - camel-cxf producer HttpAPI should not send the message body when using DELETE method
  • [CAMEL-7866] - barcodeFormat is always QR CODE
  • [CAMEL-7867] - NullPointerException when using CXF endpoint to enrich
  • [CAMEL-7868] - wrong concatenation of parameters in JettyHttpComponent
  • [CAMEL-7869] - endpointProperty does not work (restConfiguration - jetty)
  • [CAMEL-7870] - [camel-barcode] Writer/Reader hints should be re-optimized when setBarcodeFormat method called.
  • [CAMEL-7871] - [camel-barcode] failed to create AZTEC barcode
  • [CAMEL-7874] - json DataFormat: The prettyPrint option does not work as expected
  • [CAMEL-7879] - interceptFrom doesn't work when using rest dsl
  • [CAMEL-7880] - Cannot use custom DataFormats in REST DSL
  • [CAMEL-7881] - camel-resetlet feature should include httpclient4 bundle
  • [CAMEL-7882] - camel-syslog's CamelSyslogTimestamp header is suddenly a GregorianCalendar
  • [CAMEL-7883] - XSD decoding bad guess in Validator
  • [CAMEL-7885] - Timer - Restarting a timer endpoint may not trigger at expected time the first time
  • [CAMEL-7886] - Charset not correctly set from content-type
  • [CAMEL-7888] - HL7Decoder leaks memory
  • [CAMEL-7890] - XmlConverter.toSAXSourceFromStream does not set setNamespaceAware
  • [CAMEL-7892] - Unable to perform a restlet DELETE with no entity
  • [CAMEL-7894] - Encoder exception after sending a message with null body
  • [CAMEL-7896] - camel-netty-http producer should close the channel when the connection header is not keep alive
  • [CAMEL-7899] - camel-jetty should support to define multiple http method for the rest service
  • [CAMEL-7900] - hdfs2 - chunkSize not honored
  • [CAMEL-7909] - camel-netty-http consumer need to close the connection if the response connection header is close
  • [CAMEL-7910] - Netty {Client|Server}ChannelHandler need to pass the close and open event around
  • [CAMEL-7916] - OsgiServiceRegistry forces name property
  • [CAMEL-7920] - Refresh of the camel-jaxb bundle results a strange behaviour
  • [CAMEL-7922] - MQTT endpoint misses QoS > 0 messages due to startup timing issue
  • [CAMEL-7924] - java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.callsite.CallSiteArray
  • [CAMEL-7931] - JCR need to support multi-valued property
  • [CAMEL-7935] - JcloudsPayloadConverter.toPayload(InputStream) cannot deal with FileInputStreamCache
  • [CAMEL-7952] - Camel REST does not handle same path with differents VERBS
  • [CAMEL-7966] - Doesn't set the blank or empty string to the mail recipients
  • [CAMEL-7971] - Setting bean reference in fails with IllegalFormatWidthException
  • [CAMEL-7973] - CircuitBreakerLoadBalancer fails on async processors
  • [CAMEL-7977] - sftp compression option is not set rightly
  • [CAMEL-7981] - JMX - Routes with transacted does not enlist processor mbeans
  • [CAMEL-7986] - Route disappears with routeId set to "route1"
  • [CAMEL-7988] - file consumer - Should call abort in case read lock cannot be acquired if exception was thrown
  • [CAMEL-7989] - FileIdempotentRepository should create the file store on startup
  • [CAMEL-7990] - IdempotentConsumer - If no messageId should allow Camel error handler to react
  • [CAMEL-7992] - Container lifecycle event method invoked outside of extension observer method invocation
  • [CAMEL-8001] - SmppUtils.isGsm0338Encodeable() called with arbitrary data
  • [CAMEL-8008] - SubmitMulti and DataSm not checking CamelSmppAlphabet header
  • [CAMEL-8030] - camel-netty need to release the thread pool when shutdown
  • [CAMEL-8031] - camel-netty maximumPoolSize option is ignored
  • [CAMEL-8032] - FileUtil leaks FileInputStream when renameFile fails due to permission issue
  • [CAMEL-8033] - Exchange Leak Caused By pollEnrich
  • [CAMEL-8035] - CXFRS consumer should set Exchange's charset name, if content type provides one
  • [CAMEL-8036] - JettyComponent should not setup the security handler more than once
  • [CAMEL-8045] - Not possible to load a public key from a a PrivateKeyEntry in a keystore
  • [CAMEL-8049] - DefaultRestletBinding can not deal with multi-valued HTTP request parameters
  • [CAMEL-8053] - Memory leak when adding/removing a lot of routes
  • [CAMEL-8062] - camel-rx - EndpointSubscriber does not call unsubscribe to stop the consumer
  • [CAMEL-8065] - Camel won't build on windows (camel-box and camel-api-component-maven-plugin)
  • [CAMEL-8073] - Camel may clear attachments during routing
  • [CAMEL-8077] - NullPointerException in getRouteDefinition before context is started
  • [CAMEL-8081] - Multicast Aggregator should keep processing other exchange which is not timeout
  • [CAMEL-8082] - CxfRs producer should close the connection if MEP is InOnly
  • [CAMEL-8086] - Possible memoryleak when convertBodyTo is used in a dynamicRouter
  • [CAMEL-8087] - missing dependency for "camel-example-restlet-jdbc" example
  • [CAMEL-8092] - cxf:producer Matrix Params are missing
  • [CAMEL-8094] - camel-netty: Do not use org.jboss.netty.util.internal.ExecutorUtil as it breaks the camel-netty Karaf feature
  • [CAMEL-8096] - CxfEndpoint schema should support to publishEndpointUrl from the element attribute
  • [CAMEL-8097] - Error in AST/Graph translation
  • [CAMEL-8106] - XML parsing error is ignored by xtoknize XML tokenizer
  • [CAMEL-8118] - BigDecimalPatternFormat overwrites Locale setting
  • [CAMEL-8121] - Infinite Loop Within Camel if the temp file directory is not writable
  • [CAMEL-8123] - Mina2 SSL initiates handshake backwards
  • [CAMEL-8125] - PropertyInject gives NullPointerException
  • [CAMEL-8126] - PropertyInject does nothing for setter method
  • [CAMEL-8134] - We should not add synchronisation if the CachedOutputStream closedOnCompletion option is false
  • Improvement:
  • [CAMEL-7421] - camel-rabbitmq - Channel is not fully thread safe
  • [CAMEL-7490] - Redelivery delay cannot be modified in asynchronous mode for multiple retries with different redelivery intervals for each retry specified in Exchange.REDELIVERY_DELAY header parameter.
  • [CAMEL-7859] - Language component - Add support for binary content
  • [CAMEL-7863] - Tone down info logging pr. message
  • [CAMEL-7864] - The kafka component does not properly support zookeeper chroot configuration
  • [CAMEL-7895] - Upgrade XML Security + BouncyCastle dependencies
  • [CAMEL-7915] - Share the HashedWheelTimer across the Camel NettyComponent
  • [CAMEL-7929] - OptimisticLockRetryPolicyTest fails from time to time
  • [CAMEL-7932] - Adding initial properties to PropertiesComponent
  • [CAMEL-7940] - Disable SSL security protocol by default
  • [CAMEL-7958] - Java DSL - Should support nested choice in doTry .. doCatch
  • [CAMEL-7959] - Rest DSL - Add support for onException, interceptor and other cross functionality
  • [CAMEL-7975] - SJMS Endpoint does not reverse header encoding
  • [CAMEL-7980] - camel-ognl need to use the class resolver from camel context
  • [CAMEL-8012] - camel-stream's scanStream mode should read available lines before going into sleep (or delay)
  • [CAMEL-8014] - camel-metrics - Let route policy and metrics component reuse same metricsregistry
  • [CAMEL-8064] - MockEndpointsAndSkip annotation does not resolve property placeholders
  • [CAMEL-8068] - SplitAttachmentsExpression should set ID of splited attachment
  • [CAMEL-8070] - Supporting byte[] messages in camel-websocket
  • [CAMEL-8072] - Netty Http Server should close the channel once it return an error message
  • [CAMEL-8076] - We should avoid checking the DupTriggerKey if the recoverableJob is true
  • [CAMEL-8078] - camel-restlet should support to decode the response entity which is represent resource
  • [CAMEL-8089] - Support paging and restricting results from google drive
  • [CAMEL-8091] - DefaultExchangeFormatter does not consider Exchange.LOG_DEBUG_BODY_MAX_CHARS
  • [CAMEL-8098] - Route model using body expression should be representable in the xml model
  • [CAMEL-8099] - Add support for default values in Camel properties
  • [CAMEL-8104] - rest-dsl - Allow custom error responses as-is without invoking the output binding
  • [CAMEL-8107] - Allow to use property placeholder with default values without having to setup the properties component
  • [CAMEL-8109] - Allow to plugin custom functions to property placeholder
  • [CAMEL-8115] - Properties component - Include default functions to lookup from ENV / SYS etc
  • [CAMEL-8116] - Allow more control of message splitting policy
  • [CAMEL-8130] - camel-sql - Allow selectList outputType to map to class as well
  • [CAMEL-8131] - rest-dsl - Include route id in listRestServices JMX api
  • [CAMEL-8133] - rest-dsl - Make it easy to support CORS
  • [CAMEL-8136] - rest-dsl - Auto binding mode should detect if JAXB unmarshal is needed to not
  • [CAMEL-8138] - camel-jaxb - Allow jaxb to marshal non JAXBElement
  • [CAMEL-8139] - rest-dsl - Allow to configure data format properties for IN vs OUT
  • New Feature:
  • [CAMEL-7791] - Karaf command completers does not work
  • [CAMEL-7848] - Netty-Http component: add support for registry's encoders and decoders
  • [CAMEL-8079] - Provide possibility to delegate charset evaluation of a HL7 message to HL7DataFormat
  • [CAMEL-8114] - Add support for the JCR multi-valued property
  • Task:
  • [CAMEL-7943] - Add jackson core dependency to camel-dropbox pom
  • [CAMEL-7976] - Validation of feature camel-ssh is failing
  • [CAMEL-8003] - examples - camel-examples-etl is broken (again)
  • [CAMEL-8022] - camel-api-component-maven-plugin - Test fails about java6 method
  • [CAMEL-8061] - camel-test-blueprint - Use felix fileinstall JAR that do not have the NPE bug
  • [CAMEL-8112] - upgrade joda-time version to 2.5
  • Test:
  • [CAMEL-7737] - camel-fop - Fails unit test
  • [CAMEL-8004] - camel-quartz2 - A test may hang

New in Apache Camel 2.13.1 (May 13, 2014)

  • Bug:
  • [CAMEL-7033] - camel-quartz2 - When clustering, triggers may be left in a paused and unrecoverable state
  • [CAMEL-7141] - Custom HeaderFilterStrategy does not work when set it on either component or endpoint uri
  • [CAMEL-7271] - AbstractListGroupedExchangeAggregationStrategy produces failed exchange if first received exchange fails
  • [CAMEL-7279] - Yammer now uses bearer token for auth
  • [CAMEL-7296] - camel-hbase component have some bugs on Consumer side
  • [CAMEL-7298] - Simple Language - Binary Expression Equality Fails
  • [CAMEL-7300] - HL7 converter should not perform validation
  • [CAMEL-7303] - Simple Language - Header access surrounded with quotes
  • [CAMEL-7304] - InterceptSendToEndpoint does not work where uri needs to be normalized
  • [CAMEL-7305] - Simple Language - ResultType Coercion is not consistent
  • [CAMEL-7306] - Camel:Kafka NPE when trying to consume messages from kafka server
  • [CAMEL-7307] - Cmale:Kafka No message body returned from exchange
  • [CAMEL-7308] - Timer component : timer should use StartupListener to be initialized before first fire
  • [CAMEL-7310] - Restlet - Need to run in sync mode due bug in restlet
  • [CAMEL-7311] - camel-mail - Should not fetch attachments if mapMailMessage=false
  • [CAMEL-7315] - SPI locator fails when using a charset such as UTF16
  • [CAMEL-7317] - xml-specs-api feature in camel features.xml shouldn't have all bundles configured as dependency='true'
  • [CAMEL-7320] - PGP Data Format: EOFException: Unexpected end of ZIP input stream
  • [CAMEL-7321] - JcrConsumer freezes in some environments
  • [CAMEL-7323] - createRouteStatisticEndpointJson - Returns invalid json if no routes
  • [CAMEL-7324] - DynamicRouter sends in-message to next destination
  • [CAMEL-7330] - Kafka : Fix the KafkaConsumer to fill the camel message body with the kafka message content
  • [CAMEL-7336] - camel-cometd jetty jmx version is not suit with camel parent jetty version
  • [CAMEL-7337] - PGPDataFormat unmarshal doesn't close the stream correctly
  • [CAMEL-7338] - CxfClientCallback should not populate camel exchange OUT message if no response comes back to cxf producer and camel exchange pattern is InOnly
  • [CAMEL-7341] - CXFRS: InInterceptor defined in Spring is ignored
  • [CAMEL-7344] - Some endpoints configured using beans may result in NPE under DEBUG mode
  • [CAMEL-7347] - camel-netty - Should return 404 instead of 503 if context-path did not match a route
  • [CAMEL-7351] - NPE in CamelInternalProcessor
  • [CAMEL-7353] - Configuring an http4 endpoint with hostname starting with "http" leads to an URISyntaxException
  • [CAMEL-7356] - Password constant mapped to System Id Header parameter
  • [CAMEL-7357] - CXFRS does not check JAX-RS Exception mappers
  • [CAMEL-7359] - Simple Language - Additional after text after inbuilt function call is ignored
  • [CAMEL-7363] - camel headers are not preserverd in camel-ahc component
  • [CAMEL-7369] - camel-mongodb - The readPreference option doesn’t work
  • [CAMEL-7377] - mark openjpa as dependency in Camel JPA feature
  • [CAMEL-7379] - allChannels should not be static variable for the NettyProducer
  • [CAMEL-7383] - camel-script-* features should depend on scripting-api bundle
  • [CAMEL-7385] - camel-exec feature should install commons-io bundle
  • [CAMEL-7389] - camel-quartz component does not define osgi import version for quartz
  • [CAMEL-7391] - camel-netty - NettyProduce should use timer from component instead of creating new timer per producer
  • [CAMEL-7398] - Salesforce recently changed their login API to use new OAuth fields, which breaks the camel-salesforce component
  • [CAMEL-7399] - Camel Salesforce integration tests fail with ClassNotFoundException
  • [CAMEL-7406] - Empty password in JCR Endpoint URI causes NPE
  • [CAMEL-7409] - Camel ZipIterator should not eat the IOException
  • [CAMEL-7411] - EventDrivenPollingConsumer can lose exchanges when the internal queue is full
  • [CAMEL-7415] - lazyLoad with CSV blows up on last line
  • [CAMEL-7428] - Simple Language - Operators are not evaluated for setting body or headers
  • Improvement:
  • [CAMEL-6458] - Add option renameUsingCopy option to file component
  • [CAMEL-6694] - Make Log component and EIP compatible with log4j MDC Sift Appender
  • [CAMEL-6820] - Improve SJMS handling of exchange body data types
  • [CAMEL-7231] - Support receiving attachments with Spring-WS
  • [CAMEL-7309] - Tone down the excessive INFO logging about Woodstox xml parser not in use
  • [CAMEL-7312] - File -> Properties type converter
  • [CAMEL-7313] - camel-sql - Add support for fetching generated primary keys when using INSERT
  • [CAMEL-7327] - Improve Container.Instance API to deal with setting a Container after CamelContexts have been created. There is a big risk CamelContext's won't get managed right now
  • [CAMEL-7329] - Upgrade camel-kafka for kafka 0.8.1 release
  • [CAMEL-7331] - Kafka: producer lookup the destination topic in the message header
  • [CAMEL-7334] - Event notification for routes added/removed
  • [CAMEL-7335] - Kafka : Expose kafka configuration properties to the camel component
  • [CAMEL-7350] - JaxbDataFormat should not parse the Schema over and over again
  • [CAMEL-7358] - Tracer - Should have options to allow streams or files
  • [CAMEL-7361] - would be nice if org.apache.camel.spring.Main could take a system property or CLI option to package scan classes too
  • [CAMEL-7370] - camel-mongodb - Should properly close the underlying physical connection to MongoDB while shutting down
  • [CAMEL-7372] - Allow users to pass in their own EntityManager through the exchange
  • [CAMEL-7373] - Reduce the logging noise from the log definition
  • [CAMEL-7387] - MainSupport - Should not barf if no CamelContext found
  • [CAMEL-7388] - xmlTokenizer to optionally wrap the token with the enclosing elements
  • [CAMEL-7393] - Recipient List - Allow to define cache size, so you can tweak that or turn it off
  • [CAMEL-7394] - camel-netty-http - Add support for HTTP_PATH for dynamic-to
  • New Feature:
  • [CAMEL-7333] - RuntimeEndpointRegistry - To capture which endpoints are in use by which routes
  • Task:
  • [CAMEL-7289] - Update MQTT client library dependency to latest version 1.10
  • [CAMEL-7355] - HttpPollingConsumer in camel-http4 need to use HttpClient 4.3.x API
  • [CAMEL-7368] - The feature descriptor should use a namespace

New in Apache Camel 2.13.0 (Mar 21, 2014)

  • New and noteworthy:
  • Using in Spring will now shutdown eager by default. This ensure a cleaner shutdown of Camel, as dependent are not shutdown at this moment. The will then be shutdown after . There is a new attribute shutdownEager on 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 '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 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
  • 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.
  • New Components:
  • camel-hdfs2 - integration with HDFS using Hadoop 2.x client
  • camel-infinispan - to interact with Infinispan distributed data grid / cache.
  • camel-jgroups - provides exchange of messages between Camel infrastructure and JGroups clusters.
  • camel-kafka - integration with Apache Kafka
  • camel-optaplanner - to use OptaPlanner for problem solving plans.
  • camel-splunk - enables you to publish and search for events in Splunk
  • camel-swf - for managing workflows running on Amazon's Simple Workflow Service
  • New Camel Maven Archetypes:
  • camel-archetype-cxf-code-first-blueprint
  • camel-archetype-cxf-contract-first-blueprint
  • New Annotations:
  • @BeanInject
  • New Languages:
  • JSonPath - To perform Expression and Predicate on json payloads.
  • API changes:
  • The interface of http4 org.apache.camel.component.http4.HttpClientConfigurer's method configureHttpClient(HttpClient client) was changed to configureHttpClient(HttpClientBuilder clientBuilder)
  • Added getRegistry(T) to CamelContext

New in Apache Camel 2.12.3 (Feb 28, 2014)

  • Bug:
  •    [CAMEL-6717] - camel-mqtt - dead lock when processing fetching/sending messages at high frequency
  •    [CAMEL-6822] - camel-facebook - Error when calling endpoint with options from header and configuration bean
  •    [CAMEL-6854] - Type conversion between DOMSource and InputStream breaks on Windows
  •    [CAMEL-6914] - Camel fails to send messages to IPv6 address with a port number
  •    [CAMEL-6922] - XmlConverter cannot convert from ElementNSImpl to Document
  •    [CAMEL-6988] - 2.12.1 caches groovy call - resulting with previous caller state
  •    [CAMEL-7005] - camel-stream - stream in requires 2 x enter to react in console demo
  •    [CAMEL-7011] - Upgrade CXF version to 2.7.7
  •    [CAMEL-7016] - JMX - Update route from xml on route mbean should update current route only
  •    [CAMEL-7018] - Using custom beans with @ManagedResource shows unavailable standard attributes
  •    [CAMEL-7021] - Allow clearing of field 'Name' for upserts in Salesforce component
  •    [CAMEL-7025] - StaxConverter throws NPE
  •    [CAMEL-7028] - tooling - Using the embedded goal of the Camel Maven Plugin ends up with a NPE
  •    [CAMEL-7029] - quartz2 - Simple trigger should repeat forever by default
  •    [CAMEL-7031] - RabbitMQ Producer not able to use the default exchange
  •    [CAMEL-7035] - camel-core-osgi doesn't properly handle different version of the same bundle
  •    [CAMEL-7036] - Camel XSD validation not working with apache xerces
  •    [CAMEL-7037] - tooling - Using the embedded and run goals of the Juice Maven Plugin ends up with a NPE
  •    [CAMEL-7042] - Graceful shutdown of RabbitMQConsumer requires channel.close()
  •    [CAMEL-7044] - We should ignore the rabbitmq.ROUTING_KEY when bridgeEndpoint option is true
  •    [CAMEL-7045] - BacklogTracer - dumpTracedMessages should check for route id as well
  •    [CAMEL-7049] - Cannot set JMSReplyTo with a topic destination when sending a message to a queue
  •    [CAMEL-7052] - PGPDataFormat: Unable to encrypt using subkey
  •    [CAMEL-7055] - NullPointerException at FileInputStreamCache.(FileInputStreamCache.java:52) in connection with DataFormat.marshal
  •    [CAMEL-7057] - Issue with password having double &&
  •    [CAMEL-7058] - camel-sql - Setting SQL_ROW_COUNT header is not updated if the header already exists
  •    [CAMEL-7061] - DefaultCxfRsBinding only uses Exchange.getOut()
  •    [CAMEL-7062] - Tracer, BacklogTracer and BacklogDebugger should stop/shutdown when Camel does that
  •    [CAMEL-7064] - JcrProducer ignores existing nodes and creates invalid node hierarchies
  •    [CAMEL-7068] - Flatpack skips 1 row every 2 rows when using split with streaming=true
  •    [CAMEL-7069] - Sending an empty soap body message to a generic provider camel-cxf consumer results in NPE
  •    [CAMEL-7073] - camel-restlet - request headers are sent in response
  •    [CAMEL-7077] - FtpEndpoint createRemoteFileOperations should keep the parameter for next invocation
  •    [CAMEL-7087] - StreamCache does not reset at the end of the pipeline
  •    [CAMEL-7096] - The ObjectHelper#createIterator utility should properly adhere the java.util.Iterator contract
  •    [CAMEL-7100] - CLONE - Camel Splitter eat up exceptions recorded by the underlying Scanner
  •    [CAMEL-7102] - Broken JUnit classes for testing authentication in camel-jcr
  •    [CAMEL-7107] - camel-sjms NullPointerException in case of connection loss
  •    [CAMEL-7111] - Multicast EIP with only one child processor does not call aggregate strategy
  •    [CAMEL-7112] - A single call of consumerTemplate.receiveBody consumes more than one messages from a SEDA queue
  •    [CAMEL-7116] - JettyHttpProducer.doStop does not stop client thread pool
  •    [CAMEL-7120] - NullPointerException on BindyFixedLengthFactory.unbind()
  •    [CAMEL-7123] - Enable Xml Transformer security processing feature by default
  •    [CAMEL-7125] - tokenizeXml fails when attributes have a / in them
  •    [CAMEL-7129] - Remove the CamelXsltResourceUri header from xslt component
  •    [CAMEL-7130] - Set XsltBuilder allowStax attribute to be true by default
  •    [CAMEL-7132] - QuartzComponent with custom Scheduler and multiple contexts requires JMX to be enabled
  •    [CAMEL-7139] - Problem with MvelExpression class visibility between camel bundles
  •    [CAMEL-7141] - Custom HeaderFilterStrategy does not work when set it on either component or endpoint uri
  •    [CAMEL-7142] - CsvDataFormat unmarshal overwrites delimiter in static CSVStrategy strategies
  •    [CAMEL-7143] - camel-groovy - Evaluation returns 1st result only
  •    [CAMEL-7145] - Added username, password options on cxf endpoint
  •    [CAMEL-7146] - NPE in Aggregator when completionSize = 1
  •    [CAMEL-7155] - Incorrect implementation of the method StringHelper.hasStartToken()
  •    [CAMEL-7159] - camel-bindy not picking up @Link annotation items
  •    [CAMEL-7160] - Throttling has problems with rate changes
  •    [CAMEL-7161] - camel-dozer - Can cause dead-lock in init when using spring
  •    [CAMEL-7163] - BacklogDebugger - Should not change body/header type to string
  •    [CAMEL-7167] - AbstractListAggregationStrategy : at the end of the split, the body is not replaced by the agregated list
  •    [CAMEL-7172] - camel-netty - Some options in netty configuration do not support # lookup
  •    [CAMEL-7182] - camel-guice - PostConstruct do not throw checked exception
  •    [CAMEL-7183] - Failed to validate camel-fop feature
  •    [CAMEL-7185] - APT - Should check inherited class/interface for UriParam when scanning
  •    [CAMEL-7192] - PGPDataFormat: Sub-Key not supported for signing and correct selection of encryption/signing key via KeyFlag
  •    [CAMEL-7198] - [cxfrs] Consumer returns 204 response for simple route
  •    [CAMEL-7200] - getComponentDocumentation do not work in OSGi
  •    [CAMEL-7202] - Find component names should discover all available components in OSGi
  •    [CAMEL-7207] - CxfRsEndpoint should accept in/out interceptors and properties
  •    [CAMEL-7209] - NIOConverter.toByteArray return bad data.
  •    [CAMEL-7210] - getComponentDocumentation does not work if component name has dash in name
  •    [CAMEL-7213] - NIOConverter need to call flip() when we put something into the buffer
  •    [CAMEL-7219] - Language endpoint with constant cannot load from classpath
  • Improvement:
  •    [CAMEL-5940] - camel-cache - Add option to cache component to easily configure ehcache XML file to load by default
  •    [CAMEL-6362] - camel-sjms - Consumers should always use dedicated Sessions
  •    [CAMEL-6623] - Support attaching to SQS queues where the user doesn't have permission to list the queues (manually build URL)
  •    [CAMEL-6661] - xslt: TransformerException: include href is empty
  •    [CAMEL-6689] - ResourceHelper do not work with encoded file pathes
  •    [CAMEL-6777] - We are building two different source distributions which should not be the case
  •    [CAMEL-6809] - rabbitmq.EXCHANGE_NAME header used in preference to uri exchange name
  •    [CAMEL-6838] - JMX Notification Trace Event Handler has no implementation for traceExchangeIn and traceExchangeOut
  •    [CAMEL-6973] - Add a simple expression for null
  •    [CAMEL-7000] - Avro DataFormat - Should initialize using start|stop logic instead of at runtime
  •    [CAMEL-7001] - Avro DataFormat - Classloading issue with loading schema
  •    [CAMEL-7002] - PGPDataFormat: restrict verifying public keys and allow several signatures
  •    [CAMEL-7014] - Potential problem with camel-restlet if unavailable
  •    [CAMEL-7020] - Make camel servlet related components deployable on OSGi with servlet 3.0
  •    [CAMEL-7026] - camel-jms - Allow a message to control the request timeout using a header
  •    [CAMEL-7034] - camel-quartz - Should auto assign scheduler instance name with camel management name
  •    [CAMEL-7046] - Base64DataFormat: enable streaming if streamCache=true
  •    [CAMEL-7066] - Unable to use Twitter Camel Component with proxy settings
  •    [CAMEL-7067] - JcrProducer should not store all exchange properties in the target JCR node
  •    [CAMEL-7072] - Veracode compliance. Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection') (CWE ID 470) in AnnotationTypeConverterLoader
  •    [CAMEL-7075] - Veracode compliance. Improper Resource Shutdown or Release (CWE ID 404) in FileInputStreamCache
  •    [CAMEL-7076] - spring-event should not be auto enlisted
  •    [CAMEL-7078] - camel-cxf-transport component should propagate SecurityContext
  •    [CAMEL-7079] - Improvements to camel-shiro's ShiroSecurityProcessor
  •    [CAMEL-7080] - Add support of lazy load to csv data format
  •    [CAMEL-7082] - Supporting to set more work thread in camel-restlet component
  •    [CAMEL-7083] - Log a warning when default encryption keys used
  •    [CAMEL-7086] - Allow multiple Zookeeper servers in endpoint
  •    [CAMEL-7088] - Veracode compliance. Improper Resource Shutdown or Release (CWE ID 404) in FileLockExclusiveReadLockStrategy
  •    [CAMEL-7099] - csv data format - Make use of buffered I/O while unmarshalling
  •    [CAMEL-7103] - camel-quartz - Store trigger information in job map
  •    [CAMEL-7109] - Attachments are not correctly ordered
  •    [CAMEL-7113] - Ignored InterruptedException in IdGenerator
  •    [CAMEL-7117] - JettyHttpProducer.client._threadPool contains non-daemon threads only
  •    [CAMEL-7119] - AggregationStrategies - Add useOriginal
  •    [CAMEL-7122] - javascript language not resolving
  •    [CAMEL-7131] - Set some default feature of DocumentFactoryBuilder
  •    [CAMEL-7134] - camel-twitter supports to configure if using SSL or not
  •    [CAMEL-7137] - camel-salesforce - Make it easier to configure in blueprint
  •    [CAMEL-7140] - camel-quartz - loading properties file should support file path
  •    [CAMEL-7150] - Provides options to setup the parameter on the WebSocketServlet
  •    [CAMEL-7154] - InterceptSendToMockEndpointStrategy - easier to add custom logic
  •    [CAMEL-7164] - TypeConverterRegistry - More JMX details
  •    [CAMEL-7176] - camel-vertx - Should support async request/reply
  •    [CAMEL-7177] - camel-vertx - Should allow to use clustered and non clustered vertx
  •    [CAMEL-7181] - Propagate the attachments information when the CXF endpoint is POJO and disable the MTOM
  •    [CAMEL-7186] - Add @UriParam to components in camel-core
  •    [CAMEL-7187] - apt document generator - OSGi split package issue when writing to same package
  •    [CAMEL-7188] - ManagedCamelContext - Find component names doesnt work
  •    [CAMEL-7195] - Default ehcache.xml configure from camel-cache jar should not rely on multicast
  •    [CAMEL-7203] - DefaultUnitOfWork - Optimize to only do defensive copy if useOriginalMessage is enabled
  •    [CAMEL-7205] - camel-twitter - Add JMX operations so users can see/change configuration at runtime
  •    [CAMEL-7208] - ManagedCamelContext - addOrUpdateRoutesFromXml should support decoding xml
  •    [CAMEL-7215] - Stop and un-schedule jobs on removal of route
  • New Feature:
  •    [CAMEL-6868] - camel-rabbitmq- Support clustered brokers using multiple addresses when calling ConnectionFactory
  •    [CAMEL-6993] - Use varargs in PredicateBuilder
  •    [CAMEL-7022] - UnitOfWorkFactory - for spi to allow users to plugin custom uow classes
  •    [CAMEL-7023] - Add hawtio goal to camel plugin
  •    [CAMEL-7101] - Add aggregation strategy to aggregate multiple messages into a zip file
  •    [CAMEL-7105] - Add ability to send html emails and auto reconnect for sqs queues
  • Task:
  •    [CAMEL-7032] - Align the netty version of camel components
  •    [CAMEL-7065] - Disable generate manul build by using profile fastinstall
  •    [CAMEL-7093] - Veracode compliance. Improper Resource Shutdown or Release (CWE ID 404) in QuartzComponent
  •    [CAMEL-7098] - csv data format - Simplify and clean-up the unmarshalling logic
  •    [CAMEL-7170] - Upgrade to CXF 2.7.10
  •    [CAMEL-7216] - Upgrade to xstream 1.4.7
  •    [CAMEL-7223] - camel-solr - Avoid using hard-coded ports for the unit-tests
  • Wish:
  •    [CAMEL-6984] - Add support to obtain message body size w/o a separate processor
  •    [CAMEL-7006] - Make method asService protected in class CamelBlueprintTestSupport
  •    [CAMEL-7184] - Improve camel-quickfix component to lazy create its engine on demand

New in Apache Camel 2.12.2 (Nov 28, 2013)

  • Bug:
  • [CAMEL-5376] - Mail component does not work as expected (Email Deletion is partially broken et Disconnect does not work well)
  • [CAMEL-5510] - Competing Consumers fails for jms queue using AdviceWith
  • [CAMEL-5883] - File consumer - When using done file name then delete the file when batch is complete
  • [CAMEL-6018] - camel-ftp module loses starting characters of path for root dir logins
  • [CAMEL-6086] - Unmarshal from ActiveMQ yields warning if message has been marshalled before enqueue and contains BigDecimal or BigInteger
  • [CAMEL-6093] - Multiple consumers exists on the same JMS endpoint uri and if you remove a consumer the other active consumers do not receive any messages anymore.
  • [CAMEL-6187] - http4 component should default to charset based on content type
  • [CAMEL-6250] - Setting id on endpoint in may not work
  • [CAMEL-6254] - Sftp changeCurrentDirectory doesn't work for some combinations of state
  • [CAMEL-6291] - can't be reused in multiple contexts when propertly placeholder resolution is used
  • [CAMEL-6309] - Sftp upload to subdirectory does not work if home directory is root ("/" or "\")
  • [CAMEL-6335] - Sftp cannot change to parent directory in a stepwise fashion
  • [CAMEL-6436] - camel-rss and camel-atom - Should includes feeds with same pub timestamp as it okay
  • [CAMEL-6440] - loss of data on xpath after cxf (payload-mode)
  • [CAMEL-6441] - Exception in service start (when before start it was in stopped state) leaves service in starting state
  • [CAMEL-6443] - camel-quickfix - Engine that could not start (e.g. because of store creation problems) is still stored in the engiens map, thus making futher starts problematic
  • [CAMEL-6447] - endChoice() has no effect in nested choice definition
  • [CAMEL-6452] - FileUtil.getDefaultTempDir() causes a classloader leak in webapps
  • [CAMEL-6459] - ReplyManager holds a reference to the first calling Bundle classloader
  • [CAMEL-6461] - camel-quartz - Stateful job - Redeploying bundle/war and having changed endpoint uri issue
  • [CAMEL-6501] - camel-cxf-transport's blueprint/camel.xsd xml schema is invalid
  • [CAMEL-6504] - org.apache.camel.main.Main#doStop() throws java.lang.IndexOutOfBoundsException
  • [CAMEL-6524] - camel-test-blueprint - Using isMockEndpointsAndSkip doesn't work
  • [CAMEL-6538] - NPE in validator component if no classpath prefix
  • [CAMEL-6541] - DefaultUnitOfWork's headers for the original message are the same object as the in message headers
  • [CAMEL-6544] - StringQuoteHelper should skip the separate character
  • [CAMEL-6546] - Installation of camel-mybatis feature fails
  • [CAMEL-6547] - Installation of camel-leveldb feature fails
  • [CAMEL-6548] - XQueryBuilder will override any saxon Configuration provided
  • [CAMEL-6557] - AbstractListAggregationStrategy does not work with batch completion strategy
  • [CAMEL-6560] - [JDBC Component] ResultMetaData as a header value - IndexOutOfBoundsException
  • [CAMEL-6561] - Inserting JSON like data with sql component cause a java.lang.StackOverflowError
  • [CAMEL-6569] - xslt component with saxon=true does not work in OSGi
  • [CAMEL-6571] - Wrong InputStream reference is used in method storeFile of class ScpOperations
  • [CAMEL-6572] - Validator component - Loading resource on classpath with relative paths doesnt work in OSGi
  • [CAMEL-6573] - adjust to the changed behavior in ehcache's CacheManager instance creation
  • [CAMEL-6576] - Fix a potential NPE
  • [CAMEL-6585] - camel-cxf should shutdown the bus when the endpoint is stopped.
  • [CAMEL-6586] - JMX - browsable endpoints such as seda has some attributes listed as unavaiable
  • [CAMEL-6592] - Invalid javadoc for org.apache.camel.spi.ShutdownStrategy#setTimeout
  • [CAMEL-6593] - Predicates from java dsl are not dumped to xml correctly
  • [CAMEL-6595] - camel-cmis component: test packages have the wrong name
  • [CAMEL-6602] - camel-cxf ClassCastException when use cxf FailoverFeature
  • [CAMEL-6604] - Routing slip and dynamic router EIP - Stream caching not working
  • [CAMEL-6605] - Custom HttpClientConfigurer makes Basic Authentication and Proxy settings ineffective
  • [CAMEL-6606] - When restart camel, lucene index folder always by empty
  • [CAMEL-6607] - Tokenize XML does not support child elements with names similar to their parent
  • [CAMEL-6609] - CXF FailoverFeature does not take effect when camel-cxf producer uses async invocation
  • [CAMEL-6610] - Always got IndexOutOfBoundsException when customized id of wireTap component
  • [CAMEL-6614] - quartz consumer - Suspend and resume does not work
  • [CAMEL-6625] - potential NPE in CxfConsumer if the PAYLOAD not match the ServiceModel
  • [CAMEL-6626] - Search critera for toSentDate throws NPE
  • [CAMEL-6627] - Splitter should close iterator if there was an exception and stopOnException enabled
  • [CAMEL-6630] - Validation using JAXB format is not thread safe
  • [CAMEL-6641] - SJMS component throws class cast error when used with IBM Webshpere MQ
  • [CAMEL-6656] - spring-batch - Looses headers
  • [CAMEL-6667] - Loop EIP doesn't honour copy option in some circumstances
  • [CAMEL-6684] - camel-cxf RAW message data format doesn't support MTOM
  • [CAMEL-6687] - Using simple language OGNL expressions doesn't work for Bean Binding when a field is null
  • [CAMEL-6690] - Memory leak SoapOutInterceptor.writeSoapEnvelopeStart with security headers
  • [CAMEL-6691] - seda - queue size compare should use equals
  • [CAMEL-6695] - mbeansRegistered in DefaultManagementAgent isn't ThreadSafe
  • [CAMEL-6696] - camel-cxf should not setup the holder and wrapperClass interceptors in CXF_MESSAGE data format
  • [CAMEL-6699] - camel-blueprint - Using routeContextRef to refer to a RouteBuilder in another bundle causes ClassCastException
  • [CAMEL-6700] - camel-blueprint - Using and referrring to SSLContextParameters with property placeholders can lead to CircularDependencyException
  • [CAMEL-6702] - camel-http4 - In bridge mode should use noop cookie store to not eat memory
  • [CAMEL-6703] - camel-mail - Folder is not open
  • [CAMEL-6726] - Camel-Redis: Serializer passed through URI is used only on consumer
  • [CAMEL-6730] - camel-netty - RequestTimeout should not trigger if we read data
  • [CAMEL-6740] - System property org.apache.camel.jmx.createRmiConnector is ignored with spring xml
  • [CAMEL-6743] - Using @Simple (or others) bean parameter binding for boolean type should eval as predicate
  • [CAMEL-6750] - readLock=fileLock causes GenericFileOperationFailedException
  • [CAMEL-6752] - Bean binding to covariant methods throws AmbiguousMethodCallException
  • [CAMEL-6753] - org.jboss.weld.exceptions.DefinitionException: WELD-001106 BeanAttributes.getStereotypes() returned null for org.apache.camel.cdi.internal.CamelContextBean@19acc826
  • [CAMEL-6757] - scp task does not respect StrictHostKeyChecking option
  • [CAMEL-6758] - Null Pointer exception when removing SjmsComponent
  • Improvement:
  • [CAMEL-6091] - Improvement to SqlProducer class
  • [CAMEL-6393] - Making header propagation from cxf to camel consistent
  • [CAMEL-6408] - cxf endpoint's should log the parsing exception when failing to extract the root element name
  • [CAMEL-6466] - Log component URI parameters should be able to override custom formatter properties
  • [CAMEL-6471] - CxfPayload - Dont output the body in toString if streaming mode
  • [CAMEL-6505] - GenericFileMessage should override copy() method
  • [CAMEL-6553] - bean component - Avoid WARN logging for not finding class when invoking a bean with constant values
  • [CAMEL-6556] - classpath problem with camel:run and provided dependencies
  • [CAMEL-6559] - script builder synchronized the operation of evaluateScript
  • [CAMEL-6570] - CLIENT_CREATED event can't be sent in the CXFEndpoint.createClientFactoryBean()
  • [CAMEL-6580] - camel-jms - Dont allow CACHE_NONE for replyToCacheLevelName for temporary queues
  • [CAMEL-6583] - camel-jms - Add option to include optional JMSX properties in binding to Camel message
  • [CAMEL-6590] - Restlet header warnings
  • [CAMEL-6591] - SFTP endpoint fails if the server disconnected the socket
  • [CAMEL-6611] - camel-netty-http - If sending a plain request to SSL then we should send back nice error response
  • [CAMEL-6615] - Upgrade to XML-Security 1.5.5 + enable secureValidation
  • [CAMEL-6619] - Ignore line breaks in camel-xmlsecurity component
  • [CAMEL-6629] - Add requestBufferSize and requestHeaderSize options for jetty
  • [CAMEL-6637] - BeanIO Data Format logs at WARN level for conditions ignored in configuration
  • [CAMEL-6639] - SimpleLanguage.simple should detect if its a predicate and use that instead
  • [CAMEL-6642] - Allow to configure a custom ExpressionResultComparator for resequencer eip in xml
  • [CAMEL-6651] - Calling processAnnotations when using the XStreamDataFormat's aliases are set
  • [CAMEL-6653] - Support to set preferredAuthentications on SFTP
  • [CAMEL-6655] - SMPP - add support of Vendor Specific Optional Parameter
  • [CAMEL-6674] - Add allowNull option to @Converter to allow type converters to return null as valid response for special use-cases
  • [CAMEL-6678] - Throttler does not honor time slots after period expires
  • [CAMEL-6680] - Simple language - Have singleton language for better performance
  • [CAMEL-6682] - mvel language - Compiling script in OSGi may have issue with TCCL class loader
  • [CAMEL-6697] - camel-test-blueprint - Allow to register custom services in OSGi registry before Camel starts
  • [CAMEL-6722] - binding component - Should start/stop its child services
  • [CAMEL-6724] - RegistryBean - Should avoid synchronized to getBean faster
  • [CAMEL-6734] - Introduce CamelFileNameConsumed Header
  • [CAMEL-6748] - CVE-2013-4330: Skipping Header Evaluation
  • [CAMEL-6760] - camel-test-blueprint - Possibility to configure Camel Context creation timeout
  • [CAMEL-6764] - camel-jms - Add workaround for AMQ to get JMSXUserID
  • [CAMEL-6766] - InterceptFrom - Add support for using property placeholders
  • [CAMEL-6780] - Binding component - Avoid duplicate prepare
  • New Feature:
  • [CAMEL-6603] - Long Date TypeConverter
  • [CAMEL-6681] - Configurable LockType for JpaConsumer
  • Task:
  • [CAMEL-6500] - camel-cdi - Deployment failure on Glassfish 4.0
  • [CAMEL-6531] - Upgrade org.mvel:mvel2 to 2.1.6.Final
  • [CAMEL-6532] - Upgrade org.beanio:beanio to 2.0.6
  • [CAMEL-6533] - Upgrade org.apache.openejb:openejb-core to 4.5.2
  • [CAMEL-6578] - Upgrade CXF to 2.7.6 / 2.6.9
  • [CAMEL-6587] - Cannot build camel with maven 3.1
  • [CAMEL-6704] - saxon 9.4.0.4 no longer in central - use 9.4.0.7
  • Test:
  • [CAMEL-6633] - Add some ws-spec tests to blueprint cxf tests

New in Apache Camel 2.12.0 (Sep 9, 2013)

  • New and Noteworthy:
  • Endpoint Annotations along with automatically created HTML documentation for the endpoint parameters; this makes it easier for component developers to add a few refactoring-safe annotations to their Endpoint or Consumer implementations and, (along with javadoc comments on the field or setter method), get nice user documentation on how to use the endpoint for free.
  • ComponentConfiguration API provides a handy API for tools developers to introspect on a Component to find all the possible parameters, their types and any extra annotations (like Bean Validation Annotations) to be able to create/edit endpoints or URI strings so that tools can generate nicer UIs for configuring endpoints than just letting folks edit Strings.
  • EndpointCompleter API provides a hook so that command line tools (like Karaf's shell), IDEs and web tools can get (bash tab like) auto-completion on endpoint paths (such as file or directory names, message queue names, database table names) when creating or using new endpoints
  • Reduced stack-frames in use during routing, that also makes Camel's stack traces being logged much less verbose. This also allows people to easier debug the internals of Camel as less AsyncCallback callbacks are in use during routing.
  • Easy to use Message History out of the box. And included message history as "route stack-trace" when exceptions logged by Error Handler to make it easier for end users to spot where the exception occurred.
  • Spring Web Services now supports setting/receiving SOAP headers more easily using a header on the Camel Message.
  • Evaluating Groovy expressions is faster as we cache the compiled scripts.
  • Added base64 option to Shiro Security to allow transferring security token over JMS and other transports as base64 encoded representation.
  • Made it easier to use Shiro Security as the credentials can be provided in headers, when sending a message to a secured route.
  • Bindy now supports enums.
  • Added new BacklogDebugger to perform live debugging of messages during routing. The BacklogDebugger has JMX API allows tooling to control the debugger.
  • While using the Jackson library through the JSON Dataformat there's now a jsonView attribute you could make use of directly inside the DSL itself.
  • SMPP now supports optional parameters in all commands where they are possible.
  • JDBC now supports named parameters.
  • Added timeout support for Direct producers to wait for consumer to become active.
  • Added stats action to ControlBus to easily get performance statics in a single XML message.
  • Added support for request timeout on Netty producer, and to configure logging level on Netty consumer to be less noisy for ChannelClosedException which can flood the logs when client disconnects abruptly.
  • Spring Batch component producer now returns the JobExecution instance as the output message. Users can use the JobExecution instance to perform some operations using the Spring Batch API directly.
  • Added support for NULL values in SQL with named parameters.
  • Optimized Jetty streaming responses in non-chunked mode; and as well using buffer sizes based on HttpServletResponse.getBufferSize() instead of fixed size of 4kb.
  • Added greedy option to scheduled polling consumer.
  • Added support for accessing the length field on Java arrays in Simple language.
  • Added support for using JAXB annotations with Camel's Jackson JSON component.
  • Added the ability for Bindy to skip content when parsing fixed-length records.
  • MongoDB now supports aggregation queries.
  • Netty allows to use shared Netty boss and worker thread pools.
  • The Camel Maven Archetypes for component and data format now packages as OSGi bundles out of the box.
  • Easier Stream caching configuration using StreamCachingStrategy. Also allows spool directory per CamelContext instead of shared per JVM. And insight at runtime using JMX management. As well allowing to plugin 3rd party implementations.
  • Improved Netty to be able to join an UDP multicast group.
  • Using Camel Spring is now setting up Camel routes later in the process allow Spring to complete all of its dependency injection, before Camel RouteBuilder instances is configured. This allows to safely use Spring dependency injection in these RouteBuilder classes.
  • Services in a CamelContext which can only be enlisted once (eg it similar to a static in a JVM) has simpler and fixed MBean names in JMX.
  • JDBC based aggregation repository for the Aggregate EIP now supports optimistic locking, allows clustered Camel applications to use a shared database for the aggregation repository.
  • Recipient List stores a property (Exchange.RECIPIENT_LIST_ENDPOINT) on the Exchange with the URIs of the Endpoint the message was sent to.
  • Added mask option to Camel JMX to hide sensitive information such as passwords.
  • Added outputType option supporting SelectList, and SelectOne to SQL Component to dictate the output message body type when doing SQL SELECT queries.
  • Polling Consumers such as File, and FTP now supports using custom scheduler. Providing a new Quartz2, and Spring based out of the box, that allows to use CRON based scheduler.
  • Polling Consumers such as File, and FTP now supports backoff, to let the consumer be less aggressive, when there has been no messages to poll, or errors keeps occurring for a while.
  • Added support for XML Encryption 1.1 algorithms in the XMLSecurity data format. It is now possible to specify stronger digest algorithms when using RSA OAEP Key Transport algorithms.
  • Netty consumer now unbinds/binds the acceptor when the route is suspended/resumed.
  • EIPs supporting AggregationStrategy such as Aggregate, Splitter, Content Enricher now supports using a POJO as the AggregationStrategy, which allows to implement the aggregate logic with no Camel API dependency. See more details at the Aggregate page.
  • camel-jpa upgraded to use native JPA API instead of Springs deprecated JpaTemplate
  • Improved validation of routes being misconfigured on startup, when using onException, onCompletion, transacted, etc. as they must be configured as top-level on the route (eg in the start), and not later (such as nested in a Splitter).
  • Added new @PropertyInject annotation to inject property placeholders to POJOs
  • New class org.apache.camel.util.toolbox.AggregationStrategies as a starting point to obtain commonly used Aggregation Strategies for Multicast, Splitter, Aggregator, etc. EIPs.
  • New FlexibleAggregationStrategy serving as a one-stop to perform typical aggregation strategy logic out-of-the-box: filtering results, storing them in properties, headers or bodies, as a list, casting results, etc.
  • Improved performance when doing Bean method calls using Simple OGNL calls
  • Improved Dozer Type Conversion to work better with OSGi Blueprint (though Dozer 5.5 may be required to work even better)
  • JMS now also enlists topic destinations as managed endpoints in JMX
  • Graceful Shutdown now allows to suppress logging after CamelContext has been stopped, due to a timeout hit, and there may still be inflight Exchanges that may afterwards be rejected being executed and causing WARN logs; which now can be suppressed.
  • Made it easy to add custom services on startup when testing with Blueprint Testing.
  • XML Signature support via the XML Security component.
  • Fixed Issues:
  • Fixed setting .id in Java DSL on some EIPs such as the Validate
  • Fixed Dead Letter Channel always handled exception, which wasn't the case if an Exception Clause was in use, which didn't had handled=true.
  • Fixed Using PropertyPlaceholder in attributes defined on .
  • All Camel Components will configure their consumers when being created to ensure you can configure from URIs with consumer. as prefix.
  • Fixed QuickfixJEndpoint to adhere a given InOut MEP correctly.
  • Fixed using property placeholders in a Simple predicate used inside a when in a Content Based Router when using Java DSL
  • Fixed a race condition in File consumer which may lead to a tiny window for another process to pickup a file, as the read lock is committed before the file is moved afterwards etc. Now read locks is executed last.
  • HTTP4 now validates that only one instance of org.apache.camel.util.jsse.SSLContextParameters is used per component, as multiple is not supported, and could lead to undesired side effects.
  • Fixed possible dead-lock during Graceful Shutdown if a route starts from SEDA and uses Splitter or Multicast and maximumRedeliveries was enabled as well.
  • Fixed TokenizeXML to support self closing tags.
  • Fixed Blueprint Testing to work with isMockEndpointsAndSkip and other similar functionality of the CamelBlueprintTestSupport class.
  • Fixed Routing Slip to emit ExchangeSentEvents also
  • Fixed Quartz routes with stateful jobs may not trigger if redeployment with changed endpoint uris.
  • Fixed Recipient List, Routing Slip, and Dynamic Router EIPs to work with Stream caching
  • Fixed suspending/resuming Camel Quartz routes
  • Fixed SQL Component using queries with a single parameter and the data is JSON like structure (having comma separators)
  • Fixed Jetty to be able to use stream cached streams that was spooled to disk, as its reply message when sending back reply to the caller.
  • Fixed endChoice() in Java DSL to work when being nested in parent Content Based Router(s)
  • Fixed Lucene to reuse existing index directory if Camel is being restarted etc.
  • Fixed using to not share the routes when using multiple , but each have their own route instances to not cause side-effects between the CamelContexts.
  • Fixed using type converter from NodeList -> Node
  • Fixed having 2+ routes from the same JMS queue, not stop the endpoint if there are still active listeners when a route is stopped.
  • Fixed SEDA when using queueSize not able to identify its same queue size, when using multiple SEDA endpoints for the same queue name/size.
  • Fixed using in OSGi Blueprint when referring to a RouteBuilder from another bundle, exposed in the OSGi service registry.
  • Fixed OSGi Blueprint in some situations causing a CircularDependencyException when using Camel namespaces outside a , being referred from inside the .
  • Fixed HTTP4 in bridge mode to not store cookies, which otherwise would eat up memory.
  • New Components:
  • camel-core - A Camel DataFormat Component for working with Data Formats as if it was a regular Component supporting Endpoints and URIs.
  • camel-disruptor - SEDA behavior using the ultra-fast LMAX Disruptor library.
  • camel-geocoder - For looking up geocodes (latitude, longitude) for a given address, or reverse lookup with Java API for Google Geocoder
  • camel-leveldb - Added docs for this component.
  • camel-mustache - For templating using Mustache
  • camel-mvel - For templating using MVEL
  • camel-netty-http - HTTP component using Netty as transport
  • camel-quartz2 - For scheduling using the Quartz 2.x scheduler
  • camel-sap-netweaver - For integration with SAP NetWeaver Gateway
  • camel-stomp - For communicating with Stomp compliant message brokers, like Apache ActiveMQ or ActiveMQ Apollo
  • camel-vertx - For working with the Vertx EventBus.
  • camel-weather - For polling weather information from Open Weather Map
  • camel-yammer - Allows you to interact with the Yammer enterprise social network
  • camel-rabbitmq - Allows you to interact with the RabbitMQ.
  • camel-xmlsecurity - Support for the XML Signature specification.
  • New DSL:
  • New fluent builder for Aggregation Strategies: org.apache.camel.util.toolbox.AggregationStrategies.
  • New Annotations:
  • @PropertyInject
  • New Examples:
  • MyBatis Example
  • Netty HTTP Server Example
  • camel-example-jdbc - An example using JDBC component with an embedded database
  • camel-example-restlet-jdbc - An example using Restlet and JDBC with an embedded database
  • API changes:
  • The interface org.apache.camel.api.management.mbean.ManagedTracerBacklogMBean has been renamed to org.apache.camel.api.management.mbean.ManagedBacklogTracerMBean
  • Added inMemory, and length methods to org.apache.camel.StreamCache
  • Changed the parameter type ProcessorDefinition to NamedNode on method getObjectNameForProcessor in interface org.apache.camel.spi.ManagementNamingStrategy
  • Added removeTypeConverter method to org.apache.camel.spi.TypeConverterRegistry
  • Added allowNull method to org.apache.camel.TypeConverter
  • Added hasTimeoutOccurred() method to ShutdownStrategy

New in Apache Camel 2.11.1 (Jul 17, 2013)

  • Sub-task:
  • Improve unit tests for the optimistic aggregate repo
  • Bug:
  • camel-quickfix: QuickfixjEndpoint should adhere the InOut exchange pattern if you would ask for this MEP
  • Tokenize XML does not support self-closing XML tokens
  • Multiple http4 components modify each other port setting
  • Simple expression and predicate behaviors are different when accessing to map with a space in the key
  • setting DefaultShutdownStrategy.setTimeout(0L) may cause infinite timeout
  • Memory leak when using CometD producer
  • camel-aws - Possible concurrent modification exception
  • CXF Example OSGi fail in Karaf
  • camel-example-etl failed
  • camel-fop - Does not propagate headers
  • Commands doesn't support a custom JMX Agent
  • Camel dont set ID for ToDefinition object, when using validate in the route
  • AdviceWith doesn't work with doTry
  • Mina UDP default codec should keep the data as byte[]
  • debugBefore() and debugAfter() not called if unit test extends CamelBlueprintTestSupport
  • Regression in 2.11.0 bean invocation
  • DeadLetterChannel - When messages sent to DLQ it should always regard it as handled = true
  • Setting exceptionHandler on consumer from uri should work
  • Property placeholder optimization broke placeholders in Spring camelContext configuration
  • Camel-validator not able to resolve schema when using useSharedSchema=false
  • Not possible to advice activemq endpoint with options
  • camel-example-cxf-osgi camel-example-cxf-blueprint have some warning when running the test
  • BridgePropertyPlaceholderConfigurer does not support nested Spring properties from System variables
  • Simple expression and predicate have different behaviors when used along with properties
  • StringQuoteHelper not able to handle single quote inside double quote
  • DefaultShutdownStrategy shutdown timeout of 0 will never timeout and go in negative time
  • SecurityException in HDFS producer/consumer when no security configuration is present
  • camel-restlet - Should set response correctly on Exchange depending on has out or not
  • camel-http / servlet - Should set response correctly on Exchange depending on has out or not
  • camel-shiro - Should detect new username if always reauthenticate is false
  • BigDecimalFormat can't deal with the number with big precision
  • The logic in stream producer should sync (lock) and not per method which is wrong
  • GsonDataFormat doesn't use given Gson instance anymore
  • Removing route stops other routes from the same producer
  • vm component - Stopping a route when using multipleConsumers should not stop MP if there is other routes using it
  • Headers are not set correctly in some situation
  • Route with suspended SedaConsumer can't be stopped correctly
  • bean language - Should always use ?method= as preferred way for specifying the method name, can cause problems with the old dot style
  • camel-solr - Should close its resources when stopping
  • cCXF route proxy cannot return Fault message to client when Dataformat is CXF_MESSAGE
  • File consumer - Race condition for markerFile read lock strategy
  • LOG-Eip log an ERROR by evaluating Simple Language expression
  • ScriptBuilder Some scripting are exception lost
  • Graceful shutdown with maximum redeliveries enabled from seda route may hang
  • camel-netty-http route throws java.lang.IllegalStateException
  • Deadlock in camel netty while sending messages to multiple tcp endpoints in single route
  • connectionTimeout property is ignored by JavaMail
  • NULL values are not supported in named parameters
  • TestNG test cases not working correctly with groups
  • SFTP: NPE if no private key file is supplied
  • camel-mina and camel-mina2 fail when configured with Spring or blueprint
  • Routing slip EIP - Does not send ExchangeSentEvent notifications
  • Improvement:
  • Spring-WS should populate Camel Header with the SOAP Header
  • camel-castor does not use mapping file to convert XML to Java
  • [JDBC component] Add ResultMetaData as a header value
  • Add support to DirectEndpoint for blocking until a consumer is available
  • Support for SFTP through a proxy
  • Apache Camel uptime reported in logs - Add to the log message that its Apache Camel etc
  • camel-example-osgi - Should not output to system out, but use log instead
  • ftp(s) producers should add the ftpReplyString to the header
  • ServiceMBean - Should have an id so its easy to spot what the service is
  • Route and CamelContext MBean - Add reset method that also reset all its processors
  • ScheduledPollConsumer.startScheduler() access type should be "public", not "protected"
  • BlueprintCamelContext start() method should setup the TCCL
  • Control Bus - Add suspend and resume actions
  • camel-netty - Loading key store and trust stores should support classpath as well
  • and/or operator support in twitter keywords search
  • Improve Groovy performance
  • camel-blueprint - Should support using placeholder namespace for using property placeholders on any type in the DSL
  • File consumer - Check in progress eager as well to avoid any very slight chance for duplicate pickup
  • link to camel registry in camel-stax is missing
  • Routing engine - Preparing exchange should cater for end user by mistake copy headers the wrong way
  • Validations exception should include line/column
  • Allow to specify the string-template delimiters
  • Populate all optional parameter for SubmitSm, SubmitMulti and DataSm to SMSC
  • camel-krati - KratiConsumer should support maxMessagesPerPoll
  • camel-restlet - Allow to configure reuseAddress option
  • HTTP4 - Set the content length for requests, if known
  • seda/vm - Discard messages if shutting down route
  • camel-http4 - Only one instance of SSLContextParameters can be supported per component
  • camel-sql - Allow to configure separator when using # placeholder and values is taken from message body
  • Add tokenizeXML to ValueBuilder
  • When StartupListener is called, camel is still in starting, not started state
  • Support JAXB annotations in Jackson Data Format
  • Seda endpoints with same queue with mixed multipleConsumers should validate that only one setting is allowed
  • camel-csv - Delimiter option should be useable in unmarshal as well
  • Add greedy option to ScheduledPollConsumer
  • allow loading of keyfile from classpath
  • Can't access to length of Array (java) from simple language
  • Add responseBufferSize option to camel-jetty
  • Performance improvement in DefaultCamelContext by delaying synchronized block
  • Allow for skipping fields and trailing characters in Bindy fixed-length records
  • camel-mongodb: Upgrade MongoDB driver from 2.9.1 to 2.11.2
  • ActiveMQUuidGenerator should allow configuring server socket port number
  • New Feature:
  • camel-netty - Add timeout option
  • Allow to combine predicates applying logical operators
  • Provide support for ICAL data format
  • Camel karaf command to show type converter utilization stats
  • Stax support for toggling namespace awareness
  • camel-bindy - new EnumFormat
  • Controlbus - Add stats action to get performance statics in XML
  • New FileExist option for File component: TryRename
  • Add aggregate ability to camel-mongodb
  • Task:
  • cannot use camel-cxf and camel-jetty at the same time due to dependency problem
  • ResourceEndpoint duplicated between camel-core and camel-spring. Should be removed from camel-spring
  • camel-itest - Fix the Maven critical warning about camel-validator-test-resources.jar
  • Upgrade to Maven JavaDoc plugin 2.9.1 to address the Javadoc vulnerability CVE-2013-1571
  • Upgrade to Hazelcast 2.6
  • Upgrade javax.mail/mail from 1.4.5 to 1.4.7
  • Upgrade org.hibernate:hibernate-entitymanager to 4.1.12.Final
  • Upgrade com.sun.xml.parsers:jaxp-ri from 1.4.2 -> 1.4.5

New in Apache Camel 2.11.0 (Apr 29, 2013)

  • New and Noteworthy:
  • 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 @.
  • 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 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
  • The thread name pattern can easily be configured on 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 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.
  • 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 using completionFromBatchConsumer
  • 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 another onException 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 per RouteBuilder 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.
  • Unhandled exceptions occurred during routing from SMPP routes is now propagated back to the SMPP library to deal with.
  • Fixed Restlet parsing of last modification date header to use RFC-2822 date pattern.
  • Fixed Aggregator EIP when using completion size expression and fixed size together not working as expected.
  • Fixed Crypto to close streams after usage, which otherwise could prevent deleting files on Windows, which tend to lock files if a stream is open.
  • Fixed issue with Groovy language in OSGi
  • Fixed issue with localWorkDirectory option on FTP not using the optimization to try to rename the work file when routing to a File endpoint.
  • Fixed SMPP to use the right data coding by using Octet unspecified (8-bit binary) and using the specified alphabet from the exchange, if provided.
  • Fixed issue with configuring Jetty component using a name other than "jetty".
  • Fixed issue with request/reply over JMS where a route is used on "the other end" to process the request and send back the correlated reply message; where a Camel route is used which has only 1 output, which can lead to no reply message being sent.
  • Fixed regression in AWS-SQS by updating the existing queue without any attributes.
  • Fixed issue with Using PropertyPlaceholder in Expressions in routes which are using or .
  • Fixed issue with Splitter which swallow the IOException catched by the underlying Scanner.
  • Fixed issue with Splitter where tokenizeXML would not split XML messages containing nodes with namespace prefixes.
  • Fixed issue when using Jetty component would create a http client having a live thread pool, which is only needed if using producers of Jetty. Also improved handling lifecycle of clients to be per producer by default instead of shared, which otherwise can cause issues.
  • Fixed issue with File and FTP consumers when using doneFileName then avoid picking up files in middle of group if done file is written during scanning.
  • Fixed issue with File and FTP consumers when using doneFileName may produce too many WARN logs about cannot delete doneFileName.
  • Fixed issue with Temporary Queue ReplyTo destination being recreated every time a new multiple concurrent consumer was initialised (JMS component).
  • Fixed issue with XSLT was not using custom assigned UriResolver to load the initial xslt resource, but only for other included resources.
  • Fixed issue when Using PropertyPlaceholder with OSGi blueprint and using Jasypt for decrypting placeholders at the same time.
  • Fixed JMX component to work in OSGi if output is XML.
  • Fixed Aggregator to not check for timeout if completion size expression was in use, and not completed yet.
  • Fixed issue with possible to have negative in-flight counts when using Content Enricher, Bean or annotation DSL under certain conditions.
  • Fixed issue with Quartz consumer may not work if being configured to trigger with days apart causing its endpoint to be evicted from Camel's endpoint cache.
  • Fixed issue with Karaf then Camel applications will not properly restart, if using blueprint-cm to reload bundle due .cfg file change.
  • Fixed a race condition in Aggregate eip when recovery is enabled and a in progress exchange was completed after the recovery scan was executed, and before the recover task kicks in.
  • Fixed using endpoint reference options in URIs (eg #beanName) to use the class type of the setter method to support looking up beans from the OSGI Service Registry.
  • Fixed Simple language when using bean function to support specifying parameter values containing comma not being parsed into multiple parameter values.
  • Fixed Aggregate eip when using completionFromBatchConsumer combined with other completions.
  • Fixed pairs of VM producer-consumer disconnecting when the containing bundle was restarted in an OSGi environment.
  • Fixed service shutdown logic which could potentially execute several times, putting the system in an incoherent state.
  • Fixed so the preMove option on File and FTP consumers is now run after the file read lock has been acquired.
  • New Enterprise Integration Patterns:
  • ControlBus EIP
  • New Components:
  • ControlBus Component - for easy management using a component supporting the ControlBus EIP
  • camel-aws - New component to AWS for sending metrics to Amazon CloudWatch from Camel.
  • camel-cmis - for integration of CMIS compliant content repositories
  • camel-couchdb - for integration with Apache CouchDB
  • camel-elasticsearch - for ElasticSearch integration
  • camel-rx - provides a typesafe and composable API for working with asynchronous events from camel endpoints using Reactive Extensions using the RxJava library
  • camel-servletlistener - for bootstrapping Camel in web applications, without the need for Spring Framework etc.
  • camel-sjms - for "Springless" JMS integration
  • camel-spring-ldap - for LDAP integration using the Spring LDAP template offering more functionality than existing LDAP component.
  • camel-spring-redis - for talking to Redis key-value store.
  • camel-urlrewrite - for bridging http endpoints and using the UrlRewriteFilter project to control url mappings.
  • camel-xmlrpc - for talking to xmlrpc server from Camel.
  • DSL Changes:
  • Added LoggingErrorHandler fluent builder to Scala DSL.
  • New Data Formats:
  • camel-base64 - support base64 encoding and decoding.
  • camel-xmlrpc - support to marshal and unmarshal the request and response of xmlrpc.
  • camel-zipfile - support to Zip files containing a single entry.
  • 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.
  • FTP Example shows how to use Camel to upload or download files to/from an existing FTP server.
  • Hibernate Example shows how to work with Hibernate to exchange data using a shared database table.
  • Servlet Tomcat No Spring Example example shows how to run Camel as a web application in any web container such as Apache Tomcat, without the need for Spring Framework.
  • SQL Example shows how to work with SQL to exchange data using a shared database table.
  • API changes/breaking:
  • HL7 upgraded to now use Apache Mina 2.x.
  • Renamed org.apache.camel.component.hbase.HBaseContats to org.apache.camel.component.hbase.HBaseConstants
  • Added getter/setter methods for loadStatisticsEnabled on org.apache.camel.spi.ManagementStrategy
  • Added shutdownGraceful, and awaitTermination methods to ExecutorServiceManager to make it easier to shutdown a thread pool gracefully waiting for its tasks to complete.
  • Added method useRawUri() to org.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 to org.apache.camel.spi.ExecutorServiceManager to create a new thread without using a thread pool.
  • Added support to parse CSV if a field has a ' (single quote) at it's beging, this made camel-csv doesn't support the field which is quoted with ' (single quote) or "(double quote) at the same time.
  • 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 using getComponent("properties") and configure the component instead.
  • Minor adjustments to org.apache.camel.builder.ErrorHandlerBuilder.
  • LRUCache will attempt to stop service on eviction of entry.
  • Removed org.apache.camel.model.NodeFactory as its no longer applicable.
  • Added getCamelContext() methods to ProducerTemplate, and ConsumerTemplate
  • The method isMatched on GenericFileConsumer is now abstract and has an extra parameter.
  • The Camel Test Kit removed the support of JUnit3, please use JUnit4 version instead.
  • The method prepareOnStartup on org.apache.camel.component.file.GenericFileProcessStrategy is now executed on first poll instead of starting the route; as if the job takes a long time, it will block Camel from starting other routes. If the job takes more than 1 second to run then its logged at INFO level so people can easier spot if the task takes a longer time, than usual.
  • 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.
  • The type for file last modified header is changed from java.util.Date to long
  • Removed class org.apache.camel.component.gae.context.GaeSpringCamelContext from camel-gae
  • Using allowRedeliveryWhileStopping=false on Dead Letter Channel now moves the message to the DLC (when stopping) instead of rejecting the message.
  • When using Spring with Camel, then Camel will now lookup in Spring's ancestor application contexts as well, when using the Registry
  • The JMX MBean name for the Tracer has removed the identity hash code, eg org.apache.camel:context=localhost/camel-1,type=tracer,name=Tracer(0x548bb8b2) is now named org.apache.camel:context=localhost/camel-1,type=tracer,name=Tracer.
  • The XSLT component will now fail if the {{transformerFactoryClass} cannot be loaded on the classpath, instead of logging a WARN.
  • The SQL producer will only access the message body if there is query parameters to prepare in the SQL to execute (eg using ? or :name).
  • The preMove option on File and FTP consumers is now run after the file read lock has been acquired.

New in Apache Camel 2.10.4 (Mar 5, 2013)

  • Bug:
  • [CAMEL-5358] - camel-castor does not work in apache service mix modules
  • [CAMEL-5459] - Folder closed too early when working asynchronously
  • [CAMEL-5748] - Classloader mixup in Direct VM component
  • [CAMEL-5774] - ActiveMQ target endpoint with transferExchange=true does not work together with source File endpoint with preMove option set
  • [CAMEL-5816] - NPE is generated when using camel karaf command when JMX is disabled
  • [CAMEL-5821] - Camel Jetty chunked parameter appears broken
  • [CAMEL-5835] - XPathBuilder is documented as being thread-safe, but it has thread-safety bugs.
  • [CAMEL-5837] - Problem with nested schema imports when upgrading from 2.8.6 to 2.10.2
  • [CAMEL-5839] - camel-zookeeper: The usage of the endpoint's option 'awaitExistence' would have no effect
  • [CAMEL-5844] - Camel Tracer not showing some EIP names
  • [CAMEL-5848] - File consumer - When using doneFileName then avoid picking up files in middle of group if done file is written during scanning
  • [CAMEL-5854] - adviceWith() just needs to start the route when the camel context is started
  • [CAMEL-5860] - Regression in validator component in 2.10.3
  • [CAMEL-5864] - Pre-XSLT and Validator Type Conversions from byte[] may easily fail
  • [CAMEL-5865] - camel-jms: concurrent consumers on Temp Reply Queue requires more work
  • [CAMEL-5866] - Pass Exchange param to TypeConverter.convertTo calls where possible
  • [CAMEL-5867] - camel-jetty - Always creates a default http client even if not needed
  • [CAMEL-5875] - AdviceWith not working with weaveFirst/weaveLast because of delayed camelContext start due to using isUseAdviceWith.
  • [CAMEL-5877] - Sporadic Source Conversion issues with CxfPayload
  • [CAMEL-5883] - File consumer - When using done file name then delete the file when batch is complete
  • [CAMEL-5887] - Unexpected behavior when combining onException and multiple adviceWith in camel-core
  • [CAMEL-5888] - When call removeRouteDefinition the route doesn't removed from collection of route Definitions.
  • [CAMEL-5890] - NPE when jaxb fallback converter is used with RequestEntityConverter
  • [CAMEL-5897] - Nullcheck missing in CxfPayloadConverter
  • [CAMEL-5899] - camel-netty - Producer should avoid blocking while waiting for connection
  • [CAMEL-5905] - Negative in-flight counter
  • [CAMEL-5907] - Camel leaks memory on undeploy / redeploy in app server when JMX enabled and createConnector = true
  • [CAMEL-5908] - Websocket consumer cannot be started, because of NPE
  • [CAMEL-5917] - camel-jms - JmsPollingConsumer use the constant fields from JmsTemplate for receiveNoWait etc
  • [CAMEL-5925] - NullPointerException in RouteContextProcessor
  • [CAMEL-5942] - Custom URIResolve not used to load XSTL script
  • [CAMEL-5943] - camel-hl7 marshal charset error
  • [CAMEL-5948] - ObjectHelper.createIterator() should properly handle the array of primitive types e.g. int[]
  • [CAMEL-5949] - XML DSL - Should not have default values in errorhandler
  • [CAMEL-5950] - Cache producer is not thread safe
  • [CAMEL-5951] - Camel-syslog dataformat broken with netty transport
  • [CAMEL-5953] - Java DSL: unmarshal() inside choice() blocks adding more conditions
  • [CAMEL-5957] - Bug with completionSize on AggregatorProcessor
  • [CAMEL-5965] - Camel feature file doesn't validate
  • [CAMEL-5970] - Upon connection cd fails
  • [CAMEL-5971] - HdfsOutputStream is not closing
  • [CAMEL-5973] - Property placeholder with both blueprint and jasypt seems not working
  • [CAMEL-5975] - camel-jmx - Does not work in OSGi if XML output
  • [CAMEL-5981] - Enrich EIP may cause async callback done twice
  • [CAMEL-5987] - Using annotations DSL in beans may cause async callback to be called twice
  • [CAMEL-5989] - Camel SFTP endpoint throws exception when running camel route on Windows OS
  • [CAMEL-5993] - Quartz component fails to recreate endpoint when it's no more in camelcontext endpoints LRU
  • [CAMEL-5994] - CamelJob implementation rely on some inconsistent endpoints LRU cache - Camel endpoints may not be called on quartz fire after some days of uptime
  • [CAMEL-5999] - RestletComponent component is not removing added route from routers list although route is removed from Context.
  • [CAMEL-6005] - multicase shareUnitOfWork just throw one exception in the first time
  • [CAMEL-6013] - Validator component fails on XSD with indirect relative import
  • [CAMEL-6020] - Camel Transformer using inconsistent sources
  • [CAMEL-6023] - camel-blueprint - Using blueprint-cm with .cfg files, which triggers bundle reload on .cfg file change, does not startup Camel as expected
  • [CAMEL-6024] - Camel-Jetty Spring example has broken Spring XML syntax
  • [CAMEL-6025] - NumberFormatException when using File over JMS
  • [CAMEL-6035] - interceptSendToEndpoint with a DelegateAsyncProcessor fails
  • [CAMEL-6038] - Possible NPE is OSGi bundle has no symbolic name
  • [CAMEL-6045] - Camel Email Component Missing Attachments
  • [CAMEL-6046] - sftp: noop=true&idempotent=false doesn't work
  • [CAMEL-6048] - XML-files containing attributes called "type" does not get converted to json
  • [CAMEL-6059] - camel-rss and camel-atom - Not installable in Karaf
  • [CAMEL-6064] - Wire Tap onPrepare should process new Exchange
  • [CAMEL-6068] - CamelBlueprintContext may be wrongly started and this may lead to a deadlock
  • [CAMEL-6069] - java.io.IOException: Permission denied from MarkerFileExclusiveReadLockStrategy.acquireExclusiveReadLock on NAS
  • [CAMEL-6072] - Service Shutdown logic may execute N times
  • [CAMEL-6073] - Pairs of VM producer-consumer disconnect when OSGi bundle is restarted
  • [CAMEL-6079] - grails - class cast exception on startup
  • [CAMEL-6081] - gzip dataformat - Ensure input stream is closed if exception thrown
  • [CAMEL-6084] - SOAP over JMS does not work with camel-cxf endpoint
  • [CAMEL-6101] - Cache endpoint lazy initialization is not thread safe
  • Improvement:
  • [CAMEL-5708] - Make camel-smpp component get username from parameters instead of address
  • [CAMEL-5781] - limitaions on s3 component. no means to specify acl on created object. objects do not inherit acl from the bucket they belong to.
  • [CAMEL-5847] - camel-mongodb - Add converters for files or inputstreams
  • [CAMEL-5851] - upgrade to mvel 2.1.3.Final
  • [CAMEL-5855] - Use guava 13.0.1 rather than SMX bundle
  • [CAMEL-5862] - camel-netty - Use attachments instead of StateLocal to store state on netty producer
  • [CAMEL-5872] - camel-scala - Add convertBodyTo to its DSL
  • [CAMEL-5889] - Scala DSL: no tokenize("...") method
  • [CAMEL-5926] - SpringIntegrationConsumer should honor the 'inOut' instance variable by setting the MEP and sending back message headers
  • [CAMEL-5938] - MailConverters fails with uppercase content type TEXT/PLAIN
  • [CAMEL-5945] - Add delimiter to recipient list eip in Java DSL
  • [CAMEL-5954] - Unify the variables which are exports to script
  • [CAMEL-5955] - Put the LocalAddress into the message header
  • [CAMEL-5959] - Dead Letter Channel - Store failed route id on Exchange
  • [CAMEL-5962] - xslt component - Should fallback and use same scheme prefix as endpoint configured for included resources
  • [CAMEL-5974] - camel-jms: Make ThreadPoolTaskExecutor the default Task Executor
  • [CAMEL-5995] - Improvment of InstrumentationProcessor
  • [CAMEL-6008] - camel-netty - Initialize SSLContext once if using camel JSSE configuration
  • [CAMEL-6051] - ClassResolver - Add support for Object[] arrays
  • New Feature:
  • [CAMEL-5575] - Add new HttpEndpoint Option "httpHeaderFilterStrategy" on Http4 component
  • [CAMEL-5886] - camel-netty - Allow to configure the accept backlog for netty consumer
  • [CAMEL-5896] - camel-netty - Allow to configure netty options in uri using prefix
  • [CAMEL-5901] - camel-netty - Allow to turn netty producer pool on or off
  • [CAMEL-6053] - camel-test-blueprint - Allow to override config admin properties to be used outside CamelContext
  • [CAMEL-6054] - camel-hazelcast - Manage transactions with SEDA Consumer and improve the mapstore lifecycle
  • Task:
  • [CAMEL-5856] - camel-itest: Fix and reenable the two JMS/JDBC Integration tests
  • [CAMEL-5859] - Align commons JAR used by camel-hbase and camel-hdfs
  • [CAMEL-5861] - camel-quickfix: The example org.apache.camel.component.quickfixj.examples.RequestReplyExample doesn't work
  • [CAMEL-5868] - simplifications pom blueprint camel archetype
  • [CAMEL-5870] - camel-jms: Avoid DMLC.stop(), as it's buggy under certain conditions
  • [CAMEL-5873] - Upgrade the CXF version to 2.7.1, 2.6.4, 2.5.7
  • [CAMEL-5947] - upgrade to axiom 1.2.14 and abdera 1.1.3
  • [CAMEL-5983] - Avoid the negative-tests to behave as false-positive
  • [CAMEL-5991] - Javadoc on our WIKI page points to Camel 2.9.0
  • [CAMEL-5998] - Avoid using deprecated AbstractJUnit38SpringContextTests but use junit 4 test class instead
  • [CAMEL-6066] - camel-atom and camel-rss - Issue in karaf

New in Apache Camel 2.10.3 (Feb 1, 2013)

  • Bug:
  • [CAMEL-4171] - Groovy language - classNotFoundException in OSGi environment
  • [CAMEL-5426] - Camel stream makes Karaf console hang
  • [CAMEL-5464] - camel-jms consumer doesn't send back a reply in all cases
  • [CAMEL-5490] - Queue is Full in DefaultServicePool
  • [CAMEL-5608] - Validator component - Lock file on windows if input is file based and an validation failed occurred
  • [CAMEL-5684] - possible null pointer exception for FTP endpoint
  • [CAMEL-5699] - LogFormatter throws a NPE when all elements are disabled
  • [CAMEL-5704] - Split inside Split - Parallel processing issue - Thread is getting wrong Exchange when leaving inner split
  • [CAMEL-5707] - NotifyBuilder should be thread safe
  • [CAMEL-5709] - Http4 Endpoint does not remove all Options from URI
  • [CAMEL-5710] - Rest route returns response with http Status code 500 Internal Server Error when response has Last-Modified or Header-expires in header as string.
  • [CAMEL-5712] - BlueprintCamelContext should not get started in the init() method but later when the blueprint container is fully initialized
  • [CAMEL-5718] - Bodies of SMs with 8-bit data_coding are mangled
  • [CAMEL-5720] - Aggregate EIP - Dynamic completion size should override fixed values if in exchange
  • [CAMEL-5722] - Classloader mixup when consumers across bundles share the same camel-jetty port
  • [CAMEL-5729] - camel-crypto - Signer producer should close input stream after usage
  • [CAMEL-5730] - SqsConsumer receive thread is tightly coupled to extendMessageVisiblity's scheduled task
  • [CAMEL-5731] - Setting alphabet header to 8-bit doesn't update data coding
  • [CAMEL-5732] - Data coding of 0x02 not considered 8-bit
  • [CAMEL-5733] - NullPointerException with SpringBatchProducer and null header value
  • [CAMEL-5735] - SnsConfiguration's toString() uses amazonSQSClient as key string rather than amazonSNSClient
  • [CAMEL-5737] - camel-ftp - LocalWorkDir option did not work as expected
  • [CAMEL-5738] - HttpConnectionManager configuration is not injected correctly when using blueprint
  • [CAMEL-5746] - WireTap will always copy the origin Message
  • [CAMEL-5747] - Cold restart doesn't clear properties component cache
  • [CAMEL-5756] - OSGi resolvers for component, dataformat and language should check if service object is assignable before casting
  • [CAMEL-5757] - HTTP 1.1 Host header not set correctly with camel-http4
  • [CAMEL-5761] - Update SqsConsumer to extend Visibility Timeout correctly
  • [CAMEL-5766] - Configuring jetty component with a different name dont work with jetty consumer
  • [CAMEL-5769] - Camel JMS producer can block a thread under specific circumstances
  • [CAMEL-5773] - camel-twitter streaming consumer broken
  • [CAMEL-5776] - .camelLock is deleted by another camel instance
  • [CAMEL-5782] - regression : invalid SetQueueAttributesRequest created, works on 2.10.1
  • [CAMEL-5794] - xmljson dataformat should be added into marshall and unmarshal definition module
  • [CAMEL-5796] - The combination of the transacted DSL together with the or prohibits to resolve the properties properly.
  • [CAMEL-5810] - CXF + Code first + No recipient list + doCatch = route returns null
  • [CAMEL-5818] - Splitter does not allow errorhandler to handle exception in the splitter-expression
  • [CAMEL-5823] - CxfConsumer should not populate the cxf response with the original input message if the cxfExchange is oneway
  • [CAMEL-5826] - Apache Camel 2.9 Splitter with tokenize dont work with namespaces
  • [CAMEL-5830] - NullPointerException in DefaultCamelContext::stopRouteService
  • Improvement:
  • [CAMEL-5390] - Option to assign unique correlation ID to JMS messages
  • [CAMEL-5581] - Add an ExchangeStrategy to the HBase Component.
  • [CAMEL-5623] - Cache-Component doesn't work with decorated Caches
  • [CAMEL-5678] - It should be possible to clear the cached script in LanguageEndpoint via JMX
  • [CAMEL-5697] - camel-mongodb operations don't transfer header values from IN to OUT
  • [CAMEL-5701] - Update to jclouds 1.5.2 and leverage context names.
  • [CAMEL-5702] - camel-netty - The ordered thread pool should be shared
  • [CAMEL-5703] - camel-netty - Pool Channels instead of producers to make producer singleton
  • [CAMEL-5711] - Expose more elements of DeliverSM message to Consumer
  • [CAMEL-5714] - Throw a meaningful exception when the conetxt component cannot create a right endpoint
  • [CAMEL-5724] - Spring-WS consumer and producer do not propagate some custome headers and attachements to a response message
  • [CAMEL-5736] - Simple language - Unary operators should be more lenient and only be applicable if previous node is a function expression
  • [CAMEL-5744] - placeholders usage for QName types CXF endpoint attributes (BP version of CAMEL-4351)
  • [CAMEL-5755] - CXF endpoint's parameter exceptionMessageCauseEnabled not working for Camel CXF endpoints
  • [CAMEL-5763] - Enrich Camel message with JMSMessageID for InOnly messages sent to JMS destination
  • [CAMEL-5767] - Camel Splitter eat up exceptions recorded by the underlying Scanner
  • [CAMEL-5770] - RoutePolicySupport should provide some easy to use utility methods to suspend/resume routes as we have it already to start/stop routes
  • [CAMEL-5783] - option to add bundle directives in the generated test bundles by camel-test-blueprint
  • [CAMEL-5784] - Properties component - preparing loaded properties should only trim whitespace
  • [CAMEL-5785] - Add support for handling long/short lines in Fixed Width Files in the Flatpack DataFormat
  • [CAMEL-5789] - AbstractJdbcMessageIdRepository should use the @ManagedResource and @ManagedOperation from Camel
  • [CAMEL-5803] - Scala DSL splitter does not support tokenizeXML
  • [CAMEL-5808] - camel-ahc - Add option to set buffer size
  • [CAMEL-5809] - camel-jms - Allow concurrentConsumers on listener on request/reply over JMS
  • [CAMEL-5813] - Add support to convert from a Flatpack Dataset to an XML Document
  • [CAMEL-5824] - camel-hbase - HBase data access performance improvement
  • [CAMEL-5838] - Erroneous option name in camel zookeeper component documentation: awaitCreation should be awaitExistence
  • New Feature:
  • [CAMEL-5696] - camel-mongodb write operations should put have configurable option to put WriteResult in header
  • [CAMEL-5812] - Add getContext() method to ProducerTemplate interface
  • Task:
  • [CAMEL-5715] - Maven archetypes - Check that they still work after the pom DRY cleanup that broken them
  • [CAMEL-5749] - Fix Camel 2.10.x fulltest at Jenkins
  • [CAMEL-5777] - Misleading docs on JMS wiki
  • [CAMEL-5841] - camel-ftp: Re-enable the sftp tests again being disabled.
  • Test:
  • [CAMEL-5792] - Validator component - Error loading resource on windows

New in Apache Camel 2.10.1 (Oct 10, 2012)

  • Bug:
  • [CAMEL-5401] - Not all RoutePolicy callback methods are invoked
  • [CAMEL-5404] - MinaProducer does not disconnect on response timeouts
  • [CAMEL-5405] - CXF Transport loses HTTP Matrix parameters
  • [CAMEL-5406] - Threads EIP hangs Junit4 tests using adviceWith
  • [CAMEL-5411] - MQTT Endpoint does not correctly return the MQTT-Payload
  • [CAMEL-5412] - ObjectAlreadyExistsException when "redeploying" routes that uses CronScheduledRoutePolicy
  • [CAMEL-5415] - Simple does not handle empty values in predicates properly
  • [CAMEL-5417] - Scala Archetype with incorrect Maven Eclipse configuration
  • [CAMEL-5419] - camel-soap - Sets wrong namespace for faults
  • [CAMEL-5424] - @MockEndpointsAndSkip does not work
  • [CAMEL-5429] - Sending null in body when forcing JMS message type to Object throws an Exception
  • [CAMEL-5432] - Dynamically added SEDA-route is not working
  • [CAMEL-5437] - Add support for batch consumer's empty messages to aggregator
  • [CAMEL-5440] - mock endpoint should not add the expect header check task every time we call the expectedHeaderReceived()
  • [CAMEL-5449] - CxfPayloadConverter converts to NodeList by default, affecting performance
  • [CAMEL-5451] - Camel-Blueprint should wait for camel-core to be started since there is a strong dependency
  • [CAMEL-5454] - camel-example-gae silently fails (needs updates to use latest CamelHttpTransportServlet)
  • [CAMEL-5455] - Allow configuring dataCoding independend of alphabet
  • [CAMEL-5461] - IOConverter.toInputStream opens a BufferReader which will never be closed
  • [CAMEL-5468] - RegistryBean.getBean() is not thread safe
  • [CAMEL-5470] - camel-example-gae gtask doesn't work
  • [CAMEL-5472] - missing dependency to spring-web in camel-example-cxf-tomcat
  • [CAMEL-5473] - camel-example-cxf-tomcat is broken
  • [CAMEL-5475] - Can't unmarshal pgp messages encrypted with ElGamal.
  • [CAMEL-5476] - HTTP GET request fails on Yahoo historical data download BUT AHC succeeds
  • [CAMEL-5485] - camel-mybatis should do a proper transaction demarcation while reading/writing from/to database.
  • [CAMEL-5487] - HttpProducer should close temporary file in CachedOutputStream when the IOException is thrown
  • [CAMEL-5495] - file endpoints on windows without volume name in the path url not working in some cases
  • [CAMEL-5499] - Cxf fallback convert should return the Void.value instead of null
  • [CAMEL-5500] - camel-testng - The spring base test class should use @AfterMethod on teardown as its parent does
  • [CAMEL-5501] - @XPath annotation should ensure cleanup after evaluation
  • [CAMEL-5504] - Bridging http endpoints with spaces in content path causes problem when forwarding request
  • [CAMEL-5505] - Unable to customize URIResolver in xslt component
  • [CAMEL-5506] - HBase component does not extract that table name in all cases and HBase runtime version issues.
  • [CAMEL-5507] - CamelBlueprintTestSupport Cannot correctly delete target\bundles\routetest.jar
  • [CAMEL-5509] - Jetty http consumer doesn't suppor the uri "jetty:http://localhost:9000"
  • [CAMEL-5515] - thread java DSL doesn't provide full function out of box
  • [CAMEL-5517] - Multiple calls to CXF factory beans.getFeatures causing multiple logging features to be added
  • [CAMEL-5518] - Camel Proxy ignores camelContextId property in Spring configuration
  • [CAMEL-5519] - CamelContextId should be effected when there are more than two camel context in the spring configuration file
  • [CAMEL-5527] - Maven archetype - Generates wrong plugin for surefire plugin
  • Improvement:
  • [CAMEL-4014] - cxf:rsServer requires class instead of interface in the serviceClass attribute
  • [CAMEL-4303] - Add camel-netty option to configure whether the server needs client auth when using SSL
  • [CAMEL-4702] - SNMP Component, Documentation is confusing with respect to hostname:port vs. address
  • [CAMEL-5343] - Improve Camel AWS-S3 to be able to only pick up specific files
  • [CAMEL-5407] - Better error message when trying to write a null body as file
  • [CAMEL-5430] - Remove un-necessary connections to the Twitter API
  • [CAMEL-5431] - Finish and polish camel-twitter
  • [CAMEL-5433] - camel-hdfs - Allow to lazy connect as hdfs file system has hardcoded 15 min retry in case no connection
  • [CAMEL-5441] - Remove the import package of META-INF.cxf from the camel cxf related examples
  • [CAMEL-5444] - camel-jms - Log at INFO level if shared replyTo queues are in use, as they are not as fast as temporary or exclusive queues
  • [CAMEL-5445] - ManagementLoadTask - Background thread should defer starting till CamelContext has been started
  • [CAMEL-5450] - XSLT calls newTransformer per request
  • [CAMEL-5460] - MockEndpoint.expectedBodiesReceivedInAnyOrder() should allow asserting on the multiple arrival for the SAME body
  • [CAMEL-5474] - Support to build the camel-soap offline
  • [CAMEL-5482] - Clean up the camel restlet component code and fixed a logging entry that displayed the wrong data.
  • [CAMEL-5508] - Optimize property placeholder resolution at runtime to lookup configured properties component once
  • [CAMEL-5512] - camel-ftp - Improve readlock changed to use fine grained API to get file details
  • [CAMEL-5513] - Add option to changed readLock to denote whether a zero file size is accepted or not
  • [CAMEL-5514] - Fix the broken unit-tests by camel-ftp
  • [CAMEL-5528] - Improve how the AWS-SQS component create a new queue with additional attributes
  • [CAMEL-5529] - Shutdown Twitter instance if endpoint is shutdown
  • [CAMEL-5530] - Suggestion to replace HBaseContants class with HBaseConstants interface and other minor changes.
  • [CAMEL-5531] - adding new eventNotifiers to a CamelContext from a separate thread while a CamelContext is starting (e.g. in OSGi) can lead to ConcurrentModificationException
  • New Feature:
  • [CAMEL-5403] - Type converter for NodeList with size 1 to Node
  • [CAMEL-5521] - Add option to file/ftp producer to move any existing file before writing
  • Task:
  • [CAMEL-5428] - Seda website documentation has queueSize parameter, but the parameter does not exist
  • [CAMEL-5496] - Odd default value for file2's readLockTimeout documentation
  • Wish:
  • [CAMEL-5478] - File component does not consume empty files with the changed readLock

New in Apache Camel 2.9.0 (Jan 3, 2012)

  • Introduced ThreadPoolFactory with a simpler API for 3rd party SPI. See Threading Model for more details.
  • The ScheduledExecutorService created by Camel is guarded with a queue size check, to guard against OOME due the JDK thread pool is unbounded task queue.
  • The SOAP data format now supports using multiple parameters on the JAXB objects.
  • The Bean component now supports specifying parameter values to use directly in the method syntax. See more details at Bean Binding. For example to invoke a bean with body as first parameter, and a boolean true as second you can now do: .to("bean:myBean?method=myMethod(body, true)")
  • The Bean component supports binding to private class beans by fallback to use interface methods.
  • Improved labels of all model definitions which appear in Tracer output
  • Reduced dependency for camel-core to not require commons-management JAR anymore
  • Added blueprint support of cxfrs endpoint.
  • Camel no longer depend on using Spring JARs for having Camel enlisted in JMX.
  • Introduced a set of Camel JMX annotations in org.apache.camel.api.management that can be used to easily instrument Camel Components, EIPs, custom Processors, Beans etc. for being managed in JMX. Using the Spring JMX annotations is still supported (you would need camel-spring on the classpath).
  • Updated the Aggregator2 to allow for manually completing all exchange groups by sending a message containing the header Exchange.AGGREGATION_COMPLETE_ALL_GROUPS set to true.
  • Updated the Aggregator2 to support forceCompletionOnStop option to complete all current aggregated exchanges when the context is stopped.
  • Removed dependency on Spring JARs in the following components: Validation, XSLT, Velocity, FreeMarker, Flatpack, StringTemplate, iBATIS, Jing, MSV, XQuery, Test, Groovy, Scripting Languages, Mail and Quickfix.
  • Using pollEnrich with a file/ftp endpoint will now only poll on demand, beforehand the polling could be started when the route started.
  • Added option ReplyToType on JMS to allow people to control which kind of reply queue they are using (temporary, shared, exclusive). Added support for exclusive reply queues. Mind they have some limitations, by which the shared dont have. So use exclusive with a bit caution.
  • Added wereSentTo to NotifyBuilder allowing to set expectation that Exchanges was sent to the given endpoint uri.
  • Bindy in CSV format now uses trim, clip, and length attributes on @DataField when marshalling.
  • Improved managed browsable endpoints (JMX) so you can browse all/range messages and whether to include message body or not.
  • File and FTP endpoints is now browsable endpoints. For example using JMX people can browse the endpoint listing available files. The returned data does not contain the actual file body to avoid loading big data into memory.
  • Added replaceFromWith to AdviceWith making it easy to swap a route input endpoint with something else, for easier unit testing.
  • Added Java DSL support for route autoStartup(String) and autoStartup(boolean)
  • Switched to a better performing non locking endpoint cache based on Google's ConcurrentLinkedHashMap.
  • Added isUseAdviceWith to Camel Test which allows end users to tell Camel that the unit tests uses AdviceWith which allows you to defer starting CamelContext until after the adviceWith has been executed.
  • Added filtersRef option to Jetty endpoint, and it supports to setup the Filters on the Jetty endpoints.
  • Added ciphers option to the SFTP endpoint to allow configuration of the ciphers used by default.
  • Added fastExitsCheck option to the SFTP FTP endpoint to check the file exits fast.
  • Added errorHandler option to the JMS component which allows you to set a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message.
  • Added idleConsumerLimit option to the JMS component which sets the limit for the number of consumers that are allowed to be idle at any given time.
  • Simple language has a much better syntax parser, being able to report what and where syntax errors are. Added unary operators, which for example can be used to increment counters.
  • Simple language now supports nested functions, so you can do "${header.${header.bar}}", for example to refer to a header key from another header.
  • Simple language can now configure custom start/end tokens for its built-in functions.
  • The JPA component has been upgraded from using the JPA1 spec to use JPA2 spec.
  • The CSV component now always returns a List regardless if 1 or more rows returned, to be consistent.
  • Resequencer now pre validates incoming Exchange and throws CamelExchangeException if invalid. Added new option ignoreInvalidExchanges to suppress the exception and ignore invalid exchanges.
  • Improved existing and added more Karaf Camel commands.
  • Improved Bean component and method call expressions to be able to invoke static methods, without creating a new instance of the class.
  • JMX now exposes average load statics on CamelContext and Route mbeans. Its similar to unix load stats per 1, 5 and 15 minutes.
  • Added support for minDepth and maxDepth option on the FTP consumers.
  • Improved the AWS-S3 component to support more headers in the producer.
  • Cometd now includes headers in the server message.
  • SFTP now supports interactive keyboard authentication, but entering the password in the prompt.
  • ManagedTracer now supports detailed JMX TraceEvent Notifications. This allows to watch message flows using JConsole and provides an ideal base for external tooling
  • Exchange.HTTP_URI query part will take effect on the producer of HTTP and HTTP4.
  • Add camelContextId to MDC logging.
  • Hadoop consumer supports auto merging multiple segment files.
  • JMS consumer has new option asyncConsumer which allows to enable Asynchronous Routing Engine
  • The camel-archetype-component allows to specify the component name.
  • Polling Consumers such as File or FTP supports new option sendEmptyMessageWhenIdle to send an empty message if there was no messages to poll.
  • Added option allowStAX on XSLT and XQuery to control whether StAX (Streaming API for XML) is preferred as the javax.xml.transform.Source.
  • Added properties function to Scripting Languages to make it easier to leverage Camel Properties component from scripts.
  • Added timeoutCheckerExecutorService and timeoutCheckerExecutorServiceRef options to the aggregator. If using either of the completionTimeout, completionTimeoutExpression, or completionInterval options a background thread is created to check for the completion for every aggregator. This doesn't scale well when you have many routes with an aggregator (a thread is created for every aggregator). Setting these options allow you to control the number of threads by providing a custom thread pool.
  • Splitting big files such as XML files can now be done in a streamed low-memory footprint mode using the Tokenizer language or the StAX component.
  • The Language component can now load scripts from classpath or file system. As well having a cached option.
  • Further improved masking of passwords in URIs specified in the user info part, in the Camel logs.
  • Optimized Request Reply over JMS when using named replyTo queues to cache consumer if possible, making it go faster. This applies when using either the replytToType=Exclusive or replyToDestinationSelectorName options.
  • Fixed JPA consumer to ensure to rollback if processing an Exchange failed.
  • Added quote option to @CsvRecord in Bindy to make it easy to specify using a quote character when marshalling from Object to CSV format.
  • Added consumer.transacted option to JPA to control whether the consumer should regard the batch as a single encompassing transaction or not.
  • Added ability in XSLT component to dynamically override stylesheet used via CamelXsltResourceUri message header.
  • Added ability in AWS-SNS component to specify the topic policy.
  • Added ability in AWS-S3 component to specify the bucket policy and the storage class.
  • Log component and LogEIP now supports the Marker option
  • Log and Tracer now have a default maxChars option at 10000 to avoid logging very big data.
  • Added ability in SQL to execute SQL batch statements.
  • Added the configuration support of queueSize and concurrentConsumers options on the SEDA VM component.
  • Added MBean interfaces in org.apache.camel.api.management.mbean which clients can use to access Camel MBeans.* Added MBean interfaces in org.apache.camel.api.management.mbean which clients can use to access Camel MBeans.
  • Introduced AbstractJdbcMessageIdRepository in SQL Component to make it easier to create custom JDBC based Idempotent Consumer
  • Fixed issues:
  • Fixed issue with Properties component may cache duplicates and thus take up unnecessary memory in the cache
  • Fixed issue with Tracer out exchanges when using Asynchronous Processing by the Asynchronous Routing Engine
  • Fixed issue with Components or Endpoints not being registered in JMX when using POJO Producing, POJO Consuming or other Camel bean annotations.
  • Fixed issue which could cause DefaultUnitOfWork to throw a java.util.EmptyStackException under heavy load
  • Fixed issue with MDC logging not remembering old values, for example when using a ProducerTemplate from within routes to send new messages.
  • Fixed issue when invoking a Bean and that bean is using a @Bean in its method signature, causing the @Bean to not invoke its intended method
  • Fixed issue with Bindy unmarshalling in key value or CSV or mode, may cause inconsistency for multiple threaded unmarshalling
  • Fixed issue with ExchangeSentEvent being fired to early when being sent to asynchronously endpoint. Now its being fired when sent is done.
  • Fixed issue with OSGi Blueprint when consuming JAXB annotated objects from ActiveMQ causing ClassCastException's.
  • Fixed issue with using OnException and using redeliveryPolicyRef which could cause the Error Handler to fail with an assertion error at first redelivery attempt.
  • Fixed issue with using doneFile option on FTP when from a Windows computer connecting to a Unix FTP server, due to wrong path separator in use.
  • Fixed issue with Bindy in CSV mode when marshalling not using correct separator char if given an escaped separator char on the model class.
  • Fixed issue with evaluation of Simple language not being as fast as it could be.
  • Fixed issue with File consumer not auto creating start dir if having dot in name.
  • Fixed issue with Splitter, Recipient List and Routing Slip throwing exceptions from custom expressions, not being triggered by Exception Clauses.
  • Fixed issue with stale OUT message set on Exchange if exception was thrown from unmarshal or marshal operations from Data Format
  • Fixed issue with request/reply over JMS when using useMessageIDAsCorrelationID=true and fixed reply queues, causing JMSMessage selector to not evict timed out correlationIDs, which cause the JMSMessage selector to keep growing.
  • Fixed issue with XSLT, XQuery and XPath may lock file resource if exception occurred during transformation
  • Fixed issue with Flatpack dropping all headers from the original message
  • Fixed issue with wereSentTo on NotifyBuilder may trigger to soon, as well you no longer must configured it at first
  • Fixed issue with SMPP by sending multipart and multilingual messages
  • Fixed issue with using Saxon for XPath expressions with a Splitter and Content Based Router in the same route.
  • Fixed issue with thread safety of the XPathFactory in the XPath builder
  • Fixed issue when stopping Batch Consumer routes and have configured route with CompleteAllTask, there may be a slim chance the route will be shutdown too early before the last batch message had a chance to be enlisted as in flight exchange.
  • Fixed issue with FTP consumers to always process synchronous, to ensure the UnitOfWork executes the done tasks in the same thread as the consumer, as the FTP libraries is not thread safe.
  • Fixed memory leak when doing request/reply over JMS with a fixed reply queue, when under high load.
  • Fixed issue with Bindy in CSV mode not handling separator char to be inside a quoted field. For example a comma, in "Wednesday, November 9th, 2011"
  • Fixed issue when restarting CamelContext would lose any prior custom LifecycleStrategy in use.
  • Fixed issue with using the same ScheduledRoutePolicy on 2+ routes not working on all the of the routes.
  • Fixed issue that SEDA VM consumer doesn't reset the camel context of exchange when it pulls the exchange from queue.
  • Fixed issue when using context scoped Exception Clause to handle exceptions, by which the RouteScope on the UnitOfWork from the Exchange may not refer to last used route id.
  • Fixed Throttler EIP in async delayed mode to not eat up memory when messages flow in faster, than the throttler can process the delayed tasks. The throttler will now use the maxQueueSize option from the Threading Model to reject tasks if the task queue grows to big.
  • Fixed issue with Throttler and Delayer EIP in async delayed mode, would cause a 2nd done on the AsyncCallback which could lead to a NPE in the logs.
  • New Components:
  • AWS-SDB
  • AWS-SES
  • jclouds
  • Krati
  • Solr
  • StAX
  • Zookeeper
  • New Data Formats:
  • PGP
  • API breaking:
  • The class ExecutorServiceStrategy is deprecated in favor of a new ExecutorServiceManager class, which have a slightly reduced and improved API. See Threading Model for more details.
  • The org.apache.camel.component.ResourceBasedComponent class from camel-spring has been deprecated. Use DefaultComponent instead.
  • The org.apache.camel.component.ResourceBasedEndpoint class from camel-spring has been deprecated in favor of a new org.apache.camel.component.ResourceEndpoint in camel-core, and its dependency on Spring JARs has been removed. Use the new APIs on ResourceEndpoint to load resources.
  • Changed the method beforePoll slightly in the org.apache.camel.PollingConsumerPollingStrategy class.
  • ServiceSupport and EventNotifierSupport classes are moved to org.apache.camel.support. This package is meant for mostly abstract base classes that make it easier to implement the API. To keep compatibility the old classes are kept as @Deprecated versions (see CAMEL-4358)
  • ServiceSupport now does no handle child services anymore (was used only in two places in camel-core). A new class ChildServiceSupport now handles this case. Additionally the org.apache.camel.StatefulService interface was created which allows to access ServiceSupport methods without knowing the implementation.
  • DataFormatResolver does not support resolveDataFormatDefinition anymore. The current implementations for OSGi and Default where exactly the same so this code was moved to DefaultCamelContext. If this is needed please open a jira issue
  • All methods in CamelContext that reference model elements where deprecated. An additional interface org.apache.camel.model.ModelCamelContext was created to hold these methods
  • Ordered interface was moved from org.apache.camel.util to org.apache.camel
  • BytesSource and StringSource were moved from org.apache.camel.converter.jaxp to org.apache.camel as they are used in several places
  • TimeoutMap interface was moved from org.apache.camel.util to org.apache.camel
  • DefaultTimeoutMap was moved from org.apache.camel.util to org.apache.camel.support as it needs access to ServiceSupport
  • Moved some management interfaces from org.apache.camel.management to org.apache.camel.spi.management
  • Moved DefaultChannel from org.apache.camel.processor to org.apache.camel.processor.interceptor
  • FileUtil.removeFile added new option, and will throw IOException in case of exception occurred
  • The CamelTestSupport's context, template, consumer fields is no longer static (reason for changing is to foster faster unit testing)
  • Added onRemove, onStart, onStop, onSuspend, and onResume methods to org.apache.camel.spi.RoutePolicy
  • Removed Spring related methods from ScriptBuilder in camel-script
  • Added RouteContext as parameter to configure method on ErrorHandlerBuilder
  • The Mail component no longer uses Spring API, which means any custom JavaMailSender should now implement org.apache.camel.component.mail.JavaMailSender instead.
  • The Quickfix component no longer uses Spring API, which mean if you use XML DSL to setup QuickFix settings, then you need to adjust accordingly.
  • Dependency Upgrades
  • AHC 1.6.4 to 1.6.5
  • AWS-Java-SDK 1.1.1 to 1.2.12
  • CometD Java Server 2.1.1 to 2.3.1
  • Commons-pool 1.5.4 to 1.5.6
  • CXF 2.4.1 to 2.5.1
  • Dozer 5.3.1 to 5.3.2
  • EasyMock 2.5.2 to 3.0
  • EHCache 2.3.0 to 2.4.3
  • Groovy 1.8.0 to 1.8.5
  • HAPI 0.5.1 to 1.2
  • HawtDB 1.5 to 1.6
  • Hazelcast 1.9.3 to 1.9.4.4
  • Http4 4.1.1 to 4.1.2
  • Jackson 1.8.4 to 1.9.2
  • Jackrabbit 1.5.5 to 2.2.4
  • JCR API 1.0 to 2.0
  • Jersey 1.8 to 1.10
  • JIBX 1.2.2 to 1.2.3
  • JRuby 1.5.6 to 1.6.5
  • MyBatis 3.0.4 to 3.0.6
  • Netty 3.2.4 to 3.2.6
  • OGNL 2.7.3 to 3.0.2
  • QPID 0.5 to 0.12
  • QuickFix 1.5.0 to 1.5.1
  • Restlet 2.0.9 to 2.0.10
  • Scala 2.9.0 to 2.9.1
  • Scalate 1.5.0 to 1.5.3
  • Smack 3.1.0 to 3.2.0
  • Spring Framework 3.0.5 to 3.0.6
  • Spring Security 3.0.6 to 3.0.7
  • Spring WebService 2.0.2 to 2.0.3
  • XStream 1.3.1 to 1.4.1
  • Important changes to consider when upgrading:
  • The XSLT, and Validation components has been moved from camel-spring to camel-core as they no longer depend upon Spring JARs
  • Building the source with Apache Maven 2.x is deprecated and support for that is to be removed in the next release.
  • Debugger is now disabled by default in Camel Test. You would need to override isUseDebugger() method and return true to enable it.
  • Simple language improved syntax parser. Simple is now more strict and will report syntax errors for invalid input. For example Predicates now requires literal texts to be enclosed in quotes, just as any programming language such as Java would do. Range operator also requires the range to be enclosed in quotes as well. See more details at Simple.
  • The JPA component has been upgraded from using the JPA1 spec to use JPA2 spec.
  • The CSV component now always returns a List regardless if 1 or more rows returned, to be consistent.

New in Apache Camel 2.7.0 (Mar 23, 2011)

  • Switched to use slf4j as the logger instead of commons logging.
  • Camel now checks state of Service during starting/stopping the Lifecycle of the Service. This avoids double starting/stopping in case the service was already in the desired state.
  • Added support for MDC logging with Camel
  • JMS consumer now eager checks if Camel is shutting down and signals that to its DefaultMessageListenerContainer which avoids trying to re-connect/failover during shutdown.
  • Introduced option to automatic Mock endpoints during testing. This makes testing without having to add Mock endpoints in your routes a breeze. See more details at Mock component documentation.
  • Added assertPeriod option to Mock endpoint, which is a period im milliseconds, that the Mock will pause and then re-assert itself to ensure the assertion is still valid. This can be used as a threshold when testing with expectations that exactly a given number of messages should arrive on the Mock endpoint.
  • Added arrives DSL to Mock endpoint to allow you to setup expectations about timespan between messages arriving on the Mock endpoint. See more details at Mock component documentation.
  • HTTP4 is upgraded to use Apache HttpClient 4.1
  • Fixed an issue with File consumer having absolute starting directory and using absolute paths in the move option as well
  • Fixed concurrent append to the same file in the File producer
  • Fixed issue with restarting Quartz causing a failure due trigger name already exists issue for stateful jobs.
  • Its now possible to use multiple QuartzScheduler's when deploying multiple Camel applications in the same JVM classloader.
  • Quartz update checker is now always disabled, see more details here
  • Fixed potential issue installing camel-ftp feature in Apache ServiceMix
  • New JdbcMessageIdRepository for the idempotent consumer EIP in SQL
  • Relaxed how aggressive Camel was registering services as MBeans in JMX. Now Camel will by default only registeres MBeans when starting CamelContext or starting new routes. This avoids registering too many MBeans if using dynamic EIP patterns such as Recipient List using different endpoint urls, causing new endpoints and its associated services to be registered in JMX. This would keep growing over time and consume memory as well. You can use the registerAlways or registerNewRoutes options on ManagementAgent to control this behavior. See Camel JMX for more details.
  • Redelivery policy and OnException now supports property placeholders in both Java and XML DSLs.
  • Introduced to easily define common profiles for redelivery policies, which you can refer to from or using the redeliveryPolicyRef attribute. Also Spring Frameworks property placeholders works with .
  • Improved the XML based Error Handlers to validate configuration on startup, to fail if they have been misconfigured.
  • Spring Integration is upgraded to Spring Integration 2.0.
  • Added endChoice() to the Java DSL to be able to use any EIPs inside the Content Based Router. See more details here
  • Property placeholders can now be use for any kind of attributes/options in the EIPs in the Camel routes. For example in the Spring XML file you can now use placeholders for timeout attributes etc. This is possible using the specialized placeholder namespace. See more details at the Using PropertyPlaceholder wiki page. In the Java DSL there is a new placeholder option on each EIP you can leverage.
  • The camel-jdbc-aggregator component is merged into the camel-sql component.
  • Fix in Mail component for duplicate attachments, and when using starttls.
  • Maven 3 is now supported for building
  • Tidy up the XML DSL to not allow nesting tags where it doesn't make sense.
  • Internal cleanup in route preparation logic to be fully shared for all DSLs (before the XML DSLs and Java DSL was a bit different)
  • Fixed InterceptFrom to work with from endpoints defined using ref's or instances (eg everything but uris)
  • Fixed HTTP and HTTP4 producers double encoding endpoint uri, when calling external service
  • Fixed JMS producer not working with OracleAQ throwing exception on accessing JMSReplyTo
  • Added support for using OSGi Blueprint property placeholder service with Camel routes. Camel uses convention over configuration so all you have to do is to define the OSGi blueprint placeholder and you can refer to those from the . Pay attention to the placeholder tokens using by Camel is {{ }}.
  • and is now easier to use with property placeholders
  • Properties component now supports JVM system properties and OS environment variables in the locations option. For example using "file:${karaf.home}/etc/foo.properties" to refer to the foo.proeprties file in the Apache Karaf installation.
  • Fixed an issue with Recipient List in parallel mode, not reusing background aggregator thread
  • Fixed an issue with dependency ordering when using Spring's depends-on attribute between multiple .
  • SERVLET component doesn't hijack Spring to start the web application anymore. Spring and CamelServlet is now independent. See more at important changes to consider when upgrading.
  • Fixed all Camel Maven Archetypes to use new Maven format and ensured they all work out of the box.
  • Web Console upgraded to Scalate 1.4.1, and the webpages is now precompiled
  • JT400 can now execute program calls on the AS/400
  • Cache now only mandates a message body for the add and update operations. This makes get operation possible for messages with no existing body.
  • Fixed issue when Jetty continuation timeouts has been triggered before Asynchronous Routing Engine has reply ready. This would cause Jetty to log WARN logs about illegal state.
  • New Components:
  • Context
  • Hazelcast
  • DNS
  • MyBatis
  • New DSL:
  • added to XML DSL
  • endChoice added to Java DSL
  • placeholder added to Java DS
  • New Languages:
  • Spring Expression Language
  • New Examples:
  • camel-example-osgi-rmi
  • camel-example-servlet-tomcat
  • New Archetypes:
  • camel-archetype-web added to generate a project to deploy camel routes as a WAR
  • API breaking:
  • FATAL has been removed from org.apache.camel.LoggingLevel. Use ERROR instead.
  • org.apache.camel.processor.Logger has been renamed to org.apache.camel.processor.CamelLogger, and it now uses slf4j as the logger.
  • Removed getLeftValue and getRightValue methods on BinaryPredicate.
  • The ref attribute on has been removed. Instead use redeliveryPolicyRef attribute on or tags.
  • The and tags in XML DSL in the Resequencer EIP must now be configured in the top, and not in the bottom. So if you use those, then move them up just below the EIP starts in the XML.
  • The JdbcAggregationRepository is moved from the camel-jdbc-aggregator component to the camel-sql component. The full qualified class name changed from org.apache.camel.component.jdbc.aggregationRepository.JdbcAggregationRepository to org.apache.camel.processor.aggregate.jdbc.JdbcAggregationRepository.
  • sortBody methods removed from Java DSL. You can use sort(body()) instead.
  • The Sort EIP in XML DSL is now configured the expression directly. Which means you no longer need to use enclosing the expression. Instead you set the expression directly, just as the other EIPs does.
  • Method parsePropertyValue renamed to parseProperty and have additional parameters in the PropertiesParser interface.

New in Apache Camel 2.3.0 (Jun 3, 2010)

  • Overhauled threading model and introducing threadPoolProfile to define profiles for thread pools to have easy configuration.
  • Property placeholders in for example endpoint uris is not natively supported in camel-core which means you no long need to use Spring for that. It works therefore in any environment as its provided out of the box in camel-core.
  • Property placeholders also works in the when using Spring XML. Basically nearly all places where you enter text the property placeholder is supported.
  • Total overhaul of the Aggregator EIP, which now has better completion triggers, and supports pluggable repository. For example to use camel-hawtdb as persistent store. Also added support for recovery and transactional behavior when using camel-hawtdb.
  • Added ExchangeSentEvent to EventNotifier which contains time taken and is emitted when an Exchange is sent to an Endpoint. This allows end users to easily gather performance stats for Exchange send to endpoints.
  • Added disconnect option to MINA to close Mina session right after usage.
  • Jetty now supports to get the HttpServletRequest and HttpServletResponse from the Message header.
  • XPathBuilder now supports being used without an Exchange which allows you to use it in a custom/generic fashion.
  • XPath now supports using the JVM system property specifying a custom XPathFactory to be used. You can use this to switch from default to use e.g. Saxon.
  • XSLT now supports using where the files is loaded from classpath, and being able to load relative according to the endpoint configured location. See the wiki page for details.
  • File, FTP added option eagerDeleteTargetFile to control the behavior when using tempFile whether or not to eagerly delete the target file or wait until last moment.
  • Reduced registering producers in JMX to prevent using too much memory and potentially registering short lived producers which didn't bring much value of being managed as well.
  • Added camel-http4 component using Apache HTTP Client 4.0.1. This can be used by early adaptors to try out the new Apache HTTP Client 4.x architecture.
  • Upgraded Jetty to use Jetty 7.0.1.
  • Individual routes can be Graceful Shutdown at runtime, which allows you to stop the route in a more reliable and gentle way.
  • Added removeHeaders to remove multiple headers, e.g. use removeHeaders("Camel*") to remove all Camel related headers.
  • Improved the Failover load balancer to support round robin mode and a few other options as well.
  • Fixed issue with Camel not being able to run deployed as a WAR in WebLogic server.
  • Fixed Polling Consumer not working with JMS selector.
  • pollEnrich now handover completions which means you can use the move like options from File or FTP component. For example to enrich with a file and have that file moved when the route completes.
  • Added @Attachments annotation to Bean binding.
  • Simple and Bean language now has a build in OGNL notation which allows you to reference from Map or List structures and as well to invoke methods in a OGNL like notation. See more details at Simple wiki page.
  • camel-jetty supports the multipart/form post out of box.
  • Graceful Shutdown now shut down routes in the reverse order in which they was started. Option shutdownRoutesInReverseOrder can be used to control this behavior.
  • XSLT component now allows you to chose which output type to use with the output option. For example you can now stream directly to a file, for example when transforming very big xml messages.
  • Error Handler can be configure with specialized tag to make it easier to configure error handling in Spring XML.
  • Added depends-on attribute to so you can have other beans created before Camel when using Spring XML.
  • Added org.apache.camel.builder.ProxyBuilder to easier create Camel Proxy in Java / Java DSL.
  • ProducerTemplate and ConsumerTemplate can now be configured with a maximumCacheSize to control how many producers/consumers they can cache.
  • Methods on CamelContext} to create {{ProducerTemplate and ConsumerTemplate now pre starts the templates so they are ready to use asap.
  • Fixed polling Files on a Windows network share may skip files with a log message Ignoring unsupported file type for file.
  • ProducerCache is now exposed for management in JMX which allows you to 'keep an eye on it' at runtime. This cache is used by certain EIP patterns.
  • Fixed polling Files or FTPs when recursive and idempotent is enabled, which could cause Camel to not pickup files in sibling folders with similar name to already consumed files.
  • Improved request/reply messaging over SEDA and VM endpoints to work properly with many endpoints (chained).
  • JPA component will now auto lookup EntityManagerFactory and TransactionManager from Registry to support convention over configuration. Then you do not any longer need to explicit configure this on the JpaComoponent. If auto lookup failed a WARN log is logged.
  • Fixed camel-spring having factory beans for ProducerTemplate and ConsumerTemplate set to non singleton, which caused it to create new instances. Obviously it should have been singleton as you want to reuse the template.
  • Fixed camel-spring when @Produce/@Consume/@EndpointInjected annotated was used on prototype scoped beans, to not register those annotated services to be closed in CamelContext. This caused Camel to keep references to these services even when the prototype was no longer in used. And causing Camel to eat memory.
  • Added camel-spring-security component, now you can use spring security within camel route.
  • Mock endpoints now report more detailed assertion failures when binary predicates are used, as you can see the evaluated expression which failed.
  • Improved the Tracer to make it easier for Camel end users to extend it and use custom tracing such as storing to a database using JPA but with their own @Entity class.
  • Improved Wire Tap when sending a new Exchange by having access to the original Exchange so you can grab that information when creating the new Exchange.
  • Fixed Policy to be applicable per processor, multiple processors or the entire route
  • Camel now checks more aggressively on startup if route nodes which mandates child nodes also have such configured. If not an exception will be thrown on startup.
  • XPath is now easier to work with as we added more type converters which supports the default type, org.w3c.dom.NodeList, use by XPath.
  • When using Spring XML you can now import routes from other XML files
  • Much friendlier syntax to configure time periods in endpoint uris, for example the Timer component. Or how often to poll from a File or FTP consumer.
  • Camel Http component will not consumer the message body when it parses the POST message with the content-type of "application/x-www-form-urlencoded", and it also honors the charset setting of the "content-type".
  • Now you can enable or disable gzip processing by setting the exchange property with name Exchange.SKIP_GZIP_ENCODING and value Boolean.True in Camel Http component.
  • Improved NodeList to String converter to include xml tags, attributes and whatnot, eg you get outputs such as bar2010.
  • Added continued option to Exception Clause so you can use it catch the exception and continue routing from the point of where the exception was thrown (Camel will continue to the next processor in the route graph).
  • Recipient List and Routing Slip now has option ignoreInvalidEndpoints to just ignore and continue if an endpoint uri was invalid.
  • Now you can override the default XSL output properties by setting the CamelContext properties
  • Now camel provides a karaf feature file with Spring 3.0.2.RELEASE, the features url is "mvn:org.apache.camel.karaf/apache-camel/2.3.0/xml/features-spring3"
  • New Components:
  • camel-nagios for sending passive checks to Nagios
  • properties for using property placeholders to resolve endpoint uris.
  • camel-gae extensions
  • gauth component for implementing OAuth consumers.
  • glogin component for programmatic login to Google App Engine applications from Java clients.
  • camel-hawtdb as persistent store for the Aggregator EIP.
  • camel-netty for working with TCP and UDP protocols using Java NIO based capabilities offered by the JBoss Netty.
  • camel-scalate for working with the ScalaTE template framework
  • camel-exec for executing system commands
  • camel-bean-validator performs bean validation of the message body using the Java Bean Validation API (JSR 303).
  • camel-spring-security support to integrate the spring security with Camel.
  • camel-crypto using Camel cryptographic endpoints and Java's Cryptographic extension it is easy to create Digital Signatures for Exchanges.
  • camel-eclipse for using Camel with Eclipse RCP.
  • New DSL:
  • removeHeaders
  • validate
  • New Annotations:
  • @Attachments
  • New Data Formats:
  • SOAP data format provides basic webservice support without the CXF Stack
  • Crypto data format integrates the Java Cryptographic Extension into Camel
  • New Examples:
  • camel-example-aggregate shows the new overhauled Aggregator in use with persistence storage using HawtDB.
  • camel-example-spring-security shows how to use camel-spring-security to implement role based authorization.
  • camel-example-loadbalancing-mina shows how to use Load Balancer EIP to balance communication with remote servers using MINA.
  • New Tutorials:
  • The OAuth tutorial demonstrates how to implement OAuth in web applications with Camel's new gauth component.
  • API breaking:
  • The Aggregate has been overhauled and thus you need to migrate you Camel application if you use it.
  • In MINA the header key MinaConsumer.HEADER_CLOSE_SESSION_WHEN_COMPLETE is moved to MinaConstants.MINA_CLOSE_SESSION_WHEN_COMPLETE
  • org.apache.camel.spi.PollingConsumerPollStrategy now returns a boolean in the begin method. Use true to accept to begin polling, and false to skip polling at this time.
  • A new method onInit has been added to org.apache.camel.spi.RoutePolicy.
  • Added method removeHeaders on the org.apache.camel.Message API.
  • getExecutorService/setExecutorService have been removed from DefaultComponent and DefaultEndpoint.
  • You should use CamelContext.getExecutorServiceStrategy() which is the API for creating thread pools in Camel.
  • Changed Exception to Throwable on the org.apache.camel.spi.EventFactory and the various xxxEvent objects as Camel now catches Throwable on shutdown to ensure a more robust shutdown in case a Throwable was thrown.
  • Removed unused class org.apache.camel.spi.Provider.
  • Fixed spelling in the parallelProcessing option from the @RecipientList annotation.
  • GenericFile is no longer java.io.Serializable
  • Method adviceWith on RouteDefinition now requires CamelContext as first parameter.