Tuesday, January 20, 2009

Camel is now an Apache top level project!

As James and Claus have said today, Camel has been promoted to a top level project at Apache! This is a great vote of confidence for Camel, my fellow riders, and the rocking community. Thanks to all who've helped so far!

So, you should update your links to http://camel.apache.org now :)

Wednesday, December 10, 2008

RSS support in Camel

We've had Atom connectivity in Camel for a while now and so to not leave any RSS users out in the cold, I put in RSS support as well. We try to integrate with pretty much every messaging system in Camel after-all :)

Under the hood I'm using the ROME project. Its pretty much the standard Java framework for dealing with RSS feeds.

To consume from an RSS feed, just start your route like

from("rss:http://feeds.feedburner.com/JonAnsteysBlog")...

Then you can do all sorts of neat stuff like,

Filtering entries

Only entries with Camel in the title will get through this filter.

from("rss:feedUri?splitEntries=true").
filter().method("myFilterBean", "titleContainsCamel").
to("mock:result");

Merging multiple incoming feeds

Sometimes you may need to merge feeds from several different sources.

from("rss:feedUri").to("seda:temp");
from("rss:someOtherFeedUri").to("seda:temp");

from("seda:temp").aggregate(new AggregateRssFeedCollection()).
to("mock:result");

Marshal between XML and ROME objects

Here we perform the same filtering as above but instead marshal to XML and use XPath.

from("rss:feedUri?splitEntries=true").
marshal().rss().
filter().xpath("//item/title[contains(.,'Camel')]").
to("mock:result");

For more info, check out the wiki documentation.

Wednesday, November 12, 2008

How do you use your Apache Camel?


The Apache Camel project has been growing by leaps and bounds lately it seems. Much of this growth has been driven by a vibrant community (many thanks to all users! :) ). Its typically hard though to know what kind of applications Camel is being used in. We don't have much visibility into the cool stuff people are doing with Camel. In particular, in would be nice to know what other applications are being used with Camel... eg. CMSs, DBs, ESBs, App Servers, web frameworks, other frameworks, etc etc

I've started a thread here trying to capture how folks are using Camel. Please, if you're a user of Camel, take a minute to share how it is being used on the thread or here. This will only help us make Camel better and more useful in the future. No confidential info allowed, of course ;)

Wednesday, November 5, 2008

Creating Apache Camel projects with m2eclipse

I just noticed today that Apache Camel shows up by default in the m2eclipse New Maven Project dialog. No extra fooling around is required anymore. Very cool!


This is by far the easiest way to get started with Apache Camel - you don't even have to leave your IDE.

Friday, October 31, 2008

Apache Camel 1.5.0 Released!


Several months and 266 fixes later (a new record!), the Apache Camel team is proud to present version 1.5.0!

Go ahead, take a look at the release notes and grab it here. Its still pretty fresh so it may take a few hours before the release propagates to all Apache download mirrors (try here otherwise).

Tuesday, October 14, 2008

Repeatable Maven Builds

A typical problem folks have with Maven seems to be getting repeatable builds. If you've encountered this, you know the pain: an older release needs to be built but now fails with the dreaded "Failed to resolve artifact" error. You can't really depend on most Maven repos to be there indefinitely. I'm sure repos like http://repo1.maven.org are pretty safe but AFAIK the maintainers are under no legal obligation to keep around the artifacts forever. You most likely DO have obligations to customers and thus need to ensure builds are repeatable.

You get repeatability for free when you use a repository manager like Nexus - it keeps downloaded artifacts around forever by default. If you don't want to use a repository manager, you're going to have to save those artifacts some other (manual) way. One approach would be to just tar up your local m2 repo after each release and store it somewhere safe (like in SVN). Of course, since local repos tend to get huge over time, you should always start from an empty local repo before a release.

Hope this helps.

Tuesday, October 7, 2008

Why drop Maven?

Recently I've noticed projects dropping Maven in favour of some other build tool... Apache Qpid comes to mind in this case. I'm wondering, is there a real good technical reason that folks do not like Maven? It has its quirks... but really, what tool doesn't? I've been using it for years now and like it better that any other build tool out there.