Hi Tim, thanks for your response. I end up with a solution using my own ManagePersistenceUnitInfoFactory and will have a look for changes within next aries jpa releases.
Regards, Marcel 2011/6/20 Timothy Ward <[email protected]>: > Hi, > > If the properties you are trying to set are configurable when the > EntityManager is created then you could pass them using > EMF#createEntityManager(Map props). There's also xml syntax for injecting > these with blueprint: > > <bean id="contextWithProps"> > <jpa:context property="em"> > <map> > <entry key="one" value="eins" /> > <entry key="two" value="zwo" /> > </map> > </jpa:context> > </bean> > > > If the properties you want to set can only be set at EntityManagerFactory > creation time then using your own ManagePersistenceUnitInfoFactory is a > pretty good idea (although it is a reasonably large amount of effort). > Subclassing/wrapping the existing implementation obviously risks you being > broken unexpectedly (it's not part of the API). > > Regards, > > Tim > > >> Date: Mon, 20 Jun 2011 16:31:02 +0200 >> Subject: Re: Attaching jpa persistence.xml via fragments to a persistence >> bundle >> From: [email protected] >> To: [email protected] >> >> Thank for you answers, >> >> so a usage of fragments failes.... I realy reluctant would create n >> (dbms) * m (jpa provider) * k (log level) * etc.... times bundles, >> with the same classes and just deversity persistence.xml. Do you have >> a best practice for me how to reference a persistence.xml (or just the >> provider specific properties) which is not part of my persistence >> bundle? >> Maybe using a selfwritten >> org.apache.aries.jpa.container.ManagedPersistenceUnitInfoFactory which >> has preconfigured properties/settings for a specific persistence unit >> and merges them? >> >> Regards, >> Marcel >> >> 2011/6/20 Timothy Ward <[email protected]>: >> > Hi, >> > >> > There is another much more important reason to use getEntry, the JPA >> > container processes persistence bundles as they are installed to prevent >> > any >> > classes being able to be loaded before the metadata can be parsed. We >> > then >> > immediately create an EntityManagerFactory as the bundle resolves. If >> > any >> > classes were to be loaded before we created the EntityManagerFactory >> > then it >> > would not be possible to load-time enhance the entity classes. >> > >> > Unfortunately there are no fragments attached when the bundle is in the >> > INSTALLED state. Using getResource() would cause the bundle to move to >> > RESOLVED which we don't want either. >> > >> > Regards, >> > >> > Tim >> > >> >> Subject: Re: Attaching jpa persistence.xml via fragments to a >> >> persistence >> >> bundle >> >> From: [email protected] >> >> Date: Mon, 20 Jun 2011 09:05:29 +0100 >> >> To: [email protected] >> >> >> >> Hi, >> >> >> >> getResource does something very different from getEntry. getResource >> >> uses >> >> the Bundle-Classpath so it doesn't guarantee to return >> >> META-INF/persistence.xml rooted in the bundle. That is why getResource >> >> is >> >> not used. >> >> >> >> I don't know why fragments aren't processed, other people in the list >> >> can, >> >> I'm sure, explain why. >> >> >> >> Alasdair Nottingham >> >> >> >> On 20 Jun 2011, at 07:56, Marcel Hanser >> >> <[email protected]> wrote: >> >> >> >> > Hi, >> >> > >> >> > i would like to attach a persistence.xml, or more percise parts of >> >> > it, >> >> > to my jpa persistence bundle, since the concrete provider and DBMS >> >> > configuration should be chooseable without modify the persistence >> >> > bundle. >> >> > I scanned a the aries jpa code and found the >> >> > org.apache.aries.jpa.container.ManagedPersistenceUnitInfoFactory >> >> > plug-in point and also the >> >> > >> >> > >> >> > org.apache.aries.jpa.container.impl.PersistenceBundleHelper.locateFile(Bundle, >> >> > String) method. And now im wondering why using >> >> > bundle.getEntry(String) >> >> > instead of bundle.getResource(String). Since fragments are not >> >> > scanned >> >> > when using bundle.getEntry(String). >> >> > So is there already a way for doing that and i just missed it? >> >> > >> >> > Thanks in advance. >> >> > >> >> > Marcel Hanser >> > >
