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 2006/11/27 10:56:23 UTC

svn commit: r479563 - in /webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description: AxisBinding.java AxisBindingMessage.java AxisBindingOperation.java AxisService.java WSDL20ToAxisServiceBuilder.java WSDL2Constants.java

Author: keithc
Date: Mon Nov 27 01:56:22 2006
New Revision: 479563

URL: http://svn.apache.org/viewvc?view=rev&rev=479563
Log:
Modified WSDL20ToAxisServiceBuilder.java to populate the correct classes depending on bindings

Modified:
    webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBinding.java
    webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java
    webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.java
    webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisService.java
    webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java
    webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java

Modified: webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBinding.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBinding.java?view=diff&rev=479563&r1=479562&r2=479563
==============================================================================
--- webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBinding.java (original)
+++ webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBinding.java Mon Nov 27 01:56:22 2006
@@ -27,14 +27,25 @@
 
 public class AxisBinding extends AxisDescription{
 
-    private String name;
+    private QName name;
 
     private String type;
 
     private Map options;
 
+    private Map faults;
+
+    public AxisBindingMessage getFault(String name) {
+        return (AxisBindingMessage)faults.get(name);
+    }
+
+    public void addFault(AxisBindingMessage fault) {
+        this.faults.put(fault.getName(),fault);
+    }
+
     public AxisBinding() {
         options = new HashMap();
+        faults = new HashMap();
     }
 
 
@@ -55,11 +66,11 @@
         return null;
     }
 
-    public String getName() {
+    public QName getName() {
         return name;
     }
 
-    public void setName(String name) {
+    public void setName(QName name) {
         this.name = name;
     }
 

Modified: webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java?view=diff&rev=479563&r1=479562&r2=479563
==============================================================================
--- webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java (original)
+++ webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java Mon Nov 27 01:56:22 2006
@@ -27,11 +27,21 @@
 
 public class AxisBindingMessage extends AxisDescription{
 
+    private String name;
+
     private String direction;
 
     private Map options;
 
     private AxisMessage axisMessage;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
 
     public AxisMessage getAxisMessage() {
         return axisMessage;

Modified: webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.java?view=diff&rev=479563&r1=479562&r2=479563
==============================================================================
--- webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.java (original)
+++ webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.java Mon Nov 27 01:56:22 2006
@@ -29,6 +29,26 @@
 
     private AxisOperation axisOperation;
 
+    private QName name;
+
+    private Map faults;
+
+    public AxisBindingMessage getFault(String name) {
+        return (AxisBindingMessage)faults.get(name);
+    }
+
+    public void addFault(AxisBindingMessage fault) {
+        this.faults.put(fault.getName(),fault);
+    }
+
+    public QName getName() {
+        return name;
+    }
+
+    public void setName(QName name) {
+        this.name = name;
+    }
+
     public AxisOperation getAxisOperation() {
         return axisOperation;
     }
@@ -41,6 +61,7 @@
 
     public AxisBindingOperation() {
         options = new HashMap();
+        faults = new HashMap();
     }
 
 

Modified: webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisService.java?view=diff&rev=479563&r1=479562&r2=479563
==============================================================================
--- webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisService.java (original)
+++ webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/AxisService.java Mon Nov 27 01:56:22 2006
@@ -72,6 +72,8 @@
  */
 public class AxisService extends AxisDescription {
 
+    private Map endpoitMap = new HashMap();
+
     private Map messageNameToOperationsMap = new HashMap();
 
     private int nsCount = 0;
@@ -189,6 +191,14 @@
     private String bindingName;
     // name of the port type used : use in codegeneration
     private String portTypeName;
+
+    public AxisEndpoint getEndpoit(String key) {
+        return (AxisEndpoint)endpoitMap.get(key);
+    }
+
+    public void addEndpoit(String key,AxisEndpoint axisEndpoint) {
+        this.endpoitMap.put(key,axisEndpoint);
+    }
 
     public String getWSAddressingFlag() {
         return wsaddressingFlag;

Modified: webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java?view=diff&rev=479563&r1=479562&r2=479563
==============================================================================
--- webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java (original)
+++ webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java Mon Nov 27 01:56:22 2006
@@ -8,6 +8,7 @@
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.woden.*;
 import org.apache.woden.internal.DOMWSDLFactory;
+import org.apache.woden.internal.wsdl20.extensions.soap.SOAPBindingExtensionsImpl;
 import org.apache.woden.schema.Schema;
 import org.apache.woden.types.NCName;
 import org.apache.woden.wsdl20.*;
@@ -15,11 +16,8 @@
 import org.apache.woden.wsdl20.enumeration.MessageLabel;
 import org.apache.woden.wsdl20.extensions.ExtensionElement;
 import org.apache.woden.wsdl20.extensions.UnknownExtensionElement;
-import org.apache.woden.wsdl20.extensions.soap.SOAPBindingMessageReferenceExtensions;
-import org.apache.woden.wsdl20.extensions.soap.SOAPBindingOperationExtensions;
-import org.apache.woden.wsdl20.extensions.soap.SOAPHeaderBlock;
+import org.apache.woden.wsdl20.extensions.soap.*;
 import org.apache.woden.wsdl20.xml.*;
-import org.apache.woden.xml.XMLAttr;
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.utils.NamespaceMap;
 import org.w3c.dom.Document;
@@ -70,6 +68,10 @@
     private boolean setupComplete = false;
     private Service wsdlService;
 
+//    As bindings are processed add it to this array so that we dont process the same binding twice
+    private Map processedBindings;
+
+
     public WSDL20ToAxisServiceBuilder(InputStream in, QName serviceName,
                                       String interfaceName) {
         this.in = in;
@@ -161,8 +163,8 @@
 
                     // WSDL 2.0 spec requires that even the built-in schema should be returned
                     // once asked for schema definitions. But for data binding purposes we can ignore that
-                    if (schemaDefinition != null && !Constants.URI_2001_SCHEMA_XSD.equals(schemaDefinition.getTargetNamespace()))
-                    {
+                    if (schemaDefinition != null && !Constants.URI_2001_SCHEMA_XSD
+                            .equals(schemaDefinition.getTargetNamespace())) {
                         axisService.addSchema(schemaDefinition);
                     }
                 }
@@ -170,24 +172,31 @@
 
             processService();
 
-            Endpoint [] endpoints = wsdlService.getEndpoints();
-
-            for (int i = 0; i < endpoints.length; i++)
-            {
-                processEndpoint(endpoints[i]);
-            }
+//            Binding binding = findBinding();
 
+//            processBinding(binding);
 
+            return axisService;
+        } catch (Exception e) {
+            throw new AxisFault(e);
+        }
+    }
 
-            Binding binding = findBinding();
+    private void processEndpoints() throws AxisFault {
+        Endpoint [] endpoints = wsdlService.getEndpoints();
 
+        if (endpoints == null) {
+            throw new AxisFault("No endpoints found in the WSDL");
+        }
 
-            processBinding(binding);
+        processedBindings = new HashMap();
 
-            return axisService;
-        } catch (Exception e) {
-            throw new AxisFault(e);
+        for (int i = 0; i < endpoints.length; i++) {
+            axisService
+                    .addEndpoit(endpoints[i].getName().toString(), processEndpoint(endpoints[i]));
         }
+
+
     }
 
     private void processService() throws AxisFault {
@@ -197,14 +206,26 @@
             throw new AxisFault("No wsdlService found in the WSDL");
         }
 
-        if (serviceName != null) {
-            wsdlService = services[0];
-        }
+        wsdlService = services[0];
+
+        processInterface(wsdlService.getInterface());
+
+        processEndpoints();
+
     }
 
-    private void processEndpoint(Endpoint endpoint){
+    private AxisEndpoint processEndpoint(Endpoint endpoint) throws AxisFault {
 
+        AxisEndpoint axisEndpoint = new AxisEndpoint();
+        axisEndpoint.setName(endpoint.getName().toString());
+        if (processedBindings.containsKey(endpoint.getBinding().getName())) {
+            axisEndpoint.setBinding(
+                    (AxisBinding) processedBindings.get(endpoint.getBinding().getName()));
+        } else {
+            axisEndpoint.setBinding(processBinding(endpoint.getBinding()));
+        }
 
+        return axisEndpoint;
 
     }
 
@@ -270,105 +291,265 @@
         }
     }
 
-    private void processBinding(Binding binding)
-            throws Exception {
-        if (binding != null) {
+    private AxisBinding processBinding(Binding binding)
+            throws AxisFault {
 
-            Interface serviceInterface;
 
-            if (wsdlService != null) {
-                serviceInterface = wsdlService.getInterface();
-            } else {
-                // we don't need this as wsdlService can not be null. But keeping for early stages
-                serviceInterface = binding.getInterface();
-            }
+        Interface serviceInterface;
 
-            determineSOAPVersion(binding);
+        AxisBinding axisBinding = new AxisBinding();
 
-            processInterface(serviceInterface);
+        axisBinding.setType(binding.getType().toString());
 
-            BindingOperation[] bindingOperations = binding.getBindingOperations();
-            for (int i = 0; i < bindingOperations.length; i++) {
-                BindingOperation bindingOperation = bindingOperations[i];
+        axisBinding.setName(binding.getName());
 
-                AxisOperation operation = axisService.getOperation(bindingOperation.getInterfaceOperation().getName());
+        if (binding.getType().toString().equals(WSDL2Constants.URI_WSDL2_SOAP)) {
+            processSoapBindingExtention(binding, axisBinding);
+        } else {
+            //ToDo implement other bindings
+        }
 
-                BindingMessageReference[] bindingMessageReferences = bindingOperation.getBindingMessageReferences();
-                for (int j = 0; j < bindingMessageReferences.length; j++) {
-                    BindingMessageReference bindingMessageReference = bindingMessageReferences[j];
+        // We should process the interface based on the service not on a binding
 
-                    NCName messageLabel = bindingMessageReference.getInterfaceMessageReference().getMessageLabel();
-                    AxisMessage message = operation.getMessage(messageLabel.toString());
+//            if (wsdlService != null) {
+//                            serviceInterface = wsdlService.getInterface();
+//                        } else {
+//                            // we don't need this as wsdlService can not be null. But keeping for early stages
+//                            serviceInterface = binding.getInterface();
+//                        }
+//
+//
+//
+//            processInterface(serviceInterface);
 
 
-                    SOAPBindingMessageReferenceExtensions soapHeaderExt = (SOAPBindingMessageReferenceExtensions) bindingMessageReference.getComponentExtensionsForNamespace(new URI(WSDL2Constants.URI_WSDL2_SOAP));
+        processedBindings.put(binding.getName(), axisBinding);
+        return axisBinding;
+    }
 
-                    if (soapHeaderExt != null) {
-                        SOAPHeaderBlock[] soapHeaders = soapHeaderExt.getSoapHeaders();
+    private void processSoapBindingExtention(Binding binding, AxisBinding axisBinding)
+            throws AxisFault {
 
-                        for (int k = 0; k < soapHeaders.length; k++) {
-                            SOAPHeaderBlock soapHeader = soapHeaders[j];
+        // Capture all the binding specific properties
 
-                            ElementDeclaration elementDeclaration = soapHeader.getElementDeclaration();
+        SOAPBindingExtensionsImpl soapBindingExtensions = null;
+        try {
+            soapBindingExtensions = (SOAPBindingExtensionsImpl) binding
+                    .getComponentExtensionsForNamespace(new URI(WSDL2Constants.URI_WSDL2_SOAP));
+        } catch (URISyntaxException e) {
+            throw new AxisFault("Soap Binding Extention not found");
+        }
 
-                            if (elementDeclaration != null) {
-                                QName name = elementDeclaration.getName();
-                                SOAPHeaderMessage soapHeaderMessage = new SOAPHeaderMessage(name);
-                                soapHeaderMessage.setRequired(soapHeader.isRequired().booleanValue());
-                                message.addSoapHeader(soapHeaderMessage);
-                            }
-                        }
-                    }
+        String soapVersion;
 
-                }
+        if ((soapVersion = soapBindingExtensions.getSoapVersion()) != null)
 
+            if (soapVersion.equals(WSDL2Constants.SOAP_VERSION_1_1)) {
 
-                SOAPBindingOperationExtensions soapBindingExtension = ((SOAPBindingOperationExtensions)
-                        bindingOperation.getComponentExtensionsForNamespace(new URI(WSDL2Constants.URI_WSDL2_SOAP)));
-                String soapAction = soapBindingExtension.getSoapAction().toString();
+                // Might have to remove this as its a binding specific property
+                axisService.setSoapNsUri(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
+                axisBinding.setProperty(WSDL2Constants.ATTR_WSOAP_VERSION,
+                        WSDL2Constants.SOAP_VERSION_1_1);
+            } else {
+                // Might have to remove this as its a binding specific property
+                axisService.setSoapNsUri(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
+                axisBinding.setProperty(WSDL2Constants.ATTR_WSOAP_VERSION,
+                        WSDL2Constants.SOAP_VERSION_1_2);
+            }
+
+        URI soapUnderlyingProtocol = soapBindingExtensions.getSoapUnderlyingProtocol();
+        if (soapUnderlyingProtocol != null) {
+            axisBinding.setProperty(WSDL2Constants.ATTR_WSOAP_PROTOCOL,
+                    soapUnderlyingProtocol.toString());
+        }
+        URI soapMepDefault = soapBindingExtensions.getSoapMepDefault();
+        if (soapMepDefault != null)
+        {
+        axisBinding.setProperty(WSDL2Constants.ATTR_WSOAP_MEP,
+                soapMepDefault.toString());
+        }
+        axisBinding.setProperty(WSDL2Constants.ATTR_WHTTP_TRANSFER_CODING,
+                soapBindingExtensions.getHttpTransferCodingDefault());
+        axisBinding.setProperty(WSDL2Constants.ATTR_WSOAP_MODULE,
+                soapBindingExtensions.getSoapModules());
+
+        // Capture all the fault specific properties
+
+        BindingFault[] bindingFaults = binding.getBindingFaults();
+        for (int i = 0; i < bindingFaults.length; i++) {
+            BindingFault bindingFault = bindingFaults[i];
+            InterfaceFault interfaceFault = bindingFault.getInterfaceFault();
+
+            AxisBindingMessage axisBindingFault = new AxisBindingMessage();
+            axisBindingFault.setName(interfaceFault.getName().getLocalPart());
+            axisBindingFault.setParent(axisBinding);
+
+            SOAPBindingFaultExtensions soapBindingFaultExtensions = null;
+
+            try {
+                soapBindingFaultExtensions = (SOAPBindingFaultExtensions) bindingFault
+                        .getComponentExtensionsForNamespace(new URI(WSDL2Constants.URI_WSDL2_SOAP));
+            } catch (URISyntaxException e) {
+                throw new AxisFault("Soap Binding Extention not found");
+            }
+
+            axisBindingFault.setProperty(WSDL2Constants.ATTR_WHTTP_HEADER,
+                    soapBindingFaultExtensions.getHttpHeaders());
+            axisBindingFault.setProperty(WSDL2Constants.ATTR_WHTTP_TRANSFER_CODING,
+                    soapBindingFaultExtensions.getHttpTransferCoding());
+            axisBindingFault.setProperty(WSDL2Constants.ATTR_WSOAP_CODE,
+                    soapBindingFaultExtensions.getSoapFaultCode());
+            axisBindingFault.setProperty(WSDL2Constants.ATTR_WSOAP_SUBCODES,
+                    soapBindingFaultExtensions.getSoapFaultSubcodes());
+            axisBindingFault.setProperty(WSDL2Constants.ATTR_WSOAP_HEADER,
+                    soapBindingFaultExtensions.getSoapHeaders());
+            axisBindingFault.setProperty(WSDL2Constants.ATTR_WSOAP_MODULE,
+                    soapBindingFaultExtensions.getSoapModules());
+
+            axisBinding.addFault(axisBindingFault);
+
+        }
+
+        // Capture all the binding operation specific properties
+
+        BindingOperation[] bindingOperations = binding.getBindingOperations();
+        for (int i = 0; i < bindingOperations.length; i++) {
+            BindingOperation bindingOperation = bindingOperations[i];
+
+            AxisBindingOperation axisBindingOperation = new AxisBindingOperation();
+            AxisOperation axisOperation =
+                    axisService.getOperation(bindingOperation.getInterfaceOperation().getName());
+
+            axisBindingOperation.setAxisOperation(axisOperation);
+            axisBindingOperation.setParent(axisBinding);
+            axisBindingOperation.setName(axisOperation.getName());
+
+            SOAPBindingOperationExtensions soapBindingOperationExtensions = null;
+            try {
+                soapBindingOperationExtensions = ((SOAPBindingOperationExtensions)
+                        bindingOperation.getComponentExtensionsForNamespace(
+                                new URI(WSDL2Constants.URI_WSDL2_SOAP)));
+            } catch (URISyntaxException e) {
+                throw new AxisFault("Soap Binding Extention not found");
+            }
 
-                operation.setSoapAction(soapAction == null ? "" : soapAction);
+            URI soapAction = soapBindingOperationExtensions.getSoapAction();
+            if (soapAction != null)
+            {
+            axisBindingOperation.setProperty(WSDL2Constants.ATTR_WSOAP_ACTION,
+                    soapAction.toString());
             }
-        }
-    }
+            axisBindingOperation.setProperty(WSDL2Constants.ATTR_WSOAP_MODULE,
+                    soapBindingOperationExtensions.getSoapModules());
+            URI soapMep = soapBindingOperationExtensions.getSoapMep();
+            if (soapMep != null)
+            {
+            axisBindingOperation.setProperty(WSDL2Constants.ATTR_WSOAP_MEP,
+                    soapMep.toString());
+            }
+            URI httpLocation = soapBindingOperationExtensions.getHttpLocation();
+            if (httpLocation != null)
+            {
+            axisBindingOperation.setProperty(WSDL2Constants.ATTR_WHTTP_LOCATION,
+                    httpLocation.toString());
+            }
+            axisBindingOperation.setProperty(WSDL2Constants.ATTR_WHTTP_TRANSFER_CODING,
+                    soapBindingOperationExtensions.getHttpTransferCodingDefault());
 
-    /**
-     * This method has a flaw in it which needs to be fixed.
-     * IIUC, the protocol URI should match with the soap version attribute. But I need to confirm this.
-     * Basically the question is wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP and
-     * version wsoap:version="1.1" are valid combinations or not. (Refer page 37 and 38 of WSDL primer)
-     * <p/>
-     * UntiL I fixed it, just checking the version attribute.
-     *
-     * @param binding
-     * @throws URISyntaxException
-     */
-    private void determineSOAPVersion(Binding binding) throws URISyntaxException {
-        BindingElement bindingElement = binding.toElement();
 
-        boolean soapNSFound = false;
-        XMLAttr[] wsoapAttributes = bindingElement.getExtensionAttributesForNamespace(new URI(WSDL2Constants.URI_WSDL2_SOAP));
 
-        for (int i = 0; i < wsoapAttributes.length; i++) {
-            XMLAttr wsoapAttribute = wsoapAttributes[i];
-            if (wsoapAttribute.getAttributeType().getLocalPart().equals(WSDL2Constants.ATTR_VERSION))
-            {
-                String soapVersion = wsoapAttribute.toExternalForm();
-                if ("1.1".equals(soapVersion)) {
-                    axisService.setSoapNsUri(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
-                    soapNSFound = true;
+
+            BindingMessageReference[] bindingMessageReferences =
+                    bindingOperation.getBindingMessageReferences();
+            for (int j = 0; j < bindingMessageReferences.length; j++) {
+                BindingMessageReference bindingMessageReference = bindingMessageReferences[j];
+
+                AxisBindingMessage axisBindingMessage = new AxisBindingMessage();
+                axisBindingMessage.setParent(axisBindingOperation);
+
+                AxisMessage axisMessage = axisOperation.getMessage(bindingMessageReference
+                        .getInterfaceMessageReference().getMessageLabel().toString());
+
+                axisBindingMessage.setAxisMessage(axisMessage);
+                axisBindingMessage.setName(axisMessage.getName());
+                axisBindingMessage.setDirection(axisMessage.getDirection());
+
+
+                SOAPBindingMessageReferenceExtensions soapBindingMessageReferenceExtensions = null;
+                try {
+                    soapBindingMessageReferenceExtensions =
+                            (SOAPBindingMessageReferenceExtensions) bindingMessageReference
+                                    .getComponentExtensionsForNamespace(
+                                            new URI(WSDL2Constants.URI_WSDL2_SOAP));
+                } catch (URISyntaxException e) {
+                    throw new AxisFault("Soap Binding Extention not found");
                 }
+
+                axisBindingMessage.setProperty(WSDL2Constants.ATTR_WHTTP_HEADER,
+                        soapBindingMessageReferenceExtensions.getHttpHeaders());
+                axisBindingMessage.setProperty(WSDL2Constants.ATTR_WHTTP_TRANSFER_CODING,
+                        soapBindingMessageReferenceExtensions.getHttpTransferCoding());
+                axisBindingMessage.setProperty(WSDL2Constants.ATTR_WSOAP_HEADER,
+                        soapBindingMessageReferenceExtensions.getSoapHeaders());
+                axisBindingMessage.setProperty(WSDL2Constants.ATTR_WSOAP_MODULE,
+                        soapBindingMessageReferenceExtensions.getSoapModules());
+
+//                    SOAPHeaderBlock[] soapHeaders = soapHeaderExt.getSoapHeaders();
+//
+//                        for (int k = 0; k < soapHeaders.length; k++) {
+//                            SOAPHeaderBlock soapHeader = soapHeaders[j];
+//
+//                            ElementDeclaration elementDeclaration = soapHeader.getElementDeclaration();
+//
+//                            if (elementDeclaration != null) {
+//                                QName name = elementDeclaration.getName();
+//                                SOAPHeaderMessage soapHeaderMessage = new SOAPHeaderMessage(name);
+//                                soapHeaderMessage.setRequired(soapHeader.isRequired().booleanValue());
+//                                message.addSoapHeader(soapHeaderMessage);
+//                            }
+//                        }
+
+                axisBindingOperation.addChild(axisBindingMessage.getName(),axisBindingMessage);
+
+
             }
-        }
 
-        if (!soapNSFound) {
-            axisService.setSoapNsUri(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
-        }
+            BindingFaultReference [] bindingFaultReferences =
+                    bindingOperation.getBindingFaultReferences();
+            for (int j = 0; j < bindingFaultReferences.length; j++) {
+                BindingFaultReference bindingFaultReference = bindingFaultReferences[j];
+
+                AxisBindingMessage axisBindingMessageFault = new AxisBindingMessage();
+                axisBindingMessageFault.setParent(axisBindingOperation);
+//                    AxisMessage axisFaultMessage = axisOperation.getMessage()
+                axisBindingMessageFault.setName(bindingFaultReference.getInterfaceFaultReference()
+                        .getInterfaceFault().getName().getLocalPart());
+
+                SOAPBindingFaultReferenceExtensions soapBindingFaultReferenceExtensions = null;
+                try {
+                    soapBindingFaultReferenceExtensions =
+                            (SOAPBindingFaultReferenceExtensions) bindingFaultReference
+                                    .getComponentExtensionsForNamespace(
+                                            new URI(WSDL2Constants.URI_WSDL2_SOAP));
+                } catch (URISyntaxException e) {
+                    throw new AxisFault("Soap Binding Extention not found");
+                }
 
+                axisBindingMessageFault.setProperty(WSDL2Constants.ATTR_WSOAP_MODULE,
+                        soapBindingFaultReferenceExtensions.getSoapModules());
+
+                axisBindingOperation.addFault(axisBindingMessageFault);
+
+            }
+
+            axisBinding.addChild(axisBindingOperation.getName(),axisBindingOperation);
+
+
+        }
     }
 
     private void processInterface(Interface serviceInterface)
-            throws Exception {
+            throws AxisFault {
 
         // TODO @author Chathura copy the policy elements
         // copyExtensionAttributes(wsdl4jPortType.getExtensionAttributes(),
@@ -377,8 +558,7 @@
         InterfaceOperation[] interfaceOperations = serviceInterface
                 .getInterfaceOperations();
         for (int i = 0; i < interfaceOperations.length; i++) {
-            axisService.addOperation(populateOperations(interfaceOperations[i],
-                    description));
+            axisService.addOperation(populateOperations(interfaceOperations[i]));
         }
 
         Interface[] extendedInterfaces = serviceInterface.getExtendedInterfaces();
@@ -389,8 +569,7 @@
 
     }
 
-    private AxisOperation populateOperations(InterfaceOperation operation,
-                                             Description description) throws Exception {
+    private AxisOperation populateOperations(InterfaceOperation operation) throws AxisFault {
         QName opName = operation.getName();
         // Copy Name Attribute
         AxisOperation axisOperation = axisService.getOperation(opName);
@@ -414,16 +593,20 @@
                 // Its an input message
 
                 if (isServerSide) {
-                    createAxisMessage(axisOperation, messageReference, WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+                    createAxisMessage(axisOperation, messageReference,
+                            WSDLConstants.MESSAGE_LABEL_IN_VALUE);
                 } else {
-                    createAxisMessage(axisOperation, messageReference, WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+                    createAxisMessage(axisOperation, messageReference,
+                            WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
                 }
             } else if (messageReference.getMessageLabel().equals(
                     MessageLabel.OUT)) {
                 if (isServerSide) {
-                    createAxisMessage(axisOperation, messageReference, WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+                    createAxisMessage(axisOperation, messageReference,
+                            WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
                 } else {
-                    createAxisMessage(axisOperation, messageReference, WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+                    createAxisMessage(axisOperation, messageReference,
+                            WSDLConstants.MESSAGE_LABEL_IN_VALUE);
                 }
             }
 
@@ -450,7 +633,9 @@
         return axisOperation;
     }
 
-    private void createAxisMessage(AxisOperation axisOperation, InterfaceMessageReference messageReference, String messageLabel) throws Exception {
+    private void createAxisMessage(AxisOperation axisOperation,
+                                   InterfaceMessageReference messageReference, String messageLabel)
+            throws AxisFault {
         AxisMessage message = axisOperation
                 .getMessage(messageLabel);
 
@@ -467,7 +652,8 @@
             // TODO : Need to improve this
 //           elementQName = new QName("None");
         } else {
-            throw new Exception("Sorry we do not support " + messageContentModelName + ". We do only support #any, #none and #element as message content models.");
+            throw new AxisFault("Sorry we do not support " + messageContentModelName +
+                    ". We do only support #any, #none and #element as message content models.");
         }
 
         message.setElementQName(elementQName);
@@ -476,7 +662,8 @@
 
         // populate this map so that this can be used in SOAPBody based dispatching
         if (elementQName != null) {
-            axisService.addmessageNameToOperationMapping(elementQName.getLocalPart(), axisOperation);
+            axisService
+                    .addmessageNameToOperationMapping(elementQName.getLocalPart(), axisOperation);
         }
     }
 
@@ -489,7 +676,8 @@
      * @param originOfExtensibilityElements
      */
     private void copyExtensibleElements(ExtensionElement[] extensionElement,
-                                        DescriptionElement descriptionElement, AxisDescription description,
+                                        DescriptionElement descriptionElement,
+                                        AxisDescription description,
                                         String originOfExtensibilityElements) {
         for (int i = 0; i < extensionElement.length; i++) {
             ExtensionElement element = extensionElement[i];
@@ -585,7 +773,6 @@
     }
 
 
-
     private Binding findBinding() throws AxisFault {
         Service[] services = description.getServices();
         wsdlService = null;
@@ -713,7 +900,8 @@
                     .getInterfaceMessageReferenceElements();
 
             for (int i = 0; i < interfaceMessageReferenceElements.length; i++) {
-                InterfaceMessageReferenceElement interfaceMessageReferenceElement = interfaceMessageReferenceElements[i];
+                InterfaceMessageReferenceElement interfaceMessageReferenceElement =
+                        interfaceMessageReferenceElements[i];
                 String direction = interfaceMessageReferenceElement
                         .getDirection().toString();
                 messagesMap.put(interfaceMessageReferenceElement
@@ -731,7 +919,8 @@
                     .getInterfaceFaultReferenceElements();
 
             for (int i = 0; i < interfaceFaultReferenceElements.length; i++) {
-                InterfaceFaultReferenceElement interfaceFaultReferenceElement = interfaceFaultReferenceElements[i];
+                InterfaceFaultReferenceElement interfaceFaultReferenceElement =
+                        interfaceFaultReferenceElements[i];
                 String direction = interfaceFaultReferenceElement
                         .getDirection().toString();
                 messagesMap.put(interfaceFaultReferenceElement.getRef(),

Modified: webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java?view=diff&rev=479563&r1=479562&r2=479563
==============================================================================
--- webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java (original)
+++ webservices/axis2/branches/java/WSDL_2_0/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java Mon Nov 27 01:56:22 2006
@@ -49,8 +49,23 @@
     
     String URI_HTTP_SOAP12 = "http://www.w3.org/2003/05/soap/bindings/HTTP";
     String URI_HTTP_SOAP11 = "http://www.w3.org/2006/01/soap11/bindings/HTTP";
-    String ATTR_PROTOCOL = "protocol";
-    String ATTR_VERSION = "version";
+
+    String ATTR_WSOAP_PROTOCOL = "wsoap:protocol";
+    String ATTR_WSOAP_VERSION = "wsoap:version";
+    String ATTR_WSOAP_CODE = "wsoap:code";
+    String ATTR_WSOAP_MEP = "wsoap:mep";
+    String ATTR_WSOAP_MODULE = "wsoap:module";
+    String ATTR_WSOAP_SUBCODES = "wsoap:subcodes";
+    String ATTR_WSOAP_HEADER = "wsoap:header";
+    String ATTR_WSOAP_ACTION = "wsoap:action";
+
+    String ATTR_WHTTP_TRANSFER_CODING = "whttp:transferCoding";
+    String ATTR_WHTTP_LOCATION = "whttp:location";
+    String ATTR_WHTTP_HEADER = "whttp:header";
+
+    String SOAP_VERSION_1_1 = "1.1";
+    String SOAP_VERSION_1_2 = "1.2";
+
 
     String MESSAGE_LABEL_IN = "In";
     String MESSAGE_LABEL_OUT = "Out";



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