Description
Apache Aries SPI Fly 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 as well as a <Require-Capability> for the same services 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 start level 80 (where e.g. jdbc-config is running), liquibase and SPI Fly both has to be started on a lower start level (e.g. 40).
And the built-in spifly feature of karaf starts SPI Fly on start 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 start level than the default.