The last previous release of my liquibase karaf feature (for loading runtime dependencies into apache karaf) was November 19 2019, so there have been nearly 3 years since the last release
3.x versions after 3.8.0 first had OSGi issues, and then had problems when running on JVM >= 9. And the 4.x versions proved to be very hard to get working under OSGi.
Note that there are two things that one need to do when using liquibase 4.x under OSGi:
- Each OSGi bundle instantiating Liquibase Java classes need to require all capabilities provided by the liquibase-core OSGi bundle
- Each bundle Liquibase Java classes loads changelog files from, needs to include the changelog XSD file(s) used for XMLas a classpath resource with the path liquibase expects it to have
There’s a section in the README that outlines how to do both of these in a maven build that uses maven-bundle-plugin (Using liquibase from OSGi bundles).
There are some warnings about JSON and yaml parsers missing in the karaf.log, but that’s probably fixable by explicitly importing the packages containing those services in the OSGi bundle using them (Note: I haven’t done so yet but when I figure out how to do, I’m guessing it can be done with a change to the README, and not require a new release of the feature).