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/08/28 12:42:20 UTC
svn commit: r437637 [6/8] - in /incubator/tuscany/cpp/sca: runtime/core/src/
runtime/core/src/osoa/sca/ runtime/core/src/tuscany/sca/core/
runtime/core/src/tuscany/sca/cpp/ runtime/core/src/tuscany/sca/extension/
runtime/core/src/tuscany/sca/model/ run...
Modified: incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.cpp?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.cpp Mon Aug 28 03:42:10 2006
@@ -21,658 +21,660 @@
#include "tuscany/sca/util/Logging.h"
#include "tuscany/sca/util/Utils.h"
#include "tuscany/sca/core/SCARuntime.h"
-
-#include "tuscany/sca/model/WSBinding.h"
+#include "tuscany/sca/core/TuscanyRuntime.h"
+#include "tuscany/sca/core/Operation.h"
+#include "tuscany/sca/core/CompositeServiceHelper.h"
+#include "tuscany/sca/model/Component.h"
+#include "tuscany/sca/model/Composite.h"
+#include "tuscany/sca/model/CompositeService.h"
#include "commonj/sdo/SDO.h"
using namespace commonj::sdo;
-using namespace tuscany::sca::ws;
-
-
-// Singleton pattern
-WSServiceProxy* WSServiceProxy::compositeServiceProxyInstance = new WSServiceProxy();
-
-WSServiceProxy* WSServiceProxy::getInstance()
-{
- return compositeServiceProxyInstance;
-}
-
-WSServiceProxy::WSServiceProxy()
-{
- LOGENTRY(1,"WSServiceProxy::constructor");
- tuscanyRuntime = NULL;
- scaCompositeServiceType = NULL;
- compositeServiceName = "";
- systemRoot = "";
- compositeComponent = "";
- LOGEXIT(1,"WSServiceProxy::constructor");
-}
-
-WSServiceProxy::~WSServiceProxy()
-{
- LOGENTRY(1,"WSServiceProxy::destructor");
-
- if(tuscanyRuntime != NULL)
- {
- tuscanyRuntime->stop();
- delete tuscanyRuntime;
- tuscanyRuntime = NULL;
- }
- if(scaCompositeServiceType != NULL)
- {
- delete scaCompositeServiceType;
- }
- LOGEXIT(1,"WSServiceProxy::destructor");
-}
-
-void WSServiceProxy::init(const char* systemRootPath, const char* fullCompositeServiceTypeName)
-{
- LOGENTRY(1,"WSServiceProxy::init");
-
- try
- {
-
- // fullCompositeServiceTypeName is of the form "subsystem name"/"composite component name"/"entry point name"
- // Get the "subsystem name"/"composite component name" part for setDefaultCompositeComponent
- // Keep the "entry point name" part for use in invoke
- string subsystemAndComponentName, epName;
- Utils::rTokeniseString("/", fullCompositeServiceTypeName, subsystemAndComponentName, epName);
-
- bool newInitParams = false;
-
- if(systemRoot.length() != 0 && systemRoot != systemRootPath)
- {
- systemRoot = systemRootPath;
- newInitParams = true;
- }
-
- if(compositeComponent.length() != 0 && compositeComponent != subsystemAndComponentName)
- {
- compositeComponent = subsystemAndComponentName;
- newInitParams = true;
- }
-
- if(compositeServiceName.length() != 0 && compositeServiceName != epName)
- {
- compositeServiceName = epName;
- newInitParams = true;
- }
-
-
- if(tuscanyRuntime == NULL)
- {
- LOGINFO(4, "Creating new TuscanyRuntime");
- compositeComponent = subsystemAndComponentName;
- systemRoot = systemRootPath;
- compositeServiceName = epName;
- tuscanyRuntime = new TuscanyRuntime(compositeComponent, systemRoot);
- tuscanyRuntime->start();
- }
- else if(tuscanyRuntime != NULL && newInitParams)
- {
- LOGINFO(4, "Restarting TuscanyRuntime with new SystemRoot or DefaultComposite");
- tuscanyRuntime->stop();
- tuscanyRuntime->setDefaultCompositeComponent(compositeComponent);
- tuscanyRuntime->setSystemRoot(systemRoot);
- tuscanyRuntime->start();
- }
-
- if(scaCompositeServiceType == NULL)
- {
- scaCompositeServiceType = new CompositeService(fullCompositeServiceTypeName);
- }
- else
- {
- if(newInitParams)
- {
- delete scaCompositeServiceType;
- scaCompositeServiceType = NULL;
- scaCompositeServiceType = new CompositeService(fullCompositeServiceTypeName);
- }
- }
- }
- catch(SystemConfigurationException &ex)
- {
- LOGERROR_1(0, "SystemConfigurationException has been caught: %s\n", ex.getMessageText());
- scaCompositeServiceType = 0;
- }
- catch(ServiceRuntimeException &ex)
- {
- LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
- scaCompositeServiceType = 0;
- }
- LOGEXIT(1,"WSServiceProxy::init");
-}
-
-DataFactoryPtr WSServiceProxy::getDataFactory()
-{
- if (scaCompositeServiceType == 0) return 0;
- return scaCompositeServiceType->getDataFactory();
-}
-
-///
-/// This method will be called when an CompositeServiceType needs to be invoked.
-///
-DataObjectPtr WSServiceProxy::invoke(const char* operationName, DataObjectPtr inputDataObject)
+namespace tuscany
{
- LOGENTRY(1,"WSServiceProxy::invoke");
-
- if (scaCompositeServiceType == 0)
- {
- LOGINFO(4, "WSServiceProxy has not got an sca CompositeServiceType\n");
- return NULL;
- }
-
- DataFactoryPtr dataFactoryPtr = scaCompositeServiceType->getDataFactory();
-
- DataObjectPtr outputDataObject = NULL;
- SCARuntime* runtime = SCARuntime::getInstance();
-
- Composite* composite = runtime->getCurrentComposite();
-
- CompositeServiceType* compositeService = composite->findCompositeServiceType(compositeServiceName);
-
- Binding* binding = compositeService->getBinding();
- if(binding->getBindingType() == Binding::SCA)
- {
- LOGINFO_1(4, "WSServiceProxy has got SCA binding: %s\n", binding->getUri().c_str());
- LOGERROR(0, "CompositeServiceTypes with SCA bindings are not yet supported");
- return NULL;
- }
- else if(binding->getBindingType() == Binding::WS)
- {
- WSBinding* wsBinding = (WSBinding*) binding;
-
- string wsdlNamespace = wsBinding->getWSDLNamespaceURL();
- string wsdlPort = wsBinding->getPortName();
- string wsdlService = wsBinding->getServiceName();
-
- Wsdl* wsdl = composite->findWsdl(wsdlNamespace);
- if (wsdl == 0)
- {
- LOGINFO_1(0, "WSDL description %s not found\n", wsdlNamespace.c_str());
- return NULL;
- }
-
- WsdlOperation operation;
- try
- {
- operation = wsdl->findOperation(wsdlService, wsdlPort, operationName);
- }
- catch(SystemConfigurationException &ex)
- {
- LOGERROR_1(0, "SystemConfigurationException has been caught: %s\n", ex.getMessageText());
- return NULL;
- }
-
- LOGINFO_2(4, "WSServiceProxy has got WsdlOperation with inputType: %s#%s",
- operation.getInputTypeUri().c_str(),
- operation.getInputTypeName().c_str());
- LOGINFO_2(4, "WSServiceProxy has got WsdlOperation with outputType: %s#%s",
- operation.getOutputTypeUri().c_str(),
- operation.getOutputTypeName().c_str());
- LOGINFO_2(4, "WSServiceProxy has got WsdlOperation with documentStyle=%d and encoded=%d",
- operation.isDocumentStyle(),
- operation.isEncoded());
-
- if(operation.isDocumentStyle())
- {
- // Document style
- outputDataObject = dataFactoryPtr->create(operation.getOutputTypeUri().c_str(), operation.getOutputTypeName().c_str());
-
- //printf("outputDataObject %s#%s\n", outputDataObject->getType().getURI(), outputDataObject->getType().getName());
- //Utils::printDO(outputDataObject);
- }
- else
- {
- // RPC style
- LOGERROR(0, "CompositeServiceTypes with RPC style WSDL Operations are not yet supported");
- return NULL;
- }
- }
-
- // Create new Operation object and set parameters and return value
- Operation operation(operationName);
-
- // Go through input data object to set the operation parameters
- PropertyList pl = inputDataObject->getInstanceProperties();
-
- for(int i=0; i<pl.size(); i++)
+ namespace sca
{
- const char* name = pl[i].getName();
-
- switch (pl[i].getTypeEnum())
+ namespace ws
{
- case Type::BooleanType:
+
+ // Singleton pattern
+ WSServiceProxy* WSServiceProxy::compositeServiceProxyInstance = new WSServiceProxy();
+
+ WSServiceProxy* WSServiceProxy::getInstance()
{
- bool* boolData = new bool;
- *boolData = inputDataObject->getBoolean(pl[i]);
- //printf("inputDataObject has BooleanType named %s with value %d\n", name, boolData);
- operation.addParameter(boolData);
+ return compositeServiceProxyInstance;
}
- break;
- case Type::ByteType:
+
+ WSServiceProxy::WSServiceProxy()
{
- char* byteData = new char;
- //printf("inputDataObject has ByteType named %s\n", name);
- *byteData = inputDataObject->getByte(pl[i]);
- operation.addParameter(byteData);
+ LOGENTRY(1,"WSServiceProxy::constructor");
+ tuscanyRuntime = NULL;
+ compositeServiceName = "";
+ systemRoot = "";
+ defaultComponentName = "";
+ LOGEXIT(1,"WSServiceProxy::constructor");
}
- break;
- case Type::BytesType:
+
+ WSServiceProxy::~WSServiceProxy()
{
- int len = inputDataObject->getLength(pl[i]);
- char* bytesData = new char[len+1];
- int bytesWritten = inputDataObject->getBytes(pl[i], bytesData, len);
- // Ensure the bytes end with the null char. Not sure if this is neccessary
- if(bytesWritten <= len)
- {
- bytesData[bytesWritten] = 0;
- }
- else
+ LOGENTRY(1,"WSServiceProxy::destructor");
+
+ if(tuscanyRuntime != NULL)
{
- bytesData[len] = 0;
+ tuscanyRuntime->stop();
+ delete tuscanyRuntime;
+ tuscanyRuntime = NULL;
}
- //printf("inputDataObject has BytesType named %s with length %d\n", name, bytesWritten);
- operation.addParameter(&bytesData);
- }
- break;
- case Type::CharacterType:
- {
- // This code should work but won't be used as there is no mapping from an XSD type to the SDO CharacterType
- wchar_t* charData = new wchar_t;
- //printf("inputDataObject has CharacterType named %s\n", name);
- *charData = inputDataObject->getCharacter(pl[i]);
- operation.addParameter(charData);
- }
- break;
- case Type::DoubleType:
- {
- long double* doubleData = new long double;
- *doubleData = inputDataObject->getDouble(pl[i]);
- //printf("inputDataObject has DoubleType named %s\n", name);
- operation.addParameter(doubleData);
- }
- break;
- case Type::FloatType:
- {
- 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;
- case Type::IntegerType:
- {
- long* intData = new long;
- //printf("inputDataObject has IntegerType named %s\n", name);
- *intData = inputDataObject->getInteger(pl[i]);
- operation.addParameter(intData);
+ LOGEXIT(1,"WSServiceProxy::destructor");
}
- break;
- case Type::ShortType:
+
+ void WSServiceProxy::init(const char* systemRootPath, const char* fullCompositeServiceName)
{
- short* shortData = new short;
- //printf("inputDataObject has ShortType named %s\n", name);
- *shortData = inputDataObject->getShort(pl[i]);
- operation.addParameter(shortData);
+ LOGENTRY(1,"WSServiceProxy::init");
+
+ try
+ {
+
+ // fullCompositeServiceName is of the form "subsystem name"/"composite component name"/"entry point name"
+ // Get the "subsystem name"/"composite component name" part for setDefaultCompositeComponent
+ // Keep the "entry point name" part for use in invoke
+ string subsystemAndComponentName, epName;
+ Utils::rTokeniseString("/", fullCompositeServiceName, subsystemAndComponentName, epName);
+
+ bool newInitParams = false;
+
+ if(systemRoot.length() != 0 && systemRoot != systemRootPath)
+ {
+ systemRoot = systemRootPath;
+ newInitParams = true;
+ }
+
+ if(defaultComponentName.length() != 0 && defaultComponentName != subsystemAndComponentName)
+ {
+ defaultComponentName = subsystemAndComponentName;
+ newInitParams = true;
+ }
+
+ if(compositeServiceName.length() != 0 && compositeServiceName != epName)
+ {
+ compositeServiceName = epName;
+ newInitParams = true;
+ }
+
+
+ if(tuscanyRuntime == NULL)
+ {
+ LOGINFO(4, "Creating new TuscanyRuntime");
+ defaultComponentName = subsystemAndComponentName;
+ systemRoot = systemRootPath;
+ compositeServiceName = epName;
+ tuscanyRuntime = new TuscanyRuntime(defaultComponentName, systemRoot);
+ tuscanyRuntime->start();
+ }
+ else if(tuscanyRuntime != NULL && newInitParams)
+ {
+ LOGINFO(4, "Restarting TuscanyRuntime with new SystemRoot or DefaultComponent");
+ tuscanyRuntime->stop();
+ tuscanyRuntime->setDefaultComponentName(defaultComponentName);
+ tuscanyRuntime->setSystemRoot(systemRoot);
+ tuscanyRuntime->start();
+ }
+
+ if(compositeServiceHelper == NULL)
+ {
+ compositeServiceHelper = new CompositeServiceHelper(fullCompositeServiceName);
+ }
+ else
+ {
+ if(newInitParams)
+ {
+ delete compositeServiceHelper;
+ compositeServiceHelper = NULL;
+ compositeServiceHelper = new CompositeServiceHelper(fullCompositeServiceName);
+ }
+ }
+ }
+ catch(SystemConfigurationException &ex)
+ {
+ LOGERROR_1(0, "SystemConfigurationException has been caught: %s\n", ex.getMessageText());
+ compositeServiceHelper = 0;
+ }
+ catch(ServiceRuntimeException &ex)
+ {
+ LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
+ compositeServiceHelper = 0;
+ }
+ LOGEXIT(1,"WSServiceProxy::init");
}
- break;
- case Type::StringType:
+
+ DataFactoryPtr WSServiceProxy::getDataFactory()
{
- const char** stringData = new const char*;
- *stringData = inputDataObject->getCString(pl[i]);
- //printf("inputDataObject has StringType named %s with value %s\n", name, stringData);
- operation.addParameter(stringData);
+ if (compositeServiceHelper == 0) return 0;
+ return compositeServiceHelper->getDataFactory();
}
- break;
- case Type::DataObjectType:
+
+ ///
+ /// This method will be called when an CompositeService needs to be invoked.
+ ///
+ DataObjectPtr WSServiceProxy::invoke(const char* operationName, DataObjectPtr inputDataObject)
{
- DataObjectPtr dataObjectData = inputDataObject->getDataObject(pl[i]);
- //printf("inputDataObject has DataObjectType named %s (#%d)\n", name, dataObjectData);
-
- if(!dataObjectData)
+ LOGENTRY(1,"WSServiceProxy::invoke");
+
+ if (compositeServiceHelper == 0)
{
- LOGINFO_1(4, "SDO DataObject parameter named %s was null", name);
+ LOGINFO(4, "WSServiceProxy has not got an sca CompositeService\n");
+ return NULL;
}
- operation.addParameter(&dataObjectData);
- }
- break;
- case Type::OpenDataObjectType:
- {
- /*
- * This code deals with xsd:any element parameters
- * 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]);
+
+ DataFactoryPtr dataFactoryPtr = compositeServiceHelper->getDataFactory();
+
+ DataObjectPtr outputDataObject = NULL;
+ SCARuntime* runtime = SCARuntime::getInstance();
- for(int j=0; j<dataObjectList.size(); j++)
+ Component* defaultComponent = runtime->getDefaultComponent();
+ Composite* composite = (Composite*)defaultComponent->getType();
+
+//TODO Fix this
+
+// CompositeService* compositeService = (CompositeService)composite->findComponent(compositeServiceName);
+//
+// Binding* binding = compositeService->getBinding();
+// WSBinding* wsBinding = (WSBinding*) binding;
+//
+// string wsdlNamespace = wsBinding->getWSDLNamespaceURL();
+// string wsdlPort = wsBinding->getPortName();
+// string wsdlService = wsBinding->getServiceName();
+//
+// WSDL* wsdl = composite->findWSDLDefinition(wsdlNamespace);
+// if (wsdl == 0)
+// {
+// LOGINFO_1(0, "WSDL description %s not found\n", wsdlNamespace.c_str());
+// return NULL;
+// }
+//
+// WSDLOperation operation;
+// try
+// {
+// operation = wsdl->findOperation(wsdlService, wsdlPort, operationName);
+// }
+// catch(SystemConfigurationException &ex)
+// {
+// LOGERROR_1(0, "SystemConfigurationException has been caught: %s\n", ex.getMessageText());
+// return NULL;
+// }
+//
+// LOGINFO_2(4, "WSServiceProxy has got WSDLOperation with inputType: %s#%s",
+// operation.getInputTypeUri().c_str(),
+// operation.getInputTypeName().c_str());
+// LOGINFO_2(4, "WSServiceProxy has got WSDLOperation with outputType: %s#%s",
+// operation.getOutputTypeUri().c_str(),
+// operation.getOutputTypeName().c_str());
+// LOGINFO_2(4, "WSServiceProxy has got WSDLOperation with documentStyle=%d and encoded=%d",
+// operation.isDocumentStyle(),
+// operation.isEncoded());
+//
+// if(operation.isDocumentStyle())
+// {
+// // Document style
+// outputDataObject = dataFactoryPtr->create(operation.getOutputTypeUri().c_str(), operation.getOutputTypeName().c_str());
+//
+// //printf("outputDataObject %s#%s\n", outputDataObject->getType().getURI(), outputDataObject->getType().getName());
+// //Utils::printDO(outputDataObject);
+// }
+// else
+// {
+// // RPC style
+// LOGERROR(0, "CompositeServices with RPC style WSDL Operations are not yet supported");
+// return NULL;
+// }
+//
+// // Create new Operation object and set parameters and return value
+// Operation operation(operationName);
+//
+// // Go through input data object to set the operation parameters
+// PropertyList pl = inputDataObject->getInstanceProperties();
+//
+// for(int i=0; i<pl.size(); i++)
+// {
+// const char* name = pl[i].getName();
+//
+// switch (pl[i].getTypeEnum())
+// {
+// case Type::BooleanType:
+// {
+// bool* boolData = new bool;
+// *boolData = inputDataObject->getBoolean(pl[i]);
+// //printf("inputDataObject has BooleanType named %s with value %d\n", name, boolData);
+// operation.addParameter(boolData);
+// }
+// break;
+// case Type::ByteType:
+// {
+// char* byteData = new char;
+// //printf("inputDataObject has ByteType named %s\n", name);
+// *byteData = inputDataObject->getByte(pl[i]);
+// operation.addParameter(byteData);
+// }
+// break;
+// case Type::BytesType:
+// {
+// int len = inputDataObject->getLength(pl[i]);
+// char* bytesData = new char[len+1];
+// int bytesWritten = inputDataObject->getBytes(pl[i], bytesData, len);
+// // Ensure the bytes end with the null char. Not sure if this is neccessary
+// if(bytesWritten <= len)
+// {
+// bytesData[bytesWritten] = 0;
+// }
+// else
+// {
+// bytesData[len] = 0;
+// }
+// //printf("inputDataObject has BytesType named %s with length %d\n", name, bytesWritten);
+// operation.addParameter(&bytesData);
+// }
+// break;
+// case Type::CharacterType:
+// {
+// // This code should work but won't be used as there is no mapping from an XSD type to the SDO CharacterType
+// wchar_t* charData = new wchar_t;
+// //printf("inputDataObject has CharacterType named %s\n", name);
+// *charData = inputDataObject->getCharacter(pl[i]);
+// operation.addParameter(charData);
+// }
+// break;
+// case Type::DoubleType:
+// {
+// long double* doubleData = new long double;
+// *doubleData = inputDataObject->getDouble(pl[i]);
+// //printf("inputDataObject has DoubleType named %s\n", name);
+// operation.addParameter(doubleData);
+// }
+// break;
+// case Type::FloatType:
+// {
+// 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;
+// case Type::IntegerType:
+// {
+// long* intData = new long;
+// //printf("inputDataObject has IntegerType named %s\n", name);
+// *intData = inputDataObject->getInteger(pl[i]);
+// operation.addParameter(intData);
+// }
+// break;
+// case Type::ShortType:
+// {
+// short* shortData = new short;
+// //printf("inputDataObject has ShortType named %s\n", name);
+// *shortData = inputDataObject->getShort(pl[i]);
+// operation.addParameter(shortData);
+// }
+// break;
+// case Type::StringType:
+// {
+// const char** stringData = new const char*;
+// *stringData = inputDataObject->getCString(pl[i]);
+// //printf("inputDataObject has StringType named %s with value %s\n", name, stringData);
+// operation.addParameter(stringData);
+// }
+// break;
+// case Type::DataObjectType:
+// {
+// DataObjectPtr dataObjectData = inputDataObject->getDataObject(pl[i]);
+// //printf("inputDataObject has DataObjectType named %s (#%d)\n", name, dataObjectData);
+//
+// if(!dataObjectData)
+// {
+// LOGINFO_1(4, "SDO DataObject parameter named %s was null", name);
+// }
+// operation.addParameter(&dataObjectData);
+// }
+// break;
+// case Type::OpenDataObjectType:
+// {
+// /*
+// * This code deals with xsd:any element parameters
+// * 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++)
+// {
+// DataObjectPtr dataObjectData = dataObjectList[j];
+// if(!dataObjectData)
+// {
+// LOGINFO_2(4, "SDO OpenDataObject parameter named %s[%d] was null", name, j);
+// }
+// operation.addParameter(&dataObjectData);
+// //Utils::printDO(dataObjectData);
+// }
+// }
+// break;
+// case Type::DateType:
+// LOGERROR_1(0, "SDO DateType parameters are not yet supported (%s)", name);
+// return NULL;
+// case Type::LongType:
+// LOGERROR_1(0, "SDO LongType (int64_t) parameters are not yet supported (%s)", name);
+// return NULL;
+// break;
+// case Type::UriType:
+// LOGERROR_1(0, "SDO UriType parameters are not yet supported (%s)", name);
+// return NULL;
+// break;
+// case Type::BigDecimalType:
+// LOGERROR_1(0, "SDO BigDecimalType parameters are not yet supported (%s)", name);
+// return NULL;
+// break;
+// case Type::BigIntegerType:
+// LOGERROR_1(0, "SDO BigIntegerType parameters are not yet supported (%s)", name);
+// return NULL;
+// break;
+// default:
+// LOGERROR_1(0, "Unknown SDO type parameter named %s has been found. Unknown types are not yet supported", name);
+// return NULL;
+// }
+// }
+//
+// // Now go through outputDataObject to set the return value
+// pl = outputDataObject->getInstanceProperties();
+//
+// // Set up the possible return value pointers
+// bool boolData = 0;
+// char byteData = 0;
+// wchar_t charData = 0;
+// long double doubleData = 0;
+// float floatData = 0;
+// long intData = 0;
+// short shortData = 0;
+// const char* stringData;
+// DataObjectPtr dataObjectData;
+//
+//
+// // There should only be one return value, but go through any list anyway?
+// if(pl.size() > 1)
+// {
+// LOGINFO(4, "More than one return value is defined in the WSDL, just defining the first");
+// }
+// else if(pl.size() == 0)
+// {
+// if(outputDataObject->getType().isOpenType() && outputDataObject->getType().isDataObjectType())
+// {
+// /*
+// * This code deals with returning xsd:any elements
+// * Return as a DataObject set within the outputDataObject
+// */
+//
+// // An OpenDataObject for the data to return in
+// operation.setReturnValue(&dataObjectData);
+// }
+// else
+// {
+// LOGINFO(4, "No return values are defined in the WSDL");
+// }
+//
+// }
+//
+// if(pl.size() > 0)
+// {
+// const char* name = pl[0].getName();
+//
+// switch (pl[0].getTypeEnum())
+// {
+// case Type::BooleanType:
+// {
+// //printf("outputDataObject has BooleanType named %s\n", name);
+// operation.setReturnValue(&boolData);
+// }
+// break;
+// case Type::ByteType:
+// {
+// //printf("outputDataObject has ByteType named %s\n", name);
+// operation.setReturnValue(&byteData);
+// }
+// break;
+// case Type::CharacterType:
+// {
+// //printf("outputDataObject has CharacterType named %s\n", name);
+// operation.setReturnValue(&charData);
+// }
+// break;
+// case Type::DoubleType:
+// {
+// //printf("outputDataObject has DoubleType named %s\n", name);
+// operation.setReturnValue((long double*) &doubleData);
+// }
+// break;
+// case Type::FloatType:
+// {
+// //printf("outputDataObject has FloatType named %s\n", name);
+// operation.setReturnValue(&floatData);
+// }
+// break;
+// case Type::IntegerType:
+// {
+// //printf("outputDataObject has IntegerType named %s\n", name);
+// operation.setReturnValue(&intData);
+// }
+// break;
+// case Type::ShortType:
+// {
+// //printf("outputDataObject has ShortType named %s\n", name);
+// operation.setReturnValue(&shortData);
+// }
+// break;
+// case Type::StringType:
+// case Type::BytesType:
+// {
+// //printf("outputDataObject has StringType or BytesType named %s\n", name);
+// operation.setReturnValue((const char**) &stringData);
+// }
+// break;
+// case Type::DataObjectType:
+// {
+// // printf("outputDataObject has DataObjectType named %s with type %s # %s\n", name, pl[0].getType().getURI(), pl[0].getType().getName());
+// operation.setReturnValue(&dataObjectData);
+// }
+// break;
+// case Type::DateType:
+// LOGERROR_1(0, "SDO DateType return values are not yet supported (%s)", name);
+// return NULL;
+// case Type::LongType:
+// LOGERROR_1(0, "SDO LongType (int64_t) return values are not yet supported (%s)", name);
+// return NULL;
+// case Type::UriType:
+// LOGERROR_1(0, "SDO UriType return values are not yet supported (%s)", name);
+// return NULL;
+// case Type::BigDecimalType:
+// LOGERROR_1(0, "SDO BigDecimalType return values are not yet supported (%s)", name);
+// return NULL;
+// case Type::BigIntegerType:
+// LOGERROR_1(0, "SDO BigIntegerType return values are not yet supported (%s)", name);
+// return NULL;
+// default:
+// LOGERROR_1(0, "Unknown SDO type return value named %s has been found. Unknown types are not yet supported", name);
+// return NULL;
+// }
+// }
+//
+// try
+// {
+// // Call into the wired composite
+// compositeServiceHelper->invoke(operation);
+//
+// // Set the data in the outputDataObject to be returned
+// setOutputData(operation, outputDataObject);
+// }
+// catch(SDORuntimeException &ex)
+// {
+// // TODO: Return more error information than just a null DataObject
+// LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
+// return NULL;
+// }
+// catch(ServiceRuntimeException &ex)
+// {
+// // TODO: Return more error information than just a null DataObject
+// LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
+// return NULL;
+// }
+//
+// LOGEXIT(1,"WSServiceProxy::invoke");
+//
+// return outputDataObject;
+
+ return NULL;
+ }
+
+
+ void WSServiceProxy::setOutputData(Operation operation, DataObjectPtr outputDataObject)
+ {
+ // Go through data object to set the return value
+ PropertyList pl = outputDataObject->getInstanceProperties();
+
+ if(pl.size() == 0)
{
- DataObjectPtr dataObjectData = dataObjectList[j];
- if(!dataObjectData)
+ if(outputDataObject->getType().isOpenType() && outputDataObject->getType().isDataObjectType())
{
- LOGINFO_2(4, "SDO OpenDataObject parameter named %s[%d] was null", name, j);
+ /*
+ * This code deals with returning xsd:any elements
+ * Return as a DataObject set within the outputDataObject
+ */
+
+ DataObjectPtr* dataObjectData = (DataObjectPtr*) operation.getReturnValue();
+ //Utils::printDO(*dataObjectData);
+
+ // Need to provide a name for the dataobject being returned, use the containment property name if there is one.
+ const char* rootName = "OpenDataObject";
+ try
+ {
+ const Property& prop = (*dataObjectData)->getContainmentProperty();
+ rootName = prop.getName();
+ (*dataObjectData)->detach();
+ }
+ catch(SDOPropertyNotFoundException&)
+ {
+ // DataObject has no containment property - use default rootName
+ }
+ outputDataObject->setDataObject(rootName, *dataObjectData);
+ }
+ else
+ {
+ LOGINFO(4, "No return values are defined in the WSDL");
}
- operation.addParameter(&dataObjectData);
- //Utils::printDO(dataObjectData);
- }
- }
- break;
- case Type::DateType:
- LOGERROR_1(0, "SDO DateType parameters are not yet supported (%s)", name);
- return NULL;
- case Type::LongType:
- LOGERROR_1(0, "SDO LongType (int64_t) parameters are not yet supported (%s)", name);
- return NULL;
- break;
- case Type::UriType:
- LOGERROR_1(0, "SDO UriType parameters are not yet supported (%s)", name);
- return NULL;
- break;
- case Type::BigDecimalType:
- LOGERROR_1(0, "SDO BigDecimalType parameters are not yet supported (%s)", name);
- return NULL;
- break;
- case Type::BigIntegerType:
- LOGERROR_1(0, "SDO BigIntegerType parameters are not yet supported (%s)", name);
- return NULL;
- break;
- default:
- LOGERROR_1(0, "Unknown SDO type parameter named %s has been found. Unknown types are not yet supported", name);
- return NULL;
- }
- }
- // Now go through outputDataObject to set the return value
- pl = outputDataObject->getInstanceProperties();
-
- // Set up the possible return value pointers
- bool boolData = 0;
- char byteData = 0;
- wchar_t charData = 0;
- long double doubleData = 0;
- float floatData = 0;
- long intData = 0;
- short shortData = 0;
- const char* stringData;
- DataObjectPtr dataObjectData;
-
-
- // There should only be one return value, but go through any list anyway?
- if(pl.size() > 1)
- {
- LOGINFO(4, "More than one return value is defined in the WSDL, just defining the first");
- }
- else if(pl.size() == 0)
- {
- if(outputDataObject->getType().isOpenType() && outputDataObject->getType().isDataObjectType())
- {
- /*
- * This code deals with returning xsd:any elements
- * Return as a DataObject set within the outputDataObject
- */
-
- // An OpenDataObject for the data to return in
- operation.setReturnValue(&dataObjectData);
- }
- else
- {
- LOGINFO(4, "No return values are defined in the WSDL");
- }
-
- }
-
- if(pl.size() > 0)
- {
- const char* name = pl[0].getName();
-
- switch (pl[0].getTypeEnum())
- {
- case Type::BooleanType:
- {
- //printf("outputDataObject has BooleanType named %s\n", name);
- operation.setReturnValue(&boolData);
- }
- break;
- case Type::ByteType:
- {
- //printf("outputDataObject has ByteType named %s\n", name);
- operation.setReturnValue(&byteData);
- }
- break;
- case Type::CharacterType:
- {
- //printf("outputDataObject has CharacterType named %s\n", name);
- operation.setReturnValue(&charData);
- }
- break;
- case Type::DoubleType:
- {
- //printf("outputDataObject has DoubleType named %s\n", name);
- operation.setReturnValue((long double*) &doubleData);
- }
- break;
- case Type::FloatType:
- {
- //printf("outputDataObject has FloatType named %s\n", name);
- operation.setReturnValue(&floatData);
- }
- break;
- case Type::IntegerType:
- {
- //printf("outputDataObject has IntegerType named %s\n", name);
- operation.setReturnValue(&intData);
- }
- break;
- case Type::ShortType:
- {
- //printf("outputDataObject has ShortType named %s\n", name);
- operation.setReturnValue(&shortData);
- }
- break;
- case Type::StringType:
- case Type::BytesType:
- {
- //printf("outputDataObject has StringType or BytesType named %s\n", name);
- operation.setReturnValue((const char**) &stringData);
- }
- break;
- case Type::DataObjectType:
- {
- // printf("outputDataObject has DataObjectType named %s with type %s # %s\n", name, pl[0].getType().getURI(), pl[0].getType().getName());
- operation.setReturnValue(&dataObjectData);
- }
- break;
- case Type::DateType:
- LOGERROR_1(0, "SDO DateType return values are not yet supported (%s)", name);
- return NULL;
- case Type::LongType:
- LOGERROR_1(0, "SDO LongType (int64_t) return values are not yet supported (%s)", name);
- return NULL;
- case Type::UriType:
- LOGERROR_1(0, "SDO UriType return values are not yet supported (%s)", name);
- return NULL;
- case Type::BigDecimalType:
- LOGERROR_1(0, "SDO BigDecimalType return values are not yet supported (%s)", name);
- return NULL;
- case Type::BigIntegerType:
- LOGERROR_1(0, "SDO BigIntegerType return values are not yet supported (%s)", name);
- return NULL;
- default:
- LOGERROR_1(0, "Unknown SDO type return value named %s has been found. Unknown types are not yet supported", name);
- return NULL;
- }
- }
-
- try
- {
- // Call into the wired composite
- scaCompositeServiceType->invoke(operation);
-
- // Set the data in the outputDataObject to be returned
- setOutputData(operation, outputDataObject);
- }
- catch(SDORuntimeException &ex)
- {
- // TODO: Return more error information than just a null DataObject
- LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
- return NULL;
- }
- catch(ServiceRuntimeException &ex)
- {
- // TODO: Return more error information than just a null DataObject
- LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
- return NULL;
- }
-
- LOGEXIT(1,"WSServiceProxy::invoke");
-
- return outputDataObject;
-}
-
-
-void WSServiceProxy::setOutputData(Operation operation, DataObjectPtr outputDataObject)
-{
- // Go through data object to set the return value
- PropertyList pl = outputDataObject->getInstanceProperties();
-
- if(pl.size() == 0)
- {
- if(outputDataObject->getType().isOpenType() && outputDataObject->getType().isDataObjectType())
- {
- /*
- * This code deals with returning xsd:any elements
- * Return as a DataObject set within the outputDataObject
- */
+ }
- DataObjectPtr* dataObjectData = (DataObjectPtr*) operation.getReturnValue();
- //Utils::printDO(*dataObjectData);
-
- // Need to provide a name for the dataobject being returned, use the containment property name if there is one.
- const char* rootName = "OpenDataObject";
- try
- {
- const Property& prop = (*dataObjectData)->getContainmentProperty();
- rootName = prop.getName();
- (*dataObjectData)->detach();
- }
- catch(SDOPropertyNotFoundException&)
- {
- // DataObject has no containment property - use default rootName
- }
- outputDataObject->setDataObject(rootName, *dataObjectData);
- }
- else
- {
- LOGINFO(4, "No return values are defined in the WSDL");
- }
-
- }
-
- // Should only be one return value.. This goes through all return values
- for(int i=0; i<pl.size(); i++)
- {
- const char* name = pl[i].getName();
-
- switch (pl[i].getTypeEnum())
- {
- case Type::BooleanType:
- {
- bool* boolData = (bool*)operation.getReturnValue();
- //printf("outputDataObject has BooleanType named %s with value %d\n", name, *boolData);
- outputDataObject->setBoolean(pl[i], *boolData);
- }
- break;
- case Type::ByteType:
- {
- char* byteData = (char*) operation.getReturnValue();
- //printf("outputDataObject has ByteType named %s with value %c (#%d)\n", name, *byteData, *byteData);
- outputDataObject->setByte(pl[i], *byteData);
- }
- break;
- case Type::BytesType:
- {
- const char** bytesData = (const char**) operation.getReturnValue();
- // TODO This looks for the first NULL byte - this may not be the full length of the data...
- int len = 0;
- while((*bytesData)[len] != 0)
+ // Should only be one return value.. This goes through all return values
+ for(int i=0; i<pl.size(); i++)
{
- len++;
+ const char* name = pl[i].getName();
+
+ switch (pl[i].getTypeEnum())
+ {
+ case Type::BooleanType:
+ {
+ bool* boolData = (bool*)operation.getReturnValue();
+ //printf("outputDataObject has BooleanType named %s with value %d\n", name, *boolData);
+ outputDataObject->setBoolean(pl[i], *boolData);
+ }
+ break;
+ case Type::ByteType:
+ {
+ char* byteData = (char*) operation.getReturnValue();
+ //printf("outputDataObject has ByteType named %s with value %c (#%d)\n", name, *byteData, *byteData);
+ outputDataObject->setByte(pl[i], *byteData);
+ }
+ break;
+ case Type::BytesType:
+ {
+ const char** bytesData = (const char**) operation.getReturnValue();
+ // TODO This looks for the first NULL byte - this may not be the full length of the data...
+ int len = 0;
+ while((*bytesData)[len] != 0)
+ {
+ len++;
+ }
+ //printf("outputDataObject has BytesType named %s with value %s and length %d\n", name, *bytesData, len);
+ outputDataObject->setBytes(pl[i], *bytesData, len);
+ }
+ break;
+ case Type::CharacterType:
+ {
+ wchar_t* charData = (wchar_t*) operation.getReturnValue();
+ //printf("outputDataObject has CharacterType named %s with value %s\n", name, charData);
+ outputDataObject->setCharacter(pl[i], *charData);
+ }
+ break;
+ case Type::DoubleType:
+ {
+ long double* doubleData = (long double*) operation.getReturnValue();
+ //printf("outputDataObject has DoubleType named %s with value %f\n", name, *doubleData);
+ outputDataObject->setDouble(pl[i], *doubleData);
+ }
+ break;
+ case Type::FloatType:
+ {
+ float* floatData = (float*) operation.getReturnValue();
+ //printf("outputDataObject has FloatType named %s with value %f \n", name, *floatData);
+ outputDataObject->setFloat(pl[i], *floatData);
+ }
+ break;
+ case Type::IntegerType:
+ {
+ long* intData = (long*) operation.getReturnValue();
+ //printf("outputDataObject has IntegerType named %s with value %d\n", name, *intData);
+ outputDataObject->setInteger(pl[i], *intData);
+ }
+ break;
+ case Type::ShortType:
+ {
+ short* shortData = (short*) operation.getReturnValue();
+ //printf("outputDataObject has ShortType named %s with value %d\n", name, *shortData);
+ outputDataObject->setShort(pl[i], *shortData);
+ }
+ break;
+ case Type::StringType:
+ {
+ const char** stringData = (const char**) operation.getReturnValue();
+ //printf("outputDataObject has StringType named %s with value %s\n", name, *stringData);
+ outputDataObject->setCString(pl[i], *stringData);
+ }
+ break;
+ case Type::DataObjectType:
+ {
+ DataObjectPtr* dataObjectData = (DataObjectPtr*) operation.getReturnValue();
+ //printf("outputDataObject has DataObjectType named %s with value (%d)\n", name, (*dataObjectData));
+ outputDataObject->setDataObject(pl[i], *dataObjectData);
+ }
+ break;
+ case Type::DateType:
+ LOGERROR_1(0, "SDO DateType return values are not yet supported (%s)", name);
+ break;
+ case Type::LongType:
+ LOGERROR_1(0, "SDO LongType (int64_t) return values are not yet supported (%s)", name);
+ break;
+ case Type::UriType:
+ LOGERROR_1(0, "SDO UriType return values are not yet supported (%s)", name);
+ break;
+ case Type::BigDecimalType:
+ LOGERROR_1(0, "SDO BigDecimalType return values are not yet supported (%s)", name);
+ break;
+ case Type::BigIntegerType:
+ LOGERROR_1(0, "SDO BigIntegerType return values are not yet supported (%s)", name);
+ break;
+ default:
+ LOGERROR_1(0, "Unknown SDO type return value named %s has been found. Unknown types are not yet supported", name);
+ }
}
- //printf("outputDataObject has BytesType named %s with value %s and length %d\n", name, *bytesData, len);
- outputDataObject->setBytes(pl[i], *bytesData, len);
- }
- break;
- case Type::CharacterType:
- {
- wchar_t* charData = (wchar_t*) operation.getReturnValue();
- //printf("outputDataObject has CharacterType named %s with value %s\n", name, charData);
- outputDataObject->setCharacter(pl[i], *charData);
- }
- break;
- case Type::DoubleType:
- {
- long double* doubleData = (long double*) operation.getReturnValue();
- //printf("outputDataObject has DoubleType named %s with value %f\n", name, *doubleData);
- outputDataObject->setDouble(pl[i], *doubleData);
- }
- break;
- case Type::FloatType:
- {
- float* floatData = (float*) operation.getReturnValue();
- //printf("outputDataObject has FloatType named %s with value %f \n", name, *floatData);
- outputDataObject->setFloat(pl[i], *floatData);
- }
- break;
- case Type::IntegerType:
- {
- long* intData = (long*) operation.getReturnValue();
- //printf("outputDataObject has IntegerType named %s with value %d\n", name, *intData);
- outputDataObject->setInteger(pl[i], *intData);
- }
- break;
- case Type::ShortType:
- {
- short* shortData = (short*) operation.getReturnValue();
- //printf("outputDataObject has ShortType named %s with value %d\n", name, *shortData);
- outputDataObject->setShort(pl[i], *shortData);
- }
- break;
- case Type::StringType:
- {
- const char** stringData = (const char**) operation.getReturnValue();
- //printf("outputDataObject has StringType named %s with value %s\n", name, *stringData);
- outputDataObject->setCString(pl[i], *stringData);
- }
- break;
- case Type::DataObjectType:
- {
- DataObjectPtr* dataObjectData = (DataObjectPtr*) operation.getReturnValue();
- //printf("outputDataObject has DataObjectType named %s with value (%d)\n", name, (*dataObjectData));
- outputDataObject->setDataObject(pl[i], *dataObjectData);
}
- break;
- case Type::DateType:
- LOGERROR_1(0, "SDO DateType return values are not yet supported (%s)", name);
- break;
- case Type::LongType:
- LOGERROR_1(0, "SDO LongType (int64_t) return values are not yet supported (%s)", name);
- break;
- case Type::UriType:
- LOGERROR_1(0, "SDO UriType return values are not yet supported (%s)", name);
- break;
- case Type::BigDecimalType:
- LOGERROR_1(0, "SDO BigDecimalType return values are not yet supported (%s)", name);
- break;
- case Type::BigIntegerType:
- LOGERROR_1(0, "SDO BigIntegerType return values are not yet supported (%s)", name);
- break;
- default:
- LOGERROR_1(0, "Unknown SDO type return value named %s has been found. Unknown types are not yet supported", name);
- }
- }
-}
+ } // End namespace ws
+ } // End namespace sca
+} // End namespace tuscany
Modified: incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.h Mon Aug 28 03:42:10 2006
@@ -19,19 +19,18 @@
#define tuscany_sca_ws_wsserviceproxy_h
#include "osoa/sca/export.h"
-
-#include "commonj/sdo/SDO.h"
-using commonj::sdo::DataObjectPtr;
-
-#include "tuscany/sca/core/CompositeService.h"
-using tuscany::sca::CompositeService;
-
#include "tuscany/sca/core/TuscanyRuntime.h"
-using tuscany::sca::TuscanyRuntime;
+#include "tuscany/sca/core/Operation.h"
+#include "tuscany/sca/core/CompositeServiceHelper.h"
+#include "commonj/sdo/SDO.h"
#include <string>
using std::string;
+using namespace commonj::sdo;
+using namespace tuscany::sca;
+
+
namespace tuscany
{
namespace sca
@@ -52,9 +51,9 @@
virtual void setOutputData(Operation operation, DataObjectPtr outputDataObject);
string compositeServiceName;
string systemRoot;
- string compositeComponent;
- CompositeService* scaCompositeServiceType;
+ string defaultComponentName;
TuscanyRuntime* tuscanyRuntime;
+ CompositeServiceHelper* compositeServiceHelper;
};
} // End namespace ws
} // End namespace sca
Added: incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h?rev=437637&view=auto
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h (added)
+++ incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h Mon Aug 28 03:42:10 2006
@@ -0,0 +1,67 @@
+/*
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+#ifndef tuscany_sca_ws_wsservicewrapper_h
+#define tuscany_sca_ws_wsservicewrapper_h
+#include "osoa/sca/export.h"
+
+#include "tuscany/sca/core/ServiceWrapper.h"
+#include "tuscany/sca/core/Operation.h"
+#include "tuscany/sca/model/Service.h"
+
+using namespace tuscany::sca::model;
+using namespace tuscany::sca;
+
+
+namespace tuscany
+{
+ namespace sca
+ {
+
+ namespace ws
+ {
+
+ class SCA_API WSServiceWrapper : public ServiceWrapper
+ {
+ public:
+
+ /**
+ * Constructor.
+ * @param target The service wrapper represents a Web service.
+ */
+ WSServiceWrapper(Service* service);
+
+ /**
+ * Destructor
+ */
+ virtual ~WSServiceWrapper();
+
+ /**
+ * All business method calls on the target service are performed through
+ * this invoke method.
+ * @param operation The details of the method, paramaters and return value for the
+ * business method to be called on the target service.
+ */
+ virtual void invoke(Operation& operation);
+ };
+ } // End namespace ws
+ } // End namespace sca
+} // End namespace tuscany
+
+#endif // tuscany_sca_ws_wsservicewrapper_h
Propchange: incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.h Mon Aug 28 03:42:10 2006
@@ -22,7 +22,7 @@
#endif
#include "CustomerInfo.h"
-#include "tuscany/sca/core/ServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo
{
Modified: incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp Mon Aug 28 03:42:10 2006
@@ -34,7 +34,7 @@
}
}
-CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target)
+CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : CPPServiceWrapper(target)
{
impl = (CustomerInfoImpl*)getImplementation();
}
Modified: incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.h Mon Aug 28 03:42:10 2006
@@ -22,9 +22,9 @@
#endif
#include "CustomerInfoImpl.h"
-#include "tuscany/sca/core/ComponentServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
-class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper
+class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper
{
public:
CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target);
Modified: incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/Makefile.am?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/Makefile.am (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/Makefile.am Mon Aug 28 03:42:10 2006
@@ -10,6 +10,7 @@
libCustomerInfo_la_LIBADD =
INCLUDES = -I$(top_builddir)/runtime/core/src \
+ -I$(top_builddir)/runtime/extensions \
-I${TUSCANY_SDOCPP}/include
install:
Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/Makefile.am?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/MyValue/Makefile.am (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/MyValue/Makefile.am Mon Aug 28 03:42:10 2006
@@ -12,6 +12,7 @@
libMyValue_la_LIBADD =
INCLUDES = -I$(top_builddir)/runtime/core/src \
+ -I$(top_builddir)/runtime/extensions \
-I${TUSCANY_SDOCPP}/include \
-I../CustomerInfo
Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.h Mon Aug 28 03:42:10 2006
@@ -22,7 +22,7 @@
#endif
#include "MyValue.h"
-#include "tuscany/sca/core/ServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
class MyValueImpl_MyValueService_Proxy : public MyValue
{
Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.cpp?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.cpp Mon Aug 28 03:42:10 2006
@@ -34,7 +34,7 @@
}
}
-MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target)
+MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : CPPServiceWrapper(target)
{
impl = (MyValueImpl*)getImplementation();
}
Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.h Mon Aug 28 03:42:10 2006
@@ -22,9 +22,9 @@
#endif
#include "MyValueImpl.h"
-#include "tuscany/sca/core/ComponentServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
-class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper
+class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper
{
public:
MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target);
Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.h Mon Aug 28 03:42:10 2006
@@ -22,7 +22,7 @@
#endif
#include "CustomerInfo.h"
-#include "tuscany/sca/core/ServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
class MyValueImpl_customerInfo_Proxy : public CustomerInfo
{
Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.h Mon Aug 28 03:42:10 2006
@@ -22,7 +22,7 @@
#endif
#include "StockQuoteService.h"
-#include "tuscany/sca/core/ServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
class MyValueImpl_stockQuote_Proxy : public StockQuoteService
{
Modified: incubator/tuscany/cpp/sca/runtime/core/test/src/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/src/Makefile.am?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/src/Makefile.am (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/src/Makefile.am Mon Aug 28 03:42:10 2006
@@ -9,4 +9,5 @@
INCLUDES = -I$(top_builddir)/runtime/core/test/MyValue \
-I$(top_builddir)/runtime/core/src \
+ -I$(top_builddir)/runtime/extensions \
-I${TUSCANY_SDOCPP}/include
Propchange: incubator/tuscany/cpp/sca/runtime/extensions/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Aug 28 03:42:10 2006
@@ -0,0 +1,29 @@
+configure
+Makefile.in
+config.log
+depcomp
+config.guess
+config.h
+config.sub
+ltmain.sh
+Makefile
+config.status
+stamp-h1
+config.h.in
+libtool
+autom4te.cache
+missing
+aclocal.m4
+install-sh
+.deps
+*.dat
+.libs
+tmp
+bld
+.project
+.cdtproject
+.settings
+*_Proxy.cpp
+*_Proxy.h
+*_Wrapper.cpp
+*_Wrapper.h
Propchange: incubator/tuscany/cpp/sca/runtime/extensions/cpp/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Aug 28 03:42:10 2006
@@ -0,0 +1,29 @@
+configure
+Makefile.in
+config.log
+depcomp
+config.guess
+config.h
+config.sub
+ltmain.sh
+Makefile
+config.status
+stamp-h1
+config.h.in
+libtool
+autom4te.cache
+missing
+aclocal.m4
+install-sh
+.deps
+*.dat
+.libs
+tmp
+bld
+.project
+.cdtproject
+.settings
+*_Proxy.cpp
+*_Proxy.h
+*_Wrapper.cpp
+*_Wrapper.h
Propchange: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Aug 28 03:42:10 2006
@@ -0,0 +1,29 @@
+configure
+Makefile.in
+config.log
+depcomp
+config.guess
+config.h
+config.sub
+ltmain.sh
+Makefile
+config.status
+stamp-h1
+config.h.in
+libtool
+autom4te.cache
+missing
+aclocal.m4
+install-sh
+.deps
+*.dat
+.libs
+tmp
+bld
+.project
+.cdtproject
+.settings
+*_Proxy.cpp
+*_Proxy.h
+*_Wrapper.cpp
+*_Wrapper.h
Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.cpp?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.cpp Mon Aug 28 03:42:10 2006
@@ -24,7 +24,6 @@
#include "CPPInterfaceExtension.h"
-
extern "C"
{
#if defined(WIN32) || defined(_WINDOWS)
Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.h (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.h Mon Aug 28 03:42:10 2006
@@ -41,6 +41,7 @@
virtual ~CPPExtension();
static void initialize();
+
private:
};
Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.cpp?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.cpp Mon Aug 28 03:42:10 2006
@@ -20,6 +20,7 @@
#include "CPPImplementationExtension.h"
#include "CPPImplementation.h"
#include "tuscany/sca/util/Logging.h"
+#include "tuscany/sca/util/Utils.h"
namespace tuscany
@@ -52,7 +53,7 @@
// ===================================================================
// loadModelElement - load the info from implementation.cpp
// ===================================================================
- tuscany::sca::model::Implementation* CPPImplementationExtension::getImplementation(commonj::sdo::DataObjectPtr scdlImplementation)
+ ComponentType* CPPImplementationExtension::getImplementation(Composite *composite, DataObjectPtr scdlImplementation)
{
string implType = scdlImplementation->getType().getName();
if (implType == "CPPImplementation")
@@ -60,11 +61,29 @@
string library = scdlImplementation->getCString("library");
string header = scdlImplementation->getCString("header");
string className = scdlImplementation->getCString("class");
- // The following works for now ONLY bacause CPPImplementation is identical
- // to tusscany::sca::model::CPPIplementation which will be removed soon!
- return new CPPImplementation(library, header, className);
+
+ string headerPath;
+ string headerStub;
+
+ // Separate any path element
+ Utils::rTokeniseString("/", header, headerPath, headerStub);
+ if (headerPath != "")
+ {
+ headerPath += "/";
+ }
+
+ // Determine the header stub name
+ string tmp;
+ Utils::rTokeniseString(".h", headerStub, headerStub, tmp);
+
+ CPPImplementation* cppImpl = new CPPImplementation(library, header, headerPath, headerStub, className);
+
+ return cppImpl;
+ }
+ else
+ {
+ return NULL;
}
- return 0;
}
} // End namespace cpp
Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.h (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.h Mon Aug 28 03:42:10 2006
@@ -35,7 +35,7 @@
/**
* Default constructor
*/
- CPPImplementationExtension();
+ CPPImplementationExtension();
/**
* Destructor
@@ -53,7 +53,7 @@
*/
virtual const string& getExtensionTypeQName() {return typeQName;}
- virtual tuscany::sca::model::Implementation* getImplementation(commonj::sdo::DataObjectPtr scdlImplementation);
+ virtual ComponentType* getImplementation(Composite* composite, DataObjectPtr scdlImplementation);
private:
static const string extensionName;
Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.cpp?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.cpp Mon Aug 28 03:42:10 2006
@@ -50,9 +50,9 @@
const string CPPInterfaceExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#CPPInterface");
// ===================================================================
- // loadModelElement - load the info from implementation.cpp
+ // loadModelElement - load the info from interface.cpp
// ===================================================================
- tuscany::sca::model::Interface* CPPInterfaceExtension::getInterface(commonj::sdo::DataObjectPtr scdlInterface)
+ tuscany::sca::model::Interface* CPPInterfaceExtension::getInterface(Composite* composite, DataObjectPtr scdlInterface)
{
// Determine the type
string ifType = scdlInterface->getType().getName();
@@ -62,9 +62,7 @@
string className = scdlInterface->getCString("class");
string scope = scdlInterface->getCString("scope");
bool remotable = scdlInterface->getBoolean("remotable");
-
- // The following works for now ONLY bacause CPPInterface is identical
- // to tusscany::sca::model::CPPInterface which will be removed soon!
+
return new CPPInterface(header, className, scope, remotable);
}
return 0;
Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.h (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.h Mon Aug 28 03:42:10 2006
@@ -53,7 +53,7 @@
*/
virtual const string& getExtensionTypeQName() {return typeQName;}
- virtual tuscany::sca::model::Interface* getInterface(commonj::sdo::DataObjectPtr scdlInterface);
+ virtual tuscany::sca::model::Interface* getInterface(Composite* composite, DataObjectPtr scdlInterface);
private:
static const string extensionName;
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org