Eclipse外掛開發系列一:Runtime 核心架構
阿新 • • 發佈:2019-01-22
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 CycleModules
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專案中。