This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new dce9c18 Added Camel 2.20.0 release notes to docs dce9c18 is described below commit dce9c18e00519dc6469bb3f02394318b4e8861c1 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Wed Sep 5 10:59:04 2018 +0200 Added Camel 2.20.0 release notes to docs --- .../en/release-notes/camel-2200-release.adoc | 271 +++++++++++++++++++++ 1 file changed, 271 insertions(+) diff --git a/docs/user-manual/en/release-notes/camel-2200-release.adoc b/docs/user-manual/en/release-notes/camel-2200-release.adoc new file mode 100644 index 0000000..d82e8cc --- /dev/null +++ b/docs/user-manual/en/release-notes/camel-2200-release.adoc @@ -0,0 +1,271 @@ +[[Camel2.20.0Release-Camel2.20.0Release]] +== Camel 2.20.0 Release + +### New and Noteworthy + +Welcome to the 2.20.0 release which resolved over 550 issues including +new features, improvements and bug fixes. + +* Support for Java 9 as a technical preview. Official support for Java 9 +will be forthcoming in the following releases. (source code builds and +tests on a Java 9 JVM). +* Many internal optimisations in the Camel routing engine, such as +reducing thread contention when updating JMX statistics, reducing +internal state objects to claim less memory, and reducing the number of +allocated objects to reduce overhead on GC etc, and much more. +* Camel link:spring-boot.html[Spring Boot] now supports referring to +bean's (lookup in Spring Boot) by their id names in the configuration +files (application.properties|yaml file) when you configure any of the +Camel starter components. +* Camel link:spring-boot.html[Spring Boot] now also supports using +Spring (auto) configuration to configure CamelContext when using Spring +XML files with <camelContext>. +* Worked to make Apache Camel more ready and compatible with the +upcoming Spring Boot 2 and Spring Framework 5. Officially support for +these is expected in Camel 2.21 release. +* The link:jms.html[JMS] component now includes JMS 2.0 functionality to +use shared (durable and non-durable) topic. +* The +https://github.com/apache/camel/blob/master/tooling/maven/camel-maven-plugin/src/main/docs/camel-maven-plugin.adoc[Camel +Maven Plugin] can now validate for duplicate route ids in your source +code. +* Splitted link:twitter.html[Twitter] component into 4, now +directmessage, seach, streaming and timeline has its own endpoint and +scheme. +See https://github.com/apache/camel/blob/master/components/camel-twitter/src/main/docs/twitter.adoc[documentation] for +more details +* Introduced `HeadersMapFactory` SPI which allows to plugin different +implementations, or to use case sensitive maps that are faster than the +default. +* Allow link:kafka.html[Kafka] consumer to break on first unhandled +exception, sync the offset from last known good, and then re-connect +after one timeout cycle, to restart consuming again. This avoids loosing +the failed message, but retry it again on either this consumer, or +another consume which was re-balanced by Kafka. This requires to be +turned on with the new option breakOnFirstError which can be set on both +component or endpoint level. +* Starting and stoping the CamelContext when used with Spring framework +(SpringCamelContext) was revised to ensure that the Camel context is +started last - when all resources should be available, and stopped first +- while all resources are still available +* The link:sql-stored-procedure.html[SQL Stored Procedure] now supports +specifying custom types as FQN classnames and scale in numeric values. +* Using Camel with link:spring.html[Spring] now supports calling +link:bean.html[Bean] by their FQN name and let Spring instantiate the +bean using auto-wired constructor's as opposed to only supporting a +no-arg constructor. +* Using Camel with link:spring-boot.html[Spring Boot] can now easily +filter Java RouteBuilder routes via ANT-path pattern style to either +include or exclude class names, which can be configured using Spring +configuration properties. +* The link:wire-tap.html[Wire Tap] EIP can now be configured to use +static endpoint uri instead of being dynamic evaluated via the +link:simple.html[Simple] language. +* The link:wire-tap.html[Wire Tap] EIP will now complete any inflight +wire tapped exchanges while shutting down to give them time to complete +graceful. +* The link:jsonpath.html[JSonPath] can now split and write each row as a +string value (JSon format) instead of using a Map/POJO type with the new +writeAsString option. +* The link:pojo-consuming.html[POJO Consuming] Consume annotation on +POJO classes now support a predicate (using simple language) to filter +the message. See the camel-example-spring-boot-pojo for more. +* The internal JSon parser that is used by camel-catalog and runtime +camel-catalog (from camel-core) now embeds a simple-json v2 parser which +means it can parse any kind of json formatted document (before it was +confined to its own dense format) +* Infinispan, Ehcache and Hazelcast caches can automatically discover +cache managers in spring-boot +* Introduced an experimental _Health Checks SPI_ that can be leveraged +in in cloud environments to detect non healthy contexts. +* Introduced an experimental _Cluster SPI_ for high availability +contexts, out of the box Camel supports: atomix, consul, file, +kubernetes and zookeeper as underlying clustering technologies through +the respective components. +* Introduced an experimental _Route Controller SPI_ which is aimed to +provide more fine-grained control of routes, out of the box Camel +provides the following implementations: +** _SupervisingRouteController_ which delays startup of the routes after +the camel context is properly started and attempt to restart routes that +have not been starter successfully +** _ClusteredRouteController_ which leverages _Cluster SPI_ to start +routes only when the context is elected as leader + +Fixed these issues + +* Fixed a infinitive recursion in Camel's link:error-handler.html[Error +Handler] when an onException was routing to another route using direct +endpoint and this route would throw a new exception that would circle +back to the same onException or at a later point, which will cause an +endless recursion. +* Fixed a potential issue with masking password from URI using RAW(xxx) +would reveal part of the password if the password contains a & +character. +* The link:restlet.html[Restlet] component is now internally using curly +brackets for its uri patterns instead of regular parentheses so it works +similar to the other REST component and as Restlet framework itself does +* Fixed link:hystrix-eip.html[Hystrix EIP] having wrong default for +circuitBreakerForceClose when using camel-hystrix-starter with Spring +Boot. The default should be false and not true +* Fixed link:hystrix-eip.html[Hystrix EIP] when failing and running +fallback not signaling to Hystrix itself so it can keep state of the +failure and react accordingly to run in half-open mode as well. +* Fixed link:mdc-logging.html[MDC logging] loosing route id after +calling a direct route from within a transacted route +* Fixed a regression with link:bean.html[Bean] +and link:simple.html[Simple] OGNL expressions causing ambiguous method +call exception when calling method implemented by super class when +method is defined by interface and abstract class +* Fixed link:rest-dsl.html[Rest DSL] (server side) not returning +response on all valid uri paths when clients call using a HTTP OPTIONS +request +* Fixed link:rest.html[Rest] producer not using HTTP method (verb such +as PUT) from the endpoint uri when calling a remote REST service +* Fixed link:timer.html[Timer] routes to shutdown more graceful and +allow pending tasks to complete while they are in-flight. +* Fixed configuring link:rest-dsl.html[Rest DSL] via +application.properties|yaml in link:spring-boot.html[Spring Boot] not +working. +* Fixed https://cwiki.apache.org/confluence/display/CAMEL/Simple[Simple +Language] to add support negative numbers(without single or double +quotes) in predicates +* Fixed configuring link:rest-dsl.html[Rest DSL] in Spring Boot +application.properties / yaml for properties to data format, component, +api, cors etc to use a map structure and make it work. +* Fixed configuring link:rest-dsl.html[Rest DSL] using property +placeholders in the path parameters such as the defaultValue. +* Fixed an issue with parallel processing (in non-streaming mode) in +some EIPs may cause CPU burning cycles while waiting for pending tasks +to complete or timeout. +* Fixed an issue with copying streams could block forever due IBM +application server would mistakenly return 0 instead of -1 to indicate +EOL for an empty stream. +* Fixed an issue with making link:jms.html[JMS] and link:sjms.html[SJMS] +components work with ActiveMQ Artemis that would otherwise causes a +ClassCastException +* Fixed link:rabbitmq.html[RabbitMQ] to better recover connection if +exchange/queue has been deleted manually on the broker. +* Fixed link:websocket.html[Websocket] component wasn't working with +returning static content + +### New Components + +* camel-atomix - a component to integrate Camel with Atomix +* camel-aws - added lamda component to be used for invoking and working +with AWS Lambda functions +* camel-caffeine - a component that allows you to interact with a +Caffeine cache +* camel-crypto-cms - a component for cryptographic message syntax +* camel-google-bigquery - Google BigQuery data warehouse for analytics. +* camel-headersmap - a faster implementation of case-insenstive map +(used by camel message headers) which can be added to classpath at +runtime to be auto installed +* camel-json-validator - validates the payload of a message using Everit +JSON schema validator. +* camel-iec60870 - to integrate Camel with IEC 60870-5-104 IoT devices +* camel-ldif - the ldif component allows you to do updates on an LDAP +server from a LDIF body content. +* camel-master - a component that leverage _Cluster SPI _to ensure that +only a single consumer in a camel cluster is active at any point in +time. +* camel-reactor - a reactor based back-end for camel's reactive streams +component +* camel-thrift - the Thrift component allows to call and expose remote +procedures (RPC) with Apache Thrift data format and serialization +mechanism +* camel-twilio - a component that allows you to interact with +https://www.twilio.com/[Twilio] REST APIs to call phones, send texts, +etc. from a Camel route + +### New Annotations + +* Added predicate to Consume + +### New Data formats + +* camel-asn1 - the ASN.1 data format is used for file transfer with +telecommunications protocols. +* camel-fastjson - JSon data format (using the FastJSon library) is used +for unmarshal a JSon payload to POJO or to marshal POJO back to JSon +payload. +* camel-thrift - the Thrift data format allows to call and expose remote +procedures (RPC) with Apache Thrift data format and serialization +mechanism + +### Important changes to consider when upgrading + +* Maven 3.3.3 or newer is required to build the project +* camel-dropbox - upgraded to v2 api as v1 is EOL and no longer possible +to use with dropbox. The v2 upgrade was not straightforward so there can +be backward compatible issues, which is out of our hands. +* camel-infinispan - the result is not more set in the +CamelInfinispanOperationResult header but in the in body. To change this +behavior you can set the header CamelInfinispanOperationResultHeader +with the name of the header that should contains the result or with the +resultHeader uri option +* camel-infinispan - the uri option _command_ has been deprecated and +replaced by _operation_ for consistency +* camel-infinispan - the commands are now int the short form PUT, GET +etc. old operation names like CamelInfinispanOperationPut, +CamelInfinispanOperationGet etc have been deprecated. +* camel-undertow - matchOnUriPrefix option is defaulted to be FALSE in +order to make it consistent with other components like Camel HTTP +components. +* Splitted link:twitter.html[Twitter] component into 4, now +directmessage, seach, streaming and timeline has its own endpoint and +scheme. +See https://github.com/apache/camel/blob/master/components/camel-twitter/src/main/docs/twitter.adoc[documentation] for +more details + +* RuntimeEndpointRegistry is no longer in extended mode by default. To +use that you need to set management statistics level to Extended +explicit. +* There is no RuntimeEndpointRegistry in use by default. You need to +explicit configure a registry to be used, or turn it on via management +agent, or set the statics level to extended mode. +* Camel with Spring XML routes will no longer register endpoints in the +Spring registry from Camel routes where <from> or <to> have endpoints +assigned with an explicit id attribute. The +option registerEndpointIdsFromRoute can be set to true on <camelContext> +to be backwards compatible. However this registration is deprecated, +instead you should use <endpoint> to register Camel endpoints with id's +in Spring registry. +* camel-spring-dm has been removed as it was not working properly anyway +and was deprecated some releases ago. For XML DSL with OSGi use +camel-blueprint instead. +* Copying streams in IOHelper from came-core now regard EOL of data if +the first read byte is zero to work around issues on some application +servers like IBM WebSphere. This can be turned off by setting JVM system +property "camel.zeroByteEOLEnabled=false". +* The camel-jms component now dependes by default on the JMS 2.0 API +(geronimo-jms_2.0_spec) instead of JMS 1.1 API (geronimo-jms_1.1_spec). +However camel-jms works at runtime with both JMS 1.1 or 2.0 specs so +include the JMS spec JARs of your choice. +* camel-kura upgraded to newer OSGi API version +* camel-stomp uses the destination as-is, where as before it would +replace all slash characters with colon. But according to the STOMP spec +the destination should be used as-is, and is broker specific. +* camel-ignite is updated from using Ignite version 1.9.x to 2.2.x + +### Getting the Binaries using Maven + +To use this release in your maven project, the proper dependency +configuration that you should use in your +http://maven.apache.org/guides/introduction/introduction-to-the-pom.html[Maven +POM] is: + +[source,java] +------------------------------------- +<dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-core</artifactId> + <version>2.20.0</version> +</dependency> +------------------------------------- + +### Changelog + +For a more detailed view of new features and bug fixes, see the: + +https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12340219&styleName=&projectId=12311211[Release +notes for 2.20.0] +