1 Reply Latest reply on Mar 19, 2011 10:07 AM by davsclaus

    Newbie Fuse ESB Deployment Questions

    factor3

      Greetings, all:

       

      I am in the process of developing an OSGi- based system that utilizes various SOA- based components. I would like to embed Fuse/ServiceMix into that application.

       

      I understand that Fuse is OSGi based (which is why I am so interested in it!). I have been looking at its architecture and it looks like it has what I need for an embedded ESB. There are, however, some concerns that I have:

       

      1. Is there a way to make it run within other OSGi containers? Most of my service infrastructure is built using Equinox, and I would like to run my ESB from within that container. what would I need to do in order to accomplish this?

       

      2. Are the standard JBI components offered by Fuse/ServiceMix implemented as OSGi bundles? The reason I ask this is that I would like to be able to turn them on or off at will, or make deployments that are tailored to the specific transports that an application will use.

       

      3. Is there an API within Fuse that would enable me to start or stop the ESB and programmatically implement or invoke its endpoints? What I would like to do is hook the ESB into an already- defined interface that resides in a bundle that I am using to integrate and control the ESB within my application. Is it possible for me to do this?

       

      Please advise.

        • 1. Re: Newbie Fuse ESB Deployment Questions
          davsclaus

          Ad 1)

          Fuse ESB is using equinox as OSGi container already. However it can be configured to use another such as Apache Felix.

           

          Ad 2)

          Yes when you deploy JBI assemblies the deployer will turn that into OSGi. In fact it all becomes OSGi, for example as well when deploying WAR files.

           

          Ad 3)

          Yeah you can start/stop the ESB. For example that's what the start/stop scripts does (they are in the bin folder). Likewise OSGi has API for controlling bundles as well, so you can start/stop individual bundles. However often people use the shell or web console for that.

           

          To send messages its often easier to use Camel, as it makes it easy from a client to send a message to any kind of endpoint.