You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ek...@apache.org on 2005/10/02 06:18:49 UTC

svn commit: r293069 - in /beehive/trunk/system-controls: src/webservice/org/apache/beehive/controls/system/webservice/generator/ test/src/webservice/jcxgen-tests/wsdls/

Author: ekoneil
Date: Sat Oct  1 21:18:44 2005
New Revision: 293069

URL: http://svn.apache.org/viewcvs?rev=293069&view=rev
Log:
Patch for BEEHIVE-807.  This addresses some issues with using class names in the java.lang package and with using Java keywords in the web service control generator.

Contribution from Chad Schoettger.

BB: self
Test: service control pass


Added:
    beehive/trunk/system-controls/test/src/webservice/jcxgen-tests/wsdls/ReservedKeywordDocLit.wsdl
    beehive/trunk/system-controls/test/src/webservice/jcxgen-tests/wsdls/ReservedKeywordRpcLit.wsdl
Modified:
    beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/GeneratorUtils.java
    beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/MethodInfo.java
    beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/ParameterInfo.java

Modified: beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/GeneratorUtils.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/GeneratorUtils.java?rev=293069&r1=293068&r2=293069&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/GeneratorUtils.java (original)
+++ beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/GeneratorUtils.java Sat Oct  1 21:18:44 2005
@@ -17,6 +17,8 @@
 
 import java.io.File;
 import java.util.Arrays;
+import java.util.Set;
+import java.util.HashSet;
 
 /**
  * Utilities for service control generation.
@@ -28,43 +30,152 @@
     /**
      * List of java reserved words.  Must be kept sorted in ascending order.
      */
-    private static final String javaReservedWords[] =
+    private static final String JAVA_RESERVED_WORDS[] =
     {
-        "abstract",   "assert",    "boolean",      "break",      "byte",
-        "case",       "catch",     "char",         "class",      "const",
-        "continue",   "default",   "do",           "double",     "else",
-        "extends",    "false",     "final",        "finally",    "float",
-        "for",        "goto",      "if",           "implements", "import",
-        "instanceof", "int",       "interface",    "long",       "native",
-        "new",        "null",      "package",      "private",    "protected",
-        "public",     "return",    "short",        "static",     "strictfp",
-        "super",      "switch",    "synchronized", "this",       "throw",
-        "throws",     "transient", "true",         "try",        "void",
-        "volatile",   "while"
+        "abstract",   "assert",     "boolean",      "break",        "byte",
+        "case",       "catch",      "char",         "class",        "const",
+        "continue",   "default",    "do",           "double",       "else",
+        "enum",       "extends",    "false",        "final",        "finally",
+        "float",      "for",        "goto",         "if",           "implements",
+        "import",     "instanceof", "int",          "interface",    "long",
+        "native",     "new",        "null",         "package",      "private",
+        "protected",  "public",     "return",       "short",        "static",
+        "strictfp",   "super",      "switch",       "synchronized", "this",
+        "throw",      "throws",     "transient",    "true",         "try",
+        "void",       "volatile",   "while"
     };
 
+
+    /**
+     * List of java.lang classes (1.5 JDK).
+     */
+    private final static Set<String> JAVA_LANG_NAMES = new HashSet<String>(Arrays.asList(
+        new String[]
+          {
+            // Interfaces
+            "Appendable", "CharSequence", "Cloneable", "Comparable",
+            "Iterable",   "Readable",     "Runnable",
+
+            // Classes
+            "Boolean",         "Byte",                   "Character",          "Class",
+            "ClassLoader",     "Compiler",               "Double",             "Enum",
+            "Float",           "InheritableThreadLocal", "Integer",            "Long",
+            "Math",            "Number",                 "Object",             "Package",
+            "Process",         "ProcessBuilder",         "Runtime",            "RuntimePermission",
+            "SecurityManager", "Short",                  "StackTraceElement",  "StrictMath",
+            "String",          "StringBuffer",           "StringBuilder",      "System",
+            "Thread",          "ThreadGroup",            "ThreadLocal",        "Throwable",
+            "Void",
+
+            // Exceptions
+            "ArithmeticException",             "ArrayIndexOutOfBoundsException", "ArrayStoreException",
+            "ClassCastException",              "ClassNotFoundException",         "CloneNotSupportedException",
+            "EnumConstantNotPresentException", "Exception",                      "IllegalAccessException",
+            "IllegalArgumentException",        "IllegalMonitorStateException",   "IllegalStateException",
+            "IllegalThreadStateException",     "IndexOutOfBoundsException",      "InstantiationException",
+            "InterruptedException",            "NegativeArraySizeException",     "NoSuchFieldException",
+            "NoSuchMethodException",           "NullPointerException",           "NumberFormatException",
+            "RuntimeException",                "SecurityException",              "StringIndexOutOfBoundsException",
+            "TypeNotPresentException",         "UnsupportedOperationException",
+
+            // Errors
+            "AbstractMethodError",  "AssertionError",               "ClassCircularityError",
+            "ClassFormatError",     "Error",                        "ExceptionInInitializerError",
+            "IllegalAccessError",   "IncompatibleClassChangeError", "InstantiationError",
+            "InternalError",        "LinkageError",                 "NoClassDefFoundError",
+            "NoSuchFieldError",     "NoSuchMethodError",            "OutOfMemoryError",
+            "StackOverflowError",   "ThreadDeath",                  "UnknownError",
+            "UnsatisfiedLinkError", "UnsupportedClassVersionError", "VerifyError",
+            "VirtualMachineError",
+
+            // Annotation types
+            "Deprecated", "Override", "SuppressWarnings"
+          }
+    ));
+
     /**
      * Is the value of checkString a java reserved word?
      *
      * @param checkString String value to check.
      * @return true if checkString exactly matches a java reserved word
      */
-    static boolean isJavaReservedWord(String checkString)
+    private static boolean isJavaReservedWord(String checkString)
     {
-        return Arrays.binarySearch(javaReservedWords, checkString) >= 0;
+        return Arrays.binarySearch(JAVA_RESERVED_WORDS, checkString) >= 0;
     }
 
     /**
-     * Transform a Java reserved word into a string which is safe to use in a Java source file.
+     * Transform an invalid java identifier into a valid one.  Any invalid
+     * characters are replaced with '_'s.
      *
-     * @param javaReservedWord reserved word to transform.
-     * @return The transformed reserved word.
+     * @param id The invalid java identifier.
+     * @return The transformed java identifier.
      */
-    static String transformJavaReservedWord(String javaReservedWord)
+    static String transformInvalidJavaIdentifier(String id)
     {
-        return JAVA_RESERVEDWORD_PREFIX + javaReservedWord;
+        if (id == null) throw new IllegalArgumentException("id cannot be null");
+
+        final int len = id.length();
+        if (len == 0) {
+            return "_";
+        }
+
+        //
+        // begin the transform
+        //
+
+        StringBuilder transformed = new StringBuilder(id);
+        if (isJavaReservedWord(id) || JAVA_LANG_NAMES.contains(id)) {
+            transformed.insert(0, JAVA_RESERVEDWORD_PREFIX);
+        }
+
+        if (!Character.isJavaIdentifierStart(transformed.charAt(0))) {
+            transformed.insert(0, JAVA_RESERVEDWORD_PREFIX);
+        }
+
+        for (int i = 1; i < transformed.length() ; i++)
+        {
+            if (!Character.isJavaIdentifierPart(transformed.charAt(i))) {
+                transformed.replace(i, i+1, ""+ JAVA_RESERVEDWORD_PREFIX);
+            }
+        }
+
+        return transformed.toString();
     }
 
+    /**
+     * Check the identifer to see if it is a valid Java identifier.
+     *
+     * @param id The Java identifier to check.
+     * @return true if identifer is valid.
+     */
+    static boolean isValidJavaIdentifier(String id)
+    {
+        if (id == null) {
+            throw new IllegalArgumentException("id cannot be null");
+        }
+
+        final int len = id.length();
+        if (len == 0) {
+            return false;
+        }
+
+        if (isJavaReservedWord(id) || JAVA_LANG_NAMES.contains(id)) {
+            return false;
+        }
+
+        if (!Character.isJavaIdentifierStart(id.charAt(0))) {
+            return false;
+        }
+
+        for (int i = 1; i < len; i++)
+        {
+            if (!Character.isJavaIdentifierPart(id.charAt(i)))
+                return false;
+        }
+
+        return true;
+    }
 
     /**
      * Convert a java package name to a file directory name.

Modified: beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/MethodInfo.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/MethodInfo.java?rev=293069&r1=293068&r2=293069&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/MethodInfo.java (original)
+++ beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/MethodInfo.java Sat Oct  1 21:18:44 2005
@@ -26,7 +26,7 @@
 public final class MethodInfo {
 
     private ArrayList<ParameterInfo> _params;
-    private String _name;
+    private final String _name;
     private String _returnTypeName;
 
     /**
@@ -36,7 +36,14 @@
      */
     MethodInfo(String name, Class returnType) {
         _params = new ArrayList<ParameterInfo>();
-        _name = name;
+
+        if (!GeneratorUtils.isValidJavaIdentifier(name)) {
+            _name = GeneratorUtils.transformInvalidJavaIdentifier(name);
+            System.out.println("Warning: method name " + name
+                    + " is not a valid Java method name, changing to: " + _name);
+        } else {
+            _name = name;
+        }
 
         _returnTypeName = returnType.getCanonicalName();
         if (_returnTypeName.startsWith("java.lang.")) {

Modified: beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/ParameterInfo.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/ParameterInfo.java?rev=293069&r1=293068&r2=293069&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/ParameterInfo.java (original)
+++ beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/generator/ParameterInfo.java Sat Oct  1 21:18:44 2005
@@ -49,8 +49,10 @@
 
         if (name == null) {
             _name = PARAM_BASE_NAME + position;
-        } else if (GeneratorUtils.isJavaReservedWord(name)) {
-            _name = GeneratorUtils.transformJavaReservedWord(name);
+        } else if (!GeneratorUtils.isValidJavaIdentifier(name)) {
+            _name = GeneratorUtils.transformInvalidJavaIdentifier(name);
+            System.out.println("Warning: Parameter name " + name
+                    + " is not a valid Java method parameter name, changing to: " + _name);
         } else {
             _name = name;
         }

Added: beehive/trunk/system-controls/test/src/webservice/jcxgen-tests/wsdls/ReservedKeywordDocLit.wsdl
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/src/webservice/jcxgen-tests/wsdls/ReservedKeywordDocLit.wsdl?rev=293069&view=auto
==============================================================================
--- beehive/trunk/system-controls/test/src/webservice/jcxgen-tests/wsdls/ReservedKeywordDocLit.wsdl (added)
+++ beehive/trunk/system-controls/test/src/webservice/jcxgen-tests/wsdls/ReservedKeywordDocLit.wsdl Sat Oct  1 21:18:44 2005
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="http://beehive.apache.org/reservedWords"
+                  xmlns:tns="http://beehive.apache.org/reservedWords"
+                  xmlns:apachesoap="http://xml.apache.org/xml-soap"
+                  xmlns:impl="http://beehive.apache.org/reservedWords"
+                  xmlns:intf="http://beehive.apache.org/reservedWords"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+                  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <!--WSDL created by Apache Axis version: 1.2
+Built on May 03, 2005 (02:20:24 EDT)-->
+    <wsdl:types>
+        <schema elementFormDefault="qualified"
+                targetNamespace="http://beehive.apache.org/reservedWords"
+                xmlns="http://www.w3.org/2001/XMLSchema">
+            <complexType name="reservedWordsType">
+                <sequence>
+                    <xsd:element name="abstract" nillable="true" type="xsd:int"/>
+                    <xsd:element name="assert" nillable="true" type="xsd:int"/>
+                    <xsd:element name="boolean" nillable="true" type="xsd:int"/>
+                    <xsd:element name="break" nillable="true" type="xsd:int"/>
+                    <xsd:element name="byte" nillable="true" type="xsd:int"/>
+                    <xsd:element name="case" nillable="true" type="xsd:int"/>
+                    <xsd:element name="catch" nillable="true" type="xsd:int"/>
+                    <xsd:element name="char" nillable="true" type="xsd:int"/>
+                    <xsd:element name="class" nillable="true" type="xsd:int"/>
+                    <xsd:element name="const" nillable="true" type="xsd:int"/>
+                    <xsd:element name="continue" nillable="true" type="xsd:int"/>
+                    <xsd:element name="default" nillable="true" type="xsd:int"/>
+                    <xsd:element name="double" nillable="true" type="xsd:int"/>
+                    <xsd:element name="else" nillable="true" type="xsd:int"/>
+                    <xsd:element name="extends" nillable="true" type="xsd:int"/>
+                    <xsd:element name="false" nillable="true" type="xsd:int"/>
+                    <xsd:element name="final" nillable="true" type="xsd:int"/>
+                    <xsd:element name="finally" nillable="true" type="xsd:int"/>
+                    <xsd:element name="float" nillable="true" type="xsd:int"/>
+                    <xsd:element name="for" nillable="true" type="xsd:int"/>
+                    <xsd:element name="goto" nillable="true" type="xsd:int"/>
+                    <xsd:element name="if" nillable="true" type="xsd:int"/>
+                    <xsd:element name="implements" nillable="true" type="xsd:int"/>
+                    <xsd:element name="import" nillable="true" type="xsd:int"/>
+                    <xsd:element name="instanceof" nillable="true" type="xsd:int"/>
+                    <xsd:element name="int" nillable="true" type="xsd:int"/>
+                    <xsd:element name="interface" nillable="true" type="xsd:int"/>
+                    <xsd:element name="long" nillable="true" type="xsd:int"/>
+                    <xsd:element name="native" nillable="true" type="xsd:int"/>
+                    <xsd:element name="new" nillable="true" type="xsd:int"/>
+                    <xsd:element name="null" nillable="true" type="xsd:int"/>
+                    <xsd:element name="package" nillable="true" type="xsd:int"/>
+                    <xsd:element name="private" nillable="true" type="xsd:int"/>
+                    <xsd:element name="protected" nillable="true" type="xsd:int"/>
+                    <xsd:element name="public" nillable="true" type="xsd:int"/>
+                    <xsd:element name="return" nillable="true" type="xsd:int"/>
+                    <xsd:element name="short" nillable="true" type="xsd:int"/>
+                    <xsd:element name="static" nillable="true" type="xsd:int"/>
+<!--    XMLBeans barfs - XMLBEANS-191                <xsd:element name="strictfp" nillable="true" type="xsd:int"/> -->
+                    <xsd:element name="super" nillable="true" type="xsd:int"/>
+                    <xsd:element name="switch" nillable="true" type="xsd:int"/>
+                    <xsd:element name="synchronized" nillable="true" type="xsd:int"/>
+                    <xsd:element name="this" nillable="true" type="xsd:int"/>
+                    <xsd:element name="throw" nillable="true" type="xsd:int"/>
+                    <xsd:element name="throws" nillable="true" type="xsd:int"/>
+                    <xsd:element name="transient" nillable="true" type="xsd:int"/>
+                    <xsd:element name="true" nillable="true" type="xsd:int"/>
+                    <xsd:element name="try" nillable="true" type="xsd:int"/>
+                    <xsd:element name="void" nillable="true" type="xsd:int"/>
+                    <xsd:element name="volatile" nillable="true" type="xsd:int"/>
+                    <xsd:element name="while" nillable="true" type="xsd:int"/>
+
+                    <xsd:element name="threadsafe" nillable="true" type="xsd:int"/>
+                    <xsd:element name="enum" nillable="true" type="xsd:int"/>
+                    <xsd:element name="Exception" nillable="true" type="xsd:int"/>
+                </sequence>
+            </complexType>
+
+            <xsd:element name="abstract" nillable="true" type="xsd:int"/>
+            <xsd:element name="assert" nillable="true" type="xsd:int"/>
+            <xsd:element name="boolean" nillable="true" type="xsd:int"/>
+            <xsd:element name="break" nillable="true" type="xsd:int"/>
+            <xsd:element name="byte" nillable="true" type="xsd:int"/>
+            <xsd:element name="case" nillable="true" type="xsd:int"/>
+            <xsd:element name="catch" nillable="true" type="xsd:int"/>
+            <xsd:element name="char" nillable="true" type="xsd:int"/>
+            <xsd:element name="class" nillable="true" type="xsd:int"/>
+            <xsd:element name="const" nillable="true" type="xsd:int"/>
+            <xsd:element name="continue" nillable="true" type="xsd:int"/>
+            <xsd:element name="default" nillable="true" type="xsd:int"/>
+            <xsd:element name="double" nillable="true" type="xsd:int"/>
+            <xsd:element name="else" nillable="true" type="xsd:int"/>
+            <xsd:element name="extends" nillable="true" type="xsd:int"/>
+            <xsd:element name="false" nillable="true" type="xsd:int"/>
+            <xsd:element name="final" nillable="true" type="xsd:int"/>
+            <xsd:element name="finally" nillable="true" type="xsd:int"/>
+            <xsd:element name="float" nillable="true" type="xsd:int"/>
+            <xsd:element name="for" nillable="true" type="xsd:int"/>
+            <xsd:element name="goto" nillable="true" type="xsd:int"/>
+            <xsd:element name="if" nillable="true" type="xsd:int"/>
+            <xsd:element name="implements" nillable="true" type="xsd:int"/>
+            <xsd:element name="import" nillable="true" type="xsd:int"/>
+            <xsd:element name="instanceof" nillable="true" type="xsd:int"/>
+            <xsd:element name="int" nillable="true" type="xsd:int"/>
+            <xsd:element name="interface" nillable="true" type="xsd:int"/>
+            <xsd:element name="long" nillable="true" type="xsd:int"/>
+            <xsd:element name="native" nillable="true" type="xsd:int"/>
+            <xsd:element name="new" nillable="true" type="xsd:int"/>
+            <xsd:element name="null" nillable="true" type="xsd:int"/>
+            <xsd:element name="package" nillable="true" type="xsd:int"/>
+            <xsd:element name="private" nillable="true" type="xsd:int"/>
+            <xsd:element name="protected" nillable="true" type="xsd:int"/>
+            <xsd:element name="public" nillable="true" type="xsd:int"/>
+            <xsd:element name="return" nillable="true" type="xsd:int"/>
+            <xsd:element name="short" nillable="true" type="xsd:int"/>
+            <xsd:element name="static" nillable="true" type="xsd:int"/>
+<!--    XMLBeans barfs - XMLBEANS-191        <xsd:element name="strictfp" nillable="true" type="xsd:int"/> -->
+            <xsd:element name="super" nillable="true" type="xsd:int"/>
+            <xsd:element name="switch" nillable="true" type="xsd:int"/>
+            <xsd:element name="synchronized" nillable="true" type="xsd:int"/>
+            <xsd:element name="this" nillable="true" type="xsd:int"/>
+            <xsd:element name="throw" nillable="true" type="xsd:int"/>
+            <xsd:element name="throws" nillable="true" type="xsd:int"/>
+            <xsd:element name="transient" nillable="true" type="xsd:int"/>
+            <xsd:element name="true" nillable="true" type="xsd:int"/>
+            <xsd:element name="try" nillable="true" type="xsd:int"/>
+            <xsd:element name="void" nillable="true" type="xsd:int"/>
+            <xsd:element name="volatile" nillable="true" type="xsd:int"/>
+            <xsd:element name="while" nillable="true" type="xsd:int"/>
+
+            <xsd:element name="threadsafe" nillable="true" type="xsd:int"/>
+            <xsd:element name="enum" nillable="true" type="xsd:int"/>
+            <xsd:element name="Exception" nillable="true" type="xsd:int"/>
+
+        </schema>
+    </wsdl:types>
+
+    <wsdl:message name="reservedWordsWrappedMsg">
+        <wsdl:part element="tns:reservedWordsType" name="reserved"/>
+    </wsdl:message>
+
+
+    <wsdl:portType name="ReservedWordsWrapped">
+
+        <wsdl:operation name="abstract">
+            <wsdl:input message="tns:reservedWordsWrappedMsg" name="abstractReq"/>
+            <wsdl:output message="tns:reservedWordsWrappedMsg" name="abstractResp"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="Exception">
+            <wsdl:input message="tns:reservedWordsWrappedMsg" name="ExceptionReq"/>
+            <wsdl:output message="tns:reservedWordsWrappedMsg" name="ExceptionResp"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="dot.name">
+            <wsdl:input message="tns:reservedWordsWrappedMsg" name="dot.nameReq"/>
+            <wsdl:output message="tns:reservedWordsWrappedMsg" name="dot.nameResp"/>
+        </wsdl:operation>
+
+
+    </wsdl:portType>
+
+    <wsdl:binding name="ReservedWordsWrappedSoapBinding" type="tns:ReservedWordsWrapped">
+        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+        <wsdl:operation name="abstract">
+            <wsdlsoap:operation soapAction="abstract"/>
+            <wsdl:input name="abstractReq">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="abstractResp">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="Exception">
+            <wsdlsoap:operation soapAction="Exception"/>
+            <wsdl:input name="ExceptionReq">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="abstractResp">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <!--<wsdl:operation name="dot.name">-->
+            <!--<wsdlsoap:operation soapAction="dot.name"/>-->
+            <!--<wsdl:input name="dot.nameReq">-->
+                <!--<wsdlsoap:body use="literal"/>-->
+            <!--</wsdl:input>-->
+            <!--<wsdl:output name="dot.nameResp">-->
+                <!--<wsdlsoap:body use="literal"/>-->
+            <!--</wsdl:output>-->
+        <!--</wsdl:operation>-->
+    </wsdl:binding>
+
+    <wsdl:service name="ReservedWordsSampleService">
+        <wsdl:port binding="tns:ReservedWordsWrappedeSoapBinding" name="ReservedWordsSample">
+            <wsdlsoap:address location="http://localhost:8080/ReservedWordsSampleServiceWrappedSample.jws"/>
+        </wsdl:port>
+    </wsdl:service>
+
+</wsdl:definitions>

Added: beehive/trunk/system-controls/test/src/webservice/jcxgen-tests/wsdls/ReservedKeywordRpcLit.wsdl
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/src/webservice/jcxgen-tests/wsdls/ReservedKeywordRpcLit.wsdl?rev=293069&view=auto
==============================================================================
--- beehive/trunk/system-controls/test/src/webservice/jcxgen-tests/wsdls/ReservedKeywordRpcLit.wsdl (added)
+++ beehive/trunk/system-controls/test/src/webservice/jcxgen-tests/wsdls/ReservedKeywordRpcLit.wsdl Sat Oct  1 21:18:44 2005
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="http://beehive.apache.org/rpc/reservedWords"
+                  xmlns:tns="http://beehive.apache.org/rpc/reservedWords"
+                  xmlns:apachesoap="http://xml.apache.org/xml-soap"
+                  xmlns:impl="http://beehive.apache.org/rpc/reservedWords"
+                  xmlns:intf="http://beehive.apache.org/rpc/reservedWords"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+                  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <!--WSDL created by Apache Axis version: 1.2
+Built on May 03, 2005 (02:20:24 EDT)-->
+    <wsdl:types>
+        <schema elementFormDefault="qualified"
+                targetNamespace="http://beehive.apache.org/rpc/reservedWords"
+                xmlns="http://www.w3.org/2001/XMLSchema">
+            <complexType name="reservedWordsType">
+                <sequence>
+                    <xsd:element name="abstract" nillable="true" type="xsd:int"/>
+                    <xsd:element name="assert" nillable="true" type="xsd:int"/>
+                    <xsd:element name="boolean" nillable="true" type="xsd:int"/>
+                    <xsd:element name="break" nillable="true" type="xsd:int"/>
+                    <xsd:element name="byte" nillable="true" type="xsd:int"/>
+                    <xsd:element name="case" nillable="true" type="xsd:int"/>
+                    <xsd:element name="catch" nillable="true" type="xsd:int"/>
+                    <xsd:element name="char" nillable="true" type="xsd:int"/>
+                    <xsd:element name="class" nillable="true" type="xsd:int"/>
+                    <xsd:element name="const" nillable="true" type="xsd:int"/>
+                    <xsd:element name="continue" nillable="true" type="xsd:int"/>
+                    <xsd:element name="default" nillable="true" type="xsd:int"/>
+                    <xsd:element name="double" nillable="true" type="xsd:int"/>
+                    <xsd:element name="else" nillable="true" type="xsd:int"/>
+                    <xsd:element name="extends" nillable="true" type="xsd:int"/>
+                    <xsd:element name="false" nillable="true" type="xsd:int"/>
+                    <xsd:element name="final" nillable="true" type="xsd:int"/>
+                    <xsd:element name="finally" nillable="true" type="xsd:int"/>
+                    <xsd:element name="float" nillable="true" type="xsd:int"/>
+                    <xsd:element name="for" nillable="true" type="xsd:int"/>
+                    <xsd:element name="goto" nillable="true" type="xsd:int"/>
+                    <xsd:element name="if" nillable="true" type="xsd:int"/>
+                    <xsd:element name="implements" nillable="true" type="xsd:int"/>
+                    <xsd:element name="import" nillable="true" type="xsd:int"/>
+                    <xsd:element name="instanceof" nillable="true" type="xsd:int"/>
+                    <xsd:element name="int" nillable="true" type="xsd:int"/>
+                    <xsd:element name="interface" nillable="true" type="xsd:int"/>
+                    <xsd:element name="long" nillable="true" type="xsd:int"/>
+                    <xsd:element name="native" nillable="true" type="xsd:int"/>
+                    <xsd:element name="new" nillable="true" type="xsd:int"/>
+                    <xsd:element name="null" nillable="true" type="xsd:int"/>
+                    <xsd:element name="package" nillable="true" type="xsd:int"/>
+                    <xsd:element name="private" nillable="true" type="xsd:int"/>
+                    <xsd:element name="protected" nillable="true" type="xsd:int"/>
+                    <xsd:element name="public" nillable="true" type="xsd:int"/>
+                    <xsd:element name="return" nillable="true" type="xsd:int"/>
+                    <xsd:element name="short" nillable="true" type="xsd:int"/>
+                    <xsd:element name="static" nillable="true" type="xsd:int"/>
+<!-- XMLBeans barfs - XMLBEANS-191                   <xsd:element name="strictfp" nillable="true" type="xsd:int"/> -->
+                    <xsd:element name="super" nillable="true" type="xsd:int"/>
+                    <xsd:element name="switch" nillable="true" type="xsd:int"/>
+                    <xsd:element name="synchronized" nillable="true" type="xsd:int"/>
+                    <xsd:element name="this" nillable="true" type="xsd:int"/>
+                    <xsd:element name="throw" nillable="true" type="xsd:int"/>
+                    <xsd:element name="throws" nillable="true" type="xsd:int"/>
+                    <xsd:element name="transient" nillable="true" type="xsd:int"/>
+                    <xsd:element name="true" nillable="true" type="xsd:int"/>
+                    <xsd:element name="try" nillable="true" type="xsd:int"/>
+                    <xsd:element name="void" nillable="true" type="xsd:int"/>
+                    <xsd:element name="volatile" nillable="true" type="xsd:int"/>
+                    <xsd:element name="while" nillable="true" type="xsd:int"/>
+
+                    <xsd:element name="threadsafe" nillable="true" type="xsd:int"/>
+                    <xsd:element name="enum" nillable="true" type="xsd:int"/>
+                    <xsd:element name="Exception" nillable="true" type="xsd:int"/>
+                </sequence>
+            </complexType>
+
+            <xsd:element name="abstract" nillable="true" type="xsd:int"/>
+            <xsd:element name="assert" nillable="true" type="xsd:int"/>
+            <xsd:element name="boolean" nillable="true" type="xsd:int"/>
+            <xsd:element name="break" nillable="true" type="xsd:int"/>
+            <xsd:element name="byte" nillable="true" type="xsd:int"/>
+            <xsd:element name="case" nillable="true" type="xsd:int"/>
+            <xsd:element name="catch" nillable="true" type="xsd:int"/>
+            <xsd:element name="char" nillable="true" type="xsd:int"/>
+            <xsd:element name="class" nillable="true" type="xsd:int"/>
+            <xsd:element name="const" nillable="true" type="xsd:int"/>
+            <xsd:element name="continue" nillable="true" type="xsd:int"/>
+            <xsd:element name="default" nillable="true" type="xsd:int"/>
+            <xsd:element name="double" nillable="true" type="xsd:int"/>
+            <xsd:element name="else" nillable="true" type="xsd:int"/>
+            <xsd:element name="extends" nillable="true" type="xsd:int"/>
+            <xsd:element name="false" nillable="true" type="xsd:int"/>
+            <xsd:element name="final" nillable="true" type="xsd:int"/>
+            <xsd:element name="finally" nillable="true" type="xsd:int"/>
+            <xsd:element name="float" nillable="true" type="xsd:int"/>
+            <xsd:element name="for" nillable="true" type="xsd:int"/>
+            <xsd:element name="goto" nillable="true" type="xsd:int"/>
+            <xsd:element name="if" nillable="true" type="xsd:int"/>
+            <xsd:element name="implements" nillable="true" type="xsd:int"/>
+            <xsd:element name="import" nillable="true" type="xsd:int"/>
+            <xsd:element name="instanceof" nillable="true" type="xsd:int"/>
+            <xsd:element name="int" nillable="true" type="xsd:int"/>
+            <xsd:element name="interface" nillable="true" type="xsd:int"/>
+            <xsd:element name="long" nillable="true" type="xsd:int"/>
+            <xsd:element name="native" nillable="true" type="xsd:int"/>
+            <xsd:element name="new" nillable="true" type="xsd:int"/>
+            <xsd:element name="null" nillable="true" type="xsd:int"/>
+            <xsd:element name="package" nillable="true" type="xsd:int"/>
+            <xsd:element name="private" nillable="true" type="xsd:int"/>
+            <xsd:element name="protected" nillable="true" type="xsd:int"/>
+            <xsd:element name="public" nillable="true" type="xsd:int"/>
+            <xsd:element name="return" nillable="true" type="xsd:int"/>
+            <xsd:element name="short" nillable="true" type="xsd:int"/>
+            <xsd:element name="static" nillable="true" type="xsd:int"/>
+<!--  XMLBeans barfs - XMLBEANS-191          <xsd:element name="strictfp" nillable="true" type="xsd:int"/> -->
+            <xsd:element name="super" nillable="true" type="xsd:int"/>
+            <xsd:element name="switch" nillable="true" type="xsd:int"/>
+            <xsd:element name="synchronized" nillable="true" type="xsd:int"/>
+            <xsd:element name="this" nillable="true" type="xsd:int"/>
+            <xsd:element name="throw" nillable="true" type="xsd:int"/>
+            <xsd:element name="throws" nillable="true" type="xsd:int"/>
+            <xsd:element name="transient" nillable="true" type="xsd:int"/>
+            <xsd:element name="true" nillable="true" type="xsd:int"/>
+            <xsd:element name="try" nillable="true" type="xsd:int"/>
+            <xsd:element name="void" nillable="true" type="xsd:int"/>
+            <xsd:element name="volatile" nillable="true" type="xsd:int"/>
+            <xsd:element name="while" nillable="true" type="xsd:int"/>
+
+            <xsd:element name="threadsafe" nillable="true" type="xsd:int"/>
+            <xsd:element name="enum" nillable="true" type="xsd:int"/>
+            <xsd:element name="Exception" nillable="true" type="xsd:int"/>
+
+        </schema>
+    </wsdl:types>
+
+    <wsdl:message name="reservedWordsMsg">
+        <wsdl:part name="abstract" type="impl:abstract"/>
+        <wsdl:part name="assert" type="impl:assert"/>
+        <wsdl:part name="boolean" type="impl:boolean"/>
+        <wsdl:part name="break" type="impl:break"/>
+        <wsdl:part name="byte" type="impl:byte"/>
+        <wsdl:part name="case" type="impl:case"/>
+        <wsdl:part name="catch" type="impl:catch"/>
+        <wsdl:part name="char" type="impl:char"/>
+        <wsdl:part name="class" type="impl:class"/>
+        <wsdl:part name="const" type="impl:const"/>
+        <wsdl:part name="continue" type="impl:continue"/>
+        <wsdl:part name="default" type="impl:default"/>
+        <wsdl:part name="double" type="impl:double"/>
+        <wsdl:part name="else" type="impl:else"/>
+        <wsdl:part name="extends" type="impl:extends"/>
+        <wsdl:part name="false" type="impl:false"/>
+        <wsdl:part name="final" type="impl:final"/>
+        <wsdl:part name="finally" type="impl:finally"/>
+        <wsdl:part name="float" type="impl:float"/>
+        <wsdl:part name="for" type="impl:for"/>
+        <wsdl:part name="goto" type="impl:goto"/>
+        <wsdl:part name="if" type="impl:if"/>
+        <wsdl:part name="implements" type="impl:implements"/>
+        <wsdl:part name="import" type="impl:import"/>
+        <wsdl:part name="instanceof" type="impl:instanceof"/>
+        <wsdl:part name="int" type="impl:int"/>
+        <wsdl:part name="interface" type="impl:interface"/>
+        <wsdl:part name="long" type="impl:long"/>
+        <wsdl:part name="native" type="impl:native"/>
+        <wsdl:part name="new" type="impl:new"/>
+        <wsdl:part name="null" type="impl:null"/>
+        <wsdl:part name="package" type="impl:package"/>
+        <wsdl:part name="private" type="impl:private"/>
+        <wsdl:part name="protected" type="impl:protected"/>
+        <wsdl:part name="public" type="impl:public"/>
+        <wsdl:part name="return" type="impl:return"/>
+        <wsdl:part name="short" type="impl:short"/>
+        <wsdl:part name="static" type="impl:static"/>
+<!--  XMLBeans barfs - XMLBEANS-191      <wsdl:part name="strictfp" type="impl:strictfp"/> -->
+        <wsdl:part name="super" type="impl:super"/>
+        <wsdl:part name="switch" type="impl:switch"/>
+        <wsdl:part name="synchronized" type="impl:synchronized"/>
+        <wsdl:part name="this" type="impl:this"/>
+        <wsdl:part name="throw" type="impl:throw"/>
+        <wsdl:part name="throws" type="impl:throws"/>
+        <wsdl:part name="transient" type="impl:transient"/>
+        <wsdl:part name="true" type="impl:true"/>
+        <wsdl:part name="try" type="impl:try"/>
+        <wsdl:part name="void" type="impl:void"/>
+        <wsdl:part name="volatile" type="impl:volatile"/>
+        <wsdl:part name="while" type="impl:while"/>
+
+        <wsdl:part name="threadsafe" type="impl:threadsafe"/>
+        <wsdl:part name="enum" type="impl:enum"/>
+        <wsdl:part name="Exception" type="impl:Exception"/>
+    </wsdl:message>
+
+
+    <wsdl:portType name="ReservedWordsRpcLit">
+
+        <wsdl:operation name="abstract">
+            <wsdl:input message="tns:reservedWordsMsg" name="abstractReq"/>
+            <wsdl:output message="tns:reservedWordsMsg" name="abstractResp"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="Exception">
+            <wsdl:input message="tns:reservedWordsMsg" name="ExceptionReq"/>
+            <wsdl:output message="tns:reservedWordsMsg" name="ExceptionResp"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="dot.name1">
+            <wsdl:input message="tns:reservedWordsMsg" name="dot.nameReq"/>
+            <wsdl:output message="tns:reservedWordsMsg" name="dot.nameResp"/>
+        </wsdl:operation>
+
+
+        <wsdl:operation name="dot.name2">
+            <wsdl:input message="tns:reservedWordsMsg" name="dot.name2Req"/>
+            <wsdl:output message="tns:reservedWordsMsg" name="dot.name2Resp"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="dot-name3">
+            <wsdl:input message="tns:reservedWordsMsg" name="dot-nameReq"/>
+            <wsdl:output message="tns:reservedWordsMsg" name="dot-nameResp"/>
+        </wsdl:operation>
+        <wsdl:operation name="String">
+            <wsdl:input message="tns:reservedWordsMsg" name="String"/>
+            <wsdl:output message="tns:reservedWordsMsg" name="String"/>
+        </wsdl:operation>
+        <wsdl:operation name="dot_name4">
+            <wsdl:input message="tns:reservedWordsMsg" name="dot_nameReq"/>
+            <wsdl:output message="tns:reservedWordsMsg" name="dot_nameResp"/>
+        </wsdl:operation>
+        <wsdl:operation name="dot">
+            <wsdl:input message="tns:reservedWordsMsg" name="dotReq"/>
+            <wsdl:output message="tns:reservedWordsMsg" name="dotResp"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="do.t">
+            <wsdl:input message="tns:reservedWordsMsg" name="do.tReq"/>
+            <wsdl:output message="tns:reservedWordsMsg" name="do.tResp"/>
+        </wsdl:operation>
+        <wsdl:operation name="da-sh">
+            <wsdl:input message="tns:reservedWordsMsg" name="da-shReq"/>
+            <wsdl:output message="tns:reservedWordsMsg" name="da-shResp"/>
+        </wsdl:operation>
+        <wsdl:operation name="under_score">
+            <wsdl:input message="tns:reservedWordsMsg" name="under_score"/>
+            <wsdl:output message="tns:reservedWordsMsg" name="under_score"/>
+        </wsdl:operation>
+
+
+    </wsdl:portType>
+
+    <wsdl:binding name="ReservedWordsRpcLitSoapBinding" type="impl:ReservedWordsRpcLit">
+
+    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="abstract">
+        <wsdlsoap:operation soapAction="abstract"/>
+        <wsdl:input name="abstractReq">
+            <wsdlsoap:body namespace="http:/beehive.apache.org/rpc/reservedWords" use="literal"/>
+        </wsdl:input>
+        <wsdl:output name="abstractResp">
+          <wsdlsoap:body namespace="http:/beehive.apache.org/rpc/reservedWords" use="literal"/>
+       </wsdl:output>
+
+    </wsdl:operation>
+        <wsdl:operation name="Exception">
+            <wsdlsoap:operation soapAction="Exception"/>
+            <wsdl:input name="ExceptionReq">
+                <wsdlsoap:body namespace="http:/beehive.apache.org/rpc/reservedWords" use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="ExceptionResp">
+                <wsdlsoap:body namespace="http:/beehive.apache.org/rpc/reservedWords" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+
+    <wsdl:operation name="String">
+        <wsdlsoap:operation soapAction="String"/>
+        <wsdl:input name="StringReq">
+            <wsdlsoap:body namespace="http:/beehive.apache.org/rpc/reservedWords" use="literal"/>
+        </wsdl:input>
+        <wsdl:output name="StringResp">
+            <wsdlsoap:body namespace="http:/beehive.apache.org/rpc/reservedWords" use="literal"/>
+        </wsdl:output>
+    </wsdl:operation>
+
+    <wsdl:operation name="dot.name1">
+            <wsdlsoap:operation soapAction="dot.name1"/>
+            <wsdl:input name="dot.nameReq">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="dot.nameResp">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="dot.name2">
+            <wsdlsoap:operation soapAction="dot.name2"/>
+            <wsdl:input name="dot.name2Req">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="dot.name2Resp">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="dot-name3">
+            <wsdlsoap:operation soapAction="dot-name3"/>
+            <wsdl:input name="dot-nameReq">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="dot-nameResp">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="dot_name4">
+            <wsdlsoap:operation soapAction="dot_name4"/>
+            <wsdl:input name="dot_nameReq">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="dot_nameResp">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+
+        <wsdl:operation name="do.t">
+            <wsdlsoap:operation soapAction="do.t"/>
+            <wsdl:input name="do.tReq">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="do.tResp">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="da-sh">
+            <wsdlsoap:operation soapAction="da-sh"/>
+            <wsdl:input name="da-shReq">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="da-shResp">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="under_score">
+            <wsdlsoap:operation soapAction="under_score"/>
+            <wsdl:input name="under_scoreReq">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="under_scoreResp">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+    </wsdl:binding>
+
+    <wsdl:service name="ReservedWordsRpcLitSampleService">
+        <wsdl:port binding="tns:ReservedWordsRpcLitSoapBinding" name="ReservedWordsRpcLitSample">
+            <wsdlsoap:address location="http://localhost:8080/ReservedWordsSampleServiceWrappedSample.jws"/>
+        </wsdl:port>
+    </wsdl:service>
+
+</wsdl:definitions>