在OSGi容器中使用具有不同数据源的Liquibase的多个应用程序

在OSGi容器中使用具有不同数据源的Liquibase的多个应用程序,osgi,liquibase,liquibase-hibernate,Osgi,Liquibase,Liquibase Hibernate,我通过bundle org.openengsb.labs.Liquibase.extender()在OSGi环境中使用Liquibase,它在org.openengsb.labs.Liquibase.cfg()中定义了数据源globaly 任何人都有为Liquibase使用不同数据源的多个捆绑包的经验吗?如果我是你,我只会在每个依赖项都可用时从组件以编程方式使用Liquibase。所谓依赖关系,我指的是由其他组件注册为OSGi服务的数据源服务。我还建议至少使用liquibase 3.5.0,因为

我通过bundle org.openengsb.labs.Liquibase.extender()在OSGi环境中使用Liquibase,它在org.openengsb.labs.Liquibase.cfg()中定义了数据源globaly


任何人都有为Liquibase使用不同数据源的多个捆绑包的经验吗?

如果我是你,我只会在每个依赖项都可用时从组件以编程方式使用Liquibase。所谓依赖关系,我指的是由其他组件注册为OSGi服务的数据源服务。我还建议至少使用liquibase 3.5.0,因为liquibase核心包含该版本的正确清单头,并且一些类加载器问题也得到了解决?我已经将其作为可能的解决方案进行了检查否,我的意思是使用声明性服务实现一个简单的组件,该组件等待数据源可用并调用“new Liquibase.update()”。或者,您可以使用ECM和Liquibase ECM组件,在Liquibase更新成功后重新注册数据源OSGi服务。见:和