>>>>> Steinar Bang <[email protected]>:

> Is there a feature in karaf 4.4.6 that starts spi fly 1.3.7?
> If so: which one?

The feature is called (surprisingly): "spifly"
 
https://github.com/apache/karaf/blob/main/assemblies/features/specs/src/main/feature/feature.xml#L31

> And is it loaded by other features,

The spifly feature is loaded/required by two other features
 groovy (which I'm pretty sure I don't load):
  
https://github.com/apache/karaf/blob/main/assemblies/features/specs/src/main/feature/feature.xml#L154

 cdi (which I'm probably loading through something else?)
  
https://github.com/apache/karaf/blob/main/assemblies/features/specs/src/main/feature/feature.xml#L134

cdi is not, as far as I can tell, loaded by any other features in karaf.

The shiro-core feature of shiro loads the spifly feature:
 
https://github.com/apache/shiro/blob/main/support/features/src/main/resources/features.xml#L25

And the shiro-core feature I do load (probably pretty high up my feature 
dependency tree...?):
 
https://github.com/steinarb/authservice/blob/master/authservice/authservice.web.security.dbrealm/src/main/feature/feature.xml#L9

So...? Is there a way to, so to speak, force the run-level of a
particular bundle that is already loaded by a feature?

Or any other way to end up with a spifly running at run-level 40?
 
(why do I want it to run at run-level 40: I want to load liquibase-core
and have SPI Fly do its work, before trying to use liquibase at
run-level 80. Doesn't have to be 40, that's just an arbitrary pick on my
behalf. But it has to be lower than 80).

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.

Right now SPI Fly at run-level 80 eventually spin up all liquibase
services (I can see them running bundle:services on the liquibase-core
bundle), but too late (liquibase setup has already failed because the
services weren't available whe needed).

I guess I could lobby shiro to start SPI Fly at run-level 40...? (but I
can see it if their response is "But why???" :-) )

Reply via email to