您可以手動建立 Liberty 特性,將它安裝到 Liberty 中。
關於這項作業
特性可以由單一 OSGi 軟體組及一個特性資訊清單檔組成。
這個範例將程式庫提供給應用程式,使外部套件在預設的應用程式類別路徑中成為可見。透過將特性資訊清單複製到 ${wlp.user.dir}/extension/lib/features 目錄中,將 OSGi 軟體組複製到 ${wlp.user.dir}/extension/lib 目錄中,特性可以安裝在 Liberty 中。之後,您就可以使用 server.xml 檔中的特性。
如需特性資訊清單檔格式的詳細資料,請參閱Liberty 特性資訊清單檔。
這個範例說明如何手動建構 Liberty 特性。
或者,您也可以使用 WebSphere® Application Server Developer Tools。請參閱利用開發人員工具來建立 Liberty 特性。
程序
如果要手動建立 Liberty 特性,請完成下列步驟:
- 建立一個包含 Java™ 類別的 OSGi 軟體組,以及一個含有適當 OSGi 標頭的軟體組資訊清單檔;例如,匯出要向應用程式顯現的 Java 套件。Bundle-SymbolicName 是唯一必要的標頭;這個項目根據反向網域名稱慣例來指定軟體組的唯一 ID。
指定軟體組版本是一項良好的作法,在這個範例中,匯出部分 Java 套件供應用程式使用:
Bundle-SymbolicName: com.usr.samplebundle
Bundle-Version: 1.0.1
Export-Package: com.usr.samplebundle.pkg1; version="1.0.0", com.usr.samplebundle.pkg2; version="1.0.1"
- 利用 jar 指令來包裝 Java 類別及特性資訊清單檔。
例如:
jar cfm samplebundle.jar MANIFEST.Mf *.class
- 建立一個名稱為 feature-name.mf 的特性資訊清單檔,向執行時期環境說明這個特性。
- 提供必要的資訊清單標頭:
- Subsystem-SymbolicName,指定特性的身分和可見性;
- Subsystem-Content,找出構成特性的檔案;
- IBM-Feature-Version,識別執行時期環境需要支援哪個版本的特性。
- 最佳作法:新增選用的資訊清單標頭來指出子系統規格的適用版本 (Subsystem-ManifestVersion)、特性的版本 (Subsystem-Version),以及特性的簡稱 (IBM-ShortName)。
指定這些值可協助您在未來發展特性。
- 在 IBM-API-Package 標頭中,列出應用程式的預設類別載入器所要顯現的套件清單。
- 選擇性的: 當您建立 Liberty 特性時,您將它安裝在使用者產品延伸之中,安裝在使用者產品延伸中的任何其他特性,都能夠存取您的特性中的套件。
如果要將一或多個 SPI 套件提供給其他產品延伸中的特性,請將套件列在 IBM-SPI-Package 標頭中。
Subsystem-ManifestVersion: 1.0
Subsystem-SymbolicName: com.example.myfeature.sample-1.0; visibility:=public
Subsystem-Version: 1.0.0.qualifier
Subsystem-Type: osgi.subsystem.feature
Subsystem-Content: samplebundle; version="[1,1.0.100)"
IBM-Feature-Version: 2
IBM-API-Package: com.usr.samplebundle.pkg1; type="api",
com.usr.samplebundle.pkg2; type="api"
IBM-SPI-Package: com.sample.myservice.spi;IBM-ShortName: sample-1.0
- 將軟體組複製到 ${wlp.user.dir}/extension/lib 目錄中。
- 將特性資訊清單複製到 ${wlp.user.dir}/extension/lib/features 目錄中。
- 如果您已在特性資訊清單檔中定義 Subsystem-Name 和 Subsystem-Description 標頭,且已將值本地化,請將 Subsytem-Localization 標頭中指定的本地化檔案複製到 ${wlp.user.dir}/extension/lib/features/l10n 目錄中。
結果
特性安裝到 Liberty 之後,您可以新增特性名稱到
server.xml 檔內已配置的特性清單中。例如:
<featureManager>
<feature>usr:sample-1.0</feature>
</featureManager>