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

发布于 2024-07-22 14:54:59 字数 77 浏览 5 评论 0 原文

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

BR,

马库斯

Can anybody give me an example how to use the osgi framework classes? I haven't a clue how to use those classes ...

BR,

Markus

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

酒解孤独 2024-07-29 14:55:00

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

I recently created a simple proof-of-concept of how to embed Equinox OSGi runtime in Java. For details please follow my project in Github https://github.com/sarxos/equinox-launcher

So尛奶瓶 2024-07-29 14:55:00

请参阅项目 equinox-headless-service。 它有启动春分的代码。

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

没︽人懂的悲伤 2024-07-29 14:55:00

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

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

请参阅 http://felix.apache.org/site/launching -and-embedding-apache-felix.html 了解更多信息。

The specification does not define how to instantiate, configure and start an OSGi framework. Therefore running OSGi framework from your usual Java code is always specific for the given framework implementation (Equinox, Felix, Knopplerfish,...).

It's reasonably easy to embed Apache Felix (an open-source OSGi framework) into your application.

See http://felix.apache.org/site/launching-and-embedding-apache-felix.html for more information.

幽蝶幻影 2024-07-29 14:54:59

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

In OSGi 4.1 this is standardized. Have a look at http://njbartlett.name/2011/03/07/embedding-osgi.html which explains how to embed any OSGi container.

苦妄 2024-07-29 14:54:59

这取决于您使用的 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 网站< /a>.

It dependes on which OSGi implementation you are using. I use Eclipse Equinox and start the framework from within a regular java class. The Eclipse jar (called org.eclipse.osgi_longversion.jar) has a class called org.eclipse.core.runtime.adaptor.EclipseStarter. This will boot your OSGi framework.

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

You need some properties to configure the framework. You can see all the documented properties here. Once you call startup, the BundleContext you receive is the System Bundle context, so you can install/start/stop bundles from here.

If you set all the properties, you won't have to pass any arguments to startup().

You can download all Equinox and other bundles from the Equinox website.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文