JPA Container - Unexpected EntityManagerFactory Service Registration

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

JPA Container - Unexpected EntityManagerFactory Service Registration

Erwin Hogeweg
Hi,

I am seeing a strange (wildly confusing) service registration when using the Aries JPA Container with Equinox. Not sure where the problem is, so I figured I start here.

When the DataSource and the PersistenceProvider are available the container registers the EntityMangerFactory* services. However, the EntityManagerFactoryBuilder Service shows up as being registered by the container bundle while the EntityMangerFactory Services shows up as being registered by the bundle that provides the persistence unit.

g! b 53
org.apache.aries.jpa.container_2.3.0 [53]
  Id=53, Status=ACTIVE      Data Root=...
  "Registered Services"
    {org.osgi.framework.hooks.weaving.WeavingHook}=...
    {org.osgi.service.cm.ManagedService}=...
    {org.osgi.service.jpa.EntityManagerFactoryBuilder}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=119, service.bundleid=53, service.scope=singleton}
  Services in use:
    {javax.sql.DataSource}=...
    {javax.persistence.spi.PersistenceProvider}=...

g! b 111
com.my.model_4.1.0.SNAPSHOT_20170104-2222 [111]
  Id=111, Status=ACTIVE      Data Root=/Users/erwin/.../org.eclipse.osgi/111/data
  "Registered Services"
    {javax.persistence.EntityManagerFactory}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=125, service.bundleid=111, service.scope=singleton}
  No services in use.

This is with equinox 3.10.2.v20150203-1939, J8.

BTW, I see the same thing happening with the mysql and the pax-jdbc-config bundles. The DataSourceFactory service shows as being registered by the mysql bundle, while it is actually registered by the config bundle.

What am I missing here? Is this a feature, a bug, or is my brain not flexible enough to comprehend this? 


Thanks,

Erwin
Reply | Threaded
Open this post in threaded view
|

Re: JPA Container - Unexpected EntityManagerFactory Service Registration

Christian Schneider
That might be a bug. I think jpa container should register both EntityManagerFactoryBuilder and EntityManagerFactory in the name of the persistence bundle.
Can you open an issue for this?

Christian

2017-01-05 14:31 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Hi,

I am seeing a strange (wildly confusing) service registration when using the Aries JPA Container with Equinox. Not sure where the problem is, so I figured I start here.

When the DataSource and the PersistenceProvider are available the container registers the EntityMangerFactory* services. However, the EntityManagerFactoryBuilder Service shows up as being registered by the container bundle while the EntityMangerFactory Services shows up as being registered by the bundle that provides the persistence unit.

g! b 53
org.apache.aries.jpa.container_2.3.0 [53]
  Id=53, Status=ACTIVE      Data Root=...
  "Registered Services"
    {org.osgi.framework.hooks.weaving.WeavingHook}=...
    {org.osgi.service.cm.ManagedService}=...
    {org.osgi.service.jpa.EntityManagerFactoryBuilder}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=119, service.bundleid=53, service.scope=singleton}
  Services in use:
    {javax.sql.DataSource}=...
    {javax.persistence.spi.PersistenceProvider}=...

g! b 111
com.my.model_4.1.0.SNAPSHOT_20170104-2222 [111]
  Id=111, Status=ACTIVE      Data Root=/Users/erwin/.../org.eclipse.osgi/111/data
  "Registered Services"
    {javax.persistence.EntityManagerFactory}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=125, service.bundleid=111, service.scope=singleton}
  No services in use.

This is with equinox 3.10.2.v20150203-1939, J8.

BTW, I see the same thing happening with the mysql and the pax-jdbc-config bundles. The DataSourceFactory service shows as being registered by the mysql bundle, while it is actually registered by the config bundle.

What am I missing here? Is this a feature, a bug, or is my brain not flexible enough to comprehend this? 


Thanks,

Erwin



--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com
Reply | Threaded
Open this post in threaded view
|

Re: JPA Container - Unexpected EntityManagerFactory Service Registration

Erwin Hogeweg
Christian,

On Jan 6, 2017, at 2:22 AM, Christian Schneider <[hidden email]> wrote:

That might be a bug. I think jpa container should register both EntityManagerFactoryBuilder and EntityManagerFactory in the name of the persistence bundle.
Can you open an issue for this?

Sure: https://issues.apache.org/jira/browse/ARIES-1652

Do you want me to open a separate one for the pax-jdbc-config bundle? I believe that bundle has the same author(s)…

Erwin
Christian

2017-01-05 14:31 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Hi,

I am seeing a strange (wildly confusing) service registration when using the Aries JPA Container with Equinox. Not sure where the problem is, so I figured I start here.

When the DataSource and the PersistenceProvider are available the container registers the EntityMangerFactory* services. However, the EntityManagerFactoryBuilder Service shows up as being registered by the container bundle while the EntityMangerFactory Services shows up as being registered by the bundle that provides the persistence unit.

g! b 53
org.apache.aries.jpa.container_2.3.0 [53]
  Id=53, Status=ACTIVE      Data Root=...
  "Registered Services"
    {org.osgi.framework.hooks.weaving.WeavingHook}=...
    {org.osgi.service.cm.ManagedService}=...
    {org.osgi.service.jpa.EntityManagerFactoryBuilder}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=119, service.bundleid=53, service.scope=singleton}
  Services in use:
    {javax.sql.DataSource}=...
    {javax.persistence.spi.PersistenceProvider}=...

g! b 111
com.my.model_4.1.0.SNAPSHOT_20170104-2222 [111]
  Id=111, Status=ACTIVE      Data Root=/Users/erwin/.../org.eclipse.osgi/111/data
  "Registered Services"
    {javax.persistence.EntityManagerFactory}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=125, service.bundleid=111, service.scope=singleton}
  No services in use.

This is with equinox 3.10.2.v20150203-1939, J8.

BTW, I see the same thing happening with the mysql and the pax-jdbc-config bundles. The DataSourceFactory service shows as being registered by the mysql bundle, while it is actually registered by the config bundle.

What am I missing here? Is this a feature, a bug, or is my brain not flexible enough to comprehend this? 


Thanks,

Erwin



--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply | Threaded
Open this post in threaded view
|

Re: JPA Container - Unexpected EntityManagerFactory Service Registration

Christian Schneider
I think the behaviour of pax-jdbc is correct. It should register the DSF in the name of the jdbc provider bundle.

Christian

2017-01-06 13:52 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Christian,

On Jan 6, 2017, at 2:22 AM, Christian Schneider <[hidden email]> wrote:

That might be a bug. I think jpa container should register both EntityManagerFactoryBuilder and EntityManagerFactory in the name of the persistence bundle.
Can you open an issue for this?

Sure: https://issues.apache.org/jira/browse/ARIES-1652

Do you want me to open a separate one for the pax-jdbc-config bundle? I believe that bundle has the same author(s)…

Erwin
Christian

2017-01-05 14:31 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Hi,

I am seeing a strange (wildly confusing) service registration when using the Aries JPA Container with Equinox. Not sure where the problem is, so I figured I start here.

When the DataSource and the PersistenceProvider are available the container registers the EntityMangerFactory* services. However, the EntityManagerFactoryBuilder Service shows up as being registered by the container bundle while the EntityMangerFactory Services shows up as being registered by the bundle that provides the persistence unit.

g! b 53
org.apache.aries.jpa.container_2.3.0 [53]
  Id=53, Status=ACTIVE      Data Root=...
  "Registered Services"
    {org.osgi.framework.hooks.weaving.WeavingHook}=...
    {org.osgi.service.cm.ManagedService}=...
    {org.osgi.service.jpa.EntityManagerFactoryBuilder}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=119, service.bundleid=53, service.scope=singleton}
  Services in use:
    {javax.sql.DataSource}=...
    {javax.persistence.spi.PersistenceProvider}=...

g! b 111
com.my.model_4.1.0.SNAPSHOT_20170104-2222 [111]
  Id=111, Status=ACTIVE      Data Root=/Users/erwin/.../org.eclipse.osgi/111/data
  "Registered Services"
    {javax.persistence.EntityManagerFactory}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=125, service.bundleid=111, service.scope=singleton}
  No services in use.

This is with equinox 3.10.2.v20150203-1939, J8.

BTW, I see the same thing happening with the mysql and the pax-jdbc-config bundles. The DataSourceFactory service shows as being registered by the mysql bundle, while it is actually registered by the config bundle.

What am I missing here? Is this a feature, a bug, or is my brain not flexible enough to comprehend this? 


Thanks,

Erwin



--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com




--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com
Reply | Threaded
Open this post in threaded view
|

Re: JPA Container - Unexpected EntityManagerFactory Service Registration

Erwin Hogeweg
Thanks,

I can see the reasoning. That is confusing though. I thought that the MySQL driver now registered the DSF, just like the h2 bundle, so I removed the pax-jdbc bundles... after which the MySQL bundle did NOT 'register' the DSF anymore :-)

Erwin
 
El ene. 6, 2017, a las 10:30, Christian Schneider <[hidden email]> escribió:

I think the behaviour of pax-jdbc is correct. It should register the DSF in the name of the jdbc provider bundle.

Christian

2017-01-06 13:52 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Christian,

On Jan 6, 2017, at 2:22 AM, Christian Schneider <[hidden email]> wrote:

That might be a bug. I think jpa container should register both EntityManagerFactoryBuilder and EntityManagerFactory in the name of the persistence bundle.
Can you open an issue for this?

Sure: https://issues.apache.org/jira/browse/ARIES-1652

Do you want me to open a separate one for the pax-jdbc-config bundle? I believe that bundle has the same author(s)…

Erwin
Christian

2017-01-05 14:31 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Hi,

I am seeing a strange (wildly confusing) service registration when using the Aries JPA Container with Equinox. Not sure where the problem is, so I figured I start here.

When the DataSource and the PersistenceProvider are available the container registers the EntityMangerFactory* services. However, the EntityManagerFactoryBuilder Service shows up as being registered by the container bundle while the EntityMangerFactory Services shows up as being registered by the bundle that provides the persistence unit.

g! b 53
org.apache.aries.jpa.container_2.3.0 [53]
  Id=53, Status=ACTIVE      Data Root=...
  "Registered Services"
    {org.osgi.framework.hooks.weaving.WeavingHook}=...
    {org.osgi.service.cm.ManagedService}=...
    {org.osgi.service.jpa.EntityManagerFactoryBuilder}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=119, service.bundleid=53, service.scope=singleton}
  Services in use:
    {javax.sql.DataSource}=...
    {javax.persistence.spi.PersistenceProvider}=...

g! b 111
com.my.model_4.1.0.SNAPSHOT_20170104-2222 [111]
  Id=111, Status=ACTIVE      Data Root=/Users/erwin/.../org.eclipse.osgi/111/data
  "Registered Services"
    {javax.persistence.EntityManagerFactory}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=125, service.bundleid=111, service.scope=singleton}
  No services in use.

This is with equinox 3.10.2.v20150203-1939, J8.

BTW, I see the same thing happening with the mysql and the pax-jdbc-config bundles. The DataSourceFactory service shows as being registered by the mysql bundle, while it is actually registered by the config bundle.

What am I missing here? Is this a feature, a bug, or is my brain not flexible enough to comprehend this? 


Thanks,

Erwin



--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com




--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com
Reply | Threaded
Open this post in threaded view
|

Re: JPA Container - Unexpected EntityManagerFactory Service Registration

Christian Schneider
I think the mysql driver indeed registers the DSF. You might need to provide the bundle for the DataSourceFactory api though. Can you try that?

Christian

2017-01-06 18:18 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Thanks,

I can see the reasoning. That is confusing though. I thought that the MySQL driver now registered the DSF, just like the h2 bundle, so I removed the pax-jdbc bundles... after which the MySQL bundle did NOT 'register' the DSF anymore :-)

Erwin
 
El ene. 6, 2017, a las 10:30, Christian Schneider <[hidden email]> escribió:

I think the behaviour of pax-jdbc is correct. It should register the DSF in the name of the jdbc provider bundle.

Christian

2017-01-06 13:52 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Christian,

On Jan 6, 2017, at 2:22 AM, Christian Schneider <[hidden email]> wrote:

That might be a bug. I think jpa container should register both EntityManagerFactoryBuilder and EntityManagerFactory in the name of the persistence bundle.
Can you open an issue for this?

Sure: https://issues.apache.org/jira/browse/ARIES-1652

Do you want me to open a separate one for the pax-jdbc-config bundle? I believe that bundle has the same author(s)…

Erwin
Christian

2017-01-05 14:31 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Hi,

I am seeing a strange (wildly confusing) service registration when using the Aries JPA Container with Equinox. Not sure where the problem is, so I figured I start here.

When the DataSource and the PersistenceProvider are available the container registers the EntityMangerFactory* services. However, the EntityManagerFactoryBuilder Service shows up as being registered by the container bundle while the EntityMangerFactory Services shows up as being registered by the bundle that provides the persistence unit.

g! b 53
org.apache.aries.jpa.container_2.3.0 [53]
  Id=53, Status=ACTIVE      Data Root=...
  "Registered Services"
    {org.osgi.framework.hooks.weaving.WeavingHook}=...
    {org.osgi.service.cm.ManagedService}=...
    {org.osgi.service.jpa.EntityManagerFactoryBuilder}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=119, service.bundleid=53, service.scope=singleton}
  Services in use:
    {javax.sql.DataSource}=...
    {javax.persistence.spi.PersistenceProvider}=...

g! b 111
com.my.model_4.1.0.SNAPSHOT_20170104-2222 [111]
  Id=111, Status=ACTIVE      Data Root=/Users/erwin/.../org.eclipse.osgi/111/data
  "Registered Services"
    {javax.persistence.EntityManagerFactory}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=125, service.bundleid=111, service.scope=singleton}
  No services in use.

This is with equinox 3.10.2.v20150203-1939, J8.

BTW, I see the same thing happening with the mysql and the pax-jdbc-config bundles. The DataSourceFactory service shows as being registered by the mysql bundle, while it is actually registered by the config bundle.

What am I missing here? Is this a feature, a bug, or is my brain not flexible enough to comprehend this? 


Thanks,

Erwin



--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com




--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com



--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com
Reply | Threaded
Open this post in threaded view
|

Re: JPA Container - Unexpected EntityManagerFactory Service Registration

Erwin Hogeweg
Christian,

Thanks.

I think the mysql driver indeed registers the DSF. You might need to provide the bundle for the DataSourceFactory api though. Can you try that?
The DataSourceFactory is exported by the enterprise bundle (Ugh, I didn’t really write that… that shouldn’t even be in my runtime).

g! packages org.osgi.service.jdbc
osgi.wiring.package; bundle-symbolic-name="osgi.enterprise"; bundle-version:Version="5.0.0.201203141834"; version:Version="1.0.0"; osgi.wiring.package="org.osgi.service.jdbc"; uses:="javax.sql"<osgi.enterprise_5.0.0.201203141834 [7]>
  org.apache.aries.jpa.container_2.3.0 [51] imports
  org.ops4j.pax.jdbc.pool.common_0.9.0 [60] imports
  org.ops4j.pax.jdbc.pool.dbcp2_0.9.0 [58] imports
  org.ops4j.pax.jdbc.config_0.9.0 [59] imports
  org.ops4j.pax.jdbc_0.9.0 [57] imports

I also don’t see that package imported by the mysql bundle.

Erwin


Christian

2017-01-06 18:18 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Thanks,

I can see the reasoning. That is confusing though. I thought that the MySQL driver now registered the DSF, just like the h2 bundle, so I removed the pax-jdbc bundles... after which the MySQL bundle did NOT 'register' the DSF anymore :-)

Erwin
 
El ene. 6, 2017, a las 10:30, Christian Schneider <[hidden email]> escribió:

I think the behaviour of pax-jdbc is correct. It should register the DSF in the name of the jdbc provider bundle.

Christian

2017-01-06 13:52 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Christian,

On Jan 6, 2017, at 2:22 AM, Christian Schneider <[hidden email]> wrote:

That might be a bug. I think jpa container should register both EntityManagerFactoryBuilder and EntityManagerFactory in the name of the persistence bundle.
Can you open an issue for this?

Sure: https://issues.apache.org/jira/browse/ARIES-1652

Do you want me to open a separate one for the pax-jdbc-config bundle? I believe that bundle has the same author(s)…

Erwin
Christian

2017-01-05 14:31 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Hi,

I am seeing a strange (wildly confusing) service registration when using the Aries JPA Container with Equinox. Not sure where the problem is, so I figured I start here.

When the DataSource and the PersistenceProvider are available the container registers the EntityMangerFactory* services. However, the EntityManagerFactoryBuilder Service shows up as being registered by the container bundle while the EntityMangerFactory Services shows up as being registered by the bundle that provides the persistence unit.

g! b 53
org.apache.aries.jpa.container_2.3.0 [53]
  Id=53, Status=ACTIVE      Data Root=...
  "Registered Services"
    {org.osgi.framework.hooks.weaving.WeavingHook}=...
    {org.osgi.service.cm.ManagedService}=...
    {org.osgi.service.jpa.EntityManagerFactoryBuilder}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=119, service.bundleid=53, service.scope=singleton}
  Services in use:
    {javax.sql.DataSource}=...
    {javax.persistence.spi.PersistenceProvider}=...

g! b 111
com.my.model_4.1.0.SNAPSHOT_20170104-2222 [111]
  Id=111, Status=ACTIVE      Data Root=/Users/erwin/.../org.eclipse.osgi/111/data
  "Registered Services"
    {javax.persistence.EntityManagerFactory}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=125, service.bundleid=111, service.scope=singleton}
  No services in use.

This is with equinox 3.10.2.v20150203-1939, J8.

BTW, I see the same thing happening with the mysql and the pax-jdbc-config bundles. The DataSourceFactory service shows as being registered by the mysql bundle, while it is actually registered by the config bundle.

What am I missing here? Is this a feature, a bug, or is my brain not flexible enough to comprehend this? 


Thanks,

Erwin



--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com




--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com



--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply | Threaded
Open this post in threaded view
|

Re: JPA Container - Unexpected EntityManagerFactory Service Registration

Christian Schneider
Yes you are right. The mysql bundle does not create the DSF. So you still need pax-jdbc-mysql.

Christian

On 09.01.2017 18:30, Erwin Hogeweg wrote:
Christian,

Thanks.

I think the mysql driver indeed registers the DSF. You might need to provide the bundle for the DataSourceFactory api though. Can you try that?
The DataSourceFactory is exported by the enterprise bundle (Ugh, I didn’t really write that… that shouldn’t even be in my runtime).

g! packages org.osgi.service.jdbc
osgi.wiring.package; bundle-symbolic-name="osgi.enterprise"; bundle-version:Version="5.0.0.201203141834"; version:Version="1.0.0"; osgi.wiring.package="org.osgi.service.jdbc"; uses:="javax.sql"<osgi.enterprise_5.0.0.201203141834 [7]>
  org.apache.aries.jpa.container_2.3.0 [51] imports
  org.ops4j.pax.jdbc.pool.common_0.9.0 [60] imports
  org.ops4j.pax.jdbc.pool.dbcp2_0.9.0 [58] imports
  org.ops4j.pax.jdbc.config_0.9.0 [59] imports
  org.ops4j.pax.jdbc_0.9.0 [57] imports

I also don’t see that package imported by the mysql bundle.

Erwin


Christian

2017-01-06 18:18 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Thanks,

I can see the reasoning. That is confusing though. I thought that the MySQL driver now registered the DSF, just like the h2 bundle, so I removed the pax-jdbc bundles... after which the MySQL bundle did NOT 'register' the DSF anymore :-)

Erwin
 
El ene. 6, 2017, a las 10:30, Christian Schneider <[hidden email]> escribió:

I think the behaviour of pax-jdbc is correct. It should register the DSF in the name of the jdbc provider bundle.

Christian

2017-01-06 13:52 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Christian,

On Jan 6, 2017, at 2:22 AM, Christian Schneider <[hidden email]> wrote:

That might be a bug. I think jpa container should register both EntityManagerFactoryBuilder and EntityManagerFactory in the name of the persistence bundle.
Can you open an issue for this?

Sure: https://issues.apache.org/jira/browse/ARIES-1652

Do you want me to open a separate one for the pax-jdbc-config bundle? I believe that bundle has the same author(s)…

Erwin
Christian

2017-01-05 14:31 GMT+01:00 Erwin Hogeweg <[hidden email]>:
Hi,

I am seeing a strange (wildly confusing) service registration when using the Aries JPA Container with Equinox. Not sure where the problem is, so I figured I start here.

When the DataSource and the PersistenceProvider are available the container registers the EntityMangerFactory* services. However, the EntityManagerFactoryBuilder Service shows up as being registered by the container bundle while the EntityMangerFactory Services shows up as being registered by the bundle that provides the persistence unit.

g! b 53
org.apache.aries.jpa.container_2.3.0 [53]
  Id=53, Status=ACTIVE      Data Root=...
  "Registered Services"
    {org.osgi.framework.hooks.weaving.WeavingHook}=...
    {org.osgi.service.cm.ManagedService}=...
    {org.osgi.service.jpa.EntityManagerFactoryBuilder}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=119, service.bundleid=53, service.scope=singleton}
  Services in use:
    {javax.sql.DataSource}=...
    {javax.persistence.spi.PersistenceProvider}=...

g! b 111
com.my.model_4.1.0.SNAPSHOT_20170104-2222 [111]
  Id=111, Status=ACTIVE      Data Root=/Users/erwin/.../org.eclipse.osgi/111/data
  "Registered Services"
    {javax.persistence.EntityManagerFactory}={osgi.unit.version=4.1.0.SNAPSHOT_20170104-2222, osgi.unit.name=my.pu, osgi.unit.provider=org.eclipse.persistence.jpa.PersistenceProvider, service.id=125, service.bundleid=111, service.scope=singleton}
  No services in use.

This is with equinox 3.10.2.v20150203-1939, J8.

BTW, I see the same thing happening with the mysql and the pax-jdbc-config bundles. The DataSourceFactory service shows as being registered by the mysql bundle, while it is actually registered by the config bundle.

What am I missing here? Is this a feature, a bug, or is my brain not flexible enough to comprehend this? 


Thanks,

Erwin



--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com




--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com



--
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com



-- 
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com