2012-05-21

CamelOne was yet again a really cool and fun conference. I just returned back home, from the 2nd annual CamelOne conference, held in downtown Boston. It was a 2 day packed with great talks with a balanced mix of technical talks, cloud stuff, and showcases of integration in the real world.

CamelOne speaker podium

The feedback of the conference was really good, as you can see from the image below.

Feedback wall from CamelOne attendees

The FuseSource engineering team was present, and on the end of the 2nd day, Debbie, got us together for a photo session.

The FuseSource Engineering Team

CamelOne 2012 - Day 1
So back the the 1st day. This year Jonathan and I was asked to do the opening key note, with our Camel story, and where the Camel project is today, and some thoughts about how Camel can riding the cloud in the near future. Jonathan and I wanted to tell our Camel story, and also with a sense of humor. I can say mission accomplished when the slide with the lovely Camel picture was shown. And no the picture is not retouched, it was found using google image search.

Apache Camel is a project that stands out

After the keynote I gave a talk about how to get started riding the Camel. The talk is a practical focus talk so I was sharing the time 50/50 between slides and live coding. As all sessions is video recorded, we can all watch them later, as they will be posted on the CamelOne website, free for anymore to watch. A professional production company is currently processing the videos. They should be ready in weeks from now. I will blog when the videos is online.

Jonathan was next after my talk, and his talk was a natural progress from mine talk. As he gave a rundown how you can run and deploy Camel and CXF applications in the ESB server. Jonathan showed how this works in practice as well.

I got engaged in a number of hallway conversations, and didn't have the chance to attend a session at every slot. It was really great to meet so many happy Camel users, and hear their stories, where the Camel is riding in the real world. Also I was told that more and more commercial vendors is adapting Camel and embedding it internally in their commercial products.

He was talking about his experience with evaluating Apache Camel, Spring Integration, and Mule ESB. I guess Camel was in favor at a Camel conference :)

James gave the ending general session of the first day.

James Strachan giving ending key note on 1st day

As always a pleasure to watch James talk with such a enthusiasm. His talk was a technical talk addressed to the developers how to develop and get Camel riding in the cloud. He gave a tour of the cool and awesome much improved Fuse IDE 2.1 product. It now has even more Camel crack for runtime insight. As well as easier deployment for both local jvms, remove machines, and as well the clouds.

CamelOne 2012 - Day 2

On the 2nd day, we have Gabe Zichermann giving a very entertaining keynote, about gamification.

Gabe talking about Gamification

The idea of getting people engaged, based on the ideas of computer games. But applying them in a real life processes. For example a company managed to get its employees go to the gym, based on teaming up, and competing against your co-workers.

In Sweden they have traffic cameras, using reverse sychology, by enlisting people in a lottery, if they are within speed limits. However people above the speed limit will of course still get a fine, and not participate in the lottery.

I have heard good buzz about Stan Lewis and Dhirajs talk about how to manage, monitor and provision a cluster of machines, in a data centre or the cloud. Dhiraj showed how Fuse HQ could monitor the Camel applications running on numerous machines. And how that worked as well when Stan did a rolling upgrade on the fly, leaving Fuse HQ being able to compare and display a "before" vs. "after" overview.

Likewise the tweets about Charles Moulliard was very positive. Seems like people wanted to go and play with websockets, and the Camel. This is definitly cool. So Camel 2.10 is a much anticipated release, having the websocket component out of the box.

Kai was on the stage again, giving a talk about using Apache Camel with BPM (Avtiviti). Kai gave us a rundown of the differences between Camel and Activiti, and where they overlap. As well when you should use either one, or both of them. In Kais talk he give live demos which is a nice change in the flow, to see the "code" for real. Activiti and Camel together seems powerful. And the Activiti designer looks beautiful.

Did you know that Camel is help protecting the Canadians. Mike Gingell from General Dynamics Canada gave us a rundown of how they have been successful by using open source integration technologies from Apache. The Camel is helping in cool stuff such as with the marine to detect torpedo attacks, with satellite surveillance of the north poles, and to keep track of personel and whatnot.

Mike gave a really great talk, and also took us through how his team is battling uphill in a traditionally conservative organization where software projects take millions of $ and years to just get started. They have been on the open source road for about 5 years, and jumped on Apache ServiceMix when it became OSGi based. And the Camel has been riding all along together with ActiveMQ and CXF. So the Camel is help protecting Jonathan Anstey, who lives in New Foundland, Canada. Must be cool to know that the software he works on every day, is now serving the people of Canada.

The ending keynote, was a real treat to all of us. Felix Ehmn from CERN gave us a very interesting talk how CERN is using ActiveMQ in their control room, to monitor the most complex machine man have ever built - the Large Hadron Collider; eg the 27km circle where they smash atoms together and see what happens.

Felix giving ending keynote, about CERN using ActiveMQ

There is 85.000 devices, which they need the monitor. Its everything, from censors on the collider, to fire alarms, door buttons and whatnot. CERN is definitily a cool place. In fact the coolest place on earth as well, as they need to cool down the collider, to 1 degree kelvin. That is - 272 degrees celsius.

Like CERN, the CamelOne conference was very cool.

I discovered a number of other blogs covering the CamelOne 2012 conference

2012-05-11

In preparation for the CamelOne conference next week, I took time to look back in the history of the Apache Camel project. So among others I had a look at the first official 1.0 release of Apache Camel.

Apache Camel 1.0 - 5 years ago

The more I looked the more impressed I am with the fact of this release. Now you have to consider this was done 5 years ago, and in this release the Camel founders had already in the DNA of the project

Java DSL

XML DSL (using Spring)

OSGi on the roadmap

camel-core JAR of 660kb

18 external components (+ whats in camel-core)

2 working examples

full website with documentation included, incl FAQs

Project logo and box

The Camel Maven plugin to easily run Camel and its examples

Test Kit

Below is a screenshot of the tar ball distribution, of this release:

Camel 1.0 distribution (hint the OSGi ambitions in the pom.xml)

When you hear James talk about the past and how he created Camel, then his ambitions was that Camel should not restrain you. If you want to use Java and not XML then fine. If you are on the Spring XML wagon, then fine. If you are into Groovy, then fine, if you want to use Ruby, then hell yeah (Ruby supported was added in Camel 1.3).

Lets take a look down the lane of the DSLs. Apache Camel is most likely the first integration project that offers multiple language DSLs out of the box in its very first release. It is simply in the projects DNA, and what makes IMHO Apache Camel stand out from the rest - The diverse and vibrant community and the DNA of the Camel project embracing "no shoe fits all".

So lets take a look at this example with the Java DSL. Todays people using the latest Camel release, eg 2.9.2 should instant be familiar with the DSL - Something just works from the very beginning!

And in this first release we also have the excellent Test Kit, for example notice the usage of mocks and setting up expectations in the screenshot below. Testing Camel was made easy from day-1. Yes its in the DNA of the Camel project.

Camel Test Kit already in Camel 1.0

And notice from the unit test above, the reference to the founders of Apache Camel.

James Strachan

Rob Davies

Hiram Chirino

Guillaume Nodet

Thanks guys for creating this marvelous project. Impressive first release, you guys did 5 years ago.

I will end this blog by running the camel-example-spring from the Apache Camel 1.0 release.

$cd examples

$cd camel-example-spring

$mvn compile

$mvn camel:run

Now you should have patience as Maven is downloading ancient JARs that are 5 years old. So it takes a while :)

Camel 1.0 example running

The screenshot above shows the Camel 1.0 example running. This example kicks off by consuming messages from a JMS queue and write those to a file. So we need to connect with jconsole, to send a message. I have highlighted the service url to use in jconsole.

jconsole to send a message - Camel 1.0 rocks

In jconsole we expand the tree and find the test queue, and invoke the sentTextMessage operation with the text "Camel 1.0 rocks".

In the 2nd screenshot above, you may notice in the last line from the console, it says "Received Exchange". This is Camel logging this, as the example uses the following route shown in the screenshot in the top of this blog.

We can then see the file was written to the test directory as well, where we can see the file name is the message id, and the file content is what we sent from jconsole:

This was 5 years ago, so lets fast forward to today.

The last release of Apache Camel is 2.9.2, so lets migrate the old example to use this version instead. To do that you need to:

Adjust the pom.xml to use Camel 2.9.2 and the camel-activemq component has been moved from Camel to ActiveMQ so you need to include that. And for logging we now use slf4j. The modified pom.xml is shown below

Upgrading the example from Camel 1.0 to 2.9.2, adjusting the pom.xml file

In the Spring XML file you need to change the namespace of Camel, as when Camel graduated to become an Apache Top Level Project, the namespace was migrated from activemq to camel. Also we upgrade to use Spring 3.0 in the XSD. And the activemq component is now from ActiveMQ and not Camel. And the packages attribute is now a xml tag, so you need to use <packlage> in the <camelContext>. The updated file is shown below:

Upgrading Spring XML from Camel 1.0 to Camel 2.9.2

Okay we are now ready to go.

There is no need for changes in the Java source code!!!

The example migrated from Camel 1.0 to 2.9.2 without any Java code changes!!!

And like before we use JConsole to send a text message.

I must say James and the founders hit it in Camel 1.0 release, the DSL from the example is fully compatible with todays Camel release.

Indeed a very impressive first release. Camel was off to a great start, and the project has grown from strength to strength ever since.

2012-05-09

And I am of course attending. Jonathan and I was asked to give this years key note on the first day, to give a briefing of the state of the Apache Camel project, with focus on the past, the present and the future. We are honored to follow the foot steps of last years key note speakers Gregor Hohpe and James Strachan.

James Strachan and Gregor Hohpe

Two persons whom has a huge reason why there is an Apache Camel project today.

We have their keynote session as videos from last year. I encourage you to view those, its nice to hear Gregor talk about how the EIP book came along, and some of his thoughts for a 2nd EIP book. Likewise James outlines the history from the early days when the core team from Apache ActiveMQ took form and how that evolved into new projects such as Apache ServiceMix, Apache Camel and lately Apache Karaf and Fuse Fabric. Also James gives his thoughts where Camel is heading for the future with the cloud and all that.

We have a special discount on the ticket price, with thanks to Manning being a sponsor. You can get 100$ off the price, and get a e-book copy of the Camel in Action book. Use the promotion code: CamelAction

Christian Posta is going as well, and he wrote a blog entry why he is excited to go, and highlights some of the talks he is looking forward to attend.

So I am polishing the last minute details on our slides, and getting ready. As I play football in my spare time on a amateur/hobby level, I was challenge by my team mates, to wear a football shirt giving my talk.

2012-05-07

At the Apache Camel project we have an extensive link collection of various blogs, articles, presentations, conference videos, and what else related to Apache Camel. We have called this page Camel articles.

If you have any material to share, then you can reach out to the Camel community and ask to have a link added to your content.