了解Eclipse插件如何使用OSGi - 编程入门网
了解Eclipse插件如何使用OSGi时间:2011-10-21 IBM Scott DelapEclipse 和 OSGi 的关系,从 plugin.xml 到 manifest.mf Eclipse 集成开发环境(IDE)和 Eclipse Rich Client Platform(RCP)应用程序的核心由 Open Services Gateway Initiative(OSGi)规范的实现驱动。本文通过描述对 Eclipse 平台而言插件是什么 ,并跟踪从 Eclipse V2.1 到今天基于 OSGi 的实现中插件的发展,阐明了 Eclipse 与 OSGi 的关系。 还解释了 OSGi manifest.mf 文件选项以及通过 Eclipse 提供的添加项。 大多数 Java™ 编程语言开发人员通过作为 IDE 的功能认识了 Eclipse。Eclipse IDE 实际上由叫做插件 的交互式组件 的集合组成。这些插件组成了 IDE 的基础,它们还可用于创建其他桌面应用程序。创建基于 Eclipse 的 应用程序所需的最小插件集称为 Eclipse Rich Client Platform(RCP)。但是,插件本身不能启动。它 们需要在一个环境中启动和操作。Eclipse 使用 OSGi R4 规范的实现提供了该环境。 因为 Eclipse 在本质上是由 OSGi 驱动的,因此必须了解 Eclipse 插件的概念与 OSGi 框架有什么关系。在 本文中,我将通过描述对 Eclipse 平台而言插件是什么来详细解释这种关系。然后,将描述在 Eclipse V2.1 平台到今天基于 OSGi 的实现中插件的发展。最后,将详细介绍应用于 Eclipse 插件的 OSGi 提供 的 manifest.mf 选项。 插件是什么? Eclipse 联机帮助将插件定义为: “ 插件是为系统提供功能的代码和/或数据的结构化包。可以以代码库(带有公共 [应用程序接口] API 的 Java 类)、平台扩展甚至文档的形式来提供功能。插件可以定义扩展点、定义良好的位置,其他插件可 以在这些位置添加功能。” 要注意的一个重点是插件以结构化方式提供功能。它们可以提供服务 (比如日志)或可用于用户界面(UI)的功能,比如编辑器。不管什么功能,所有插件都以相同的结构化 方式来定义。 到 OSGi 的发展 如前所述,Eclipse 使用 OSGi 作为插件系统的基础。但并 非总是如此。早期版本的 Eclipse 也设计为插件集合,而且 Eclipse 包括自己专用的插件系统来管理交 互。但是,随着 Eclipse IDE 要求的增长,必须需要一个更强壮的解决方案。这个新系统的基本要求包 括动态添加新插件和停止现有插件的能力。经过大量研究之后,Eclipse 创建者决定通过实现 OSGi 框架 规范替换专用的插件框架。 OSGi 是服务平台的规范。Eclipse 提供了该规范的许多可用实现之一 ,并用作最新 OSGi R4 规范的参考实现。OSGi 是基于 Java 的框架,旨在用于需要长运行时间、动态更 新和对运行环境破坏最小的系统。起初,OSGi 旨在用于家庭自动化和家庭网关设备。最近,从手机到汽 车都发现了它的踪迹。 在核心,OSGi 是一个组件和服务模型,如图 1 所示。OSGi 规范定义了一 个叫做绑定包 的模块化单位。(在下文中,除非特别指明,Eclipse 术语插件 和 OSGi 术语绑定包 可 交换使用,因为所有 Eclipse 插件现在都是 OSGi 绑定包。)OSGi 还提供了 Java Virtual Machine (JVM)级别的服务注册,该绑定包可用于发布、发现和绑定至服务。 图 1. 主机操作系统、Java 和 OSGi 中层的交互 了解Eclipse插件如何使用OSGi(2)时间:2011-10-21 IBM Scott DelapOSGi 规范定义了绑 定包生命周期的基础架构和绑定包的交互方式。这些规则通过使用特殊 Java 类加载器来强制执行。在一 般 Java 应用程序中,CLASSPATH 中的所有类都对所有其他类可见。相反,OSGi 类加载器基于 OSGi 规 范和每个绑定包的 manifest.mf 文件中指定的选项(稍后将详细介绍)来限制类交互。 Eclipse IDE 使用围绕模块化和绑定包生命周期的一个 OSGi 子集。但是,它最低限 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |