如何在通常的java代码中运行OSGi框架?

Mar*_*kus 8 java osgi

任何人都可以给我一个如何使用osgi框架类的例子吗?我不知道如何使用这些类......

BR,

马库斯

ome*_*dat 8

它取决于您正在使用的OSGi实现.我使用Eclipse Equinox并从常规java类中启动框架.Eclipse jar(名为org.eclipse.osgi_longversion.jar)有一个名为org.eclipse.core.runtime.adaptor.EclipseStarter的类.这将启动您的OSGi框架.

Properties props = new Properties();
// add some properties to config the framework
EclipseStarter.setInitialProperties(props);
BundleContext context = EclipseStarter.startup(new String[]{},null);
Run Code Online (Sandbox Code Playgroud)

您需要一些属性来配置框架.您可以在此处查看所有记录的属性.一旦调用startup,你收到的BundleContext就是System Bundle上下文,所以你可以从这里安装/启动/停止bundle.

如果设置了所有属性,则不必将任何参数传递给startup().

您可以从Equinox网站下载所有Equinox和其他捆绑包.


Lee*_*len 5

在OSGi 4.1中,这是标准化的.请查看http://njbartlett.name/2011/03/07/embedding-osgi.html,其中介绍了如何嵌入任何OSGi容器.