osgi蓝图捕获事件更新

osgi蓝图捕获事件更新,osgi,blueprint-osgi,Osgi,Blueprint Osgi,我希望在包更新、卸载或新建时执行脚本 我实际使用destroy方法和init方法,但我现在不知道我的包是否只有“stop”或“remove” 对于示例,我为什么要捕捉事件 更新我的捆绑包时: 我想知道旧版本和新版本,并执行脚本的条件 如果我的捆绑包被卸载: 我想放弃数据表 如果我的包裹是新的 我想创建数据表 什么是进行此类流程的正确方法?你能给我举个例子吗 谢谢如果是那样的话,我会选择性病激活剂。跳过使用blueprint xml,改用Bundle Activator,这样您就可以完全控制B

我希望在包更新、卸载或新建时执行脚本

我实际使用destroy方法和init方法,但我现在不知道我的包是否只有“stop”或“remove”


对于示例,我为什么要捕捉事件 更新我的捆绑包时:

  • 我想知道旧版本和新版本,并执行脚本的条件 如果我的捆绑包被卸载:
  • 我想放弃数据表 如果我的包裹是新的
  • 我想创建数据表
  • 什么是进行此类流程的正确方法?你能给我举个例子吗


    谢谢

    如果是那样的话,我会选择性病激活剂。跳过使用blueprint xml,改用Bundle Activator,这样您就可以完全控制Bundle启动行为

    谢谢你,阿希姆,我可以用BundleActivator,但我想用blueprint做同样的过程,用blueprint做不到。Blueprint不知道捆绑包的状态?当Blueprint extender启动时,捆绑包已经处于活动状态:-)您可以尝试使用init and destroy方法,这也可能有效。对于init,它被称为:init method,但init method的问题是,我不知道我的包是安装的还是激活的。我还想知道是否更新以检查旧版本和新版本。这是这里的主要问题,使用Blueprint和activator都无法控制它。当Bundle从已解析变为活动时,将使用激活器,此时您不知道Bundle是否已更新,或者只是在停止后简单启动。您可能需要一个特殊的包跟踪器之类的东西,它可以为您实现这一点。在这种情况下,您可能会找到信息。捆绑包本身不知道发生了什么:-)好的,我继续。在本机中使用blueprint是不可能做到这一点的。我必须创建一个bundle跟踪器并捕获事件。PS:还有3.0.0版的pax,发行版?谢谢阿希姆;-)
     <bean id="plugin" class="com.toto.OrderPlugin" destroy-method="remove" init-method="install">