Apache Camel 2.22 Released with Spring Boot 2 support

Today we released the latest Apache Camel 2.22.0 release which is the first release to officially fully support Spring Boot 2. This is a major effort as the Spring Boot v1 to v2 upgrade for a big framework like Apache Camel took some effort - so many thanks to the Camel team and the contributions. The support for Spring Boot 2 was the major goal of this release and therefore this release comes as soon as possible after the previous Camel 2.21 release, and as such, this release does not contain as much else as a normal release happens to include.

The Spring team has already updated their start.spring.io website to now include Apache Camel when you use Spring Boot 2. If you are using Spring Boot 1, then the previous versions of Apache Camel, such as 2.21.1 works with SB1.

The release also includes some other noteworthy improvements such as an internal optimisation to the toD EIP with HTTP endpoints to better reuse existing http connections when sending to the same host with all sort of dynamic parameters.

The Rest DSL has also been improved to support specifying security definitions that will be included in swagger doc. We also added support for enabling client request validation so the Rest DSL can validate whether a request can be processed based on its content-type and accepted response-type, and whether all mandatory parameters is included, and so on.

There is also a number of new components:

  • camel-as2 - Component used for transferring data secure and reliable over the internet using the AS2 protocol.
  • camel-google-mail-stream - The google-mail component provides access to Google Mail.
  • camel-micrometer - To collect various metrics directly from Camel routes using the Micrometer library.
  • camel-mybatis-bean - Performs a query, insert, update or delete in a relational database using MyBatis.
  • camel-service - Represents an endpoint which only becomes active when the CamelClusterView has the leadership.
  • camel-web3j - The web3j component uses the Web3j client API and allows you to add/read nodes to/from a web3j compliant content repositories.
  • camel-rxjava2 - RxJava2 based back-end for Camel’s reactive streams component
  • camel-testcontainers - Camel support for testcontainers
  • camel-testcontainers-spring - Camel unit testing with Spring and testcontainers
The next bigger Camel release is expected to be Camel 2.23 where we also would work on getting more of the documentation migrated to the new system, and with some luck have a new website and documentation ready for this release.

Also we will start to discuss the roadmap and bigger goal of Apache Camel 3 in the community. When this happens then we will post more about this in our blogs and elsewhere, so keep an eye if you are interested to help and provide your thoughts on this matter.

Now go and enjoy the Camel on Spring Boot 2.


Official Apache Camel branded swags available for sale

Hi Cameleers,

with great joy I'm happy to announce that Camel branded swag:
T-Shirts, Cases, Posters, Mugs, Notebooks and a whole lot more, is
available at the official Apache Software Foundation store at Redbubble.

The store is here:

From any purchases you make a percentage goes as a donation to the ASF.

Thanks to Zoran Regvart whom helped us get the Camel swags into the Apache store.


10 Years as Apache Camel committer

Yesterday, on March 25th 2018, I have been an Apache Camel committer for 10 years.

It all started with this first commit:

commit 5f0f55a4f14fe061e96eeca4cff60a1577cd5969
Author: Claus Ibsen
Date:   Tue Mar 25 20:07:10 2008 +0000

    Added unit test for mistyped URI

It was a very good first commit to add an unit test that tested a condition for invalid configuration in the camel-mina component.
Disclaimer: I wrote this blog entry with the purpose of having a memory of this anniversary I can look back to in the future. In doing so there is a bit of summary and numbers of my contributions over the years. This blog is a short summary of solely my work and contributions to the Apache Camel project and related work over the last 10 years. The Apache Camel community is larger than one individual and this blog post is not an attempt to over-shadow all the hard work done by the many other individuals in the greater Camel community. 
I got started with Apache Camel about 6 months earlier, in fall of 2007 where I and my team were look at various open source integration solutions. I have been working as full time committer since January 2009, so the earlier work was done in my spare time and as in my previous job.

On github my contributions to the Apache Camel project is shown as below:

So we can basically see that indeed I have been full time on the Apache Camel project, and worked on the project year after year.

Today there has been 109 releases of Apache Camel, and I have been directly involved as a committer starting from the Camel 1.3.0 release, that means 106 out of 109 releases. My first patch was submitted via JIRA ticket CAMEL-244 from November 2007. As you can see from the ticket I had attention to detail back then ;)

I have also been very active in the Camel community and helped people on various forums such as the Apache Camel user mailing list, where I have sent countless emails. In fact Nabble has a record of me with more than 15347 mails. In more recent year StackOverFlow has also become popular to use for getting help and ask questions around Apache Camel. I have 1619 answers, and build up a reputation at 42322 at StackOverFlow but they are included on other projects, so maybe its 1500 or so that is about Apache Camel.  I have also done 336 blog posts and 95+% of those are related to Apache Camel.

And also in those 10 years I co-authored two books on Apache Camel, and 2 reference cards, and have done countless public talks at conferences, Red Hat events, webinars, and privately at customer engagements.

A couple of years I started the Camel IDEA plugin project, to make Camel tooling awesome on IDEA. This project is now on the roadmap to evolve to include similar functionality into other editors such as Eclipse.

At Red Hat I have also enjoyed working on other projects that was related to Apache Camel, such as fabric8, hawtio, Vert.X Camel adapter, and the Fuse IDE editor. And Camel is included in ActiveMQ so I also spent time working on this project. I also spend time to make Camel work great with containers such as Kubernetes, and that Camel works awesome with Spring Boot etc.

So what I am saying is that maintaining an open source project is a lot of work - even if its your day time job. If you have a passion and goes the extra miles then you spend a lot more time on the project than a regular 8-4pm job.


Camel Riders in the Cloud - 30 minute video now online

Last week I presented a DevNation Live session - Camel Riders in the Cloud.
Apache Camel has fundamentally changed the way enterprise Java™ developers think about system-to-system integration by making enterprise integration patterns (EIP) a simple declaration in a lightweight application wrapped and delivered as a single JAR. In this session, we’ll show you how to bring the best practices from the enterprise integration world together with Linux® containers, running on top of Kubernetes / OpenShift, and deployed as microservices, which are both cloud-native and cloud-portable.
The video of this talk has now been processed and uploaded to YouTube - enjoy.

The slides and source code is available on github at: https://github.com/davsclaus/camel-riders-in-the-cloud

I would also encourage you to take a look at the other past sessions from DevNation Live. For example Burr Sutter's excellent session on Istio.


Apache Camel 2.21 Released - Whats New

We have just released Apache Camel 2.21 and I will in this blog highlight the noteworthy changes.

This release do NOT support Spring Boot 2.
Support for Spring Boot 2 will come in Camel 2.22,
which we plan to release before summer 2018.

1) Working with large JMS messages 
We have added better support for working with large messages in streaming mode in the JMS component. I have previously blogged about this.

2) FTP supports resume download
The FTP component can now resume downloads. For example if you download very big files, and have connectivity issues, then the FTP consumer will be able to resume the download upon re-connect.

3) FTP with pollEnrich
The FTP component has been improved to work better with the pollEnrich (Content Enricher EIP) to poll in a file on-demand. Now the current thread is used for this in a more synchronous task instead of starting the scheduled scheduler (which the regular consumer uses).

4) FTP activity logging
The FTP component now reports more activity when it downloads, uploads, scan for files etc, which you can see in JMX and in the logs (you can set the logging level). This should help better to track how much has been download/uploaded of the files and what remains.

5) Easier configuration of RabbitMQ
The RabbitMQ component can now be configured on the component level where you can setup broker details, logins, etc so you do not have to repeat this in all the endpoint urls. This is similar to how you use the other messaging components such as JMS.

6) Spring Boot route actuators
The Camel SB actuators is now in read-only mode by default. The route actuator endpoints can have the read-only mode turned off, which allows to manage the lifecycle of the Camel routes. In addition more details can be retrieved such as a XML dump of the routes.

7) Rest DSL API-Doc with examples
The Rest DSL can now also include examples in the DSL which allows to generte the Swagger/OpenAPI doc with examples included.

8) Claim Check EIP
There is a new Claim Check EIP which makes it much easier to store information from the exchange during routing, and then retrieve that later (think it like a push/pop). You can find more detail in the EIP doc.

9) Sage EIP
There is a new Saga EIP for simulating transaction in distributed systems. The Saga EIP has plugins for different Saga services, that orchestrate the transactions.

10) More components
And as usual there are more components. For example there are 2 new AWS services for KMS and MQ. There is also our first component to integrate with crypto currencies.

11) Testing with route coverage
We have added support for running unit tests with route coverage reports turned on. This allows you to check if you have tests that coverage all paths of your routes. Camel tools such as the Camel IDEA plugin will work on adding support for presenting the report, and have indicators in the source code about the coverage (eg like you have for Java code coverage). The Camel Maven Plugin has a goal to output the route coverage.

12) Testing with advice-with output before vs after
When using advice-with we now log the before vs after routes in XML to make it easier to developers to see what their advices have changed in the routes.

There are a bunch of other smaller improvements and other things I have left out, forgot about. You can find more details in the Camel 2.21 release notes.


Heavy training for upcoming Camel talks

I am busy with fitness training to get into shape for a number of upcoming Camel talks I am doing the next 3 to 4 months.

I would like to give a big thank you to Andrea Cosentino and Zoran Regvart for designing and creating these new awesome Apache Camel t-shirts.


After the heavy training I went up for running in the cold and snowy weather here in Denmark.

OS2 meeting in Copenhagen
On next Thursday March 8th I am attending the Danish OS2 meeting in Ballerup, Copenhagen, Denmark. Another Red Hat'er was supposed to give a talk at this event but he had to cancel, and we are not so many danish employees so they contacted me if I could go. So the audience have to endure my technical talk about Apache Camel microservices on Kubernetes.

DevNation Live Webinar
On Thursday March 15th I am doing a webinar hosted by Burr Sutter from Red Hat. The topic is Camel riders in the cloud.
Apache Camel has fundamentally changed the way enterprise Java™ developers think about system-to-system integration by making enterprise integration patterns (EIP) a simple declaration in a lightweight application wrapped and delivered as a single JAR.
In this session, we’ll show you how to bring the best practices from the enterprise integration world together with Linux containers, running on top of Kubernetes/OpenShift, and deployed as microservices, which are both cloud-native and cloud-portable.
The webinar is free to attend and you can register form the DevNation website.

JPoint Moscow
In the beginning of April I am traveling for my first time to Russia, Moscow to attend the JPoint conference and give a talk about developing Camel microservices on Kubernetes.

I will take Mr Camel with me as he don't want to miss the opportunity to drink the great Russian Vodka. And hopefully we'll have Red Hat to sponsor a number of books so we can have giveaways or a book signing.

Red Hat Summit
I will then go to San Francisco in the beginning of May to attend and speak at the Red Hat Summit. I will give a Camel talk and then we are doing two workshops, one about Camel development with APIs and another about the new Fuse Online product (low-code integration platform).

GR8Conf EU
At the end of May I will be at the gr8conf in Copenhagen, where I will give a Camel talk to the Groovy crowd.

Barcelona or Copenhagen in June
And that is not all, the Fuse team is likely going to have a face to face meeting sometime in June so I have to let my calendar be open for that. But hopefully it will fall in place so I have time to submit a paper for the awesome conference in Barcelona. Unfortunately the JDK.IO conference in Copenhagen clashes at the same time, so I cannot be in two places at once. But lets see, maybe they are tired of hearing about Camel's. After all I have been 3 or 4 times at the Barcelona conference.

Hamburg running
And I am going to Hamburg in end of April for my first marathon run. I will travel down there on Friday, so hopefully I can catch up with Bennet Schulz whom works on the Camel IDEA plugin. The run is on Sunday.


Playing stacking tower with my Camel books

Today I received my author copies of the new Camel in Action 2nd edition book.

There were 3 boxes, with 10x, 10x and 5x pieces. They weigh in total 83 lbs (38 kg), so its heavy stuff.

I had grabbed one book from my latest Boston travel so I have 26 books in total, and one left from the 1st edition.

I then stacked all the books which goes far up and I was more carefully position the last books to not trip down the stack.

To dress up for the photo-shoots I dressed up with my red fedora and t-shirt from Red Hat whom has been supportive off work along the way - thank you big red, without your to pay for my coffee and internet, there wouldn't be a 900 page book on Apache Camel.

And then we played spelling bee.

Lastly we built a Camel wall. And Mr Camel was thrilled to be on top of the wall.

Happy reading.


My Boston travel and finally holding the little Camel book in my hands

I have been on a week long visit in Boston where I have been spreading the good word about Apache Camel. On Monday we had an analyst doing interviews with various thought leaders in various spaces. I was of course there about integration and Apache Camel.

These interviews are still being processed but I am looking forward to see the results later when its ready. It was fun to be interviewed in a professional setup, and I have to say a big thank you to Adrian Bowles from RTInsights whom made this process much relaxed and in a light atmosphere so it felt like a conversation we could have had in a bar --- the only nit pick is that we didn't have the beers.

My trip to Boston happened incidentally at the same time as Jon's and my new book was published and the print books are being distributed. So Red Hat had about 40 books sent to the Boston office and I was able to hold a copy of the book in my hands.

A number of copies of the book was handed out to friends of the Camel, and Christina Lin was the lucky first one to have the book and have it signed as well. She says that she can sell it on e-bay in the future to earn a big chunk of cash.

On Tuesday Red Hat hosted a Boston user group event, where Simon Green was speaking about his real life experience with microservices -- and it covered Apache Camel as well - great talk Simon. It has been a pleasure to learn you better, and thanks for being my Uber-X driver ;)

The next couple of days I visited customers, and also had time to walk the city of Boston.

On Thursday we hosted a Camel event a bit outside Boston where I gave a talk about Agile Integration and a more hands-on talk/demo on developing Camel microservices on containers (Kubernetes).

At the event we handed out the remainder 30+ books and as we had a full booking we ran out of books. Red Hat had taken their names and will order more copies so they can get the book later. After the talk we had some food, beers and drinks and people queued up to have their books signed.

Today its Friday and I am now sitting in the airport and writing this blog. In the after-noon I walked from my hotel to the independent fort which was a 3 mile walk each way, so it was a longer walk. And when I got to the fort it was closed, but it didn't matter as much - it was more the long walk I needed after a week without any running.


Camel in Action 2nd edition book - 50% discount today

Manning is having our new book, Camel in Action 2nd edition, as deal of the day on Friday February 9th 2018 which means you can order the book with 50% discount. This is for both the e-book or the combo with both p-book and e-book.

The coupon code (discount code) to use is: dotd020918au

When you have added the book to the shopping cart, you can on the cart enter the discount code afterwards.

There are also a couple of other books in the deal, which you can see here.


I am doing an Apache Camel tech talk in Boston on February 15th 2018

I am traveling to Boston next week for a series of events. I will be visiting the new Red Hat office in downtown Boston. I am also visiting a couple of Red Hat Fuse customers to discuss their how they are using Apache Camel and hear their feedback as well.

I also hear word from Manning that they have shipped 40 copies of the new book to the Red Hat Boston office. So I am looking forward to see and hold the new book in my hand.

I will arrive in Boston on Saturday 10th and return back on Friday 16th. So if you are around Boston then there may be a chance to meet in the real life, for a talk about Apache Camel, Kubernetes, OpenShift, JBoss Fuse, integration in general, open source, or whatelse. I enjoy coffee, tea and the occasional beer. If so I can be contacted via my email, linkedin, or twitter, etc.

A better chance to meet is the following event:

On thursday 15th 2018 Red Hat is hosting an event where I will give a tech talk on Apache Camel:

Developing Apache Camel microservices on Kubernetes

We would like to invite you to join Claus Ibsen, author of Camel In Action for a special appearance in Waltham, MA. Camel in Action, Second Edition is the most complete Camel book on the market.

Claus will be discussing container based applications and will show how you can build Java cloud-ready applications from zero to deployment on a local running OpenShift. His presentation and demo will cover:
  • How to build a set of JBoss Fuse (Apache Camel) based microservices that uses popular technologies such as Spring Boot and WildFly-Swarm.
  • How to deploy and run these applications, demoing live Java debugging from within the Java editor.
  • Best practices on how to build distributed and fault tolerant microservices with technologies such as Kubernetes Services, Netflix Hystrix, Camel EIP patterns, and Istio.
  • Live demos of him killing containers to test fault tolerance

Drinks and appetizers will be provided. Bring your colleagues! Register now to save your seat.

You can find more details about the event and how to register to reserve a seat. The event is free to attend: https://redhat-events.com/camel

Hope to see you there.

We will also have a number of copies of the new book available as give-aways (maybe we will do a raffle or something).


Camel in Action 2nd edition released

I wanted my first blog of 2018 to be about our book is done and released. And yesterday Manning announced its release.

At this moment its the final PDF version of the e-book that is available for download. Formats for ePub and Kindle are being worked on and is scheduled for release on February 10th. The print book is being printed and should be ready from February 8th. Amazon and other online retailers is expected to have the book on stock in a couple of weeks from now.

Manning is also preparing for a promotion of the book and will have discount codes when it happens. So keep an eye on their website or my blog or my twitter as we'll post details when it happens.

If anybody asks - how do I get started with Apache Camel - then just say. Apache Camel is easy, just read this 957 page book ;)

Enjoy the reading.... And maybe you can find a few of our easter-eggs we put in place.