You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/10/16 02:08:13 UTC

svn commit: r464326 - in /incubator/tuscany/cpp/sca/runtime/extensions/ws: reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp

Author: jsdelfino
Date: Sun Oct 15 17:08:12 2006
New Revision: 464326

URL: http://svn.apache.org/viewvc?view=rev&rev=464326
Log:
Fix for TUSCANY-855, find SDO property representing doc-lit-wrapped wrapper element and use its type instead of assuming that the type is named like the element.

Modified:
    incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp
    incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp

Modified: incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp?view=diff&rev=464326&r1=464325&r2=464326
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp Sun Oct 15 17:08:12 2006
@@ -38,6 +38,7 @@
 
 #include "tuscany/sca/core/SCARuntime.h"
 #include "tuscany/sca/util/Logging.h"
+#include "tuscany/sca/util/Utils.h"
 #include "model/WSServiceBinding.h"
 #include "tuscany/sca/util/Utils.h"
 #include "tuscany/sca/util/Exceptions.h"
@@ -281,15 +282,27 @@
                     try
                     {
                         
-                        // Create the output wrapper
-                        const Type& inputType = dataFactory->getType(wsdlOperation.getInputTypeUri().c_str(), 
-                            wsdlOperation.getInputTypeName().c_str());
+                        // Create the input wrapper
+                        const Type& rootType = dataFactory->getType(wsdlOperation.getInputTypeUri().c_str(), "RootType");
+                        const Property& prop = rootType.getProperty(wsdlOperation.getInputTypeName().c_str());
+                        const Type& inputType = prop.getType();
                         inputDataObject = dataFactory->create(inputType);
                     }
                     catch (SDORuntimeException e)
                     {
-                        // The input wrapper type is not known, create an open DataObject 
-                        inputDataObject = dataFactory->create(Type::SDOTypeNamespaceURI, "OpenDataObject");
+                        try
+                        {
+                            // Create the input wrapper
+                            const Type& inputType = dataFactory->getType(wsdlOperation.getInputTypeUri().c_str(), 
+                                wsdlOperation.getInputTypeName().c_str());
+                            inputDataObject = dataFactory->create(inputType);
+                        }
+                        catch (SDORuntimeException e2)
+                        {
+                            
+                            // The input wrapper type is not known, create an open DataObject 
+                            inputDataObject = dataFactory->create(Type::SDOTypeNamespaceURI, "OpenDataObject");
+                        }
                     }
                             
                     // Go through data object to set the input parameters

Modified: incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp?view=diff&rev=464326&r1=464325&r2=464326
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp Sun Oct 15 17:08:12 2006
@@ -198,7 +198,6 @@
                                 {
                                     float* floatData = new float;
                                     *floatData = inputDataObject->getFloat(pl[i]);
-                                    //printf("inputDataObject has FloatType named %s with value %f\n", name, *floatData);
                                     operation.addParameter(floatData); 
                                 }
                                 break;
@@ -248,7 +247,6 @@
                                      * Get each element as a DataObject and add in to the parameter list
                                      */
                     
-                                    printf("inputDataObject has OpenDataObjectType named %s\n", name);
                                     DataObjectList& dataObjectList = inputDataObject->getList(pl[i]);
                                     
                                     for(int j=0; j<dataObjectList.size(); j++)
@@ -328,17 +326,28 @@
                     
                             // Set the data in the outputDataObject to be returned
                             DataObjectPtr outputDataObject;
-                            try
-                            {
+                            try {
                                 
                                 // Create the output wrapper
-                                const Type& outputType = dataFactoryPtr->getType(outputTypeURI, outputTypeName);
+                                const Type& rootType = dataFactoryPtr->getType(outputTypeURI, "RootType");
+                                const Property& prop = rootType.getProperty(outputTypeName);
+                                const Type& outputType = prop.getType();
                                 outputDataObject = dataFactoryPtr->create(outputType);
                             }
                             catch (SDORuntimeException e)
                             {
-                                // The output wrapper type is not known, create an open DataObject 
-                                outputDataObject = dataFactoryPtr->create(Type::SDOTypeNamespaceURI, "OpenDataObject");
+                                try
+                                {
+                                    
+                                    // Create the output wrapper
+                                    const Type& outputType = dataFactoryPtr->getType(outputTypeURI, outputTypeName);
+                                    outputDataObject = dataFactoryPtr->create(outputType);
+                                }
+                                catch (SDORuntimeException e)
+                                {
+                                    // The output wrapper type is not known, create an open DataObject 
+                                    outputDataObject = dataFactoryPtr->create(Type::SDOTypeNamespaceURI, "OpenDataObject");
+                                }
                             }
                             
                             setOutputData(operation, outputDataObject, dataFactoryPtr);                            



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