Apache Camel first commit was 10 years ago on March 19th

Today marks a very special day as it was exactly 10 years ago the first commit of Apache Camel was done by its creator James Strachan.

Added Mon Mar 19 10:54:57 2007 UTC (10 years ago) by jstrachan
Initial checkin of Camel routing library

The project was created as a sub-project to Apache ActiveMQ and back then github did not exists, so its using good old subversion.

In summer 2007 the first release of Apache Camel was published, which happened on July 2nd so lets wait until the summer to celebrate it's 10 years birthday.


Wanna work on cool open source projects like Apache Camel and fabric8

Jonathan Anstey whom is lead in the JBoss Fuse sustaining team (and also co-author of the Camel in Action books) posted a tweet today about an opening in his team.

So if you want to work on cool open source projects upstream like Apache Camel, fabric8, and yeah also sometimes Apache Karaf, ServiceMix, CXF, hawtio, etc.

The position is: Senior Software Engineer
Location: Remote

You can find more details about the job at the Red Hat site.

If you want to apply then you can use apply directly from the Red Hat website. Or you can get in touch with me, where we can have a little talk, and then I can make a referrer from inside Red Hat which would put you one step ahead.


Complete overview of all Camel components and JARs

You can now see a complete overview of all Camel components, data formats, languages, and miscellaneous components at the Camel github website: https://github.com/apache/camel/tree/master/components#components

Also we now count the total number as well, so at this time of writing there are 218 Camel components.

The tables on that page are all auto generated from the Camel source code which ensures its always up to date.

This information is also available from the camel-catalog, which allows tooling to tap into this information as well. And we will also use this to ensure the new website / documentation is using this to build a up to date TOC as well for all the Camel documentation. 


Three Apache Camel talks in Aarhus on thursday 9th February

I am going to Aarhus to spread the word about Apache Camel. With me I have two other Camel riders whom will share their real life experience.

So you get 3 for the price of 1. Well its gratis to attend so the price is 0 :)

The event is hosted at Systematic and organized by Javagruppen. You can find more details about the event on their website at: http://javagruppen.dk/54-arrangementer/arrangementer-2016/363-javagruppemode-den-9-februar-hos-systematic-i-aarhus

The talks will be in english, and so will the source code being shown :)

After the talks I hope you may have time for a beverage, where we can share our Camel stories.


  • Introduction to Apache Camel - Ibsen
  • A practical example of applying Camel in homecare application - Therkildsen
  • Get started with Apache Camel Intellij plug-in - Harms
Systematic, Søren Frichs Vej 39, 8000 Aarhus

Date and time
9. February at16.30-19.30

Free to attend

You need to register for the event which you can find on the Javagruppen website.


Great podcast about Apache Camel from Java Pub House

Recently I listened to a podcast from Java Pub House posted on 7th of January 2017 where Freddy Guime and Bob Hollin talk about Apache Camel.

Episode 62. Hm, what's the best to travel this holiday? on Apache CAMEL, of course!

Freddy is new to Apache Camel, and Bob an experience user. I enjoyed listening to the podcast where they talk about what Camel is, where you can use Camel, and where you should not use Camel etc.

Freddy is good at asking all the right questions which new users would have, and together they are great at coming to good answers.

Bob also shares from his wisdom and experience with using Camel. So you get all the good, bad and ugly of Camel from real war stories.

If you have some time to spare then I recommend listening.

The podcast is episode and the link is up there in the top of this blog.


Apache Camel 2016 Numbers

Its been 5 years since I last did a blog post about the Camel numbers.

Just to do a quick post on some of the numbers for the Apache Camel project in year 2016.

Number of releases in 2016: 12
Number of posts on Camel user forum in 2016: 5423
Number of commits in 2016: 4325 (git shortlog -ns --since 2016-01-01 | cut -c1-7 | awk '{ SUM += $1} END { print SUM }')

Total number of tickets created at end of 2016: 10663
Number of tickets created in 2016: 1192
Number of tickets resolved in 2016: 1256

Total number of commits at end of 2016: 26390
Number of stars on github at end of 2016: 1149
Total number of contributors on github at end of 2016: 267
Number of closed pull requests at end of 2016: 1363
Number of closed pull requests in 2016: 615
Number of committers doing commits in 2016: 192 (git shortlog --after 2015-12-31 --before 2017-01-01 -ns | wc -l).

You can find more statistics at github and Open Hub.

Happy New Year and 2017 is going to be a special year for Apache Camel.


Work started on Apache Camel Intellij IDEA plugin

Just because its Christmas does not mean the Camel stands still.

On the even of the 23rd I took the evening to do a bit of research and start hack on a little prototype for an Apache Camel plugin for IDEA. Its something that has been on my radar for a longer time. 

The reason is that Apache Camel provides a catalog with has a ton of great information for tooling. The catalog includes every little detail about every Camel component, EIPs, data formats, languages, and much more.

I have long wanted to have a little plugin for IDEA (and also Eclipse if possible) for code assistance to setup Camel endpoints - in other words, having ctrl + space to show a list of Camel options you can use on any given Camel endpoint.

Sidestory begins ...
So in the darkness of the night I found myself back in Intellij IDEA plugin land. It was a long long time since last time I hacked on a IDEA plugin. It was so many years ago I cannot remember exactly, but it was around 2002. I created a little plugin called Generate toString which would generate nice toString methods for your POJO classes, like you can generte equals/hashCode etc. Over the years that followed I maintained the plugin and upgraded it for newer IDEA versions which would often break the plugin, or they have moved/changed their APIs. Back then the plugin API was hardly documented, and there was no source code of the editor itself, so it was no fun to try to figure out how to get it to work again, or how to use some of  the existing IDEA dialogs etc. But in the end it was possible, and for a few dialogs I actually had to build it myself using Java Swing etc. The plugin later found a new home at Jetbrains where they took over and provides the plugin out of the box in IDEA. Thanks Jetbrains. You make the best editor on the planet. 
You can read more about this story in the following blog posts: Fast forward to 2016 and I was back in somewhat familiar waters, the AST model is still named PsiSomething.
... sidestory ends.

However doing a plugin that hooks into the Java language of IDEA took a while to find out, because I was walking down the wrong path, trying to find an extension-point about smart completion. 

So instead I looked at some of the out of the box plugins as you can find their source code, and eventually found a plugin that hook into the Java language which took me down the right path.

So after a while I got something working, which was marvelous to see that the smart completion suggestion list included the Camel endpoint options for the given component.

On christmas morning I hacked some more, and posted a tweet with the first screenshot

Today on the 25th December I do have a bit more time as well to polish up the code and to publish it on github. 

I have created a new project on github where we can hack on the code to make the plugin awesome and great. The intention is that the code eventually will be donated to Apache Camel. But for now we can keep it separated so its easier because there is only the plugin code, and not all the other Camel source as well.

You can find more details on the github page, where there is instructions how to try / run and build the plugin. There is also a issue tracker with tickets for stuff we need to work on.

Anyone is welcome to help with the plugin.

Sadly I don't have so much time currently to justify spending days hacking on the plugin, even thought it would be really fun. I have to focus on completing the Camel in Action 2nd edition book. I am 85% complete with the microservices chapter, and then have another chapter to complete as soon as possible in the start of 2017. However I am also a human whom want to have a bit fun hacking so I will hack a bit from time to time on the plugin.

A shameless plug for the book, there is a 40% discount code during the holidays.

The discount code is camiach(40% off Camel in Action, Second Edition, all formats, expiration: January 7, 2017)

To finish this blog post here are the latest screenshot of the Camel IDEA plugin in action:
Smart completion to present possible Camel options

The plugin also supports smart completion for the values, for example an enum based option shows which choices there are (and which one is the default if there is a default value)

Smart completion for enum values