Apache Camel 2.23 released

Yesterday Apache Camel 2.23 was released which most noteworthy new feature is support for Spring Boot 2.1, where we also improved the starter components to include more metadata and more optimized for the improved Spring Boot auto configuration.

This release is mainly a big bug fix release and some other minor new features. One of these features is to allow for basic dynamic queries in the SQL component on the consumer side.

And as usual there are new components added too:

  • AWS IAM - for managing Amazon IAM
  • Corda - to interactive with corda nodes
  • FHIR - to work with the fhir standard (health care)
  • Google Big Query Standard SQL - Google bigdata warehouse analytics
  • Google Calendar Stream - Google calendar in streaming mode
  • Google Sheets - To work with google sheets
  • Google Sheets Stream - To work with google sheets in streaming mode
  • IPFS - Interplanetary File System
  • Kubernetes HPA - To execute Kubernetes HPA operations
  • Kubernetes Job - To execute Kubernetes job operations
  • NSQ - To integrate with the NSQ messaging system
The next release will be Camel 2.24 which potentially are the last 2.x release as we are about to kick-off work on Camel 3.0. More details to follow soon.


My first visit to Belarus speaking at the JFuture conference

I just got back from Minsk, Belarus where I gave a workshop and a presentation at the JFuture 2018 conference.

This was my first visit to Belarus, and its always good to see new parts of the world, and help spread the knowledge about our beloved integration software Apache Camel. I am traveling with Mr Camel so at the hotel we read the greeting card from the organisers.

On friday I hosted an Apache Camel microservices workshop with 10 Java developers whom were introduced to Apache Camel and then had fun hacking some Camel microservices code. The material is awesome and much credit to Nicola Ferraro for creating the workshop demo, which we joined presented earlier this year at JBCNConf in Barcelona.

After the workshop I went out for a run in the city, mostly in the lovely parks. The weather was beautify with sun and 15 degrees celcius. The parks are full of tree leaves as the season is autumn.

On Saturday it was conference day, and the venue is the royal theatre in Minsk.

After they keynote we had the 1st set of tracks, and I was honoured to do my performance on the main stage.

I was not the only red hatter, as Justin Lee, traveled all the way from New York to be here, and present about serverless.

For his presentation I got myself a seat in the balcony, which has a very nice view of the stage.

I walked the city on the afternoon, and took some photos. After a couple of hours I found a nice place at the backside of the palace of the republic where I enjoyed a margarita, to celebrate my first visit here.

I stayed at the Willing hotel which is located 20 minute walk from the city center. Its in an area with old factories that are now being put up for new use with startups and hipsters in the neighborhood. So there are many coffee shops and some bars. The big walls of these factories were painted by local and foreign artists.

I enjoyed my time in Minsk, and I would like to say a warm thanks to the organisers for inviting me to come. I wish you the best with the conference and can recommend it to other speakers.


My trip to JavaZone 2018

This week I am attending and speaking at the JavaZone 2018 conference in Oslo.

I was here last time 7 years ago, so it was good to be back. The weather is very nice with rainbows and unicorns and everything ... well only rainbows.

As a speaker I was asked to sign the speakers wall, and was given a woollen hat as gift, which will be handy this weekend where I am joining other speakers for a boat trip JourneyZone in northern Norway at Lofoten. They say the landscape should be spectacular.

Yesterday evening I was out dining with fellow danish friends Flemming and Anders, whom I know from our little IT-network group called getsmarterdaty.

My talk (Camel microservices with Spring Boot and Kubernetes) was yesterday at 5pm and its always special to present here at the Spectrum arena in Oslo, as the rooms have very steep seatings so attendees are mostly looking down upon you. The talk is video recorded and will be posted online soon. The slides and source-code is located on my github account.

The conference hosts about 3000 attendees and is a very well organized event running for 17 years.


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.