OSGi激活方法回退



我想知道是否有可能创建从一种激活方法到另一种激活方式的回退?假设我有一个通过声明服务激活的捆绑包,但SCR没有安装在有问题的应用程序服务器上。是否可以同时拥有DeclarativeServices和Blueprint激活程序的捆绑包,并决定加载顺序?例如:我可以制作一个捆绑包并指定它应该由SCR加载(如果可用)吗?如果没有安装SCR,我可以指定蓝图吗?

如果您想使用SCR功能,并且您的捆绑包安装在没有SCR的应用程序服务器中,那么最简单的答案就是安装SCR。这是一个单独的小捆绑包,它是捆绑包的依赖项,就像你所依赖的包等一样

如果您真的无法安装SCR或依赖已经可用的SCR,那么您需要编写一个BundleActivator。这通常只有在非常低级别的"管道"类型的捆绑包中,或者在资源极度受限的设备上运行时才需要。

这是不可能的。我认为最好的做法是选择两者中的一个。如果您担心引入的其他依赖项,那么DS是更好的选择,因为它只需要一个捆绑包就可以工作。

最新更新