探索Eclipse的OSGi控制台

从V3.0开始,Eclipse选择了开放服务 关计划(OSGi)来代替早期版本中摇摇欲坠的Eclipse插件技术,从而实现了巨大飞跃。 这种过渡对用户几乎是透明的,因为插件似乎可以作为旧插件安装并运行。

图1. Eclipse中的插件

Eclipse,Equinox,OSGi,我的天哪!

OSGi联盟是负责OSGi技术的独立非营利公司。 它在功能上类似于Eclipse Foundation。 OSGi联盟负责产生描述OSGi技术的规范。 简而言之,OSGI技术为应用程序开发提供了一个面向服务的基于组件的平台。 各种实现都基于这些规范。 最受欢迎的实现之一是Equinox,这是Eclipse的规范实现。 OSGi的另一个流行实现是Apache的Felix项目。

创建您的OSGi捆绑包

图3. PDE Hello OSGi捆绑向导

插件和捆绑包:有什么区别

在Eclipse开发人员将应用程序一起黑客入侵的地下室中徘徊,您会听到插件和捆绑软件的魔咒。 有区别吗从营销副总裁的角度来看,这些术语是同义词。 捆绑软件是插件,而插件是捆绑软件。 看来,我们对这两个术语都抱有困惑。 但是,从超级书呆子的角度来看,存在一些争论。 准确地说,Eclipse插件是一个OSGi捆绑软件,它利用了扩展注册表(即,在捆绑软件的根目录中具有plugin-in.xml)。 OSGi捆绑包是OSGi捆绑包。

启动配置完成并准备就绪后,我们可以使用启动配置对话框中的“运行”按钮启动捆绑包。 完成此操作后,您将看到类似于图5的结果。

在图5中,我们看到Hello包已启动(使用控制台上打印的HelloWorld消息,表明我们的包已启动),并且显示提示符。 OSGi提示符与DOS或Bash提示符相似,因为您可以输入对OSGi实例起作用的命令。 在这种情况下,我们发出了命令,该命令显示所有内容的快速状态。 我鼓励您在普通的Eclipse实例中尝试使用此命令,以了解所有内容只是底层的OSGi捆绑包。 要获得用于普通Eclipse实例的OSGi控制台,只需使用参数启动Eclipse。

图5.我们的首次启动

添加,删除和更新捆绑

OSGi系统的另一个强大方面是能够在正在运行的OSGi实例中添加,删除和更新捆绑软件-无需重新启动Java?虚拟机即可。 图7演示了如何安装和卸载捆绑软件。

图7.安装和卸载捆绑软件

有用的控制台命令摘要

表1.有用的控制台命令
命令 描述
开始 使用给定的ID或符 名称启动捆绑包
停止提供ID或符 名的捆绑包
安装 给当前实例添加给定URL的捆绑软件
卸载 给定当前实例的URL,删除捆绑
更新 给定当前实例的URL,更新一个包
活性 列出当前实例中的所有活动捆绑
标头 列出具有ID或符 名的捆绑包的标题
ss 列出当前实例中注册的所有捆绑包的简短状态
服务 列出经过适当过滤的服务
诊断 在给定ID或符 名的捆绑软件上运行诊断

还有许多其他OSGi命令可用。 这里列出的是我发现最有用的。 要获取所有命令的列表,只需在控制台中键入 。

扩展控制台

人们说Eclipse的优点在于它的可扩展性。 控制台可以类似的方式扩展。 这很重要,因为作为开发人员,您可以为用户提供某种服务。 通过扩展控制台,可以使高级用户或管理员能够调试有关服务的问题。

控制台没有使用熟悉的扩展点,而是具有简单的可扩展性机制。 让我们通过几个示例来说明控制台的可扩展性。

ame,OSGi风格

使用过UNIX?风格的系统的任何人都熟悉命令,该命令会打印名称,版本以及有关正在运行的操作系统的其他信息。 在OSGi上下文中,可以以多种UNIX风格相同的方式来实现OSGi控制台的各种实现(例如Knopflerfish )。

扩展OSGi控制台最重要的部分是界面。 有兴趣扩展控制台的客户必须实现此目的。 一旦实现,下一步就是以开头的方法名称。 这些方法将代表控制台中可用的命令。 就这么简单! 有关示例,请参见清单1。

清单1. OSGi uname

捆绑与存在主义

捆绑软件可能永远不会质疑它们的存在,但是这是一个简单的示例,显示捆绑软件是香草捆绑软件还是Eclipse插件。 (请记住,两者仍然是捆绑包!)清单2通过添加一个新方法并修改方法在上一个示例的基础上构建。

清单2.修改

我们的劳动成果如图9所示。

图9.扩展控制台的结果


翻译自: https://www.ibm.com/developerworks/opensource/library/os-ecl-osgiconsole/index.html

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树控制执行流程if-else91318 人正在系统学习中 相关资源:TranslationLoaderBundle:具有数据库翻译加载器的Symfony2捆绑软件

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月2日
下一篇 2020年6月2日

相关推荐