You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ba...@apache.org on 2006/10/17 01:20:34 UTC
svn commit: r464720 [1/2] - in /webservices/axis2/trunk/java/modules:
jaxws/src/org/apache/axis2/jaxws/description/
jaxws/src/org/apache/axis2/jaxws/description/builder/
jaxws/src/org/apache/axis2/jaxws/util/ security/
Author: barrettj
Date: Mon Oct 16 16:20:32 2006
New Revision: 464720
URL: http://svn.apache.org/viewvc?view=rev&rev=464720
Log:
AXIS2-1358
Contributed by Roy Wood
Added:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionFactory.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescription.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/BindingTypeAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/DescriptionBuilderComposite.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/FieldDescriptionComposite.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/HandlerChainAnnot.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
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/RequestWrapperAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ResponseWrapperAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ServiceModeAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/SoapBindingAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebEndpointAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebFaultAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebMethodAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebParamAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebResultAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceClientAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceProviderAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java
webservices/axis2/trunk/java/modules/security/ (props changed)
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=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionFactory.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/DescriptionFactory.java Mon Oct 16 16:20:32 2006
@@ -21,12 +21,17 @@
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;
/**
* Creates the JAX-WS metadata descritpion hierachy from some combinations of
@@ -47,6 +52,47 @@
public static ServiceDescription createServiceDescriptionFromServiceImpl(Class serviceImplClass, AxisService axisService) {
return new ServiceDescription(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 ServiceDescription(dbcMap,
+ serviceImplComposite);
+ serviceDescriptionList.add(serviceDescription);
+ }
+ }
+
+ //For each impl class and each SEI, build a ServiceDescription
+ //TODO: Probably not the best way to process SEI's ...need to look at this
+ /*
+ HashMap<String, DescriptionBuilderComposite> seiMap =
+ sortedDBCList.getMap(DBCInputListSorter.seiMapKey);
+
+ for (int i=1; i < sortedDBCList.getImplClassesList().size(); i++ ) {
+ //process this sei class
+
+ String seiName = sortedDBCList.getSeiClassesList().get(i);
+ DescriptionBuilderComposite seiComposite = seiMap.get(seiName);
+
+ if (seiComposite == null)
+ throw ExceptionFactory.makeWebServiceException("ServiceDescription.constructor: Can not find DBC represents associated serviceImplName: " + serviceImplName);
+
+ ServiceDescription serviceDescription = new ServiceDescription( sortedDBCList, seiComposite);
+ serviceDescriptionList.add(serviceDescription);
+ }
+ */
+
+ return serviceDescriptionList;
+ }
/**
* Update an existing ServiceDescription with an annotated SEI
@@ -59,4 +105,40 @@
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;
+ }
+
}
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=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescription.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointDescription.java Mon Oct 16 16:20:32 2006
@@ -19,6 +19,7 @@
package org.apache.axis2.jaxws.description;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -28,8 +29,8 @@
import javax.wsdl.Definition;
import javax.wsdl.Port;
import javax.xml.namespace.QName;
-import javax.xml.ws.Service;
import javax.xml.ws.BindingType;
+import javax.xml.ws.Service;
import javax.xml.ws.ServiceMode;
import javax.xml.ws.WebServiceProvider;
@@ -44,6 +45,8 @@
import org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder;
import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
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.i18n.Messages;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -92,8 +95,12 @@
private AxisService axisService;
private QName portQName;
+
// Corresponds to a port that was added dynamically via addPort and is not declared (either in WSDL or annotations)
private boolean isDynamicPort;
+
+ private String serviceImplName; //class name of the service impl or SEI
+
// Note that an EndpointInterfaceDescription will ONLY be set for an Endpoint-based implementation;
// it will NOT be set for a Provider-based implementation
private EndpointInterfaceDescription endpointInterfaceDescription;
@@ -107,6 +114,9 @@
//On Client side, there should be One ServiceClient instance per AxisSerivce
private ServiceClient serviceClient = null;
+ //This is the base WebService or WebServiceProvider that we are processing
+ DescriptionBuilderComposite composite = null;
+
public static final String AXIS_SERVICE_PARAMETER = "org.apache.axis2.jaxws.description.EndpointDescription";
private static final Log log = LogFactory.getLog(EndpointDescription.class);
@@ -119,11 +129,14 @@
// Only one of these two annotations will be set; they are mutually exclusive
private WebService webServiceAnnotation;
private WebServiceProvider webServiceProviderAnnotation;
+
// Information common to both WebService and WebServiceProvider annotations
private String annotation_WsdlLocation;
private String annotation_ServiceName;
private String annotation_PortName;
private String annotation_TargetNamespace;
+
+ // Information only set on WebService annotation
// ANNOTATION: @WebService
private String webService_EndpointInterface;
private String webService_Name;
@@ -196,6 +209,78 @@
}
/**
+ * Create an EndpointDescription based on the DescriptionBuilderComposite.
+ * Note that per the JAX-WS Spec (Final Release, 4/19/2006
+ * Section 4.2.3 Proxies, page 55)the "namespace component of the port is the target namespace of the WSDL
+ * definition document".
+ *
+ * @param theClass The SEI or Impl class. This will be NULL for Dispatch clients
+ * since they don't use an SEI
+ */
+ public EndpointDescription(ServiceDescription parent, String serviceImplName) {
+//TODO: This constructor is similar to the first one, other than it is getting its annotation
+//from the MDQInput List rather than the annotated class.
+
+ // TODO: This and the other constructor will (eventually) take the same args, so the logic needs to be combined
+ // TODO: If there is WSDL, could compare the namespace of the defn against the portQName.namespace
+ this.parentServiceDescription = parent;
+ this.serviceImplName = serviceImplName;
+ this.implOrSEIClass = null;
+
+ composite = getServiceDescription().getDescriptionBuilderComposite();
+ if (composite == null){
+ throw ExceptionFactory.makeWebServiceException("EndpointDescription.EndpointDescription: parents DBC is null");
+ }
+
+ //Set the base level of annotation that we are processing...currently
+ // a 'WebService' or a 'WebServiceProvider'
+ if (composite.getWebServiceAnnot() != null)
+ webServiceAnnotation = composite.getWebServiceAnnot();
+ else
+ webServiceProviderAnnotation = composite.getWebServiceProviderAnnot();
+
+ //Call the getter to insure the qualified port name is set.
+ getPortQName();
+
+ // TODO: Refactor this with the consideration of no WSDL/Generic Service/Annotated SEI
+ setupAxisServiceFromDBL();
+ addToAxisService(); //Add a reference to this EndpointDescription to the AxisService
+
+ //TODO: Need to remove operations from AxisService that have 'exclude = true
+ // then call 'validateOperations' to verify that WSDL and AxisService match up
+
+ buildDescriptionHierachy();
+
+ //Currently, we need to set the anonymous operations only for the client
+ //side
+ //TODO: Determine if we need to do this for server side?
+ // addAnonymousAxisOperations();
+
+ // This will set the serviceClient field after adding the AxisService
+ // to the AxisConfig
+ getServiceClient();
+
+ // Give the configuration builder a chance to finalize configuration for this service
+ try {
+ getServiceDescription().getClientConfigurationFactory().completeAxis2Configuration(axisService);
+ } catch (DeploymentException e) {
+ // TODO RAS
+ // TODO NLS
+ // TODO: Remove this println
+ System.out.println("Caught exception in ServiceDescription.ServiceDescription: " + e);
+ e.printStackTrace();
+// throw ExceptionFactory.makeWebServiceException("ServiceDescription caught " + e);
+ } catch (Exception e) {
+ // TODO RAS
+ // TODO NLS
+ // TODO: Remove this println
+ System.out.println("Caught exception in ServiceDescription.ServiceDescription: " + e);
+ e.printStackTrace();
+// throw ExceptionFactory.makeWebServiceException("ServiceDescription caught " + e);
+ }
+ }
+
+ /**
* Create from an annotated implementation or SEI class.
* Note this is currently used only on the server-side (this probably won't change).
*
@@ -238,8 +323,9 @@
private void buildEndpointDescriptionFromNoWSDL() {
// TODO: The comments below are not quite correct; this method is used on BOTH the
- // client and server. On the client the class is always an SEI. On the server it is always a service impl
- // which may be a provider or endpoint based; endpoint based may reference an SEI class
+ // client and server. On the client the class is always an SEI. On the server it
+ // is always a service impl which may be a provider or endpoint based;
+ // endpoint based may reference an SEI class
// The Service Implementation class could be either Provider-based or Endpoint-based. The
// annotations that are present are similar but different. Conformance requirements
@@ -255,16 +341,20 @@
// Verify that one (and only one) of the required annotations is present.
// TODO: Add tests to verify this error checking
- webServiceAnnotation = (WebService) implOrSEIClass.getAnnotation(WebService.class);
- webServiceProviderAnnotation = (WebServiceProvider) implOrSEIClass.getAnnotation(WebServiceProvider.class);
-
- if (webServiceAnnotation == null && webServiceProviderAnnotation == null)
- // TODO: NLS
- throw ExceptionFactory.makeWebServiceException("Either WebService or WebServiceProvider annotation must be present on " + implOrSEIClass);
- else if (webServiceAnnotation != null && webServiceProviderAnnotation != null)
- // TODO: NLS
- throw ExceptionFactory.makeWebServiceException("Both WebService or WebServiceProvider annotations cannot be presenton " + implOrSEIClass);
-
+
+
+ if (!getServiceDescription().isDBCMap()) {
+
+ webServiceAnnotation = (WebService) implOrSEIClass.getAnnotation(WebService.class);
+ webServiceProviderAnnotation = (WebServiceProvider) implOrSEIClass.getAnnotation(WebServiceProvider.class);
+
+ if (webServiceAnnotation == null && webServiceProviderAnnotation == null)
+ // TODO: NLS
+ throw ExceptionFactory.makeWebServiceException("Either WebService or WebServiceProvider annotation must be present on " + implOrSEIClass);
+ else if (webServiceAnnotation != null && webServiceProviderAnnotation != null)
+ // TODO: NLS
+ throw ExceptionFactory.makeWebServiceException("Both WebService or WebServiceProvider annotations cannot be presenton " + implOrSEIClass);
+ }
// If portName was specified, set it. Otherwise, we will get it from the appropriate
// annotation when the getter is called.
// TODO: If the portName is specified, should we verify it against the annotation?
@@ -275,30 +365,50 @@
// Provider-based one), then create the EndpointInterfaceDescription to contain
// the operations on the endpoint. Provider-based endpoints don't have operations
// associated with them, so they don't have an EndpointInterfaceDescription.
- if (webServiceAnnotation != null) {
- // If this impl class references an SEI, then use that SEI to create the EndpointInterfaceDesc.
- // TODO: Add support for service impl endpoints that don't reference an SEI; remember that this is also called with just an SEI interface from svcDesc.updateWithSEI()
- String seiClassName = getWebServiceEndpointInterface();
- Class seiClass = null;
- if (DescriptionUtils.isEmpty(seiClassName)) {
- // For now, just build the EndpointInterfaceDesc based on the class itself.
- // TODO: The EID ctor doesn't correctly handle anything but an SEI at this point; e.g. it doesn't publish the correct methods of just an impl.
- seiClass = implOrSEIClass;
- }
- else {
- try {
- // TODO: Using Class.forName() is probably not the best long-term way to get the SEI class from the annotation
- seiClass = Class.forName(seiClassName, false, Thread.currentThread().getContextClassLoader());
- } catch (ClassNotFoundException e) {
- // TODO: Throwing wrong exception
- e.printStackTrace();
- throw new UnsupportedOperationException("Can't create SEI class: " + e);
- }
- }
- endpointInterfaceDescription = new EndpointInterfaceDescription(seiClass, this);
- }
+ if (webServiceAnnotation != null) {
+ // If this impl class references an SEI, then use that SEI to create the EndpointInterfaceDesc.
+ // TODO: Add support for service impl endpoints that don't reference an SEI; remember
+ // that this is also called with just an SEI interface from svcDesc.updateWithSEI()
+ String seiClassName = getWebServiceEndpointInterface();
+
+ if (!getServiceDescription().isDBCMap()){
+ Class seiClass = null;
+ if (DescriptionUtils.isEmpty(seiClassName)) {
+ // For now, just build the EndpointInterfaceDesc based on the class itself.
+ // TODO: The EID ctor doesn't correctly handle anything but an SEI at this
+ // point; e.g. it doesn't publish the correct methods of just an impl.
+ seiClass = implOrSEIClass;
+ }
+ else {
+ try {
+ // TODO: Using Class.forName() is probably not the best long-term way to get the SEI class from the annotation
+ seiClass = Class.forName(seiClassName, false, Thread.currentThread().getContextClassLoader());
+ } catch (ClassNotFoundException e) {
+ // TODO: Throwing wrong exception
+ e.printStackTrace();
+ throw new UnsupportedOperationException("Can't create SEI class: " + e);
+ }
+ }
+ endpointInterfaceDescription = new EndpointInterfaceDescription(seiClass, this);
+ } else {
+ //we are processing annotations from the class itself
+ if (DescriptionUtils.isEmpty(seiClassName)){
+
+ //TODO: Build the EndpointInterfaceDesc based on the class itself
+ endpointInterfaceDescription = new EndpointInterfaceDescription(composite, true, this);
+
+ } else {
+ //Otherwise, build the EID based on the SEI composite
+ endpointInterfaceDescription = new EndpointInterfaceDescription(
+ getServiceDescription().getDBCMap().get(seiClassName),
+ false,
+ this);
+ }
+ }
+ }
}
+
public QName getPortQName() {
if (portQName == null) {
// The name was not set by the constructors, so get it from the
@@ -391,23 +501,96 @@
}
}
- private void buildAxisServiceFromWSDL() {
- // TODO: Change this to use WSDLToAxisServiceBuilder superclass
- // Note that the axis service builder takes only the localpart of the port qname.
- // TODO:: This should check that the namespace of the definition matches the namespace of the portQName per JAXRPC spec
- WSDL11ToAxisServiceBuilder serviceBuilder = new WSDL11ToAxisServiceBuilder(getServiceDescription().getWSDLWrapper().getDefinition(),
- getServiceDescription().getServiceQName(), portQName.getLocalPart());
- // TODO: Currently this only builds the client-side AxisService; it needs to do client and server somehow.
- // Patterned after AxisService.createClientSideAxisService
- serviceBuilder.setServerSide(false);
+ /*
+ * This setups and builds the AxisService using only the DescriptionBuilderCompositeList
+ *
+ */
+ private void setupAxisServiceFromDBL() {
+ // TODO: Need to use MetaDataQuery validator to merge WSDL (if any) and annotations (if any)
+ // Build up the AxisService. Note that if this is a dispatch client, then we don't use the
+ // WSDL to build up the AxisService since the port added to the Service by the client is not
+ // one that will be present in the WSDL. A null class passed in as the SEI indicates this
+ // is a dispatch client.
+
+ if (getServiceDescription().getWSDLWrapper() != null) {
+ buildAxisServiceFromWSDL();
+ }
+ else {
+ buildAxisServiceFromNoWSDL();
+ }
+
+ if (axisService == null) {
+ // TODO: RAS & NLS
+ throw ExceptionFactory.makeWebServiceException("Unable to create AxisService for "
+ + createAxisServiceName());
+ }
+
+ // Save the Service QName as a parameter.
+ Parameter serviceNameParameter = new Parameter();
+ serviceNameParameter.setName(MDQConstants.WSDL_SERVICE_QNAME);
+ serviceNameParameter.setValue(getServiceDescription().getServiceQName());
+
+ // Save the Port name. Note: Axis does not expect a QName since the namespace
+ // for the port is the ns from the WSDL definition
+ Parameter portParameter = new Parameter();
+ portParameter.setName(MDQConstants.WSDL_PORT);
+ portParameter.setValue(getPortQName().getLocalPart());
+
+ //Save the WSDL Definition
+ Parameter wsdlDefParameter = new Parameter();
+ wsdlDefParameter.setName(MDQConstants.WSDL_DEFINITION);
+ wsdlDefParameter.setValue(getServiceDescription().getWSDLWrapper().getDefinition());
+
+ //Save the WSDL Location
+ Parameter wsdlLocationParameter = new Parameter();
+ wsdlDefParameter.setName(MDQConstants.WSDL_LOCATION);
+ wsdlDefParameter.setValue(getWebServiceWSDLLocation());
+
+ //Save the fully qualified class name for the serviceImpl
+ Parameter serviceClassNameParameter = new Parameter();
+ serviceClassNameParameter.setName(MDQConstants.SERVICE_CLASS);
+ serviceClassNameParameter.setValue(javifyClassName(composite.getClassName()));
+
try {
- axisService = serviceBuilder.populateService();
- axisService.setName(createAxisServiceName());
- } catch (AxisFault e) {
- // TODO We should not swallow a fault here.
- log.warn(Messages.getMessage("warnAxisFault", e.toString()));
+ axisService.addParameter(serviceNameParameter);
+ axisService.addParameter(portParameter);
+ axisService.addParameter(wsdlDefParameter);
+ axisService.addParameter(wsdlLocationParameter);
+ axisService.addParameter(serviceClassNameParameter);
+ }
+ catch (AxisFault e) {
+ // TODO RAS
+ e.printStackTrace();
}
}
+
+ private void buildAxisServiceFromWSDL() {
+
+ try {
+
+ // TODO: Change this to use WSDLToAxisServiceBuilder superclass
+ // Note that the axis service builder takes only the localpart of the port qname.
+ // TODO:: This should check that the namespace of the definition matches the namespace of the portQName per JAXRPC spec
+ WSDL11ToAxisServiceBuilder serviceBuilder =
+ new WSDL11ToAxisServiceBuilder( getServiceDescription().getWSDLWrapper().getDefinition(),
+ getServiceDescription().getServiceQName(),
+ getPortQName().getLocalPart());
+
+ // TODO: Currently this only builds the client-side AxisService;
+ // it needs to do client and server somehow.
+ // Patterned after AxisService.createClientSideAxisService
+ if (getServiceDescription().isServerSide())
+ serviceBuilder.setServerSide(true);
+ else
+ serviceBuilder.setServerSide(false);
+
+ axisService = serviceBuilder.populateService();
+ axisService.setName(createAxisServiceName());
+ } catch (AxisFault e) {
+ // TODO We should not swallow a fault here.
+ log.warn(Messages.getMessage("warnAxisFault", e.toString()));
+ }
+ }
private void buildAxisServiceFromNoWSDL() {
// TODO: Refactor this to create from annotations.
@@ -427,16 +610,29 @@
// Build up the Description Hierachy. Note that if this is a dynamic port, then we don't use the
// WSDL to build up the hierachy since the port added to the Service by the client is not
// one that will be present in the WSDL.
- if (!isDynamicPort && getServiceDescription().getWSDLWrapper() != null) {
- buildEndpointDescriptionFromWSDL();
- }
- else if (implOrSEIClass != null){
- // Create the rest of the description hierachy from annotations on the class.
- // If there is no SEI class, then this is a Distpach case, and we currently
- // don't create the rest of the description hierachy (since it is not an SEI and thus
- // not operation-based client.
- buildEndpointDescriptionFromNoWSDL();
- }
+
+ //First, check to see if we can build this with the DBC List
+ //TODO: When MDQ input is the only possible input, then we can remove the check for
+ // the DBC list, until that time the code in here may appear somewhat redundant
+ if (getServiceDescription().isDBCMap()) {
+ if (!isDynamicPort && getServiceDescription().getWSDLWrapper() != null)
+ buildEndpointDescriptionFromWSDL();
+ else
+ buildEndpointDescriptionFromNoWSDL();
+ } else {
+ //Still processing annotations from the class
+
+ if (!isDynamicPort && getServiceDescription().getWSDLWrapper() != null) {
+ buildEndpointDescriptionFromWSDL();
+ }
+ else if (implOrSEIClass != null){
+ // Create the rest of the description hierachy from annotations on the class.
+ // If there is no SEI class, then this is a Distpach case, and we currently
+ // don't create the rest of the description hierachy (since it is not an SEI and thus
+ // not operation-based client.
+ buildEndpointDescriptionFromNoWSDL();
+ }
+ }
}
private void buildEndpointDescriptionFromWSDL() {
@@ -450,12 +646,15 @@
boolean wsdlPortFound = false;
if (wsdlPorts != null && wsdlPorts.size() > 0) {
Iterator wsdlPortIterator = wsdlPorts.values().iterator();
+
while (wsdlPortIterator.hasNext() && !wsdlPortFound) {
Port wsdlPort = (Port) wsdlPortIterator.next();
// Note the namespace is not included on the WSDL Port.
if (wsdlPort.getName().equals(portQName.getLocalPart())) {
- // Create the Endpoint Interface Description based on the WSDL.
+
+ // Create the Endpoint Interface Description based on the WSDL.
endpointInterfaceDescription = new EndpointInterfaceDescription(this);
+
// Update the EndpointInterfaceDescription created with WSDL with information from the
// annotations in the SEI
endpointInterfaceDescription.updateWithSEI(implOrSEIClass);
@@ -503,6 +702,7 @@
return serviceClient;
}
+ //This should eventually be deprecated in favor 'createAxisServiceNameFromDBL
private String createAxisServiceName() {
String portName = null;
if (portQName != null) {
@@ -513,6 +713,13 @@
}
return getServiceDescription().getServiceQName().getLocalPart() + "." + portName;
+ }
+
+ private String javifyClassName(String className) {
+ if(className.indexOf("/") != -1) {
+ return className.replaceAll("/", ".");
+ }
+ return className;
}
public boolean isProviderBased() {
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=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/EndpointInterfaceDescription.java Mon Oct 16 16:20:32 2006
@@ -21,6 +21,7 @@
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
@@ -33,6 +34,7 @@
import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.jaxws.ExceptionFactory;
+import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
/**
* An EndpointInterfaceDescription corresponds to a particular SEI-based Service
@@ -117,6 +119,15 @@
parentEndpointDescription = parent;
}
+
+ EndpointInterfaceDescription( DescriptionBuilderComposite dbc,
+ boolean isClass,
+ EndpointDescription parent){
+ //TODO: Determine if the isClass parameter is really necessary
+
+ //Get all the
+ }
+
private static Method[] getSEIMethods(Class sei) {
// Per JSR-181 all methods on the SEI are mapped to operations regardless
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=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/ServiceDescription.java Mon Oct 16 16:20:32 2006
@@ -19,9 +19,11 @@
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
+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;
@@ -30,6 +32,7 @@
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;
@@ -45,6 +48,9 @@
import org.apache.axis2.engine.AbstractDispatcher;
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.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;
@@ -115,6 +121,11 @@
private static final Log log = LogFactory.getLog(ServiceDescription.class);
+ private HashMap<String, DescriptionBuilderComposite> dbcMap = null;
+
+ private DescriptionBuilderComposite composite = null;
+ private boolean isServerSide = false;
+
/**
* This is (currently) the client-side-only constructor
* Construct a service description hierachy based on WSDL (may be null), the Service class, and
@@ -163,7 +174,54 @@
// TODO: The ServiceQName instance variable should be set based on annotation or default
}
+ /**
+ * This is (currently) the service-provider-side-only constructor.
+ * Create a service Description based on a service implementation class
+ *
+ * @param serviceImplClass
+ */
+ ServiceDescription(
+ HashMap<String, DescriptionBuilderComposite> dbcMap,
+ DescriptionBuilderComposite composite ) {
+
+ this.composite = composite;
+
+ String serviceImplName = this.composite.getClassName();
+
+ this.dbcMap = dbcMap;
+//TODO: How to we get this when called from server side, create here for now
+ this.isServerSide = true;
+
+ //capture the WSDL, if there is any...to be used for later processing
+ setupWsdlDefinition();
+
+ // Do a first pass validation for this DescriptionBuilderComposite.
+ // This is not intended to be a full integrity check, but rather a fail-fast mechanism
+ validateDBCLIntegrity();
+
+ // The ServiceQName instance variable is set based on annotation or default
+ //TODO: When we get this, need to consider verifying service name between WSDL
+ // and annotations, so
+ String targetNamespace;
+ String serviceName;
+ if(this.composite.getWebServiceAnnot() != null) {
+ targetNamespace = this.composite.getWebServiceAnnot().targetNamespace();
+ serviceName = this.composite.getWebServiceAnnot().serviceName();
+ }
+ else {
+ targetNamespace = this.composite.getWebServiceProviderAnnot().targetNamespace();
+ serviceName = this.composite.getWebServiceProviderAnnot().serviceName();
+ }
+ this.serviceQName = new QName(targetNamespace, serviceName);
+
+
+ // Create the EndpointDescription hierachy from the service impl annotations; Since the PortQName is null,
+ // it will be set to the annotation value.
+ //EndpointDescription endpointDescription = new EndpointDescription(null, this, serviceImplName);
+ EndpointDescription endpointDescription = new EndpointDescription(this, serviceImplName);
+ addEndpointDescription(endpointDescription);
+ }
/*=======================================================================*/
/*=======================================================================*/
@@ -326,9 +384,15 @@
public EndpointDescription[] getEndpointDescriptions() {
return endpointDescriptions.values().toArray(new EndpointDescription[0]);
}
+
public EndpointDescription getEndpointDescription(QName portQName) {
return endpointDescriptions.get(portQName);
}
+
+ public DescriptionBuilderComposite getDescriptionBuilderComposite() {
+ return composite;
+ }
+
/**
* Return the EndpointDescriptions corresponding to the SEI class. Note that
* Dispatch endpoints will never be returned because they do not have an associated SEI.
@@ -355,6 +419,17 @@
}
return returnEndpointDesc;
}
+
+ /*
+ * @return True - if we are processing with the DBC List instead of reflection
+ */
+ public boolean isDBCMap() {
+ if (dbcMap == null)
+ return false;
+ else
+ return true;
+ }
+
// END of public accessor methods
/*=======================================================================*/
/*=======================================================================*/
@@ -365,9 +440,24 @@
private void setupWsdlDefinition() {
// Note that there may be no WSDL provided, for example when called from
// Service.create(QName serviceName).
- if (wsdlURL != null) {
+
+ if (isDBCMap()) {
+
+ if (composite.getWsdlDefinition() != null) {
+ this.wsdlURL = composite.getWsdlURL();
+
+ try {
+ this.wsdlWrapper = new WSDL4JWrapper(this.wsdlURL,
+ composite.getWsdlDefinition());
+
+ } catch (WSDLException e) {
+ throw ExceptionFactory.makeWebServiceException(Messages.getMessage("wsdlException", e.getMessage()), e);
+ }
+ }
+ //Deprecate this code block when MDQ is fully integrated
+ } else if (wsdlURL != null) {
try {
- wsdlWrapper = new WSDL4JWrapper(this.wsdlURL);
+ this.wsdlWrapper = new WSDL4JWrapper(this.wsdlURL);
} catch (WSDLException e) {
throw ExceptionFactory.makeWebServiceException(Messages.getMessage("wsdlException", e.getMessage()), e);
}
@@ -381,7 +471,7 @@
public URL getWSDLLocation() {
return wsdlURL;
}
-
+
public ConfigurationContext getAxisConfigContext() {
if (configContext == null) {
configContext = getClientConfigurationFactory().getClientConfigurationContext();
@@ -406,4 +496,214 @@
public QName getServiceQName() {
return serviceQName;
}
+
+
+ public boolean isServerSide() {
+ return isServerSide;
+ }
+
+ public HashMap<String, DescriptionBuilderComposite> getDBCMap() {
+ return dbcMap;
+ }
+
+ private AxisService processImplBean(){
+ //Process
+ AxisService axisService = null;
+ return axisService;
+ }
+
+ private void validateDBCLIntegrity(){
+
+ //First, check the integrity of this input composite
+ //and retrieve
+ //the composite that represents this impl
+
+//TODO: Currently, we are calling this method on the DBC. However, the DBC
+//will eventually need access to to the whole DBC map to do proper validation.
+//We don't want to pass the map of DBC's back into a single DBC.
+//So, for starters, this method and all the privates that it calls should be
+// moved to here. At some point, we should consider using a new class that we
+//can implement scenarios of, like validateServiceImpl implements validator
+
+ try {
+ validateIntegrity();
+ }
+ catch (Exception ex) {
+ //com.ibm.ws.ffdc.FFDCFilter.processException(ex, "org.apache.axis2.jaxws.description.ServiceDescription", "329", this);
+ //Tr.error(_tc, msg, inserts);
+ }
+ }
+
+ public void validateIntegrity() {
+ //TODO: Consider moving this to a utils area, do we really want a public
+ // method that checks integrity...possibly
+
+ //TODO: This method will validate the integrity of this object. Basically, if
+ //consumer set this up improperly, then we should fail fast, should consider placing
+ //this method in a utils class within the 'description' package
+
+ if (composite.getWebServiceAnnot() != null && composite.getWebServiceProviderAnnot() != null) {
+ throw ExceptionFactory.makeWebServiceException("DescriptionBuilderComposite: WebService annotation and WebServiceProvider annotation cannot coexist");
+ }
+
+// Make sure that we're only validating against WSDL, if there is WSDL...duh
+ if (composite.getWebServiceProviderAnnot() != null ) {
+ // TODO EDIT CHECK: valid only if is a provider class, what are these?
+
+ } else if (composite.getWebServiceAnnot() != null) {
+ if (!composite.isInterface()) {
+ // TODO: Validate on the class that this.classModifiers Array does not contain the strings
+ // FINAL or ABSTRACT, but does contain PUBLIC
+ // TODO: Validate on the class that a public constructor exists
+ // TODO: Validate on the class that a finalize() method does not exist
+ if (!composite.getWebServiceAnnot().wsdlLocation().equals("")) {
+ if (composite.getWsdlDefinition() == null || composite.getWsdlURL() == null) {
+ throw ExceptionFactory.makeWebServiceException("DescriptionBuilderComposite: cannot find WSDL Definition pertaining to this WebService annotation");
+ }
+ }
+
+ // setWebServiceAnnotDefaults(true=impl); Must happen before we start checking annot
+ if (composite.getWebServiceAnnot().endpointInterface() != null) {
+
+ // Perform more validation with SEI
+
+ DescriptionBuilderComposite seic =
+ dbcMap.get(composite.getWebServiceAnnot().endpointInterface());
+
+ //Verify that we can find the SEI in the composite list
+ if (seic == null){
+ throw ExceptionFactory.makeWebServiceException("DescriptionBuilderComposite: cannot find SEI composite specified by the endpoint interface");
+ }
+
+ //Verify that the only annotations are WebService and HandlerChain
+ //(per JSR181 Sec. 3.1)
+ if ( composite.getBindingTypeAnnot()!= null
+ || composite.getServiceModeAnnot() != null
+ || composite.getSoapBindingAnnot() != null
+ || composite.getWebFaultAnnot() != null
+ || composite.getWebServiceClientAnnot() != null
+ || composite.getWebServiceContextAnnot()!= null
+ || composite.getAllWebServiceRefAnnots() != null
+ ) {
+ throw ExceptionFactory.makeWebServiceException("DescriptionBuilderComposite: invalid annotations specified when WebService annotation specifies an endpoint interface");
+ }
+
+ //Verify that WebService annotation does not contain a name attribute
+ //(per JSR181 Sec. 3.1)
+ if (composite.getWebServiceAnnot().name() != null) {
+ throw ExceptionFactory.makeWebServiceException("DescriptionBuilderComposite: invalid annotations specified when WebService annotation specifies an endpoint interface");
+ }
+
+ //Verify that that this implementation class implements all methods in the interface
+ validateImplementation(seic);
+
+ } else {
+ //TODO: Fill out the validation below
+ //'endpoint interface' is null so validate against this class only
+ // Validate hmmm something
+ // WSDL Check: ?
+ // Call ValidateWebMethodAnnots()
+ // - this method will check that all methods are public - ???
+ //
+ }
+ } else { //this is an interface
+ //TODO: Validate that the interface is public
+
+ if (!composite.getWebServiceAnnot().endpointInterface().equals("")) {
+ throw ExceptionFactory.makeWebServiceException("DescriptionBuilderComposite: WebService annotation contains a non-empty field for the SEI");
+ }
+ // Validate (Spec. JAXWS 2.0 Sec.3.4) all WebMethod annots have exclude to 'false' or null
+ // Call ValidateWebMethodAnnots()
+ //
+ }
+
+ CheckMethodsAgainstWSDL();
+
+ }
+ //We made it through this round of validation, now set appropriate defaults
+ //within each annotation, Realize that we'll have to do this for the inherited classes
+ //as well.
+
+ //!!! TODO: Set Default field values for each annot, as well as, inherited classes
+ //TODO: We shouldn't try to set defaults for all annots...we need to be selective
+ // based on what is being represented here (i.e. provider vs. impl. vs. SEI)
+ // So, we may consider doing this at end of individual validation blocks above
+ //setWebServiceAnnotDefaults(true=impl);
+ //setWebMethodAnnotDefaults();
+ //setWebServiceProviderAnnotDefaults();
+
+ // For each annot that is set within this composite
+ // If it is set, then check that its default values are appropriate, based
+ // on the spec.
+ }
+
+ private void validateImplementation(DescriptionBuilderComposite seic) {
+ //TODO: Currently, this may be unnecessary per JSR181, sec. 4.1.1, definition
+ // of endpointInterface attribute
+ }
+
+ private void CheckMethodsAgainstWSDL() {
+
+ if (WebMethodAnnotationsExist()) {
+ if (WebMethodAnnotationsWithFalseExclusions())
+ VerifyFalseExclusionsWithWSDL();
+ else
+ VerifyPublicMethodsWithWSDL();
+ } else {
+ VerifyPublicMethodsWithWSDL();
+ }
+ }
+
+ /**
+ * @return Returns TRUE if we find just one WebMethod Annotation
+ */
+ private boolean WebMethodAnnotationsExist() {
+
+
+ MethodDescriptionComposite mdc = null;
+ Iterator<MethodDescriptionComposite> iter = composite.getMethodDescriptionsList().iterator();
+
+ while (iter.hasNext()) {
+ mdc = iter.next();
+
+ if (mdc.getWebMethodAnnot() != null)
+ return true;
+ }
+
+ return false;
+ }
+
+ private void VerifyFalseExclusionsWithWSDL() {
+ //TODO: Place logic here to verify that each exclude==false WebMethod annot we find
+ // is contained in the WSDL
+ }
+
+ private void VerifyPublicMethodsWithWSDL() {
+ //TODO: Place logic here to verify that each publicMethod with no WebMethod annot
+ // is contained in the WSDL
+
+ }
+
+
+ /**
+ * @return Returns TRUE if we find just one WebMethod Annotation with exclude flag
+ * set to false
+ */
+ private boolean WebMethodAnnotationsWithFalseExclusions() {
+
+ MethodDescriptionComposite mdc = null;
+ Iterator<MethodDescriptionComposite> iter = composite.getMethodDescriptionsList().iterator();
+
+ while (iter.hasNext()) {
+ mdc = iter.next();
+
+ WebMethodAnnot wma = mdc.getWebMethodAnnot();
+ if (wma != null) {
+ if (wma.exclude() == false)
+ return true;
+ }
+ }
+
+ return false;
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/BindingTypeAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/BindingTypeAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/BindingTypeAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/BindingTypeAnnot.java Mon Oct 16 16:20:32 2006
@@ -62,6 +62,19 @@
public Class<Annotation> annotationType(){
return Annotation.class;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@BindingType.value= " + value);
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/DescriptionBuilderComposite.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/DescriptionBuilderComposite.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/DescriptionBuilderComposite.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/DescriptionBuilderComposite.java Mon Oct 16 16:20:32 2006
@@ -3,11 +3,16 @@
*/
package org.apache.axis2.jaxws.description.builder;
+import java.net.URL;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.wsdl.Definition;
+import org.apache.axis2.jaxws.ExceptionFactory;
+import org.apache.axis2.jaxws.util.WSDL4JWrapper;
+
public class DescriptionBuilderComposite {
/*
* This structure contains the full reflected class, as well as, the
@@ -18,18 +23,24 @@
public DescriptionBuilderComposite () {
+ methodDescriptions = new ArrayList<MethodDescriptionComposite>();
+ fieldDescriptions = new ArrayList<FieldDescriptionComposite>();
+ webServiceRefAnnotList = new ArrayList<WebServiceRefAnnot>();
+ interfacesList = new ArrayList<String>();
}
//Class type within the module
- private enum ModuleClassType { SERVICEIMPL, SEI, SERVICE, SUPER, PROVIDER, FAULT }
+ public static enum ModuleClassType { SERVICEIMPL, SEI, SERVICE, SUPER, PROVIDER, FAULT}
+ private ModuleClassType moduleClassType = null;
//Note: a WSDL is not necessary
- private Definition wsdlDefinition;
+ private Definition wsdlDefinition = null;
+ private URL wsdlURL = null;
// Class-level annotations
private WebServiceAnnot webServiceAnnot;
- private WebServiceProviderAnnot webServiceProviderAnnot; // TODO EDIT CHECK: WebService and WebServiceProvider are mutually exclusive
- private ServiceModeAnnot serviceModeAnnot; // TODO EDIT CHECK: valid only if is a provider class
+ private WebServiceProviderAnnot webServiceProviderAnnot;
+ private ServiceModeAnnot serviceModeAnnot;
private WebServiceClientAnnot webServiceClientAnnot;
private WebFaultAnnot webFaultAnnot;
private HandlerChainAnnot handlerChainAnnot;
@@ -43,7 +54,8 @@
private String[] classModifiers; //public, abstract, final, strictfp...
private String extendsClass; //Set to the name of the super class
private List<String> interfacesList; //Set this for all implemented interfaces
-
+ private boolean isInterface = false;
+
private List<MethodDescriptionComposite> methodDescriptions;
private List<FieldDescriptionComposite> fieldDescriptions;
@@ -123,6 +135,13 @@
}
/**
+ * @return Returns the webServiceRefAnnot list.
+ */
+ public List<WebServiceRefAnnot> getAllWebServiceRefAnnots() {
+ return webServiceRefAnnotList;
+ }
+
+ /**
* @return Returns the webServiceRefAnnot.
*/
public WebServiceRefAnnot getWebServiceRefAnnot(String name) {
@@ -154,13 +173,20 @@
}
/**
- * @return Returns the wsdlDefinition.
+ * @return Returns the wsdlDefinition
*/
public Definition getWsdlDefinition() {
return wsdlDefinition;
}
/**
+ * @return Returns the wsdlURL
+ */
+ public URL getWsdlURL() {
+ return this.wsdlURL;
+ }
+
+ /**
* Returns the nth occurence of this MethodComposite. Since
* method names are not unique, we have to account for multiple occurrences
*
@@ -187,6 +213,10 @@
return composite;
}
+ public List<MethodDescriptionComposite> getMethodDescriptionsList() {
+ return methodDescriptions;
+ }
+
/**
*
* @return Returns the methodDescriptionComposite..null if not found
@@ -205,6 +235,15 @@
return composite;
}
+ /**
+ *
+ * @return Returns true if this is an interface
+ */
+ public boolean isInterface(){
+
+ return isInterface;
+ }
+
//++++++++
//Setters
//++++++++
@@ -236,7 +275,7 @@
/**
* @param interfacesList The interfacesList to set.
*/
- public void getInterfacesList(List<String> interfacesList) {
+ public void setInterfacesList(List<String> interfacesList) {
this.interfacesList = interfacesList;
}
@@ -300,6 +339,13 @@
}
/**
+ * @param wsdlURL The wsdlURL to set.
+ */
+ public void setwsdlURL(URL wsdlURL) {
+ this.wsdlURL = wsdlURL;
+ }
+
+ /**
* @param BindingTypeAnnot The BindingTypeAnnot to set.
*/
public void setBindingTypeAnnot(
@@ -316,6 +362,13 @@
}
/**
+ * @param isInterface Sets whether this composite represents a class or interface
+ */
+ public void setIsInterface(boolean isInterface){
+ this.isInterface = isInterface;
+ }
+
+ /**
* @param methodDescription The methodDescription to add to the set.
*/
public void addMethodDescriptionComposite(MethodDescriptionComposite methodDescription) {
@@ -328,5 +381,112 @@
public void addFieldDescriptionComposite(FieldDescriptionComposite fieldDescription) {
fieldDescriptions.add(fieldDescription);
}
+
+ /**
+ * @return Returns the ModuleClassType.
+ */
+ public ModuleClassType getClassType() {
+
+ if (moduleClassType == null) {
+ //TODO: Determine the class type
+ }
+ return moduleClassType;
+ }
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append("***** BEGIN DescriptionBuilderComposite *****");
+ sb.append(newLine);
+ sb.append("DBC.className= " + className);
+ sb.append(newLine);
+ sb.append("DBC.superClass=" + extendsClass);
+ sb.append(newLine);
+ if(classModifiers != null) {
+ for(int i=0; i < classModifiers.length; i++) {
+ sb.append("DBC.classModifier=" + classModifiers[i]);
+ sb.append(newLine);
+ }
+ }
+ sb.append(newLine);
+ Iterator<String> intIter = interfacesList.iterator();
+ while(intIter.hasNext()) {
+ String inter = intIter.next();
+ sb.append("DBC.interface= " + inter);
+ sb.append(newLine);
+ }
+ sb.append(newLine);
+ if(webServiceAnnot != null) {
+ sb.append("\t ** @WebService **");
+ sb.append(newLine);
+ sb.append("\t" + webServiceAnnot.toString());
+ }
+ sb.append(newLine);
+ if(webServiceProviderAnnot != null) {
+ sb.append("\t ** @WebServiceProvider **");
+ sb.append(newLine);
+ sb.append("\t" + webServiceProviderAnnot.toString());
+ }
+ sb.append(newLine);
+ if(webServiceClientAnnot != null) {
+ sb.append("\t ** @WebServiceClient **");
+ sb.append(newLine);
+ sb.append("\t" + webServiceClientAnnot.toString());
+ }
+ sb.append(newLine);
+ if(webFaultAnnot != null) {
+ sb.append("\t ** @WebFault **");
+ sb.append(newLine);
+ sb.append("\t" + webFaultAnnot.toString());
+ }
+ sb.append(newLine);
+ if(serviceModeAnnot != null) {
+ sb.append("\t ** @ServiceMode **");
+ sb.append(newLine);
+ sb.append("\t" + serviceModeAnnot.toString());
+ }
+ sb.append(newLine);
+ if(soapBindingAnnot != null) {
+ sb.append("\t ** @SOAPBinding **");
+ sb.append(newLine);
+ sb.append("\t" + soapBindingAnnot.toString());
+ }
+ sb.append(newLine);
+ if(handlerChainAnnot != null) {
+ sb.append("\t ** @HandlerChain **");
+ sb.append(newLine);
+ sb.append("\t" + handlerChainAnnot.toString());
+ }
+ sb.append(newLine);
+ Iterator<WebServiceRefAnnot> wsrIter = webServiceRefAnnotList.iterator();
+ while(wsrIter.hasNext()) {
+ WebServiceRefAnnot wsr = wsrIter.next();
+ sb.append("\t ** @WebServiceRef **");
+ sb.append(newLine);
+ sb.append("\t" + wsr.toString());
+ sb.append(newLine);
+ }
+ sb.append(newLine);
+ Iterator<MethodDescriptionComposite> mdcIter = methodDescriptions.iterator();
+ sb.append(newLine);
+ while(mdcIter.hasNext()) {
+ MethodDescriptionComposite mdc = mdcIter.next();
+ sb.append("\t\t" + mdc.toString());
+ sb.append(newLine);
+ }
+ sb.append(newLine);
+ Iterator<FieldDescriptionComposite> fdcIter = fieldDescriptions.iterator();
+ sb.append(newLine);
+ while(fdcIter.hasNext()) {
+ FieldDescriptionComposite fdc = fdcIter.next();
+ sb.append("\t\t" + fdc.toString());
+ sb.append(newLine);
+ }
+ sb.append("***** END DescriptionBuilderComposite *****");
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/FieldDescriptionComposite.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/FieldDescriptionComposite.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/FieldDescriptionComposite.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/FieldDescriptionComposite.java Mon Oct 16 16:20:32 2006
@@ -87,5 +87,30 @@
public void setWebServiceRefAnnot(WebServiceRefAnnot webServiceRefAnnot) {
this.webServiceRefAnnot = webServiceRefAnnot;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append("***** BEGIN FieldDescriptionComposite *****");
+ sb.append("FDC.fieldName=" + fieldName);
+ sb.append(newLine);
+ if(handlerChainAnnot != null) {
+ sb.append("\t @HandlerChain");
+ sb.append(newLine);
+ sb.append("\t" + handlerChainAnnot.toString());
+ }
+ sb.append(newLine);
+ if(webServiceRefAnnot != null) {
+ sb.append("\t @WebServiceRef");
+ sb.append(newLine);
+ sb.append("\t" + webServiceRefAnnot.toString());
+ }
+ sb.append("***** END FieldDescriptionComposite");
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/HandlerChainAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/HandlerChainAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/HandlerChainAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/HandlerChainAnnot.java Mon Oct 16 16:20:32 2006
@@ -70,4 +70,19 @@
public Class<Annotation> annotationType(){
return Annotation.class;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@HandlerChain.file= " + file);
+ sb.append(newLine);
+ sb.append("@HandlerChain.name= " + name);
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Added: 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=auto&rev=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java Mon Oct 16 16:20:32 2006
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.axis2.jaxws.description.builder;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.wsdl.WSDLConstants;
+
+
+public class MDQConstants {
+
+ public static final String WSDL_SERVICE_QNAME = "WSDL_SERVICE_QNAME";
+ public static final String WSDL_PORT = "WSDL_PORT";
+ public static final String WSDL_DEFINITION = WSDLConstants.WSDL_4_J_DEFINITION;
+ public static final String WSDL_LOCATION = "WSDL_LOCATION";
+ public static final String SERVICE_CLASS = "SERVICE_CLASS";
+}
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=464720&r1=464719&r2=464720
==============================================================================
--- 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 Mon Oct 16 16:20:32 2006
@@ -3,6 +3,8 @@
*/
package org.apache.axis2.jaxws.description.builder;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
public class MethodDescriptionComposite {
@@ -13,22 +15,22 @@
private String[] exceptions;
boolean oneWayAnnotated;
- private WebMethodAnnot webMethodAnnot;
- private WebResultAnnot webResultAnnot;
+ private WebMethodAnnot webMethodAnnot;
+ private WebResultAnnot webResultAnnot;
private WebServiceContextAnnot webServiceContextAnnot;
- private HandlerChainAnnot handlerChainAnnot;
- private SoapBindingAnnot soapBindingAnnot;
- private WebServiceRefAnnot webServiceRefAnnot;
- private WebEndpointAnnot webEndpointAnnot;
- private RequestWrapperAnnot requestWrapperAnnot; //TODO EDIT CHECK: only on methods of SEI
- private ResponseWrapperAnnot responseWrapperAnnot;//TODO EDIT CHECK: only on methods of SEI
+ private HandlerChainAnnot handlerChainAnnot;
+ private SoapBindingAnnot soapBindingAnnot;
+ private WebServiceRefAnnot webServiceRefAnnot;
+ private WebEndpointAnnot webEndpointAnnot;
+ private RequestWrapperAnnot requestWrapperAnnot; //TODO EDIT CHECK: only on methods of SEI
+ private ResponseWrapperAnnot responseWrapperAnnot;//TODO EDIT CHECK: only on methods of SEI
private List<ParameterDescriptionComposite> parameterDescriptions;//TODO EDIT CHECK: only on methods of SEI
/*
* Default Constructor
*/
public MethodDescriptionComposite () {
-
+ parameterDescriptions = new ArrayList<ParameterDescriptionComposite>();
}
public MethodDescriptionComposite (
@@ -250,9 +252,10 @@
* @param index The index at which to place this parameterDescription
*/
public void addParameterDescriptionComposite(ParameterDescriptionComposite parameterDescription, int index) {
+ parameterDescription.setListOrder(index);
parameterDescriptions.add(index, parameterDescription);
}
-
+
/**
* @param parameterDescription The parameterDescription to add to the set.
*/
@@ -272,5 +275,92 @@
*/
public void setExceptions(String[] exceptions) {
this.exceptions = exceptions;
+ }
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append("***** BEGIN MethodDescriptionComposite *****");
+ sb.append(newLine);
+ sb.append("MDC.name= " + methodName);
+ sb.append(newLine);
+ sb.append("MDC.returnType= " + returnType);
+ if(exceptions != null) {
+ for(int i=0; i < exceptions.length; i++) {
+ sb.append("MDC.exception= " + exceptions[i]);
+ sb.append(newLine);
+ }
+ }
+ sb.append(newLine);
+ sb.append("\t ** @OneWay **");
+ sb.append(newLine);
+ sb.append("\t isOneWay= ");
+ if(oneWayAnnotated) {
+ sb.append("true");
+ }
+ else {
+ sb.append("false");
+ }
+ sb.append(newLine);
+ if(webMethodAnnot != null) {
+ sb.append("\t ** @WebMethod **");
+ sb.append(newLine);
+ sb.append("\t" + webMethodAnnot.toString());
+ }
+ sb.append(newLine);
+ if(requestWrapperAnnot != null) {
+ sb.append("\t ** @RequestWrapper **");
+ sb.append(newLine);
+ sb.append("\t" + requestWrapperAnnot.toString());
+ }
+ sb.append(newLine);
+ if(responseWrapperAnnot != null) {
+ sb.append("\t ** @ResponsetWrapper **");
+ sb.append(newLine);
+ sb.append("\t" + responseWrapperAnnot.toString());
+ }
+ sb.append(newLine);
+ if(soapBindingAnnot != null) {
+ sb.append("\t ** @SOAPBinding **");
+ sb.append(newLine);
+ sb.append("\t" + soapBindingAnnot.toString());
+ }
+ sb.append(newLine);
+ if(webEndpointAnnot != null) {
+ sb.append("\t ** @WebEndpoint **");
+ sb.append(newLine);
+ sb.append("\t" + webEndpointAnnot.toString());
+ }
+ sb.append(newLine);
+ if(webResultAnnot != null) {
+ sb.append("\t ** @WebResult **");
+ sb.append(newLine);
+ sb.append("\t" + webResultAnnot.toString());
+ }
+ sb.append(newLine);
+ if(webServiceRefAnnot != null) {
+ sb.append("\t ** @WebServiceRef **");
+ sb.append(newLine);
+ sb.append("\t" + webServiceRefAnnot.toString());
+ }
+ sb.append(newLine);
+ if(handlerChainAnnot != null) {
+ sb.append("\t ** @HandlerChain **");
+ sb.append(newLine);
+ sb.append("\t" + handlerChainAnnot.toString());
+ }
+ sb.append(newLine);
+ Iterator<ParameterDescriptionComposite> pdcIter = parameterDescriptions.iterator();
+ while(pdcIter.hasNext()) {
+ ParameterDescriptionComposite pdc = pdcIter.next();
+ sb.append("\t\t" + pdc.toString());
+ sb.append(newLine);
+ }
+ sb.append("***** END MethodDescriptionComposite *****");
+ return sb.toString();
}
}
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=464720&r1=464719&r2=464720
==============================================================================
--- 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 Mon Oct 16 16:20:32 2006
@@ -9,6 +9,7 @@
private WebParamAnnot webParamAnnot;
private WebServiceRefAnnot webServiceRefAnnot;
private WebServiceContextAnnot webServiceContextAnnot;
+ private int listOrder; //represents this composites order in the list
public ParameterDescriptionComposite () {
@@ -30,21 +31,21 @@
/**
* @return Returns the parameterType.
*/
- private String getParameterType() {
+ public String getParameterType() {
return parameterType;
}
/**
* @return Returns the webParamAnnot.
*/
- private WebParamAnnot getWebParamAnnot() {
+ public WebParamAnnot getWebParamAnnot() {
return webParamAnnot;
}
/**
* @return Returns the webServiceRefAnnot.
*/
- private WebServiceRefAnnot getWebServiceRefAnnot() {
+ public WebServiceRefAnnot getWebServiceRefAnnot() {
return webServiceRefAnnot;
}
@@ -56,31 +57,70 @@
}
/**
+ * @return Returns the webServiceContextAnnot.
+ */
+ public int getListOrder() {
+ return listOrder;
+ }
+
+ /**
* @param parameterType The parameterType to set.
*/
- private void setParameterType(String parameterType) {
+ public void setParameterType(String parameterType) {
this.parameterType = parameterType;
}
/**
* @param webParamAnnot The webParamAnnot to set.
*/
- private void setWebParamAnnot(WebParamAnnot webParamAnnot) {
+ public void setWebParamAnnot(WebParamAnnot webParamAnnot) {
this.webParamAnnot = webParamAnnot;
}
/**
* @param webServiceRefAnnot The webServiceRefAnnot to set.
*/
- private void setWebServiceRefAnnot(WebServiceRefAnnot webServiceRefAnnot) {
+ public void setWebServiceRefAnnot(WebServiceRefAnnot webServiceRefAnnot) {
this.webServiceRefAnnot = webServiceRefAnnot;
}
/**
* @param webServiceContextAnnot The webServiceContextAnnot to set.
*/
- private void setWebServiceContextAnnot(WebServiceContextAnnot webServiceContextAnnot) {
+ public void setWebServiceContextAnnot(WebServiceContextAnnot webServiceContextAnnot) {
this.webServiceContextAnnot = webServiceContextAnnot;
}
+ /**
+ * @param webServiceContextAnnot The webServiceContextAnnot to set.
+ */
+ public void setListOrder(int listOrder) {
+ this.listOrder = listOrder;
+ }
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append("***** BEGIN ParameterDescriptionComposite *****");
+ sb.append("PDC.parameterType= " + parameterType);
+ sb.append(newLine);
+ if(webParamAnnot != null) {
+ sb.append("\t @WebParam");
+ sb.append(newLine);
+ sb.append("\t" + webParamAnnot.toString());
+ }
+ sb.append(newLine);
+ if(webServiceRefAnnot != null) {
+ sb.append("\t @WebServiceRef");
+ sb.append(newLine);
+ sb.append("\t" + webServiceRefAnnot.toString());
+ }
+ sb.append(newLine);
+ sb.append("***** END ParameterDescriptionComposite *****");
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/RequestWrapperAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/RequestWrapperAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/RequestWrapperAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/RequestWrapperAnnot.java Mon Oct 16 16:20:32 2006
@@ -104,6 +104,23 @@
public Class<Annotation> annotationType(){
return Annotation.class;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@RequestWrapper.localName= " + localName);
+ sb.append(newLine);
+ sb.append("@RequestWrapper.className= " + className);
+ sb.append(newLine);
+ sb.append("@RequestWrapper.targetNamespace= " + targetNamespace);
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ResponseWrapperAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ResponseWrapperAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ResponseWrapperAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ResponseWrapperAnnot.java Mon Oct 16 16:20:32 2006
@@ -104,6 +104,23 @@
public Class<Annotation> annotationType(){
return Annotation.class;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@ResponseWrapper.localName= " + localName);
+ sb.append(newLine);
+ sb.append("@ResponseWrapper.className= " + className);
+ sb.append(newLine);
+ sb.append("@ResponseWrapper.targetNamespace= " + targetNamespace);
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ServiceModeAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ServiceModeAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ServiceModeAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/ServiceModeAnnot.java Mon Oct 16 16:20:32 2006
@@ -60,4 +60,17 @@
this.value = value;
}
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@ServiceMode.value= " + value.toString());
+ sb.append(newLine);
+ return null;
+ }
+
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/SoapBindingAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/SoapBindingAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/SoapBindingAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/SoapBindingAnnot.java Mon Oct 16 16:20:32 2006
@@ -77,4 +77,18 @@
return Annotation.class;
}
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@SOAPBinding.style= " + style.toString());
+ sb.append("@SOAPBinding.parameterStyle= " + parameterStyle.toString());
+ sb.append("@SOAPBinding.use= " + use.toString());
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebEndpointAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebEndpointAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebEndpointAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebEndpointAnnot.java Mon Oct 16 16:20:32 2006
@@ -62,4 +62,17 @@
public Class<Annotation> annotationType(){
return Annotation.class;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@WebEndpoint.name= " + name);
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebFaultAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebFaultAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebFaultAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebFaultAnnot.java Mon Oct 16 16:20:32 2006
@@ -75,5 +75,22 @@
public Class<Annotation> annotationType(){
return Annotation.class;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@WebFault.name= " + name);
+ sb.append(newLine);
+ sb.append("@WebFault.faultBean= " + faultBean);
+ sb.append(newLine);
+ sb.append("@WebFault.targetNamespace= " + targetNamespace);
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebMethodAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebMethodAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebMethodAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebMethodAnnot.java Mon Oct 16 16:20:32 2006
@@ -70,5 +70,28 @@
public Class<Annotation> annotationType(){
return Annotation.class;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@WebMethod.operationName= " + operationName);
+ sb.append(newLine);
+ sb.append("@WebMethod.action= " + action);
+ sb.append(newLine);
+ sb.append("@WebMethod.exclude = ");
+ if(exclude) {
+ sb.append("true");
+ }
+ else {
+ sb.append("false");
+ }
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebParamAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebParamAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebParamAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebParamAnnot.java Mon Oct 16 16:20:32 2006
@@ -101,5 +101,32 @@
public Class<Annotation> annotationType(){
return Annotation.class;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@WebParam.name= " + name);
+ sb.append(newLine);
+ sb.append("@WebParam.partName= " + partName);
+ sb.append(newLine);
+ sb.append("@WebParam.mode = " + mode.toString());
+ sb.append(newLine);
+ sb.append("@WebParam.targetNamespace= " + targetNamespace);
+ sb.append(newLine);
+ sb.append("@WebParam.header= ");
+ if(header) {
+ sb.append("true");
+ }
+ else {
+ sb.append("false");
+ }
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebResultAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebResultAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebResultAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebResultAnnot.java Mon Oct 16 16:20:32 2006
@@ -98,5 +98,30 @@
public Class<Annotation> annotationType(){
return Annotation.class;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@WebResult.name= " + name);
+ sb.append(newLine);
+ sb.append("@WebResult.partName= " + partName);
+ sb.append(newLine);
+ sb.append("@WebResult.targetNamespace= " + targetNamespace);
+ sb.append(newLine);
+ sb.append("@WebResult.header= ");
+ if(header) {
+ sb.append("true");
+ }
+ else {
+ sb.append("false");
+ }
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceAnnot.java Mon Oct 16 16:20:32 2006
@@ -145,4 +145,26 @@
}
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@WebService.name= " + name);
+ sb.append(newLine);
+ sb.append("@WebService.serviceName= " + serviceName);
+ sb.append(newLine);
+ sb.append("@WebService.endpointInterface= " + endpointInterface);
+ sb.append(newLine);
+ sb.append("@WebService.targetNamespace= " + targetNamespace);
+ sb.append(newLine);
+ sb.append("@WebService.wsdlLocation= " + wsdlLocation);
+ sb.append(newLine);
+ sb.append("@WebService.portName= " + portName);
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceClientAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceClientAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceClientAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceClientAnnot.java Mon Oct 16 16:20:32 2006
@@ -105,5 +105,21 @@
return Annotation.class;
}
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@WebServiceClient.name= " + name);
+ sb.append(newLine);
+ sb.append("@WebServiceClient.targetNamespace= " + targetNamespace);
+ sb.append(newLine);
+ sb.append("@WebServiceClient.wsdlLocation= " + wsdlLocation);
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceProviderAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceProviderAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceProviderAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceProviderAnnot.java Mon Oct 16 16:20:32 2006
@@ -123,4 +123,23 @@
public Class<Annotation> annotationType(){
return Annotation.class;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@WebServiceProvider.serviceName= " + serviceName);
+ sb.append(newLine);
+ sb.append("@WebServiceProvider.targetNamespace= " + targetNamespace);
+ sb.append(newLine);
+ sb.append("@WebServiceProvider.wsdlLocation= " + wsdlLocation);
+ sb.append(newLine);
+ sb.append("@WebServiceProvider.portName= " + portName);
+ sb.append(newLine);
+ return sb.toString();
+ }
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.java?view=diff&rev=464720&r1=464719&r2=464720
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.java Mon Oct 16 16:20:32 2006
@@ -187,4 +187,25 @@
public Class<Annotation> annotationType(){
return Annotation.class;
}
+
+ /**
+ * Convenience method for unit testing. We will print all of the
+ * data members here.
+ */
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ String newLine = "\n";
+ sb.append(newLine);
+ sb.append("@WebServiceRef.name= " + name);
+ sb.append(newLine);
+ sb.append("@WebServiceRef.wsdlLocation= " + wsdlLocation);
+ sb.append(newLine);
+ sb.append("@WebServiceRef.mappedName= " + mappedName);
+ sb.append(newLine);
+ sb.append("@WebServiceRef.type= " + typeString);
+ sb.append(newLine);
+ sb.append("@WebServiceRef.value= " + valueString);
+ sb.append(newLine);
+ return sb.toString();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org