Lukas , It looks like you missed my pom.xml changes…Once I applied those to your git version it worked again. I was unable to push the change to GitHub so here they are again.
> I reduced the maven-bundle-plugin to: > > <groupId>org.apache.felix</groupId> > <artifactId>maven-bundle-plugin</artifactId> > <extensions>true</extensions> > <configuration> > <!-- Do not generate that OBR file in the local maven cache --> > <obrRepository>NONE</obrRepository> > <instructions> > <_nouses>true</_nouses> > <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> > </instructions> > </configuration> FWIW… I am running OSX Catalina with Java-8. Erwin > On Feb 19, 2020, at 05:36, Roedl Lukas <lukas.ro...@ait.ac.at> wrote: > > @Erwin: Thanks for testing! > > I tried to reproduce and incorporated your proposed changes in > https://github.com/roedll/pax-jdbc-pre-hook-test/commit/1a427187148461da564326ceae36622c5f943e90 > > <https://github.com/roedll/pax-jdbc-pre-hook-test/commit/1a427187148461da564326ceae36622c5f943e90> > > But unfortunately I had no luck that the PreHook finally got called. > > Did you also change some other things? > > Best, > Lukas > > Von: Jean-Baptiste Onofré <j...@nanthrax.net <mailto:j...@nanthrax.net>> > Gesendet: Dienstag, 18. Februar 2020 20:02 > An: user@karaf.apache.org <mailto:user@karaf.apache.org> > Betreff: Re: Karaf 4.2.8-SNAPSHOT - pax-jdbc 1.4.4 - prehook not working > > Thanks for the update. I will investigate tomorrow. I will keep you posted. > > Regards > JB > > Le mar. 18 f?vr. 2020 ? 17:01, Erwin Hogeweg <erwin.hoge...@me.com > <mailto:erwin.hoge...@me.com>> a ?crit : > Lukas, > > I believe I have some success by copying configuration from my env. to the > prehook test. > > 2020-02-18T10:35:05,924 | INFO | features-3-thread-1 | PreHookTest > | 50 - prehook - 1.0.0.SNAPSHOT | Starting PreHookTest ... > 2020-02-18T10:35:05,928 | WARN | activator-1-thread-1 | SshUtils > | 38 - org.apache.karaf.shell.ssh - 4.2.8 | Configured cipher > 'aes256-ctr' not available > 2020-02-18T10:35:05,931 | INFO | features-3-thread-1 | ServiceTrackerHelper > | 16 - org.ops4j.pax.jdbc.config - 1.4.4 | Obtained service > dependency: > (&(objectClass=org.osgi.service.jdbc.DataSourceFactory)(osgi.jdbc.driver.name=sqlite)) > 2020-02-18T10:35:05,931 | WARN | activator-1-thread-1 | SshUtils > | 38 - org.apache.karaf.shell.ssh - 4.2.8 | Configured cipher > 'aes192-ctr' not available > 2020-02-18T10:35:05,932 | INFO | features-3-thread-1 | > DataSourceRegistration | 16 - org.ops4j.pax.jdbc.config - 1.4.4 | > Found DataSourceFactory. Creating DataSource prehook-test > 2020-02-18T10:35:05,953 | INFO | features-3-thread-1 | > DataSourceRegistration | 16 - org.ops4j.pax.jdbc.config - 1.4.4 | > Executing pre hook for DataSource prehook-test > 2020-02-18T10:35:05,953 | INFO | features-3-thread-1 | PreHookTest > | 50 - prehook - 1.0.0.SNAPSHOT | Called PreHookTest.prepare() ? > > I reduced the maven-bundle-plugin to: > > <groupId>org.apache.felix</groupId> > <artifactId>maven-bundle-plugin</artifactId> > <extensions>true</extensions> > <configuration> > <!-- Do not generate that OBR file in the local maven cache --> > <obrRepository>NONE</obrRepository> > <instructions> > <_nouses>true</_nouses> > <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> > </instructions> > </configuration> > > And I changed the component annotations to: > > @Component( > // scope = ServiceScope.SINGLETON, > immediate = true, > // service = PreHook.class, > property = "name=prehook-test-hook" > ) > public class PreHookTest implements PreHook { > ? > > I may have thrown away too much, but at least this is a good starting point. > > > Erwin > > > On Feb 17, 2020, at 13:55, Erwin Hogeweg <erwin.hoge...@me.com > <mailto:erwin.hoge...@me.com>> wrote: > > Lukas, > > I am currently on the road but I will try this ASAP. > > Kind Regards, > > Erwin > > El feb. 17, 2020, a la(s) 08:55, Roedl Lukas <lukas.ro...@ait.ac.at > <mailto:lukas.ro...@ait.ac.at>> escribi?: > > ? > Hi, > > We?ve similar problems with a Pax JDBC Pre Hook getting called. > I?ve prepared a minimal example on > https://github.com/roedll/pax-jdbc-pre-hook-test > <https://github.com/roedll/pax-jdbc-pre-hook-test> using SQLite to make it a > bit more concrete. > Apache Karaf 4.2.8 in combination with Pax JDBC 1.4.4 is used. > > The DataSource is specified in the file > ?org.ops4j.datasource-prehook-test.cfg? (see [1]) and without a PreHook > defined the DataSource is published as expected: > > dataSourceName = prehook-test > felix.fileinstall.filename = > file:/X:/pax-jdbc-pre-hook-test/framework/target/assembly/etc/org.ops4j.datasource-prehook-test.cfg > objectClass = [javax.sql.DataSource] > osgi.jdbc.driver.name = sqlite > osgi.jndi.service.name = prehook-test > pax.jdbc.managed = true > service.bundleid = 16 > service.factoryPid = org.ops4j.datasource > service.id <http://service.id/> = 88 > service.pid = org.ops4j.datasource.5a7b2e4b-4781-4b60-b707-74a48e210bda > service.scope = singleton > url = jdbc:sqlite:prehook-test.db > > With the PreHook specified (like ?ops4j.preHook=prehook-test-hook?) the last > log entry is ?Waiting for service dependency: > (&(objectClass=org.ops4j.pax.jdbc.hook.PreHook)(name=prehook-test-hook))? > event if the PreHook itself is started and active: > > Pax JDBC - Test - PreHook (21) provides: > ---------------------------------------- > component.id <http://component.id/> = 0 > component.name = at.roedll.pax.jdbc.pre.hook.test.PreHookTest > name = prehook-test-hook > objectClass = [org.ops4j.pax.jdbc.hook.PreHook] > service.bundleid = 21 > service.id <http://service.id/> = 75 > service.scope = bundle > > > Can someone which doesn?t have problems with this, please take a short look, > if there are some differences between the working configurations and this > example? > > Best, > Lukas > > > [1] > https://github.com/roedll/pax-jdbc-pre-hook-test/blob/master/framework/src/main/filtered-resources/etc/org.ops4j.datasource-prehook-test.cfg > > <https://github.com/roedll/pax-jdbc-pre-hook-test/blob/master/framework/src/main/filtered-resources/etc/org.ops4j.datasource-prehook-test.cfg> > > Von: Erwin Hogeweg <erwin.hoge...@me.com <mailto:erwin.hoge...@me.com>> > Gesendet: Donnerstag, 23. Januar 2020 22:40 > An: user@karaf.apache.org <mailto:user@karaf.apache.org> > Betreff: Re: Karaf 4.2.8-SNAPSHOT - pax-jdbc 1.4.4 - prehook not working > > Hi Alex, > > Below a similar sequence from my log. > > From your log it seems that the Derby DataSourceFactory is not resolved. I > remember that at some point I changed the driver.name entry in the config to > a driver.class entry. That is for a mySQL database though but but maybe? > > Another silly question: Is your datasource functional if you leave out the > preHook? > > Obtained service dependency: > (objectClass=org.ops4j.pax.jdbc.config.ConfigLoader) > Waiting for service dependency: > (objectClass=org.ops4j.pax.jdbc.config.ConfigLoader) > Waiting for service dependency: > (&(pool=*)(!(pax.jdbc.managed=true))(|(objectClass=javax.sql.DataSource)(objectClass=javax.sql.XADataSource))) > Waiting for service dependency: > (&(objectClass=org.ops4j.pax.jdbc.pool.common.PooledDataSourceFactory)(pool=dbcp2)(xa=false)) > Waiting for service dependency: > (&(objectClass=org.ops4j.pax.jdbc.pool.common.PooledDataSourceFactory)(pool=dbcp2)(xa=false)) > Obtained service dependency: > (&(objectClass=org.ops4j.pax.jdbc.pool.common.PooledDataSourceFactory)(pool=dbcp2)(xa=false)) > Obtained service dependency: > (&(objectClass=org.ops4j.pax.jdbc.hook.PreHook)(name=seegate)) > Obtained service dependency: > (&(objectClass=org.osgi.service.jdbc.DataSourceFactory)(osgi.jdbc.driver.class=com.mysql.jdbc.Driver)) > > > Cheers, > Erwin > > > On Jan 23, 2020, at 13:22, Alex Soto <alex.s...@envieta.com > <mailto:alex.s...@envieta.com>> wrote: > > Yes, the migration service is being registered: > > > Obtained service dependency: > (objectClass=org.ops4j.pax.jdbc.config.ConfigLoader) > Waiting for service dependency: > (objectClass=org.ops4j.pax.jdbc.config.ConfigLoader) > Waiting for service dependency: > (&(pool=*)(!(pax.jdbc.managed=true))(|(objectClass=javax.sql.DataSource)(objectClass=javax.sql.XADataSource))) > Obtained service dependency: > (&(objectClass=org.ops4j.pax.jdbc.hook.PreHook)(name=querierDB)) > Waiting for service dependency: > (&(objectClass=org.osgi.service.jdbc.DataSourceFactory)(osgi.jdbc.driver.name=derby)) > > > And > > service:list org.ops4j.pax.jdbc.hook.PreHook > [org.ops4j.pax.jdbc.hook.PreHook] > --------------------------------- > component.id <http://component.id/> = 29 > component.name = org.enquery.encryptedquery.querier.data.maint.Migration > name = querierDB > service.bundleid = 35 > service.id <http://service.id/> = 276 > service.scope = bundle > Provided by : > EncryptedQuery :: Querier :: Data (35) > Used by: > OPS4J Pax JDBC Config (210) > > Best regards, > Alex soto > > > > > On Jan 22, 2020, at 1:06 PM, Erwin Hogeweg <erwin.hoge...@me.com > <mailto:erwin.hoge...@me.com>> wrote: > > Just this week I upgraded from karaf-1.2.6 and pax-jdbc-1.3.1 to > karaf-1.2.8-SNAPSHOT and pax-jdbc-1.4.4 and I didn?t run into any issues. > > Stupid question, but can you confirm that the Migrator class is instantiated > and that the component is active? > > com.*.Migrator in bundle 129 > (db.init:1.0.0.SNAPSHOT_20200122-1230) enabled, 1 instance. > Id: 18, State:ACTIVE > > Initially I missed some Package-Imports on the migrator bundle which left the > component in the SATISFIED (I believe) state. After scrolling through the > logs I discovered a CNFE which pointed me in the right direction. > > Erwin > > > > On Jan 22, 2020, at 12:53, Alex Soto <alex.s...@envieta.com > <mailto:alex.s...@envieta.com>> wrote: > > I tested with Karaf 4.2.7 and various versions of Pax-JDBC. > The hook is not being called stating with Pax-JDBC 1.3.4. > > Something must have changed in Pax-JDBC 1.3.4 as everything else remains the > same in my tests. > > > Best regards, > Alex soto > > > > > On Jan 22, 2020, at 12:39 PM, Erwin Hogeweg <erwin.hoge...@me.com > <mailto:erwin.hoge...@me.com>> wrote: > > Ignore the different datasource names. I messed up the ?replace all? :-) > > > On Jan 22, 2020, at 12:36, Erwin Hogeweg <erwin.hoge...@me.com > <mailto:erwin.hoge...@me.com>> wrote: > > It seems to work for me with Karaf-4.2.8-SNAPSHOT and pax-jdbc-1.4.4. > > 12 ? Active ? 80 ? 1.4.4 ? OPS4J Pax JDBC Generic > Driver Extender > 13 ? Active ? 80 ? 1.4.4 ? OPS4J Pax JDBC Config > 14 ? Active ? 80 ? 1.4.4 ? OPS4J Pax JDBC Pooling > Support Base > > [features-2-thread-1] INFO > org.ops4j.pax.jdbc.config.impl.DataSourceRegistration - Found > DataSourceFactory. Creating DataSource jdbc/mydatasource > [features-2-thread-1] INFO > org.ops4j.pax.jdbc.config.impl.DataSourceRegistration - Executing pre hook > for DataSource jdbc/mydatasource > INFO 1/22/20 12:32 PM: liquibase: Successfully acquired change log lock > INFO 1/22/20 12:32 PM: liquibase: Reading from seegate.DATABASECHANGELOG > INFO 1/22/20 12:32 PM: liquibase: Successfully released change log lock > [features-2-thread-1] INFO > org.ops4j.pax.jdbc.config.impl.DataSourceRegistration - Pre hook finished. > Publishing DataSource jdbc/mydatasource > [features-2-thread-1] INFO > org.apache.aries.jpa.container.impl.DataSourceTracker - Found DataSource for > seegate.pu > osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/mydatasource) > > FWIW - I did change the exception handling in Migrator to better see when/if > the migration fails: > > @Override > public void prepare(DataSource ds) throwsSQLException { > try (Connection connection =ds.getConnection()) { > prepare(connection); > } catch (LiquibaseException e) { > LOG.error(e.getClass().getName() + ": " + e.getMessage()); > // throw new RuntimeException(e); > } > } > > > Cheers, > > Erwin > > > On Jan 22, 2020, at 11:11, Alex Soto <alex.s...@envieta.com > <mailto:alex.s...@envieta.com>> wrote: > > Same is happening to me, it works with Pax-JDBC 1.3.0, but not with Pax-JDBC > 1.4.0, which is the one included in Karaf 4.2.7. > > Best regards, > Alex soto > > > > > On Jan 20, 2020, at 9:10 AM, stefang <stefan.gue...@me.com > <mailto:stefan.gue...@me.com>> wrote: > > Hi, > > we are not able to run Christian's Example: > > https://github.com/cschneider/Karaf-Tutorial/blob/master/liquibase/service/src/main/java/net/lr/tutorial/db/service/Migrator.java > > <https://github.com/cschneider/Karaf-Tutorial/blob/master/liquibase/service/src/main/java/net/lr/tutorial/db/service/Migrator.java> > > > Must be something todo with pax-jdbc 1.4.4 (wich comes with 4.2.8) > > Karaf 4.2.6 (pax-jdbc 1.3.5)works fine. > > Stefan > > > > > > -- > Sent from: http://karaf.922171.n3.nabble.com/Karaf-User-f930749.html > <http://karaf.922171.n3.nabble.com/Karaf-User-f930749.html>