OSGi激活方法回退

OSGi激活方法回退,osgi,blueprint-osgi,declarative-services,Osgi,Blueprint Osgi,Declarative Services,我想知道是否有可能创建一个从一个激活方法到另一个激活方法的回退? 假设我有一个通过声明性服务激活的包,但是SCR没有安装在相关的应用服务器上。是否可以同时拥有声明性服务和Blueprint Activator的捆绑包,并决定加载顺序? 例如:我可以制作一个捆绑包并指定它应该由SCR加载(如果可用)吗?如果没有安装SCR,我可以指定蓝图吗?这是不可能的。我认为最好的做法是选择其中一种。如果您担心引入的其他依赖项,那么DS是更好的选择,因为它只需要一个bundle即可工作。这是不可能的。我认为最好的

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

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

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

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


如果您确实无法安装SCR或依赖已有的SCR,则需要编写一个
BundleActivator
。这通常仅在非常低级别的“管道”类型捆绑包或在资源极度有限的设备上运行时才需要。

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


如果您确实无法安装SCR或依赖已有的SCR,则需要编写一个
BundleActivator
。这通常仅在非常低级别的“管道”类型捆绑包中或在资源极其有限的设备上运行时才有必要。

如果未安装Blueprint怎么办?要么寻找激活器,要么放弃?:)因此,如果您非常关心安装一个以上的bundle(SCR),那么只需编写一个
BundleActivator
。但这是一个奇怪的问题。事实上,原因是我正在编写一套捆绑包,需要安装在几个应用服务器上,而我无法控制这些服务器。我喜欢声明式服务,以及它们带来的灵活性和易用性,但它们不适用于我需要安装的任何地方,我不能只安装它。所以我一直在寻找一种折衷的方法,这可能从来都不是一个好主意:)然后,如果Blueprint没有安装呢?要么寻找激活器,要么放弃?:)因此,如果您非常关心安装一个以上的bundle(SCR),那么只需编写一个
BundleActivator
。但这是一个奇怪的问题。事实上,原因是我正在编写一套捆绑包,需要安装在几个应用服务器上,而我无法控制这些服务器。我喜欢声明式服务,以及它们带来的灵活性和易用性,但它们不适用于我需要安装的任何地方,我不能只安装它。所以我一直在寻找一种折衷的方法,这可能从来都不是一个好主意:)好吧,在我的例子中,我不能只安装额外的包,我需要寻找最低的公分母?好吧,那我就这么做。谢谢:)好的,在我的情况下,我不能只安装额外的包,我需要寻找最低的公分母?好吧,那我就这么做。谢谢:)