[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Integrating plugin bundles in normal Java

2008/10/30 Tom Hsu <tom.hsu@xxxxxxxxxx>
Hi experts,

I am new to equinox so please excuse me for some obvious/stupid questions. However, I am still trying to wrap my head around this module system.

I am tasked with integrating an existing application A that is build using bundles and equinox osgi in eclipse into another standalone Java program B that will be traditional jar based program. I would like to invoke the Equinox OSGi system to load these bundles/packages in the standalone Java program through code and execute the main method of the app A through program B.

My setup is as follows:
/plugins/ all the bundles that app A requires are here.
        also app A has a main bundle here

I can use Eclipse Application run option to launch it or comandline "java -cp startup.jar org.eclipse.core.launcher.Main -
application myApp.Application ..."

However, I am exploring the option to launch app A with another existing java program B. As a prototype, I am writing a plain POJO with main method:

  public static void main(String[] args) throws Exception {
      String[] equinoxArgs = { "-console", "-noExit" };
      BundleContext context = EclipseStarter.startup(equinoxArgs, null);
            String pluginDir = "file:C:\\work\\";
      String commonJarName = "org.eclipse.equinox.common_3.2.0.v20060603.jar";
      String configJarName = "org.eclipse.update.configurator_3.2.2.R32x_v20070111.jar";
            Bundle commonBundle = context.installBundle(pluginDir + commonJarName);
      Bundle configBundle = context.installBundle(pluginDir + configJarName);
      configBundle.start();
            String jarName = "fetchlets.jar";
      String directoryPath = "file:C:\\work\\plugins\\";
      String locationStr = directoryPath + jarName;

      Bundle bundle = context.installBundle(locationStr);
      bundle.start();
  }

However, my bundle fetchlets.jar cannot be started because, the configurator bundle does not auto-discover all the required bundles in the plugins directory. Can someone help me figure out if I can tell the EclipseStarter to auto-load all bundles at a specific locations?

Or is there another approach I can use that is very similar to the run options in Eclipse where setting the platform will suffice to load all the plugins automatically?

Hi Tom,

just in case you don't find an option to do this for you, why not use File.list() to find the bundles?

  http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html#list()

or perhaps take a look at something like FileInstall, which is a bundle that scans for other bundles:

   http://felix.apache.org/site/apache-felix-file-install.html

HTH
 
I have been looking at:
http://www.eclipse.org/equinox/documents/quickstart.php
http://www.eclipsezone.com/eclipse/forums/t93976.rhtml

Regards,
Tom
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev

--
Cheers, Stuart