2009-11-20

Apache Camel 2.1 - Update on releaseplan

Its almost 3 months since Apache Camel 2.0 was released so its definitely time for a new release and that is why Apache Camel 2.1 is now feature complete. At this time of writing we are waiting for a couple of SNAPSHOT dependencies to be released over at our friends from Apache ServiceMix.

So hopefully in mid next week Hadrian will be able to start building the release kit for Apache Camel 2.1. However before that happens the Apache Camel 1.6.2 release should have gone GA. The vote is still in progress but so far only +1 votes. Assuming everything runs by the book then we will have a release kit at the end of next week which goes through the voting process at Apache. If all again is well then 2.1 will be GA early December. Maybe a bit faster depending on how well it goes for Hadrian to build the release kits.

When Apache Camel 2.1 is GA it will also be included out of the box in the upcoming Apache ServiceMix 4.1. So our friends at SerivceMix is also eagerly waiting for the Camel.

If you want to take a look whats included in Apache Camel 2.1 then checkout the release notes which we write during development.

2009-11-18

Camel 2.1 - RoutePolicy a new feature

Apache Camel 2.1 is coming along really nice. Just got one of the last features in today, but that feature is for another blog post.

In Camel 2.1 we have introduced the notion of a route policy. It is used for controlling routes at runtime in a dynamic fashion. You assign a route policy to one or multiple routes which then at runtime will invoke a callback on the RoutePolicy interface. This interface provides hook to control the route such as suspending or resuming it. However you can implement the logic of choice.

By default we ship with a ThrottlingInflightRoutePolicy which is a dynamic throttler based on the current number of inflight exchanges. So you can configure it to throttle at thresholds such at 500 in flight exchanges and a low water mark at 40% etc.

To see all this in action we have added a new Route Throttling Example you can try out and learn how to use this in your projects.

And the ThrottlingInflightRoutePolicy is also JMX enabled so you can change its thresholds at runtime as well. Talk about dynamic :)

There are much more details on those links in this blog. And I have to advert for my book - Camel in Action, where we will provide more details of this feature.

2009-11-12

How well does your integration stack respond to your tickets

This blog title could easily be the 2nd part in a blog series. However it is not. Just wanted to a catchy title :) But it would be interesting to check upon the state in the JIRA on terms of responsiveness. However I leave that up for others or I may take a look at this sometime in the future.

What I want to tell is that this morning I did my usual habits and thus also checked upon the Apache Camel JIRA tickets.

This morning Jörn Kottmann reported that setting the timeout on the FTPClient was not possible in ticket CAMEL-2160.

I checked upon this and agreed that it should be easier to configure in Camel and thus began improving this. About 2 hours later I committed to changes and updated the wiki page as well.

The ticket was reported 2 hours before I started working on it, so in total the ticket was open for about 4 hours.

This is a good example how well we often respond to peoples tickets in the Camel community.
I am sure we have similar examples in the past as well, this is not a isolated case.

So how well does your integration stack respond to your tickets? At Camel we strive to respond and in timely manner.

I challenge you to find a ticket which has not been touched at all in the Camel JIRA tracker.

2009-11-06

How buggy is your integration stack?

This morning I had another blog topic planned but as usually I start by a cup of coffee and check the news, mails and tweets.

I thought Dan Kulp's blog post, How buggy is your SOAP stack was really good. It inspired me to check upon the situation with Apache Camel. I recommend reading his blog entry first before reading mine.
I will keep the investigations on Camel solely as people can do their own investigation on other integration projects.

As of this morning, november the 5th 2009 these are the numbers from Apache Camel JIRA:
  • 2139 tickets in total
  • 159 outstanding tickets (7% of total)
And looking at the 159 outstanding we have:
  • 147 improvements, new features, etc. (all except bugs)
  • 12 bugs
So in total we have reported at total of 12 bugs in Camel out of 159 outstanding issues. That is yet again around 7-8% of the outstanding tickets which is a bug.

Lets go over those 12 bugs and check what they cover

CAMEL-1769: It boils down to the Camel web console when it shows the routes rendered in Groovy it has trouble rendering complex expressions. This is not a bug which affects runtime as the groovy render is used to view the routes.

CAMEL-1788: Flatpack does not work with OSGi. Really not a Camel bug. The flatpack library is rather old and not OSGi ready. Loading its resource file on the classpath does not work well in OSGi land. The reported have reported this to the Flatpack issue tracker. We could in fact close this as its not a problem in Camel.

CAMEL-1974: Charles Moulliards excellent OSGi tutorial had some cosmetic typos and it could benefit to upgrade to latest Karaf standard. He is currently working on this.

CAMEL-1893: The camel-cxf code appears to under a rare situation to set the HTTP status code twice using different case. William Tam have been assigned this ticket.

CAMEL-1898: Hadrian is looking into the build process having a problem with generating the pdf manual during this process. It can however be generated manually thereafter.

CAMEL-1913: camel-jetty and multipart data. This is kinda an improvement.

CAMEL-1941: The tracer does not trace doTry .. doCatch .. doFinally correctly. This only affects diagnostics trace logging. Routing your messages using doTry ... et all works fine.

CAMEL-2001: Relates to the transactedInOut option on the camel-jms component. Its a bit confusing what its useable for. We are discussing this on the mailinglist whether to remove this option. And/or improve the wiki documentation about it.

CAMEL-2021: Guillaume Nodet is working on improving OSGi in Camel. Currently there is an issue with mixed versions running in Karaf.

CAMEL-2059: Relates to its not too easy to do custom error handling with transacted routes. I will look into this when I start writing the transaction chapter in my book. Which is in fact the next chapter I will write.

CAMEL-2129: camel-cxf has an misleading exception message when a call times out. Willem Jiang and Christian Schneider have already fixed this. Code is committed. So this ticket will be closed when Willem does this later today.

CAMEL-2137: Reported yesterday. Related to using Camel in ServiceMix 3.x with JBI.


Notice that the bugs listed here are all fairly new. CAMEL-1769 is created on june 28th 2009.
As of today there has been 698 bugs reported to Camel and of which only 12 is open, that is less than 2% open of all reported bugs.

We have rigorous many unit tests in Camel 2.x at this time we have > 4000 unit tests. That also helps keeps the bug count low.

Then we have a couple of discussions going on the mailinglist which may be a bug in Camel. Lets go over the ones I can remember working with recently.

This is an end user who consumes mail from a mail server which contains a mail that is using a weird charset which is not supported in the JDK itself. We are working with him to add a feature that tries to change the mail message to remove that charset to see if we can then have the SUN Mail API process the mail.

See CAMEL-2001 above

An end user is using camel-rss to read some feeds and it appears to skip some feeds. We wonder what the issue is whether its the ROME framework that does the actual RSS work.

This is an end user using Camel 2.0.0 who wants to do custom error handling and have precisely information which endpoint failed in case of an error. This feature is already implemented out of the box in 2.1. But the end user wants to use 2.0.0. Have advised him a solution that could work in 2.0 which by adding unit tests also proves. However on his end there is still an issue when its the FTP endpoint that fails. Unit tests in Camel itself shows that it works.

There may be a couple of more issues ongoing on the mailinglist. But the end users haven't reported back etc.

I think the state in Camel is excellent.


I end this blog by answering the blog title:

How buggy is your integration stack? Camel its not buggy.

2009-11-04

Getting started with Apache Camel webinar part 2

This is a blot post on the 2nd part of a webinar series about getting started with Apache Camel.
If you missed the first part then I recommend checking this blog post first.

Scott Cranton, Progress, continues in this 2nd part of the webinar by looking at the different deployment options using Apache Camel.

He shows among others the following different deployment options:
  • Standalone Java Application
  • Web Application
  • Spring Application
  • ActiveMQ
  • OSGi in Apache Karaf / Apache ServiceMix
The webinar is listed at the webinar page at http://fusesource.com under webinars.
And its titled - Getting Started with Camel deployments.

During the presentation Scott talks about how Camel compares to other integration products. He mention a link on my blog, which is this one.

And may I add that I personally think its very important, when you compare/investigate products, that you spend equally time looking at the community surrounding the products. As as we say at Apache - Community over Code! I talk about this in more details at my interview at dzone a while back. Another source worth checking out is the links to articles at the Camel site.

Well go grab a big cup of coffee and get ready and watch Scott in action with the 2nd part.

2009-11-03

Camel in Action - Straight to the top of the Manning bestselling chart

Manning recently published Camel in Action available from their MEAP program.

Now a week later they published the updated list of the bestsellers, and yes Camel in Action tops that list. That is fantastic response from the community that there is indeed a demand for such a type of book. For us the authors its a tremendous boost in morale and makes the hard and late hours writing more enjoyable.

This blog entry is also a kind a reminder for myself in the future that I had a book on the top of a chart.

I guess by next week the chart has another book on the top, and who knows if Camel in Action is even in the top 10.



2009-10-22

Announcing Camel in Action

It seems like a long time since Hadrian got the ball rolling which I am now happy to be able to announce officially.

Apache Camel is another great project which takes the next step and has a book being published.

That is why I am proud to part of that with my two co authors: Hadrian and Jonathan Anstey. We are writing the book title - Camel in Action, to be published by Manning. Yes its another great book in the action series.




Today the book gone MEAP which means the first 4 chapters is available online. You can read more at Manning what MEAP is. But in terms of Camel you should know that a lot of great documentation and material on Camel itself will go into that book.

For example if you are looking for how to test with Camel, then we got chapter 5 which has 30+ pages on this subject. Actually chapter 5 is online right now.

Since the chapters are not officially finished yet, you can read then in draft form and be able to provide feedback and help influence the book as well. Please use the manning author online forum for this.

Me personally is currently busy writing yet another chapter which is chapter 7 on using beans with Camel.