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 ke...@apache.org on 2007/10/12 13:06:38 UTC

svn commit: r584130 - in /webservices/axis2/branches/java/1_3_post_mods/modules/kernel/src/org/apache/axis2/description: WSDL20ToAllAxisServicesBuilder.java WSDL20ToAxisServiceBuilder.java

Author: keithc
Date: Fri Oct 12 04:06:38 2007
New Revision: 584130

URL: http://svn.apache.org/viewvc?rev=584130&view=rev
Log:
Committing 582773r to branch


Modified:
    webservices/axis2/branches/java/1_3_post_mods/modules/kernel/src/org/apache/axis2/description/WSDL20ToAllAxisServicesBuilder.java
    webservices/axis2/branches/java/1_3_post_mods/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java

Modified: webservices/axis2/branches/java/1_3_post_mods/modules/kernel/src/org/apache/axis2/description/WSDL20ToAllAxisServicesBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_3_post_mods/modules/kernel/src/org/apache/axis2/description/WSDL20ToAllAxisServicesBuilder.java?rev=584130&r1=584129&r2=584130&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_3_post_mods/modules/kernel/src/org/apache/axis2/description/WSDL20ToAllAxisServicesBuilder.java (original)
+++ webservices/axis2/branches/java/1_3_post_mods/modules/kernel/src/org/apache/axis2/description/WSDL20ToAllAxisServicesBuilder.java Fri Oct 12 04:06:38 2007
@@ -24,6 +24,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.woden.wsdl20.Endpoint;
 import org.apache.woden.wsdl20.Service;
+import org.apache.woden.WSDLException;
 
 import java.io.InputStream;
 import java.util.ArrayList;
@@ -46,6 +47,11 @@
      */
     public WSDL20ToAllAxisServicesBuilder(InputStream in) {
         super(in, null, null);
+        axisServices = new ArrayList();   // create an empty ArrayList
+    }
+
+    public WSDL20ToAllAxisServicesBuilder(String wsdlUri, String endpointName) throws WSDLException {
+        super(wsdlUri, null, endpointName);
         axisServices = new ArrayList();   // create an empty ArrayList
     }
 

Modified: webservices/axis2/branches/java/1_3_post_mods/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_3_post_mods/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java?rev=584130&r1=584129&r2=584130&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_3_post_mods/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java (original)
+++ webservices/axis2/branches/java/1_3_post_mods/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java Fri Oct 12 04:06:38 2007
@@ -18,6 +18,7 @@
  */
 package org.apache.axis2.description;
 
+import com.ibm.wsdl.util.xml.DOM2Writer;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axis2.AxisFault;
@@ -32,12 +33,12 @@
 import org.apache.woden.WSDLReader;
 import org.apache.woden.WSDLSource;
 import org.apache.woden.internal.DOMWSDLFactory;
+import org.apache.woden.internal.wsdl20.BindingFaultImpl;
+import org.apache.woden.internal.wsdl20.BindingOperationImpl;
 import org.apache.woden.internal.wsdl20.extensions.InterfaceOperationExtensionsImpl;
 import org.apache.woden.internal.wsdl20.extensions.http.HTTPBindingExtensionsImpl;
 import org.apache.woden.internal.wsdl20.extensions.http.HTTPHeaderImpl;
 import org.apache.woden.internal.wsdl20.extensions.soap.SOAPBindingExtensionsImpl;
-import org.apache.woden.internal.wsdl20.BindingFaultImpl;
-import org.apache.woden.internal.wsdl20.BindingOperationImpl;
 import org.apache.woden.schema.Schema;
 import org.apache.woden.wsdl20.Binding;
 import org.apache.woden.wsdl20.BindingFault;
@@ -66,10 +67,11 @@
 import org.apache.woden.wsdl20.extensions.soap.SOAPEndpointExtensions;
 import org.apache.woden.wsdl20.extensions.soap.SOAPHeaderBlock;
 import org.apache.woden.wsdl20.extensions.soap.SOAPModule;
+import org.apache.woden.wsdl20.extensions.soap.SOAPBindingExtensions;
 import org.apache.woden.wsdl20.xml.DescriptionElement;
-import org.apache.woden.wsdl20.xml.TypesElement;
-import org.apache.woden.wsdl20.xml.DocumentationElement;
 import org.apache.woden.wsdl20.xml.DocumentableElement;
+import org.apache.woden.wsdl20.xml.DocumentationElement;
+import org.apache.woden.wsdl20.xml.TypesElement;
 import org.apache.woden.xml.XMLAttr;
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.utils.NamespaceMap;
@@ -84,14 +86,12 @@
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
-import java.util.Comparator;
-
-import com.ibm.wsdl.util.xml.DOM2Writer;
 
 public class WSDL20ToAxisServiceBuilder extends WSDLToAxisServiceBuilder {
 
@@ -110,8 +110,11 @@
     private NamespaceMap stringBasedNamespaceMap;
 
     private boolean setupComplete = false;
+
     private Service wsdlService;
 
+    private boolean isAllPorts;
+
 //    As bindings are processed add it to this array so that we dont process the same binding twice
     private Map processedBindings;
 
@@ -148,6 +151,12 @@
         setPolicyRegistryFromService(axisService);
     }
 
+    public WSDL20ToAxisServiceBuilder(String wsdlUri,
+                                      String name, String interfaceName, boolean isAllPorts) throws WSDLException {
+        this(wsdlUri, name, interfaceName);
+        this.isAllPorts = isAllPorts;
+    }
+
     public WSDL20ToAxisServiceBuilder(String wsdlUri, QName serviceName) {
         super(null, serviceName);
         this.wsdlURI = wsdlUri;
@@ -158,6 +167,14 @@
         this.wsdlURI = wsdlUri;
     }
 
+    public boolean isAllPorts() {
+        return isAllPorts;
+    }
+
+    public void setAllPorts(boolean allPorts) {
+        isAllPorts = allPorts;
+    }
+
     public AxisService populateService() throws AxisFault {
 
         try {
@@ -239,6 +256,14 @@
         processedBindings = new HashMap();
         Endpoint endpoint = null;
 
+        // If the interface name is not null thats means that this is a call from the codegen engine
+        // and we need to populate a single endpoint. Hence find the endpoint and populate it.
+        // If that was not the case then we need to check whether the call is from the codegen
+        // engine with thw allports check false. If its so no need to populate all endpoints, we
+        // select an enspoint accrding to the following criteria.
+        // 1. Find the first SOAP 1.2 endpoint
+        // 2. Find the first SOAP 1.1 endpoint
+        // 3. Use the first endpoint
         if (this.interfaceName != null) {
             for (int i = 0; i < endpoints.length; ++i) {
                 if (this.interfaceName.equals(endpoints[i].getName().toString())) {
@@ -252,7 +277,37 @@
             }
 
             axisService
-                    .addEndpoint(endpoint.getName().toString(), processEndpoint(endpoint, serviceInterface));
+                    .addEndpoint(endpoint.getName().toString(),
+                                 processEndpoint(endpoint, serviceInterface));
+        } else if (this.isCodegen && !this.isAllPorts) {
+            Endpoint soap11Endpoint = null;
+            for (int i = 0; i < endpoints.length; ++i) {
+                Binding binding = endpoints[i].getBinding();
+                if (WSDL2Constants.URI_WSDL2_SOAP.equals(binding.getType().toString())) {
+                    SOAPBindingExtensions soapBindingExtensions;
+                    try {
+                        soapBindingExtensions = (SOAPBindingExtensionsImpl) binding
+                                .getComponentExtensionsForNamespace(
+                                        new URI(WSDL2Constants.URI_WSDL2_SOAP));
+                    } catch (URISyntaxException e) {
+                        throw new AxisFault("Soap Binding Extention not found");
+                    }
+                    if (!WSDL2Constants.SOAP_VERSION_1_1
+                            .equals(soapBindingExtensions.getSoapVersion())) {
+                        endpoint = endpoints[i];
+                        break;  // found it.  Stop looking
+                    } else if (soap11Endpoint == null){
+                        soap11Endpoint = endpoints[i];
+                    }
+                }
+            }
+            if (endpoint == null) {
+                endpoint = endpoints[0];
+            }
+
+            axisService
+                    .addEndpoint(endpoint.getName().toString(),
+                                 processEndpoint(endpoint, serviceInterface));
         } else {
             for (int i = 0; i < endpoints.length; i++) {
                 axisService
@@ -438,7 +493,7 @@
                 return (-1 * ((Comparable)o1).compareTo(o2));
             }
         });
-        SOAPBindingExtensionsImpl soapBindingExtensions;
+        SOAPBindingExtensions soapBindingExtensions;
         try {
             soapBindingExtensions = (SOAPBindingExtensionsImpl) binding
                     .getComponentExtensionsForNamespace(new URI(WSDL2Constants.URI_WSDL2_SOAP));



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