2015-02-11 82 views
1

在声明性服务中,可以将组件(服务)配置策略设置为“REQUIRE”,以使其依赖于某个配置文件的存在。这意味着服务将不会创建,直到在配置管理中可以使用匹配的“pid”配置。OSGi声明性服务ConfigurationPolicy.REQUIRE等效于白羊座蓝图

蓝图中是否有类似的解决方案?

我试过托管服务工厂,但由于我只需要我的服务的一个实例,我不知道如何确保工厂只创建一个实例。

回答

0

我一直在寻找这个自己的答案,除了这个(非常古老的)问题外,没有发现任何东西!)。

我的解决办法是

  1. 创建configurationPolicy=REQUIRE
  2. 虚拟声明服务声明<reference ...'/>这个虚拟服务蓝图(制作蓝图等待,直到我的虚拟服务已启动。

通过这种方式,蓝图在相关配置存在之前不会完成其启动。感觉像是一些黑客,并且注册了无意义的服务。