2011-05-02 116 views
2

我需要在OSGI包中添加L10N支持。我想將所有的資源屬性放在一個包之外的conf/resource文件夾中(使它們可以從任何包中看到)。將外部文件夾添加到OSGI包類路徑

是否有一個選項可以將文件夾添加到OSGI包的類路徑中?

Upd: 我看到OSGI建議在片段中添加資源包。

回答

1

你可以嘗試以下之一:

  1. 把本地化的資源在自己的包,並使用通常的OSGi的依賴機制,從其他捆訪問它們。畢竟,這就是OSGi應該如何使用的原因。
  2. 將l10n資源放在自己的目錄中,並讓這些軟件包將它們讀取爲文件。這意味着l10n資源不能作爲捆綁包進行部署,並且您可能會遇到與I/O相關的權限問題。
  3. 如果只有一個捆綁包需要l10n個資源,那麼這些資源確實可以被捆綁爲碎片。碎片是附加到主機捆綁的捆綁包。每種語言/語言環境可以有一個片段包,並且它們都將使用包作爲主機。
  4. 如果你只需要本地化OSGi頭文件,這很容易;我懷疑這是你需要的。

解決方案1絕對是去OSGi精神的方式。如果你問我,解決方案2是可怕的。解決方案3很好,如果每個包都可以獨立定位。

+0

感謝您的詳細回覆! 我參考瞭解決方案3,因爲我有幾個需要添加L10N資源的客戶端,因此它們將位於不同的模塊中。我會把它們放在單獨的片段中,每個片段包含1個具有所有支持的語言環境的l10n資源。 – lili 2011-05-08 12:25:04