Return-Path: X-Original-To: apmail-camel-commits-archive@www.apache.org Delivered-To: apmail-camel-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 174A8C765 for ; Sun, 24 Jun 2012 13:21:58 +0000 (UTC) Received: (qmail 20165 invoked by uid 500); 24 Jun 2012 13:21:58 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 20129 invoked by uid 500); 24 Jun 2012 13:21:58 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 20121 invoked by uid 99); 24 Jun 2012 13:21:57 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 24 Jun 2012 13:21:57 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 24 Jun 2012 13:21:53 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 2B2662388A38 for ; Sun, 24 Jun 2012 13:21:33 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r822956 [2/2] - in /websites/production/camel/content: book-component-appendix.html book-in-one-page.html book-pattern-appendix.html cache/main.pageCache camel-2100-release.html file2.html polling-consumer.html Date: Sun, 24 Jun 2012 13:21:30 -0000 To: commits@camel.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120624132133.2B2662388A38@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: websites/production/camel/content/camel-2100-release.html ============================================================================== --- websites/production/camel/content/camel-2100-release.html (original) +++ websites/production/camel/content/camel-2100-release.html Sun Jun 24 13:21:29 2012 @@ -84,12 +84,12 @@

Welcome to the 2.10.0 release with approximately XXX issues resolved - including new features, improvements, and bug fixes, such as:

-
  • Added support for Java 1.7
  • Added consumer to JCR component
  • Internal code cleanup to reduce warnings reported by Eclipse
  • Moved Spring Testing from camel-test to camel-test-spring component.
  • Camel Property Placeholders are now supported in embedded Expressions within Camel routes.
  • Added missing options in the XML DSL for the XPath language to control and set which XPath Engine to use, etc.
  • Added option logNamespaces to the XPath language to have INFO logging of detected namespaces from message. This can be used to tr oubleshoot issues where an XPath expression doesn't work as expected (as it's often a namespace conflict).
  • Added replyToCacheLevelName option to the JMS component, allowing configuration of cache levels for persistent reply consumers when doing request/reply over JMS. Some message brokers do not work well with caching, so users may need to set this option to CACHE_NONE.
  • Added antInclude and antExclude options to File and FTP components to make it easier to specify include/exclude filters using ANT syntax.
  • The Camel archetypes for Java and Scala no longer generate projects with Spring dependencies.
  • Improved JdbcMessageIdRe pository in the SQL to use custom SQL statements/queries.
  • Added option to Properties to allow silently ignoring property locations not found, such as a .properties file.
  • Added managementNamePattern attribute to <camelContext> to make it very easy to customize and control the JMX naming of the Camel application. See details at Camel JMX. For example, in OSGi environments you can explicitly configure a managementNamePattern in case you do not want the bundleId as part of MBean names.
  • Added streaming update support to Solr as well as support for SolrInputDocuments
  • Added SolrJ DirectXMLRequest support to S olr to support XML based index updates
  • Improved Camel Mail to support the replyTo option
  • Added traceEnabled option to Jetty component so you have control over whether to allow HTTP TRACE calls against your Jetty endpoints.
  • Polished the Camel Maven Archetypes to let the projects be prepared for Testing, and fixed any WARNs from Maven.
  • Added dumpRouteStatsAsXml methods to JMX to make it easier to get the total performance stats as XML, and in one JMX call.
  • Graceful Shutdown is now more aggressive if timeout occurred during shutdown, r ejecting continued processing of messages or redeliveries.
  • Add ShutdownPrepared SPI to allow custom Services (also EIPs) in routes to do custom code in preparation for shutdown.
  • The camel-archetype-java Camel Maven Archetypes is now a pure Java DSL based project (no longer Spring)
  • JMS consumer is less verbose when logging uncaught exceptions thrown while processing a message. Added errorHandlerLoggingLevel, and errorHandlerLogStackTrace options to tweak the logging verbosity.
  • Added messageId as an MDC logging key.
  • Improved Camel's Transaction Error Handler logging to better pinpoint and correlate redelivered messages (from, e.g., a JMS broker), making the logs much easier to read.
  • Added a timeout option to Spring Web Services for specifying the read timeout while invoking a webservice.
  • Optimized Type Converter registry for possible concurrency contention when looking up a type converter.
  • Improved Simple language to work better with floating point numbers in Predicates
  • Camel is now less verbose when starting and stopping, with less being logged at INFO level.
  • Add support for keyed data queues to JT400 component.
  • Idempotent Consumer is now enlisted in JMX, w hich allows monitoring the duplicate message count as well as the operation to reset it.
  • Thread pools registered in JMX are now unregistered when Camel shuts them down. Note that all MBeans will be unregistered from JMX when Camel shuts itself down. This improvement is to unregister thread pools more eagerly, such as when routes are removed at runtime.
  • Camel will now also copy the message headers for a JmsMessage if you leverage useOriginalMessage in an onException definition.
  • Added mockEndpointsAndSkip to AdviceWith and the Test Kit
  • The File and FTP components now support filtering directories. The isDirectory method on the GenericFile class can be used to skip unwanted directories, accelerating file consumption.
  • SMPP connections can now be tunneled through an HTTP proxy by configuring HTTP proxy settings.
  • Camel now also checks, when starting a route dynamically, whether there would be any violations on multiple consumers from the same Endpoint. Previously this check only occurred during Camel startup - now it always happens.
  • Stopping a ConsumerTemplate or a ProducerTemplate will now stop and shutdown its cache to cleanup any resources which otherwise may not have been reclaimed until shutdown.
  • ScheduledPollConsumer will now shutdown thread pools more eagerly, such as when stop ping a ConsumerTemplate.
  • Added option asyncStartListener to JMS to allow starting JMS consumers (e.g. routes) asynchronously. This can be used to avoid blocking in case the JMS consumer takes long time to establish a connection to the JMS broker.
  • Wire Tap now supports Error Handling when sending a tapped message to an Endpoint.
  • Added the autogenColumns, configRef and strategyRef options to the CSV dataformat in XML DSL whereas the new skipFirstLine option is provided in Java API as well.
  • Validator component will now fail with a better error message if resource schema ref ers to element which cannot be resolved.
  • Added support for retrieving generated keys from JDBC component.
  • Added support for Spring 3.1.x.
  • Added retainFirst, and retainLast options to Mock component.
  • Improved Simple language to allow referring to headers using bracket notation.
  • Added support for the scp: protocol via Jsch.
  • Added support to exclude certain fields when marshalling POJO's to JSON. Available with both the Jackson and GSON library.
  • Allow to configure frequency of timeout checker when doing request/reply over JMS
  • Improved the Java DSL to make it easier to use predicates from the build-in DSL, that has commonly used predicates and expressions.
  • Aggregate EIP now supports TimeoutAwareAggregationStrategy aggregation strategies.
  • The default Injector now performs bean post processing to inject @Produce, @Consume, @EndpointInject fields etc.
  • The camel-run maven plugin now supports running OSGi Blueprint applications.
  • Added utilization statistics to the type converter registry (which can be accessed from JMX), and are logged as Camel is shutting down.
  • Improved JMX to work better with servers such as WebSphere which alters MBean names when enlisti ng mbeans into the server (Camel now have an internal mapping table).
  • All EIPs out of the box from Camel now provides JMX utilization statistics.
  • The File and FTP consumers will now let org.apache.camel.spi.ExceptionHandler deal with exceptions occurred during acquiring real lock as well. See File page for example of using a custom ExceptionHandler.
  • Reduce the logging level from ERROR to WARN on the default LoggingExceptionHandler.
  • Added option consumer.bridgeErrorHandler to allow consumers such as File and FTP to use the routing engine Error Handler to deal with exceptions occurring in the consumer (outside the routing engine), for example if having trouble picking up a file from a shared network drive etc. See more details at File page. This option applies to all consumers which extends the DefaultConsumer from camel-core.
  • Added eagerMaxMessagesPerPoll option to File, and FTP endpoints to allow to do a full sorting of the files and also limit the pool at the same time
  • The XSLT, Velocity, FreeMarker, and StringTemplate compo nents using http resource for the template now supports query parameters
  • You can specify the class type with Bindy to make it stand out what type is being used, as well the unmarshal operation returns a list of the pojos (and the pojo directly if only 1). Which makes it easier to use/work with.
  • Added group option to Tokenizer to make it easier with the Splitter to split by combining N number of parts together, eg splitting files in chunks by N lines combined.
  • Camel is now compatible to the upcoming Karaf 3 release
  • Added ExchangeSendingEvent to EventNotifier to emit an event before sending an Exchange to an Endpoint. Then we have events for both before and after.
  • Relaxed syntax check in Simple language to only scan for functions if a start token was explicit configured. This allows to easier do json like expressions.
  • Added support for escaping values in Simple language using the \ character.
  • Added new Camel Maven Archetypes for creating new Component using Scala.
  • Added trim option to Languages in the XML DSL, to control trimming the expression values, to remove the whitespace noise from XML tags.
  • Improved the File consumer to support competing consumers on a shared drive to not pickup files from other consumers, as marker file is always used, for readLock strategies such as changed, rename and fileLock. For example if you have a clustered environment and have multiple Camel applications pickup files from a shared drive with readLock=changed.
  • The File consumer with readLock=changed will now consider zero length file as in progress files.
  • Made it easier to bridge Spring and Camel property placeholders, by configuring only once, using a new BridgePropertyPlaceholderConfigurer bean type.
  • Improved the SMPP component to refer to a org.jsmpp.session.SessionStateListener to receive callbacks when the session state changed.
  • Added connection pooling to JT400 component
  • Restlet component can be configured with Restlet Server parameters, for example to configure thread pool sizes.
  • CamelContext MBean in JMX now shows aggregated performance stats for all the routes
  • Made it easy to override properties when Testing with Camel when Using PropertyPlaceholder. For example unit testing with OSGi Blueprint using config admin service to provide properties, is now easy as you can provide the properties from directly within the unit test source code itself.
  • Improved Netty to support both shareable and non-shareable encoders and decoders.
  • Improved Netty to support proxy use cases (eg from(netty).to(netty))
  • Added CompletionAwareAggregationStrategy to Aggregator EIP as callback when the aggregated exchange is completed.
+
  • Added support for Java 1.7
  • Added consumer to JCR component
  • Internal code cleanup to reduce warnings reported by Eclipse
  • Moved Spring Testing from camel-test to camel-test-spring component.
  • Camel Property Placeholders are now supported in embedded Expressions within Camel routes.
  • Added missing options in the XML DSL for the XPath language to control and set which XPath Engine to use, etc.
  • Added option logNamespaces to the XPath language to have INFO logging of detected namespaces from message. This can be used to tr oubleshoot issues where an XPath expression doesn't work as expected (as it's often a namespace conflict).
  • Added replyToCacheLevelName option to the JMS component, allowing configuration of cache levels for persistent reply consumers when doing request/reply over JMS. Some message brokers do not work well with caching, so users may need to set this option to CACHE_NONE.
  • Added antInclude and antExclude options to File and FTP components to make it easier to specify include/exclude filters using ANT syntax.
  • The Camel archetypes for Java and Scala no longer generate projects with Spring dependencies.
  • Improved JdbcMessageIdRe pository in the SQL to use custom SQL statements/queries.
  • Added option to Properties to allow silently ignoring property locations not found, such as a .properties file.
  • Added managementNamePattern attribute to <camelContext> to make it very easy to customize and control the JMX naming of the Camel application. See details at Camel JMX. For example, in OSGi environments you can explicitly configure a managementNamePattern in case you do not want the bundleId as part of MBean names.
  • Added streaming update support to Solr as well as support for SolrInputDocuments
  • Added SolrJ DirectXMLRequest support to S olr to support XML based index updates
  • Improved Camel Mail to support the replyTo option
  • Added traceEnabled option to Jetty component so you have control over whether to allow HTTP TRACE calls against your Jetty endpoints.
  • Polished the Camel Maven Archetypes to let the projects be prepared for Testing, and fixed any WARNs from Maven.
  • Added dumpRouteStatsAsXml methods to JMX to make it easier to get the total performance stats as XML, and in one JMX call.
  • Graceful Shutdown is now more aggressive if timeout occurred during shutdown, r ejecting continued processing of messages or redeliveries.
  • Add ShutdownPrepared SPI to allow custom Services (also EIPs) in routes to do custom code in preparation for shutdown.
  • The camel-archetype-java Camel Maven Archetypes is now a pure Java DSL based project (no longer Spring)
  • JMS consumer is less verbose when logging uncaught exceptions thrown while processing a message. Added errorHandlerLoggingLevel, and errorHandlerLogStackTrace options to tweak the logging verbosity.
  • Added messageId as an MDC logging key.
  • Improved Camel's Transaction Error Handler logging to better pinpoint and correlate redelivered messages (from, e.g., a JMS broker), making the logs much easier to read.
  • Added a timeout option to Spring Web Services for specifying the read timeout while invoking a webservice.
  • Optimized Type Converter registry for possible concurrency contention when looking up a type converter.
  • Improved Simple language to work better with floating point numbers in Predicates
  • Camel is now less verbose when starting and stopping, with less being logged at INFO level.
  • Add support for keyed data queues to JT400 component.
  • Idempotent Consumer is now enlisted in JMX, w hich allows monitoring the duplicate message count as well as the operation to reset it.
  • Thread pools registered in JMX are now unregistered when Camel shuts them down. Note that all MBeans will be unregistered from JMX when Camel shuts itself down. This improvement is to unregister thread pools more eagerly, such as when routes are removed at runtime.
  • Camel will now also copy the message headers for a JmsMessage if you leverage useOriginalMessage in an onException definition.
  • Added mockEndpointsAndSkip to AdviceWith and the Test Kit
  • The File and FTP components now support filtering directories. The isDirectory method on the GenericFile class can be used to skip unwanted directories, accelerating file consumption.
  • SMPP connections can now be tunneled through an HTTP proxy by configuring HTTP proxy settings.
  • Camel now also checks, when starting a route dynamically, whether there would be any violations on multiple consumers from the same Endpoint. Previously this check only occurred during Camel startup - now it always happens.
  • Stopping a ConsumerTemplate or a ProducerTemplate will now stop and shutdown its cache to cleanup any resources which otherwise may not have been reclaimed until shutdown.
  • ScheduledPollConsumer will now shutdown thread pools more eagerly, such as when stop ping a ConsumerTemplate.
  • Added option asyncStartListener to JMS to allow starting JMS consumers (e.g. routes) asynchronously. This can be used to avoid blocking in case the JMS consumer takes long time to establish a connection to the JMS broker.
  • Wire Tap now supports Error Handling when sending a tapped message to an Endpoint.
  • Added the autogenColumns, configRef and strategyRef options to the CSV dataformat in XML DSL whereas the new skipFirstLine option is provided in Java API as well.
  • Validator component will now fail with a better error message if resource schema ref ers to element which cannot be resolved.
  • Added support for retrieving generated keys from JDBC component.
  • Added support for Spring 3.1.x.
  • Added retainFirst, and retainLast options to Mock component.
  • Improved Simple language to allow referring to headers using bracket notation.
  • Added support for the scp: protocol via Jsch.
  • Added support to exclude certain fields when marshalling POJO's to JSON. Available with both the Jackson and GSON library.
  • Allow to configure frequency of timeout checker when doing request/reply over JMS
  • Improved the Java DSL to make it easier to use predicates from the build-in DSL, that has commonly used predicates and expressions.
  • Aggregate EIP now supports TimeoutAwareAggregationStrategy aggregation strategies.
  • The default Injector now performs bean post processing to inject @Produce, @Consume, @EndpointInject fields etc.
  • The camel-run maven plugin now supports running OSGi Blueprint applications.
  • Added utilization statistics to the type converter registry (which can be accessed from JMX), and are logged as Camel is shutting down.
  • Improved JMX to work better with servers such as WebSphere which alters MBean names when enlisti ng mbeans into the server (Camel now have an internal mapping table).
  • All EIPs out of the box from Camel now provides JMX utilization statistics.
  • The File and FTP consumers will now let org.apache.camel.spi.ExceptionHandler deal with exceptions occurred during acquiring real lock as well. See File page for example of using a custom ExceptionHandler.
  • Reduce the logging level from ERROR to WARN on the default LoggingExceptionHandler.
  • Added option consumer.bridgeErrorHandler to allow consumers such as File and FTP to use the routing engine Error Handler to deal with exceptions occurring in the consumer (outside the routing engine), for example if having trouble picking up a file from a shared network drive etc. See more details at File page. This option applies to all consumers which extends the DefaultConsumer from camel-core.
  • Added eagerMaxMessagesPerPoll option to File, and FTP endpoints to allow to do a full sorting of the files and also limit the pool at the same time
  • The XSLT, Velocity, FreeMarker, and StringTemplate compo nents using http resource for the template now supports query parameters
  • You can specify the class type with Bindy to make it stand out what type is being used, as well the unmarshal operation returns a list of the pojos (and the pojo directly if only 1). Which makes it easier to use/work with.
  • Added group option to Tokenizer to make it easier with the Splitter to split by combining N number of parts together, eg splitting files in chunks by N lines combined.
  • Camel is now compatible to the upcoming Karaf 3 release
  • Added ExchangeSendingEvent to EventNotifier to emit an event before sending an Exchange to an Endpoint. Then we have events for both before and after.
  • Relaxed syntax check in Simple language to only scan for functions if a start token was explicit configured. This allows to easier do json like expressions.
  • Added support for escaping values in Simple language using the \ character.
  • Added new Camel Maven Archetypes for creating new Component using Scala.
  • Added trim option to Languages in the XML DSL, to control trimming the expression values, to remove the whitespace noise from XML tags.
  • Improved the File consumer to support competing consumers on a shared drive to not pickup files from other consumers, as marker file is always used, for readLock strategies such as changed, rename and fileLock. For example if you have a clustered environment and have multiple Camel applications pickup files from a shared drive with readLock=changed.
  • The File consumer with readLock=changed will now consider zero length file as in progress files.
  • Made it easier to bridge Spring and Camel property placeholders, by configuring only once, using a new BridgePropertyPlaceholderConfigurer bean type.
  • Improved the SMPP component to refer to a org.jsmpp.session.SessionStateListener to receive callbacks when the session state changed.
  • Added connection pooling to JT400 component
  • Restlet component can be configured with Restlet Server parameters, for example to configure thread pool sizes.
  • CamelContext MBean in JMX now shows aggregated performance stats for all the routes
  • Made it easy to override properties when Testing with Camel when Using PropertyPlaceholder. For example unit testing with OSGi Blueprint using config admin service to provide properties, is now easy as you can provide the properties from directly within the unit test source code itself.
  • Improved Netty to support both shareable and non-shareable encoders and decoders.
  • Improved Netty to support proxy use cases (eg from(netty).to(netty))
  • Added CompletionAwareAggregationStrategy to Aggregator EIP as callback when the aggregated exchange is completed.
  • Scheduled Polling Consumer and poll based Components such as File, and FTP can now use a custom/shared thread pool for its consumer(s). For example having many file routes, can now share a thread pool, and reduce number of overall threads in the JVM.

Fixed issues

-
  • Fixed memory leak when dynamically adding and removing many routes at runtime. See this FAQ for more information.
  • Fixed potential NPE in FTP consumer when using double slashes as starting directory.
  • Fixed InterceptSendToEndpoint when using skipSendToEndpoint=true with a when predicate to only skip sending if the predicate was true.
  • Fixed an issue with Bean Binding directly in a method name not working properly with method call expressions.
  • Fixed issue with using custom namespaces in XP ath expressions when using OSGi Blueprint
  • Fixed Validation to support xs:import in the schema files.
  • Fixed Poll Enrich where the timeout was not explicitly configured to use blocking mode (was wrongly using non-blocking mode).
  • Fixed Threads EIP to handle rejected policies, ensuring the Exchange will finish the UnitOfWork and will be de-registered from the inflight registry.
  • Fixed Delayer not working with a Bean expression to define the delay when using XML DSL
  • Fixed JMS consumer to no longer complain by default if no errorHandler is configured when an uncaught exception was thrown while processing a message.
  • Fixed the String trim issue in Simple expressions.
  • Fixed the issue with Recipient List not triggering Error Handler for endpoints with non existing Components.
  • Fixed Load Balancer to update statistics in JMX
  • Fixed SEDA producer configured with waitForTaskToComplete=Always to not hand over on-completion tasks, which otherwis e could be processed prematurely.
  • Fixed a potential issue with configuring custom start and end tokens for the Simple language when using Spring XML.
  • Fixed an issue with Type Converter where NaN values were converted to integers.
  • Fixed HTTP, HTTP4, and Jetty producers to send empty HTTP headers for Exchange headers with an empty value.
  • Fixed an issue with configuring a custom thread pool profile on some EIPs.
  • Fixed an issue with Intercept causing processors to not update their performance statistics in JMX
  • Fixed using <errorHandler> with embedded <redeliveryPolicy> to support Using PropertyPlaceholder
  • Fixed issue with using <redeliveryPolicy>, and <redeliveryPolicyProfile> with OSGi Blueprint.
  • Fixed failover Load Balancer to perform defensive copy of the message before attempting failover, to ensure previous attempts do not propagate back into succeeding attempts.
  • Fixed issue when restarting application using Quartz with a persistent (non clustered) job store, where the app was not shutdown cleanly (such as crashed)
  • Fixed issue when using consumer endpoints with Property placeholders not working with inteceptors such as interceptFrom.
  • Fixed issue with suspend/resume a Timer consumer, not causing timer task to stop firing.
  • Fixed Netty producer to re-use existing connections when sending. This avoid re-creating a new connection for every message being sent.
  • Fixed issue with Simple invoking overloaded methods using OGNL notation, where method name was explicitly declared to invoke the no-parameter method
  • Fixed continued and handled Predicates of OnException to be evaluated once per exception, instead of twice.
  • Fixed Throttler and Delayer EIPs when evaluating of max/delay expression fails at runtime, not causing error handling to react.
  • Fixed Mail message with attachments may appear to be lost when Error Handler performs 2+ redelivery attempts.
  • Fixed issue with a failed type conversion using JAXB may cause subsequent attempts to be regarded as failed as well
  • Fixed method call Expression to preserve headers and Exchange properties, which allow to use it for storing state with the Dynamic Router EIP
  • Fixe d locale issue with configuring endpoints using uris, such as Turkish with the lower/upper case of the letter i.
  • Fixed issue reading and writing files when a charset was configured on the file endpoint.
  • Fixed issue with convertBodyTo not working internally as transform and setBody, by resetting the message type to DefaultMessage.
  • Fixed issue with Loop using copy and an exception occurred
  • Fixed so File consumer using done file name, will not automatic delete the done file if noop=true is configured.
  • Fixed issue with SERVLET may send back incorrect content length for data with unicode characters outside the normal ASCII range.
  • Fixed Jetty http producer (client) may corrupt streams if used in a bridge mode (eg like a proxy)
  • Fixed Jetty http consumer (server) may corrupt streams if chunked was disabled
  • Fixed issue with camel-blueprint and using CamelContextAware beans for EventNotifier (and the beans from this list) injecting the CamelContext which is not ready, causing the blueprint container to hang waiting for the service.
  • Fixed Bindy to not use default locale, but only use locale if explicit configured.
  • Fixed Restlet not propagating headers during routing.
  • Fixed running multiple Camel apps with same CamelContext name in a single JVM with Quartz component, causing jobs to pick wrong CamelContext.
  • Fixed URI normalization to support % sign itself, by specifying the % sign using its encoded value (eg %25).
  • Fixed JMS producer to trigger Camel error handling if destination resolution failed due to an exception.
  • Fixed Error Handler with async redelivery to use shared thread pool per CamelContext, instead of per JVM
+
  • Fixed memory leak when dynamically adding and removing many routes at runtime. See this FAQ for more information.
  • Fixed potential NPE in FTP consumer when using double slashes as starting directory.
  • Fixed InterceptSendToEndpoint when using skipSendToEndpoint=true with a when predicate to only skip sending if the predicate was true.
  • Fixed an issue with Bean Binding directly in a method name not working properly with method call expressions.
  • Fixed issue with using custom namespaces in XP ath expressions when using OSGi Blueprint
  • Fixed Validation to support xs:import in the schema files.
  • Fixed Poll Enrich where the timeout was not explicitly configured to use blocking mode (was wrongly using non-blocking mode).
  • Fixed Threads EIP to handle rejected policies, ensuring the Exchange will finish the UnitOfWork and will be de-registered from the inflight registry.
  • Fixed Delayer not working with a Bean expression to define the delay when using XML DSL
  • Fixed JMS consumer to no longer complain by default if no errorHandler is configured when an uncaught exception was thrown while processing a message.
  • Fixed the String trim issue in Simple expressions.
  • Fixed the issue with Recipient List not triggering Error Handler for endpoints with non existing Components.
  • Fixed Load Balancer to update statistics in JMX
  • Fixed SEDA producer configured with waitForTaskToComplete=Always to not hand over on-completion tasks, which otherwis e could be processed prematurely.
  • Fixed a potential issue with configuring custom start and end tokens for the Simple language when using Spring XML.
  • Fixed an issue with Type Converter where NaN values were converted to integers.
  • Fixed HTTP, HTTP4, and Jetty producers to send empty HTTP headers for Exchange headers with an empty value.
  • Fixed an issue with configuring a custom thread pool profile on some EIPs.
  • Fixed an issue with Intercept causing processors to not update their performance statistics in JMX
  • Fixed using <errorHandler> with embedded <redeliveryPolicy> to support Using PropertyPlaceholder
  • Fixed issue with using <redeliveryPolicy>, and <redeliveryPolicyProfile> with OSGi Blueprint.
  • Fixed failover Load Balancer to perform defensive copy of the message before attempting failover, to ensure previous attempts do not propagate back into succeeding attempts.
  • Fixed issue when restarting application using Quartz with a persistent (non clustered) job store, where the app was not shutdown cleanly (such as crashed)
  • Fixed issue when using consumer endpoints with Property placeholders not working with inteceptors such as interceptFrom.
  • Fixed issue with suspend/resume a Timer consumer, not causing timer task to stop firing.
  • Fixed Netty producer to re-use existing connections when sending. This avoid re-creating a new connection for every message being sent.
  • Fixed issue with Simple invoking overloaded methods using OGNL notation, where method name was explicitly declared to invoke the no-parameter method
  • Fixed continued and handled Predicates of OnException to be evaluated once per exception, instead of twice.
  • Fixed Throttler and Delayer EIPs when evaluating of max/delay expression fails at runtime, not causing error handling to react.
  • Fixed Mail message with attachments may appear to be lost when Error Handler performs 2+ redelivery attempts.
  • Fixed issue with a failed type conversion using JAXB may cause subsequent attempts to be regarded as failed as well
  • Fixed method call Expression to preserve headers and Exchange properties, which allow to use it for storing state with the Dynamic Router EIP
  • Fixe d locale issue with configuring endpoints using uris, such as Turkish with the lower/upper case of the letter i.
  • Fixed issue reading and writing files when a charset was configured on the file endpoint.
  • Fixed issue with convertBodyTo not working internally as transform and setBody, by resetting the message type to DefaultMessage.
  • Fixed issue with Loop using copy and an exception occurred
  • Fixed so File consumer using done file name, will not automatic delete the done file if noop=true is configured.
  • Fixed issue with SERVLET may send back incorrect content length for data with unicode characters outside the normal ASCII range.
  • Fixed Jetty http producer (client) may corrupt streams if used in a bridge mode (eg like a proxy)
  • Fixed Jetty http consumer (server) may corrupt streams if chunked was disabled
  • Fixed issue with camel-blueprint and using CamelContextAware beans for EventNotifier (and the beans from this list) injecting the CamelContext which is not ready, causing the blueprint container to hang waiting for the service.
  • Fixed Bindy to not use default locale, but only use locale if explicit configured.
  • Fixed Restlet not propagating headers during routing.
  • Fixed running multiple Camel apps with same CamelContext name in a single JVM with Quartz component, causing jobs to pick wrong CamelContext.
  • Fixed URI normalization to support % sign itself, by specifying the % sign using its encoded value (eg %25).
  • Fixed JMS producer to trigger Camel error handling if destination resolution failed due to an exception.
  • Fixed Error Handler with async redelivery to use shared thread pool per CamelContext, instead of per JVM
  • Fixed issue with added headers, using setHeader may be lost if a JMS route uses the Dynamic Router EIP

New Enterprise Integration Patterns

Modified: websites/production/camel/content/file2.html ============================================================================== --- websites/production/camel/content/file2.html (original) +++ websites/production/camel/content/file2.html Sun Jun 24 13:21:29 2012 @@ -123,7 +123,7 @@ This option provides the build in strate
rename is for using a try to rename the file as a test if we can get exclusive read-lock.
none is for no read locks at all.
Notice from Camel 2.10 onwards the read locks changed, fileLock and rename will also use a markerFile as well, to ensure not picking up files that may be in process by another Camel consumer running on another node (eg cluster). This is only supported by the file component (not the ftp component). readLockTimeout
- Optional timeout in millis for the read-lock, if supported by the read-lock. If the read-lock could not be granted and the timeout triggered, then Camel will skip the file. At next poll Camel, will try the file again, and this time maybe the read-lock could be granted. Use a value of 0 or lower to indicate forever. In Camel 2.0 the default value is 0. In Camel 2.1 the default value is 10000. Currently fileLock, changed and rename support the timeout. For FTP the default readLockTimeout value is 20000. readLockCheckInterval 1000 Camel 2.6: Interval in millis for the read-lock, if supported by the read lock. This interval is used for sleeping between attempts to acquire the read lock. For example when using the changed read lock, you can set a higher interval period to cater for slow writes. The default of 1 sec. may be too fast if the producer is very slow writing the file. For FTP the default readLockCheckInterval is 5000. directoryMustExist false Camel 2.5: Similar to startingDirectoryMustExist but this applies during polling recursive sub directories. doneFileName null Camel 2.6: If provided, Camel will only consume files if a done file exists. This option configures what file name to use. Either you can specify a fixed name. Or you can use dynamic placeholders. The done file is always expected in the same folder as the original file. See using done file and writing done file sections for examples. exclusiveReadLockStrategy null Pluggable read-lock as a org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy implementation. maxMessagesPerPoll 0 An integer to define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. See more details at Batch Consumer. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll=500, then only the first 500 files will be picked up, and then sorted. You can use the eagerMaxMessagesPerPoll option and set this to false to allow to scan all files first and then sort afterwards. eagerMaxMessagesPerPoll true < b>Camel 2.9.3: Allows to control whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows to sort all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting. minDepth 0 Camel 2.8: The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory. This option is supported by FTP consumer from Camel 2.8.2, 2.9 onwards. maxDepth Integer.MAX_VALUE Camel 2.8: The maximum depth to traverse when recursively processing a directory. This option is supported by FTP consumer from Camel 2.8.2, 2.9 onwards. processStrategy null A pluggable org.apache.camel.component.file.GenericFileProcessStrategy allowing you to implement your own readLock option or similar. Can also be used when special conditions must be met before a file can be consumed, such as a special ready file exists. If this option is set then the readLock option does not apply. startingDirectoryMustExist false Camel 2.5: Whether the starting directory must exist. Mind that the autoCreate option is default enabled, which means the starting directory is normally auto created if it doesn't exist. You can disable autoCreate and enable this to ensure the starting directory must exist. Will thrown an exception if the directory doesn't exist. pollStrategy null Camel 2.0: A pluggable org.apache.camel.PollingConsumerPollStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operat ion before an Exchange have been created and being routed in Camel. In other words the error occurred while the polling was gathering information, for instance access to a file network failed so Camel cannot access it to scan for files. The default implementation will log the caused exception at WARN level and ignore it. sendEmptyMessageWhenIdle false Camel 2.9: If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. consumer.bridgeErrorHandler false Cam el 2.10: Allows to bridge the consumer to the Camel routing Error Handler, which mean any exceptions occurred while trying to pickup files, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that by default will be logged at WARN/ERROR level and ignored. See further below on this page fore more details, at section How to use the Camel error handler to deal with exceptions triggered outside the routing engine. + Optional timeout in millis for the read-lock, if supported by the read-lock. If the read-lock could not be granted and the timeout triggered, then Camel will skip the file. At next poll Camel, will try the file again, and this time maybe the read-lock could be granted. Use a value of 0 or lower to indicate forever. In Camel 2.0 the default value is 0. In Camel 2.1 the default value is 10000. Currently fileLock, changed and rename support the timeout. For FTP the default readLockTimeout value is 20000. readLockCheckInterval 1000 Camel 2.6: Interval in millis for the read-lock, if supported by the read lock. This interval is used for sleeping between attempts to acquire the read lock. For example when using the changed read lock, you can set a higher interval period to cater for slow writes. The default of 1 sec. may be too fast if the producer is very slow writing the file. For FTP the default readLockCheckInterval is 5000. directoryMustExist false Camel 2.5: Similar to startingDirectoryMustExist but this applies during polling recursive sub directories. doneFileName null Camel 2.6: If provided, Camel will only consume files if a done file exists. This option configures what file name to use. Either you can specify a fixed name. Or you can use dynamic placeholders. The done file is always expected in the same folder as the original file. See using done file and writing done file sections for examples. exclusiveReadLockStrategy null Pluggable read-lock as a org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy implementation. maxMessagesPerPoll 0 An integer to define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. See more details at Batch Consumer. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll=500, then only the first 500 files will be picked up, and then sorted. You can use the eagerMaxMessagesPerPoll option and set this to false to allow to scan all files first and then sort afterwards. eagerMaxMessagesPerPoll true < b>Camel 2.9.3: Allows to control whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows to sort all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting. minDepth 0 Camel 2.8: The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory. This option is supported by FTP consumer from Camel 2.8.2, 2.9 onwards. maxDepth Integer.MAX_VALUE Camel 2.8: The maximum depth to traverse when recursively processing a directory. This option is supported by FTP consumer from Camel 2.8.2, 2.9 onwards. processStrategy null A pluggable org.apache.camel.component.file.GenericFileProcessStrategy allowing you to implement your own readLock option or similar. Can also be used when special conditions must be met before a file can be consumed, such as a special ready file exists. If this option is set then the readLock option does not apply. startingDirectoryMustExist false Camel 2.5: Whether the starting directory must exist. Mind that the autoCreate option is default enabled, which means the starting directory is normally auto created if it doesn't exist. You can disable autoCreate and enable this to ensure the starting directory must exist. Will thrown an exception if the directory doesn't exist. pollStrategy null Camel 2.0: A pluggable org.apache.camel.PollingConsumerPollStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operat ion before an Exchange have been created and being routed in Camel. In other words the error occurred while the polling was gathering information, for instance access to a file network failed so Camel cannot access it to scan for files. The default implementation will log the caused exception at WARN level and ignore it. sendEmptyMessageWhenIdle false Camel 2.9: If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. consumer.bridgeErrorHandler false Cam el 2.10: Allows to bridge the consumer to the Camel routing Error Handler, which mean any exceptions occurred while trying to pickup files, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that by default will be logged at WARN/ERROR level and ignored. See further below on this page fore more details, at section How to use the Camel error handler to deal with exceptions triggered outside the routing engine. scheduledExecutorService null Camel 2.10: Allows to configure a custom/shared t hread pool to use for the consumer. By default each consumer has its own single threaded thread pool. This option allows you to share a thread pool among multiple file consumers. Modified: websites/production/camel/content/polling-consumer.html ============================================================================== --- websites/production/camel/content/polling-consumer.html (original) +++ websites/production/camel/content/polling-consumer.html Sun Jun 24 13:21:29 2012 @@ -257,7 +257,7 @@ from("activemq:
Option Default Description
pollStrategy
-
A pluggable org.apache.camel.PollingConsumerPollStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. In other words the error occurred while the polling was gathering information, for instance access to a file network failed so Camel cannot access it to scan for files. The default implementation will log the caused exception at WARN level and ignore it.
sendEmptyMessageWhenIdle false Camel 2.9: If the polling consumer did not poll any files, you can enable this option to send an empty message (no b ody) instead.
startScheduler true Whether the scheduler should be auto started.
initialDelay 1000 Milliseconds before the first poll starts.
delay 500 Milliseconds before the next poll.
useFixedDelay   Controls if fixed delay o r fixed rate is used. See ScheduledExecutorService in JDK for details. In Camel 2.7.x or older the default value is false. From Camel 2.8 onwards the default value is true.
timeUnit TimeUnit.MILLISECONDS time unit for initialDelay and delay options.
runLoggingLevel TRACE Camel 2.8: The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for th at.
+ A pluggable org.apache.camel.PollingConsumerPollStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. In other words the error occurred while the polling was gathering information, for instance access to a file network failed so Camel cannot access it to scan for files. The default implementation will log the caused exception at WARN level and ignore it. sendEmptyMessageWhenIdle false Camel 2.9: If the polling consumer did not poll any files, you can enable this option to send an empty message (no b ody) instead. startScheduler true Whether the scheduler should be auto started. initialDelay 1000 Milliseconds before the first poll starts. delay 500 Milliseconds before the next poll. useFixedDelay   Controls if fixed delay o r fixed rate is used. See ScheduledExecutorService in JDK for details. In Camel 2.7.x or older the default value is false. From Camel 2.8 onwards the default value is true. timeUnit TimeUnit.MILLISECONDS time unit for initialDelay and delay options. runLoggingLevel TRACE Camel 2.8: The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for th at. scheduledExecutorService null Camel 2.10: Allows to configure a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. This option allows you to share a thread pool among multiple consumers.