axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ngalla...@apache.org
Subject svn commit: r431394 - in /webservices/axis2/trunk/java/modules/jaxws: src/org/apache/axis2/jaxws/description/ test-resources/wsdl/ test/org/apache/axis2/jaxws/description/ test/org/apache/axis2/jaxws/framework/ test/org/apache/ws/ test/org/apache/ws/ax...
Date Mon, 14 Aug 2006 18:17:16 GMT
Author: ngallardo
Date: Mon Aug 14 11:17:15 2006
New Revision: 431394

URL: http://svn.apache.org/viewvc?rev=431394&view=rev
Log:
AXIS2-1024
Contributor: Jeff Barrett

This is Jeff's patch for this issue.

Added:
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/DocLitWrappedImplWithSEI.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/Echo.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoPort.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoResponse.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoService.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoServiceImplWithSEI.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/ObjectFactory.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/package-info.java
Modified:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionFactory.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescription.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescription.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java
    webservices/axis2/trunk/java/modules/jaxws/test-resources/wsdl/WSDLTests.wsdl
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionFactory.java?rev=431394&r1=431393&r2=431394&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionFactory.java
(original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionFactory.java
Mon Aug 14 11:17:15 2006
@@ -25,6 +25,7 @@
 import javax.jws.WebService;
 import javax.xml.namespace.QName;
 
+import org.apache.axis2.description.AxisService;
 import org.apache.axis2.jaxws.ExceptionFactory;
 
 /**
@@ -53,6 +54,11 @@
         
         serviceDescription.updateEndpointInterfaceDescription(sei, portQName);
         return serviceDescription;
+    }
+    
+    // TODO: (JLB) Taking an AxisService is only temporary; the AxisService should be created
when creating the ServiceDesc
+    public static ServiceDescription createServiceDescriptionFromServiceImpl(Class serviceImplClass,
AxisService axisService) {
+        return new ServiceDescription(serviceImplClass, axisService);
     }
 
 }

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescription.java?rev=431394&r1=431393&r2=431394&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescription.java
(original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescription.java
Mon Aug 14 11:17:15 2006
@@ -109,8 +109,7 @@
         if (portName == null) {
             String name = webServiceAnnotation.name();
             String tns = webServiceAnnotation.targetNamespace();
-            // TODO: (JLB) Check for name &/| tns null or empty string
-            // TODO: (JLB) Add tests for same
+            // TODO: (JLB) Check for name &/| tns null or empty string and add tests
for same
             portName = new QName(tns, name);
         }
         portQName = portName;        

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java?rev=431394&r1=431393&r2=431394&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java
(original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java
Mon Aug 14 11:17:15 2006
@@ -72,11 +72,6 @@
     private Class seiClass;
     
     void addOperation(OperationDescription operation) {
-        // TODO: This does not support overloaded operations.  While not supported by WS-I,
it IS supported by JAX-WS (p11).
-        //       Note that this also requires support in Axis2; currently WSDL11ToAxisServiceBuilder.populateOperations
does not
-        //       support overloaded methods in the WSDL; the operations are stored on AxisService
as children in a HashMap with the wsdl
-        //       operation name as the key.
-        // TODO: (JLB) Could make this a List collection and allow lookups on seiMethod (what
Proxy might use) as a workaround for now.
         operationDescriptions.add(operation);
     }
     
@@ -100,6 +95,31 @@
             addOperation(operation);
         }
 
+    }
+
+    /**
+     * Return the OperationDescriptions corresponding to a particular Java method name.
+     * Note that an array is returned because a method could be overloaded.
+     * 
+     * @param javaMethodName String representing a Java Method Name
+     * @return
+     */
+    public OperationDescription[] getOperation(String javaMethodName) {
+        if (javaMethodName == null) {
+            return null;
+        }
+        
+        ArrayList<OperationDescription> matchingOperations = new ArrayList<OperationDescription>();
+        for (OperationDescription operation:getOperations()) {
+            if (javaMethodName.equals(operation.getJavaMethodName())) {
+                matchingOperations.add(operation);
+            }
+        }
+        
+        if (matchingOperations.size() == 0)
+            return null;
+        else
+            return matchingOperations.toArray(new OperationDescription[0]);
     }
     
     public OperationDescription[] getOperations() {

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescription.java?rev=431394&r1=431393&r2=431394&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescription.java
(original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescription.java
Mon Aug 14 11:17:15 2006
@@ -70,6 +70,15 @@
 TBD
 
  */
+// TODO: Axis2 does not support overloaded operations, although EndpointInterfaceDescription.addOperation()
does support overloading
+//       of methods represented by OperationDescription classes.  However, the AxisOperation
contained in an OperationDescription
+//       does NOT support overloaded methods.
+//
+//       While overloading is not supported by WS-I, it IS supported by JAX-WS (p11).
+//       Note that this requires support in Axis2; currently WSDL11ToAxisServiceBuilder.populateOperations
does not
+//       support overloaded methods in the WSDL; the operations are stored on AxisService
as children in a HashMap with the wsdl
+//       operation name as the key.
+
 public class OperationDescription {
     private EndpointInterfaceDescription parentEndpointInterfaceDescription;
     private AxisOperation axisOperation;
@@ -109,6 +118,25 @@
         return operationName;
     }
     
+    // Java-related getters
+    public String getJavaMethodName() {
+        String returnString = null;
+        if (seiMethod != null) {
+            returnString = seiMethod.getName();
+        }
+        return returnString;
+    }
+    public String[] getJavaParameters() {
+        ArrayList<String> returnParameters = new ArrayList<String>();
+        if (seiMethod != null) {
+            Class[] paramaters = seiMethod.getParameterTypes();
+            for (Class param:paramaters) {
+                returnParameters.add(param.getName());
+            }
+        }
+        // TODO: (JLB) This is different than the rest, which return null instead of an empty
array
+        return returnParameters.toArray(new String[0]);
+    }
     /**
      * Note this will return NULL unless the operation was built via introspection on the
SEI.
      * In other words, it will return null if the operation was built with WSDL.
@@ -119,7 +147,8 @@
     }
 
     // Annotation-related getters
-    // TODO: (JLB) Should the getters return processed information rather than the actual
annotations?
+    // TODO: (JLB) The getters should return processed information rather than the actual
annotations?
+    // TODO: (JLB) Should there be protected getters to return annotations and WSDL constructs
directly
     // TODO: (JLB) These should cache the information rather than re-getting it each time.
     public RequestWrapper getRequestWrapper() {
         return seiMethod.getAnnotation(RequestWrapper.class);

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java?rev=431394&r1=431393&r2=431394&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java
(original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java
Mon Aug 14 11:17:15 2006
@@ -25,6 +25,7 @@
 
 import javax.xml.namespace.QName;
 import javax.xml.ws.WebServiceException;
+import javax.jws.WebService;
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
 import javax.wsdl.Service;
@@ -35,6 +36,7 @@
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.OutInAxisOperation;
 import org.apache.axis2.description.OutOnlyAxisOperation;
+import org.apache.axis2.description.Parameter;
 import org.apache.axis2.description.RobustOutOnlyAxisOperation;
 import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
 import org.apache.axis2.engine.AbstractDispatcher;
@@ -94,7 +96,11 @@
 
     private URL wsdlURL;
     private QName serviceQName;
-    private Class serviceClass;
+    
+    // Only ONE of the following will be set in a ServiceDescription, depending on whether
this Description
+    // was created from a service-requester or service-provider flow. 
+    private Class serviceClass;         // A service-requester generated service or generic
service class
+    private Class serviceImplClass;     // A service-provider service implementation class
     
     // TODO: Possibly remove Definition and delegate to the Defn on the AxisSerivce set as
a paramater by WSDLtoAxisServicBuilder?
     private WSDLWrapper wsdlWrapper; 
@@ -102,6 +108,8 @@
     private Hashtable<QName, EndpointDescription> endpointDescriptions = new Hashtable<QName,
EndpointDescription>();
     
     private static final Log log = LogFactory.getLog(AbstractDispatcher.class);
+
+    public static final String AXIS_SERVICE_PARAMETER = "org.apache.axis2.jaxws.description.ServiceDescription";
     
     /**
      * ServiceDescription contains the metadata (e.g. WSDL, annotations) relating to a Service.
@@ -126,6 +134,7 @@
         this.wsdlURL = wsdlURL;
         this.serviceQName = serviceQName;
         this.serviceClass = serviceClass;
+
         
         setupWsdlDefinition();
         // TODO: (JLB) Refactor this with the consideration of no WSDL/Generic Service/Annotated
SEI
@@ -133,6 +142,54 @@
         setupAxisService();
         buildDescriptionHierachy();
     }
+
+    ServiceDescription(Class serviceImplClass, AxisService axisService) {
+        this.serviceImplClass = serviceImplClass;
+        this.axisService = axisService;
+        // Add a reference to this ServiceDescription object to the AxisService
+        if (axisService != null) {
+            Parameter parameter = new Parameter();
+            parameter.setName(AXIS_SERVICE_PARAMETER);
+            parameter.setValue(this);
+            // TODO: (JLB) What to do if AxisFault
+            try {
+                axisService.addParameter(parameter);
+            } catch (AxisFault e) {
+                // TODO: (JLB) Throwing wrong exception
+                e.printStackTrace();
+                throw new UnsupportedOperationException("Can't add AxisService param: " +
e);
+            }
+        }
+        // Look for @WebService
+        // If @WebService.endpointInterface != null, use that
+        // Else use the public (including inherited) methods
+        WebService webServiceAnnotation = (WebService) this.serviceImplClass.getAnnotation(WebService.class);
+
+        // TODO: (JLB) Initial code path requires the @WebService annotation
+        if (webServiceAnnotation == null) {
+            throw new UnsupportedOperationException("TEMPORARY CODE: ServiceImpl bean must
have @WebServiceAnnotation");
+        }
+        if (webServiceAnnotation.endpointInterface() == null) {
+            throw new UnsupportedOperationException("TEMPORARY CODE: ServiceImpl bean must
have @WebServiceAnnotation.endpointInterface set");
+        }
+        
+        // TODO: (JLB) Using Class.forName() is probably not the best long-term way to get
the SEI class from the annotation
+        Class seiClass = null;
+        try {
+            seiClass = Class.forName(webServiceAnnotation.endpointInterface());
+        } catch (ClassNotFoundException e) {
+            // TODO: (JLB) Throwing wrong exception
+            e.printStackTrace();
+            throw new UnsupportedOperationException("Can't create SEI class: " + e);
+        }
+        // Create the EndpointDescription hierachy from the SEI annotations; Since the PortQName
is null, 
+        // it will be set to the annotation value.
+        EndpointDescription endpointDescription = new EndpointDescription(seiClass, null,
this);
+        addEndpointDescription(endpointDescription);
+
+    }
+
+
     
     /*=======================================================================*/
     /*=======================================================================*/
@@ -232,23 +289,23 @@
     }
     
     private void buildAxisServiceFromNoWSDL() {
-        // TODO: (JLB) Refactor this; probably just remove it
-        System.out.println("JLB: No WSDL provided; don't create any Axis Descriptions yet");
-        if (true) return;
-        // Patterned after ServiceClient.createAnonymousService()
-        String serviceName = null;
-        if (serviceQName != null) {
-            serviceName = serviceQName.getLocalPart();
-        }
-        else {
-            serviceName = ServiceClient.ANON_SERVICE;
-        }
-        // Make this service name unique.  The Axis2 engine assumes that a service it can
not find is a client-side service.
-        // See org.apache.axis2.client.ServiceClient.configureServiceClient()
-        axisService = new AxisService(serviceName + this.hashCode());
-        axisService.addOperation(new RobustOutOnlyAxisOperation(ServiceClient.ANON_ROBUST_OUT_ONLY_OP));
-        axisService.addOperation(new OutOnlyAxisOperation(ServiceClient.ANON_OUT_ONLY_OP));
-        axisService.addOperation(new OutInAxisOperation(ServiceClient.ANON_OUT_IN_OP));
+        // TODO: (JLB) Refactor this; probably just remove this method
+//        if (true) return;
+//        
+//        // Patterned after ServiceClient.createAnonymousService()
+//        String serviceName = null;
+//        if (serviceQName != null) {
+//            serviceName = serviceQName.getLocalPart();
+//        }
+//        else {
+//            serviceName = ServiceClient.ANON_SERVICE;
+//        }
+//        // Make this service name unique.  The Axis2 engine assumes that a service it can
not find is a client-side service.
+//        // See org.apache.axis2.client.ServiceClient.configureServiceClient()
+//        axisService = new AxisService(serviceName + this.hashCode());
+//        axisService.addOperation(new RobustOutOnlyAxisOperation(ServiceClient.ANON_ROBUST_OUT_ONLY_OP));
+//        axisService.addOperation(new OutOnlyAxisOperation(ServiceClient.ANON_OUT_ONLY_OP));
+//        axisService.addOperation(new OutInAxisOperation(ServiceClient.ANON_OUT_IN_OP));
     }
     
     private void buildDescriptionHierachy() {

Modified: webservices/axis2/trunk/java/modules/jaxws/test-resources/wsdl/WSDLTests.wsdl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test-resources/wsdl/WSDLTests.wsdl?rev=431394&r1=431393&r2=431394&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test-resources/wsdl/WSDLTests.wsdl (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test-resources/wsdl/WSDLTests.wsdl Mon Aug
14 11:17:15 2006
@@ -1,69 +1,69 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- WSDL description of the WSS Ping interop scenarios -->
-
-<definitions name="Echo"
-    targetNamespace="http://ws.apache.org/axis2/tests"
-    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"

-    xmlns:tns="http://ws.apache.org/axis2/tests"
-    xmlns="http://schemas.xmlsoap.org/wsdl/"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
-    xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
-    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
-    xmlns:intf="http://ws-policy.tests">
-    	  
-  <types>
-    <schema targetNamespace="http://xmlsoap.org/Echo"
-         xmlns="http://www.w3.org/2001/XMLSchema">
-      <complexType name="echo">
-        <sequence>
-          <element name="text" type="xsd:string" nillable="true"/>
-                 </sequence>
-      </complexType>
-      <complexType name="echoResponse">
-        <sequence>
-          <element name="text" type="xsd:string" nillable="true"/>
-                 </sequence>
-      </complexType>
-      <element name="Echo" type="tns:echo"/>
-      <element name="EchoResponse" type="tns:echoResponse"/>
-    </schema>
-  </types>
-
-  <message name="EchoRequest">
-    <part name="echo" element="tns:Echo"/>
-  </message>
-
-  <message name="EchoResponse">
-    <part name="echoResponse" element="tns:EchoResponse"/>
-  </message>
-
-  <portType name="EchoPort">
-    <operation name="Echo">
-      <input  message="tns:EchoRequest" wsa:Action="http://tests.org/echo/in" />
-      <output message="tns:EchoResponse" wsa:Action="http://tests.org/echo/out" />
-    </operation>
-  </portType>
-
-  <binding name="EchoBinding" type="tns:EchoPort">
-    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
-style="document"/>
-    <operation name="Echo">
-      <soap:operation soapAction="http://ws.apache.org/axis2/tests/echo"/>
-      <input> 
-        <soap:body use="literal"/>
-      </input>
-      <output>
-        <soap:body use="literal"/>
-      </output>
-    </operation>
-  </binding>
-   
-  <service name="EchoService">
-    <port name="EchoPort" binding="tns:EchoBinding">
-      <soap:address location="http://localhost:8080/axis2/services/EchoService"/>
-    </port>
-  </service>
-
-</definitions>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- WSDL description of the WSS Ping interop scenarios -->
+
+<definitions name="Echo"
+    targetNamespace="http://ws.apache.org/axis2/tests"
+    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"

+    xmlns:tns="http://ws.apache.org/axis2/tests"
+    xmlns="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+    xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
+    xmlns:intf="http://ws-policy.tests">
+    	  
+  <types>
+    <schema targetNamespace="http://ws.apache.org/axis2/tests"
+         xmlns="http://www.w3.org/2001/XMLSchema">
+      <complexType name="echo">
+        <sequence>
+          <element name="text" type="xsd:string" nillable="true"/>
+                 </sequence>
+      </complexType>
+      <complexType name="echoResponse">
+        <sequence>
+          <element name="text" type="xsd:string" nillable="true"/>
+                 </sequence>
+      </complexType>
+      <element name="Echo" type="tns:echo"/>
+      <element name="EchoResponse" type="tns:echoResponse"/>
+    </schema>
+  </types>
+
+  <message name="EchoRequest">
+    <part name="echo" element="tns:Echo"/>
+  </message>
+
+  <message name="EchoResponse">
+    <part name="echoResponse" element="tns:EchoResponse"/>
+  </message>
+
+  <portType name="EchoPort">
+    <operation name="Echo">
+      <input  message="tns:EchoRequest" wsa:Action="http://tests.org/echo/in" />
+      <output message="tns:EchoResponse" wsa:Action="http://tests.org/echo/out" />
+    </operation>
+  </portType>
+
+  <binding name="EchoBinding" type="tns:EchoPort">
+    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
+style="document"/>
+    <operation name="Echo">
+      <soap:operation soapAction="http://ws.apache.org/axis2/tests/echo"/>
+      <input> 
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+  </binding>
+   
+  <service name="EchoService">
+    <port name="EchoPort" binding="tns:EchoBinding">
+      <soap:address location="http://localhost:8080/axis2/services/EchoService"/>
+    </port>
+  </service>
+
+</definitions>

Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java?rev=431394&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java
(added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java
Mon Aug 14 11:17:15 2006
@@ -0,0 +1,192 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package org.apache.axis2.jaxws.description;
+
+import junit.framework.TestCase;
+
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Parameter;
+import org.apache.ws.axis2.tests.EchoPort;
+import org.apache.ws.axis2.tests.EchoServiceImplWithSEI;
+
+/**
+ * Tests the creation of the Description classes based on 
+ * a service implementation bean and various combinations of
+ * annotations
+ */
+public class AnnotationServiceImplDescriptionTests extends TestCase {
+    /**
+     * Create the description classes with a service implementation that
+     * contains the @WebService JSR-181 annotation which references an SEI. 
+     */
+    public void testServiceImplWithSEI() {
+        // Use the description factory directly; this will be done within the JAX-WS runtime
+        ServiceDescription serviceDesc = 
+            DescriptionFactory.createServiceDescriptionFromServiceImpl(EchoServiceImplWithSEI.class,
null);
+        assertNotNull(serviceDesc);
+        
+        EndpointDescription[] endpointDesc = serviceDesc.getEndpointDescriptions();
+        assertNotNull(endpointDesc);
+        assertEquals(endpointDesc.length, 1);
+
+        // TODO: How will the JAX-WS dispatcher get the appropriate port (i.e. endpoint)?
 Currently assumes [0]
+        EndpointInterfaceDescription endpointIntfDesc = endpointDesc[0].getEndpointInterfaceDescription();
+        assertNotNull(endpointIntfDesc);
+        assertEquals(endpointIntfDesc.getSEIClass(), EchoPort.class);
+        
+        OperationDescription[] operations = endpointIntfDesc.getOperation("badMethodName");
+        assertNull(operations);
+        operations = endpointIntfDesc.getOperation("");
+        assertNull(operations);
+        operations = endpointIntfDesc.getOperation((String) null);
+        assertNull(operations);
+        operations = endpointIntfDesc.getOperation("echo");
+        assertNotNull(operations);
+        assertEquals(operations.length, 1);
+        assertEquals(operations[0].getJavaMethodName(), "echo");
+
+        String[] paramTypes = operations[0].getJavaParameters();
+        assertNotNull(paramTypes);
+        assertEquals(paramTypes.length, 1);
+        assertEquals("javax.xml.ws.Holder", paramTypes[0]);
+    }
+    
+    public void testAxisServiceBackpointer() {
+        // Test that the AxisService points back to the ServiceDesc
+        // TODO: Temporary: Create an AxisService to pass in using WSDL
+        // TODO: Eventually remove AxisService paramater from the factory; AxisService should
be created (using annotations/wsdl/wsm etc)
+        
+        // Creating the AxisService this way is temporary; it should be created as part of
creating the ServiceDescription from the
+        // Service Impl.  For now, though, create a service-request-based ServiceDesc using
WSDL.  Then specificy that AxisService
+        // on the creation of the ServiceDesc from the service impl.  Verify that the AxisService
points to the ServiceDesc.
+        
+        AxisService axisService = new AxisService();
+        ServiceDescription serviceDesc = 
+            DescriptionFactory.createServiceDescriptionFromServiceImpl(EchoServiceImplWithSEI.class,
axisService);
+        assertNotNull(serviceDesc);
+        Parameter serviceDescParam = axisService.getParameter(ServiceDescription.AXIS_SERVICE_PARAMETER);
+        assertNotNull(serviceDescParam);
+        assertEquals(serviceDesc, serviceDescParam.getValue());
+        
+    }
+    
+    public void testOverloadedServiceImplWithSEI() {
+        ServiceDescription serviceDesc = 
+            DescriptionFactory.createServiceDescriptionFromServiceImpl(DocLitWrappedImplWithSEI.class,
null);
+        assertNotNull(serviceDesc);
+        
+        EndpointDescription[] endpointDesc = serviceDesc.getEndpointDescriptions();
+        assertNotNull(endpointDesc);
+        assertEquals(endpointDesc.length, 1);
+        // TODO: Using hardcoded endpointDesc[0] from ServiceDesc
+        EndpointInterfaceDescription endpointIntfDesc = endpointDesc[0].getEndpointInterfaceDescription();
+        assertNotNull(endpointIntfDesc);
+        assertEquals(endpointIntfDesc.getSEIClass(), DocLitWrappedProxy.class);
+
+        // Test for overloaded methods
+        // SEI defines two Java methods with this name
+        OperationDescription[] operations = endpointIntfDesc.getOperation("invokeAsync");
+        assertNotNull(operations);
+        assertEquals(operations.length, 2);
+        assertEquals(operations[0].getJavaMethodName(), "invokeAsync");
+        assertEquals(operations[1].getJavaMethodName(), "invokeAsync");
+        
+        // Check the parameters for each operation
+        boolean twoArgSignatureChecked = false;
+        boolean oneArgSignatureChecked = false;
+        for (OperationDescription operation:operations) {
+            String[] checkParams = operation.getJavaParameters();
+            if (checkParams.length == 1) {
+                // Check the one arguement signature
+                if (oneArgSignatureChecked) {
+                    fail("One Arg signature occured more than once");
+                }
+                else {
+                    oneArgSignatureChecked = true;
+                    assertEquals(checkParams[0], "java.lang.String");
+                }
+            }
+            else if (checkParams.length == 2) {
+                // Check the two arguement signature
+                if (twoArgSignatureChecked) {
+                    fail("Two Arg signature occured more than once");
+                }
+                else {
+                    twoArgSignatureChecked = true;
+                    assertEquals(checkParams[0], "java.lang.String" );
+                    assertEquals(checkParams[1], "javax.xml.ws.AsyncHandler");
+                }
+            }
+            else {
+                fail("Wrong number of parameters returned");
+            }
+            
+        }
+
+        // Test for a method with no parameters which also is not overloaded
+        operations = endpointIntfDesc.getOperation("oneWayVoid");
+        assertNotNull(operations);
+        assertEquals(operations.length, 1);
+        assertEquals(operations[0].getJavaMethodName(), "oneWayVoid");
+        String[] checkEmptyParams = operations[0].getJavaParameters();
+        assertNotNull(checkEmptyParams);
+        assertEquals(checkEmptyParams.length, 0);
+        
+        // Test for a method with parameters of primitive types.  Note
+        // this method IS overloaded
+        operations = endpointIntfDesc.getOperation("twoWayHolderAsync");
+        assertNotNull(operations);
+        assertEquals(operations.length, 2);
+        assertEquals(operations[0].getJavaMethodName(), "twoWayHolderAsync");
+        assertEquals(operations[1].getJavaMethodName(), "twoWayHolderAsync");
+        
+        // Check the parameters for each operation
+        twoArgSignatureChecked = false;
+        boolean threeArgSignatureChecked = false;
+        for (OperationDescription operation:operations) {
+            String[] checkParams = operation.getJavaParameters();
+            if (checkParams.length == 3) {
+                // Check the one arguement signature
+                if (threeArgSignatureChecked) {
+                    fail("Three Arg signature occured more than once");
+                }
+                else {
+                    threeArgSignatureChecked = true;
+                    assertEquals(checkParams[0], "java.lang.String");
+                    assertEquals(checkParams[1], "int");
+                    assertEquals(checkParams[2], "javax.xml.ws.AsyncHandler");
+                }
+            }
+            else if (checkParams.length == 2) {
+                // Check the two arguement signature
+                if (twoArgSignatureChecked) {
+                    fail("Two Arg signature occured more than once");
+                }
+                else {
+                    twoArgSignatureChecked = true;
+                    assertEquals(checkParams[0], "java.lang.String" );
+                    assertEquals(checkParams[1], "int");
+                }
+            }
+            else {
+                fail("Wrong number of parameters returned");
+            }
+        }
+    }
+}

Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/DocLitWrappedImplWithSEI.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/DocLitWrappedImplWithSEI.java?rev=431394&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/DocLitWrappedImplWithSEI.java
(added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/DocLitWrappedImplWithSEI.java
Mon Aug 14 11:17:15 2006
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package org.apache.axis2.jaxws.description;
+
+import javax.jws.WebService;
+
+/**
+ * 
+ */
+@WebService(serviceName = "DocLitWrappedService", endpointInterface="org.apache.axis2.jaxws.description.DocLitWrappedProxy")
+public class DocLitWrappedImplWithSEI {
+}

Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java?rev=431394&r1=431393&r2=431394&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java
(original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java
Mon Aug 14 11:17:15 2006
@@ -23,6 +23,7 @@
 
 import org.apache.axis2.jaxws.DispatchTestSuite;
 import org.apache.axis2.jaxws.description.AnnotationDescriptionTests;
+import org.apache.axis2.jaxws.description.AnnotationServiceImplDescriptionTests;
 import org.apache.axis2.jaxws.description.ServiceDescriptionTests;
 import org.apache.axis2.jaxws.description.WSDLDescriptionTests;
 import org.apache.axis2.jaxws.description.WSDLTests;
@@ -60,6 +61,7 @@
         suite.addTestSuite(ServiceDescriptionTests.class);
         suite.addTestSuite(WSDLDescriptionTests.class);
         suite.addTestSuite(AnnotationDescriptionTests.class);
+        suite.addTestSuite(AnnotationServiceImplDescriptionTests.class);
         
         suite.addTestSuite(HandlerChainProcessorTests.class);
         suite.addTestSuite(JaxwsMessageBundleTests.class);

Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/Echo.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/Echo.java?rev=431394&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/Echo.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/Echo.java Mon
Aug 14 11:17:15 2006
@@ -0,0 +1,62 @@
+
+package org.apache.ws.axis2.tests;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for echo complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within
this class.
+ * 
+ * <pre>
+ * &lt;complexType name="echo">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="text" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "echo", propOrder = {
+    "text"
+})
+public class Echo {
+
+    @XmlElement(required = true, nillable = true)
+    protected String text;
+
+    /**
+     * Gets the value of the text property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getText() {
+        return text;
+    }
+
+    /**
+     * Sets the value of the text property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setText(String value) {
+        this.text = value;
+    }
+
+}

Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoPort.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoPort.java?rev=431394&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoPort.java
(added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoPort.java
Mon Aug 14 11:17:15 2006
@@ -0,0 +1,34 @@
+
+package org.apache.ws.axis2.tests;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebParam.Mode;
+import javax.jws.WebService;
+import javax.xml.ws.Holder;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+
+/**
+ * This class was generated by the JAXWS SI.
+ * JAX-WS RI 2.0-b26-ea3
+ * Generated source version: 2.0
+ * 
+ */
+@WebService(name = "EchoPort", targetNamespace = "http://ws.apache.org/axis2/tests", wsdlLocation
= "\\work\\apps\\eclipse\\workspace\\axis2-live\\modules\\jaxws\\test-resources\\wsdl\\WSDLTests.wsdl")
+public interface EchoPort {
+
+
+    /**
+     * 
+     * @param text
+     */
+    @WebMethod(operationName = "Echo", action = "http://ws.apache.org/axis2/tests/echo")
+    @RequestWrapper(localName = "Echo", targetNamespace = "http://ws.apache.org/axis2/tests",
className = "org.apache.ws.axis2.tests.Echo")
+    @ResponseWrapper(localName = "EchoResponse", targetNamespace = "http://ws.apache.org/axis2/tests",
className = "org.apache.ws.axis2.tests.EchoResponse")
+    public void echo(
+        @WebParam(name = "text", targetNamespace = "", mode = Mode.INOUT)
+        Holder<String> text);
+
+}

Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoResponse.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoResponse.java?rev=431394&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoResponse.java
(added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoResponse.java
Mon Aug 14 11:17:15 2006
@@ -0,0 +1,62 @@
+
+package org.apache.ws.axis2.tests;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for echoResponse complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within
this class.
+ * 
+ * <pre>
+ * &lt;complexType name="echoResponse">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="text" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "echoResponse", propOrder = {
+    "text"
+})
+public class EchoResponse {
+
+    @XmlElement(required = true, nillable = true)
+    protected String text;
+
+    /**
+     * Gets the value of the text property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getText() {
+        return text;
+    }
+
+    /**
+     * Sets the value of the text property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setText(String value) {
+        this.text = value;
+    }
+
+}

Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoService.java?rev=431394&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoService.java
(added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoService.java
Mon Aug 14 11:17:15 2006
@@ -0,0 +1,55 @@
+
+package org.apache.ws.axis2.tests;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAXWS SI.
+ * JAX-WS RI 2.0-b26-ea3
+ * Generated source version: 2.0
+ * 
+ */
+@WebServiceClient(name = "EchoService", targetNamespace = "http://ws.apache.org/axis2/tests",
wsdlLocation = "\\work\\apps\\eclipse\\workspace\\axis2-live\\modules\\jaxws\\test-resources\\wsdl\\WSDLTests.wsdl")
+public class EchoService
+    extends Service
+{
+
+    private final static URL WSDL_LOCATION;
+    private final static QName ECHOSERVICE = new QName("http://ws.apache.org/axis2/tests",
"EchoService");
+    private final static QName ECHOPORT = new QName("http://ws.apache.org/axis2/tests", "EchoPort");
+
+    static {
+        URL url = null;
+        try {
+            url = new URL("file:/C:/work/apps/eclipse/workspace/axis2-live/modules/jaxws/test-resources/wsdl/WSDLTests.wsdl");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        WSDL_LOCATION = url;
+    }
+
+    public EchoService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public EchoService() {
+        super(WSDL_LOCATION, ECHOSERVICE);
+    }
+
+    /**
+     * 
+     * @return
+     *     returns EchoPort
+     */
+    @WebEndpoint(name = "EchoPort")
+    public EchoPort getEchoPort() {
+        return (EchoPort)super.getPort(ECHOPORT, EchoPort.class);
+    }
+
+}

Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoServiceImplWithSEI.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoServiceImplWithSEI.java?rev=431394&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoServiceImplWithSEI.java
(added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/EchoServiceImplWithSEI.java
Mon Aug 14 11:17:15 2006
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package org.apache.ws.axis2.tests;
+
+import javax.jws.WebService;
+
+/**
+ * 
+ */
+@WebService(serviceName = "EchoService", endpointInterface="org.apache.ws.axis2.tests.EchoPort")
+public class EchoServiceImplWithSEI {
+    // TODO: Test all conditions in JSR-181 spec Sec 3.1 p13  
+
+}

Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/ObjectFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/ObjectFactory.java?rev=431394&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/ObjectFactory.java
(added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/ObjectFactory.java
Mon Aug 14 11:17:15 2006
@@ -0,0 +1,71 @@
+
+package org.apache.ws.axis2.tests;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.apache.ws.axis2.tests package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _EchoResponse_QNAME = new QName("http://ws.apache.org/axis2/tests",
"EchoResponse");
+    private final static QName _Echo_QNAME = new QName("http://ws.apache.org/axis2/tests",
"Echo");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived
classes for package: org.apache.ws.axis2.tests
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link EchoResponse }
+     * 
+     */
+    public EchoResponse createEchoResponse() {
+        return new EchoResponse();
+    }
+
+    /**
+     * Create an instance of {@link Echo }
+     * 
+     */
+    public Echo createEcho() {
+        return new Echo();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link EchoResponse }{@code
>}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://ws.apache.org/axis2/tests", name = "EchoResponse")
+    public JAXBElement<EchoResponse> createEchoResponse(EchoResponse value) {
+        return new JAXBElement<EchoResponse>(_EchoResponse_QNAME, EchoResponse.class,
null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Echo }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://ws.apache.org/axis2/tests", name = "Echo")
+    public JAXBElement<Echo> createEcho(Echo value) {
+        return new JAXBElement<Echo>(_Echo_QNAME, Echo.class, null, value);
+    }
+
+}

Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/package-info.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/package-info.java?rev=431394&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/package-info.java
(added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/ws/axis2/tests/package-info.java
Mon Aug 14 11:17:15 2006
@@ -0,0 +1,2 @@
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://ws.apache.org/axis2/tests")
+package org.apache.ws.axis2.tests;



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org


Mime
View raw message