You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ba...@apache.org on 2006/11/03 20:50:36 UTC

svn commit: r470970 [1/2] - in /webservices/axis2/trunk/java/modules/jaxws: src/org/apache/axis2/jaxws/description/ src/org/apache/axis2/jaxws/description/impl/ test/org/apache/axis2/jaxws/description/ test/org/apache/axis2/jaxws/description/impl/ test...

Author: barrettj
Date: Fri Nov  3 11:50:33 2006
New Revision: 470970

URL: http://svn.apache.org/viewvc?view=rev&rev=470970
Log:
Additional refactoring to metadata abstraction layer: move implementations to impl package, move javadoc to interfaces from impls,
add annotation-specific getters to Java interfaces

Added:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java
      - copied, changed from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionUtils.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java
      - copied, changed from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java
      - copied, changed from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/FaultDescriptionImpl.java
      - copied, changed from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/FaultDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
      - copied, changed from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/ParameterDescriptionImpl.java
      - copied, changed from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ParameterDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/ServiceDescriptionImpl.java
      - copied, changed from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/impl/
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/impl/ServiceDescriptionTests.java
      - copied, changed from r470831, webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/ServiceDescriptionTests.java
Removed:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionUtils.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/FaultDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ParameterDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescriptionImpl.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/ServiceDescriptionTests.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/EndpointDescriptionJava.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/EndpointInterfaceDescriptionJava.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/FaultDescription.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/OperationDescriptionJava.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ParameterDescription.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationProviderImplDescriptionTests.java
    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/ServiceAnnotationTests.java
    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?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- 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 Fri Nov  3 11:50:33 2006
@@ -18,20 +18,15 @@
 
 package org.apache.axis2.jaxws.description;
 
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
 import java.net.URL;
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 
-import javax.jws.WebService;
 import javax.xml.namespace.QName;
 
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.jaxws.ExceptionFactory;
 import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
+import org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl;
 
 /**
  * Creates the JAX-WS metadata descritpion hierachy from some combinations of
@@ -45,38 +40,19 @@
     }
     
     public static ServiceDescription createServiceDescription(URL wsdlURL, QName serviceQName, Class serviceClass) {
-        return new ServiceDescriptionImpl(wsdlURL, serviceQName, serviceClass);
+        return DescriptionFactoryImpl.createServiceDescription(wsdlURL, serviceQName, serviceClass);
     }
     
     // TODO: 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 ServiceDescriptionImpl(serviceImplClass, axisService);
+        return DescriptionFactoryImpl.createServiceDescriptionFromServiceImpl(serviceImplClass, axisService);
     }
     
     //TODO: Determine whether this method is necessary...we may want to always build a 
     //ServiceDescription based on a particular impl class
     public static List<ServiceDescription> createServiceDescriptionFromDBCMap (
     		HashMap<String, DescriptionBuilderComposite> dbcMap) {
-
-    	List<ServiceDescription> serviceDescriptionList = new ArrayList<ServiceDescription>();
-
-    	for (Iterator<DescriptionBuilderComposite> nameIter = dbcMap.values().iterator(); 
-    		nameIter.hasNext();) {
-    		DescriptionBuilderComposite serviceImplComposite = nameIter.next();
-    		if(isImpl(serviceImplComposite)) {
-				// process this impl class
-        		ServiceDescription serviceDescription = new ServiceDescriptionImpl(dbcMap, 
-        				serviceImplComposite);
-        	   	serviceDescriptionList.add(serviceDescription);
-    		}
-    	}
-    	
-    	//TODO: Process all composites that are WebFaults...current thinking is that
-    	//      since WebFault annotations only exist on exception classes, then they 
-    	//      should be processed by themselves, and at this level
-    	
-    	
-    	return serviceDescriptionList;
+    	return DescriptionFactoryImpl.createServiceDescriptionFromDBCMap(dbcMap);
     }
 
     /**
@@ -87,43 +63,6 @@
      * @return
      */
     public static ServiceDescription updateEndpoint(ServiceDescription serviceDescription, Class sei, QName portQName, ServiceDescription.UpdateType updateType ) {
-        ((ServiceDescriptionImpl)serviceDescription).updateEndpointDescription(sei, portQName, updateType);
-        return serviceDescription;
+        return DescriptionFactoryImpl.updateEndpoint(serviceDescription, sei, portQName, updateType);
     }
-    
-    /**
-     * Builds a list of DescriptionBuilderComposite which is relevant to the particular
-     * class
-     * @param List<> A list of DescriptionBuilderComposite objects
-     * @param serviceImplName 
-     * @return List<>
-     */ 
-	private static List<DescriptionBuilderComposite> buildRelevantCompositeList(
-				List<DescriptionBuilderComposite> compositeList,
-				String serviceImplName) {
-		
-		List<DescriptionBuilderComposite> relevantList = compositeList;
-		
-		//TODO: Find the composite which represents this serviceImplName
-		
-		//TODO: Go through input list to find composites relevant to this one and add
-		//      to 'relevant list'
-		
-		return relevantList;
-	}
-	
-	/**
-	 * This method will be used to determine if a given DBC represents a
-	 * Web service implementation.
-	 * @param dbc - <code>DescriptionBuilderComposite</code>
-	 * @return - <code>boolean</code>
-	 */
-	private static boolean isImpl(DescriptionBuilderComposite dbc) {
-		if(!dbc.isInterface() && (dbc.getWebServiceAnnot() != null || 
-				dbc.getWebServiceProviderAnnot() != null)) {
-			return true;
-		}
-		return false;
-	}
-
 }

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?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- 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 Fri Nov  3 11:50:33 2006
@@ -25,6 +25,37 @@
 
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.description.AxisService;
+/**
+ * An EndpointDescription corresponds to a particular Service Implementation. It
+ * can correspond to either either a client to that impl or the actual service
+ * impl.
+ * 
+ * The EndpointDescription contains information that is relevant to both a
+ * Provider-based and SEI-based (aka Endpoint-based or Java-based) enpdoints.
+ * SEI-based endpoints (whether they have an explicit or implcit SEI) will have
+ * addtional metadata information in an EndpointInterfaceDescription class and
+ * sub-hierachy; Provider-based endpoitns do not have such a hierachy.
+ * 
+ * <pre>
+ * <b>EndpointDescription details</b>
+ * 
+ *     CORRESPONDS TO:      The endpoint (both Client and Server)      
+ *         
+ *     AXIS2 DELEGATE:      AxisService
+ *     
+ *     CHILDREN:            0..1 EndpointInterfaceDescription
+ *     
+ *     ANNOTATIONS:
+ *         WebService [181]
+ *         WebServiceProvider [224]
+ *             ServicMode [224]
+ *         BindingType [224]   
+ *     
+ *     WSDL ELEMENTS:
+ *         port
+ *         
+ *  </pre>       
+ */
 
 public interface EndpointDescription {
 

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescriptionJava.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescriptionJava.java?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescriptionJava.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescriptionJava.java Fri Nov  3 11:50:33 2006
@@ -18,21 +18,29 @@
  */
 package org.apache.axis2.jaxws.description;
 
+import javax.jws.WebService;
+import javax.xml.ws.BindingType;
 import javax.xml.ws.Service;
+import javax.xml.ws.ServiceMode;
+import javax.xml.ws.WebServiceProvider;
 
 /**
  * 
  */
 public interface EndpointDescriptionJava {
 
-    public abstract String getAnnoBindingTypeValue();
+    public WebService getAnnoWebService();
+    public WebServiceProvider getAnnoWebServiceProvider();
+    public String getAnnoWebServiceEndpointInterface();
+    public String getAnnoWebServiceName();
+    public String getAnnoWebServicePortName();
+    public String getAnnoWebServiceServiceName();
+    public String getAnnoWebServiceTargetNamespace();
+    public String getAnnoWebServiceWSDLLocation();
     
-    public abstract Service.Mode getAnnoServiceModeValue();
+    public BindingType getAnnoBindingType();
+    public String getAnnoBindingTypeValue();
     
-    public abstract String getAnnoWebServiceEndpointInterface();
-    public abstract String getAnnoWebServiceName();
-    public abstract String getAnnoWebServicePortName();
-    public abstract String getAnnoWebServiceServiceName();
-    public abstract String getAnnoWebServiceTargetNamespace();
-    public abstract String getAnnoWebServiceWSDLLocation();
+    public ServiceMode getAnnoServiceMode();
+    public Service.Mode getAnnoServiceModeValue();
 }

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?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- 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 Fri Nov  3 11:50:33 2006
@@ -22,6 +22,34 @@
 
 import javax.xml.namespace.QName;
 
+/**
+ * An EndpointInterfaceDescription corresponds to a particular SEI-based Service
+ * Implementation. It can correspond to either either a client to that impl or
+ * the actual service impl.
+ * 
+ * The EndpointInterfaceDescription contains information that is relevant only
+ * to an SEI-based (aka Endpoint-based or Java-based) enpdoint; Provider-based
+ * endpoint, which are not operation based and do not have an associated SEI,
+ * will not have an an EndpointInterfaceDescription class and sub-hierachy.
+ * 
+ * <pre>
+ * <b>EndpointInterfaceDescription details</b>
+ * 
+ *     CORRESPONDS TO:      An SEI (on both Client and Server)      
+ *         
+ *     AXIS2 DELEGATE:      none
+ *     
+ *     CHILDREN:            1..n OperationDescription
+ *     
+ *     ANNOTATIONS:
+ *         SOAPBinding [181]
+ *     
+ *     WSDL ELEMENTS:
+ *         portType
+ *         
+ *  </pre>       
+ */
+
 public interface EndpointInterfaceDescription {
     public abstract EndpointDescription getEndpointDescription();
     
@@ -32,7 +60,8 @@
     public abstract OperationDescription[] getOperationForJavaMethod(String javaMethodName);
     
     public abstract Class getSEIClass();
-    
+
+    // TODO: (JLB) These should return a locally defined Enums
     public abstract javax.jws.soap.SOAPBinding.ParameterStyle getSoapBindingParameterStyle();
     public abstract javax.jws.soap.SOAPBinding.Style getSoapBindingStyle();
     public abstract javax.jws.soap.SOAPBinding.Use getSoapBindingUse();

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescriptionJava.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescriptionJava.java?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescriptionJava.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescriptionJava.java Fri Nov  3 11:50:33 2006
@@ -18,7 +18,10 @@
 */
 package org.apache.axis2.jaxws.description;
 
+import javax.jws.soap.SOAPBinding;
+
 public interface EndpointInterfaceDescriptionJava {
+    public SOAPBinding getAnnoSoapBinding();
     public abstract javax.jws.soap.SOAPBinding.ParameterStyle getAnnoSoapBindingParameterStyle();
     public abstract javax.jws.soap.SOAPBinding.Style getAnnoSoapBindingStyle();
     public abstract javax.jws.soap.SOAPBinding.Use getAnnoSoapBindingUse();

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/FaultDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/FaultDescription.java?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/FaultDescription.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/FaultDescription.java Fri Nov  3 11:50:33 2006
@@ -18,6 +18,30 @@
 
 package org.apache.axis2.jaxws.description;
 
+/**
+ * A FaultDescription corresponds to a fault that can be thrown from an operation.  NOTE this it not 
+ * implemented yet!
+ * 
+ * FaultDescriptons contain information that is only relevent for and SEI-based service, i.e. one that is invoked via specific
+ * methods.  This class does not exist for Provider-based services (i.e. those that specify WebServiceProvider)
+ * 
+ * <pre>
+ * <b>OperationDescription details</b>
+ * 
+ *     CORRESPONDS TO:      An exception thrown by an operation on an SEI (on both Client and Server)      
+ *         
+ *     AXIS2 DELEGATE:      None
+ *     
+ *     CHILDREN:            None
+ *     
+ *     ANNOTATIONS:
+ *         WebFault [224]
+ *     
+ *     WSDL ELEMENTS:
+ *         fault message
+ *         
+ *  </pre>       
+ */
 public interface FaultDescription {
     public OperationDescription getOperationDescription();
     public String getBeanName();

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?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- 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 Fri Nov  3 11:50:33 2006
@@ -15,7 +15,6 @@
  * limitations under the License.
  */
 
-
 package org.apache.axis2.jaxws.description;
 
 import java.lang.reflect.Method;
@@ -23,7 +22,38 @@
 import javax.xml.namespace.QName;
 
 import org.apache.axis2.description.AxisOperation;
-
+/**
+ * An OperationDescripton corresponds to a method on an SEI.  That SEI could be explicit
+ * (i.e. WebService.endpointInterface=sei.class) or implicit (i.e. public methods on the service implementation
+ * are the contract and thus the implicit SEI).  Note that while OperationDescriptions are created on both the client
+ * and service side, implicit SEIs will only occur on the service side.
+ * 
+ * OperationDescriptons contain information that is only relevent for and SEI-based service, i.e. one that is invoked via specific
+ * methods.  This class does not exist for Provider-based services (i.e. those that specify WebServiceProvider)
+ * 
+ * <pre>
+ * <b>OperationDescription details</b>
+ * 
+ *     CORRESPONDS TO:      A single operation on an SEI (on both Client and Server)      
+ *         
+ *     AXIS2 DELEGATE:      AxisOperation
+ *     
+ *     CHILDREN:            0..n ParameterDescription
+ *                          0..n FaultDescription (Note: Not fully implemented)
+ *     
+ *     ANNOTATIONS:
+ *         WebMethod [181]
+ *         SOAPBinding [181]
+ *         Oneway [181]
+ *         WebResult [181]
+ *         RequestWrapper [224]
+ *         ResponseWrapper [224]
+ *     
+ *     WSDL ELEMENTS:
+ *         operation
+ *         
+ *  </pre>       
+ */
 public interface OperationDescription {
     public EndpointInterfaceDescription getEndpointInterfaceDescription();
     public FaultDescription[] getFaultDescriptions();
@@ -61,9 +91,9 @@
     
     public String[] getParamNames();
     
+    // TODO: (JLB) These should return Enums defined on this interface, not from the Annotation
     public javax.jws.soap.SOAPBinding.ParameterStyle getSoapBindingParameterStyle();
     public javax.jws.soap.SOAPBinding.Style getSoapBindingStyle();
     public javax.jws.soap.SOAPBinding.Use getSoapBindingUse();
-
 
 }

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescriptionJava.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescriptionJava.java?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescriptionJava.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescriptionJava.java Fri Nov  3 11:50:33 2006
@@ -18,17 +18,29 @@
 
 package org.apache.axis2.jaxws.description;
 
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
 import javax.jws.WebResult;
 import javax.jws.WebParam.Mode;
 import javax.jws.soap.SOAPBinding;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
 
 public interface OperationDescriptionJava {
     
     public WebResult getAnnoWebResult();
+    public boolean isWebResultAnnotationSpecified();
+    public boolean getAnnoWebResultHeader();
+    public String getAnnoWebResultName();
+    public String getAnnoWebResultPartName();
+    public String getAnnoWebResultTargetNamespace();
+    
+    public RequestWrapper getAnnoRequestWrapper();
     public String getAnnoRequestWrapperClassName();
     public String getAnnoRequestWrapperLocalName();
     public String getAnnoRequestWrapperTargetNamespace();
     
+    public ResponseWrapper getAnnoResponseWrapper();
     public String getAnnoResponseWrapperClassName();
     public String getAnnoResponseWrapperLocalName();
     public String getAnnoResponseWrapperTargetNamespace();
@@ -38,22 +50,20 @@
     public javax.jws.soap.SOAPBinding.Style getAnnoSoapBindingStyle();
     public javax.jws.soap.SOAPBinding.Use getAnnoSoapBindingUse();
     
+    public WebMethod getAnnoWebMethod();
     public String getAnnoWebMethodAction();
     public boolean getAnnoWebMethodExclude();
     public String getAnnoWebMethodOperationName();
 
+    // Note that the WebParam annotation is handled by ParameterDescription.  These
+    // WebParam-related methods are simply convenience methods.
     public Mode[] getAnnoWebParamModes();
     public String[] getAnnoWebParamNames();
     public String getAnnoWebParamTargetNamespace(String name);
     public String[] getAnnoWebParamTargetNamespaces();
     public boolean isAnnoWebParamHeader(String name);
     
-    public boolean isWebResultAnnotationSpecified();
-    public boolean getAnnoWebResultHeader();
-    public String getAnnoWebResultName();
-    public String getAnnoWebResultPartName();
-    public String getAnnoWebResultTargetNamespace();
-    
+    public Oneway getAnnoOneway();
     public boolean isAnnoOneWay();
     
 }

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ParameterDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ParameterDescription.java?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ParameterDescription.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ParameterDescription.java Fri Nov  3 11:50:33 2006
@@ -19,6 +19,35 @@
 package org.apache.axis2.jaxws.description;
 import javax.jws.WebParam;
 
+/**
+ * A ParameterDescripton corresponds to parameter to a method on an SEI. That
+ * SEI could be explicit (i.e. WebService.endpointInterface=sei.class) or
+ * implicit (i.e. public methods on the service implementation are the contract
+ * and thus the implicit SEI).
+ * 
+ * ParameterDescriptons contain information that is only relevent for and
+ * SEI-based service, i.e. one that is invoked via specific methods. This class
+ * does not exist for Provider-based services (i.e. those that specify
+ * WebServiceProvider)
+ * 
+ * <pre>
+ *  <b>ParameternDescription details</b>
+ *  
+ *      CORRESPONDS TO:      A parameter to a method on an SEI (on both Client and Server)      
+ *          
+ *      AXIS2 DELEGATE:      None
+ *      
+ *      CHILDREN:            None
+ *      
+ *      ANNOTATIONS:
+ *          WebParam [181]
+ *      
+ *      WSDL ELEMENTS:
+ *          message parts
+ *          
+ * </pre>
+ * 
+ */
 public interface ParameterDescription {
 // TODO: (JLB) Fix this to not be the WebParam mode
 //    public enum Mode{IN, OUT, INOUT};

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?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- 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 Fri Nov  3 11:50:33 2006
@@ -4,6 +4,43 @@
 
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.context.ConfigurationContext;
+/**
+ * A ServiceDescription corresponds to a Service under which there can be a
+ * collection of enpdoints. In WSDL 1.1 terms, then, a ServiceDescription
+ * corresponds to a wsdl:Service under which there are one or more wsdl:Port
+ * entries. The ServiceDescription is the root of the metdata abstraction
+ * Description hierachy.
+ * 
+ * The Description hierachy is:
+ * <pre>
+ * ServiceDescription
+ *     EndpointDescription[]
+ *         EndpointInterfaceDescription
+ *             OperationDescription[]
+ *                 ParameterDescription[]
+ *                 FaultDescription[]       (Note: Not implemented yet)
+ *
+ * <b>ServiceDescription details</b>
+ * 
+ *     CORRESPONDS TO:      
+ *         On the Client: The JAX-WS Service class or generated subclass.
+ *         
+ *         On the Server: The Service implementation.  Note that there is a 1..1 
+ *         correspondence between a ServiceDescription and EndpointDescription 
+ *         on the server side.
+ *        
+ *     AXIS2 DELEGATE:      None
+ *     
+ *     CHILDREN:            1..n EndpointDescription
+ *     
+ *     ANNOTATIONS:
+ *         None
+ *     
+ *     WSDL ELEMENTS:
+ *         service
+ *         
+ *  </pre>       
+ */
 
 public interface ServiceDescription {
     public enum UpdateType {GET_PORT, ADD_PORT, CREATE_DISPATCH}

Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java?view=auto&rev=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java Fri Nov  3 11:50:33 2006
@@ -0,0 +1,148 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.impl;
+
+/**
+ * 
+ */
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.jws.WebService;
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.jaxws.ExceptionFactory;
+import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
+import org.apache.axis2.jaxws.description.ServiceDescription;
+
+/**
+ * Creates the JAX-WS metadata descritpion hierachy from some combinations of
+ * WSDL, Java classes with annotations, and (in the future) deployment
+ * descriptors.
+ */
+public class DescriptionFactoryImpl {
+    /**
+     * A DescrptionFactory can not be instantiated; all methods are static.
+     */
+    private DescriptionFactoryImpl() {
+    }
+
+    public static ServiceDescription createServiceDescription(URL wsdlURL,
+            QName serviceQName, Class serviceClass) {
+        return new ServiceDescriptionImpl(wsdlURL, serviceQName, serviceClass);
+    }
+
+    // TODO: 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 ServiceDescriptionImpl(serviceImplClass, axisService);
+    }
+
+    // TODO: Determine whether this method is necessary...we may want to always
+    // build a
+    // ServiceDescription based on a particular impl class
+    public static List<ServiceDescription> createServiceDescriptionFromDBCMap(
+            HashMap<String, DescriptionBuilderComposite> dbcMap) {
+
+        List<ServiceDescription> serviceDescriptionList = new ArrayList<ServiceDescription>();
+
+        for (Iterator<DescriptionBuilderComposite> nameIter = dbcMap.values()
+                .iterator(); nameIter.hasNext();) {
+            DescriptionBuilderComposite serviceImplComposite = nameIter.next();
+            if (isImpl(serviceImplComposite)) {
+                // process this impl class
+                ServiceDescription serviceDescription = new ServiceDescriptionImpl(
+                        dbcMap, serviceImplComposite);
+                serviceDescriptionList.add(serviceDescription);
+            }
+        }
+
+        // TODO: Process all composites that are WebFaults...current thinking is
+        // that
+        // since WebFault annotations only exist on exception classes, then they
+        // should be processed by themselves, and at this level
+
+        return serviceDescriptionList;
+    }
+
+    /**
+     * Update an existing ServiceDescription with an annotated SEI
+     * 
+     * @param serviceDescription
+     * @param seiClass
+     * @param portName
+     *            Can be null
+     * @return
+     */
+    public static ServiceDescription updateEndpoint(
+            ServiceDescription serviceDescription, Class sei, QName portQName,
+            ServiceDescription.UpdateType updateType) {
+        ((ServiceDescriptionImpl) serviceDescription)
+                .updateEndpointDescription(sei, portQName, updateType);
+        return serviceDescription;
+    }
+
+    /**
+     * Builds a list of DescriptionBuilderComposite which is relevant to the
+     * particular class
+     * 
+     * @param List<>
+     *            A list of DescriptionBuilderComposite objects
+     * @param serviceImplName
+     * @return List<>
+     */
+    private static List<DescriptionBuilderComposite> buildRelevantCompositeList(
+            List<DescriptionBuilderComposite> compositeList,
+            String serviceImplName) {
+
+        List<DescriptionBuilderComposite> relevantList = compositeList;
+
+        // TODO: Find the composite which represents this serviceImplName
+
+        // TODO: Go through input list to find composites relevant to this one
+        // and add
+        // to 'relevant list'
+
+        return relevantList;
+    }
+
+    /**
+     * This method will be used to determine if a given DBC represents a Web
+     * service implementation.
+     * 
+     * @param dbc -
+     *            <code>DescriptionBuilderComposite</code>
+     * @return - <code>boolean</code>
+     */
+    private static boolean isImpl(DescriptionBuilderComposite dbc) {
+        if (!dbc.isInterface()
+                && (dbc.getWebServiceAnnot() != null || dbc
+                        .getWebServiceProviderAnnot() != null)) {
+            return true;
+        }
+        return false;
+    }
+}

Copied: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java (from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionUtils.java)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java?view=diff&rev=470970&p1=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionUtils.java&r1=470831&p2=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionUtils.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java Fri Nov  3 11:50:33 2006
@@ -16,7 +16,7 @@
  */
 
 
-package org.apache.axis2.jaxws.description;
+package org.apache.axis2.jaxws.description.impl;
 
 import java.util.ArrayList;
 import java.util.Iterator;

Copied: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java (from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescriptionImpl.java)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java?view=diff&rev=470970&p1=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescriptionImpl.java&r1=470831&p2=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescriptionImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java Fri Nov  3 11:50:33 2006
@@ -16,10 +16,9 @@
  */
 
 
-package org.apache.axis2.jaxws.description;
+package org.apache.axis2.jaxws.description.impl;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -45,45 +44,20 @@
 import org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder;
 import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
 import org.apache.axis2.jaxws.ExceptionFactory;
+import org.apache.axis2.jaxws.description.EndpointDescription;
+import org.apache.axis2.jaxws.description.EndpointDescriptionJava;
+import org.apache.axis2.jaxws.description.EndpointDescriptionWSDL;
+import org.apache.axis2.jaxws.description.EndpointInterfaceDescription;
+import org.apache.axis2.jaxws.description.ServiceDescription;
 import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
 import org.apache.axis2.jaxws.description.builder.MDQConstants;
 import org.apache.axis2.jaxws.i18n.Messages;
-import org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockImpl;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-
 /**
- * An EndpointDescription corresponds to a particular Service Implementation. It
- * can correspond to either either a client to that impl or the actual service
- * impl.
- * 
- * The EndpointDescription contains information that is relevant to both a
- * Provider-based and SEI-based (aka Endpoint-based or Java-based) enpdoints.
- * SEI-based endpoints (whether they have an explicit or implcit SEI) will have
- * addtional metadata information in an EndpointInterfaceDescription class and
- * sub-hierachy; Provider-based endpoitns do not have such a hierachy.
- * 
- * <pre>
- * <b>EndpointDescription details</b>
- * 
- *     CORRESPONDS TO:      The endpoint (both Client and Server)      
- *         
- *     AXIS2 DELEGATE:      AxisService
- *     
- *     CHILDREN:            0..1 EndpointInterfaceDescription
- *     
- *     ANNOTATIONS:
- *         WebService [181]
- *         WebServiceProvider [224]
- *             ServicMode [224]
- *         BindingType [224]   
- *     
- *     WSDL ELEMENTS:
- *         port
- *         
- *  </pre>       
+ * @see ../EndpointDescription
+ *
  */
-
 /*
  * TODO: EndpointDescription should be created via AxisService objects and not directly from WSDL
  * IMPORTANT NOTE: Axis2 currently only supports 1 service and 1 port under that service.  When that is
@@ -760,13 +734,13 @@
     
     public String getAnnoWebServiceWSDLLocation() {
         if (annotation_WsdlLocation == null) {
-            if (getWebServiceAnnotation() != null 
-                    && !DescriptionUtils.isEmpty(getWebServiceAnnotation().wsdlLocation())) {
-                annotation_WsdlLocation = getWebServiceAnnotation().wsdlLocation();
-            }
-            else if (getWebServiceProviderAnnotation() != null 
-                    && !DescriptionUtils.isEmpty(getWebServiceProviderAnnotation().wsdlLocation())) {
-                annotation_WsdlLocation = getWebServiceProviderAnnotation().wsdlLocation();
+            if (getAnnoWebService() != null 
+                    && !DescriptionUtils.isEmpty(getAnnoWebService().wsdlLocation())) {
+                annotation_WsdlLocation = getAnnoWebService().wsdlLocation();
+            }
+            else if (getAnnoWebServiceProvider() != null 
+                    && !DescriptionUtils.isEmpty(getAnnoWebServiceProvider().wsdlLocation())) {
+                annotation_WsdlLocation = getAnnoWebServiceProvider().wsdlLocation();
             }
             else {
                 // There is no default value per JSR-181 MR Sec 4.1 pg 16
@@ -778,13 +752,13 @@
 
     public String getAnnoWebServiceServiceName() {
         if (annotation_ServiceName == null) {
-            if (getWebServiceAnnotation() != null 
-                    && !DescriptionUtils.isEmpty(getWebServiceAnnotation().serviceName())) {
-                annotation_ServiceName = getWebServiceAnnotation().serviceName();
-            }
-            else if (getWebServiceProviderAnnotation() != null 
-                    && !DescriptionUtils.isEmpty(getWebServiceProviderAnnotation().serviceName())) {
-                annotation_ServiceName = getWebServiceProviderAnnotation().serviceName();
+            if (getAnnoWebService() != null 
+                    && !DescriptionUtils.isEmpty(getAnnoWebService().serviceName())) {
+                annotation_ServiceName = getAnnoWebService().serviceName();
+            }
+            else if (getAnnoWebServiceProvider() != null 
+                    && !DescriptionUtils.isEmpty(getAnnoWebServiceProvider().serviceName())) {
+                annotation_ServiceName = getAnnoWebServiceProvider().serviceName();
             }
             else {
                 // Default value is the "simple name" of the class or interface + "Service"
@@ -801,13 +775,13 @@
     
     public String getAnnoWebServicePortName() {
         if (annotation_PortName == null) {
-            if (getWebServiceAnnotation() != null
-                    && !DescriptionUtils.isEmpty(getWebServiceAnnotation().portName())) {
-                annotation_PortName = getWebServiceAnnotation().portName();
-            }
-            else if (getWebServiceProviderAnnotation() != null
-                    && !DescriptionUtils.isEmpty(getWebServiceProviderAnnotation().portName())) {
-                annotation_PortName = getWebServiceProviderAnnotation().portName();
+            if (getAnnoWebService() != null
+                    && !DescriptionUtils.isEmpty(getAnnoWebService().portName())) {
+                annotation_PortName = getAnnoWebService().portName();
+            }
+            else if (getAnnoWebServiceProvider() != null
+                    && !DescriptionUtils.isEmpty(getAnnoWebServiceProvider().portName())) {
+                annotation_PortName = getAnnoWebServiceProvider().portName();
             }
             else {
                 // Default the value
@@ -838,13 +812,13 @@
 
     public String getAnnoWebServiceTargetNamespace() {
         if (annotation_TargetNamespace == null) {
-            if (getWebServiceAnnotation() != null 
-                    && !DescriptionUtils.isEmpty(getWebServiceAnnotation().targetNamespace())) {
-                annotation_TargetNamespace = getWebServiceAnnotation().targetNamespace();
-            }
-            else if (getWebServiceProviderAnnotation() != null
-                    && !DescriptionUtils.isEmpty(getWebServiceProviderAnnotation().targetNamespace())) {
-                annotation_TargetNamespace = getWebServiceProviderAnnotation().targetNamespace();
+            if (getAnnoWebService() != null 
+                    && !DescriptionUtils.isEmpty(getAnnoWebService().targetNamespace())) {
+                annotation_TargetNamespace = getAnnoWebService().targetNamespace();
+            }
+            else if (getAnnoWebServiceProvider() != null
+                    && !DescriptionUtils.isEmpty(getAnnoWebServiceProvider().targetNamespace())) {
+                annotation_TargetNamespace = getAnnoWebServiceProvider().targetNamespace();
             }
             else {
                 // Default value per JSR-181 MR Sec 4.1 pg 15 defers to "Implementation defined, 
@@ -988,7 +962,7 @@
     // ANNOTATION: WebServiceProvider
     // ===========================================
 
-    WebServiceProvider getWebServiceProviderAnnotation() {
+    public WebServiceProvider getAnnoWebServiceProvider() {
         return webServiceProviderAnnotation;
     }
 
@@ -996,16 +970,16 @@
     // ANNOTATION: WebService
     // ===========================================
 
-    WebService getWebServiceAnnotation() {
+    public WebService getAnnoWebService() {
         return webServiceAnnotation;
     }
     
     public String getAnnoWebServiceEndpointInterface() {
         // TODO: Validation: Not allowed on WebServiceProvider
         if (webService_EndpointInterface == null) {
-            if (!isProviderBased() && getWebServiceAnnotation() != null
-                    && !DescriptionUtils.isEmpty(getWebServiceAnnotation().endpointInterface())) {
-                webService_EndpointInterface = getWebServiceAnnotation().endpointInterface();
+            if (!isProviderBased() && getAnnoWebService() != null
+                    && !DescriptionUtils.isEmpty(getAnnoWebService().endpointInterface())) {
+                webService_EndpointInterface = getAnnoWebService().endpointInterface();
             }
             else {
                 // This element is not valid on a WebServiceProvider annotation
@@ -1030,9 +1004,9 @@
     	
     	if (webService_Name == null) {
     		if (!isProviderBased()) {
-    			if (getWebServiceAnnotation() != null 
-    					&& !DescriptionUtils.isEmpty(getWebServiceAnnotation().name())) {
-    				webService_Name = getWebServiceAnnotation().name();
+    			if (getAnnoWebService() != null 
+    					&& !DescriptionUtils.isEmpty(getAnnoWebService().name())) {
+    				webService_Name = getAnnoWebService().name();
      			}
     			else {
     				if (getServiceDescriptionImpl().isDBCMap()) {
@@ -1057,8 +1031,7 @@
     // ===========================================
     // ANNOTATION: ServiceMode
     // ===========================================
-    // REVIEW: Should this be returning an enum other than the one defined within the annotation?
-    ServiceMode getAnnoServiceMode() {
+    public ServiceMode getAnnoServiceMode() {
         
     	if (serviceModeAnnotation == null) {
         	if (getServiceDescriptionImpl().isDBCMap()) {
@@ -1094,7 +1067,7 @@
     // ANNOTATION: BindingType
     // ===========================================
 
-    BindingType getAnnoBindingType() {
+    public BindingType getAnnoBindingType() {
     	if (bindingTypeAnnotation == null) {
         	if (getServiceDescriptionImpl().isDBCMap()) {
         		bindingTypeAnnotation = composite.getBindingTypeAnnot();

Copied: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java (from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescriptionImpl.java)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java?view=diff&rev=470970&p1=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescriptionImpl.java&r1=470831&p2=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescriptionImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java Fri Nov  3 11:50:33 2006
@@ -16,7 +16,7 @@
  */
 
 
-package org.apache.axis2.jaxws.description;
+package org.apache.axis2.jaxws.description.impl;
 
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
@@ -29,69 +29,21 @@
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.jaxws.ExceptionFactory;
+import org.apache.axis2.jaxws.description.EndpointDescription;
+import org.apache.axis2.jaxws.description.EndpointInterfaceDescription;
+import org.apache.axis2.jaxws.description.EndpointInterfaceDescriptionJava;
+import org.apache.axis2.jaxws.description.EndpointInterfaceDescriptionWSDL;
+import org.apache.axis2.jaxws.description.OperationDescription;
 import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
 import org.apache.axis2.jaxws.description.builder.MDQConstants;
 import org.apache.axis2.jaxws.description.builder.MethodDescriptionComposite;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.log4j.BasicConfigurator;
+//import org.apache.log4j.BasicConfigurator;
 
 /**
- * An EndpointInterfaceDescription corresponds to a particular SEI-based Service
- * Implementation. It can correspond to either either a client to that impl or
- * the actual service impl.
- * 
- * The EndpointInterfaceDescription contains information that is relevant only
- * to an SEI-based (aka Endpoint-based or Java-based) enpdoint; Provider-based
- * endpoint, which are not operation based and do not have an associated SEI,
- * will not have an an EndpointInterfaceDescription class and sub-hierachy.
- * 
- * <pre>
- * <b>EndpointInterfaceDescription details</b>
- * 
- *     CORRESPONDS TO:      An SEI (on both Client and Server)      
- *         
- *     AXIS2 DELEGATE:      none
- *     
- *     CHILDREN:            1..n OperationDescription
- *     
- *     ANNOTATIONS:
- *         SOAPBinding [181]
- *     
- *     WSDL ELEMENTS:
- *         portType
- *         
- *  </pre>       
- */
-
-/*
-Java Name: SEI Class name
-
-Axis2 Delegate: none
-
-JSR-181 Annotations: 
-@WebService Note this can be specified on the endpoint Impl without an SEI
-- name its the PortType Class Name, one you get with getPort() call in Service Delegate [NT]
-- targetNamespace
-- serviceName default is portType+Service. Should we use this if Service.create call does not provide/have ServiceQname?[NT]
-- wsdlLocation if no wsdl location provided the read this annotation. Should this override what is client sets?[NT]
-- endpointInterface Will not be present on interfaces (SEI), so I will use this to figure out if the client Call is Extension of Service or is SEI by looking at this annotation. [NT]
-- portName ok so JSR 181 spec I have does not have this annotation but JAXWS spec I have has this. So if ServiceDelegate.getPort() does not have port name use this annotation and derive portName [NT]
-@SOAPBinding This one is important for Proxy especially. [NT]
-- style: DOCUMENT | RPC tells me if it is doc or rpc[NT]
-- use: LITERAL | ENCODED Always literal for IBM[NT]
-- parameterStyle:  BARE | WRAPPED tells me if the wsdl is wrapped or not wrapped [NT]
-@HandlerChain(file, name)
-TBD
-
-WSDL Elements
-<portType
-<binding used for operation parameter bindings below
-
-Properties available to JAXWS runtime: 
-getHandlerList() returns a live List of handlers which can be modified; this MUST be cloned before being used as an actual handler chain; Note this needs to consider if any @HandlerChain annotations are in the ServiceDescription as well
-TBD
-
+ * @see ../EndpointInterfaceDescription
+ *
  */
 class EndpointInterfaceDescriptionImpl 
 implements EndpointInterfaceDescription, EndpointInterfaceDescriptionJava, EndpointInterfaceDescriptionWSDL {
@@ -173,7 +125,7 @@
         parentEndpointDescription = parent;
         this.dbc = dbc;
         
-        BasicConfigurator.configure();
+//        BasicConfigurator.configure();
         
         //TODO: Determine if the isClass parameter is really necessary
         
@@ -224,7 +176,7 @@
         //          BindingTypeAnnot (JAXWS Sec. 7.8 -- Used to set either the AS.endpoint, or AS.SoapNSUri)
         //          WebServiceContextAnnot (JAXWS via injection)
         
-        BasicConfigurator.resetConfiguration();
+//        BasicConfigurator.resetConfiguration();
     }
 
     private static Method[] getSEIMethods(Class sei) {
@@ -451,7 +403,7 @@
     // ========================================
     // SOAP Binding annotation realted methods
     // ========================================
-    SOAPBinding getSoapBinding(){
+    public SOAPBinding getAnnoSoapBinding(){
         // TODO: Test with sei Null, not null, SOAP Binding annotated, not annotated
 
         if (soapBindingAnnotation == null) {
@@ -473,8 +425,8 @@
     
     public javax.jws.soap.SOAPBinding.Style getAnnoSoapBindingStyle() {
         if (soapBindingStyle == null) {
-            if (getSoapBinding() != null && getSoapBinding().style() != null) {
-                soapBindingStyle = getSoapBinding().style();
+            if (getAnnoSoapBinding() != null && getAnnoSoapBinding().style() != null) {
+                soapBindingStyle = getAnnoSoapBinding().style();
             }
             else {
                 soapBindingStyle = SOAPBinding_Style_DEFAULT;
@@ -490,8 +442,8 @@
     
     public javax.jws.soap.SOAPBinding.Use getAnnoSoapBindingUse() {
         if (soapBindingUse == null) {
-            if (getSoapBinding() != null && getSoapBinding().use() != null) {
-                soapBindingUse = getSoapBinding().use();
+            if (getAnnoSoapBinding() != null && getAnnoSoapBinding().use() != null) {
+                soapBindingUse = getAnnoSoapBinding().use();
             }
             else {
                 soapBindingUse = SOAPBinding_Use_DEFAULT;
@@ -506,8 +458,8 @@
     }
     public javax.jws.soap.SOAPBinding.ParameterStyle getAnnoSoapBindingParameterStyle() {
         if (soapParameterStyle == null) {
-            if (getSoapBinding() != null && getSoapBinding().parameterStyle() != null) {
-                soapParameterStyle = getSoapBinding().parameterStyle();
+            if (getAnnoSoapBinding() != null && getAnnoSoapBinding().parameterStyle() != null) {
+                soapParameterStyle = getAnnoSoapBinding().parameterStyle();
             }
             else {
                 soapParameterStyle = SOAPBinding_ParameterStyle_DEFAULT;

Copied: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/FaultDescriptionImpl.java (from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/FaultDescriptionImpl.java)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/FaultDescriptionImpl.java?view=diff&rev=470970&p1=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/FaultDescriptionImpl.java&r1=470831&p2=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/FaultDescriptionImpl.java&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/FaultDescriptionImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/FaultDescriptionImpl.java Fri Nov  3 11:50:33 2006
@@ -16,33 +16,17 @@
  */
 
 
-package org.apache.axis2.jaxws.description;
+package org.apache.axis2.jaxws.description.impl;
 
 import javax.xml.ws.WebFault;
 
+import org.apache.axis2.jaxws.description.FaultDescription;
+import org.apache.axis2.jaxws.description.FaultDescriptionJava;
+import org.apache.axis2.jaxws.description.FaultDescriptionWSDL;
+import org.apache.axis2.jaxws.description.OperationDescription;
 /**
- * A FaultDescription corresponds to a fault that can be thrown from an operation.  NOTE this it not 
- * implemented yet!
- * 
- * FaultDescriptons contain information that is only relevent for and SEI-based service, i.e. one that is invoked via specific
- * methods.  This class does not exist for Provider-based services (i.e. those that specify WebServiceProvider)
- * 
- * <pre>
- * <b>OperationDescription details</b>
- * 
- *     CORRESPONDS TO:      An exception thrown by an operation on an SEI (on both Client and Server)      
- *         
- *     AXIS2 DELEGATE:      None
- *     
- *     CHILDREN:            None
- *     
- *     ANNOTATIONS:
- *         WebFault [224]
- *     
- *     WSDL ELEMENTS:
- *         fault message
- *         
- *  </pre>       
+ * @see ../FaultDescription
+ *
  */
 // TODO: This class is not implemented yet or used from OperationDescription
 class FaultDescriptionImpl implements FaultDescription, FaultDescriptionJava, FaultDescriptionWSDL {

Copied: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java (from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescriptionImpl.java)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java?view=diff&rev=470970&p1=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescriptionImpl.java&r1=470831&p2=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/OperationDescriptionImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java Fri Nov  3 11:50:33 2006
@@ -16,18 +16,16 @@
  */
 
 
-package org.apache.axis2.jaxws.description;
+package org.apache.axis2.jaxws.description.impl;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.lang.reflect.Type;
 import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.List;
 
 import javax.jws.Oneway;
 import javax.jws.WebMethod;
-import javax.jws.WebParam;
 import javax.jws.WebResult;
 import javax.jws.WebParam.Mode;
 import javax.jws.soap.SOAPBinding;
@@ -39,61 +37,23 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisOperationFactory;
-import org.apache.axis2.description.InOnlyAxisOperation;
-import org.apache.axis2.description.InOutAxisOperation;
-import org.apache.axis2.description.OutInAxisOperation;
-import org.apache.axis2.description.OutOnlyAxisOperation;
-import org.apache.axis2.engine.MessageReceiver;
-import org.apache.axis2.i18n.Messages;
-import org.apache.axis2.jaxws.description.builder.HandlerChainAnnot;
+import org.apache.axis2.jaxws.description.EndpointDescriptionJava;
+import org.apache.axis2.jaxws.description.EndpointInterfaceDescription;
+import org.apache.axis2.jaxws.description.FaultDescription;
+import org.apache.axis2.jaxws.description.OperationDescription;
+import org.apache.axis2.jaxws.description.OperationDescriptionJava;
+import org.apache.axis2.jaxws.description.OperationDescriptionWSDL;
+import org.apache.axis2.jaxws.description.ParameterDescription;
+import org.apache.axis2.jaxws.description.ParameterDescriptionJava;
 import org.apache.axis2.jaxws.description.builder.MethodDescriptionComposite;
 import org.apache.axis2.jaxws.description.builder.OneWayAnnot;
 import org.apache.axis2.jaxws.description.builder.ParameterDescriptionComposite;
-import org.apache.axis2.jaxws.description.builder.RequestWrapperAnnot;
-import org.apache.axis2.jaxws.description.builder.ResponseWrapperAnnot;
-import org.apache.axis2.jaxws.description.builder.SoapBindingAnnot;
-import org.apache.axis2.jaxws.description.builder.WebEndpointAnnot;
-import org.apache.axis2.jaxws.description.builder.WebMethodAnnot;
-import org.apache.axis2.jaxws.description.builder.WebResultAnnot;
-import org.apache.axis2.jaxws.description.builder.WebServiceContextAnnot;
-import org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot;
 import org.apache.axis2.wsdl.WSDLConstants;
-import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004Constants;
-import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2006Constants;
 
 /**
- * An OperationDescripton corresponds to a method on an SEI.  That SEI could be explicit
- * (i.e. WebService.endpointInterface=sei.class) or implicit (i.e. public methods on the service implementation
- * are the contract and thus the implicit SEI).  Note that while OperationDescriptions are created on both the client
- * and service side, implicit SEIs will only occur on the service side.
- * 
- * OperationDescriptons contain information that is only relevent for and SEI-based service, i.e. one that is invoked via specific
- * methods.  This class does not exist for Provider-based services (i.e. those that specify WebServiceProvider)
- * 
- * <pre>
- * <b>OperationDescription details</b>
- * 
- *     CORRESPONDS TO:      A single operation on an SEI (on both Client and Server)      
- *         
- *     AXIS2 DELEGATE:      AxisOperation
- *     
- *     CHILDREN:            0..n ParameterDescription
- *                          0..n FaultDescription (Note: Not fully implemented)
- *     
- *     ANNOTATIONS:
- *         WebMethod [181]
- *         SOAPBinding [181]
- *         Oneway [181]
- *         WebResult [181]
- *         RequestWrapper [224]
- *         ResponseWrapper [224]
- *     
- *     WSDL ELEMENTS:
- *         operation
- *         
- *  </pre>       
+ * @see ../OperationDescription
+ *
  */
-
 // 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.
@@ -411,7 +371,7 @@
     // =====================================
     // ANNOTATION: WebMethod
     // =====================================
-    WebMethod getWebMethod() {
+    public WebMethod getAnnoWebMethod() {
         return webMethodAnnotation;
     }
     
@@ -481,8 +441,8 @@
     
     public String getAnnoWebMethodAction() {
         if (webMethodAction == null) {
-            if (getWebMethod() != null && !DescriptionUtils.isEmpty(getWebMethod().action())) {
-                webMethodAction = getWebMethod().action();
+            if (getAnnoWebMethod() != null && !DescriptionUtils.isEmpty(getAnnoWebMethod().action())) {
+                webMethodAction = getAnnoWebMethod().action();
             }
             else {
                 webMethodAction = WebMethod_Action_DEFAULT;
@@ -501,8 +461,8 @@
             // TODO: Validation: This element is not allowed on endpoint interfaces
             // Unlike the elements with a String value, if the annotation is present, exclude will always 
             // return a usable value since it will default to FALSE if the element is not present.
-            if (getWebMethod() != null) {
-                webMethodExclude = new Boolean(getWebMethod().exclude());
+            if (getAnnoWebMethod() != null) {
+                webMethodExclude = new Boolean(getAnnoWebMethod().exclude());
             }
             else {
                 webMethodExclude = WebMethod_Exclude_DEFAULT;
@@ -515,7 +475,7 @@
     // ==========================================
     // ANNOTATION: RequestWrapper
     // ==========================================
-    RequestWrapper getRequestWrapper() {
+    public RequestWrapper getAnnoRequestWrapper() {
         if (requestWrapperAnnotation == null) {
             if (!isDBC()) {
                 requestWrapperAnnotation = seiMethod.getAnnotation(RequestWrapper.class); 
@@ -542,9 +502,9 @@
             return null;
         }
         if (requestWrapperLocalName == null) {
-            if (getRequestWrapper() != null
-                    && !DescriptionUtils.isEmpty(getRequestWrapper().localName())) {
-                requestWrapperLocalName = getRequestWrapper().localName();
+            if (getAnnoRequestWrapper() != null
+                    && !DescriptionUtils.isEmpty(getAnnoRequestWrapper().localName())) {
+                requestWrapperLocalName = getAnnoRequestWrapper().localName();
             } else {
                 // The default value of localName is the value of operationName as
                 // defined in the WebMethod annotation. [JAX-WS Sec. 7.3, p. 80]
@@ -568,8 +528,8 @@
             return null;
         }
         if (requestWrapperTargetNamespace == null) {
-            if (getRequestWrapper() != null && !DescriptionUtils.isEmpty(getRequestWrapper().targetNamespace())) {
-                requestWrapperTargetNamespace = getRequestWrapper().targetNamespace();
+            if (getAnnoRequestWrapper() != null && !DescriptionUtils.isEmpty(getAnnoRequestWrapper().targetNamespace())) {
+                requestWrapperTargetNamespace = getAnnoRequestWrapper().targetNamespace();
             }
             else {
                 // The default value for targetNamespace is the target namespace of the SEI. [JAX-WS Sec 7.3, p. 80]
@@ -595,8 +555,8 @@
             return null;
         }
         if (requestWrapperClassName == null) {
-            if (getRequestWrapper() != null && !DescriptionUtils.isEmpty(getRequestWrapper().className())) {
-                requestWrapperClassName = getRequestWrapper().className();
+            if (getAnnoRequestWrapper() != null && !DescriptionUtils.isEmpty(getAnnoRequestWrapper().className())) {
+                requestWrapperClassName = getAnnoRequestWrapper().className();
             }
             else {
                 // Not sure what the default value should be (if any).  None is listed in Sec. 7.3 on p. 80 of
@@ -619,7 +579,7 @@
     // ===========================================
     // ANNOTATION: ResponseWrapper
     // ===========================================
-    ResponseWrapper getResponseWrapper() {
+    public ResponseWrapper getAnnoResponseWrapper() {
         if (responseWrapperAnnotation == null) {
             if (!isDBC()) {
                 responseWrapperAnnotation = seiMethod.getAnnotation(ResponseWrapper.class);
@@ -643,8 +603,8 @@
             return null;
         }
         if (responseWrapperLocalName == null) {
-            if (getResponseWrapper() != null && !DescriptionUtils.isEmpty(getResponseWrapper().localName())) {
-                responseWrapperLocalName = getResponseWrapper().localName();
+            if (getAnnoResponseWrapper() != null && !DescriptionUtils.isEmpty(getAnnoResponseWrapper().localName())) {
+                responseWrapperLocalName = getAnnoResponseWrapper().localName();
             }
             else { 
                 // The default value of localName is the value of operationName as 
@@ -670,8 +630,8 @@
             return null;
         }
         if (responseWrapperTargetNamespace == null) {
-            if (getResponseWrapper() != null && !DescriptionUtils.isEmpty(getResponseWrapper().targetNamespace())) {
-                responseWrapperTargetNamespace = getResponseWrapper().targetNamespace();
+            if (getAnnoResponseWrapper() != null && !DescriptionUtils.isEmpty(getAnnoResponseWrapper().targetNamespace())) {
+                responseWrapperTargetNamespace = getAnnoResponseWrapper().targetNamespace();
             }
             else {
                 // The default value for targetNamespace is the target namespace of the SEI. [JAX-WS Sec 7.3, p. 80]
@@ -698,8 +658,8 @@
             return null;
         }
         if (responseWrapperClassName == null) {
-            if (getResponseWrapper() != null && !DescriptionUtils.isEmpty(getResponseWrapper().className())) {
-                responseWrapperClassName = getResponseWrapper().className();
+            if (getAnnoResponseWrapper() != null && !DescriptionUtils.isEmpty(getAnnoResponseWrapper().className())) {
+                responseWrapperClassName = getAnnoResponseWrapper().className();
             }
             else {
                 // Not sure what the default value should be (if any).  None is listed in Sec. 7.4 on p. 81 of
@@ -1044,7 +1004,7 @@
     // ===========================================
     // ANNOTATION: OneWay
     // ===========================================
-    Oneway getOnewayAnnotation() {
+    public Oneway getAnnoOneway() {
         //TODO: Shouldn't really do it this way...if there is not Oneway annotation, 
         //      we will always be calling the methods to try to retrieve it, since
         //      it will always be null, should consider relying on 'isOneWay'
@@ -1067,7 +1027,7 @@
     
     public boolean isAnnoOneWay() {
         if (onewayIsOneway == null) {
-            if (getOnewayAnnotation() != null) {
+            if (getAnnoOneway() != null) {
                 // The presence of the annotation indicates the method is oneway
                 onewayIsOneway = new Boolean(true);
             }

Copied: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/ParameterDescriptionImpl.java (from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ParameterDescriptionImpl.java)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/ParameterDescriptionImpl.java?view=diff&rev=470970&p1=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ParameterDescriptionImpl.java&r1=470831&p2=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/ParameterDescriptionImpl.java&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ParameterDescriptionImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/ParameterDescriptionImpl.java Fri Nov  3 11:50:33 2006
@@ -16,48 +16,25 @@
  */
 
 
-package org.apache.axis2.jaxws.description;
+package org.apache.axis2.jaxws.description.impl;
 
 import java.lang.annotation.Annotation;
-import java.lang.reflect.GenericDeclaration;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
 
 import javax.jws.WebParam;
 import javax.jws.soap.SOAPBinding;
 
+import org.apache.axis2.jaxws.description.EndpointDescriptionJava;
+import org.apache.axis2.jaxws.description.OperationDescription;
+import org.apache.axis2.jaxws.description.ParameterDescription;
+import org.apache.axis2.jaxws.description.ParameterDescriptionJava;
+import org.apache.axis2.jaxws.description.ParameterDescriptionWSDL;
 import org.apache.axis2.jaxws.description.builder.ParameterDescriptionComposite;
-import org.apache.axis2.jaxws.description.builder.WebParamAnnot;
 
 /**
- * A ParameterDescripton corresponds to parameter to a method on an SEI. That
- * SEI could be explicit (i.e. WebService.endpointInterface=sei.class) or
- * implicit (i.e. public methods on the service implementation are the contract
- * and thus the implicit SEI).
- * 
- * ParameterDescriptons contain information that is only relevent for and
- * SEI-based service, i.e. one that is invoked via specific methods. This class
- * does not exist for Provider-based services (i.e. those that specify
- * WebServiceProvider)
- * 
- * <pre>
- *  <b>ParameternDescription details</b>
- *  
- *      CORRESPONDS TO:      A parameter to a method on an SEI (on both Client and Server)      
- *          
- *      AXIS2 DELEGATE:      None
- *      
- *      CHILDREN:            None
- *      
- *      ANNOTATIONS:
- *          WebParam [181]
- *      
- *      WSDL ELEMENTS:
- *          message parts
- *          
- * </pre>
- * 
+ * @see ../ParameterDescription
+ *
  */
 class ParameterDescriptionImpl implements ParameterDescription, ParameterDescriptionJava, ParameterDescriptionWSDL {
     private OperationDescription parentOperationDescription;

Copied: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/ServiceDescriptionImpl.java (from r470831, webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescriptionImpl.java)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/ServiceDescriptionImpl.java?view=diff&rev=470970&p1=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescriptionImpl.java&r1=470831&p2=webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/ServiceDescriptionImpl.java&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescriptionImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/impl/ServiceDescriptionImpl.java Fri Nov  3 11:50:33 2006
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.axis2.jaxws.description;
+package org.apache.axis2.jaxws.description.impl;
 
 import java.net.URL;
 import java.util.ArrayList;
@@ -22,36 +22,26 @@
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
-import java.util.Map;
-import java.util.List;
 
-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;
 import javax.wsdl.WSDLException;
 import javax.xml.namespace.QName;
 
-import org.apache.axis2.AxisFault;
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.deployment.DeploymentException;
 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.WSDL11ToAllAxisServicesBuilder;
-import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
-import org.apache.axis2.engine.AbstractDispatcher;
 import org.apache.axis2.jaxws.ClientConfigurationFactory;
 import org.apache.axis2.jaxws.ExceptionFactory;
+import org.apache.axis2.jaxws.description.EndpointDescription;
+import org.apache.axis2.jaxws.description.EndpointInterfaceDescription;
+import org.apache.axis2.jaxws.description.ServiceDescription;
+import org.apache.axis2.jaxws.description.ServiceDescriptionJava;
+import org.apache.axis2.jaxws.description.ServiceDescriptionWSDL;
 import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
 import org.apache.axis2.jaxws.description.builder.MDQConstants;
 import org.apache.axis2.jaxws.description.builder.MethodDescriptionComposite;
-import org.apache.axis2.jaxws.description.builder.WebMethodAnnot;
 import org.apache.axis2.jaxws.i18n.Messages;
 import org.apache.axis2.jaxws.util.WSDL4JWrapper;
 import org.apache.axis2.jaxws.util.WSDLWrapper;
@@ -59,41 +49,7 @@
 import org.apache.commons.logging.LogFactory;
 
 /**
- * A ServiceDescription corresponds to a Service under which there can be a
- * collection of enpdoints. In WSDL 1.1 terms, then, a ServiceDescription
- * corresponds to a wsdl:Service under which there are one or more wsdl:Port
- * entries. The ServiceDescription is the root of the metdata abstraction
- * Description hierachy.
- * 
- * The Description hierachy is:
- * <pre>
- * ServiceDescription
- *     EndpointDescription[]
- *         EndpointInterfaceDescription
- *             OperationDescription[]
- *                 ParameterDescription[]
- *                 FaultDescription[]       (Note: Not implemented yet)
- *
- * <b>ServiceDescription details</b>
- * 
- *     CORRESPONDS TO:      
- *         On the Client: The JAX-WS Service class or generated subclass.
- *         
- *         On the Server: The Service implementation.  Note that there is a 1..1 
- *         correspondence between a ServiceDescription and EndpointDescription 
- *         on the server side.
- *        
- *     AXIS2 DELEGATE:      None
- *     
- *     CHILDREN:            1..n EndpointDescription
- *     
- *     ANNOTATIONS:
- *         None
- *     
- *     WSDL ELEMENTS:
- *         service
- *         
- *  </pre>       
+ * @see ../ServiceDescription
  */
 class ServiceDescriptionImpl implements ServiceDescription, ServiceDescriptionWSDL, ServiceDescriptionJava {
     private ClientConfigurationFactory clientConfigFactory;

Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationProviderImplDescriptionTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationProviderImplDescriptionTests.java?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationProviderImplDescriptionTests.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationProviderImplDescriptionTests.java Fri Nov  3 11:50:33 2006
@@ -26,6 +26,8 @@
 import javax.xml.ws.WebServiceException;
 import javax.xml.ws.WebServiceProvider;
 
+import org.apache.axis2.jaxws.description.EndpointDescriptionJava;
+
 import junit.framework.TestCase;
 
 public class AnnotationProviderImplDescriptionTests extends TestCase {
@@ -41,7 +43,7 @@
         assertEquals(1, endpointDesc.length);
         
         // TODO: How will the JAX-WS dispatcher get the appropriate port (i.e. endpoint)?  Currently assumes [0]
-        EndpointDescriptionImpl testEndpointDesc = (EndpointDescriptionImpl) endpointDesc[0];
+        EndpointDescriptionJava testEndpointDesc = (EndpointDescriptionJava) endpointDesc[0];
         assertNotNull(testEndpointDesc);
         assertEquals(Service.Mode.MESSAGE, testEndpointDesc.getAnnoServiceModeValue());
         assertEquals("http://www.w3.org/2003/05/soap/bindings/HTTP/", testEndpointDesc.getAnnoBindingTypeValue());

Modified: 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?view=diff&rev=470970&r1=470969&r2=470970
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/description/AnnotationServiceImplDescriptionTests.java Fri Nov  3 11:50:33 2006
@@ -32,6 +32,7 @@
 
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.Parameter;
+import org.apache.axis2.jaxws.description.EndpointInterfaceDescription;
 import org.apache.ws.axis2.tests.EchoPort;
 import org.apache.ws.axis2.tests.EchoServiceImplWithSEI;
 
@@ -308,7 +309,7 @@
     public void testSOAPBindingDefault() {
         EndpointInterfaceDescription testEndpointInterfaceDesc = getEndpointInterfaceDesc(SOAPBindingDefaultTestImpl.class);
         
-        assertNull(((EndpointInterfaceDescriptionImpl) testEndpointInterfaceDesc).getSoapBinding());
+        assertNull(((EndpointInterfaceDescriptionJava) testEndpointInterfaceDesc).getAnnoSoapBinding());
         assertEquals(javax.jws.soap.SOAPBinding.Style.DOCUMENT, testEndpointInterfaceDesc.getSoapBindingStyle());
         assertEquals(javax.jws.soap.SOAPBinding.Use.LITERAL, testEndpointInterfaceDesc.getSoapBindingUse());
         assertEquals(javax.jws.soap.SOAPBinding.ParameterStyle.WRAPPED, testEndpointInterfaceDesc.getSoapBindingParameterStyle());
@@ -326,7 +327,7 @@
     public void testSOAPBindingDocEncBare() {
         EndpointInterfaceDescription testEndpointInterfaceDesc = getEndpointInterfaceDesc(SOAPBindingDocEncBareTestImpl.class);
         
-        assertNotNull(((EndpointInterfaceDescriptionImpl) testEndpointInterfaceDesc).getSoapBinding());
+        assertNotNull(((EndpointInterfaceDescriptionJava) testEndpointInterfaceDesc).getAnnoSoapBinding());
         assertEquals(javax.jws.soap.SOAPBinding.Style.DOCUMENT, testEndpointInterfaceDesc.getSoapBindingStyle());
         assertEquals(javax.jws.soap.SOAPBinding.Use.ENCODED, testEndpointInterfaceDesc.getSoapBindingUse());
         assertEquals(javax.jws.soap.SOAPBinding.ParameterStyle.BARE, testEndpointInterfaceDesc.getSoapBindingParameterStyle());
@@ -336,7 +337,7 @@
         // Verify that an impl without the method annotation uses the settings from the type
         EndpointInterfaceDescription testEndpointInterfaceDesc = getEndpointInterfaceDesc(SOAPBindingDocEncBareTestImpl.class);
 
-        assertNotNull(((EndpointInterfaceDescriptionImpl) testEndpointInterfaceDesc).getSoapBinding());
+        assertNotNull(((EndpointInterfaceDescriptionJava) testEndpointInterfaceDesc).getAnnoSoapBinding());
         assertEquals(javax.jws.soap.SOAPBinding.Style.DOCUMENT, testEndpointInterfaceDesc.getSoapBindingStyle());
         assertEquals(javax.jws.soap.SOAPBinding.Use.ENCODED, testEndpointInterfaceDesc.getSoapBindingUse());
         assertEquals(javax.jws.soap.SOAPBinding.ParameterStyle.BARE, testEndpointInterfaceDesc.getSoapBindingParameterStyle());
@@ -351,7 +352,7 @@
         // Verify that the method annotation setting overrides the type annotatino setting
         testEndpointInterfaceDesc = getEndpointInterfaceDesc(SOAPBindingDefaultMethodTestImpl.class);
         
-        assertNull(((EndpointInterfaceDescriptionImpl) testEndpointInterfaceDesc).getSoapBinding());
+        assertNull(((EndpointInterfaceDescriptionJava) testEndpointInterfaceDesc).getAnnoSoapBinding());
         assertEquals(javax.jws.soap.SOAPBinding.Style.DOCUMENT, testEndpointInterfaceDesc.getSoapBindingStyle());
         assertEquals(javax.jws.soap.SOAPBinding.Use.LITERAL, testEndpointInterfaceDesc.getSoapBindingUse());
         assertEquals(javax.jws.soap.SOAPBinding.ParameterStyle.WRAPPED, testEndpointInterfaceDesc.getSoapBindingParameterStyle());



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