動態內容管理

您通常會將軟體組列在特性資訊清單檔的 Subsystem-Content 標頭中,從而將它們安裝到執行時期環境中。 不過,您也可以將使用者撰寫的軟體組安裝成使用者撰寫的特性之 Subsystem-Content 的一部分,從而動態新增及移除 OSGi 軟體組。 使用者撰寫的軟體組會取得 OSGi 軟體組環境定義來安裝及控制其他軟體組。

安裝、啟動、停止和解除安裝 Liberty 中的軟體組

註: 在下列各節中,使用者撰寫的特性稱為 UserFeatureA,使用者撰寫的軟體組稱為 FeatureBundleA
安裝軟體組
您可以利用下列其中一個方法來撰寫 FeatureBundleA,以取得 OSGi 軟體組環境定義 org.osgi.framework.BundleContext
  • 實作 BundleActivator 介面 org.osgi.framework.BundleActivator。 OSGi 架構會傳入 start 方法的 BundleContext 參數,當啟動使用者撰寫的軟體組時,這個軟體組便可以使用它。 如需 BundleActivator 介面的相關資訊,請參閱開發含有簡式啟動的 OSGi 軟體組
  • 實作可用的規格,例如「OSGi 宣告式服務」或藍圖,以透過另一個方法或介面來提供軟體組環境定義的存取權。 如需相關資訊,請參閱利用 OSGi 宣告式服務來撰寫進階特性藍圖軟體組

FeatureBundleA 取得軟體組環境定義之後,可以利用 installBundle(String location)installBundle(String location, InputStream stream) 方法來安裝其他軟體組。

動態安裝的軟體組會在預設重新啟動時回復狀態。 在全新啟動之後,它們不會持續保存,需要重新安裝。 請參閱軟體組快取,以取得詳細資料。

啟動軟體組
如果您想要啟動已安裝的軟體組,進行安裝的軟體組 FeatureBundleA 負責呼叫該軟體組的 start 方法。
停止和解除安裝軟體組
如果從伺服器配置中移除使用者撰寫的特性 UserFeatureA,會停止並解除安裝 FeatureBundleA。 如果 FeatureBundleA 所安裝的軟體組還沒有解除安裝,解除安裝 FeatureBundleA 會觸發解除安裝所有這些軟體組。 這時會針對每個軟體組來呼叫 org.osgi.framework.Bundle.uninstall() 方法,這個方法會將軟體組停止並解除安裝。 如果用任何其他方法來解除安裝 FeatureBundleA,也適用這個解除安裝程序。

如果在伺服器停止時,從伺服器配置中移除 UserFeatureA,下一次啟動伺服器時,會移除 UserFeatureA 所安裝的軟體組。 如果軟體組的啟動層次預設值不曾修改,會在重新啟動這些軟體組之前,將它們移除。 如果已修改軟體組的啟動層次,這些軟體組可能要等到重新啟動之後才會移除。

其他生命週期管理作業是由 FeatureBundleA 根據 OSGi 核心規格,利用 org.osgi.framework.Bundleorg.osgi.framework.BundleContext 介面來執行。

Liberty 中的軟體組快取、套件可見性和程式設計模型支援

軟體組快取
當伺服器關機時,目前安裝的所有軟體組都會停止,OSGi meta 資料會持續保存在軟體組快取中。 在預設啟動時,這些已安裝的軟體組會回到它們先前的狀態。 在全新啟動時,FeatureBundleA 所安裝的任何軟體組都會刪除其持續資料。 因此,在全新啟動時,不會回復這些軟體組。 FeatureBundleA 本身則會回復,因為只要 UserFeatureA 仍在伺服器配置中,特性管理程式就會重新安裝它。 如果您想在全新啟動之後,重新安裝任何軟體組,FeatureBundleA 負責進行這項重新安裝。 您不會收到全新啟動的通知,但您可以利用 OSGi BundleContext getBundle(String location) 方法來檢查是否安裝了某個軟體組。
套件可見性
未列在特性資訊清單檔的 Subsystem-Content 標頭中的動態安裝軟體組,其可見性如下:
  • 動態安裝的軟體組可以匯入目前配置的特性集所提供的任何 API 和 SPI 套件。
  • 在相同產品延伸內,未宣告為 API 或 SPI 的其他軟體組所匯出的套件,動態安裝的軟體組無法看到它們。
  • 從動態安裝的軟體組匯出的套件無法宣告為 API 或 SPI。
  • 從動態安裝的軟體組匯出的套件,在匯入時,沒有任何限制。
程式設計模型支援
動態安裝的軟體組可以使用 OSGi 企業規格實作,但必須已配置適當的執行時期特性來啟用它們。

指示主題類型的圖示 參照主題



「時間戳記」圖示 前次更新: 2016 年 11 月 30 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwlp_dynamic_content
檔名:rwlp_dynamic_content.html