Monday, May 11, 2009

Introduction to the Open eHealth Integration Platform

Martin Krasser has just posted an excellent article on the Open eHealth Integration Platform (IPF). The IPF is essentially an extension of Apache Camel for the healthcare domain. Where Camel focuses on providing an easy to use domain specific language (DSL) for enterprise integration, the IPF adds DSL terms from the healthcare domain. Go check it out!

Introduction to the Open eHealth Integration Platform

Monday, March 30, 2009

Apache Camel Refcard at DZone


Fellow Camel guru Claus Ibsen has created a lovely Refcard for DZone. From the description
This Refcard provides you with eleven of the most essential patterns that anyone working with integration must know. This Refcard is targeted for software developers and enterprise architects, but anyone in the integration space can benefit as well.

Go check it out!

Enterprise Integration Patterns with Apache Camel

Monday, March 23, 2009

Apache Camel: Integration Nirvana

I wrote up a little article on Apache Camel for DZone, go check it out!


Apache Camel: Integration Nirvana

Monday, February 23, 2009

Camel User Guide

For those never-read-anything-besides-physical-paper people, the Apache Camel user guide in PDF form may interest you. Be warned for printing it though as its quite large :)

Apache Camel User Guide version 1.6.0

This is really the closest thing we have to a book on Camel. Hoping that will change in the near future!

Another great source for nicely printable Camel documentation is FUSE Source. Check it out here.

Tuesday, February 17, 2009

Apache Camel 1.6.0 Released!



The Camel team is pleased to announce the release of Apache Camel 1.6.0. Get it while its hot!

Unix/Linux/Cygwin Distribution
Windows Distribution

We've fixed 169 issues in this release so its a worthwhile upgrade for all Camel users. You can find the full list of changes here.

Enjoy!

Monday, February 16, 2009

Apache Camel... more EIPs than you can shake a stick at!

For those of you who don't know already, one of Apache Camel's main themes is to make complex Enterprise Integration Patterns (EIPs) accessible to the everyday Java developer. We have an extensive catalog of EIPs that we support and recently I added a few more.

Composed Message ProcessorHow can you maintain the overall message flow when processing a message consisting of multiple elements, each of which may require different processing?
Claim CheckHow can we reduce the data volume of message sent across the system without sacrificing information content?
DetourHow can you route a message through intermediate steps to perform validation, testing or debugging functions?
Scatter-GatherHow do you maintain the overall message flow when a message needs to be sent to multiple recipients, each of which may send a reply?


You can try any of these patterns out using Apache Camel / FUSE Mediation Router 1.5 and onward.

Thursday, January 29, 2009

POJOs can route too!

In Camel we have several really cool Domain Specific Languages (DSLs) for easily expressing routing rules. But you don't need to learn these to use Camel. Starting with a POJO, you can use annotations to produce, consume or route messages to any Camel endpoint.

Take the following bean for example

public class BeanThatTalksCamel {
@Produce(uri="activemq:myQueue")
ProducerTemplate producer;

@Consume(uri = "file:a/path")
public void onFileSendToQueue(String body) {
producer.sendBody(body);
}
}


We use the @Consume annotation to mark onFileSendToQueue as a consumer of any messages coming from the file:a/path endpoint. To enable the bean to send messages to the activemq:myQueue endpoint, we use the @Produce annotation. All conversions between Files, Strings and JMS Messages are automatic. Pretty easy huh?

We also have the @RecipientList annotation that turns any bean into a dynamic Recipient List.


public class RecipientListBean {
@Consume(uri = "activemq:myQueue")
@RecipientList
public List route(String body) {
// return list of recipients based on message body
}
}


Here we consume JMS messages from myQueue and based on the body, send it out to a list of recipients. Again, very easy. If you're a ServiceMix user, Gert mentions how to use this trick from a ServiceMix perspective too, go check it out!

If you need more info, I've put all of these concepts into a little demo here. As always, if you need help using Camel, please get in touch.