Platform: amd64, debian 10.4 "buster", java 11, karaf 4.2.9

I'm trying to load liquibase 3.10.1 from a feature, and liquibase-core
tries to find javax.activation.DataSource and fails with a
ClassNotFoundException[1].

The feature I'm trying to load, is liquibase-sample from [2] which in
turn loads feature liquibase-sample-hook from the same feature
repository. And in turn liquibase-sample-hook tries to load
liquibase-core from [3].

Feature liquibase-core from [3] is the one I'm trying to create a new
version of: I'm trying to upgrade my liquibase karaf feature[4] from
liquibase 3.8.0 to 3.10.1.

As far as I can tell the liquibase-core 3.10.1 manifest[5] does not
import javax.activation directly?  Is this the problem?

There is nothing in the liquibase 3.10.1 java source that references
javax.activation.DataSource, so I'm guessing the class has to come from
some transitive reference?

Does anyone know what to do to fix this?  Rebundling of liquibase-core?
Is there another way that doesn't involve changing liquibase-core
itself?

Perhaps the same "party trick" I'm using to redirect the liquibase
logging to the karaf log (instead of printing to the console)?  I.e
attaching a fragment to liquibase-core to get it "inside" the bundle.

What happens if I put a version of javax.activation inside a fragment
and attch it to liquibase-core?  Will it conflict with the version of
liquibase-core exposed by the servicemix version of javax.activation
used by karaf?

Thanks!

References:
 [1] <https://gist.github.com/steinarb/52290fca04c772f0fa76b8927125b9df>
 [2] <https://gist.github.com/steinarb/8e39910a0ef16068016c4dde4ff3cc95>
 [3] <https://gist.github.com/steinarb/a0780f69cddf3fbe2df7dcd93cbce4a1>
 [4] 
<https://github.com/steinarb/liquibase-karaf-feature#a-karaf-feature-for-liquibase-core>
 [5] <https://gist.github.com/steinarb/76bd466ba6a85885234287fe26c1b70a>

Reply via email to