如何在通常的java代码中运行OSGi框架?
任何人都可以给我一个如何使用osgi框架类的例子吗? 我不知道如何使用这些类……
BR,
马库斯
它取决于您使用的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);
您需要一些属性来配置框架。 您可以在此处查看所有记录的属性。 一旦调用startup,您收到的BundleContext就是System Bundle上下文,因此您可以从此处安装/启动/停止bundle。
如果设置了所有属性,则不必将任何参数传递给startup()。
您可以从Equinox网站下载所有Equinox和其他捆绑包。
在OSGi 4.1中,这是标准化的。 请查看http://njbartlett.name/2011/03/07/embedding-osgi.html ,其中介绍了如何嵌入任何OSGi容器。
请参阅equinox-headless-service项目。 它有启动equinox的代码。
该规范没有定义如何实例化,配置和启动OSGi框架。 因此,从通常的Java代码运行OSGi框架总是特定于给定的框架实现(Equinox,Felix,Knopplerfish,…)。
将Apache Felix (一个开源OSGi框架)嵌入到您的应用程序中相当容易。
有关详细信息,请参阅http://felix.apache.org/site/launching-and-embedding-apache-felix.html 。
请参阅http://www.theserverside.com/tt/articles/article.tss?l=OSGiforBeginners
我最近创建了一个简单的概念validation,说明如何在Java中嵌入Equinox OSGi运行时。 有关详细信息,请关注我在Github的项目https://github.com/sarxos/equinox-launcher
- 更改intellij窗格的背景颜色
- 调用select()时,Java节点在使用选择器注册通道时阻塞。 该怎么办?
- 将String Date转换为String date不同的格式
- Java类 – 如何将Generic Object传递给函数
- 如何增加jBoss服务器的堆大小
- 为什么生成的PDF在Internet Explorer中正常显示,而在FireFox或Chrome中却没有?
- OutOfMemoryError:PermGen Space – 在Tomcat上运行Spring的Jasper报告
- 在gui中更改面板
- 防止敏感数据暴露于PCI标准 – response.getWriter()。write(xml.toString())