Author: nadiramra
Date: Thu Jun 21 22:22:13 2012
New Revision: 1352716

URL: http://svn.apache.org/viewvc?rev=1352716&view=rev
Log:
Minor, ensure we include types that we generate files for in client stub...

Modified:
    
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WebServiceGeneratorImpl.java
    
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubHeaderWriter.java
    
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java

Modified: 
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WebServiceGeneratorImpl.java
URL: 
http://svn.apache.org/viewvc/axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WebServiceGeneratorImpl.java?rev=1352716&r1=1352715&r2=1352716&view=diff
==============================================================================
--- 
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WebServiceGeneratorImpl.java
 (original)
+++ 
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WebServiceGeneratorImpl.java
 Thu Jun 21 22:22:13 2012
@@ -15,10 +15,6 @@
  *   limitations under the License.
  */
 
-/**
- * @author Srinath Perera(hemapani
- */
-
 package org.apache.axis.wsdl.wsdl2ws;
 
 import org.apache.axis.wsdl.wsdl2ws.info.WebServiceContext;
@@ -42,6 +38,9 @@ public class WebServiceGeneratorImpl imp
 
         if (WrapperConstants.LANGUAGE_CPP.equalsIgnoreCase(language))
         {
+            // Generate objects common to Client and Server - MUST BE FIRST 
THING DONE!
+            (new 
Generator(WrapperConstants.GENERATOR_PARAM_CPP_ALL,wscontext)).generate();
+            
             if 
(WrapperConstants.SERVER.equals(wscontext.getWrapperInfo().getTargetEngine()))
             {
                 // Generate Server objects
@@ -60,12 +59,12 @@ public class WebServiceGeneratorImpl imp
                 (new 
Generator(WrapperConstants.GENERATOR_CLIENT_STUB_CPP,wscontext)).generate();
                 (new 
Generator(WrapperConstants.GENERATOR_CLIENT_STUB_HPP,wscontext)).generate();
             }
-            
-            // Generate objects common to Client and Server
-            (new 
Generator(WrapperConstants.GENERATOR_PARAM_CPP_ALL,wscontext)).generate();
         }
         else if (WrapperConstants.LANGUAGE_C.equalsIgnoreCase(language))
         {
+            // Generate objects common to Client and Server - MUST BE FIRST 
THING DONE!
+            (new 
Generator(WrapperConstants.GENERATOR_PARAM_C_ALL,wscontext)).generate();
+            
             if 
(WrapperConstants.SERVER.equals(wscontext.getWrapperInfo().getTargetEngine()))
             {
                 // Generate Server objects
@@ -83,8 +82,6 @@ public class WebServiceGeneratorImpl imp
                 (new 
Generator(WrapperConstants.GENERATOR_CLIENT_STUB_H,wscontext)).generate();
 
             }
-            // Generate objects common to Client and Server
-            (new 
Generator(WrapperConstants.GENERATOR_PARAM_C_ALL,wscontext)).generate();
         }
         else
         {

Modified: 
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubHeaderWriter.java
URL: 
http://svn.apache.org/viewvc/axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubHeaderWriter.java?rev=1352716&r1=1352715&r2=1352716&view=diff
==============================================================================
--- 
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubHeaderWriter.java
 (original)
+++ 
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubHeaderWriter.java
 Thu Jun 21 22:22:13 2012
@@ -17,15 +17,19 @@
 
 package org.apache.axis.wsdl.wsdl2ws.c.literal;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.HashSet;
 import java.util.Iterator;
 
+import javax.xml.namespace.QName;
+
 import org.apache.axis.wsdl.wsdl2ws.CUtils;
 import org.apache.axis.wsdl.wsdl2ws.WrapperFault;
 import org.apache.axis.wsdl.wsdl2ws.info.MethodInfo;
 import org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo;
 import org.apache.axis.wsdl.wsdl2ws.info.Type;
+import org.apache.axis.wsdl.wsdl2ws.info.TypeMap;
 import org.apache.axis.wsdl.wsdl2ws.info.WebServiceContext;
 
 public class ClientStubHeaderWriter
@@ -207,9 +211,29 @@ public class ClientStubHeaderWriter
                     continue;
 
                 if (atype.isArray())
+                {
+                    // TODO not sure about "string" check, whether it is 
needed....
                     if (atype.getElementType().equals("string"))
                         removeSet.add(atype.getLanguageSpecificName());
+
+                    // NOTE: There is similar check in AllParamWriter.java.
+                        
+                    String elementType = atype.getElementType();
+                    if (elementType != null)
+                    {
+                        if (TypeMap.isAnonymousType(elementType))
+                            elementType = CUtils.sanitizeString(elementType);
+                        
+                        QName elementQname = new 
QName(atype.getName().getNamespaceURI(), elementType);                       
+                        Type currentType = 
wscontext.getTypemap().getType(elementQname);
+                        
+                        if (currentType != null)
+                            if ( currentType.isSimpleType())
+                                continue;
+                    }
+                }
                 
+                // TODO not sure about "string" check, whether it is needed....
                 if (atype.getBaseType() != null)
                     if (atype.getBaseType().getLocalPart().equals("string"))
                         
removeSet.add(CUtils.getArrayNameForType(atype.getLanguageSpecificName()));
@@ -225,9 +249,17 @@ public class ClientStubHeaderWriter
                 typeSet.remove(ritr.next());
             
             Iterator itr = typeSet.iterator();
+            String targetLocation = 
wscontext.getWrapperInfo().getTargetOutputLocation();
+            if (!targetLocation.endsWith(File.separator))
+                targetLocation += File.separator;
+          
             while (itr.hasNext())
             {
-                c_writer.write("#include \"" + itr.next().toString() + 
CUtils.getHeaderFileExtension() + "\"\n");
+                String fn = itr.next().toString() + 
CUtils.getHeaderFileExtension();
+                
+                // Not pretty but it works...this ensures we include generated 
types.
+                if (new File(targetLocation  + fn).exists())
+                    c_writer.write("#include \"" + fn + "\"\n");
             }
             c_writer.write("\n");
         }

Modified: 
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java
URL: 
http://svn.apache.org/viewvc/axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java?rev=1352716&r1=1352715&r2=1352716&view=diff
==============================================================================
--- 
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java
 (original)
+++ 
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java
 Thu Jun 21 22:22:13 2012
@@ -17,15 +17,20 @@
 
 package org.apache.axis.wsdl.wsdl2ws.cpp.literal;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.HashSet;
 import java.util.Iterator;
 
+import javax.xml.namespace.QName;
+
 import org.apache.axis.wsdl.wsdl2ws.CUtils;
+import org.apache.axis.wsdl.wsdl2ws.WSDL2Ws;
 import org.apache.axis.wsdl.wsdl2ws.WrapperFault;
 import org.apache.axis.wsdl.wsdl2ws.info.MethodInfo;
 import org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo;
 import org.apache.axis.wsdl.wsdl2ws.info.Type;
+import org.apache.axis.wsdl.wsdl2ws.info.TypeMap;
 import org.apache.axis.wsdl.wsdl2ws.info.WebServiceContext;
 
 public class ClientStubHeaderWriter
@@ -173,6 +178,7 @@ public class ClientStubHeaderWriter
             c_writer.write("AXIS_CPP_NAMESPACE_USE\n");
             c_writer.write("\n");
             
+            // TODO - There should be a better way to determine what types are 
being generated!
             Type atype;
             Iterator types = this.wscontext.getTypemap().getTypes().iterator();
             HashSet typeSet = new HashSet();
@@ -185,13 +191,33 @@ public class ClientStubHeaderWriter
                     continue;
 
                 if (atype.isArray())
+                {
+                    // TODO not sure about "string" check, whether it is 
needed....
                     if (atype.getElementType().equals("string"))
                         removeSet.add(atype.getLanguageSpecificName());
+
+                    // NOTE: There is similar check in AllParamWriter.java.  
+                    String elementType = atype.getElementType();
+                    if (elementType != null)
+                    {
+                        if (TypeMap.isAnonymousType(elementType))
+                            elementType = CUtils.sanitizeString(elementType);
+                        
+                        QName elementQname = new 
QName(atype.getName().getNamespaceURI(), elementType);                       
+                        Type currentType = 
wscontext.getTypemap().getType(elementQname);
+                        
+                        if (currentType != null)
+                            if ( currentType.isSimpleType())
+                                continue;
+                    }
+                }
                 
+                // TODO not sure about "string" check, whther it is needed...
                 if (atype.getBaseType() != null)
                     if (atype.getBaseType().getLocalPart().equals("string"))
                         
removeSet.add(CUtils.getArrayNameForType(atype.getLanguageSpecificName()));
                 
+                   
                 if (atype.isRestriction())
                     
removeSet.add(CUtils.getArrayNameForType(atype.getLanguageSpecificName()));
 
@@ -203,9 +229,17 @@ public class ClientStubHeaderWriter
                 typeSet.remove(ritr.next());
 
             Iterator itr = typeSet.iterator();
+            String targetLocation = 
wscontext.getWrapperInfo().getTargetOutputLocation();
+            if (!targetLocation.endsWith(File.separator))
+                targetLocation += File.separator;
+          
             while (itr.hasNext())
             {
-                c_writer.write("#include \"" + itr.next().toString() + 
CUtils.getHeaderFileExtension() + "\"\n");
+                String fn = itr.next().toString() + 
CUtils.getHeaderFileExtension();
+                        
+                // Not pretty but it works...this ensures we include generated 
types.
+                if (new File(targetLocation  + fn).exists())
+                    c_writer.write("#include \"" + fn + "\"\n");
             }
             
             //    Method to print the Fault Exception headers


Reply via email to