Hi Jarek, Tim,
with the release nearly out of the door (I hope saying this does not
incur any bad luck) it sounds to me like a good time to start looking
into the JPA & WAB issue that was left in a bit of a sway.
As mentioned by Tim scanning wabs for persistence.xml resources is
only a small bit of what needs to happen to make JPA work properly for
WABs. All of the support, say for annotation parsing, injecting JPA
resources in the servlets currently resides in the webcontainer
(Geronimo or otherwise). Seeing that what would be the level at which
the Geronimo webcontainer wants to reuse the Apache Aries JPA code?
From an orthogonality point of view, it would be nice IMHO if the
webcontainer were to look up required JPA resources (EntityManagers
and EntityManagerFactories) from the service registry and deals with
the servlet injection part, whereas the Apache Aries container would
deal with scanning persistence descriptors and creating the JPA
resources? Does that sound feasible / desirable?
Regards,
Valentin
On 1 Apr 2010, at 03:12, Timothy Ward wrote:
Hi Jarek,
I completely agree that this is something we want the Aries JPA
container to cover, but there are a number of issues when
considering WABs as persistence bundles. WABs are simply a special
type of WAR file, and WAR files already have well defined behaviour
when interacting with a JPA container. This behaviour includes
injection of JPA resources into servlets, and scanning of particular
locations for persistence descriptors. These behaviours are not
described in an OSGi environment, and do not directly map to the JPA
service specification. For example should a WAB have to specify a
Meta-Persitence header to be scanned or should it follow a Java EE
style extension policy?
I wanted to leave these decisions until after the OSGi Enterprise
Specification release (which was last week) so these issues could be
discussed on the list. I will be intermittently available until
April 21st, so I propose postponing further implementation
discussion until then.
To further clarify, I absolutely agree with the Geronimo use case,
and it has always been my intention for that to be a first-class
mechanism for using managed JPA in OSGi. I simply thought that it
would be better to get the "simple" situations into the first
release without tying our hands for the more difficult Java EE cases.
Regards,
Tim
Date: Mon, 29 Mar 2010 23:56:03 -0400
Subject: Re: JPA & WAB question
From: [email protected]
To: [email protected]
Valentin, Tim,
So because there is no integration for web container, the JPA
extender
is ignoring the WABs? If so, that seems weird. Just because there is
no integration, JPA shouldn't ignore the bundles. We might provide
that integration in Geronimo but we need the JPA extender to process
the persistence.xml resources. Unless of course I'm still missing or
misunderstanding something.
Jarek
On Mon, Mar 29, 2010 at 10:09 AM, Timothy Ward <[email protected]
> wrote:
Hi Jarek,
The JPA service specification does not cover any form of managed
JPA. The Aries JPA code is not an implementation of the JPA
service specification, but attempts to use concepts defined by
that specification to provide managed JPA in an OSGi environment.
This should hopefully feed back into future versions of the OSGi
service specification.
Currently, as Valentin points out, there is no integration
mechanism that we can use to plug the Aries JPA container into a
web container to provide injection into servlets. We felt it safer
to temporarily disable WAB persistence units in the Aries
container until such support was available. We also need to
consider the case where the web container already has JEE style
support for WAR persistence units.
I hope to be able to write a plugin for the Pax webcontainer to
demonstrate how integration can be supported through the existing
injection plugin (used by the blueprint integration layer). This
should not be a difficult task, and I would hope that porting the
code to other web containers is trivial. Once this support is
present I would have no issue with removing the restriction in the
Aries JPA container.
I too would like to hear your use case, as it should be useful in
driving further implementation of the JPA web container integration.
Regards,
Tim
----------------------------------------
From: [email protected]
To: [email protected]
Subject: Re: JPA & WAB question
Date: Fri, 26 Mar 2010 07:05:34 +0000
Hi Jarek,
that is correct, the OSGi JPA spec is agnostic of web bundles
altogether.
Now, in a servlet 2.5 webcontainer there are certain assumptions a
developer can make about how JPA works, including say injecting
persistence contexts. These we cannot satisfy from the Aries JPA
container. Instead this kind of support needs to be provided
chiefly
by the webcontainer. Hence, as an initial starting point Tim and I
have decided to explicitly exclude WABs from being handled by our
JPA
container. (Maybe the message should read "JPA support for WABs
is not
covered by the OSGi JPA specification" to be clearer?)
The plan is then hopefully to reuse bits of our JPA container
implementation to facilitate adding JPA functionality to any given
OSGi webcontainer. Have you got a use case in mind for Geronimo?
Regards,
Valentin
On 26 Mar 2010, at 04:50, Jarek Gawor wrote:
Hi,
The Aries OSGi JPA implementation claims that "WABs that use JPA
are
not supported as part of the OSGi JPA specification". I can't
find any
such text in the OSGi JPA spec. Does anybody know where that's
described or why that is?
Thanks,
Jarek
_________________________________________________________________
Tell us your greatest, weirdest and funniest Hotmail stories
http://clk.atdmt.com/UKM/go/195013117/direct/01/
_________________________________________________________________
Send us your Hotmail stories and be featured in our newsletter
http://clk.atdmt.com/UKM/go/195013117/direct/01/