Eclipse插件开发系列一:Runtime 内核架构

Rich Client Platform 的核心运行时是Eclipse平台的微内核

主要负责管理Eclipse的所有插件和Fragements。Eclipse3.0以后,Eclipse基于OSGi规范的轻量级实现Equinox 来构件核心运行时。核心架构图如下。
                Applications/Bundles(Plug-ins)

Eclipse Job Management   Extension Registry
    Service
    Service Registry                 Extensibility     Framework(Adaptor)  securtiy
    Life Cycle
    Modules
                         Execution Eviroment 

Execution  Environment
 Bundle/Plug-in 应用所倚赖运行的java执行环境。如J2SE-1.5CDC-1.0等都是可用的执行环境。

Modules 
模块层定义了 Bundle 应用的加载策略。OSGI框架是一个健壮并且严格定义的类加载模型。 OSGI基于Java技术。对于每个实现了 BundleActivator接口的Bunlde应用,为它生成一个单独的ClassLoader。使用Bundle应用的组织更加模块化。

Life Cycle 

生命周期层可以动态地对Bundle、Plug-in 进行安装、启动、停止。升级和卸载等操作。该层基于模块层,提供了一组API来控制Bundle应用的运行时操作

Service Registry 和Service

OSGI 服务层定义了一个集成在生命周期层中的动态协议模型,是一个发布、动态寻找、绑定的服务模型。一个服务通常是一个Java对象实现了特定的服务接口,并且通过服务注册,被绑定到OSGi的运行环境中。Bundle、Plug-in应用可以注册发布服务。动态绑定服务,并且在服务注册状态改变时。可以接收到事件消息等
Extension  Registry
Eclipse 认为Bundle、Plug-in之间存在两种关系:一种为依赖  一种为扩展(Extension)对于依赖。通过OSGI中元数据信息里添加需要引用插件即可实现。但是扩展OSGI中是没有定义。Eclipse采用了一个Extension Point 的方式来实现插件的扩展功能。ExtensionRegistry 作为一个注册的服务用于管理Eclipse插件的Extensions。 插件的更新组件在Eclipse 3.4 中已经基于Equinox P2重写了。Equinox P2 是一个新的、非常高级的配置系统。用于安装、搜素和管理Eclipse安装。并且比以前更新管理器更加容易使用

EclipseJob management
Eclipse对java 多线程机制的良好封装。Core Runtime 也是提供并发服务。


Extensibility Framework(Adaptor)
由于Eclipse3.0以前的版本的插件是没有采用OSGI的。所有equinox需要通过适配器的方式来实现与以往版本的兼容。同时适配器的使用使使Equinox osgi 的框架耦合性更低。更灵活,更有利于扩展。

Security
OSGi的安全管理是基于java2 安全体系的,贯穿在OSGi平台的所有层中,他能够对部署在OSGI运行环境中的bundle、plugin 应用进行详细的管理控制

EclipseRegistry 和EclipsejobManagement 的相关代码在 org.eclipse.core.runtime.osgi 项目中
而其他部分的则来自 org.eclipse.osgi项目中。




你可能感兴趣的:(eclipse,插件开发,Eclipseplugin)