2016-03-30

Help tell Pivotal to accept Apache Camel as a choice on start.spring.io

With the Apache Camel 2.17.0 release we have a camel-spring-boot-starter module that has the naming and convention that Spring Boot advises.

What would be good is to get Pivotal to add Apache Camel to the list of choices in the http://start.spring.io web application.

I have created a github PR with a screenshot of the web app showing Apache Camel.

Now to raise the voice of the community. The Camel users who would like to see this happen, should go to this PR

https://github.com/spring-io/initializr/issues/207

And then notice that thumbs up yellow icon that is just below the description (you may need to scroll a little bit down). Currently it has 27 votes.

To cast a vote then hover the mouse just next to the icon, and there should be a "add your reaction" showing you can click and select thumbs up.

In the PR there is also a screenshot you can look at what that would be like, which is also shown here below:

We want Apache Camel as a choice in start.spring.io !!!

2016-03-27

Apache Camel 2.17 Released

Apache Camel 2.17 has just been released.

This is the last release to support Java 1.7 which we have previously announced.

Here is a breakdown of the top noteworthy changes in this release (in random order).

1)
For OSGi users.

Reworked the Apache Karaf feature to not install camel-spring by default. The problem is camel-spring is using spring-dm which is only supports Spring 3.x, and therefore Spring 3.x was installed and used. All the Camel features that uses Spring JARs are now using Spring 4.x.

2)
SQL component can now load the SQL queries from external resources so you can use comments and format the queries using multi lines and indents.

In addition to that the SQL component now supports SQL IN queries where the IN values are dynamic calculated from the message body.

And there is also support for calling stored procedures using the sqlstored component.

3)
There is a new camel-spring-boot-starter module that works like any other Spring Boot starter module.

4)
The setHeader and setExchangeProperty allows to use a dynamic header key using the Simple language if the name of the key is a Simple language expression.

5)
Many improvements and fixes to Rest DSL among others

Rest DSL is Swagger API 2.0 compliant.

The Rest DSL now supports default values for query parameters

The Rest DSL now only binds from POJO to JSon/XML if the content-type is for json or xml. This allows you to specify a custom content-type and omit the binding, such as when having binary payloads.

Using CORS has been improved and fixed.

Swagger API can now generate YAML output as well as JSon.

6)
Avoid logging sensitive message body details.

Exchange and Message now only prints their id when their toString is called. Likewise the Camel Error Handler no longer log message body/header details when logging the Message History. There is an option you can turn this on again if wanted.

7)
Complete overhaul and rewrite of the camel-cdi module. Thanks to our new Camel rider Antonin Stefanuti.

The Camel CDI component has been improved to better fit into the CDI programming model, cover a larger set of containers, and provide these new features:

  • The Camel events from the org.apache.camel.management.event package (like CamelContextStartedEvent) can be observed as CDI events
  • The new CDI event Camel endpoint enable CDI events to be seamlessly consumed from (respectively produced by) Camel consumers (respectively Camel producers)
  • CDI beans annotated with the @Converter annotation are automatically registered as type converters
  • The CDI Camel contexts can be properly customized programmatically in bean constructor or @PostConstruct lifecycle callback
  • Camel routes configured in RouteBuilder beans are added before the corresponding Camel contexts get started
  • CDI Camel contexts are now properly adapted when deployed in OSGi containers and are registered as OSGi services
  • Proper support of multiple Camel contexts across all the features
  • A new Camel CDI Test module is available to ease testing of Camel CDI applications

8)
The camel-kafka module has migrated from using the Kafka Scala library to Kafka Java.

9)
The Loop EIP now allows to run in a while loop mode, so it loops until the predicate returns false.

10)
And as usual a bunch of new components. This time there is 12 new components and 4 new data formats.


For more details see the detailed release notes.

And any users who are upgrading then always read the bottom of the release notes about important changes to consider when upgrading.

You can download the release from Apache Camel website or from Maven Central if using Maven.



2016-03-24

Roadmap for Apache Camel 2.18 and towards Camel 3

The Camel team recently announced that Camel 2.17 would be the last release to support Java 1.7. And that the following release Camel 2.18 will require Java 1.8.

The numbers in the versions aligns very well to make it easy to remember:

  • Camel 2.17 = Java 1.7
  • Camel 2.18 = Java 1.8

So with Java 1.8 being the minimum Java version and that the code is compiled as 1.8 source brings in all the glory of Java 1.8 with aspects from functional programming with lambdas and whatnot.

Apache Camel has a huge community of existing Camel users, and we do not want to throw you guys under the bus, with massive Java 1.8 API changes in Apache Camel 2.18. Instead we see this release as a stepping stone towards more Java 1.8 readiness and the next major release Camel 3.0.

We have put up an open discussion in the Camel community on the developer mailing list, where you can read and participate. We love to hear feedback from the community.

You can read online using nabble where you can also post to the list. Or you can signup using old fashioned mailing list and write emails.

But what if you want to provide feedback elsewhere. Well I am sorry but Apache Software Foundation mandates openness and transparency. The discussions about the Apache Camel project must take place using ASF infrastructure such as the mailing list. However you are welcome to post a short comment on this blog, and I can post your comments on the mailing list on your behalf, if you are not arsed to signup on a mailing list, or register using nabble. However you do yourself a favor of signing up the Camel mailing list as there is a ton of information you can learn from other Camel users.

Just a word about Camel 3.0. The big goal for Camel 3.0 is less technical but more a new website and new documentation. And we would love to see a new project logo as well. The technical parts are sure there too, but its overdue for a modern website with documentation we maintain from the source code so its much easier and faster to keep it up to date. Also all the EIP and Component options is slurped from the source code to ensure the documentation is 100% in sync.