Hi Tim, Thanks for your reply. I’ll give that a try.
Erwin > On Dec 30, 2016, at 13:50, Tim Ward <[email protected]> wrote: > > David is right, > > there is a bug in the packaging of the Aries local transaction control > service implementation. You should just be able to use the XA implementation > (which also supports local transactions) instead, or you can wait for a fix > in the snapshots, which will likely appear in the new year. > > Tim > > Sent from my iPhone > > On 30 Dec 2016, at 17:24, David Jencks <[email protected] > <mailto:[email protected]>> wrote: > >> My guess is that the bundle providing the TransactionControl service doesn’t >> say so by having a Provide-Capability header for it. For runtime resolution >> the effectice=active requirements don’t matter but for at last subsystem >> resolution they do. >> >> david jencks >> >>> On Dec 30, 2016, at 6:08 AM, Erwin Hogeweg <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Hi, >>> >>> I am having problems getting a feature working with the TransactionControl >>> Service under Karaf. The error msg suggests that the service is missing or >>> not active, but I am at a loss of why. >>> >>> This is the error: >>> [caused by: Unable to resolve >>> com.my.persistence.repositories/1.0.0.SNAPSHOT_20161227-1454: missing >>> requirement [com.my.persistence.repositories/1.0.0.SNAPSHOT_20161227-1454] >>> osgi.service; >>> filter:="(objectClass=org.osgi.service.transaction.control.TransactionControl)"; >>> effective:=active]] >>> >>> I have a DSF: >>> [org.osgi.service.jdbc.DataSourceFactory] >>> ----------------------------------------- >>> osgi.jdbc.driver.class = com.mysql.jdbc.Driver >>> osgi.jdbc.driver.name = mysql >>> service.id = 255 >>> service.bundleid = 162 >>> service.scope = singleton >>> Provided by : >>> OPS4J Pax JDBC MySQL Driver Adapter (162) >>> Used by: >>> OSGi Transaction Control JPA Resource Provider - Local Transactions (114) >>> >>> I have a TransactionControl service: >>> [org.osgi.service.transaction.control.TransactionControl] >>> --------------------------------------------------------- >>> service.vendor = Apache Aries >>> service.description = The Apache Aries Transaction Control Service for >>> Local Transactions >>> osgi.local.enabled = true >>> service.id = 206 >>> service.bundleid = 113 >>> service.scope = singleton >>> Provided by : >>> OSGi Transaction Control Service - Local Transactions (113) >>> >>> TransactionControl bundles appear to be running correctly: >>> OSGi Transaction Control Service - Local Transactions (113) provides: >>> --------------------------------------------------------------------- >>> [org.osgi.service.transaction.control.TransactionControl] >>> >>> OSGi Transaction Control JPA Resource Provider - Local Transactions (114) >>> uses: >>> ------------------------------------------------------------------------------- >>> [javax.persistence.spi.PersistenceProvider] >>> [org.osgi.service.jpa.EntityManagerFactoryBuilder] >>> [org.osgi.service.jdbc.DataSourceFactory] >>> >>> OSGi Transaction Control JPA Resource Provider - Local Transactions (114) >>> provides: >>> ----------------------------------------------------------------------------------- >>> osgi.local.enabled = true >>> objectClass = >>> [org.osgi.service.transaction.control.jpa.JPAEntityManagerProviderFactory] >>> service.id = 207 >>> service.bundleid = 114 >>> service.scope = bundle >>> ---- >>> service.pid = org.apache.aries.tx.control.jpa.local >>> objectClass = [org.osgi.service.cm.ManagedServiceFactory] >>> service.id = 209 >>> service.bundleid = 114 >>> service.scope = singleton >>> ---- >>> service.pid = >>> org.apache.aries.tx.control.jpa.local.adaeed20-19cf-4dff-9276-0afc20052ecc >>> user = db_user >>> url = jdbc:mysql://localhost:3306/my_db <mysql://localhost:3306/my_db> >>> service.factoryPid = org.apache.aries.tx.control.jpa.local >>> osgi.unit.name = my.pu >>> osgi.jdbc.driver.class = com.mysql.jdbc.Driver >>> felix.fileinstall.filename = >>> file:<…>/apache-karaf-4.0.7/etc/org.apache.aries.tx.control.jpa.local-.cfg >>> databaseName = my_db >>> objectClass = >>> [org.osgi.service.transaction.control.jpa.JPAEntityManagerProvider] >>> service.id = 256 >>> service.bundleid = 114 >>> service.scope = singleton >>> >>> >>> FWIW, transactionControl resolves just fine in a ‘stand-alone’ equinox >>> framework: >>> >>> g! bundle 89 >>> com.my.persistence.repositories_1.0.0.SNAPSHOT_20161227-1454 [89] >>> ... >>> Services in use: >>> ... >>> >>> {org.osgi.service.transaction.control.TransactionControl}={service.vendor=Apache >>> Aries, service.description=The Apache Aries Transaction Control Service >>> for Local Transactions, osgi.local.enabled=true, service.id=70, >>> service.bundleid=51, service.scope=singleton} >>> >>> Does anyone have a suggestion as of what I am missing? >>> >>> >>> Thanks and a Happy new Year, >>> >>> Erwin >>> >>
