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/01 18:59:20 UTC

svn commit: r470019 - in /webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description: ./ builder/

Author: barrettj
Date: Wed Nov  1 09:59:19 2006
New Revision: 470019

URL: http://svn.apache.org/viewvc?view=rev&rev=470019
Log:
AXIS2-1557
Patch contributed by Roy Wood Jr.  I made a few minor changes to remove a println and add a couple of comments.

Modified:
    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/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MethodDescriptionComposite.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ParameterDescriptionComposite.java

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=470019&r1=470018&r2=470019
==============================================================================
--- 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 Wed Nov  1 09:59:19 2006
@@ -782,11 +782,15 @@
             else if (getWebServiceProviderAnnotation() != null 
                     && !DescriptionUtils.isEmpty(getWebServiceProviderAnnotation().serviceName())) {
                 annotation_ServiceName = getWebServiceProviderAnnotation().serviceName();
-            }
+           }
             else {
-                // Default value is the "simple name" of the class or interface + "Service"
+                 // Default value is the "simple name" of the class or interface + "Service"
                 // Per JSR-181 MR Sec 4.1, pg 15
-                annotation_ServiceName = getSimpleJavaClassName(implOrSEIClass) + "Service";
+            	if (getServiceDescription().isDBCMap()) {
+                	annotation_ServiceName = getSimpleJavaClassName(composite.getClassName()) + "Service";
+            	} else {
+                    annotation_ServiceName = getSimpleJavaClassName(implOrSEIClass) + "Service";
+            	}
             }
         }
         return annotation_ServiceName;
@@ -813,8 +817,11 @@
                     // Note that this is really the same thing as the call to getWebServiceName() 
                     // in the WebService case; it is done sepertely just to be clear there is no 
                     // name element on the WebServiceProvider annotation
-                    annotation_PortName = getSimpleJavaClassName(implOrSEIClass) + "Port";
-                }
+                	
+                	annotation_PortName = (getServiceDescription().isDBCMap()) ?
+                 			getSimpleJavaClassName(composite.getClassName()) + "Port"
+                 			: getSimpleJavaClassName(implOrSEIClass) + "Port";
+               }
                 else {
                     // This is the @WebService annotation path
                     // Default value is the @WebService.name of the class or interface + "Port"
@@ -840,7 +847,13 @@
                 // Default value per JSR-181 MR Sec 4.1 pg 15 defers to "Implementation defined, 
                 // as described in JAX-WS 2.0, section 3.2" which is JAX-WS 2.0 Sec 3.2, pg 29.
                 // FIXME: Hardcoded protocol for namespace
-                annotation_TargetNamespace = makeNamespaceFromPackageName(getJavaPackageName(implOrSEIClass), "http");
+            	if (getServiceDescription().isDBCMap())
+            		annotation_TargetNamespace = 
+            			makeNamespaceFromPackageName(getJavaPackageName(composite.getClassName()), "http");
+            	else
+            		annotation_TargetNamespace = 
+            			makeNamespaceFromPackageName(getJavaPackageName(implOrSEIClass), "http");
+
             }
         }
         return annotation_TargetNamespace;
@@ -849,6 +862,7 @@
     
     /**
      * Return the name of the class without any package qualifier.
+     * This method should be DEPRECATED when DBC support is complete
      * @param theClass
      * @return the name of the class sans package qualification.
      */
@@ -893,6 +907,7 @@
     
     /**
      * Returns the package name from the class.  If no package, then returns null
+     * This method should be DEPRECATED when DBC support is complete
      * @param theClass
      * @return
      */
@@ -914,6 +929,28 @@
     }
     
     /**
+     * Returns the package name from the class.  If no package, then returns null
+     * @param theClassName
+     * @return
+     */
+    private static String getJavaPackageName(String theClassName) {
+        String returnPackage = null;
+        if (theClassName != null) {
+            String fqName = theClassName;
+            // Get the package name, if there is one
+            int endOfPackageIndex = fqName.lastIndexOf('.');
+            if (endOfPackageIndex >= 0) {
+                returnPackage = fqName.substring(0, endOfPackageIndex);
+            }
+        }
+        else {
+            // TODO: RAS and NLS
+            throw new UnsupportedOperationException("Java class is null");
+        }
+        return returnPackage;
+    }
+    
+    /**
      * Create a JAX-WS namespace based on the package name
      * @param packageName
      * @param protocol
@@ -1019,8 +1056,15 @@
     // ===========================================
     // REVIEW: Should this be returning an enum other than the one defined within the annotation?
     ServiceMode getServiceMode() {
-        if (serviceModeAnnotation == null && implOrSEIClass != null) {
-            serviceModeAnnotation = (ServiceMode) implOrSEIClass.getAnnotation(ServiceMode.class);
+        
+    	if (serviceModeAnnotation == null) {
+        	if (getServiceDescription().isDBCMap()) {
+        		serviceModeAnnotation = composite.getServiceModeAnnot();
+        	} else {	
+        		if (implOrSEIClass != null) {
+        			serviceModeAnnotation = (ServiceMode) implOrSEIClass.getAnnotation(ServiceMode.class);
+        		}
+        	}
         }
         return serviceModeAnnotation;
     }
@@ -1043,9 +1087,15 @@
     // ===========================================
 
     BindingType getBindingType() {
-        if (bindingTypeAnnotation == null && implOrSEIClass != null) {
-            bindingTypeAnnotation = (BindingType) implOrSEIClass.getAnnotation(BindingType.class);
-        }
+    	if (bindingTypeAnnotation == null) {
+        	if (getServiceDescription().isDBCMap()) {
+        		bindingTypeAnnotation = composite.getBindingTypeAnnot();
+        	} else {	
+        		if (implOrSEIClass != null) {
+                    bindingTypeAnnotation = (BindingType) implOrSEIClass.getAnnotation(BindingType.class);
+        		}
+        	}
+        }   
         return bindingTypeAnnotation;
     }
     

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=470019&r1=470018&r2=470019
==============================================================================
--- 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 Wed Nov  1 09:59:19 2006
@@ -25,6 +25,7 @@
 
 import javax.jws.soap.SOAPBinding;
 import javax.xml.namespace.QName;
+import javax.xml.ws.BindingType;
 
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
@@ -99,6 +100,7 @@
     // This may be an actual Service Endpoint Interface -OR- it may be a service implementation class that did not 
     // specify an @WebService.endpointInterface.
     private Class seiClass;
+    private DescriptionBuilderComposite dbc;
     
     //Logging setup
     private static final Log log = LogFactory.getLog(EndpointInterfaceDescription.class);
@@ -169,6 +171,8 @@
 									EndpointDescription parent){
 		
 		parentEndpointDescription = parent;
+		this.dbc = dbc;
+		
 		BasicConfigurator.configure();
 		
 		//TODO: Determine if the isClass parameter is really necessary
@@ -192,6 +196,8 @@
 		while (iter.hasNext()) {
 			mdc = iter.next();
 			
+			//TODO: Verify that this classname is truly always the wrapper class
+			mdc.setDeclaringClass(dbc.getClassName());
 			OperationDescription operation = new OperationDescription(mdc, this);
 	
 			//TODO: Do we need to worry about a null AxisOperation at this level?
@@ -340,7 +346,8 @@
      * @param javaMethodName String representing a Java Method Name
      * @return
      */
-    // FIXME: This is confusing; some getOperations use the QName from the WSDL or annotation; this one uses the java method name; rename this signature I think; add on that takes a String but does a QName lookup against the WSDL/Annotation
+    // FIXME: This is confusing; some getOperations use the QName from the WSDL or annotation; 
+    // this one uses the java method name; rename this signature I think; add on that takes a String but does a QName lookup against the WSDL/Annotation
     public OperationDescription[] getOperationForJavaMethod(String javaMethodName) {
         if (DescriptionUtils.isEmpty(javaMethodName)) {
             return null;
@@ -434,15 +441,22 @@
     public Class getSEIClass() {
         return seiClass;
     }
-    // Annotation-realted getters
+    // Annotation-related getters
     
     // ========================================
-    // SOAP Binding annotation realted methods
+    // SOAP Binding annotation related methods
     // ========================================
     SOAPBinding getSoapBinding(){
         // TODO: Test with sei Null, not null, SOAP Binding annotated, not annotated
-        if (soapBindingAnnotation == null && seiClass != null) {
-            soapBindingAnnotation = (SOAPBinding) seiClass.getAnnotation(SOAPBinding.class);
+
+        if (soapBindingAnnotation == null) {
+        	if (dbc != null) {
+        		soapBindingAnnotation = dbc.getSoapBindingAnnot();
+        	} else {
+        		if (seiClass != null) {
+        			soapBindingAnnotation = (SOAPBinding) seiClass.getAnnotation(SOAPBinding.class);       			
+        		}
+        	}
         }
         return soapBindingAnnotation;
     }
@@ -484,15 +498,17 @@
     }
     
     public Iterator<MethodDescriptionComposite> retrieveReleventMethods(DescriptionBuilderComposite dbc) {
-    	//Based on whether this is an implicit SEI, or an actual SEI, Gather up and build a 
-    	//list of MDC's. If this is an actual SEI, then starting with this DBC, build a list of all
-    	//MDC's that are public methods in the chain of extended classes.
-    	//If this is an implicit SEI, then starting with this DBC,
-    	//1. If a false exclude is found, then take only those that have false excludes
-    	//2. Assuming no false excludes, take all public methods that don't have exclude == true
-    	//3. For each super class, if 'WebService' present, take all MDC's according to rules 1&2
-    	//   But, if WebService not present, grab only MDC's that are annotated, hmmmm
-		
+ 
+    	/*
+    	 * Depending on whether this is an implicit SEI or an actual SEI, Gather up and build a 
+    	 * list of MDC's. If this is an actual SEI, then starting with this DBC, build a list of all
+    	 * MDC's that are public methods in the chain of extended classes.
+    	 * If this is an implicit SEI, then starting with this DBC,
+    	 *  1. If a false exclude is found, then take only those that have false excludes
+    	 *  2. Assuming no false excludes, take all public methods that don't have exclude == true
+    	 *  3. For each super class, if 'WebService' present, take all MDC's according to rules 1&2
+    	 *    But, if WebService not present, grab only MDC's that are annotated.
+		 */
     	if (log.isTraceEnabled()) {
     		log.trace("retrieveReleventMethods: Enter");
     	}
@@ -604,5 +620,4 @@
     	
     	return retrieveList;
     }
-
 }

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=470019&r1=470018&r2=470019
==============================================================================
--- 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 Wed Nov  1 09:59:19 2006
@@ -196,6 +196,7 @@
 
     	parentEndpointInterfaceDescription = parent;
 		methodComposite = mdc;
+        this.operationName = new QName(getWebMethodOperationName());
 		webMethodAnnotation = methodComposite.getWebMethodAnnot();
 
 		AxisOperation axisOperation = null;
@@ -323,13 +324,17 @@
             }
 	
         } 
-        /*
         else {
         	if (methodComposite != null) {
-        		Class[] parameters = methodComposite.getP
+        		
+        		Iterator<ParameterDescriptionComposite> iter = 
+        			methodComposite.getParameterDescriptionCompositeList().iterator();
+        		while (iter.hasNext()) {
+        			returnParameters.add(iter.next().getParameterType());
+        		}
         	}
         }
-        */
+        
         // TODO: This is different than the rest, which return null instead of an empty array
         return returnParameters.toArray(new String[0]);
     }
@@ -461,7 +466,7 @@
         	if (!isDBC())
         		webMethodOperationName = determineOperationName(seiMethod);
         	else
-                webMethodOperationName = determineOperationName(this.methodComposite); 		
+                webMethodOperationName = determineOperationName(methodComposite); 		
         }
         return webMethodOperationName;
     }
@@ -500,7 +505,11 @@
     // ==========================================
     RequestWrapper getRequestWrapper() {
         if (requestWrapperAnnotation == null) {
-            requestWrapperAnnotation = seiMethod.getAnnotation(RequestWrapper.class); 
+        	if (!isDBC()) {
+        		requestWrapperAnnotation = seiMethod.getAnnotation(RequestWrapper.class); 
+        	} else {
+        		requestWrapperAnnotation = methodComposite.getRequestWrapperAnnot(); 
+        	}		
         }
         return requestWrapperAnnotation;
     }
@@ -570,10 +579,14 @@
                 // the JAX-WS spec, BUT Conformance(Using javax.xml.ws.RequestWrapper) in Sec 2.3.1.2 on p. 13
                 // says the entire annotation "...MAY be omitted if all its properties would have default vaules."
                 // implying there IS some sort of default.  We'll try this for now:
-                Class clazz = seiMethod.getDeclaringClass();
-                String packageName = clazz.getPackage().getName();
-                String className = DescriptionUtils.javaMethodtoClassName(seiMethod.getName());
-                requestWrapperClassName = packageName + "." + className;
+            	if (isDBC()) {
+            		requestWrapperClassName = this.methodComposite.getDeclaringClass();	
+            	} else {
+            		Class clazz = seiMethod.getDeclaringClass();
+            		String packageName = clazz.getPackage().getName();
+            		String className = DescriptionUtils.javaMethodtoClassName(seiMethod.getName());
+            		requestWrapperClassName = packageName + "." + className;
+            	}
             }
         }
         return requestWrapperClassName;
@@ -584,7 +597,11 @@
     // ===========================================
     ResponseWrapper getResponseWrapper() {
         if (responseWrapperAnnotation == null) {
-            responseWrapperAnnotation = seiMethod.getAnnotation(ResponseWrapper.class);
+        	if (!isDBC()) {
+        		responseWrapperAnnotation = seiMethod.getAnnotation(ResponseWrapper.class);
+        	} else {
+            	responseWrapperAnnotation = methodComposite.getResponseWrapperAnnot();      		
+        	}
         }
         return responseWrapperAnnotation;
     }
@@ -655,10 +672,14 @@
                 // the JAX-WS spec, BUT Conformance(Using javax.xml.ws.ResponseWrapper) in Sec 2.3.1.2 on p. 13
                 // says the entire annotation "...MAY be omitted if all its properties would have default vaules."
                 // implying there IS some sort of default.  We'll try this for now:
-                Class clazz = seiMethod.getDeclaringClass();
-                String packageName = clazz.getPackage().getName();
-                String className = DescriptionUtils.javaMethodtoClassName(seiMethod.getName());
-                responseWrapperClassName = packageName + "." + className;
+            	if (!isDBC()) {
+            		Class clazz = seiMethod.getDeclaringClass();
+            		String packageName = clazz.getPackage().getName();
+            		String className = DescriptionUtils.javaMethodtoClassName(seiMethod.getName());
+            		responseWrapperClassName = packageName + "." + className;
+            	} else {
+            		responseWrapperClassName = methodComposite.getDeclaringClass();
+            	}
             }
         }
         return responseWrapperClassName;
@@ -789,7 +810,12 @@
     // ===========================================
     WebResult getWebResult() {
         if (webResultAnnotation == null) {
-            webResultAnnotation = seiMethod.getAnnotation(WebResult.class);
+        	if (!isDBC()) {
+        		webResultAnnotation = seiMethod.getAnnotation(WebResult.class);
+        	} else {
+                webResultAnnotation = methodComposite.getWebResultAnnot();
+        	}
+        	
         }
         return webResultAnnotation;
     }
@@ -799,7 +825,19 @@
     }
 
     public boolean isOperationReturningResult() {
-        return !isOneWay() && (seiMethod.getReturnType() != Void.TYPE);
+    	boolean isResult = false;
+    	if (!isOneWay()) {
+    		if (!isDBC()) {
+    			if (seiMethod.getReturnType() != Void.TYPE) {
+    				isResult = true;
+    			}
+    		} else {
+    			if (!DescriptionUtils.isEmpty(methodComposite.getReturnType()) &&
+    					!methodComposite.getReturnType().equals("void"))
+    				isResult = true;
+    		}
+    	} 
+        return isResult;
     }
 
     public String getWebResultName() {
@@ -888,7 +926,11 @@
         // TODO: VALIDATION: Only style of DOCUMENT allowed on Method annotation; remember to check the Type's style setting also
         //       JSR-181 Sec 4.7 p. 28
         if (soapBindingAnnotation == null) {
-            soapBindingAnnotation = seiMethod.getAnnotation(SOAPBinding.class);
+        	if (!isDBC()) {
+        		soapBindingAnnotation = seiMethod.getAnnotation(SOAPBinding.class);
+        	} else {
+        		soapBindingAnnotation = methodComposite.getSoapBindingAnnot();
+        	}
         }
         return soapBindingAnnotation;
     }

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=470019&r1=470018&r2=470019
==============================================================================
--- 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 Wed Nov  1 09:59:19 2006
@@ -49,6 +49,7 @@
 import org.apache.axis2.jaxws.ClientConfigurationFactory;
 import org.apache.axis2.jaxws.ExceptionFactory;
 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;
@@ -534,7 +535,27 @@
 		//consumer set this up improperly, then we should fail fast, should consider placing
 		//this method in a utils class within the 'description' package
 		
-		
+		//Verify that, if this implements a strongly typed provider interface, that it
+		// also contain a WebServiceProvider annotation per JAXWS Sec. 5.1
+		Iterator<String> iter = 
+					composite.getInterfacesList().iterator();
+
+		while (iter.hasNext()) {
+			String interfaceString = iter.next();
+			// REVIEW: These string compares may not be sufficient; they assume, for example Provider<SOAPMessage>.  What about endpoint impls that:
+			//         (1) ... implement Provider<javax.xml.soap.SOAPMessage>
+			//         (2) import wrong.package.SOAPMessage;
+			//             ... implement Provider<SOAPMessage>;
+			if (interfaceString.equals(MDQConstants.PROVIDER_SOURCE)
+					|| interfaceString.equals(MDQConstants.PROVIDER_SOAP)
+					|| interfaceString.equals(MDQConstants.PROVIDER_DATASOURCE)) {
+				//This is a provider based SEI, make sure the annotation exists
+				if (composite.getWebServiceProviderAnnot() == null) {
+					throw ExceptionFactory.makeWebServiceException("DescriptionBuilderComposite: This is a Provider based SEI that does not contain a WebServiceProvider annotation");
+				}
+			}
+		}
+					
 		//Verify that WebService and WebServiceProvider are not both specified
 		//per JAXWS - Sec. 7.7
 		if (composite.getWebServiceAnnot() != null && composite.getWebServiceProviderAnnot() != null) {

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java?view=diff&rev=470019&r1=470018&r2=470019
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java Wed Nov  1 09:59:19 2006
@@ -32,4 +32,8 @@
     public static final String WSDL_PORTTYPE_NAME = "WSDL_PORTTYPE_NAME";
     
     public static final String OBJECT_CLASS_NAME = "java.lang.Object";
+    
+    public static final String PROVIDER_SOURCE = "Provider<Source>";
+    public static final String PROVIDER_SOAP = "Provider<SOAPMessage>";
+    public static final String PROVIDER_DATASOURCE = "Provider<javax.activation.DataSource>";
 }

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MethodDescriptionComposite.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MethodDescriptionComposite.java?view=diff&rev=470019&r1=470018&r2=470019
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MethodDescriptionComposite.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MethodDescriptionComposite.java Wed Nov  1 09:59:19 2006
@@ -13,6 +13,7 @@
 	private String 		methodName;	//a public method name in this class
 	private String 		returnType;	//Methods return type
 	private String[]	exceptions;
+	private	String		declaringClass; //the class/interface that actually declares this method
 
 	boolean	oneWayAnnotated;	
 	private WebMethodAnnot			webMethodAnnot;	
@@ -26,7 +27,6 @@
 	private ResponseWrapperAnnot 	responseWrapperAnnot;//TODO EDIT CHECK: only on methods of SEI
 	private List<ParameterDescriptionComposite> parameterDescriptions;//TODO EDIT CHECK: only on methods of SEI
 
-	private ClassLoader				classLoader;
 	
 	/*
 	 * Default Constructor
@@ -156,6 +156,24 @@
 	}
 	
 	/**
+	 * @return Returns the exceptions.
+	 */
+	public Class[] getExceptionTypes() {
+		//TODO: Implement this...
+		//for each exception in the array, convert it to a class, and return that
+		//If a classloader was not set, then just use the default
+		Class[] classes = new Class[0];
+		return classes;
+	}
+	
+	/**
+	 * @return Returns the fully qualified name of the declaring class.
+	 */
+	public String getDeclaringClass() {
+		return declaringClass;
+	}
+	
+	/**
 	 * @param methodName The methodName to set.
 	 */
 	public void setMethodName(String methodName) {
@@ -246,7 +264,6 @@
 	 *  @param parameterDescription The parameterDescription to add to the set.
 	 */
 	public void addParameterDescriptionComposite(ParameterDescriptionComposite parameterDescription) {
-		parameterDescription.setClassLoader(this.classLoader);
 		parameterDescriptions.add(parameterDescription);
 	}
 	
@@ -284,6 +301,13 @@
 	 */
 	public void setExceptions(String[] exceptions) {
 		this.exceptions = exceptions;
+	}
+	
+	/**
+	 * @param declaringClass The wrapper class to set.
+	 */
+	public void setDeclaringClass(String declaringClass) {
+		this.declaringClass = declaringClass;
 	}
 	
 	/**

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ParameterDescriptionComposite.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ParameterDescriptionComposite.java?view=diff&rev=470019&r1=470018&r2=470019
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ParameterDescriptionComposite.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ParameterDescriptionComposite.java Wed Nov  1 09:59:19 2006
@@ -82,6 +82,8 @@
 	 * Do lazy loading
 	 */
 	public Type getParameterGenericType() {
+		
+		//TODO: Determine if this is a parameterized generic type
 		//TODO: Need to set this based on the parameterTypeClass ...hmmm
 		return parameterGenericType;
 	}



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