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:
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.
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.
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 |
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:
Keep the commits and the good work coming!
Keep up the good work and the commits coming!
This is the living example that great things start small. Great work, Claus and team.
Many thanx for building such a powerfull toy for our children :)
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.
Please read this page how to get help with Apache Camel
http://camel.apache.org/support
Post a Comment