You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 70 Next »

Camel 2.18.0 release (currently in progress)

 

New and Noteworthy

Welcome to the 2.18.0 release which approx XXX issues resolved (new features, improvements and bug fixes such as...)

  • Added Hystrix EIP as EIP pattern that uses native Hystrix as the Circuit Breaker implementation. This requires having camel-hsytrix on the classpath.
  • Added Service Call EIP as EIP pattern that allows to call a remote service in a distributed system, where the service is looked up from a service registry of some sorts, such as kubernetes, consul, etcd, zookeeper etc.
  • Improved the Bean component to better match method parameter types when using Simple language as parameter values.
  • Added BindyConverter that allows to implement custom data converters for Bindy
  • The access in the Rest DSL has been deprecated and no longer in use - its not part of swagger specification anymore.
  • Camel-NATS now uses JNATS client instead of the deprecated Java_nats one.
  • During startup of CamelContext the services that are used as part of routes are now deferred being started to the end of the startup process. Some IoC frameworks like Spring can otherwise causes a circular dependency issue if services are started too early. A side effect is that if service startup failures happen when being started later, they are now wrapped in the FailedToStartupRouteException to better pin point which route thas the problem.
  • Improved the startup sequence of Spring Java Config to be similar to Spring Boot that helps prevent Spring initialization errors about circular dependencies issues.
  • Added PATCH to Rest DSL
  • Added "starts with" and "ends with" operator to the Simple language.
  • Added BeanIOSplitter to BeanIO that can be used with the Splitter EIP to split big payloads in streaming mode without reading the entire content into memory.
  • Some of the AWS components allows to specify ARN in the endpoint configuration. 
  • The create operation in Zookeeper now creates sub paths if missing.
  • Added support for async mode for SERVLET component to leverage Asynchronous Servlet from the Servlet 3.0 spec.
  • Bean component and Bean Language validates method name must be a valid according to java identifier rules, and also if parameter syntax has an ending parenthesis.
  • You can now use @RunWith(CamelSpringBootJUnit4ClassRunner.class) to test Camel Spring Boot applications and use the Camel test annotations from Spring Testing such as @MockEndpoints.
  • To turn on logging exhausted message body with the message history you can configure this easily on the CamelContext level with setLogExhaustedMessageBody
  • Camel-Infinispan now supports Aggregation Repository: InfinispanLocalAggregationRepository and InfinispanRemoteAggregationRepository
  • The SQL Component and ElSql now supports outputType=StreamList to use an iterator for the output of the SQL query that allows to process the data in a streaming fashion such as with the Splitter EIP to process the data row by row, and load data from the database as needed.
  • JPA now includes a JpaPollingConsumer implementation that better supports Content Enricher using pollEnrich to do a on-demand poll that returns either none, one or a list of entities as the result. 
  • Calling Bean with method parameters defined using Simple parameters, now avoids an intermediate conversion of the parameters to a String value. This ensures the passed in values when calling the bean method is using the parameter type as-is from Simple.
  • Camel CDI now supports importing Camel XML configuration files
  • Camel CDI does not deploy an empty Camel context bean anymore if not route builder beans nor Camel beans are deployed
  • Camel CDI adds the @Named qualifier to Camel route management events so that it's possible to observe these events for a specific route with an explicit id
  • Camel BeanIO now supports the possibility to use a custom BeanReaderErrorHandler implementation in his configuration
  • Camel Kubernetes now supports Kubernetes ConfigMap feature
  • The Tokenizer and XMLTokenizer language now supports using Simple expressions as the token / xml tag names so they can be dynamic values.
  • Added filterDirectory and filterFile options to File2 so filtering can be done using Simple language or predicates. 
  • Optimize Camel to only enable AllowUseOriginalMessage if in use by error handler or OnCompletion. End user who manually access the original message using the Java API must configure AllowUseOriginalMessage=true.
  • Camel-AHC now support a connectionClose parameter to allow explicitly adding a Connection Close header to HTTP request
  • Camel-HTTP now support a connectionClose parameter to allow explicitly adding a Connection Close header to HTTP request
  • Camel-HTTP4 now support a connectionClose parameter to allow explicitly adding a Connection Close header to HTTP request
  • Camel-Jetty now support a connectionClose parameter to allow explicitly adding a Connection Close header to HTTP request
  • Bindy allows to plugin custom formatters for mapping to custom types.

Fixed these issues:

  • Fixed Bean component to avoid ambiguous error for classes that extends generic interface and calling which could lead to falsely duplicate methods (due Java type erasure inserts bridge methods) 
  • Fixed splitting using tarfile could cause OOME if splitting big files which was mistakenly loaded into memory. Now we work on the tar stream directly.
  • Fixed Netty HTTP and Netty4 HTTP issue when not specifying a port number then port 80 would not be used but an error about port -1 is not allowed.
  • Fixed Swagger Java when using property placeholders in Rest DSL could cause invalid parameters to be included that was from the placeholder.
  • The threads EIP now lets Error handling in Camel perform redeliveries if the thread pool would otherwise reject accepting the task. This allows the error handler to perform redeliveries to attempt to put the task on the thread pool queue, or eventually move the message to a dead letter queue etc.
  • Fixed Rest DSL adding empty header if specifying a non required query parameter that has no default value assigned.
  • Fixed doWhile loop which could potentially loop forever.
  • Fixed a NPE in Zookeeper consumer if no zookeeper node path was set
  • Spring-DM for OSGi moved out of camel-spring into a separate camel-spring-dm module.
  • When using continued with onException then dead letter channel endpooint should not be invoked.
  • Fixed Error Handler to not log exceptions when using continued(true) by default.
  • Fixed so using shareUnitOfWork would now also call specialized AggregationStrategy for onTimeout, onCompletion etc.
  • Fixed Jetty consumer incorrectly handle multipart/form data not being mapped as attachments on the Camel Message.
  • Fixed Netty4 HTTP may fail reading the http content from the raw netty stream if the Exchange was routed asynchronously.
  • Fixed Netty4 HTTP leak ByteBuf's on the producer side which was not released in all corner cases before they may be gargage collected. 
  • Fixed Dozer not able to use variables in mapping files when using OSGi.
  • Fixed a potential dead-lock when doing request/reply over JMS and requests are timing out concurrently and continued routing the exchanges are calling another JMS endpoint that is also doing request/reply which also timeout. 

New Enterprise Integration Patterns

New Components

  • camel-cm-sms - For sending SMS messages using SM SMS Gateway
  • camel-ehcache - For interacting with Ehcache 3 cache
  • camel-flink - Bridges Camel connectors with Apache Flink tasks.
  • camel-ribbon - To use Netflixx Ribbon with the Service Call EIP.
  • camel-servicenow - For cloud management with ServiceNow
  • camel-telegram - For messaging with Telegram
  • camel-zipkin - For tracking Camel message flows/timings using zipkin
  • camel-consul - For integrating your application with Consul

New DSL

  • hystrix - Using Hystrix as circuit breaker. This requires having camel-hsytrix on the classpath.
  • serviceCall - To call a remote service in a distributed system where the service is looked up from a service registry of some sorts.

New Annotations

New Data Formats

New Languages

New Examples

  • camel-example-cdi-xml: illustrates the use of Camel XML configuration files into a Camel CDI application

New Tutorials

API breaking

Known Issues

Important changes to consider when upgrading

  • Java 1.8 is now required.
  • Karaf 2.4.x is no longer supported. Karaf 4.x is the primary supported OSGi platform.
  • Jetty 8.x is no longer supported and camel-jetty8 has been removed
  • spring 4.0 is no longer supported and camel-test-spring40 has been removed
  • spring 3.x is no longer supported
  • (only spring-dm using spring 3.2.x as part of camel-spring in osgi/karaf is still in use - but spring-dm is deprecated and we recommend using blueprint)
  • Spring-DM for OSGi moved out of camel-spring into a separate camel-spring-dm module. If using Spring XML with Spring-DM then you need to install camel-spring-dm feature in Karaf/ServiceMix.
  • The deprecated @LazyLoadTypeConverter has been removed from all Camel Test modules
  • camel-gae has been removed (was not working anyway)
  • The access in the Rest DSL has been deprecated and no longer in use - its not part of swagger specification anymore.
  • Removed the deprecated maven archetypes for SOAP WS using CXF with OSGi Blueprint
  • Optimize Camel to only enable AllowUseOriginalMessage if in use by error handler or OnCompletion. End user who manually access the original message using the Java API must configure AllowUseOriginalMessage=true.
  • The FTPS component is now using known hosts file from the user.home/.ssh directory by default. Set the option useUserKnownHostsFile=false to use old behavior.

Getting the Distributions

Binary Distributions

Description

Download Link

PGP Signature file of download

Windows Distribution

apache-camel-x.y.x.zip

apache-camel-x.y.x.zip.asc

Unix/Linux/Cygwin Distribution

apache-camel-x.y.x.tar.gz

apache-camel-x.y.x.tar.gz.asc

The above URLs use redirection

The above URLs use the Apache Mirror system to redirect you to a suitable mirror for your download. Some users have experienced issues with some versions of browsers (e.g. some Safari browsers). If the download doesn't seem to work for you from the above URL then try using FireFox

Source Distributions

Description

Download Link

PGP Signature file of download

Source for Windows

apache-camel-x.y.x-src.zip

apache-camel-x.y.x-src.zip.asc

Getting the Binaries using Maven 2

To use this release in your maven project, the proper dependency configuration that you should use in your Maven POM is:

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-core</artifactId>
  <version>x.y.x</version>
</dependency>

SVN Tag Checkout

svn co http://svn.apache.org/repos/asf/camel/tags/camel-x.y.x

Changelog

For a more detailed view of new features and bug fixes, see the:



  • No labels