>>>>> 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?

Alternatively: is there a way to set the run level of a feature you
depend on?

If so, then my liquibase feature could just depend on the karaf spifly
feature and set its run-level to be 40.

And I could simplify the liquibase-karaf-feature even more.


Reply via email to