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

Localization 将外部文件夹添加到OSGI捆绑包类路径,localization,classpath,osgi,glassfish-3,Localization,Classpath,Osgi,Glassfish 3,我需要在OSGI捆绑包中添加L10N支持。我想将conf/resource文件夹中的所有资源属性放在bundle之外(以使它们在任何bundle中都可见) 是否有向OSGI包的类路径添加文件夹的选项 Upd: 我看到OSGI建议在片段中添加资源包 您可以尝试以下方法之一: 将l10n资源放在它们自己的捆绑包中,并使用通常的OSGi依赖机制从其他捆绑包访问它们。毕竟,OSGi就是这样使用的 将l10n资源放在它们自己的目录中,并让捆绑包将它们作为文件读取。这意味着l10n资源不能作为捆绑包部署,您

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

是否有向OSGI包的类路径添加文件夹的选项

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

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

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

  • 解决方案1绝对是遵循OSGi精神的最佳选择。如果你问我,解决方案2很糟糕。如果每个捆绑包都可以独立本地化,那么解决方案3很好。

    感谢您的详细回复!我选择解决方案3,因为我有几个客户端需要添加L10N资源,所以它们将位于不同的模块中。我将把它们放在不同的片段中,每个片段包含1个l10n资源和所有支持的区域设置。