dims        2002/06/26 14:23:52

  Modified:    java/src/org/apache/axis/wsdl/toJava
                        JavaGeneratorFactory.java
               java/test/wsdl Wsdl2javaTestSuite.xml
  Added:       java/test/wsdl/echo echo.wsdl
  Log:
  - Fix for 10247 : holders not generated even though they are referenced.
  - Added Testcase.
  
  Revision  Changes    Path
  1.11      +9 -1      
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaGeneratorFactory.java
  
  Index: JavaGeneratorFactory.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaGeneratorFactory.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- JavaGeneratorFactory.java 20 Jun 2002 20:35:47 -0000      1.10
  +++ JavaGeneratorFactory.java 26 Jun 2002 21:23:52 -0000      1.11
  @@ -910,9 +910,17 @@
                               // If the given parameter is an inout or out parameter, 
then
                               // set a HOLDER_IS_NEEDED flag using the dynamicVar 
design.
                               if (p.getMode() != Parameter.IN) {
  -                                p.getType().setDynamicVar(
  +                                TypeEntry typeEntry = p.getType();
  +                                typeEntry.setDynamicVar(
                                           JavaTypeWriter.HOLDER_IS_NEEDED,
                                           new Boolean(true));
  +                                //If this is a complex then set the HOLDER_IS_NEEDED
  +                                //for the reftype too.
  +                                if(!typeEntry.isSimpleType() && 
typeEntry.getRefType()!=null){
  +                                    typeEntry.getRefType().setDynamicVar(
  +                                        JavaTypeWriter.HOLDER_IS_NEEDED,
  +                                        new Boolean(true));
  +                                }
   
                                   // If the type is a DefinedElement, need to 
                                   // set HOLDER_IS_NEEDED on the anonymous type.
  
  
  
  1.108     +9 -0      xml-axis/java/test/wsdl/Wsdl2javaTestSuite.xml
  
  Index: Wsdl2javaTestSuite.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/wsdl/Wsdl2javaTestSuite.xml,v
  retrieving revision 1.107
  retrieving revision 1.108
  diff -u -r1.107 -r1.108
  --- Wsdl2javaTestSuite.xml    21 Jun 2002 22:25:38 -0000      1.107
  +++ Wsdl2javaTestSuite.xml    26 Jun 2002 21:23:52 -0000      1.108
  @@ -897,6 +897,15 @@
           <mapping namespace="http://ram.uspto.gov"; package="test.wsdl.ram"/>
       </wsdl2java>
   
  +    <!-- This tests holders for complextype Bug:10247 -->
  +    <wsdl2java url="test/wsdl/echo/echo.wsdl"
  +               output="build/work"
  +               serverSide="yes"
  +               testcase="yes">
  +        <mapping namespace="http://echo.services"; package="test.wsdl.echo"/>
  +        <mapping namespace="http://types.echo.services"; package="test.wsdl.echo"/>
  +    </wsdl2java>
  +    
       <!-- The following WSDL are BAD.  We're keeping them here so we can -->
       <!-- check periodically to see whether the owner has fixed them.    -->
   
  
  
  
  1.1                  xml-axis/java/test/wsdl/echo/echo.wsdl
  
  Index: echo.wsdl
  ===================================================================
  <?xml version="1.0" encoding="UTF-8" ?> 
  <wsdl:definitions targetNamespace="http://echo.services"; 
  xmlns="http://schemas.xmlsoap.org/wsdl/"; 
  xmlns:impl="http://echo.services-impl"; 
  xmlns:intf="http://echo.services"; 
  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
  xmlns:tns1="http://types.echo.services"; 
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
  <wsdl:types>
  <schema targetNamespace="http://types.echo.services"; 
  xmlns="http://www.w3.org/2001/XMLSchema";>
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"; /> 
  <complexType name="MyComplexType">
  <sequence>
  <element name="simpleItem" nillable="true" type="xsd:string" /> 
  </sequence>
  </complexType>
  <element name="MyElement" nillable="true" type="tns1:MyComplexType" /> 
  </schema>
  </wsdl:types>
  <wsdl:message name="echoRequest">
  <wsdl:part element="tns1:MyElement" name="MyElement" /> 
  </wsdl:message>
  <wsdl:message name="echoResponse">
  <wsdl:part element="tns1:MyElement" name="MyElement" /> 
  </wsdl:message>
  <wsdl:portType name="Echo">
  <wsdl:operation name="echo" parameterOrder="MyElement">
  <wsdl:input message="intf:echoRequest" name="echoRequest" /> 
  <wsdl:output message="intf:echoResponse" name="echoResponse" /> 
  </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="ComplexEchoServiceSoapBinding" type="intf:Echo">
  <wsdlsoap:binding style="document" 
  transport="http://schemas.xmlsoap.org/soap/http"; /> 
  <wsdl:operation name="echo">
  <wsdlsoap:operation soapAction="" /> 
  <wsdl:input name="echoRequest">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
  namespace="http://types.echo.services"; use="literal" /> 
  </wsdl:input>
  <wsdl:output name="echoResponse">
  <wsdlsoap:body namespace="http://types.echo.services"; use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="ComplexEchoService">
  <wsdl:port binding="intf:ComplexEchoServiceSoapBinding" name="ComplexEchoService">
  <wsdlsoap:address 
  location="http://localhost:8080/axis/services/ComplexEchoService"; /> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>
  
  
  


Reply via email to