On Aug 15, 2006, at 6:36 AM, Jeff Genender wrote:
Hey...back to the early part of this thread.
Why don't we want to continue to generate the object graph? I am
asking
that because if JAXB changes their code generation, etc, then we will
need to regenerate. Why would we want to store the object graph?
Do you mean like if JAXB changes in the next spec revision?
The persistence.xml file isn't so bad, but the other object graphs
are pretty unusable unless you refactor the heck out of them.
-David
David Blevins wrote:
On Aug 11, 2006, at 11:43 PM, Jeff Genender wrote:
Well...this time of year I prefer to use a Salmon...I'll let you
know ;-)
Nice choice.
Get your Salmon ready, I had to disable the main PersistenceDeployer
tests as OpenJPA's class enhancing tool tries to enhance
everything in
the persistence.xml file even if the unit belongs to another
provider,
so I commented out the FakePersistenceProvider unit as a workaround.
I'll raise the issue with them tomorrow and see if we can't get those
test back. We are using the PersistenceDeployer for the OpenJPA
tests,
obviously, so we're in good shape.
-David
David Blevins wrote:
On Aug 11, 2006, at 8:46 PM, Jeff Genender wrote:
Hehe...I was going there...thus the reason I asked JAXB vs
JAXB2...but I
didn't follow up ;-) Glad the solution bubbled itself up ;-)
I'm hacking your persistence deployer code apart. Feel free to
slap me
with a trout if you see something you don't like. Mostly just
abstracting and expanding.
-David
Jeff
David Blevins wrote:
On Jul 17, 2006, at 8:54 PM, Jeff Genender wrote:
JAXB or JAXB2?
David Blevins wrote:
I have the start of support for the EJB3 ejb-jar.xml worked
in using
JAXB. It's working great and the itests run, the only trick
is it
*only* supports ejb3 descriptors, i.e. you *must* have this at
the top
of your ejb-jar.xml
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" ...>
Using the previous namespace or using no namespace at all no
longer
works. This might be easy to solve, but I'm quite a JAXB
novice.
The namespace info comes from an annotation in a package-
info.java
class. Don't know if there is some other way to specify it or
override
the annotation.
Any know how we might do this?
Mr. Genender you totally read this email completely neglected to
mention
you found a solution to this problem in the persistence code you
wrote! :)
I just happened across this wile reworking it to not generate
each
time:
<snip>
// Create a filter to intercept events
PersistenceFilter xmlFilter = new
PersistenceFilter(xmlReader);
// Be sure the filter has the JAXB content handler
set (or
it wont
// work)
xmlFilter.setContentHandler(uh);
SAXSource source = new SAXSource(xmlFilter, new
InputSource(persistenceDescriptor));
[...]
// Inject the proper namespace
class PersistenceFilter extends XMLFilterImpl {
public PersistenceFilter(XMLReader arg0) {
super(arg0);
}
@Override
public void startElement(String arg0, String arg1, String
arg2,
Attributes arg3) throws SAXException {
super.startElement("http://java.sun.com/xml/ns/persistence",
arg1, arg2, arg3);
}
}
</snip>
This is totally going to work for our ejb-jar.xml parsing too.
I'm a happy man.
-David