美文网首页
无标题文章

无标题文章

作者: 小熊威尼的夏天 | 来源:发表于2016-07-12 13:20 被阅读0次

    Eclipse平台结构

    背景介绍

    Eclipse是一种通用的工具平台,本身是由IBM捐献并成立的Eclipse基金会的,所以IBM很多的产品线都是基于Eclipse平台的,如RTC,DS等产品.Eclipse的目标是能成为所有语言开发的IDE,之所以如此,得益于Eclipse体系结构中的插件机制。

    Eclipse目标

    1.支持各种应用开发工具的构建。
    2.支持无限的工具提供者,包括独立软件供应商(ISV)。
    3.支持可操做任意内容类型的工具 (例如,HTML、Java 、C、JSP、EJB、XML 和GIF )。
    4.能在各种操作系统下运行,包括Windows 和Linux 。
      Eclipse最大的特点是可扩展,为了实现这个特征,Eclipse采用了插件机制进行扩展,插件可以针对不同语言编程开发,不同业务逻辑进行服务。

    Eclipse插件特点

    1.插件是Eclipse 平台下最小的可单独开发和发布的功能单元。
    2.插件一般都是用Java 编写一个JAR 文件,里面包括了Java 代码、一些只读文件和 其他资源,如 Web 模板、消息目录和本地代码库等。有的插件甚至没有代码。例如,提供HTML 页面格式的在线帮助的插件。
    3.每个插件都有一个声明自身与其他插件的关联关系的清单文件。关联模型很简单:一个插件声明任意 个命名的扩展点,同时声明任意 个对其他插件的扩展点。
    4.插件的扩展点可以被其他插件扩展。例如,工作台插件给用户声明了一个扩展点首选项,任意插件通过定义该扩展点的扩展来添加自己的用户首选项。一个扩展点可能有一 个对应的应用程序接口。其他插件通过扩展该扩展点实现这个接口。所有的插件都可以定义新扩展点并为其他插件提供新的应用程序接口。

    Eclipse平台结构图

    Eclipse平台的核心是“Platform Runtime”,它是一个微内核,在微内核上也就是PR上进行插件扩展,其它所有的功能如日常的Workspace,Workbench等都是以插件的形式提供的。Workbench插件完成界面的外观显示, Workspace负责工作区资源的管理等,其中的示意图如下。


    结构解析

    1. 平台运行时:Platform Runtime 平台运行库是内核,它在启动时检查已安装了哪些插件,并创建关于它们的注册表信息。即在eclipse运行时发现和管理插件。为降低启动时间和资源使用,它在实际需要任何插件时才加载该插件。除了内核外,其他每样东西都是作为插件来实现的
    2. 工作空间:Workspace 工作区是负责管理用户资源的插件。这包括用户创建的项目、那些项目中的文件,以及文件变更和其他资源。工作区还负责通知其他插件关于资源变更的信息,比如文件创建、删除或更改。
      3.工作台:Workbench 工作台为Eclipse提供用户界面。它是使用标准窗口工具包(SWT)和一个更高级的 API(JFace)来构建的;SWT 是 Java 的 Swing/AWT GUI API 的非标准替代者,JFace 则建立在 SWT 基础上,提供用户界面组件。
      插件可以扮演双重角色,其他插件服务的使用者和其他插件服务的提供者

    启动流程

    Eclipse Paltform Runtime核心处理启动,搜索查找被安装在磁盘上的以插件形式存在的工具,匹配这些功能插件上扩展点所提供的扩展服务,构造全局的插件注册库,并能够缓存下次将用到的已注册的插件。Eclipse Platform启动之后,提供了一个基于插件的集成开发环境,用户可以在这个平台上开发新的插件完成更强大的功能或开发应用程序

    Platform Runtime(PR)

    Eclipse可以认为是一个PR+插件s,PR负责管理,发现,启动已经安装的插件,当用户选择了插件的功能,PR会负责载入和初始化插件。
      Eclipse平台运行时发现插件的过程如下:

    • Eclipse的PR在plugin.xml文件中查找插件的声明,每个plugin.xml文件都在各插件的子目录中,这些插件位于Eclipse 安装目录下名为plugins 的公共目录(Eclipse\plugins )。


    • Eclipse平台在启动这些文件的时候,在内存中构建全局注册表,通过全局注册表,给定的插件就可以运行时候确定其他哪些插件希望扩展。
    • 希望被其他插件扩展的插件都会声明一个扩展点。这是插件的某种“电源板”,通过 对插件声明扩展,其他插件就可以利用这个插件。通过事先确定可用的插件,并通过插件间信息交换而不激活它们,平台就可以为每个插件提供丰富的关于它运行的上下文的相关信息。

    Eclipse基础插件

    Eclipse的每个子系统本身是由某些关键功能的一组插件构建的。


    参考声明

     魏楚元, 李陶深, 张增芳. Eclipse:基于插件的下一代通用集成开发环境[J]. 计算机应用与软件, 2005, 22(6):38-40.    
     网上搜索资料

    相关文章

      网友评论

          本文标题:无标题文章

          本文链接:https://www.haomeiwen.com/subject/hqmfjttx.html