Remove cyclic dependencies in wsdl2java code.
---------------------------------------------

                 Key: CXF-1452
                 URL: https://issues.apache.org/jira/browse/CXF-1452
             Project: CXF
          Issue Type: Wish
          Components: Tooling
            Reporter: Glen Mazza
            Priority: Minor


Currently there are two cyclic dependencies in our WSDL2Java code: between 
{cxf-tools-wsdlto-core, cxf-tools-wsdlto-databinding-jaxb} and 
{cxf-tools-wsdlto-core, cxf-tools-wsdlto-frontend-jaxws}

Databinding needs Core's DefaultValueProvider
Core needs databinding's tools-plugin.xml

Frontend needs Core's WSDLToProcessor
Core needs frontend's tools-plugin.xml

The "Core" requirements are because Core contains WSDL2Java class.  Because 
WSDL2Java needs packages outside of Core, I think it would be best to either 
place WSDL2Java in its own module, or keep it where it is but create a new 
"common" module under wsdl2 that would hold DefaultValueProvider, 
WSDLToProcessor (and perhaps a few other needed classes).  If the 
latter,databinding and frontend would have this new wsdl-common as a dependency 
but not wsdl-core anymore.

Background:  I was having trouble debugging WSDL2Java in Eclipse.  I imported 
just the cxf-tools-wsdlto-core project into the IDE, but running WSDL2Java in 
debug mode raised errors that it needed the frontend and databinding modules.  
After adding the following dependencies to cxf-tools-wsdlto-core:

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-tools-wsdlto-databinding-jaxb</artifactId>
            <version>${project.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-tools-wsdlto-frontend-jaxws</artifactId>
            <version>${project.version}</version>
            <scope>runtime</scope>
        </dependency>

and then running mvn eclipse:clean eclipse:eclipse again from this core 
directory, wsdl2Java worked fine.  *But* this introduces a cyclic dependency 
with databinding and frontend (they both have core as a dependency), so "mvn 
install" won't work in any higher-level directory of core.


-- 
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