Did you run into anything that became the type JAXBElement<String>?
That was my big issue with JAXB2. OK, this is at best loosely
related, but... I used XFire on a WSDL and some of the String
properties that I would have expected to see as setFoo(String) became
setFoo(JAXBElement<String>) which was really annoying to work with.
Dan said there was at least a workaround for JAXB 2.1 I think.
Thanks,
Aaron
On 6/26/07, Dain Sundstrom <[EMAIL PROTECTED]> wrote:
I just committed the last changes to convert our old Castor tree to
Jaxb2, and the resulting code is wonderful. Take a look if you have
some time org.apache.openejb.config.sys. Here are some notes on the
conversion:
* I started with a generated codebase using the following command:
$ ls
activation.jar jaxb-api.jar jaxb-impl.jar jaxb-
xjc.jar jsr173_1.0_api.jar
$ java -jar jaxb-xjc.jar openejb.xsd
* The generated classes are very clean and easy to modify by hand as
they don't have any generated marshaling logic. This does mean that
the startup is a bit slower due to the need to generate this at
runtime, but our schemas are tiny.
* Most of the elements in the OpenEJB tree implement the Service
interface, and actually have the same implementation code. I was
able to create (extract) an AbstractService that each of services
extend. Inheritance just worked... no magic.
* I was able to convert the String "content" property in our services
directly to a Properties object at marshall time with the
PropertiesAdapter I wrote. Jaxb has a very clean properties adapter
system that lets you convert any type the XML system understands to a
non-annotated java type.
BTW, hats off to the Castor team! Castor carried us for a long time,
and Jaxb2 was vastly influenced by the Castor team (it is effectly
Castor 2.0).
-dain