【问题标题】:add external folder to OSGI bundle classpath将外部文件夹添加到 OSGI 包类路径
【发布时间】:2011-05-02 12:40:16
【问题描述】:

我需要在 OSGI 包中添加 L10N 支持。我想将所有资源属性放在包外的 conf/resource 文件夹中(以使它们在任何包中可见)。

是否可以选择将文件夹添加到 OSGI 包的类路径?

更新: 我看到 OSGI 建议在片段中添加资源包。

【问题讨论】:

    标签: localization classpath osgi glassfish-3


    【解决方案1】:

    您可以尝试以下方法之一:

    1. 将 l10n 资源放在它们自己的包中,并使用通常的 OSGi 依赖机制从其他包中访问它们。毕竟,这就是 OSGi 的用途。
    2. 将 l10n 资源放在它们自己的目录中,并让捆绑软件将它们作为文件读取。这意味着 l10n 资源不能作为包部署,并且您可能会遇到与 I/O 相关的权限问题。
    3. 如果只有一个bundle需要l10n个资源,这些资源确实可以打包成片段。片段是附加到主机捆绑包的捆绑包。您可以为每种语言/区域设置一个片段包,并且它们都将使用包作为主机。
    4. 如果您只需要本地化 OSGi 标头,这很容易;不过,我怀疑这是否是您所需要的。

    解决方案 1 绝对是保持 OSGi 精神的最佳方式。如果你问我,解决方案 2 很糟糕。如果每个包都可以独立本地化,则解决方案 3 很好。

    【讨论】:

    • 感谢您的详细回复!我选择解决方案 3,因为我有几个需要添加 L10N 资源的客户端,所以它们将位于单独的模块中。我会将它们放在单独的片段中,每个片段包含 1 个 l10n 资源以及所有受支持的语言环境。
    猜你喜欢
    • 1970-01-01
    • 2016-07-10
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    相关资源
    最近更新 更多