從 V3.0 開始,Eclipse 通過選擇開放服務網關協議(Open Services Gateway Initiative,OSGi)來替換先前版本中不穩定的 Eclipse 外掛程式技術,從而實現了一次巨大飛躍。這次轉變對於使用者來說幾乎是透明的,因為現在所使用的外掛程式的安裝和操作看上去和以前的外掛程式沒有什麼不同。
圖 1. Eclipse 內的外掛程式
由於 Eclipse 現在是在 OSGi 上構建的,因此我們在圖 1 中看到的外掛程式是功能完整的 OSGi 包。(圖 2 顯示了使用 OSGi 控制台運行 Eclipse 執行個體內的包。)通過使用 OSGi,Eclipse 支援業內認可的開放標準並且現在可以利用 OSGi 提供的功能,包括安全性、HTTP 服務、使用者管理和其他功能。Eclipse 對 OSGi 的使用已經見到成效,因為我們看到外掛程式間報告的衝突在減少而 Eclipse 的應用在持續增加。
圖 2. Eclipse 內的 OSGi 包
Eclipse、Equinox、OSGi,天哪!
OSGi Alliance 是一個獨立的、非盈利性組織,負責 OSGi 技術,類似於 Eclipse Foundation 的職能。OSGi Alliance 負責制定描述 OSGi 技術的規範。簡言之,OSGI 技術為應用程式開發提供了一種面向服務的基於組件的平台。各種實現都是基於這些規範的。最常見的一個實現是 Equinox,它是 Eclipse 的規範實現。OSGi 的另一個常見實現是 Apache 的 Felix 項目。
在我們繼續之前,本文假定您具有 Eclipse 和 OSGi 方面的工作經驗。如果不具備的話,建議先閱讀 Scott Delap 的文章 “瞭解 Eclipse 外掛程式如何使用 OSGi”,然後再來研究 OSGi 控制台。
建立 OSGi 包
這次冒險的第一步是使用 外掛程式開發環境(Plug-in Development Environment,PDE)在 Eclipse 中建立一個簡單的 OSGi 包。為此,需要使用 PDE 建立一個新的外掛程式項目(File > New > Project > Plug-in Project)。在建立新的外掛程式項目的過程中,確保設定正確的選項。首先,選擇外掛程式目標平台作為 OSGi Framework,具體來說就是 Equinox。最後,為了簡短起見,使用 PDE 提供的 Hello OSGi Bundle 模板(參見圖 3)。我們現在建立好了將在本文中使用的包。
圖 3. PDE Hello OSGi bundle 嚮導