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
