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 na...@apache.org on 2008/09/05 06:06:02 UTC

svn commit: r692331 - in /webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws: ./ c/ cpp/ info/

Author: nadiramra
Date: Thu Sep  4 21:06:00 2008
New Revision: 692331

URL: http://svn.apache.org/viewvc?rev=692331&view=rev
Log:
AXISCPP-552 - Eliminate the WSDL tool expecting the "Service" to be mandatory in WSDL

Modified:
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CLArgParser.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/AllParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamHeaderWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/CFileWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/HeaderFileWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParamCFileWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/AllParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamHeaderWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/CPPClassWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClassLoader.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ExceptionHeaderWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ExceptionWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/HeaderFileWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParamCPPFileWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CLArgParser.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CLArgParser.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CLArgParser.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CLArgParser.java Thu Sep  4 21:06:00 2008
@@ -55,7 +55,12 @@
                 String option       = args[i].substring(1, 2);
                 String optionValue  = args[i].substring(2);
                 
-                if (option.equals("l")) 
+                if (option.equals("b"))
+                {
+                    if (optionValue.length() == 0)
+                        optionsAreValid = false;
+                }
+                else if (option.equals("l")) 
                 {
                     if (!optionValue.equals("c++") && !optionValue.equals("c"))
                         optionsAreValid = false;
@@ -145,6 +150,20 @@
     }
     
     /**
+     * Return verbose information
+     * 
+     * @return
+     */
+    public boolean beVeryVerbose()
+    {
+        String v = getOptionBykey("v");
+        if (v != null && v.equals("v"))
+            return true;
+        
+        return false;
+    }
+    
+    /**
      * Return timeout value
      * 
      * @return

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java Thu Sep  4 21:06:00 2008
@@ -24,7 +24,6 @@
 import java.util.Enumeration;
 import java.util.Hashtable;
 
-import javax.wsdl.Binding;
 import javax.wsdl.Port;
 import javax.wsdl.Service;
 import javax.xml.namespace.QName;
@@ -61,6 +60,7 @@
  */
 public class WSDL2Ws
 {
+    public static boolean c_veryVerbose = false;
     public static boolean c_verbose = false;
 
     // Command line arguments
@@ -83,8 +83,10 @@
                 + "-o<folder>             target output folder - default is current folder.\n"
                 + "-l<c++|c>              target language (c++|c) - default is c++.\n"
                 + "-s<server|client>      target side (server|client) - default is server.\n"
-                + "-v, -verbose           be verbose.\n"
+                + "-v,                    be verbose - will show exception stack trace when exceptions occur.\n"
+                + "-vv,                   be very verbose - debug information will be shown.\n"
                 + "-t<timeout>            uri resolution timeout in seconds - default is 0 (no timeout).\n"
+                + "-b<binding-name>       binding name that will be used to generate stub.\n"
                 + "-w<wrapped|unwrapped>  generate wrapper style or not - default is wrapped.\n"
                 );
     }
@@ -105,7 +107,11 @@
         }
         catch (Exception e)
         {
-            e.printStackTrace();
+            if (c_verbose)
+                e.printStackTrace();
+            else
+                System.out.println("\nERROR: " + e.getMessage());
+            
             System.out.println("\nCode generation failed. Please see errors above.\n");
         }
     }    
@@ -134,6 +140,7 @@
             }
             
             // Verbose mode?
+            c_veryVerbose = c_cmdLineArgs.beVeryVerbose();
             c_verbose = c_cmdLineArgs.beVerbose();
             
             // language c or c++ - CUtils.setLanguage MUST be invoked at the very beginning!
@@ -144,7 +151,7 @@
             // ==================================================
             
             c_wsdlInfo = new WSDLInfo(c_cmdLineArgs.getURIToWSDL());
-            c_wsdlInfo.setVerbose(c_verbose);
+            c_wsdlInfo.setVerbose(c_veryVerbose);
             c_wsdlInfo.setTimeout(c_cmdLineArgs.getTimeout()); 
             c_wsdlInfo.setNoWrapperStyle(c_cmdLineArgs.isWrapperStyle() == false);
 
@@ -158,13 +165,16 @@
             if (c_wsdlInfo.getServices().size() > 1)
                 throw new WrapperFault("Multiple service definitions not supported.");
             
-            // TODO
-            // At this time we require a service definition to be defined, but in 
-            // future if not found that caller needs to specify a binding to use in 
-            // order for us to generate the stubs.  Not having service definition will
+            // If a service definition is not defined then caller needs to specify a 
+            // binding to use in order for us to generate the stubs.  Not having service definition will
             // only result in not knowing the Web service end point, so it is really not necessary.
-            if (c_wsdlInfo.getServices().size() == 0)
-                throw new WrapperFault("Service definition not found. A service definition must be specified.");
+            if (c_wsdlInfo.getServices().size() == 0 && !c_cmdLineArgs.isSet("b"))
+            {
+                throw new WrapperFault(
+                          "Service definition not found in WSDL document. " 
+                        + "A service definition must be specified in the WSDL document or " 
+                        + "a binding needs to be specified using the -b option.");
+            }
         }
         catch (WrapperFault e)
         {
@@ -185,25 +195,46 @@
     {        
         // ==================================================
         // Get service, ports, binding, and port type
-        // ==================================================           
+        // ==================================================   
+        
+        Port port                 = null;
+        BindingEntry bindingEntry = null;
    
         //TODO  resolve this
         //  this code will generate one stub corresponding to a port.  Other ports
         //  are ignored. Should really generate one service stub per port.
-
-        // Get service definition, binding entry, port type.  We first ask for SOAP 1.1 ports
-        // that have a binding style of document....if there is none, then we ask for 
-        // SOAP 1.1 ports that have a binding style of rpc.
-        Service service = (Service)c_wsdlInfo.getServices().get(0);
-        ArrayList servicePorts = c_wsdlInfo.getPortsSOAP11Document(service);
-        if (servicePorts.isEmpty())
-            servicePorts = c_wsdlInfo.getPortsSOAP11RPC(service);
-        if (servicePorts.isEmpty())
-            throw new WrapperFault("A port with a supported binding was not found.");
-
-        Port port                 = (Port)servicePorts.get(0);
-        Binding binding           = port.getBinding();
-        BindingEntry bindingEntry = c_symbolTable.getBindingEntry(binding.getQName());
+        
+        // If binding is specified, ensure binding is supported and see if there is a port that uses 
+        // it in order to get end point. If not specified, then use the service definition to 
+        // obtain the information we need.
+        if (c_cmdLineArgs.isSet("b"))
+        {
+            // Validate binding
+            bindingEntry = c_wsdlInfo.getBindEntry(c_cmdLineArgs.getBinding());
+            if (bindingEntry == null)
+                throw new WrapperFault("Specified binding '" + c_cmdLineArgs.getBinding() + "' not found.");
+            
+            if (!WSDLInfo.isSOAP11Binding(bindingEntry))
+                throw new WrapperFault("Specified binding '" + c_cmdLineArgs.getBinding() + "' is not supported.");
+            
+            // Get port in order to obtain end point. Not having a port is OK.
+            if (c_wsdlInfo.getServices().size() != 0)
+                port = WSDLInfo.getPort((Service)c_wsdlInfo.getServices().get(0), bindingEntry);
+        }
+        else
+        {
+            // We first ask for SOAP 1.1 ports that have a binding style of document....if 
+            // there is none, then we ask for SOAP 1.1 ports that have a binding style of rpc.
+            Service service = (Service)c_wsdlInfo.getServices().get(0);
+            ArrayList servicePorts = c_wsdlInfo.getPortsSOAP11Document(service);
+            if (servicePorts.isEmpty())
+                servicePorts = c_wsdlInfo.getPortsSOAP11RPC(service);
+            if (servicePorts.isEmpty())
+                throw new WrapperFault("A port with a supported binding was not found.");
+    
+            port            = (Port)servicePorts.get(0);
+            bindingEntry    = c_symbolTable.getBindingEntry(port.getBinding().getQName());
+        }
         
         // ==================================================
         // Build the context that is needed by the code generators.
@@ -242,7 +273,7 @@
         exposeNestedTypesThatAreAnonymousTypes(wsContext);
         
         // Dump the map if requested.
-        if (c_verbose)
+        if (c_veryVerbose)
             c_wsdlInfo.getTypeMap().dump();
         
         // ==================================================
@@ -297,7 +328,7 @@
                             if (referencedType==null)
                                 continue;
                             
-                            if(c_verbose)
+                            if(c_veryVerbose)
                                 System.out.println( "EXPOSE1: Checking whether to expose ref-types for "+defType.getQName().getLocalPart());
 
                             // If ref type is anonymous and thus currently not exposed because 
@@ -306,7 +337,7 @@
                             if(referencedType.getQName().getLocalPart().startsWith(">") 
                                     && referencedType.getQName().getLocalPart().lastIndexOf(">") == 0)
                             {
-                                if(c_verbose)
+                                if(c_veryVerbose)
                                     System.out.println( "EXPOSE1: Exposing ref-type "+referencedType.getQName());
 
                                 Type innerClassType = wsContext.getTypemap().getType(referencedType.getQName());
@@ -340,7 +371,7 @@
                 DefinedType type = (DefinedType)highLevelType;
                 if(type.getQName().getLocalPart().toString().startsWith(">"))
                 {
-                    if(c_verbose)
+                    if(c_veryVerbose)
                         System.out.println( "EXPOSE2: Checking whether to expose anon type "+type.getQName().getLocalPart());
                     
                     // this is an "inner" type that will not be exposed
@@ -364,7 +395,7 @@
                                   ParameterInfo parameterInfo =(ParameterInfo)paramIterator.next();
                                   Type parameterType = parameterInfo.getType();
 
-                                  if(c_verbose)
+                                  if(c_veryVerbose)
                                       System.out.println( "EXPOSE2: Exposing fault type "+parameterType.getName());
                                   externalizeTypeAndUpdateTypeMap(wsContext, parameterType);
                               }                              
@@ -379,7 +410,7 @@
                               Type parameterType = parameterInfo.getType();
                               if(parameterType.getName().equals(type.getQName()))
                               {
-                                  if(c_verbose)
+                                  if(c_veryVerbose)
                                       System.out.println( "EXPOSE2: Matches input parm, exposing anon type "+parameterType.getName());
                                   externalizeTypeAndUpdateTypeMap(wsContext, parameterType);
                               }
@@ -394,7 +425,7 @@
                               Type parameterType = parameterInfo.getType();
                               if(parameterType.getName().equals(type.getQName()))
                               {
-                                  if(c_verbose)
+                                  if(c_veryVerbose)
                                       System.out.println( "EXPOSE2: Matches output parm, exposing anon type "+parameterType.getName());                             
                                   externalizeTypeAndUpdateTypeMap(wsContext, parameterType);
                               }
@@ -417,7 +448,7 @@
         Type classType =  theOrigMap.getType(oldName);
         if (classType != null && !classType.isExternalized())
         {
-            if(c_verbose)
+            if(c_veryVerbose)
                 System.out.println("\nEXPOSE4: Externalizing type " + oldName);
             
             // Externalize the type - if anonymous we have to change to name
@@ -467,7 +498,7 @@
             type = (Type) typesIt.next();
             if (type.isExternalized())
             {
-                if(c_verbose)
+                if(c_veryVerbose)
                     System.out.println("\nEXPOSE3: Checking related types for type " + type.getName());
                 
                 Iterator relatedTypesIt = type.getRelatedTypes();

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/AllParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/AllParamWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/AllParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/AllParamWriter.java Thu Sep  4 21:06:00 2008
@@ -66,13 +66,13 @@
 
                 if (!type.isExternalized())
                 {
-                    if(WSDL2Ws.c_verbose)
+                    if(WSDL2Ws.c_veryVerbose)
                         System.out.println("\nSkipping type " + type.getName());
                 }                
                 else if (type.isArray())
                 {
                     QName qname = type.getName();
-                    if (WSDL2Ws.c_verbose)
+                    if (WSDL2Ws.c_veryVerbose)
                         System.out.println("\nArray processing for type: " + qname);
                     
                     String elementType = type.getElementType();
@@ -81,7 +81,7 @@
                         if (TypeMap.isAnonymousType(elementType))
                             elementType = CUtils.sanitizeString(elementType);
                         
-                        if (WSDL2Ws.c_verbose)
+                        if (WSDL2Ws.c_veryVerbose)
                             System.out.println("    Array element type " 
                                     + type.getElementType() + " normalized to " + elementType);
                         
@@ -91,7 +91,7 @@
                         if (currentType != null)
                             if ( currentType.isSimpleType())
                             {
-                                if (WSDL2Ws.c_verbose)
+                                if (WSDL2Ws.c_veryVerbose)
                                     System.out.println("    Array writer not called - element type is simple");
 
                                 continue;
@@ -101,7 +101,7 @@
                     ArrayParamHeaderWriter writer = (new ArrayParamHeaderWriter(wscontext, type));
                     if (!writer.isSimpleTypeArray())
                     {
-                        if (WSDL2Ws.c_verbose)
+                        if (WSDL2Ws.c_veryVerbose)
                             System.out.println("    Array writer called......");
                         
                         writer.writeSource();
@@ -110,7 +110,7 @@
                 }
                 else
                 {
-                    if (WSDL2Ws.c_verbose)
+                    if (WSDL2Ws.c_veryVerbose)
                         System.out.println("\nstruct writer called for......" + type.getName());
                     
                     (new BeanParamWriter(wscontext, type)).writeSource();

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamHeaderWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamHeaderWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamHeaderWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamHeaderWriter.java Thu Sep  4 21:06:00 2008
@@ -72,7 +72,7 @@
             
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(getFilePath(false).getAbsolutePath() + " created.....");
         }
         catch (IOException e)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java Thu Sep  4 21:06:00 2008
@@ -88,7 +88,7 @@
             
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(getFilePath(false).getAbsolutePath() + " created.....");
         }
         catch (IOException e)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/CFileWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/CFileWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/CFileWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/CFileWriter.java Thu Sep  4 21:06:00 2008
@@ -57,7 +57,7 @@
             writeMethods();
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(getFilePath(false).getAbsolutePath() + " created.....");
         }
         catch (IOException e)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/HeaderFileWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/HeaderFileWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/HeaderFileWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/HeaderFileWriter.java Thu Sep  4 21:06:00 2008
@@ -74,7 +74,7 @@
             //cleanup
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(getFilePath(false).getAbsolutePath() + " created.....");
         }
         catch (IOException e)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParamCFileWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParamCFileWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParamCFileWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParamCFileWriter.java Thu Sep  4 21:06:00 2008
@@ -73,7 +73,7 @@
             //cleanup
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(getFilePath(false).getAbsolutePath() + " created.....");
         }
         catch (IOException e)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java Thu Sep  4 21:06:00 2008
@@ -86,7 +86,7 @@
             c_writer.flush();
             c_writer.close();
             
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(getFilePath(false).getAbsolutePath() + " created.....");
         }
         catch (IOException e)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/AllParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/AllParamWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/AllParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/AllParamWriter.java Thu Sep  4 21:06:00 2008
@@ -59,13 +59,13 @@
                 type = (Type) types.next();
                 if (!type.isExternalized())
                 {
-                    if(WSDL2Ws.c_verbose)
+                    if(WSDL2Ws.c_veryVerbose)
                         System.out.println("\nSkipping type " + type.getName());
                 }               
                 else if (type.isArray())
                 {
                     QName qname = type.getName();
-                    if (WSDL2Ws.c_verbose)
+                    if (WSDL2Ws.c_veryVerbose)
                         System.out.println("\nArray processing for type: " + qname);
                     
                     String elementType = type.getElementType();
@@ -74,7 +74,7 @@
                         if (TypeMap.isAnonymousType(elementType))
                             elementType = CUtils.sanitizeString(elementType);
                         
-                        if (WSDL2Ws.c_verbose)
+                        if (WSDL2Ws.c_veryVerbose)
                             System.out.println("    Array element type " 
                                     + type.getElementType() + " normalized to " + elementType);
                         
@@ -84,7 +84,7 @@
                         if (currentType != null)
                             if ( currentType.isSimpleType())
                             {
-                                if (WSDL2Ws.c_verbose)
+                                if (WSDL2Ws.c_veryVerbose)
                                     System.out.println("    Array writer not called - element type is simple");
 
                                 continue;
@@ -94,7 +94,7 @@
                     ArrayParamHeaderWriter writer = (new ArrayParamHeaderWriter(wscontext, type));
                     if (!writer.isSimpleTypeArray())
                     {
-                        if (WSDL2Ws.c_verbose)
+                        if (WSDL2Ws.c_veryVerbose)
                             System.out.println("    Array writer called......");
                         
                         writer.writeSource();
@@ -103,7 +103,7 @@
                 }
                 else
                 {
-                    if (WSDL2Ws.c_verbose)
+                    if (WSDL2Ws.c_veryVerbose)
                         System.out.println("\nstruct writer called for......" + type.getName());
 
                     (new BeanParamWriter(wscontext, type)).writeSource();

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamHeaderWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamHeaderWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamHeaderWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamHeaderWriter.java Thu Sep  4 21:06:00 2008
@@ -77,7 +77,7 @@
             
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(getFilePath(false).getAbsolutePath() + " created.....");
         }
         catch (IOException e)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamWriter.java Thu Sep  4 21:06:00 2008
@@ -57,7 +57,7 @@
             this.writeMethods();
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(getFilePath(false).getAbsolutePath() + " created.....");
         }
         catch (IOException e)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/CPPClassWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/CPPClassWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/CPPClassWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/CPPClassWriter.java Thu Sep  4 21:06:00 2008
@@ -58,7 +58,7 @@
 
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(
                     getFilePath(false).getAbsolutePath() + " created.....");
 

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClassLoader.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClassLoader.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClassLoader.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClassLoader.java Thu Sep  4 21:06:00 2008
@@ -110,7 +110,7 @@
             writer.write("}\n");
             writer.flush();
             writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(
                     getFilePath().getAbsolutePath() + " created.....");
         }

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ExceptionHeaderWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ExceptionHeaderWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ExceptionHeaderWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ExceptionHeaderWriter.java Thu Sep  4 21:06:00 2008
@@ -44,7 +44,7 @@
     {
         //super(WrapperUtils.getClassNameFromFullyQualifiedName(wscontext.getSerInfo().getQualifiedServiceName()));
         super("Axis" + faultInfoName + "Exception"); //damitha
-        if (WSDL2Ws.c_verbose)
+        if (WSDL2Ws.c_veryVerbose)
             System.out.println("faultInfoName is:" + faultInfoName);
         this.wscontext = wscontext;
         this.faultInfoName = "Axis" + faultInfoName + "Exception";

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ExceptionWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ExceptionWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ExceptionWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ExceptionWriter.java Thu Sep  4 21:06:00 2008
@@ -271,7 +271,7 @@
             writeMethods();
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(
                     getFilePath(false).getAbsolutePath() + " created.....");
         }

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/HeaderFileWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/HeaderFileWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/HeaderFileWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/HeaderFileWriter.java Thu Sep  4 21:06:00 2008
@@ -97,7 +97,7 @@
             //cleanup
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(
                     getFilePath(false).getAbsolutePath() + " created.....");
 

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParamCPPFileWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParamCPPFileWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParamCPPFileWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParamCPPFileWriter.java Thu Sep  4 21:06:00 2008
@@ -71,7 +71,7 @@
             
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(getFilePath(false).getAbsolutePath() + " created.....");
         }
         catch (IOException e)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java Thu Sep  4 21:06:00 2008
@@ -93,7 +93,7 @@
                     + "_" + getFileType().toUpperCase() + "_H__INCLUDED_)*/\n");
             c_writer.flush();
             c_writer.close();
-            if (WSDL2Ws.c_verbose)
+            if (WSDL2Ws.c_veryVerbose)
                 System.out.println(getFilePath(false).getAbsolutePath() + " created.....");
         } 
         catch (IOException e)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java?rev=692331&r1=692330&r2=692331&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java Thu Sep  4 21:06:00 2008
@@ -291,6 +291,66 @@
     {
         return c_typeMap;
     }
+    
+    /**
+     * Return the binding entry matching the local name.
+     * 
+     * @param name
+     * @return
+     */
+    public BindingEntry getBindEntry(String name)
+    {
+        Iterator it = c_bindings.iterator();
+        while (it.hasNext())
+        {
+            BindingEntry be = (BindingEntry)it.next();
+            if (be.getBinding().getQName().getLocalPart().equals(name))
+                return be;
+        }
+        
+        return null;
+    }
+    
+    /**
+     * Returns the Port that references the specified binding entry from a service definition.
+     * 
+     * @param s
+     * @param be
+     * @return
+     */
+    public static Port getPort(Service s, BindingEntry be)
+    {
+        Iterator ports = s.getPorts().values().iterator();
+        while (ports.hasNext())
+        {
+            Port p = (Port) ports.next();
+            Binding b = p.getBinding();
+            if (be.getBinding().getQName().equals(b.getQName()))
+                return p;
+        }
+        
+        return null;
+    }
+    
+    /**
+     * Checks if binding entry is SOAP 1.1 binding.
+     * @param be
+     * @return
+     */
+    public static boolean isSOAP11Binding(BindingEntry be)
+    {
+        return isSOAPBinding(be, Constants.URI_WSDL11_SOAP);
+    }
+    
+    /**
+     * Checks if SOAP 1.2 binding.
+     * @param be
+     * @return
+     */
+    public static boolean isSOAP12Binding(BindingEntry be)
+    {
+        return isSOAPBinding(be, Constants.URI_WSDL12_SOAP);
+    }
 
     /**
      * Updates MethodInfo with information from the binding operation element.
@@ -1521,4 +1581,25 @@
 
         return newName + "_t";
     }
+    
+    /**
+     * Checks if binding entry is SOAP and specified version.
+     * @param be
+     * @return
+     */
+    private static boolean isSOAPBinding(BindingEntry be, String soapNamespace)
+    {
+        Binding b = be.getBinding();        
+        if ((be.getBindingType() == BindingEntry.TYPE_SOAP))
+        {            
+            String ns = soapNamespace;
+            SOAPBinding soapbinding = (SOAPBinding)getExtensibilityElement(b, INSTANCEOF_SOAPBINDING);
+            if (soapbinding != null && null != soapbinding.getElementType().getNamespaceURI())
+                ns = soapbinding.getElementType().getNamespaceURI();
+                
+            return ns.equals(soapNamespace);
+        }
+        
+        return false;
+    }
 }