1 Reply Latest reply on Mar 13, 2013 9:19 PM by ffang

    How to disable Fuse automatically start bundle when launch fuse esb

    wl880504

      I have created a bundle using Maven. I use blueprint to activate this bundle. In the init() mehtod:

       

      public void init() {

       

             System.setProperty("org.restlet.engine.loggerFacadeClass",

                      "org.restlet.ext.slf4j.Slf4jLoggerFacade");

               

              CmdLineSettings settings = new CmdLineSettings();

               

              // Load modules

              FloodlightModuleLoader fml = new FloodlightModuleLoader();

       

              IFloodlightModuleContext moduleContext =   

                       fml.loadModulesFromConfig(settings.getModuleFile());

       

              // Run REST server

              IRestApiService restApi = moduleContext.getServiceImpl(IRestApiService.class);

              restApi.run();

       

              // Run the main floodlight module

              IFloodlightProviderService controller =

                      moduleContext.getServiceImpl(IFloodlightProviderService.class);

       

              // This call blocks, it has to be the last line in the main

              controller.run();

      }

       

      In this case, controller.run() will run forever. So once I type:

      FuseESB:karaf@root> osgi:start 251

      It keeps running and running.

       

      I cant kill it, because it cant return to the new black command line - FuseESB:karaf@root>

       

      Then I cant type osgi:stop 251 into the karaf console.

       

      Then I close the terminal. But when I start fuse esb:

      bin/fuseesb

       

      That bundle start running again. Finally, I got to reinstall fuse esb.

       

      So I am wondering if there is a way to disable automatically start bundle in fuse esb. Or do I need to use thread to handle this running forever program?

        • 1. Re: How to disable Fuse automatically start bundle when launch fuse esb
          ffang

          Hi,

           

          You definitely shouldn't block the init method, using another thread is a way.

           

          And about auto-start the bundle, it depend on how you deploy that bundle, I guess you drop it to the $FUSE_ESB/deploy folder, right? If so, the bundle will get started anyway.

          But you can always stop a bundle or uninstall it from another ssh client shell, or you can simply remove $FUSE_ESB/data/cache/bundle$ and remove that bundle from $FUSE_ESB/deploy folder and then restart FUSE ESB, you needn't reinstall FUSE ESB anyway.

           

          Freeman