>>>>> Steinar Bang <[email protected]>: > One other workaround could have been running everything at run-level 80 > and have a component depending on the SPI services of liquibase. The > problem with that, however, is that the services have cardinality > multiple, so there is no way for a component to know when they are > finished starting.
> I'm still thinking, but I take all ideas, and suggestions. Another workaround turned out to be to downgrade liquibase's SPI Fly to 1.3.6. Then shiro-core pulls in SPI Fly 1.3.7 on run-level 80 and liquibase start the SPI Fly 1.3.6 bundle on run-level 40. Then I get this: karaf@root()> bundle:list -t 35 | grep -i spi 88 │ Active │ 40 │ 1.3.6 │ Apache Aries SPI Fly Dynamic Weaving Bundle 196 │ Active │ 80 │ 1.3.7 │ Apache Aries SPI Fly Dynamic Weaving Bundle karaf@root()> But other than that things seems to be working perfectly. I have removed <Require-Capability> from my liquibase-using bundles, because the liquibase-core bundle itself has <Require-Capability> https://github.com/liquibase/liquibase/blob/master/liquibase-standard/pom.xml#L252 matching its <Provide-Capability> https://github.com/liquibase/liquibase/blob/master/liquibase-standard/pom.xml#L217 It just needs an SPI Fly at the run level it is started on to make them all available... But I would be happier if I could make it just be SPI Fly 1.3.7... So, @JB...? Is there a way to "force" the run level for a particular bundle?
