我想用提供服务的自定义OSGi包扩展WSO2 ESB(v 4.7.0)。此捆绑包独立于任何Mediator,但根据当前环境(开发,测试等)需要不同的配置。因此,能够在捆绑包之外配置这些参数会很好,例如在属性文件中。
我找到了WSO2 Carbon的这种用例的以下链接,但这似乎在WSO2 ESB中不起作用:https://docs.wso2.com/display/Carbon420/Config+Files+for+Third+Party+JARs
是否有一种方法可以将属性存储在类路径中,该类路径将以某种方式附加到bundle上,如上面的链接所述。或者是否有可能以某种方式提供OSGi包的路径?
答案 0 :(得分:1)
在尝试遵循给定的doc(片段捆绑方法)时,您遇到了哪些问题?它应该适用于ESB,因为它基于Carbon。
作为替代方案,您可以将注册表保留在注册表中
https://docs.wso2.com/display/ESB481/Working+with+the+Registry
您可以通过管理控制台Web UI将配置文件上载到注册表,然后在捆绑包内部,您可以以编程方式访问注册表并读取文件/配置。 (但这可能对你的要求来说太过分了)
作为一种解决方法,如果您只是想找到ESB的位置来获取配置文件的路径(可能位于repository / conf中),您可以构建相对于bundle&#39的路径。 ;找到捆绑路径的位置。
MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath().toURI()
这将为您提供类似<esb-location>/repository/components/dropins/YourBundle.jar
的内容,基于您可以构建<esb-location>/repository/conf/
的路径。