Hi: I will try that today.
It seems like this is an issue between Flyway and Logging library. Although, this error is not very clearly displayed, but I got this error, and it was a known issue of flyway and osgi. I will post back with results. On Fri, Aug 2, 2019 at 8:17 AM Jean-Baptiste Onofré <j...@nanthrax.net> wrote: > That's normal, a fragment can be started. > > By the bay, did you try a simple dynamic import (with the bundle) ? > > Regards > JB > > On 01/08/2019 09:00, Kushal Gautam wrote: > > Hi JB: > > > > I tried the configuration below, following the example > > ( > https://github.com/FlavioF/fabric8-osgi-flyway-example/blob/master/fabric8-osgi-flyway/pom.xml > ) > > > > <plugin> > > <groupId>org.apache.felix</groupId> > > <artifactId>maven-bundle-plugin</artifactId> > > <extensions>true</extensions> > > <configuration> > > <instructions> > > <Fragment-Host>org.flywaydb.core</Fragment-Host> > > <Export-Package> > > db.migration, > > com.example.db.migrations > > </Export-Package> > > <Import-Package> > > org.flywaydb.core.*, > > com.example.db.migrations.*, > > org.osgi.framework, > > com.h2database > > </Import-Package> > > </instructions> > > </configuration> > > <executions> > > <execution> > > <id>bundle-manifest</id> > > <phase>process-classes</phase> > > <goals> > > <goal>manifest</goal> > > </goals> > > </execution> > > </executions> > > </plugin> > > > > But, with this my bundle does not start > > > > Suppressed: java.lang.Exception: Error starting bundle 85: Fragment > > bundles can not be started. > > at > > > org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:67) > > ~[?:?] > > at > > > org.apache.karaf.bundle.command.BundlesCommand.execute(BundlesCommand.java:55) > > ~[?:?] > > at > > > org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:84) > > ~[?:?] > > at > > > org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68) > > ~[?:?] > > at > > > org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86) > > ~[?:?] > > at > > org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:571) ~[?:?] > > at > > org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:497) > > ~[?:?] > > at > > org.apache.felix.gogo.runtime.Closure.execute(Closure.java:386) ~[?:?] > > at > > org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:417) ~[?:?] > > at > > org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) ~[?:?] > > at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59) > > ~[?:?] > > at > > java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?] > > at > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > ~[?:?] > > at > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > ~[?:?] > > at java.lang.Thread.run(Thread.java:745) [?:?] > > Caused by: org.osgi.framework.BundleException: Fragment bundles > > can not be started. > > at > > org.apache.felix.framework.Felix.startBundle(Felix.java:1986) ~[?:?] > > at > > org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) ~[?:?] > > at > > org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:38) > ~[?:?] > > at > > > org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:65) > > ~[?:?] > > ... 14 more > > > > What exactly can I do here, to resolve this? > > > > Thank you. > > > > Regards, > > Cooshal. > > > > On Thu, Aug 1, 2019 at 6:40 AM Jean-Baptiste Onofré <j...@nanthrax.net > > <mailto:j...@nanthrax.net>> wrote: > > > > Yes, it's what I meant: you have to "gather" the classloaders. > > > > An option to add all flyway bundles as require bundle/private > package in > > your own bundle. Like this, all will be in your bundle classloader. > > > > Another option is to use fragment with your bundle as host (as a > > fragment is just resolved, only the host is started). > > > > Regards > > JB > > > > On 01/08/2019 06:36, Kushal Gautam wrote: > > > Hi JB: > > > > > > Thank you for your reply. > > > > > > I tried the options I could. > > > > > > For example, some suggested that this problem was resolved by using > > > Fragment-Host in maven-bundle-plugin as shown > > > > > here: > https://github.com/FlavioF/fabric8-osgi-flyway-example/blob/master/fabric8-osgi-flyway/pom.xml > > > > > > But, doing that, my bundle never started because it gives me > another > > > error saying: " ... cannot start the fragment host .... " > > > > > > I am totally clueless. > > > > > > Regards, > > > Cooshal. > > > > > > On Thu, Aug 1, 2019 at 6:23 AM Jean-Baptiste Onofré > > <j...@nanthrax.net <mailto:j...@nanthrax.net> > > > <mailto:j...@nanthrax.net <mailto:j...@nanthrax.net>>> wrote: > > > > > > Hi, > > > > > > NoClassDefFoundError is certainly due to a class (or several > > classes) in > > > different classloaders. > > > > > > I don't know Flyway, so I have to take a look how they load the > > > providers. It seems an issue in Flyway on OSGi. > > > > > > Regards > > > JB > > > > > > On 31/07/2019 22:45, Kushal Gautam wrote: > > > > Hi, > > > > > > > > I am trying to use Flyway in my Karaf instance. > > > > > > > > I have prepared a demo to reproduce the error that I have > > > encountered at > > > > https://github.com/cooshal/karaf-flyway. > > > > > > > > I am using a custom built karaf distribution. > > > > > > > > I have created two different modules inside db-migrations: > > > > 1. flyway provider which has implementations to carry out > flyway > > > migrations > > > > 2. karaf command, which invokes the implementation of flyway > > provider > > > > bundle. > > > > > > > > I tried following: > > > > > > > > karaf@root()> dbf:migrate > > > > Error executing command: java.lang.NoClassDefFoundError: > > Could not > > > > initialize class org.flywaydb.core.Flyway > > > > > > > > karaf@root()> log:tail > > > > 22:37:11.081 ERROR [Karaf local console user karaf] > > Exception caught > > > > while executing command > > > > java.util.concurrent.ExecutionException: > > > java.lang.NoClassDefFoundError: > > > > Could not initialize class org.flywaydb.core.Flyway > > > > at > > java.util.concurrent.FutureTask.report(FutureTask.java:122) > > > > ~[?:?] > > > > at > > > java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:?] > > > > at > > > > > > > > > > > org.apache.felix.gogo.runtime.CommandSessionImpl$JobImpl.run(CommandSessionImpl.java:829) > > > > ~[?:?] > > > > at > > > > > > > > > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > > > > ~[?:?] > > > > at > > > java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?] > > > > at > > > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > > > ~[?:?] > > > > at > > > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > > > ~[?:?] > > > > at java.lang.Thread.run(Thread.java:745) [?:?] > > > > Caused by: java.lang.NoClassDefFoundError: Could not > > initialize class > > > > org.flywaydb.core.Flyway > > > > at > > > > > > > > > > > com.example.db.migrations.FlywayDBMigrations.migrate(FlywayDBMigrations.java:16) > > > > ~[?:?] > > > > at > > > > > > > > > > > com.example.flyway.command.MigrateDatabaseCommand.execute(MigrateDatabaseCommand.java:20) > > > > ~[?:?] > > > > at > > > > > > > > > > > org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:84) > > > > ~[?:?] > > > > at > > > > > > > > > > > org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68) > > > > ~[?:?] > > > > at > > > > > > > > > > > org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86) > > > > ~[?:?] > > > > at > > > > > > org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:571) > > > ~[?:?] > > > > at > > > > > > > > > > org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:497) > > > > ~[?:?] > > > > at > > > > > > org.apache.felix.gogo.runtime.Closure.execute(Closure.java:386) > ~[?:?] > > > > at > > > org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:417) ~[?:?] > > > > at > > org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) > > > ~[?:?] > > > > at > org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59) > > > ~[?:?] > > > > ... 4 more > > > > > > > > I am getting this error from > > > > > > > > > > https://github.com/cooshal/karaf-flyway/tree/master/db-migrations/flyway-provider > > > > > > > > I also tried installing flyway-core bundle in Karaf, but it > > did not > > > > work. I got the same error. > > > > > > > > Do I need to configure some settings in the pom file of this > > project? > > > > > > > > > ( > https://github.com/cooshal/karaf-flyway/blob/master/db-migrations/flyway-provider/pom.xml > ) > > > > > > > > Any feedback would be very helpful. > > > > > > > > Regards, > > > > Cooshal. > > > > > > -- > > > Jean-Baptiste Onofré > > > jbono...@apache.org <mailto:jbono...@apache.org> > > <mailto:jbono...@apache.org <mailto:jbono...@apache.org>> > > > http://blog.nanthrax.net > > > Talend - http://www.talend.com > > > > > > > -- > > Jean-Baptiste Onofré > > jbono...@apache.org <mailto:jbono...@apache.org> > > http://blog.nanthrax.net > > Talend - http://www.talend.com > > > > -- > Jean-Baptiste Onofré > jbono...@apache.org > http://blog.nanthrax.net > Talend - http://www.talend.com >