3

In one of the camel project which i downloaded from Apache camel website - in camel-context.xml I see routes, cxf , active mq defined and used to send and receive msgs. If all these components can be built WITHOUT using FUSE and camel can be run standalone - in which scenario/use case would one use FUSE ?

In my project the requirement is that all web service calls from Client go through FUSE for making it asynchronous (my manger mentions FUSE every time). If this can we achieved using camel alone - i am trying to understand where does FUSE fit in here - as per my understanding i wont need FUSE?

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
Neha
  • 745
  • 4
  • 10
  • 18

3 Answers3

3

Apache Camel is a essentially a library that can be used by other applications, servers etc. You can for example use Apache camel in your Java application to create a web-services client or you can embed it into WAR application allowing your web-site to read from a FTP site and then transform this into some other message.

What you need to understand is this. Apache Camel needs to be used somewhere it is not designed to run by itself. Thus it needs some sort of run-time container to star the Camel context.

Fuse is a run time container that will start and manage Apache Camel. Fuse is an ESB and running apache camel here makes sense as an ESB is normally your integration point and Camel is a integration library. You can read more about it in this answer.

Community
  • 1
  • 1
Namphibian
  • 12,046
  • 7
  • 46
  • 76
2

Apache Camel is framework, or toolbox which uses other frameworks, to do its processing and allow the developer with simple dsl language describe what you want to do. That is the development aspect.

Off course the app has to run as well so you need a runtime environment. This can be a simple jar, or in the case of Fuse, an osgi container. The nice part of the osgi container is that you get access to options and features that are not available to you. You can view deployed solutions, check logs, start and stop flows and many others.

Camel is the framework that describes how the application works, Fuse is where it can run.

Souciance Eqdam Rashti
  • 3,143
  • 3
  • 15
  • 31
1

Fuse is a container. For example you can build a bundle and doesn't use apache camel. Let's say you want to print "Hello", therefore you don't need to import apache camel. But if you like to use esb features in your project such as print Hello when something happens, you need to import apache camel library.

Olcay Tarazan
  • 931
  • 9
  • 12