2010-08-08 60 views
1

我将我的Java SE(右键单击项目配置 - >转换为插件项目)更改为插件,但是当我尝试运行它时 - 它作为Eclipse应用程序运行,如何启动它作为OSGi? 谢谢!启动插件为OSGi

回答

2

将JavaSE应用程序转换为单一的大包,基本上意味着您以不同的方式启动您的代码。您现在实现了具有start()和stop()方法(每个都有一个BundleContext作为参数)的BundleActivator接口,而不是public static void main(String [] args)。

启动这取决于你选择的框架实现。由于OSGi 4.2有一个启动API(规范的第6.2段),它指定了一个启动框架并运行你的单个bundle的通用机制。如果您使用较旧的实现,启动是特定于框架的,我只能将您引用到该框架的文档中。

+0

你会推荐符合OSGi 4.2的实现吗? – 2010-08-08 11:10:50

+0

如果我将通过BundleActivator的方法开始运行我的应用程序,它如何与fraemwork中的bundle进行交互? – 2010-08-08 14:51:50

+0

@Thorbjørn:是的,我会推荐使用该规范的最新版本。 @EK:从技术上讲,你启动框架,它将调用你指定实现BundleActivator的类的start方法。作为参数传递给start(和stop)方法的BundleContext是您与框架的接口。它允许您与服务注册表进行交互等等。服务是捆绑交互的主要机制。您可以通过BundleContext发布和查找服务。欲了解更多信息,我会推荐给OSGi的介绍。 – 2010-08-08 22:06:02