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.
1) Camel Mail issue with unsupported charset by dcheckoway
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
3) Problem of skipped items/stories in Camel RSS reader by Cliff Court
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.
4) Error handling with recipientList by mcrive
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.