Enterprise Integration Zone is brought to you in partnership with:

Kai Wähner (Twitter: @KaiWaehner, Blog: www.kai-waehner.de/blog) is an IT-Consultant in the Java EE, SOA, Cloud Computing and Big Data world. In his real life, he lives in Erlangen, Germany and works for TIBCO (www.tibco.com). Besides solving huge integration problems for large companies, Kai writes articles for magazines and speaks at international IT conferences such as JavaOne. Feel free to contact him via Twitter, LinkedIn or Email. Kai is a DZone MVB and is not an employee of DZone and has posted 53 posts at DZone. You can read more from them at their website. View Full User Profile

Enterprise-ready Tool Support for Apache Camel

11.26.2012
| 8283 views |
  • submit to reddit

Apache Camel is my favorite integration framework on the Java platform due to great DSLs, a huge community, and so many different components. Camel is used by many developers from different companies all over the world. However, most guys are not aware that some really cool and – more important – enterprise-ready tooling is available for Camel, too. Many people ask me about Camel tooling when I do talks at conferences. This is the reason for this short blog post about Camel tooling.

[FYI: I work for Talend (one of the vendors).]

IDE Support

Camel consists of a set of normal Java libraries and is therefore usable with any Java IDE (such as Eclipse, NetBeans or IntelliJ IDEA) or even a classic text editor. Programming DSLs are available for Java, Groovy, and Scala. Even a Kotlin DSL is in the works, thanks to Camel’s founder James Strachan. All familiar IDE features such as code completion or Javadoc view are available for these DSLs. In the Spring XML DSL, the Eclipse-based SpringSource Tool Suite (STS) should be emphasized, which provides the best support for the Spring Framework and XML configurations.

Camel-specific Tooling

Besides classical IDE support, further products are available to provide additional functionality. Integration problems can be modeled with the help of Enterprise Integration Patterns (EIP, http://www.eaipatterns.com/). EIPs are implemented by Camel. Visual designers are available to help modeling integration problems with these EIPs. These tools even generate the corresponding source code automatically. Ideally, developers do not have to write any source code by hand.

Camel tooling is offered by Talend with Talend ESB (http://de.talend.com/products/esb) and JBoss, formerly FuseSource, with Fuse IDE (http://fusesource.com/products/fuse-ide). Both companies also provide full-time committers for the Apache Camel project. Let’s take a short look at these two products in the following.

Open Studio for Talend ESB

Talend ESB is an Eclipse-based integration platform within the Talend Unified Platform. The familiar “look and feel” and the intuitive use of Eclipse remain. The ESB is open source and freely available. The paid Enterprise version offers additional features and support. The ESB can be used independently or in combination with other parts of the Talend Unified Platform, such as BPM, Big Data, or Master Data Management. The great benefit is that everything can be done within one suite using the same GUI and concepts, based on Eclipse.

The entire Talend Unified Platform is based on the “zero-coding” approach. This way, a very efficient implementation of integration problems is possible using the EIPs and components. Routes are modeled and configured with intuitive tool support, all source code is generated. Of course, custom integration logic can still be written and included, for example, POJOs, Spring beans, scripts in different languages, or own Camel components. Plenty of other components besides Camel’s ones are available for Talend ESB – for example connectors to Alfresco, Jasper, SAP, Salesforce, or host systems.

Figure 1: Visual Designer of Talend’s ESB

Fuse IDE

The Fuse IDE is an Eclipse plugin, which is installed from the Eclipse update site. The Visual Designer (see Figure 2) generates Camel routes as XML code using the Spring XML DSL. The generated code is editable vice-versa, i.e. the developer can change the source code. The graphical model applies changes automatically. Fuse IDE is intuitive to use for creating Camel routes. FuseSource offers some other products, which can be used in combination with Fuse IDE – such as management console or Fuse MQ for messaging.

Under FuseSource, Fuse IDE was a proprietary product. However, FuseSource was recently taken over by RedHat (http://www.redhat.com/about/news/press-archive/2012/6/red-hat-to-acquire-fusesource) and now belongs to the JBoss division.  In the new roadmap, the Fuse IDE is still included. It will probably be integrated into the JBoss Enterprise SOA Platform and become “open sourced”. The integration of FuseSource will take at least a few more months time to complete (http://www.redhat.com/promo/jboss_integration_week/).

JBoss now “owns” three ESB products (JBoss ESB, Switchyard and Fuse ESB). Probably, these will be merged into one product in the end (SwitchYard is also based on Camel). Nevertheless, the FuseSource products will also be supported for some time – primarily in order to satisfy existing customers (my guess).

Figure 2:  Visual Designer of Fuse IDE (JBoss, former FuseSource)

Enterprise-ready Tooling is already available for Apache Camel!

The bottom line is that enterprise-ready tooling is already available for Apache Camel. It is great to see different companies working on tooling for Apache Camel. The winner definitely is Apache Camel… And there is no loser! Talend ESB and Fuse IDE are two different approaches for different kinds of projects.

If you like the „zero-coding“ approach, then take a closer look at Talend’s ESB. It is really easy and efficient to realize integration projects without writing source code – nevertheless, there is enough flexibility for customization and adding own source code. The combination with BPM, MDM or Big Data (based on Hadoop) is also supported within the unified platform using the same open source and „zero-coding“ concepts. If you „insist“ on writing and refactoring all source code by yourself within the text editor of an IDE, then take a look at Fuse IDE.

Your best would be to try out both and see which one fits best into your next enterprise integration project. If you know any other cool Camel tooling (no matter if it is enterprise-ready or not), or if you have any other feedback, please write a comment. Thank you.

Best regards,
Kai Wähner (Twitter: @KaiWaehner)


Content from my blog:

http://www.kai-waehner.de/blog/2012/11/23/enterprise-ready-tool-support-for-apache-camel/ 

Published at DZone with permission of Kai Wähner, author and DZone MVB.

(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 Thu, 2012/12/13 - 4:07am

Kai, you asked for information about other tools. We have a link collection at http://camel.apache.org/user-stories.html where we have some links for Camel tooling, such as CamelWatch etc.

James and the Fuse team is working on a web console for Camel, ActiveMQ, etc. at: https://github.com/fusesource/fuse-console.

Camel has a bit tooling out of the box such as the Maven Archetypes: http://camel.apache.org/camel-maven-archetypes.html
And as well we have a visualization tool (though not maintained, and possible to be deprecated in the future): http://camel.apache.org/visualisation.html
And the web console http://camel.apache.org/web-console.html (to be improved in Camel 3.0 onwards)

What the reader may not read from your blog post, is that you work for Talend, and thus is biased. As well I work for Red Hat and am biased as well. So I just want to add some comments about Fuse IDE, if I may, which seems to be left out.

Fuse IDE comes in 3 flavors. You can install it as a Eclipse Plugin. We have a .zip / tarball you can unzip/untar which has all you need in one; or we have binary installers.

Fuse IDE allows you to edit any existing Camel application. For example you can load the Camel examples that comes out of the box with the Apache Camel releases.

And you can also do development with Fuse IDE with “zero-coding”. It has a graphical editor, where you can do all editing in wizards / properties panels and whatnot.

Fuse IDE is now open source and free to use for anyone to use, without any locked-down functionality etc – its all open to everyone.

But as you say the strength of Camel is that it’s very developer friendly  And allows you to use whatever tool/IDE you want / are already using. The routing DSL is so intuitive that you can just use Java code editor / or a XML editor. If you setup the editor to understand the XSD then the XML editor have code assistance, just as you have in Java coding.

So the big win is Apache Camel being independent from any special tooling to get started.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.