[ https://issues.apache.org/jira/browse/CXFXJC-44?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andriy Redko updated CXFXJC-44: ------------------------------- Fix Version/s: 3.3.3 4.0.1 > cxf-xjc-dv generates compilation failure when XJC simple binding mode is used > ----------------------------------------------------------------------------- > > Key: CXFXJC-44 > URL: https://issues.apache.org/jira/browse/CXFXJC-44 > Project: CXF XJC Utils > Issue Type: Bug > Components: DV Plugin > Affects Versions: 4.0.0 > Reporter: Jan Litvik > Assignee: Andriy Redko > Priority: Major > Fix For: 3.3.3, 4.0.1 > > > I am using cxf-xjc-plugin v 4.0.0 to generate java code from xsd. > Java code is generated without issue until I use cxf-xjc-dv(v 4.0.0) plugin. > In this case Compilation failure is thrown: java.util.List is abstract; > cannot be instantiated > The problematic piece of code: > List<Serializable> andsAndOrsAndNots = new List<Serializable>(); > Issue is similar to this https://issues.apache.org/jira/browse/CXFXJC-7 > I investigated the behavior and found out that issue occurs when binding file > is configured and it contains xjc:simple binding mode. > When XJC simple binding mode or cxf-xjc-dv plugin is not used, java code is > generated but it does not meet our requirements. > > *Schema definition snippet:* > {code:java} > <xs:element name="query"> > <xs:complexType> > <xs:choice> > <xs:element ref="and"/> > <xs:element ref="or"/> > <xs:element ref="not"/> > <xs:sequence> > <xs:element name="table" type="StringRequired"/> > <xs:element name="column" type="StringRequired"/> > <xs:element name="operator" type="StringRequired"/> > <xs:element name="value" type="xs:string"/> > </xs:sequence> > </xs:choice> > </xs:complexType> > </xs:element> > <xs:element name="and"> > <xs:complexType> > <xs:choice minOccurs="2" maxOccurs="unbounded"> > <xs:element ref="and"/> > <xs:element ref="or"/> > <xs:element ref="not"/> > <xs:element ref="query"/> > </xs:choice> > </xs:complexType> > </xs:element> > <xs:element name="or"> > <xs:complexType> > <xs:choice minOccurs="2" maxOccurs="unbounded"> > <xs:element ref="and"/> > <xs:element ref="or"/> > <xs:element ref="not"/> > <xs:element ref="query"/> > </xs:choice> > </xs:complexType> > </xs:element> > <xs:element name="not"> > <xs:complexType> > <xs:choice> > <xs:element ref="and"/> > <xs:element ref="or"/> > <xs:element ref="not"/> > <xs:element ref="query"/> > </xs:choice> > </xs:complexType> > </xs:element> > <xs:simpleType name="StringRequired"> > <xs:restriction base="xs:string"> > <xs:minLength value="1" /> > </xs:restriction> > </xs:simpleType> > {code} > > *Maven:* > {code:java} > <plugin> > <groupId>org.apache.cxf</groupId> > <artifactId>cxf-xjc-plugin</artifactId> > <version>4.0.0</version> > <executions> > <execution> > <id>xjc</id> > <phase>generate-sources</phase> > <goals> > <goal>xsdtojava</goal> > </goals> > <configuration> > <xsdOptions> > <xsdOption> > > <xsd>${basedir}/src/main/resources/query.xsd</xsd> > <bindingFile> > > ${basedir}/src/main/jaxbconfig/config_jaxb.xjb</bindingFile> > <extension>true</extension> > <extensionArgs> > <arg>-Xdv</arg> > </extensionArgs> > </xsdOption> > </xsdOptions> > <extensions> > <extension> > > org.apache.cxf.xjcplugins:cxf-xjc-dv:4.0.0</extension> > </extensions> > </configuration> > </execution> > </executions> > </plugin> {code} > *JAXB binding config:* > {code:java} > <jaxb:bindings xmlns:jaxb="https://jakarta.ee/xml/ns/jaxb" > xmlns:xsi="http://www.w3.org/2001/XMLSchema" > xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc" version="3.0"> > > <jaxb:globalBindings> > <xjc:simple/> > <jaxb:serializable uid="1" /> > </jaxb:globalBindings> > > </jaxb:bindings> {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)