Hi Balazs,

Seems your concern is a little different from mine, since from my understanding 
you want to use part of one set of entities in several PUs, while I want to 
gather several sets of entities in one PU.
But I see it's still about the same idea.

You said you wrote your own OSGi JPA implementation. Did you use EclipseLink or 
Hibernate? Or both?
And does your implementation bring more dynamicity? Is it able to gather 
entities from different sources?
If it is, I would be glad to take a look at your code. Is it available 
somewhere?

Then you asked "How can we use multiple persistence unites by the same *-core 
bundle services?".
I don't really understand what you mean there...
Are you trying to use different PUs (that is different EMF services) in the 
same bundle?
Or do you want to publish different PUs from the same bundle (that is multiple 
"persistence-unit" tags in one persistence.xml)?

About Hibernate, you seem to imply it's working almost in the same way 
regarding dynamicity, but I think Hibernate have more support for creating PUs 
dynamically than EclipseLink (and I actually mean PUs, not entities). I would 
think it would be easier to pick the entities you need in each of your PU with 
Hibernate... Am I wrong?

-- Thomas

From: Balázs Zsoldos [mailto:[email protected]]
Sent: dimanche 24 juin 2012 17:03
To: Gillet Thomas (2)
Subject: Re: [osgi-dev] Dynamic persistence units

Hi,

I think you have similar issues as I have. We wanted also a collection of 
bundles that contain entity classes and several persistence units that use 
them. On the end our structure became (an example):
- Authorization Entity Bundle
- Authentication Entity Bundle
- Localization Entity Bundle
...
- Application A PU (Using Authorization, authentication, ...)
- Application B PU (Using Localization, Authorization...)

Our goal with this was that we can write helper methods to extend a JPA 
Criteria API with permission checks, localization resolving... In this case we 
have to use the same static metamodel classes from every *-core bundles.

I checked Gemini and Aries JPA. We used Aries JPA with eclipselink for a while 
however Aries JPA had some problems that it does not catch the redeployment of 
datasources and does not wait until DataSourceFactory bundles are available. In 
short in many cases the start order of the bundles mattered.

With Gemini JPA my problem is that we use JTA everywhere for transaction 
handling.

On the end I wrote my own OSGi JPA support bundle and released it as OSS. It is 
more or less usable.

The next question raised:
- How can we use multiple persistence unites by the same *-core bundle services?

I saw the subsystem and application possibilities of Aries but I think it would 
be like going back to WAR development.

On the end I specified what we need for a blueprint container to do. I planned 
to start to develop our own blueprint container in July and I hope I will 
finish fast :). Till that I dropped up the enhancements into the OSGi bugzilla 
so others can review and give ideas. It is available at 
https://www.osgi.org/bugzilla/show_bug.cgi?id=143

Well, I do not think in dynamic PU-s and dynamic entities. I would like to have 
a system where if I redeploy the PU or any of the entity bundles the PU uses 
all the dependent bundles will be restarted as well. In the example if I 
redeploy the Authorization entity both application PU bundles will redeploy 
while if I redeploy only localization entity bundle than only Applcation B will 
be redeployed.

After a while we moved away from EclipseLink and we moved to Hibernate as 
EclipseLink dies on more complex queries (generates wrong native SQL) but the 
logic is the same.

Regards,
Balazs Zsoldos
Software Architect
Mobile: +36-70/594-92-34

Everit Kft.
https://www.everit.biz<https://www.everit.biz/>

Everit OpenSource
http://everit.org


_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to