wsdl2java ignores jaxb2 xjc globalBindings with namespace xjc
-------------------------------------------------------------

                 Key: CXF-1620
                 URL: https://issues.apache.org/jira/browse/CXF-1620
             Project: CXF
          Issue Type: Bug
          Components: JAXB Databinding
    Affects Versions: 2.0.6
         Environment: CXF 2.0.6. Jaxb 2.0.5
            Reporter: Bob Fields


JAXB databindings work fine as shown in wsdl2java bindings documentation for 
customizing Date mapping. If I add the Jaxb2 specific customizations, they are 
ignored in xjc. Specifically, add jxb:version="2.0" 
jxb:extensionBindingPrefixes="xjc" 
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"; in the jaxws:bindings 
declaration, and use something like <xjc:serializable> <xjc:simple> 
<xjc:javaType adapter=""> in the jxb:globalBindings section. There's no error 
or anything, the xjc bindings are simply ignored.

One possibly related problem - if cxf-manifest.jar is in my environment 
classpath, Jaxb2 xjc customizations cause the xjc ant task to fail even when I 
set the classpath. I'm generating JAXB classes in a project unrelated to CXF 
using Jaxb 2.0.5 xjc jar. I have to remove the manifest jar from the classpath 
for xjc to work again.

We specifically need xjc:simple to avoid JAXBElement creations and to add 
@XmlRootElement where it would otherwise not appear. We also want xjc:javaType 
adapter="" because the jxb:javaType print/parse bindings create one Adapter 
class for each binding customization (not for each customization type), which 
can be several hundred in very large webservice projects.

A related improvement would be to add CXF DataTypeAdapter classes that extend 
javax.xml.bind.annotation.adapters.XmlAdapter<String, Date> with a marshal and 
unmarshal method, which looks like the generated AdapterX classes. I would 
suggest four classes for date, time, dateTime, and integer (replacing 
BigInteger with Integer).

A sample project showing JAXB customized datatype bindings for wsdl2java would 
be helpful too. If I get some time next week I'll create and submit one based 
on the wsdl2java samples, with a working jxb binding and an xjc binding that 
should work but doesn't. Unless this issue has already been noticed and is 
being worked on (I didn't see anything related in JIRA).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to