Wednesday, February 20, 2013

The future of Camel goodies

Apache Camel is distributed together with the pretty impressive set of components authored by our wonderful contributors. At this point we provide support for around 150 components and data formats. This is really impressive number which makes Camel the leader among the integration frameworks.

The bigger palette of components we offer, the more often we ask ourselves what will be the best way to handle our Camel herd. Should we keep components under Apache Software Foundation umbrella or should we create independent repository for them? What about the release cycles? Who should be responsible for the quality of the components?

If you are interested in the components-related brainstorm we had on Camel development mailing list you should take a peek at this interesting discussion thread. We would appreciate your opinion in this conversation, as we really want to hear the voice of the end users and community in this regards.

Monday, February 4, 2013

We (will soon) drop Scala 2.9 support for Camel

Apache Camel comes with some amazing DSLs out-of-the-box. The one I like the most is Scala DSL. The reason I like it so much is because I'm Scala enthusiast and because mentioned DSL provides Scala-specific extensions to the Java-based Camel route builder.

If you have ever wondered how would it be to write Camel routes just like this...

"pop3://user@host" process(_.in = "JMS FTW!") to "jms:queue"

...then keep in mind that Scala DSL can do you some favor.

At the beginning of the January Scala 2.10 has been officially released. Since the latest version of my favorite language significantly breaks binary compatibility against Scala 2.9, interesting discussion occurred on the Camel mailing list. The key facts resulting from the latter conversion are as follows.

  • Camel 2.11 will provide support for Scala 2.10 via camel-scala module (the one shipping Scala DSL for Camel so far)
  • Camel 2.11 will provide support for Scala 2.9 via new camel-scala_2.9 module. The latter module will marked as a deprecated just after its release.
  • starting from the Camel 2.12 or 3.0 (whichever comes as the first) we will drop support for Scala 2.9 
If you use Camel and Scala together in the same project, please be prepared that sticking to the Scala 2.9 for a long run might be a problem for you.