FWIW, I would think #3 is a good option, but I don't think Felix has anything to support that (but I may be wrong).
On Wed, May 19, 2010 at 04:41, Jarek Gawor <[email protected]> wrote: > Hi all, > > I was looking into getting the runtime JPA entity enhancement for OSGi > applications working in Geronimo. With some modifications to the Aries > JPA code and some to Geronimo I was able to get runtime enhancement > working (using the java agent approach) but with one major issue: The > bundle that contains the persistence unit must be able to load some > persistence provider specific (in our case openjpa) classes. That's > because during the bytecode weaving, openjpa adds some openjpa > specific interfaces to the entity classes. So how should we deal with > this issue in Geronimo? > > 1) We could do nothing and just say we don't support runtime enhancement. > > 2) We could support runtime enhancement and require that bundles with > PU have DynamicImport-Package: * header. > > 3) Use framework "classloader hooks" to dynamically add imports for > the persistence provider specific packages to the bundles with PU . > That of course, would rely on framework specific extensions. I know > Equinox has such hooks and I think recently something similar was > added to Felix. > > 4) Provide some url handler, e.g. "jpa" which would enhance the entity > classes and add right imports during the install. Something similar to > the "webbundle" url handler for web application archives. Of course, > we would have to make sure the bundles with PU get installed via the > url handler. > > 5) Have some kind of an extender that would generate a fragment bundle > (with right persistence provider imports) and attach it to the bundle > with PU. Or something similar that would require manifest modification > or generation of additional bundle. > > Thoughts? > > Jarek > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ Open Source SOA http://fusesource.com
