DEV Community

Discussion on: Apache Camel #1 - Introduction to Apache Camel

Collapse
 
elmuerte profile image
Michiel Hendriks

I really like Apache Camel. We've been using it as part of you integration stack, using ServiceMix, for quite some years. I've written quite a few custom components for it. The most extensive one is a AS2 component, it is pretty much feature complete. Although these days there is an official AS2 component, but not as complete as the one I wrote. I should have open-sourced our component. But it was in development limbo for quite a while.

About 2 years ago I started partially embedding Camel in our main application so that users could use a subset of the XML DSL to write some control flows which would execute within the Camel framework. It's working quite well, and features a whole bunch of components which hook into various parts of our main application.

Collapse
 
djoleb profile image
Djordje Bajic

Hey Michiel!

Thanks for commenting! It's a shame that you didn't use that code to improve Camel codebase. You can try to contact Claus Ibsen, maybe he is willing to look at that code and give it a try in Camel-K or in next Camel release.

Since i am currently implementing Camel in company i work in for all future B2B integrations (transfer data from one app to another and reverse), can you give me some advice, or tell me about some issues you had with it?

We are using camel inside Spring Boot project which is in docker container.

Thanks!

Collapse
 
elmuerte profile image
Michiel Hendriks • Edited

The main I had with the AS2 component was that the project for which this was needed was stopped, and for a long time we did not need any AS2 connectivity. After quite some years a new project came along and they needed every feature of the AS2 spec (and even an extension). (Or so they claimed.) So after years I continued with the component.

I did not really have much issue creating this component. The biggest issue is figuring out the best way to set up the stuff correctly in the Camel framework. Writing components is easy if the work to be done is simple input-output, which most work is.

Once you need to implemented a communication protocol which piggy-backs on HTTP, and has an input-output-reply (with optional async reply) things become a bit more difficult.

(Let's hope we don't get a new project which requires RosettaNet, because that component is in worse shape.)