Steinar Bang created KARAF-7843:
-----------------------------------

             Summary: It would be nice if the spifly feature was on a run-level 
other than the default
                 Key: KARAF-7843
                 URL: https://issues.apache.org/jira/browse/KARAF-7843
             Project: Karaf
          Issue Type: Bug
            Reporter: Steinar Bang


[Apache Aries SPI 
Fly|https://aries.apache.org/documentation/modules/spi-fly.html] helps 
translating SPI services into OSGi services.

SPI Fly looks for <Require-Capability> OSGi manifest headers and then tries to 
satisfy them with services found by scanning for <Provide-Capability> headers.

The Liquibase database migration tool is built around SPI services.

As an OSGi bundle it utilizes SPI Fly to spin up its SPI services by adding 
both a [<Provide-Capability> for the 
services|https://github.com/liquibase/liquibase/blob/master/liquibase-standard/pom.xml#L252]
 as well as a [<Require-Capability> for the same 
services|https://github.com/liquibase/liquibase/blob/master/liquibase-standard/pom.xml#L217]
 in the liquibase-core manifest file.

But all of the SPI services of liquibase needs to be running before liquibase 
is actually used and there is no way to know that all the required services 
have been started.

So to make liquibase available on the default run level 80 (where e.g. 
jdbc-config is running), liquibase and SPI Fly both has to be started on a 
lower run level (e.g. 40).

And the built-in spifly feature of karaf starts SPI Fly on run level 80 which 
is much too late for liquibase to make use of it (all SPI services will be 
started, but much too late).

So it would be good to have the spifly feature start the spifly bundle at a 
lower run level than the default.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to