如何在常用的 java 代码中运行 OSGi 框架?
有人能给我一个如何使用 osgi 框架类的例子吗? 我不知道如何使用这些类......
BR,
马库斯
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有人能给我一个如何使用 osgi 框架类的例子吗? 我不知道如何使用这些类......
BR,
马库斯
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
我最近创建了一个关于如何在 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
请参阅 http://www.theserverside.com/tt/articles/article .tss?l=OSGiforBeginners
See http://www.theserverside.com/tt/articles/article.tss?l=OSGiforBeginners
请参阅项目 equinox-headless-service。 它有启动春分的代码。
See the project equinox-headless-service. It has code to launch equinox.
该规范没有定义如何实例化、配置和启动 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.
在 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.
这取决于您使用的 OSGi 实现。 我使用 Eclipse Equinox 并从常规 java 类中启动该框架。 Eclipse jar(名为 org.eclipse.osgi_longversion.jar)有一个名为 org.eclipse.core.runtime.adaptor.EclipseStarter 的类。 这将启动您的 OSGi 框架。
您需要一些属性来配置框架。 您可以查看所有记录的属性 此处。 调用启动后,您收到的 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.
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.