You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2004/03/27 19:23:26 UTC

cvs commit: ws-axis/java/src/org/apache/axis/wsdl/toJava JavaEnumTypeWriter.java

dims        2004/03/27 10:23:26

  Modified:    java/test/wsdl/datatypes build.xml DataTypes.wsdl
                        DataTypes_BindingImpl.java DataTypesTestCase.java
               java/src/org/apache/axis/wsdl/toJava JavaEnumTypeWriter.java
  Log:
  Fix and test case for AXIS-1157 - QName constants constructed without Schema-specified namespace
  
  Revision  Changes    Path
  1.9       +1 -1      ws-axis/java/test/wsdl/datatypes/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/test/wsdl/datatypes/build.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- build.xml	21 Feb 2004 19:21:54 -0000	1.8
  +++ build.xml	27 Mar 2004 18:23:26 -0000	1.9
  @@ -58,7 +58,7 @@
                  deployscope="session"
                  serverSide="yes"
                  skeletonDeploy="yes"
  -               testcase="yes">
  +               testcase="no">
           <mapping namespace="urn:dataTypes" package="test.wsdl.datatypes"/>
       </wsdl2java>
   
  
  
  
  1.3       +40 -0     ws-axis/java/test/wsdl/datatypes/DataTypes.wsdl
  
  Index: DataTypes.wsdl
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/test/wsdl/datatypes/DataTypes.wsdl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DataTypes.wsdl	19 Dec 2003 15:08:37 -0000	1.2
  +++ DataTypes.wsdl	27 Mar 2004 18:23:26 -0000	1.3
  @@ -6,6 +6,7 @@
                xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
                xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" 
                xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
  +             xmlns:wsp="http://schemas.xmlsoap.org/ws/2002/12/policy"
                targetNamespace="urn:dataTypes" 
                xmlns="http://schemas.xmlsoap.org/wsdl/">
     <types>
  @@ -65,6 +66,25 @@
             <s:enumeration value="Off" />
           </s:restriction>
         </s:simpleType>
  +      <s:element name="GetUsageType">
  +        <s:complexType />
  +      </s:element>
  +      <s:element name="GetUsageTypeResponse">
  +        <s:complexType>
  +          <s:sequence>
  +            <s:element minOccurs="1" maxOccurs="1" name="GetUsageTypeResult" type="s0:UsageType" />
  +          </s:sequence>
  +        </s:complexType>
  +      </s:element>
  +      <s:simpleType name="UsageType">
  +		<s:restriction base="s:QName">
  +			<s:enumeration value="wsp:Required"/>
  +			<s:enumeration value="wsp:Optional"/>
  +			<s:enumeration value="wsp:Rejected"/>
  +			<s:enumeration value="wsp:Ignored"/>
  +			<s:enumeration value="wsp:Observed"/>
  +		</s:restriction>
  +      </s:simpleType>
         <s:element name="GetOrder">
           <s:complexType />
         </s:element>
  @@ -99,6 +119,7 @@
         <s:element name="string" nillable="true" type="s:string" />
         <s:element name="ArrayOfInt" nillable="true" type="s0:ArrayOfInt" />
         <s:element name="Mode" type="s0:Mode" />
  +      <s:element name="UsageType" type="s0:UsageType" />
         <s:element name="Order" nillable="true" type="s0:Order" />
         <s:element name="ArrayOfOrder" nillable="true" type="s0:ArrayOfOrder" />
         <s:element name="GetSimpleList">
  @@ -144,6 +165,12 @@
     <message name="GetModeSoapOut">
       <part name="parameters" element="s0:GetModeResponse" />
     </message>
  +  <message name="GetUsageTypeSoapIn">
  +    <part name="parameters" element="s0:GetUsageType" />
  +  </message>
  +  <message name="GetUsageTypeSoapOut">
  +    <part name="parameters" element="s0:GetUsageTypeResponse" />
  +  </message>
     <message name="GetOrderSoapIn">
       <part name="parameters" element="s0:GetOrder" />
     </message>
  @@ -179,6 +206,10 @@
         <input message="s0:GetModeSoapIn" />
         <output message="s0:GetModeSoapOut" />
       </operation>
  +    <operation name="GetUsageType">
  +      <input message="s0:GetUsageTypeSoapIn" />
  +      <output message="s0:GetUsageTypeSoapOut" />
  +    </operation>
       <operation name="GetOrder">
         <input message="s0:GetOrderSoapIn" />
         <output message="s0:GetOrderSoapOut" />
  @@ -222,6 +253,15 @@
         </output>
       </operation>
       <operation name="GetMode">
  +      <soap:operation soapAction="" style="document" />
  +      <input>
  +        <soap:body use="literal" />
  +      </input>
  +      <output>
  +        <soap:body use="literal" />
  +      </output>
  +    </operation>
  +    <operation name="GetUsageType">
         <soap:operation soapAction="" style="document" />
         <input>
           <soap:body use="literal" />
  
  
  
  1.4       +4 -0      ws-axis/java/test/wsdl/datatypes/DataTypes_BindingImpl.java
  
  Index: DataTypes_BindingImpl.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/test/wsdl/datatypes/DataTypes_BindingImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DataTypes_BindingImpl.java	19 Dec 2003 15:09:06 -0000	1.3
  +++ DataTypes_BindingImpl.java	27 Mar 2004 18:23:26 -0000	1.4
  @@ -66,4 +66,8 @@
   
           return outputList;
       }
  +
  +    public test.wsdl.datatypes.UsageType getUsageType() throws java.rmi.RemoteException { 
  +	return new test.wsdl.datatypes.UsageType(test.wsdl.datatypes.UsageType._value1);
  +    }
   }
  
  
  
  1.6       +22 -0     ws-axis/java/test/wsdl/datatypes/DataTypesTestCase.java
  
  Index: DataTypesTestCase.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/test/wsdl/datatypes/DataTypesTestCase.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DataTypesTestCase.java	19 Dec 2003 15:09:45 -0000	1.5
  +++ DataTypesTestCase.java	27 Mar 2004 18:23:26 -0000	1.6
  @@ -7,6 +7,8 @@
   
   package test.wsdl.datatypes;
   
  +import javax.xml.namespace.QName;
  +
   public class DataTypesTestCase extends junit.framework.TestCase {
       public DataTypesTestCase(String name) {
           super(name);
  @@ -173,6 +175,26 @@
           catch (java.rmi.RemoteException re) {
               throw new junit.framework.AssertionFailedError("Remote Exception caught: " + re);
           }
  +    }
  +
  +    public void test5DataTypesGetUsageType() throws Exception {
  +        DataTypes_Port binding;
  +        try {
  +            binding = new DataTypes_ServiceLocator().getDataTypes();
  +        }
  +        catch (javax.xml.rpc.ServiceException jre) {
  +            if(jre.getLinkedCause()!=null)
  +                jre.getLinkedCause().printStackTrace();
  +            throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException caught: " + jre);
  +        }
  +        assertNotNull("binding is null", binding);
  +
  +        // Test operation
  +        UsageType value = null;
  +        value = binding.getUsageType();
  +        System.out.println(value);
  +        assertEquals(value.getValue(), new QName("http://schemas.xmlsoap.org/ws/2002/12/policy","Required"));
  +        // TBD - validate results
       }
   }
   
  
  
  
  1.28      +11 -0     ws-axis/java/src/org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.java
  
  Index: JavaEnumTypeWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- JavaEnumTypeWriter.java	25 Feb 2004 14:02:52 -0000	1.27
  +++ JavaEnumTypeWriter.java	27 Mar 2004 18:23:26 -0000	1.28
  @@ -116,6 +116,9 @@
                                   "l")) {    // doesn't complain about precision.
                       value += "L";
                   }
  +            } else if (baseClass.equals("javax.xml.namespace.QName")) {
  +                value = org.apache.axis.wsdl.symbolTable.Utils.getQNameFromPrefixedName(type.getNode(), value).toString();
  +                value = "javax.xml.namespace.QName.valueOf(\"" + value + "\")";
               } else if (baseClass.equals(baseType)) {
   
                   // Construct baseClass object with literal string
  @@ -194,6 +197,14 @@
   
           if (baseClass.equals("java.lang.String")) {
               pw.println("        return fromValue(value);");
  +        } else if (baseClass.equals("javax.xml.namespace.QName")) {
  +            pw.println("        try {");
  +            pw.println("            return fromValue(javax.xml.namespace.QName.valueOf"
  +                    + "(value));");
  +            pw.println("        } catch (Exception e) {");
  +            pw.println(
  +                    "            throw new java.lang.IllegalArgumentException();");
  +            pw.println("        }");
           } else if (baseClass.equals(baseType)) {
               pw.println("        try {");
               pw.println("            return fromValue(new " + baseClass