2015-03-19

On this day 8 years ago Apache Camel was born

So its March 19th which is 8 years ago the first public commit of Apache Camel was pushed to ASF by James Strachan in 2007.

Using the lovely github browser its easy to have a flashback and take a look at what this first commit contains.

So James included APIs and concepts that end users of Apache Camel today would find familiar.

Lets start with the unit test of a Camel route, which is as shown below. The unit test includes three tests, one is a test of a simple route, that is just a from -> to as shown below:

RouteBuilder from the very first commit - sometimes we hit the nail from the first try

If you look at the code above, then that code would be 100% the same today. Its a route using the Java DSL using the same class name, RouteBuilder, where the routes are defined in the configure method. And this route is a simple from -> to using the seda endpoints.

The other two unit tests are using the content based router, aka choice in Camel.

Camel route using choice and predicates
These routes would almost be the same today, its only the predicate in the choice that has changed from:

headerEquals("foo", bar")

to a more rich DSL

header("foo").isEqualTo("bar")

If we keep looking in the first commit, we see that it includes APIs and concepts we use today

org.apache.camel.Endpoint
org.apache.camel.Exchange
org.apache.camel.Predicate
org.apache.camel.Processor
org.apache.camel.builder.RouteBuilder

It sure was a great start from the very first commit.

In summer 2007 Apache Camel 1.0 was released, which I had a flashback in 2012 and blogged about what I though was a great start for Camel.

And here 8 years later Apache Camel is as strong as ever.
Just take a look at the latest impressive Camel 2.15 release.


6 comments:

jamie archibald said...

Keep the commits and the good work coming!

jamie archibald said...

Keep up the good work and the commits coming!

Unknown said...

This is the living example that great things start small. Great work, Claus and team.

Özer Ertürk said...

Many thanx for building such a powerfull toy for our children :)

Abel Chavanga Blog said...

Hi Claus,

I am a Java developer using ActiveMQ and Camel.

I setup 13 concurrent consumers to consume messages on a queue but when one (1) consumer takes long to process the other 12 consumers wait for it to process before they can get new messages from the queue. This end up affecting my server memory. How do I make sure that even if 1 consumer is taking long to process the other 12 consumers can still continue getting new messages on the queue.

Claus Ibsen said...

Please read this page how to get help with Apache Camel
http://camel.apache.org/support