66th Apache Camel Release is Out - It's the 2.14 Release
Join the DZone community and get the full member experience.
Join For Free Today Apache Camel 2.14.0 hit the streets. Its our 66th release (include
all patch releases) since the project was created over 7 years ago.
There is a bunch of great stuff in this release, so let me try to distill a list of 10 highlights (in no particular order)
1) Java 8 support
The 2.14.x branch marks the 1st release where we officially support Java
8. We made sure the code compiles and all tests passes on Java 8 also.
We also support Java 7.
Now you may ask about all the coolness from Java 8 about lambda's and
whatnot. Yeah we are looking into that for the next release to provide
examples and a first cut of a Java 8 based DSL.
2) Spring 4 support
The same goes here. We now support Spring 4.x also. There is one
migration effort, as Spring 3.x and 4.x is not compatible when using
spring testing. So we had to introduce a camel-test-spring3 module for
Spring 3.x users, and camel-test-spring is for 4.x users. Also there is a
known issue in camel-test-spring about Spring 4.1.x support which we
will fix in the next patch release.
3) Rest DSL
This is likely one of the most exciting new features in this release. We now offer a REST styled DSL
which can be used with Java or XML. The intention is to allow end users
to define REST services using a REST style with verbs such as get,
post, delete etc.
Here is a small taste of it in action:
rest("/customers/") .get("/{id}").to("direct:customerDetail") .get("/{id}/orders").to("direct:customerOrders") .post("/neworder").to("direct:customerNewOrder");
The DSL can be used in both Java and XML. As this is the 1st release
with the Rest DSL we will of course continue to improve on this, and
certainly based on the feedback from the community.
4) Netty 4.x support
We now have support for both Netty 3.x and 4.x. As we take backwards
compatibility seriously we decided to leave camel-netty as-is for Netty
3.x users, and port the code to a new camel-netty4 for Netty 4.x users.
The same goes for the camel-netty-http and camel-netty-http4 modules.
5) API component
Dhiraj Bodke worked on a great new API component support in camel-core,
that makes creating new Camel components for APIs much easier and
faster. We use this to integrated with new components such as box,
linkedin, google-drive, and salesforce and what else comes in the
future. He wrote a great blog about this component and how to use it. So expect many more of these API components in upcoming releases.
6) More JMX MBeans
We now also enlist producers in JMX, and as well have a registry to
capture runtime usage of endpoints, which allows you to "see" which
endpoints are in use, and as well how endpoints may be shared across
routes, e.g. sending to queue A in route 1 and consume from queue A in
route 2. All based on dynamic usage such as dynamic patterns like the
recipient list.
The aim is to provide better understand how your Camel routes are being
used at runtime. We will continue to improve tooling in this area such
as hawtio, and the Camel Karaf commands, etc.
7) Codahale metrics
And continued from #6 we also have a new camel-metrics
component to integrate with the excellent codahale metrics library. On
top of that we also allow to use this to capture Camel routing
statistics using codehale. This can then be used with existing codahale
tooling and also with hawtio. I wrote a blog about this earlier.
The screenshot below illustrates routing information captured by
camel-metrics and displayed by hawtio in the new route metrics tab which
supports codahale.
![]() |
camel-metrics used to capture routing statics which can be displayed in hawtio using the new route metrics tab. |
We introduce a new EIP using the circuit breaker pattern.
9) Swagger integration
We have a new camel-swagger module that in combination with the Rest DSL allows to expose an API documentation of your REST services. This can then be used with existing swagger tooling and web consoles. For example hawtio has a swagger console out of the box, such as shown below
![]() |
Camel example using the new Rest DSL which offers swagger API documentation, which can be viewed using a swagger console such as offered by hawtio |
We added 15 new components, 1 new EIP, 1 new data format, and 1 new language. And as usual a bunch of bug fixes, improvements and hardening. And we dropped support for Java 6.
If you want to see some of the new stuff in action, then you can try the new examples. We have the camel-example-servlet-rest-tomcat. This is a plain WAR file which you can run in Apache Tomcat, Jetty, Wildfly, fabric8 or any other web container. Then you can see both the new Rest DSL, Swagger and codehale metrics in action, all in the same application. And for hawtness then try deployed hawtio as well and see what it can do as well.
The same example is also available for Karaf users by the camel-example-servlet-rest-blueprint.
You can find more details about this release in the 2.14 release notes. And if you are upgrading from a previous release, then make sure to read about the changes that may effect you.
You can get this release from Maven Central and download from the Apache Camel website.
Published at DZone with permission of Claus Ibsen, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Trending
-
Automating the Migration From JS to TS for the ZK Framework
-
Effective Java Collection Framework: Best Practices and Tips
-
Operator Overloading in Java
-
Reactive Programming
Comments