将外部文件夹添加到OSGI包类路径

时间:2011-05-02 12:40:17

标签: localization classpath osgi glassfish-3

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

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

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

1 个答案:

答案 0 :(得分:1)

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

  1. 将l10n资源放在他们自己的bundle中,并使用通常的OSGi依赖机制从其他bundle访问它们。毕竟,这就是OSGi的用途。
  2. 将l10n资源放在他们自己的目录中,让捆绑包将它们作为文件读取。这意味着l10n资源无法作为捆绑包部署,并且您可能遇到与I / O相关的权限问题。
  3. 如果只有一个bundle需要l10n个资源,那么资源确实可以捆绑为片段。片段是附加到主机包的分发包。每个语言/区域设置可以有一个片段包,并且所有这些都将使用包作为主机。
  4. 如果您只需要本地化OSGi标题,那么它非常简单;我怀疑这是你需要的。
  5. 解决方案1绝对是继续保持OSGi精神的方式。如果你问我,解决方案2很糟糕。如果每个捆绑包可以独立定位,那么解决方案3很不错。