8

谁能给我一个如何使用osgi框架类的例子?我不知道如何使用这些类...

BR,

马库斯

4

6 回答 6

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);

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

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

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

于 2009-05-26T14:59:05.273 回答
5

在 OSGi 4.1 中,这是标准化的。看看http://njbartlett.name/2011/03/07/embedding-osgi.html,它解释了如何嵌入任何 OSGi 容器。

于 2011-03-10T22:13:30.407 回答
2

该规范没有定义如何实例化、配置和启动 OSGi 框架。因此,从您常用的 Java 代码运行 OSGi 框架总是特定于给定的框架实现(Equinox、Felix、Knopplerfish,...)。

将Apache Felix(一个开源 OSGi 框架)嵌入到您的应用程序中相当容易。

有关详细信息,请参阅http://felix.apache.org/site/launching-and-embedding-apache-felix.html

于 2009-05-24T22:16:34.077 回答
2

See the project equinox-headless-service. It has code to launch equinox.

于 2009-05-25T16:17:49.863 回答
1

请参阅http://www.theserverside.com/tt/articles/article.tss?l=OSGiforBeginners

于 2009-05-24T16:05:55.363 回答
0

我最近创建了一个关于如何在 Java 中嵌入 Equinox OSGi 运行时的简单概念验证。详情请关注我在 Github 中的项目https://github.com/sarxos/equinox-launcher

于 2012-11-11T15:57:32.930 回答