A Look Inside FUSE ESB 4: An OSGi-Based Integration Platform
Well, this is almost true. By default the following Camel components are installed with the Camel feature:
Camel component | Short description |
Bean component | Bind Spring beans to a message exchange. |
DataSet | Use a data set to send large number of messages to stress test a message flow. |
Direct | Synchronous call to another endpoint. |
File | Consume and produce files from a specified directory. |
List | A List can be used to test and debug message exchanges. |
Log | Log the message exchange with Jakarta Commons Logging. |
Mock | Use the mock component to test a message flow. |
SEDA | Asynchronous call to another endpoint in the same Camel Context. |
Timer | Send a message on a specific time interval. |
Validator | Validates the message payload with XML Schema and JAXP validation. |
VM | Asynchronous call to another endpoint in the same JVM. |
XSLT | Transforms the message using a XSLT stylesheet. |
In the simple file example we used the Camel file component. As you can see on the Camel website, there are a lot of other Camel components available (http://activemq.apache.org/camel/components.html). So if we would like to use the Camel JMS component in the FUSE ESB we should do an additional installation. But the Camel JMS component is not available by default in the features list. To make other Camel components available in the features list we should add a features URL where the provisioning component can retrieve the additional components. Execute the following command to do this using a URL that matches the version of FUSE ESB that you are using:
When we execute the ‘features list’ command now, a large number of additional Camel components is available to install, including the Camel JMS component. So to enable the Camel JMS component functionality just execute the ‘features install camel-jms’ command. So now let’s look at a bit more complex example using the Camel Java DSL implemented with an OSGi bundle.
Deploying an OSGi bundle
In the first example we showed how to use the Camel Spring XML configuration. But when we want to implement a Camel Java DSL route or use Java beans in the integration logic, we need another deployment mechanism. In FUSE ESB 4 the most obvious choice would be an OSGi bundle utilizing the Spring dynamic modules (Spring DM) framework. Figure 3 shows an example we’ll implement with an OSGi bundle.

Figure 3 Camel example that consumes a JMS message and validates it against an XML Schema definition. There is a standard target queue and an error queue in case of validation errors.
We’ll implement a ValidationRouter class with the Camel Java DSL that consumes a hello message from the camel.jms.in JMS queue. The message exchange will be logged and then it will be validated against the hello.xsd XML Schema definition file. When there are no validation errors, the hello message will be sent to the camel.jms.out queue and in the case of validation errors, the message will be forwarded to the camel.jms.error queue.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





Comments
Claus Ibsen replied on Wed, 2009/03/11 - 12:57am
Maybe the description for the Camel SEDA and VM components, could be changed to:
- asynchronous call to another endpoint in the same Camel Context
- asynchronous call to another endpoint in the same JVM The List component is renamed to Browse in Camel 2.0 as a better name what it does, eg being able to browse Messages that have passed it.
--
Claus Ibsen
Apache Camel Committer
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Claus Ibsen replied on Wed, 2009/03/11 - 1:03am
Claus Ibsen replied on Wed, 2009/03/11 - 1:06am
AMQ web console:
http://activemq.apache.org/web-console.html
Tijs Rademakers replied on Wed, 2009/03/11 - 2:24am
Tang Yong replied on Sat, 2009/03/14 - 9:21am
The same greate and wonderful article as "Open-Source ESB In Action"!
I wish that you can contribute more excellent article about enterprise integration.
Especially about the key technoledge points of open source integration(such as spring with mule,spring with servicemix,...).
--- Mike Tang
Sun Glassfish FishCat Contributor
Open Source Integration Fans
Blog: http://mikertang.blogspot.com/
Tijs Rademakers replied on Sat, 2009/03/14 - 11:51am
in response to:
Tang Yong
Robert Williams replied on Wed, 2009/03/18 - 7:42am
Could not download the article source code at the URL listed.
Could you please make the article source code available
BTW Nice article!
Erwin Teseling replied on Wed, 2009/03/18 - 8:12am
in response to:
Robert Williams
Tijs Rademakers replied on Wed, 2009/03/18 - 2:52pm
in response to:
Erwin Teseling
Erwin Teseling replied on Wed, 2009/03/18 - 5:39pm
in response to:
Tijs Rademakers
Ali Yang replied on Wed, 2010/07/14 - 10:59am
Mohit Dklkjhsds replied on Mon, 2010/08/16 - 10:20am
Larry Xu replied on Mon, 2010/11/15 - 3:27am
Dead Devil replied on Tue, 2011/03/15 - 4:17pm
Carla Brian replied on Sat, 2012/06/30 - 11:12am