CXF XJC WSDL Extension Plugin

The CXF XJC WSDL Extension Plugin is used by CXF to generate beans that can be used directly with WSDL4J as extensors in the WSDL. For each top level type, it adds "implements ExtensibilityElement" to the interfaces it implements and then adds:

    @XmlTransient
    protected QName elementType;
    @XmlAttribute(namespace = "http://schemas.xmlsoap.org/wsdl/")
    protected Boolean required;

and appropriate getter/setters required by the ExtensibilityElement interface. CXF had several customer WSDL extensors for controlling various things such as the CORBA transports/binding, JMS configuration, https configuration, etc... This extension is used to convert them into wsdl extensors. CXF uses the class org.apache.cxf.wsdl.JAXBExtensionHelper to add these generated classes to the the extension registries so the are able to be seemlessly parsed and written.

To use with Maven

           <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-xjc-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>xsdtojava</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <xsdOptions>
                        <xsdOption>
                            <extension>true</extension>
                            <xsd>${basedir}/src/main/resources/schemas/configuration/foo.xsd</xsd>
                            <extensionArgs>
                                <arg>-Xwsdlextension</arg>
                            </extensionArgs>
                        </xsdOption>
                    </xsdOptions>
                    <extensions>
                        <extension>org.apache.cxf.xjcplugins:cxf-xjc-wsdlextension:2.3.0</extension>
                    </extensions>
                </configuration>
            </plugin>