On Feb 8, 2006, at 11:32 PM, David Blevins wrote:
Do you have a jira account? I'll add you to the OpenEJB jira.
Yes, my codehaus Jira id is "andrus".
Do you guys have any sort of tests cases for JPA yet?
No. The plan is to develop them in parallel with the implementation
code.
Also, somewhat unrelated, what do you do for reading in deployment
descriptors? OpenEJB used to use Castor XML, then we switched to
XMLBeans in Geronimo.
I was thinking maybe JAXB2. One of the first steps will be reading
in a persistence.xml so we can pull out the JPA PersistenceProvider
and create those PersistenceUnitInfo thingies.
Is that something you'd want to work on?
Believe it or not Cayenne is using good old SAX API. Wasn't fun to
write the parser (not that we had much choice in 2001), but it works
and it is very fast. This time around I would go with something more
fancy. JAXB is probably a good option (IIRC it doesn't require extra
runtime jars - this is a big plus for the container-less JPA operation).
BTW, persistence.xml is pretty trivial (and doesn't seem to have a
schema in the spec), so a hand-parser would work fine. But the entity-
mapping.xml is much more involved.
I can work on that. Since this is the code we would want to reuse
across OpenEJB/Geronimo/Cayenne, we need a separate subproject that
builds a separate small jar. The question is where do we put it
(package name-wise and physical repository). I suggest
"org.objectstyle.cayenne.jpa" and a subproject on codehaus (or I can
set up a repository on ObjectStyle.org).
I am not yet fully clear on the practical distinctions of the
PersistenceProvider operation within container compared to
standalone, but the plan is that cayenne-jpa.jar will be a full
standalone provider (that includes .par bootstrapping code), and
OpenEJB can extend some of its classes to do container-specific
tricks (and use it as a default provider if needed).
Does it make sense?
If so I will start on the parsing code and provider placeholder.
Andrus