THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Wiki Markup |
---|
h1. Camel 2.11.0 release (currently in progress) {div:style=padding-right:20px;float:left;margin-left:-20px;} !http://camel.apache.org/download.data/camel-box-v1.0-150x200.png! {div} {div:style=min-height:200px} {div} h2. New and Noteworthy Welcome to the 2.11.0 release with approximately XXX issues resolved - including new features, improvements, and bug fixes, such as: * 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|File2] and [FTP|FTP2] components. * Made {{changed}} read lock strategy on [FTP|FTP2] 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|File2], and [FTP|FTP2] 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|Dead Letter Channel] to control if redelivery is allowed during stopping/shutting down Camel or the route(s). Turning this option {{false}} allows to stop quicker by rejecting redelivery attempts. * Added support for specifying user info in Camel [Endpoint] urls, which contains the @ sign; now the @ sign can be given as is; without being encoded to %40. * Added robust connection support for [JMX]. Optional {{testConnectionOnStartup}} allows a JMX consumer to attach to a JMX server that becomes available _after_ the JMX endpoint starts; {{reconnectOnConnectionFailure}} enables re-connection of failed JMX connections. * [JAXB] and [SOAP] data format now supports controlling namespace prefix mappings when marshalling (eg to avoid prefixes such as ns2, ns3, ns4 etc.) * Added support for using raw uris when [Component]s create [Endpoint]s. This gives component writers full power in case their component has special syntax/notation for endpoint uri configurations. * [EIP]s 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. * 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|Aggregator2] into a List<V> using a custom {{AggregationStrategy}}. * [EIP]s 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. h3. 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|File2] now working with [Aggregate|Aggregator2] 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|Aggregator2] 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|FTP2] not using the optimization to try to rename the work file when routing to a [File|File2] 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"}}. h3. New [Enterprise Integration Patterns] * [ControlBus] EIP h3. New Camel Karaf Command h3. New [Components] * [ControlBus Component] - for easy management using a component supporting the [ControlBus] EIP * {{[camel-cmis|cmis]}} - for integration of CMIS compliant content repositories * {{[camel-couchdb|CouchDB]}} - for integration with [Apache CouchDB|http://couchdb.apache.org/] * {{[camel-elasticsearch|ElasticSearch]}} - for [ElasticSearch|http://elasticsearch.org] integration * {{[camel-sjms|sjms]}} - for "Springless" JMS integration * {{[camel-neo4j|neo4j]}} - for talking to neo4j server from Camel. h3. DSL Changes * Added LoggingErrorHandler fluent builder to Scala DSL. h3. New Annotations h3. New [Data Formats|Data Format] h3. New [Languages] * [VTD-XML] - for fast and efficient XPath evaluation/splitting using the VTD-XML Library. {{camel-vtdxml}} hosted at [Camel Extra|http://camel-extra.googlecode.com/] h3. New [Examples] * [ActiveMQ Camel Tomcat] example shows how to embed Apache ActiveMQ and Camel in a web application running on Apache Tomcat. h3. New [Tutorials] h2. 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 [Component]s 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. h2. Internal/Non API refactorings that may affect users * The [Camel Test Kit|Testing] 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. h2. Known Issues * The [Tracer] may not output all details for some situations, such as when using {{onCompletion}} or {{intercept}}, etc. * The project cannot fully build the site using Maven (e.g. running {{"mvn site"}}). There is no plan to fix this, as the project does not use maven site. * JBoss 7 may log a WARNing when running Camel as a WAR file. h2. Dependency Upgrades * Aries Blueprint 0.3 to 1.0.0 * Async Http Client 1.7.5 to 1.7.6 * Axiom 1.2.10 to 1.2.12 * AWS 1.3.10 to 1.3.14 * BeanIO 2.0.0 to 2.0.2 * Commons Exec 1.0.1 to 1.1 * ConcurrentLinkedHashMap 1.2 to 1.3.1 * Ehcache 2.5.1 to 2.6.0 * Groovy 1.8.6 to 2.0.5 * GSon 2.1 to 2.2.2 * Hazelcast 2.0.2 to 2.4 * HTTP Client 4.1.3 to 4.2.2 * Icu4j 4.0.1 to 4.8.1.1 * Jackson 1.9.7 to 1.9.10 * Jaxen 1.1.3 to 1.1.4 * JClouds 1.4.0 to 1.5.1 * Jettison 1.3.1 to 1.3.2 * Jetty 7.5.4 to 7.6.7 * JRuby 1.6.7 to 1.7.0 * JT400 6.0 to 6.7 * Krati 0.4.5 to 0.4.6 * LevelDBJNI 1.2 to 1.3 * Lucene 3.6.0 to 3.6.1 * Mina 2.0.4 to 2.0.7 * MongoDB Java Driver 2.7.3 to 2.9.1 * MQTTClient 1.2 to 1.4 * Netty 3.5.1 to 3.5.9 * Ognl bundle 3.0.4_1 to 3.0.5_1 * OSGi 4.2.0 to 4.3.0 * Pax Logging 1.5.3 to 1.6.10 * QPid 0.16 to 0.18 * Quartz 1.8.5 to 1.8.6 * Restlet 2.0.14 to 2.0.15 * Saxon 9.3.0.11 to 9.4.0.1 * Scala 2.9.1 to 2.9.2 * Shiro 1.2.0 to 1.2.1 * SLF4J 1.6.6 to 1.7.2 * Solr 3.6.0 to 3.6.1 * Spring Batch 2.1.8 to 2.1.9 * Spring Framework 3.1.1 to 3.1.2 * Spring Integration 2.1.2 to 2.1.4 * Spring Security 3.1.0 to 3.1.3 * SSHD 0.6.0 to 0.8.0 * TestNG 6.0.1 to 6.8 * Woodstox 4.1.2 to 4.1.3 * XStream 1.4.2 to 1.4.3 h2. Important changes to consider when upgrading * {{camel-mina2}} now uses {{OrderedThreadPoolExecutor}} by default. There is a new option {{orderedThreadPoolExecutor}} you can configure it to {{false}} to revert back to unordered if needed. If using SSL etc. then ordered is required to be used. * {{camel-netty}} now uses {{OrderedMemoryAwareThreadPoolExecutor}} by default. There is a new option {{orderedThreadPoolExecutor}} you can configure it to false to revert back to unordered if needed. If using SSL etc. then ordered is required to be used. * The default value of the {{delay}} option on [Timer] has been changed from {{0}} to {{1000}} * The default value of the {{convertLFtoCR}} option of the [HL7] MLLP codec has been changed from {{true}} to {{false}}. Likewise, the [HL7] DataFormat and TypeConverter do not perform this conversion anymore. * The [Simple] language has limited its support for the escape character to only new line, carriage return and tab characters. This makes it easier to use back-slash characters in the [Simple] language without double escaping etc. * {{camel-netty}} now requires {{commons-pool}} as dependency. * The {{maximumQueueSize}} of [Thread Pools|http://camel.apache.org/threading-model.html] and [Thread Pool Profiles|http://camel.apache.org/threading-model.html] with values 0 or negative now means disable the worker queue, and use direct-handover. If you want an unbounded queue size, then set the {{maximumQueueSize}} to {{Integer.MAX_VALUE}} which was what the previous code did. * Custom assigned id's on Camel [Routes] is now validated on starting the routes, that they must be unique within the same CamelContext. * {{camel-blueprint}} now requires Apache Aries 1.0, and OSGi 4.3 or higher.0. * Removed @deprecated classes form {{camel-spring}} in the {{org.apache.camel.component}} package which was causing split-package issue with OSGi. Component authors who are using these @deprecated classes, should migrate to use equivalent classes from {{camel-core}} in the same package. * The default Spring version is upgraded from 3.0.7 to 3.1.3 out of the box. h2. Notice * Maven 3.0.2 or better is required to build the [Source] * If you want to deploy Apache Camel 2.11.0 into Apache Karaf, we highly recommend to use the 'jre.properties.cxf' configuration, which is part of Apache Karaf 2.2.5 onwards. For example {{camel-cxf}}, {{camel-mail}}, and {{camel-spring-ws}} requires this to be installable; as well other features may as well. * Apache Karaf 2.3.0 or better is required for deploying Camel 2.11 onwards. h2. Getting the Distributions h3. Binary Distributions || Description || Download Link || PGP Signature file of download || | Windows Distribution | [apache-camel-2.11.0.zip|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.11.0/apache-camel-2.11.0.zip] | [apache-camel-2.11.0.zip.asc|http://www.apache.org/dist/camel/apache-camel/2.11.0/apache-camel-2.11.0.zip.asc] | | Unix/Linux/Cygwin Distribution | [apache-camel-2.11.0.tar.gz|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.11.0/apache-camel-2.11.0.tar.gz] | [apache-camel-2.11.0.tar.gz.asc|http://www.apache.org/dist/camel/apache-camel/2.11.0/apache-camel-2.11.0.tar.gz.asc] | {info} h3. Source Distributions || Description || Download Link || PGP Signature file of download || | Source Distribution | [apache-camel-2.11.0-src.zip|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.11.0/apache-camel-2.11.0-src.zip] | [apache-camel-2.11.0-src.zip.asc|http://www.apache.org/dist/camel/apache-camel/2.11.0/apache-camel-2.11.0-src.zip.asc] | |