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)