diff options
Diffstat (limited to 'tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model')
38 files changed, 0 insertions, 5952 deletions
diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Binding.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Binding.cpp deleted file mode 100644 index c312d7a077..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Binding.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Binding.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Binding::Binding(const string& uri) : uri(uri) - { - } - - Binding::~Binding() - { - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Binding.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Binding.h deleted file mode 100644 index ff97990dc6..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Binding.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_binding_h -#define tuscany_sca_model_binding_h -#include <string> -using std::string; - - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about the binding for EntryPoint and ExternalService. An - * abstract class which will be extended by classes that hold specific - * information for each type of binding. - */ - class Binding - { - - public: - /** - * Supported binding types. - */ - enum Type - { - WS, - SCA - }; - - /** - * Constructor to create a new binding. - * @param uri The uri specified in the scdl file. - */ - Binding(const string& uri); - - /** - * Destructor. - */ - virtual ~Binding(); - - /** - * Return the enumerated type of binding. - * @return The type of the binding (see Binding#Type). - */ - virtual Type getBindingType() = 0; - - /** - * Return the uri of the binding. - * @return The uri of the binding. - */ - string getUri() {return uri;}; - - private: - /** - * The uri of the binding. - */ - string uri; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_binding_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.cpp deleted file mode 100644 index 7212e777b1..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/CPPImplementation.h" -#include "tuscany/sca/util/Utils.h" - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - CPPImplementation::CPPImplementation(const string& dllName, const string& head, const string& classN) - : dll(dllName), header(head), className(classN) - { - // Separate any path element - Utils::rTokeniseString("/", head, headerPath, headerStub); - if (headerPath != "") - { - headerPath += "/"; - } - - // Determine the header stub name - string tmp; - Utils::rTokeniseString(".h", headerStub, headerStub, tmp); - } - - CPPImplementation::~CPPImplementation() - { - } - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.h deleted file mode 100644 index 0294649af7..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_cppimplementation_h -#define tuscany_sca_model_cppimplementation_h -#include "tuscany/sca/model/Implementation.h" - -#include <map> -using std::map; -#include <string> -using std::string; - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Holds informatio about an SCA implementation written in C++ - */ - class CPPImplementation : public Implementation - { - - public: - /** - * Constructor. - * @param dllName Name of the shared library. - * @param header Name of the header file that contains the class declaring the - * implementation class. - * @param className Name of the class in the header file (could be a blank string - * if this is not specified). - */ - CPPImplementation(const string& dllName, const string& header, const string& className); - - /** - * Destructor - */ - virtual ~CPPImplementation(); - - /** - * Return the implementation type. - * @return Always returns CPP. - */ - virtual Type getImplementationType() {return CPP;} - - /** - * Returns the name of the shared library. - * @return The name of the shared library. - */ - const string& getDll() {return dll;} - - /** - * Get the name of the header file. - * @return Name of the header file. - */ - const string& getHeader() {return header;} - - /** - * Get the header file name without the extension. - * @return The name of the header file without any extension. - */ - const string& getHeaderStub() {return headerStub;} - - /** - * Get the header path. - * @return The pathe element of the header. - */ - const string& getHeaderPath() {return headerPath;} - - /** - * Get the name of the class. - * @return The class name if specified. - */ - const string& getClass() {return className;} - private: - /** - * Name of the shared library. - */ - string dll; - - /** - * Name of the header file describing the interface. - */ - string header; - - /** - * Name of the header file without the extension. - */ - string headerStub; - - /** - * Path element of the header. - */ - string headerPath; - - /** - * Name of the class in the header file declaring the implementation. - * May be an empty string if not set in the SCDL file. - */ - string className; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_cppimplementation_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPInterface.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPInterface.cpp deleted file mode 100644 index 015b54c259..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPInterface.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/CPPInterface.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - CPPInterface::CPPInterface( - const string& head, - const string& classN, - const string& scop, - bool remote) - : header(head), className(classN), remotable(remote) - { - string::size_type dot = header.rfind(".h"); // this will also find .hpp - if (dot != string::npos) - { - headerStub = header.substr(0, dot); - } - else - { - headerStub = header; - } - - if (scop == "module") - { - scope = MODULE; - } - else - { - scope = STATELESS; - } - } - - CPPInterface::~CPPInterface() - { - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPInterface.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPInterface.h deleted file mode 100644 index 7b37b1892e..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/CPPInterface.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_cppinterface_h -#define tuscany_sca_model_cppinterface_h - -#include "tuscany/sca/model/Interface.h" - - -#include <map> -using std::map; -#include <string> -using std::string; - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Holds information about an interface described using a C++ - * header file. - */ - class CPPInterface : public Interface - { - - public: - /** - * Constuctor. - * @param header Name of the header file containing the class that - * describes the interface. - * @param className Name of the class in the header file that - * describes the interface. - * @param scope The scope of the interface (stateless or module). - * @param remotable True if the interface is remotable. - */ - CPPInterface( - const string& header, - const string& className, - const string& scope, - bool remotable); - - /** - * Destructor. - */ - virtual ~CPPInterface(); - - /** - * Return the type of the interface. - * @return Always returns CPP. - */ - virtual Type getInterfaceType() {return CPP;} - - /** - * Get the name of the header file. - * @return The name of the header file containing the definition of the - * interface. - */ - const string& getHeader() {return header;} - - /** - * Return the name of the header file without the extension. - * @return Header file name without any extension. - */ - const string& getHeaderStub() {return headerStub;} - - /** - * Get the name of the class. - * @return The name of the class defining the interface. - */ - const string& getClass() {return className;} - - /** - * Scope of interface. - */ - enum SCOPE - { - MODULE, - STATELESS - }; - - /** - * Get the scope of the interface. - * @return The scope of the interface. - */ - SCOPE getScope() {return scope;} - - /** - * Return whether the interface is remotable or local. - * @return True if the interface is remotable, otherwise false. - */ - bool getRemotable() {return remotable;} - - private: - /** - * Name of the header file containing the definition of the interface. - */ - string header; - - /** - * Name of the header file without the extension. - */ - string headerStub; - - /** - * Name of the class in the header file. - */ - string className; - - /** - * Scope of the interface. - */ - SCOPE scope; - - /** - * Remotable interface or not. - */ - bool remotable; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_cppinterface_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Component.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Component.cpp deleted file mode 100644 index 4e0cf81c61..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Component.cpp +++ /dev/null @@ -1,305 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -// Component.cpp : Represent a loaded Component -// -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Component.h" - -using namespace commonj::sdo; - -namespace tuscany -{ - namespace sca - { - namespace model - { - // Constructor - Component::Component(const std::string& componentName, Module* module) - : name(componentName), containingModule(module), implementation(0) - { - LOGENTRY(1, "Component::constructor"); - LOGINFO_1(3, "Component::constructor: Component name: %s", name.c_str()); - LOGEXIT(1, "Component::constructor"); - } - - Component::~Component() - { - } - - Service* Component::addService(const std::string& serviceName) - { - Service* service = new Service(serviceName, this); - services[serviceName] = service; - return service; - } - - Service* Component::findService(const std::string& serviceName) - { - // If serviceName is null then return the ONLY service - if (serviceName == "" - && services.size() == 1) - { - return services.begin()->second; - } - else - { - return services[serviceName]; - } - } - - ServiceReference* Component::findReference(const std::string& referenceName) - { - return references[referenceName]; - } - - ServiceReference* Component::addReference(const std::string& referenceName) - { - ServiceReference* serviceReference = references[referenceName]; - if (!serviceReference) - { - references[referenceName] = new ServiceReference(referenceName); - } - return references[referenceName]; - } - - void Component::setImplementation(Implementation* impl) - { - implementation = impl; - } - - void Component::addProperty(const string& name, - const string& type, - bool many, - bool required, - const char* defaultValue) - { - // Create a Type in the Properties dataFactory - DataFactoryPtr factory = getPropertyDataFactory(); - - string typeUri, typeName; - Utils::tokeniseQName(type, typeUri, typeName); - - if (typeUri == "http://www.w3.org/2001/XMLSchema") - { - typeUri = Type::SDOTypeNamespaceURI; - if (typeName == "string") - { - typeName = "String"; - } - else if (typeName == "anyType") - { - typeName = "DataObject"; - } - else if (typeName == "int") - { - typeName = "Integer"; - } - else if (typeName == "integer") - { - typeName = "Integer"; - } - else if (typeName == "negativeInteger") - { - typeName = "Integer"; - } - else if (typeName == "nonNegativeInteger") - { - typeName = "Integer"; - } - else if (typeName == "positiveInteger") - { - typeName = "Integer"; - } - else if (typeName == "nonPositiveInteger") - { - typeName = "Integer"; - } - else if (typeName == "unsignedLong") - { - typeName = "Integer"; - } - else if (typeName == "unsignedShort") - { - typeName = "Integer"; - } - else if (typeName == "unsignedInt") - { - typeName = "Long"; - } - else if (typeName == "long") - { - typeName = "Long"; - } - else if (typeName == "double") - { - typeName = "Double"; - } - else if (typeName == "short") - { - typeName = "Short"; - } - else if (typeName == "unsignedByte") - { - typeName = "Short"; - } - else if (typeName == "float") - { - typeName = "Float"; - } - else if (typeName == "boolean") - { - typeName = "Boolean"; - } - else if (typeName == "byte") - { - typeName = "Byte"; - } - else if (typeName == "base64Binary") - { - typeName = "Bytes"; - } - else if (typeName == "hexBinary") - { - typeName = "Bytes"; - } - else if (typeName == "anyURI") - { - typeName = "URI"; - } - else if (typeName == "QName") - { - typeName = "URI"; - } - else - { - // Default unknown xs: types to string?? - typeName = "String"; - } - } - else - { - // It's not an XML type - } - - - factory->addPropertyToType( - "org/osoa/sca", - "Properties", - name.c_str(), - typeUri.c_str(), - typeName.c_str(), - many, - false, - true); - - // Set the default - - - // Add to list of required properties - if (required) - { - } - } - - DataFactoryPtr Component::getPropertyDataFactory() - { - if (!propertyFactory) - { - propertyFactory = DataFactory::getDataFactory(); - // Add the root type - propertyFactory->addType("org/osoa/sca", "Properties", false, false, false, false); - } - return propertyFactory; - } - - DataObjectPtr Component::getProperties() - { - if (!properties) - { - properties = getPropertyDataFactory()->create("org/osoa/sca", "Properties"); - } - return properties; - } - - void Component::addProperties(DataObjectPtr values) - { - if (!values) - { - return; - } - - DataObjectPtr props = getProperties(); - - PropertyList pl = values->getInstanceProperties(); - for (int i=0; i < pl.size(); i++) - { - if (!values->isSet(i)) - { - continue; - } - - // Add the property value to the component to be resolved later - string propName = pl[i].getName(); - - // Get the property's type - try - { - const Property& propProperty = props->getProperty(pl[i].getName()); - const Type& propType = propProperty.getType(); - - DataObjectList& proplist = values->getList(pl[i]); - for (int proplistI=0; proplistI<proplist.size(); proplistI++) - { - // Get the property value - string propValue = proplist.getDataObject(proplistI)->getSequence()->getCStringValue(0); - if (propType.isDataType()) - { - if (propProperty.isMany()) - { - DataObjectList& dol = props->getList(propProperty); - dol.append(propValue.c_str()); - } - else - { - props->setCString(propProperty, propValue.c_str()); - } - } - else - { - // Create a new instance of the DO - // iterate over properties setting each one - } - } - } - catch (SDOPropertyNotFoundException&) - { - // Configuration error: property is not defined - string message = "Undefined property: " + propName; - throw SystemConfigurationException(message.c_str()); - } - - } - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Component.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Component.h deleted file mode 100644 index f40690c859..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Component.h +++ /dev/null @@ -1,202 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_component_h -#define tuscany_sca_model_component_h - -#include <string> -using std::string; - -#include <map> - -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/Implementation.h" -#include "tuscany/sca/model/ServiceReference.h" - -#include "commonj/sdo/SDO.h" -using commonj::sdo::DataObjectPtr; -using commonj::sdo::DataFactoryPtr; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - class Module; - - /** - * Information about an SCA component. - */ - class Component - { - public: - /** - * Constructor - * @param name The name of the component. - * @param module The module containing this component. - */ - Component(const std::string& name, Module* module); - - /** - * Destructor. - */ - virtual ~Component(); - - /** - * Returns the name of the component. - * @return The name of the component. - */ - const string& getName() {return name;} - - /** - * Get the module containing this component. - * @return The containing module. - */ - Module* getModule() {return containingModule;} - - /** - * Add a new service to this component. - * @param serviceName The name of the service to add. - * @return The newly added service. - */ - Service* addService(const std::string& serviceName); - - /** - * Find an existing service on this component. - * @param serviceName The name of the service to find. - * If the serviceName is the zero length string then if there is - * only one service it will be returned. - * @return The found service, or 0 if not found. - */ - Service* findService(const std::string& serviceName); - - /** - * Add a new reference to this component. - * @param referenceName The name of the reference to add. - * @return The newly added reference. - */ - ServiceReference* addReference(const std::string& referenceName); - - /** - * Find an existing reference on this component. - * @param referenceName The name of the reference to find. - * @return The found reference, or 0 if not found. - */ - ServiceReference* findReference(const std::string& referenceName); - - /** - * Set the details of the implementation of this component. - * @param impl The details of the implementation. - */ - void setImplementation(Implementation* impl); - - /** - * Returns the details of the implementation of this component. - * @return The details of the implementation. - */ - Implementation* getImplementation() {return implementation;} - - /** - * Add a new property to this component. Properties are - * added one at a time. The property definitions come from the component - * type file. - * @param name The name of the property. - * @param type The full name of the type (including uri and local name). - * @param many True if this is a many valued property. - * @param required True if this property must have a value set. - * @param defaultValue The default value if the property does not have a - * value set. - */ - void addProperty(const string& name, - const string& type, - bool many, - bool required, - const char* defaultValue = 0); - - /** - * Add the property values to the properties defined on this - * component. The values will come from the sca.module file. - * @param properties A data object representing all the values set - * for this component. - */ - void addProperties(DataObjectPtr properties); - - /** - * Returns a data object from which all the properties and their - * values can be accessed. - * @return A data object holding the property values. - */ - DataObjectPtr getProperties(); - private: - /** - * Name of the component. - */ - string name; - - /** - * Module containing this component for navigating up the tree. - */ - Module* containingModule; - - /** - * Information about the implementation of this component. - */ - Implementation* implementation; - - typedef std::map<std::string, Service*> SERVICE_MAP; - /** - * Map of all the services defined on this component. - */ - SERVICE_MAP services; - - typedef std::map<std::string, ServiceReference*> REFERENCE_MAP; - /** - * Map of all the references defined on this component. - */ - REFERENCE_MAP references; - - /** - * SDO data factory which has all the property types defined from - * the component type file - */ - DataFactoryPtr propertyFactory; - - /** - * Return the SDO data factory which has the property types defined - * in it. - * @return The data factory. - */ - DataFactoryPtr getPropertyDataFactory(); - - /** - * The properties and their values for this component. - */ - DataObjectPtr properties; - - }; - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_component_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/EntryPoint.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/EntryPoint.cpp deleted file mode 100644 index 1c38e31469..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/EntryPoint.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/EntryPoint.h" -#include "tuscany/sca/util/Exceptions.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - EntryPoint::EntryPoint(const std::string& epName) - : name(epName) - { - LOGENTRY(1, "EntryPoint::constructor"); - LOGINFO_1(2, "EntryPoint::constructor: EntryPoint name: %s", name.c_str()); - LOGEXIT(1, "EntryPoint::constructor"); - } - - EntryPoint::~EntryPoint() - { - } - - void EntryPoint::addTarget(WireTarget* targ) - { - if (multiplicity == ONE_ONE || multiplicity == ZERO_ONE) - { - if (targets.size() > 0) - { - // throw exception - string message = "Duplicate wire for reference: " + name; - throw SystemConfigurationException(message.c_str()); - } - } - - // TODO - must be remotable - - targets.push_back(targ); - } - - void EntryPoint::setMultiplicity(const std::string& multip) - { - if (multip == "0..1") - { - multiplicity = ZERO_ONE; - } - else if (multip == "1..1") - { - multiplicity = ONE_ONE; - } - else if (multip == "0..n") - { - multiplicity = ZERO_MANY; - } - else if (multip == "1..n") - { - multiplicity = ONE_MANY; - } - else - { - string msg = "Invalid multiplicity specified, " + multip + ", for reference: " +name; - throw SystemConfigurationException(msg.c_str()); - } - } - - void EntryPoint::setInterface(Interface* interf) - { - iface = interf; - } - - void EntryPoint::setBinding(Binding* bind) - { - binding = bind; - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/EntryPoint.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/EntryPoint.h deleted file mode 100644 index 9b80a1049f..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/EntryPoint.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_entrypoint_h -#define tuscany_sca_model_entrypoint_h - -#include <string> -using std::string; -#include <vector> -using std::vector; - -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/model/Binding.h" -#include "tuscany/sca/model/WireTarget.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Represents the information about an entry point. - */ - class EntryPoint - { - - public: - /** - * Constructor. - * @param name The name of the entry point. - */ - EntryPoint(const std::string& name); - - /** - * Destructor. - */ - virtual ~EntryPoint(); - - /** - * Return the name of the entry point. - * @return The name of the entry point. - */ - const string& getName() {return name;} - - /** - * How many wires can be wired from this entry point. - */ - enum Multiplicity - { - ZERO_ONE, - ONE_ONE, - ZERO_MANY, - ONE_MANY - }; - - /** - * Set the multiplicity of this entry point. - * @param multiplicity One of 0..1, 1..1, 0..n, 1..n - */ - void setMultiplicity(const std::string& multiplicity); - - /** - * Return the multiplicity of this entry point (how - * many wires can be wired from this entry point). - * @return The multiplicity. - */ - Multiplicity getMultiplicity() {return multiplicity;} - - /** - * Set the interface describing this entry point. - * @param iface The interface. - */ - void setInterface(Interface* iface); - - /** - * Get the interface describing this entry point. Use - * Interface#getType to find out the type of interface - * describing this entry point. - * @return iface The interface. - */ - Interface* getInterface() {return iface;} - - /** - * Set the binding connecting this entry point. - * @param binding The Binding. - */ - void setBinding(Binding* binding); - - /** - * Get the binding connecting this entry point. Use - * Binding#getType to find out the type of binding - * connecting this entry point. - * @return binding The binding. - */ - Binding* getBinding() {return binding;} - - /** - * Add a target to the entry point. - * @param target Add a target (derived from a wire) to - * the entry point. - */ - void addTarget(WireTarget* target); - typedef vector<WireTarget*> TARGETS; - - /** - * Get a vector of targets added to this entry point. - */ - const TARGETS& getTargets() {return targets;} - private: - /** - * Name of the entry point. - */ - string name; - - /** - * The interface describing this entry point. - */ - Interface* iface; - - /** - * The binding connecting this entry point. - */ - Binding* binding; - - /** - * The multiplicity of this entry point.. - */ - Multiplicity multiplicity; - - /** - * The vector of targets added to this entry point. - */ - TARGETS targets; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_entrypoint_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ExternalService.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ExternalService.cpp deleted file mode 100644 index c848c3aafb..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ExternalService.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/ExternalService.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - ExternalService::ExternalService(const std::string& serviceName, Module *module) - : WireTarget(serviceName), containingModule(module) - { - LOGENTRY(1, "ExternalService::constructor"); - LOGINFO_1(2, "ExternalService::constructor: ExternalService name: %s", getName().c_str()); - LOGEXIT(1, "ExternalService::constructor"); - } - - ExternalService::~ExternalService() - { - delete binding; - } - - void ExternalService::setBinding(Binding* bind) - { - binding = bind; - } - - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ExternalService.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ExternalService.h deleted file mode 100644 index fe9640d1b8..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ExternalService.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_externalservice_h -#define tuscany_sca_model_externalservice_h - -#include <string> - -#include "tuscany/sca/model/WireTarget.h" -#include "tuscany/sca/model/Binding.h" - -namespace tuscany -{ - namespace sca - { - - namespace model - { - class Module; - - /** - * Information about an external service. - */ - class ExternalService : public WireTarget - { - public: - /** - * Constructor. - * @param name The name of the external service. - * @param module The module containing this external service. - */ - ExternalService(const std::string& name, Module *module); - - /** - * Destructor. - */ - virtual ~ExternalService(); - - /** - * Return the type of service. - * @return Always returns ExternalServiceType - */ - virtual Type getServiceType() {return ExternalServiceType;} - - /** - * Set the binding for this external service. - * @param binding The binding to set. - */ - virtual void setBinding(Binding* binding); - - /** - * Get the binding set for this external service. - * @return The binding. - */ - virtual Binding* getBinding() {return binding;}; - - /** - * Get the module containing this external service. - * @return The containing module. - */ - Module* getContainingModule() {return containingModule;}; - - private: - /** - * The binding for this external service. - */ - Binding* binding; - - /** - * The module containing this external service. - */ - Module* containingModule; - - - }; - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_externalservice_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Implementation.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Implementation.cpp deleted file mode 100644 index 9703d1bab3..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Implementation.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Implementation.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Implementation::Implementation() - { - } - - Implementation::~Implementation() - { - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Implementation.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Implementation.h deleted file mode 100644 index 17414c359b..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Implementation.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_implementation_h -#define tuscany_sca_model_implementation_h - -#include <string> - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Abstract class representing information about an implementation - * of a component. The subtypes will hold information specific to - * the type of implementation. - */ - class Implementation - { - - public: - /** - * Supported types of implementation. - */ - enum Type - { - CPP, - JAVA - }; - - Implementation(); - virtual ~Implementation(); - - /** - * Return the type of the implementation. - * @return Will depend on the subtype. - */ - virtual Type getImplementationType() = 0; - - private: - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_implementation_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Interface.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Interface.cpp deleted file mode 100644 index 9e0aa45889..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Interface.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Interface.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Interface::Interface() - { - } - - Interface::~Interface() - { - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Interface.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Interface.h deleted file mode 100644 index 24bb43224b..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Interface.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_interface_h -#define tuscany_sca_model_interface_h - -#include <string> - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about an interface. Subtypes will hold information - * specific to a type of interface. - */ - class Interface - { - - public: - /** - * The supported types of interface. - */ - enum Type - { - CPP, - JAVA - }; - - Interface(); - virtual ~Interface(); - - /** - * Returns the type of the interface. - * @return Will depend on the subtype. - */ - virtual Type getInterfaceType() = 0; - - private: - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_interface_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ModelLoader.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ModelLoader.cpp deleted file mode 100644 index 32a3ad8d26..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ModelLoader.cpp +++ /dev/null @@ -1,1702 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "osoa/sca/export.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/ModelLoader.h" -#include "tuscany/sca/model/CPPImplementation.h" -#include "tuscany/sca/model/CPPInterface.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/WSBinding.h" -#include "commonj/sdo/TypeDefinitions.h" - - -using namespace commonj::sdo; - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - // =========== - // Constructor - // =========== - ModelLoader::ModelLoader(System* system) : system(system) - { - LOGENTRY(1, "ModelLoader::constructor"); - - - LOGEXIT(1, "ModelLoader::constructor"); - } - - // ========== - // Destructor - // ========== - ModelLoader::~ModelLoader() - { - } - - // ========================================================= - // load: Load the runtime model from the deployed xml files - // This class has the responsibility for translating from - // the SCA scdl files to the SCA runtime's in memory model. - // ========================================================= - void ModelLoader::load(const string& configurationRoot) - { - LOGENTRY(1, "ModelLoader::load"); - LOGINFO_1(2,"configuration root: %s", configurationRoot.c_str()); - - // The configuration root path will point to a directory structure: - // root/ - // The sca.subsystem files can be located anywhere under this directory - // structure. - loadSubsystems(configurationRoot); - - // sca.module files represent the root of a module, and can occur anywhere - // under the directory structure - loadModules(configurationRoot); - - system->resolveWires(); - LOGEXIT(1, "ModelLoader::load"); - } - - // ======================================================================== - // loadSubsystems: - // Load all the subsystems from any directory below the configuration root. - // Translate the subsystem information to the runtime information - // ======================================================================== - void ModelLoader::loadSubsystems(const string& configurationRoot) - { - // Get all the sca.subsystem files in the module - LOGENTRY(1, "ModelLoader::loadSubsystems"); - Files files(configurationRoot, "sca.subsystem", true); - for (unsigned int i=0; i < files.size(); i++) - { - loadSubsystemFile(files[i]); - } - LOGEXIT(1, "ModelLoader::loadSubsystems"); - } - - - // ===================================================================== - // loadSubsystemFile: - // This method is called for each sca.subsystem file found in the module - // folder structure - // ===================================================================== - void ModelLoader::loadSubsystemFile(const File& file) - { - LOGENTRY(1, "ModelLoader::loadSubsystemFile"); - LOGINFO_1(2, "subsystem filename: %s", file.getFileName().c_str()); - - try - { - string filename = file.getDirectory() + "/" + file.getFileName(); - XMLDocumentPtr subsystemFile = getXMLHelper()->loadFile(filename.c_str()); - if (subsystemFile->getRootDataObject() == 0) - { - LOGERROR_1(0, "ModelLoader::loadSubsystemFile: Unable to load file: %s", filename.c_str()); - } - else - { - //Utils::printDO(subsystemFile->getRootDataObject()); - mapSubsystem(subsystemFile->getRootDataObject()); - } - } catch (SDORuntimeException ex) - { - LOGERROR_1(0, "ModelLoader::loadSubsytemFile: Exception caught: %s", ex.getMessageText()); - } - - LOGEXIT(1, "ModelLoader::loadSubsystemFile"); - } - - // =============== - // mapSubsystem: - // =============== - void ModelLoader::mapSubsystem(DataObjectPtr root) - { - LOGENTRY(1, "ModelLoader::mapSubsystem"); - - LOGINFO_1(2, "ModelLoader::mapSubsystem: Loaded subsystem: %s", root->getCString("name")); - - Subsystem* subsystem; - subsystem = system->addSubsystem(root->getCString("name")); - - DataObjectList& Modules = root->getList("moduleComponent"); - LOGINFO_1(2, "ModelLoader::mapSubsystem: number of module components: %d", Modules.size()); - - // Iterate over module components - for (int i=0; i<Modules.size(); i++) - { - // Add each module component to the subsystem - Module* Module; - Module = subsystem->addModuleComponent(Modules[i]->getCString("name"), Modules[i]->getCString("module")); - } - - - /// @todo Add external services and entry points - - - LOGEXIT(1, "ModelLoader::mapSubsystem"); - } - - - // ===================================================================== - // loadModules: - // Load all the modules from any directory below the configuration root. - // Translate the module information to the runtime information - // ===================================================================== - void ModelLoader::loadModules(const string& configurationRoot) - { - // Get all the sca.module files in the module - LOGENTRY(1, "ModelLoader::loadModules"); - Files files(configurationRoot, "sca.module", true); - for (unsigned int i=0; i < files.size(); i++) - { - loadModuleFile(files[i]); - } - LOGEXIT(1, "ModelLoader::loadModules"); - } - - - // ==================================================================== - // loadModuleFile: - // This method is called for each sca.module file found in the module - // folder structure - // The location of this module file will indicate the root of a module - // ==================================================================== - void ModelLoader::loadModuleFile(const File& file) - { - LOGENTRY(1, "ModelLoader::loadModuleFile"); - LOGINFO_1(2, "module filename: %s", file.getFileName().c_str()); - - try - { - string filename = file.getDirectory() + "/" + file.getFileName(); - - XMLDocumentPtr moduleFile = getXMLHelper()->loadFile(filename.c_str()); - if (moduleFile->getRootDataObject() == 0) - { - LOGERROR_1(0, "ModelLoader::loadModuleFile: Unable to load file: %s", filename.c_str()); - } - else - { - string moduleName = moduleFile->getRootDataObject()->getCString("name"); - mapModule(moduleName, moduleFile->getRootDataObject(), file.getDirectory()); - - // -------------------------------------------------------------- - // Load any module Fragments in the same folder as the sca.module - // -------------------------------------------------------------- - Files files(file.getDirectory(), "*.fragment", false); - for (unsigned int i=0; i < files.size(); i++) - { - filename = file.getDirectory() + "/" + files[i].getFileName(); - moduleFile = getXMLHelper()->loadFile(filename.c_str()); - if (moduleFile->getRootDataObject() == 0) - { - LOGERROR_1(0, "ModelLoader::loadModuleFile: Unable to load file: %s", filename.c_str()); - } - else - { - mapModule(moduleName, moduleFile->getRootDataObject(), file.getDirectory()); - } - } - - // Load the xsd types and wsdl files in the module - loadModuleConfig(file.getDirectory(), moduleName); - } - - } catch (SDORuntimeException ex) - { - LOGERROR_1(0, "ModelLoader::loadModuleFile: Exception caught: %s", ex.getMessageText()); - } - - LOGEXIT(1, "ModelLoader::loadModuleFile"); - } - - // =========== - // mapModule - // =========== - void ModelLoader::mapModule(const string& moduleName, DataObjectPtr root, string moduleRootDir) - { - LOGENTRY(1, "ModelLoader::mapModule"); - - LOGINFO_2(2, "ModelLoader::mapModule: Loading module: %s, root Dir: %s", moduleName.c_str(), moduleRootDir.c_str()); - - // Find the ModuleComponent(s) that refer to this module. If a ModuleComponent does not refer to this - // module then ignore it - MODULE_LIST moduleList = system->findModules(moduleName); - MODULE_LIST::iterator moduleIter; - - for (moduleIter = moduleList.begin(); - moduleIter != moduleList.end(); - moduleIter++ ) - { - LOGINFO_1(2, "ModelLoader::mapModule: Loading module details for module component: %s", (*moduleIter)->getName().c_str()); - - string message; // for exceptions - // Set module root - (*moduleIter)->setRoot(moduleRootDir); - - // ---------------------------- - // Add components to the module - // ---------------------------- - DataObjectList& componentList = root->getList("component"); - int i; - for (i=0; i < componentList.size(); i++) - { - addComponent(*moduleIter, componentList[i]); - } - - // ------------ - // Entry points - // ------------ - DataObjectList& entryPointList = root->getList("entryPoint"); - for (i=0; i < entryPointList.size(); i++) - { - addEntryPoint(*moduleIter, entryPointList[i]); - } - - - // ----------------- - // External services - // ----------------- - DataObjectList& externalServiceList = root->getList("externalService"); - for (i=0; i < externalServiceList.size(); i++) - { - addExternalService(*moduleIter, externalServiceList[i]); - } - - // ----- - // Wires - // ----- - DataObjectList& wireList = root->getList("wire"); - for (int l=0; l < wireList.size(); l++) - { - string source = wireList[l]->getCString("sourceUri"); - string target = wireList[l]->getCString("targetUri"); - (*moduleIter)->addWire(source, target); - } - - } - - LOGEXIT(1, "ModelLoader::mapModule"); - } - - // ================================= - // addComponent: - // ================================= - void ModelLoader::addComponent(Module* module, DataObjectPtr componentDO) - { - Component* component = module->addComponent(componentDO->getCString("name")); - - string message; - - // ------------------- - // Implementation type - // ------------------- - DataObjectPtr impl = componentDO->getDataObject("implementation"); - if (!impl) - { - message = "No implementation for component: "; - message = message + componentDO->getCString("name"); - throw SystemConfigurationException(message.c_str()); - } - // Determine the type - string componentTypeName; - string componentTypePath; - string implType = impl->getType().getName(); - if (implType == "CPPImplementation") - { - string dll = impl->getCString("dll"); - string header = impl->getCString("header"); - string className = impl->getCString("class"); - CPPImplementation* cppImpl = new CPPImplementation(dll, header, className); - componentTypePath = cppImpl->getHeaderPath(); - componentTypeName = cppImpl->getHeaderStub(); - component->setImplementation(cppImpl); - - } - else if (implType == "JavaImplementation") - { - } - - // ----------------------- - // Load the .componentType - // ----------------------- - string typeFileName = module->getRoot() + "/" + componentTypePath + componentTypeName + ".componentType"; - try - { - XMLDocumentPtr componentTypeFile = getXMLHelper()->loadFile(typeFileName.c_str()); - if (componentTypeFile->getRootDataObject() == 0) - { - LOGERROR_1(0, "ModelLoader::mapModule: Unable to load file: %s", typeFileName.c_str()); - } - else - { - //Utils::printDO(componentTypeFile->getRootDataObject()); - //commonj::sdo::SDOUtils::printDataObject(componentTypeFile->getRootDataObject()); - addServices(component, componentTypeFile->getRootDataObject()); - addReferences(component, componentTypeFile->getRootDataObject()); - addProperties(component, componentTypeFile->getRootDataObject()); - } - } catch (SDORuntimeException& ex) - { - LOGERROR_1(0, "ModelLoader::mapModule: Exception caught: %s", ex.getMessageText()); - throw SystemConfigurationException(ex.getMessageText()); - } - - // ---------- - // Properties - // ---------- - DataObjectPtr props = componentDO->getDataObject("properties"); - component->addProperties(props); - - // ---------- - // References - // ---------- - DataObjectPtr refs = componentDO->getDataObject("references"); - if (refs) - { - PropertyList pl = refs->getInstanceProperties(); - for (int refI=0; refI < pl.size(); refI++) - { - // ---------------------------------------------------------- - // Add the reference to the module wires to be resolved later - // ---------------------------------------------------------- - string refName = pl[refI].getName(); - if (!component->findReference(pl[refI].getName())) - { - // Configuration error: reference is not defined - message = "Undefined reference: " + refName; - throw SystemConfigurationException(message.c_str()); - } - - string src = component->getName() + "/" + refName; - - // The reflist below is a list of open data objects - DataObjectList& reflist = refs->getList(pl[refI]); - for (int refslistI=0; refslistI<reflist.size(); refslistI++) - { - // Get the reference value - string refValue = reflist.getDataObject(refslistI)->getSequence()->getCStringValue(0); - module->addWire(src, refValue); - } - } - } - } - - - // ===================================================================== - // addServices: add the services from the componentType to the component - // ===================================================================== - void ModelLoader::addServices(Component* component, DataObjectPtr componentType) - { - DataObjectList& services = componentType->getList("service"); - for (int i=0; i<services.size(); i++) - { - Service* service = component->addService(services[i]->getCString("name")); - service->setInterface(getInterface(services[i])); - } - } - - // =================================================== - // addReferences: add the references to the component - // =================================================== - void ModelLoader::addReferences(Component* component, DataObjectPtr componentType) - { - DataObjectList& refs = componentType->getList("reference"); - for (int i=0; i<refs.size(); i++) - { - ServiceReference* serviceRef = component->addReference(refs[i]->getCString("name")); - string multiplicity = "1..1"; - if (refs[i]->isSet("multiplicity")) - { - multiplicity = refs[i]->getCString("multiplicity"); - } - serviceRef->setMultiplicity(multiplicity); - serviceRef->setInterface(getInterface(refs[i])); - } - } - - - // ============== - // getInterface - // ============== - Interface* ModelLoader::getInterface(DataObjectPtr obj) - { - // ----------------- - // get the interface - // ----------------- - DataObjectPtr iface = obj->getDataObject("interface"); - if (!iface) - { - string message = "No interface for: "; - message = message + obj->getCString("name"); - throw SystemConfigurationException(message.c_str()); - } - - // Determine the type - string componentTypeName; - string ifType = iface->getType().getName(); - if (ifType == "CPPInterface") - { - string header = iface->getCString("header"); - string className = iface->getCString("class"); - string scope = iface->getCString("scope"); - bool remotable = iface->getBoolean("remotable"); - - return new CPPInterface(header, className, scope, remotable); - } - else - { - // Error? - return 0; - } - } - - // ============================================== - // addProperties: add Properties to the component - // ============================================== - void ModelLoader::addProperties(Component* component, DataObjectPtr componentType) - { - DataObjectList& props = componentType->getList("property"); - for (int i=0; i<props.size(); i++) - { - string name = props[i]->getCString("name"); - string type = props[i]->getCString("type"); - bool many=false; - if (props[i]->isSet("many")) - { - many = props[i]->getBoolean("many"); - } - - bool required=false; - if (props[i]->isSet("required")) - { - many = props[i]->getBoolean("required"); - } - - const char* defaultValue = 0; - if (props[i]->isSet("default")) - { - defaultValue = props[i]->getCString("default"); - } - - component->addProperty(name, type, many, required, defaultValue); - } - } - - // =============================================== - // addEntryPoint: add an EntryPoint to the module - // =============================================== - void ModelLoader::addEntryPoint(Module* module, DataObjectPtr entryPointDO) - { - string message; - - //Utils::printDO(entryPointDO); - EntryPoint* entryPoint = module->addEntryPoint(entryPointDO->getCString("name")); - - string multiplicity = "1..1"; - if (entryPointDO->isSet("multiplicity")) - { - multiplicity = entryPointDO->getCString("multiplicity"); - } - - entryPoint->setMultiplicity(multiplicity); - entryPoint->setInterface(getInterface(entryPointDO)); - - DataObjectList& refs = entryPointDO->getList("reference"); - for (int i=0; i<refs.size(); i++) - { - // ---------------------------------------------------------- - // Add the reference to the module wires to be resolved later - // ---------------------------------------------------------- - string targ = refs.getCString(i); - module->addWire(entryPoint->getName(), targ); - } - - // Get binding, it will be the first and only binding - DataObjectPtr binding = entryPointDO->getList("binding")[0]; - if (!binding) - { - message = "No binding for entryPoint: "; - message = message + entryPointDO->getCString("name"); - throw SystemConfigurationException(message.c_str()); - } - - // Utils::printDO(binding); - - string uri = binding->getCString("uri"); - - // Determine the binding type - string bindingType = binding->getType().getName(); - if (bindingType == "WebServiceBinding") - { - string port = binding->getCString("port"); - - WSBinding* wsBinding = new WSBinding(uri,port); - - entryPoint->setBinding(wsBinding); - - } - else if (bindingType == "SCABinding") - { - message = "SCA binding not yet implemented. Binding is for entryPoint: "; - message = message + entryPointDO->getCString("name"); - throw SystemConfigurationException(message.c_str()); - } - } - - - // ========================================================= - // addExternalService: add an ExternalService to the module - // ========================================================= - void ModelLoader::addExternalService(Module* module, DataObjectPtr externalServiceDO) - { - string message; - - ExternalService* externalService = module->addExternalService(externalServiceDO->getCString("name")); - // Add the interface - externalService->setInterface(getInterface(externalServiceDO)); - - // Get binding, it will be the first and only binding - DataObjectPtr binding = externalServiceDO->getList("binding")[0]; - if (!binding) - { - message = "No binding for externalService: "; - message = message + externalServiceDO->getCString("name"); - throw SystemConfigurationException(message.c_str()); - } - - //Utils::printDO(binding); - - string uri = binding->getCString("uri"); - - // Determine the binding type - string bindingType = binding->getType().getName(); - if (bindingType == "WebServiceBinding") - { - string port = binding->getCString("port"); - - WSBinding* wsBinding = new WSBinding(uri,port); - - externalService->setBinding(wsBinding); - - } - else if (bindingType == "SCABinding") - { - } - } - - - - /// - /// Use the Tuscany-model.config file in the module root directory to - /// determine which xsds and wsdls to load into a dataFactory. - /// - void ModelLoader::loadModuleConfig(const string &moduleRootDir, const string &moduleName) - { - LOGENTRY(1, "ModelLoader::loadModuleConfig"); - - // Load the "Tuscany-model.config" file, if it exists - Files files(moduleRootDir, "Tuscany-model.config", false); - for (unsigned int i=0; i < files.size(); i++) - { - string filename = moduleRootDir + "/" + files[i].getFileName(); - XMLDocumentPtr moduleConfigFile = getXMLHelper()->loadFile(filename.c_str()); - if (moduleConfigFile->getRootDataObject() == 0) - { - LOGERROR_1(0, "ModelLoader::loadModuleConfig: Unable to load file: %s", filename.c_str()); - } - else - { - LOGINFO_2(2, "ModelLoader::loadModuleConfig: Loading module config for: %s, root Dir: %s", moduleName.c_str(), moduleRootDir.c_str()); - - if(moduleConfigFile->getRootDataObject()->isSet("xsd")) - { - DataObjectList& xsds = moduleConfigFile->getRootDataObject()->getList("xsd/file"); - - for (int i=0; i<xsds.size(); i++) - { - if(xsds[i]->isSet("name")) - { - // Load a xsd file -> set the types in the moduleComponents data factory file - string xsdName = moduleRootDir + "/" +xsds[i]->getCString("name"); - loadTypes(xsdName.c_str(), moduleName); - } - } - } - - - if( moduleConfigFile->getRootDataObject()->isSet("wsdl")) - { - DataObjectList& wsdls = moduleConfigFile->getRootDataObject()->getList("wsdl/file"); - for (int j=0; j<wsdls.size(); j++) - { - if(wsdls[i]->isSet("name")) - { - string wsdlName = moduleRootDir + "/" +wsdls[j]->getCString("name"); - // Load a wsdl file -> get the types, then the contents of the wsdl - loadTypes(wsdlName.c_str(), moduleName); - - // Load the contents of the wsdl files - loadWsdl(wsdlName.c_str(), moduleName); - } - } - } - } - } - - - LOGEXIT(1, "ModelLoader::loadModuleConfig"); - } - - - /// - /// Use the types from an xsd or wsdl file - /// - void ModelLoader::loadTypes(const char *fileName, const string &moduleName) - { - LOGENTRY(1, "ModelLoader::loadTypes"); - - // Load a xsd file -> set the types in the moduleComponents data factory file - - MODULE_LIST moduleList = system->findModules(moduleName); - MODULE_LIST::iterator moduleIter; - - for (moduleIter = moduleList.begin(); - moduleIter != moduleList.end(); - moduleIter++ ) - { - try { - (*moduleIter)->getXSDHelper()->defineFile(fileName); - //Utils::printTypes((*moduleIter)->getXSDHelper()->getDataFactory()); - - } catch (SDOTypeNotFoundException ex) - { - LOGERROR_1(0, "ModuleLoader: Exception caught: %s", ex.getMessageText()); - throw ex; - } - } - LOGEXIT(1, "ModelLoader::loadTypes"); - } - - /// - /// Load the web services definition from a wsdl - /// - void ModelLoader::loadWsdl(const char *fileName, const string &moduleName) - { - LOGENTRY(1, "ModelLoader::loadWsdl"); - - try { - // Load the wsdl file - XMLDocumentPtr doc = getXMLHelper()->loadFile(fileName); - - if (doc!=0 && doc->getRootDataObject()!=0) - { - //Utils::printDO(doc->getRootDataObject()); - MODULE_LIST moduleList = system->findModules(moduleName); - MODULE_LIST::iterator moduleIter; - - for (moduleIter = moduleList.begin(); - moduleIter != moduleList.end(); - moduleIter++ ) - { - // Add the root object to the module - (*moduleIter)->addWsdl(doc->getRootDataObject()); - - } - - } - else - { - LOGERROR_1(0, "ModuleLoader: Unable to load or parse WSDL %s", fileName); - } - - } catch (SDOTypeNotFoundException ex) - { - LOGERROR_1(0, "ModelLoader: SDOTypeNotFoundException caught: %s", ex.getMessageText()); - throw ex; - } - catch (SDONullPointerException ex) - { - LOGERROR_1(0, "ModelLoader: SDONullPointerException caught: %s", ex.getMessageText()); - throw ex; - } - LOGEXIT(1, "ModelLoader::loadWsdl"); - - } - - ////////////////////////////////////////////////////////////////////////////// - // Methods used to load the model into memory - ////////////////////////////////////////////////////////////////////////////// - - /// - /// Get an XSDHelper that has the appropriate XSDs already loaded - /// - const XSDHelperPtr ModelLoader::getXSDHelper() - { - if (myXSDHelper == 0) - { - - // Create an xsd helper - myXSDHelper = HelperProvider::getXSDHelper(); - - // Now add to it some xsd files - try { - string root = SCARuntime::getInstance()->getInstallRoot(); - string filename = root + "/xsd/sca.xsd"; - - myXSDHelper->defineFile(filename.c_str()); - - // Tuscany specific xsd for config files - filename = root + "/xsd/tuscany.xsd"; - myXSDHelper->defineFile(filename.c_str()); - - loadWSDLTypes(myXSDHelper); - - } catch (SDOTypeNotFoundException ex) - { - LOGERROR_1(0, "ModuleLoader: Exception caught: %s", ex.getMessageText()); - throw ex; - } - } - - - return myXSDHelper; - } - - - /// - /// Get an XMLHelper to load files - /// - const XMLHelperPtr ModelLoader::getXMLHelper() - { - if (myXMLHelper == 0) { - - // Create an xml helper - myXMLHelper = HelperProvider::getXMLHelper(getXSDHelper()->getDataFactory()); - - } - - return myXMLHelper; - } - - void ModelLoader::loadWSDLTypes(XSDHelperPtr xsdHelper) - { - DataFactoryPtr dataFactory = xsdHelper->getDataFactory(); - - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - false, true, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tDocumentation", - true, true, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tDocumented", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement", - false, false, true); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented", - false, true, true); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented", - false, true, true); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tFault", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tImport", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, false); - - - TypeDefinition tpart; - tpart.setUri("http://schemas.xmlsoap.org/wsdl/"); - tpart.setName("tPart"); - tpart.setParentType("http://schemas.xmlsoap.org/wsdl/", - "tExtensibleAttributesDocumented", false); - PropertyDefinition propdef; - propdef.setName("name"); - propdef.setLocalName("name"); - propdef.setType("commonj.sdo", "String"); - propdef.setIsContainment(true); - tpart.addPropertyDefinition(propdef); - propdef.setName("element"); - propdef.setLocalName("element"); - propdef.setIsQName(true); - tpart.addPropertyDefinition(propdef); - propdef.setName("type"); - propdef.setLocalName("type"); - tpart.addPropertyDefinition(propdef); - TypeDefinitions typedefs; - typedefs.addTypeDefinition(tpart); - xsdHelper->defineTypes(typedefs); - - //Utils::printTypes(dataFactory); - /*dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tPart", - false, false, false);*/ - - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tPort", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tService", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tTypes", - false, false, false); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "definitions", - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "import", - "http://schemas.xmlsoap.org/wsdl/", "tImport", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "types", - "http://schemas.xmlsoap.org/wsdl/", "tTypes", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "message", - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "portType", - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "binding", - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "service", - "http://schemas.xmlsoap.org/wsdl/", "tService", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "input", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "output", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "fault", - "http://schemas.xmlsoap.org/wsdl/", "tFault", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "output", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "input", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "fault", - "http://schemas.xmlsoap.org/wsdl/", "tFault", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "arrayType", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "required", - "commonj.sdo", "Boolean", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - "operation", - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - "type", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - "input", - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - "output", - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - "fault", - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "import", - "http://schemas.xmlsoap.org/wsdl/", "tImport", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "types", - "http://schemas.xmlsoap.org/wsdl/", "tTypes", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "message", - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "portType", - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "binding", - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "service", - "http://schemas.xmlsoap.org/wsdl/", "tService", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "targetNamespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDocumented", - "documentation", - "http://schemas.xmlsoap.org/wsdl/", "tDocumentation", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement", - "required", - "commonj.sdo", "Boolean", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented", - "http://schemas.xmlsoap.org/wsdl/", "tDocumented"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented", - "http://schemas.xmlsoap.org/wsdl/", "tDocumented"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tFault", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tFault", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tFault", - "message", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tImport", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tImport", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tImport", - "location", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - "part", - "http://schemas.xmlsoap.org/wsdl/", "tPart", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "input", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "output", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "fault", - "http://schemas.xmlsoap.org/wsdl/", "tFault", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "parameterOrder", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tParam", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tParam", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tParam", - "message", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tPart", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); - /*dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPart", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPart", - "element", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPart", - "type", - "commonj.sdo", "URI", - false, false, true);*/ - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tPort", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPort", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPort", - "binding", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - "operation", - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tService", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tService", - "port", - "http://schemas.xmlsoap.org/wsdl/", "tPort", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tService", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tTypes", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - false, false, true); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, false); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "binding", - "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "operation", - "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "body", - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "fault", - "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "header", - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "message", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "part", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "headerfault", - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "address", - "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", - "location", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", - "transport", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", - "style", - "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - "parts", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "required", - "commonj.sdo", "Boolean", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "parts", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "headerfault", - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "message", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "part", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - "message", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - "part", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", - "soapAction", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", - "style", - "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", - "commonj.sdo", "String"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - "commonj.sdo", "String"); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "addressType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "operationType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "urlEncoded", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "urlReplacement", - false, false, false); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - "address", - "http://schemas.xmlsoap.org/wsdl/http/", "addressType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - "binding", - "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - "operation", - "http://schemas.xmlsoap.org/wsdl/http/", "operationType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - "urlEncoded", - "http://schemas.xmlsoap.org/wsdl/http/", "urlEncoded", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - "urlReplacement", - "http://schemas.xmlsoap.org/wsdl/http/", "urlReplacement", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/http/", "addressType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "addressType", - "location", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", - "verb", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/http/", "operationType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "operationType", - "location", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/mime/", "tPart", - false, true, false); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", - "content", - "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", - "multipartRelated", - "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", - "mimeXml", - "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", - "type", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", - "part", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", - "part", - "http://schemas.xmlsoap.org/wsdl/mime/", "tPart", - true, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", - "part", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "tPart", - "name", - "commonj.sdo", "String", - false, false, true); - - - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "RootType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tAddress", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tBinding", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tBody", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tExtensibilityElementOpenAttrs", - false, true, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tFault", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tFaultRes", - false, false, true); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tHeader", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tHeaderFault", - false, true, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tOperation", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tParts", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tStyleChoice", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "useChoice", - false, false, false); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tAddress", - "http://schemas.xmlsoap.org/wsdl/soap12/", "tExtensibilityElementOpenAttrs"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tBinding", - "http://schemas.xmlsoap.org/wsdl/soap12/", "tExtensibilityElementOpenAttrs"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tBody", - "http://schemas.xmlsoap.org/wsdl/soap12/", "tExtensibilityElementOpenAttrs"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tExtensibilityElementOpenAttrs", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tFault", - "http://schemas.xmlsoap.org/wsdl/soap12/", "tFaultRes"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tFaultRes", - "http://schemas.xmlsoap.org/wsdl/soap12/", "tBody"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tHeader", - "http://schemas.xmlsoap.org/wsdl/soap12/", "tExtensibilityElementOpenAttrs"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tOperation", - "http://schemas.xmlsoap.org/wsdl/soap12/", "tExtensibilityElementOpenAttrs"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "tStyleChoice", - "commonj.sdo", "String"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap12/", "useChoice", - "commonj.sdo", "String"); - } - - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ModelLoader.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ModelLoader.h deleted file mode 100644 index 97478748e9..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ModelLoader.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_modelloader_h -#define tuscany_sca_model_modelloader_h - -#include "osoa/sca/export.h" -#include "commonj/sdo/SDO.h" -using commonj::sdo::DataObjectPtr; -using commonj::sdo::DataFactoryPtr; -using commonj::sdo::XSDHelperPtr; - -#include "tuscany/sca/model/System.h" -#include "tuscany/sca/model/Subsystem.h" - -#include "tuscany/sca/util/File.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Provides methods to load the runtime model from the SCDL file. - */ - class ModelLoader { - public: - /** - * Constructor. - * @param system The SCA system to load. - */ - ModelLoader(System* system); - - /** - * Destructor. - */ - virtual ~ModelLoader(); - - /** - * Load the model from the configuration information. - * @param configurationRoot The location of the deployed SCA - * modules and subsystems. - */ - void load(const string& configurationRoot); - - private: - System* system; - void loadModule(const char *moduleRoot); - - - commonj::sdo::XMLHelperPtr myXMLHelper; // Used to load scdl files - commonj::sdo::XSDHelperPtr myXSDHelper; // Used to load xsds - const commonj::sdo::XSDHelperPtr getXSDHelper(void); - const commonj::sdo::XMLHelperPtr getXMLHelper(void); - - void loadSubsystems(const string& configurationRoot); - void loadSubsystemFile(const File& file); - void mapSubsystem(commonj::sdo::DataObjectPtr rootDO); - - void loadModules(const string& configurationRoot); - void loadModuleFile(const File& file); - void mapModule(const string& moduleName, commonj::sdo::DataObjectPtr rootDO, std::string moduleRootDir); - - void addComponent(Module* module, DataObjectPtr componentDO); - void addEntryPoint(Module* module, DataObjectPtr entryPointDO); - void addExternalService(Module* module, DataObjectPtr externalServiceDO); - - void addServices(Component* component, DataObjectPtr componentType); - void addReferences(Component* component, DataObjectPtr componentType); - void addProperties(Component* component, DataObjectPtr componentType); - - - void loadModuleConfig(const string &moduleRootDir, const string &moduleName); - void loadTypes(const char *fileName, const string &moduleName); - void loadWsdl(const char *fileName, const string &moduleName); - - void loadWSDLTypes(XSDHelperPtr xsdHelper); - - Interface* getInterface(DataObjectPtr obj); - - - }; - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_modelloader_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Module.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Module.cpp deleted file mode 100644 index fc8b6b1eb8..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Module.cpp +++ /dev/null @@ -1,235 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Module.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Module::Module(const std::string& moduleName) - : name(moduleName) - { - LOGENTRY(1, "Module::constructor"); - LOGEXIT(1, "Module::constructor"); - } - - Module::~Module() - { - } - - void Module::setRoot(const std::string& rootDirectory) - { - moduleRoot = rootDirectory; - } - - - /// - /// Add a new component to the module component - /// - Component* Module::addComponent(const std::string& name) - { - LOGENTRY(1, "Module::addComponent"); - Component* newComponent = new Component(name, this); - components[name] = newComponent; - LOGEXIT(1, "Module::addComponent"); - return newComponent; - } - - Component* Module::findComponent(const std::string& name) - { - LOGENTRY(1, "Module::findComponent"); - Component* foundComponent = components[name]; - LOGEXIT(1, "Module::findComponent"); - return foundComponent; - } - - Service* Module::findComponentService(const std::string& name) - { - LOGENTRY(1, "Module::findComponentService"); - - Service* service = 0; - - string componentName; - string serviceName; - Utils::tokeniseUri(name, componentName, serviceName); - - // Locate the component - Component* foundComponent = components[componentName]; - if (foundComponent) - { - // Locate the service - service = foundComponent->findService(serviceName); - } - LOGEXIT(1, "Module::findComponentService"); - return service; - } - - ExternalService* Module::findExternalService(const std::string& name) - { - LOGENTRY(1, "Module::findExternalService"); - ExternalService* foundService = externalServices[name]; - LOGEXIT(1, "Module::findExternalService"); - return foundService; - } - - - EntryPoint* Module::addEntryPoint(const std::string& name) - { - LOGENTRY(1, "Module::addEntryPoint"); - EntryPoint* ep = new EntryPoint(name); - entryPoints[name] = ep; - LOGEXIT(1, "Module::addEntryPoint"); - return findEntryPoint(name); - } - - EntryPoint* Module::findEntryPoint(const std::string& name) - { - return entryPoints[name]; - } - - - ExternalService* Module::addExternalService(const std::string& name) - { - LOGENTRY(1, "Module::addExternalService"); - ExternalService* es = new ExternalService(name, this); - externalServices[name] = es; - LOGEXIT(1, "Module::addExternalService"); - return es; - } - - void Module::addWire(const std::string& source, const std::string& target) - { - LOGENTRY(1, "Module::addWire"); - wires.push_back(Wire(source, target)); - LOGEXIT(1, "Module::addWire"); - } - - - void Module::resolveWires() - { - LOGENTRY(1, "Module::resolveWires"); - for (WIRES::iterator iter = wires.begin(); - iter != wires.end(); - iter++) - { - // ----------------- - // Locate the target - // ----------------- - WireTarget* target = findComponentService(iter->getTarget()); - if (!target) - { - target = findExternalService(iter->getTarget()); - } - if (!target) - { - LOGERROR_1(0, "Module::resolveWires: Wire target %s not found", iter->getTarget().c_str()); - } - else - { - EntryPoint* entrypoint = findEntryPoint(iter->getSourceComponent()); - if (entrypoint) - { - entrypoint->addTarget(target); - } - else - { - Component* component = findComponent(iter->getSourceComponent()); - if (component) - { - ServiceReference* serviceReference = component->findReference(iter->getSourceReference()); - if (serviceReference) - { - serviceReference->addTarget(target); - } - else - { - LOGERROR_1(0, "Module::resolveWires: Wire source reference %s not found", iter->getSourceReference().c_str()); - } - } - else - { - LOGERROR_1(0, "Module::resolveWires: Wire source %s not found", iter->getSourceComponent().c_str()); - } - } - } - } - - LOGEXIT(1, "Module::resolveWires"); - } - - - - void Module::addWsdl(commonj::sdo::DataObjectPtr wsdlModel) - { - LOGENTRY(1, "Module::addWsdl"); - Wsdl* wsdl = new Wsdl(wsdlModel); - wsdls[wsdl->getNamespace()] = wsdl; - LOGEXIT(1, "Module::addWsdl"); - - } - - Wsdl* Module::findWsdl(const std::string& wsdlNamespace ) - { - return wsdls[wsdlNamespace]; - - } - - - // Get an XSDHelper - one will be created for each module - commonj::sdo::XSDHelperPtr Module::getXSDHelper() - { - if (xsdHelper == 0) - { - xsdHelper = commonj::sdo::HelperProvider::getXSDHelper(); - } - - return xsdHelper; - } - - // Get an XMLHelper - one will be created for each module - commonj::sdo::XMLHelperPtr Module::getXMLHelper() - { - if (xmlHelper == 0) - { - xmlHelper = commonj::sdo::HelperProvider::getXMLHelper(getXSDHelper()->getDataFactory()); - } - - return xmlHelper; - } - - - // Get a data factory - the one in the xsd/xml helper - commonj::sdo::DataFactoryPtr Module::getDataFactory() - { - return getXSDHelper()->getDataFactory(); - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Module.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Module.h deleted file mode 100644 index f73f1d36bc..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Module.h +++ /dev/null @@ -1,235 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_module_h -#define tuscany_sca_model_module_h - -#include <string> -using std::string; - -#include <map> -using std::map; -#include <vector> -using std::vector; - -#include "commonj/sdo/SDO.h" - - -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ExternalService.h" -#include "tuscany/sca/model/EntryPoint.h" -#include "tuscany/sca/model/Wire.h" -#include "tuscany/sca/model/Wsdl.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - /** - * Information about a module. - */ - class Module - { - public: - /** - * Constructor. - * @param name the name of the module. - */ - Module(const std::string& name); - - /** - * Destructor. - */ - virtual ~Module(); - - /** - * Set the root directory of the module information. - * @param rootDirectory The root of the module in the file system. - */ - void setRoot(const std::string& rootDirectory); - - /** - * Get the root directory of the module. - * @return The root of the module in the file system. - */ - const std::string& getRoot() {return moduleRoot;} - - /** - * Return the name of the module. - * @return Name of the module. - */ - const std::string& getName() {return name;} - - /** - * Add a new component to the module. - * @param componentName The name of the new component. - * @return The Component added to the module. - */ - Component* addComponent(const std::string& componentName); - - /** - * Add a new entry point to the module. - * @param name The name of the new entry point. - * @return The entry point added to the module. - */ - EntryPoint* addEntryPoint(const std::string& name); - - /** - * Find an entry point by name. - * @param name The name of the entry point to be found. - * @return The entry point that was found, or 0 if not found. - */ - EntryPoint* findEntryPoint(const std::string& name); - - /** - * Add a new external service to the module. - * @param name The name of the new external service. - * @return The external service added to the module. - */ - ExternalService* addExternalService(const std::string& name); - - /** - * Add a wire to the model. - * @param source The source location. Either the source component and - * reference (optional), or an entry point. - * @param target The target location. Either the target component and - * service (optional), or an external service. - */ - void addWire(const std::string& source, const std::string& target); - - /** - * Find a component by name. - * @param componentName The name of the component to be found. - * @return The component that was found, or 0 if not found. - */ - Component* findComponent(const std::string& componentName); - - /** - * Find a component and service by name. - * @param componentServiceName A string of the form - * "componentName"/"serviceName" where the service name is optional - * if there is only one service on the component. - * @return The Service that was found, or 0 if not found. - */ - Service* findComponentService(const std::string& componentServiceName); - - /** - * Find an external service by name. - * @param serviceName The name of the external service to be found. - * @return The external service that was found, or 0 if not found. - */ - ExternalService* findExternalService(const std::string& serviceName); - - /** - * Add a WSDL definition to the module. - * @param wsdlModel A data object holding all the information about - * the WSDL definition from a WSDL file. - */ - void addWsdl(commonj::sdo::DataObjectPtr wsdlModel); - - /** - * Find a WSDL definition by target namespace. - * @param wsdlNamespace The namespace of the WSDL definitions to find. - */ - Wsdl* findWsdl(const std::string& wsdlNamespace); - - /** - * Return a cached SDO XSDHelper. - */ - commonj::sdo::XSDHelperPtr getXSDHelper(void); - - /** - * Return a cached SDO XMLHelper. - */ - commonj::sdo::XMLHelperPtr getXMLHelper(void); - - /** - * Return a data factory which has all the types defined in XSDs and - * WSDL files configured for this module. - * @return The data factory for this module. - */ - commonj::sdo::DataFactoryPtr getDataFactory(void); - - /** - * Work through the list of wires and connect the source and target uris. - */ - void resolveWires(); - - private: - /** - * Name of the module. - */ - string name; - - /** - * Directory of the root of the module. - */ - string moduleRoot; - - /** - * Cached XSDHelper. - */ - commonj::sdo::XSDHelperPtr xsdHelper; - - /** - * Cached XMLHelper. - */ - commonj::sdo::XMLHelperPtr xmlHelper; - - typedef map<std::string, Component*> COMPONENT_MAP; - /** - * Map (by name) of all the components in this module. - */ - COMPONENT_MAP components; - - typedef map<std::string, ExternalService*> EXTERNALSERVICE_MAP; - /** - * Map (by name) of all the external services in this module. - */ - EXTERNALSERVICE_MAP externalServices; - - typedef map<std::string, EntryPoint*> ENTRYPOINT_MAP; - /** - * Map (by name) of all the entry points in this module. - */ - ENTRYPOINT_MAP entryPoints; - - typedef vector<Wire> WIRES; - /** - * Vector of all the wires in this module. - */ - WIRES wires; - - typedef map<std::string, Wsdl*> WSDL_MAP; - /** - * Map by namespace of all the wsdl definitions in this module. - */ - WSDL_MAP wsdls; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // SCA_ModuleComponent_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Service.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Service.cpp deleted file mode 100644 index 42ccecbc99..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Service.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Service.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Constructor - Service::Service(const std::string& serviceName, Component* comp) - : WireTarget(serviceName), - component(comp) - { - LOGENTRY(1, "Service::constructor (Component)"); - LOGINFO_1(3, "Service::constructor: Service name: %s", serviceName.c_str()); - LOGEXIT(1, "Service::constructor"); - } - - Service::~Service() - { - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Service.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Service.h deleted file mode 100644 index 6c37dabb3e..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Service.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_service_h -#define tuscany_sca_model_service_h - -#include <string> -using std::string; - -#include "tuscany/sca/model/WireTarget.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - class Component; - - /** - * Information about a service defined on a component. - */ - class Service : public WireTarget - { - public: - /** - * Destructor. - */ - virtual ~Service(); - - /** - * Return the type of the wire target. - * @return Always returns ComponentServiceType. - */ - virtual Type getServiceType() {return ComponentServiceType;} - - /** - * Get the component on which this service is defined. - * @return The component on which this service is defined. - */ - Component* getComponent() {return component;} - - - private: - friend class Component; - /** - * Constructor. - * @param name The name of the service. - * @param component The component on which this service is defined. - */ - Service(const std::string& name, Component* component); - - /** - * The component on which this service is defined. - */ - Component* component; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_service_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ServiceReference.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ServiceReference.cpp deleted file mode 100644 index cada38dec2..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ServiceReference.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/model/ServiceReference.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Constructor - ServiceReference::ServiceReference(const std::string& referenceName) - : name(referenceName), multiplicity(ONE_ONE) - { - } - - ServiceReference::~ServiceReference() - { - } - - void ServiceReference::addTarget(WireTarget* targ) - { - if (multiplicity == ONE_ONE || multiplicity == ZERO_ONE) - { - if (targets.size() > 0) - { - // throw exception - string message = "Duplicate wire for reference: " + name; - throw SystemConfigurationException(message.c_str()); - } - } - - targets.push_back(targ); - } - - void ServiceReference::setMultiplicity(const std::string& multip) - { - if (multip == "0..1") - { - multiplicity = ZERO_ONE; - } - else if (multip == "1..1") - { - multiplicity = ONE_ONE; - } - else if (multip == "0..n") - { - multiplicity = ZERO_MANY; - } - else if (multip == "1..n") - { - multiplicity = ONE_MANY; - } - else - { - string msg = "Invalid multiplicity specified, " + multip + ", for reference: " +name; - throw SystemConfigurationException(msg.c_str()); - } - } - - void ServiceReference::setInterface(Interface* interf) - { - iface = interf; - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ServiceReference.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ServiceReference.h deleted file mode 100644 index 062d7a4c19..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/ServiceReference.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_servicereference_h -#define tuscany_sca_model_servicereference_h - -#include <string> -using std::string; -#include <vector> -using std::vector; - -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/model/WireTarget.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about a reference on a serivce. - */ - class ServiceReference - { - public: - /** - * Constructor. - * @param name The name of the reference. - */ - ServiceReference(const std::string& name) - - /** - * Destructor. - */; - virtual ~ServiceReference(); - - /** - * Get the name of the service. - * @return The name of the service. - */ - const std::string& getName() {return name;} - - /** - * Multiplicity (how many wires can be attached to this - * reference as their source) - */ - enum Multiplicity - { - ZERO_ONE, - ONE_ONE, - ZERO_MANY, - ONE_MANY - }; - - /** - * Set the multiplicity of this reference. - * @param multiplicity One of "0..1", "1..1", "0..n", "1..n" - */ - void setMultiplicity(const std::string& multiplicity); - - /** - * Get the multiplicity of this reference. - * @return The multiplicity. - */ - Multiplicity getMultiplicity() {return multiplicity;} - - /** - * Set the interface required by this reference. - * @param iface The interface. - */ - void setInterface(Interface* iface); - - /** - * Get the interface. - * @return The interface. - */ - Interface* getInterface() {return iface;} - - /** - * Add a target for a reference. There may be more than - * one if the multiplicity is 0..n or 1..n. - * @param target The target for a wire. - */ - void addTarget(WireTarget* target); - typedef vector<WireTarget*> TARGETS; - - /** - * Get a vector of all the targets from this reference. - * @return The targets of this reference. - */ - const TARGETS& getTargets() {return targets;} - private: - /** - * Name of this reference. - */ - string name; - - /** - * The interface defining this reference. - */ - Interface* iface; - - /** - * The multiplicity of this reference. - */ - Multiplicity multiplicity; - - /** - * Vector of all the targets wired from this reference. - */ - TARGETS targets; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_servicereference_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Subsystem.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Subsystem.cpp deleted file mode 100644 index 08ef0dde49..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Subsystem.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Subsystem.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - Subsystem::Subsystem(const std::string& subsystemName) : name(subsystemName) - { - LOGENTRY(1, "Subsystem::constructor"); - - - LOGEXIT(1, "Subsystem::constructor"); - } - - Subsystem::~Subsystem() - { - } - - /// - /// Add a new module component - /// - Module* Subsystem::addModuleComponent(const std::string& name, const std::string& moduleName) - { - LOGENTRY(1, "Subsystem::addModuleComponent"); - - Module* newModule = new Module(moduleName); - - // TODO: Should check for duplicates and throw exception - moduleComponents[name] = newModule; - - LOGEXIT(1, "Subsystem::addModuleComponent"); - - return newModule; - } - - Module* Subsystem::findModule(const std::string& moduleName) - { - for (MODULECOMPONENT_MAP::iterator moduleComponentIter = moduleComponents.begin(); - moduleComponentIter != moduleComponents.end(); - moduleComponentIter++) - { - if (moduleName == moduleComponentIter->second->getName()) - { - return (Module*)moduleComponentIter->second; - } - } - return 0; - } - - Module* Subsystem::findModuleByComponentName(const std::string& moduleComponentName) - { - return moduleComponents[moduleComponentName]; - } - - Module* Subsystem::getDefaultModule() - { - if (moduleComponents.size() == 1) - { - MODULECOMPONENT_MAP::iterator moduleComponentIter = moduleComponents.begin(); - return moduleComponentIter->second; - } - return 0; - } - - /// - /// Add a new entrypoint - /// - EntryPoint* Subsystem::addEntryPoint(const std::string& name) - { - LOGENTRY(1, "Subsystem::addEntryPoint"); - - EntryPoint* newEntryPoint = new EntryPoint(name); - entryPoints[name] = newEntryPoint; - LOGEXIT(1, "Subsystem::addEntryPoint"); - return findEntryPoint(name); - } - - EntryPoint* Subsystem::findEntryPoint(const std::string& name) - { - return entryPoints[name]; - } - - void Subsystem::resolveWires() - { - for (MODULECOMPONENT_MAP::iterator moduleComponentIter = moduleComponents.begin(); - moduleComponentIter != moduleComponents.end(); - moduleComponentIter++) - { - moduleComponentIter->second->resolveWires(); - } - - // Resolve EntryPoint wires - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Subsystem.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Subsystem.h deleted file mode 100644 index b3c59898eb..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Subsystem.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_h -#define tuscany_sca_model_h - -#include <string> -using std::string; -#include <map> -using std::map; - -#include "tuscany/sca/model/Module.h" -#include "tuscany/sca/model/EntryPoint.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about a subsystem. - */ - class Subsystem { - public: - /** - * Constructor. - * @param name The name of the subsystem. - */ - Subsystem(const std::string& name); - - /** - * Destructor. - */ - virtual ~Subsystem(); - - /** - * Add a new module component to the subsystem. - * @param name The name of the module component. - * @param moduleName The name of the module. - * @return The new Module added to the subsystem. - */ - Module* addModuleComponent(const std::string& name, const std::string& moduleName); - - /** - * Find a module by module name. - * @param moduleName The name of the module to be found. - * @return The Module that was found, or 0 if not found. - */ - Module* findModule(const std::string& moduleName); - - /** - * Find a module by the module component name. - * @param moduleComponentName The module component name to be used to find - * the module. - * @return The Module that was found, or 0 if not found. - */ - Module* findModuleByComponentName(const std::string& moduleComponentName); - - /** - * Get the default module set for this subsystem. - * @return The default module. - */ - Module* getDefaultModule(); - - /** - * Add an new entry point to the subsystem. - * @param name The name of the entry point. - * @return The new EntryPoint added to the subsystem. - */ - EntryPoint* addEntryPoint(const std::string& name); - - /** - * Find an entry point by name. - * @param name The name of the entry point to be found. - * @return The EntryPoint that was found, or 0 if not found. - */ - EntryPoint* findEntryPoint(const std::string& name); - - /** - * Return the name of the subsystem. - * @return The name. - */ - const std::string& getName() {return name;} - - /** - * Resolve all the wires configured in all the modules in this - * subsystem. - */ - void resolveWires(); - - private: - /** - * The name of the subsystem. - */ - std::string name; - - typedef std::map<std::string, Module*> MODULECOMPONENT_MAP; - /** - * A map by module component name of modules. - */ - MODULECOMPONENT_MAP moduleComponents; - - typedef map<string, EntryPoint*> ENTRYPOINT_MAP; - /** - * A map of entry points defined in this subsystem. - */ - ENTRYPOINT_MAP entryPoints; - }; - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/System.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/System.cpp deleted file mode 100644 index dfc4a21b1c..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/System.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/System.h" - - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // ============ - // Constructor - // ============ - System::System() - { - LOGENTRY(1, "System::constructor"); - - - LOGEXIT(1, "System::constructor"); - } - - System::~System() - { - SUBSYSTEM_MAP::iterator subsystemsIter; - for (subsystemsIter = subsystemMap.begin(); - subsystemsIter != subsystemMap.end(); - subsystemsIter++ ) - { - delete subsystemsIter->second; - } - } - - // ================================= - // Add a new subsystem to the system - // ================================= - Subsystem* System::addSubsystem(const std::string& name) - { - LOGENTRY(1, "System::addSubsystem"); - - Subsystem* newSubsystem = new Subsystem(name); - - subsystemMap[name] = newSubsystem; - - LOGEXIT(1, "System::addSubsystem"); - - return newSubsystem; - } - - // ==================================================================== - // Get a map of all the moduleComponents that use a particular module - // ==================================================================== - MODULE_LIST System::findModules(const std::string& name) - { - LOGENTRY(1, "System::findModules"); - MODULE_LIST foundModules; - - SUBSYSTEM_MAP::iterator subsystemsIter; - for (subsystemsIter = subsystemMap.begin(); - subsystemsIter != subsystemMap.end(); subsystemsIter++ ) { - LOGINFO_1(2, "System::findModules: Found subsystem: %s", subsystemsIter->second->getName().c_str()); - // In each subsystem, find module components with this module defined - - Module* module = subsystemsIter->second->findModule(name); - if (module) - { - LOGINFO_1(2, "System::findModules: Found module: %s", module->getName().c_str()); - foundModules.push_back(module); - } - } - LOGEXIT(1, "System::findModules"); - - return foundModules; - } - - - // ==================================================================== - // Get a map of all the moduleComponents that use a particular module - // ==================================================================== - Subsystem* System::findSubsystem(const std::string& subsystem) - { - return subsystemMap[subsystem]; - } - - void System::resolveWires() - { - SUBSYSTEM_MAP::iterator subsystemsIter; - for (subsystemsIter = subsystemMap.begin(); - subsystemsIter != subsystemMap.end(); - subsystemsIter++ ) - { - subsystemsIter->second->resolveWires(); - } - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/System.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/System.h deleted file mode 100644 index a0f62ce67a..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/System.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_system_h -#define tuscany_sca_model_system_h - -#include <map> -#include <string> -#include <vector> - -#include "tuscany/sca/model/Subsystem.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - typedef std::vector<Module*> MODULE_LIST; - - /** - * The root of the runtime model supported by a Tuscany runtime. - */ - class System { - public: - System(); - virtual ~System(); - - /** - * Add a new subsystem to the system. - * @param subsystemName The name of the new subsystem to add. - * @return The new Subsystem added to the system. - */ - Subsystem* addSubsystem(const std::string& subsystemName); - - /** - * Find subsystem by name. - * @param subsystemName The name of the subsystem to be found. - * @return The Subsystem found, or 0 if not found. - */ - Subsystem* findSubsystem(const std::string& subsystemName); - - typedef std::vector<Module*> MODULE_LIST; - - /** - * Return a vector of all the modules with a given module name. - * @param moduleName The name of the module to find - * @return A vector of all the times the module appears in the - * system. It can be more than once because the same module name - * is used by more than one module component. - */ - MODULE_LIST findModules(const std::string& moduleName); - - /** - * Resolve all the wires defined in the system. - */ - void resolveWires(); - - private: - - typedef std::map<std::string, Subsystem*> SUBSYSTEM_MAP; - - /** - * Map by name of subsystems. - */ - SUBSYSTEM_MAP subsystemMap; - }; - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_system_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WSBinding.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WSBinding.cpp deleted file mode 100644 index 85cb7482bd..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WSBinding.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/WSBinding.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - WSBinding::WSBinding(const string& uri, const string& port) - : Binding(uri), port(port) - { - - // Port is of the form: <wsdl-namepace-uri>#wsdl.endpoint(<service-name>/<port-name>) - string::size_type hash = port.find("#"); - if (hash != string::npos) - { - // Found a hash - - // Namepace is the part before the # - wsdlNamespaceURL = port.substr(0, hash); - - - if ( (hash+1) < port.length()) - { - // Check the next part is wsdl.endpoint( - int ending = hash+15; - string check = port.substr(hash+1, 14); - if (check.compare("wsdl.endpoint(") == 0) - { - // Find the matching ) - int endBracket = port.find(")",ending); - if (endBracket-1 > ending+1) - { - string serviceAndPort = port.substr(ending, endBracket-ending); - // Look for a '/' - string::size_type slash = serviceAndPort.find("/"); - if (slash != string::npos) - { - serviceName = serviceAndPort.substr(0, slash); - - if ( (slash+1) < serviceAndPort.length()) - { - portName = serviceAndPort.substr(slash+1); - } - else - { - portName = ""; - } - - } - else - { - // No '/' so all of it is the service name - serviceName = serviceAndPort; - portName = ""; - - } - } - else - { - // Nothing between the () - serviceName = ""; - portName = ""; - } - } - else - { - // not the correct characters after the #, ignore the rest - serviceName = ""; - portName = ""; - } - - } - else - { - // Nothing after the hash - serviceName = ""; - portName = ""; - } - } - else - { - // No hash at all - wsdlNamespaceURL = port; - serviceName = ""; - portName = ""; - } - - - - - - - } - - WSBinding::~WSBinding() - { - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WSBinding.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WSBinding.h deleted file mode 100644 index e7963d205b..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WSBinding.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_wsbinding_h -#define tuscany_sca_model_wsbinding_h - -#include "tuscany/sca/model/Binding.h" - -#include <string> - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about a web service binding for an entry point or an - * external service. - */ - class WSBinding : public Binding - { - public: - /** - * Constructor. - * @param uri The uri of the binding. - * @param port The definition of the port to which the entrypoint - * or external service is to be bound. This is of the form - * "namespace"#endpoint("service"/"port") - */ - WSBinding(const string&uri, const string& port); - - /** - * Destructor. - */ - virtual ~WSBinding(); - - /** - * Return the type of the binding. - * @return Always returns WS. - */ - virtual Type getBindingType() {return WS;}; - - /** - * Return the part of the port definition describing the wsdl - * namespace. - * @return The wsdl namespace. - */ - string getWSDLNamespaceURL() {return wsdlNamespaceURL;}; - - /** - * Return the service part of the port definition. - * @return The service to use. - */ - string getServiceName() {return serviceName;}; - - /** - * Return the port name part of the port definition. - * @return The port name to use. - */ - string getPortName() {return portName;}; - - private: - /** - * The full port string. - */ - string port; - - /** - * Namespace from the port. - */ - string wsdlNamespaceURL; - - /** - * Service name from the port. - */ - string serviceName; - - /** - * Port name from the port. - */ - string portName; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wsbinding_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wire.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wire.cpp deleted file mode 100644 index 6c1b14940f..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wire.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Wire.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - Wire::Wire(const std::string& source, const std::string& targ) - { - Utils::tokeniseUri(source, sourceComponent, sourceReference); - target = targ; - } - - Wire::~Wire() - { - } - - } // End namespace model - - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wire.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wire.h deleted file mode 100644 index b126137118..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wire.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_wire_h -#define tuscany_sca_model_wire_h - -#include <string> -using std::string; - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about a wire in the model. - */ - class Wire - { - public: - /** - * Constructor. - * @param source The source of the wire. Either the component and - * reference name (optional) or an entry point. - * @param target The target of the wire. Either a component and service - * service name (optional) or an external sevice. - */ - Wire(const std::string& source, const std::string& target); - - /** - * Destructor. - */ - virtual ~Wire(); - - /** - * Get the component name defined by the source of the wire. - * @return The component name which is the source of the wire. - */ - const std::string& getSourceComponent() {return sourceComponent;} - - /** - * Get the reference name defined by the source of the wire. - * @return The reference name which is the source of the wire. - */ - const std::string& getSourceReference() {return sourceReference;} - - /** - * Get the target uri defined by the target of the wire. - * @return The target uri which is the source of the wire. - */ - const std::string& getTarget() {return target;} - private: - /** - * The source component of the wire. - */ - string sourceComponent; - - /** - * The source reference of the wire. - */ - string sourceReference; - - /** - * The target uri of the wire. - */ - string target; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wire_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WireTarget.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WireTarget.cpp deleted file mode 100644 index a35b07f5fe..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WireTarget.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/WireTarget.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - WireTarget::WireTarget(const std::string& targetName) - : name(targetName) - { - } - - WireTarget::~WireTarget() - { - } - - void WireTarget::setInterface(Interface* interf) - { - iface = interf; - } - - } // End namespace model - - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WireTarget.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WireTarget.h deleted file mode 100644 index 312d20a704..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WireTarget.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_wiretarget_h -#define tuscany_sca_model_wiretarget_h - -#include <string> -using std::string; - -#include "tuscany/sca/model/Interface.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Represents the target of a wire. This could be a service on a - * component or an external service. - */ - class WireTarget - { - public: - /** - * Supported types of wire target. - */ - enum Type - { - ComponentServiceType, - ExternalServiceType - }; - - /** - * Constructor. - * @param name The name of the wire target. - */ - WireTarget(const std::string& name); - - /** - * Destructor. - */ - virtual ~WireTarget(); - - /** - * Return the name of the wire target. - */ - string getName() {return name;} - - /** - * Get the type of the wire target. - * @return Depends on the type of the wire target. - */ - virtual Type getServiceType() = 0; - - /** - * Set the interface describing the wire target. - * @param iface The interface. - */ - void setInterface(Interface* iface); - - /** - * Get the interface describing the wire target. - * @return The interface. - */ - Interface* getInterface() {return iface;} - - private: - /** - * Name of the wire target (service name or external service name) - */ - string name; - - /** - * Type of the service. - */ - Type serviceType; - - /** - * Interface describing the wire target. - */ - Interface* iface; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wiretarget_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wsdl.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wsdl.cpp deleted file mode 100644 index d2ca9e96c1..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wsdl.cpp +++ /dev/null @@ -1,356 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/model/Wsdl.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/Exceptions.h" - -using namespace tuscany::sca; - -using namespace commonj::sdo; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Constructor - Wsdl::Wsdl(DataObjectPtr wsdlModel) - : wsdlModel(wsdlModel) - { - LOGENTRY(1, "Wsdl::constructor"); - - // Trace - //Utils::printDO(wsdlModel); - - - - LOGEXIT(1, "Wsdl::constructor"); - } - - Wsdl::~Wsdl() - { - } - - - /// - /// The namespace of the service and other definitions defined in this wsdl definition - string Wsdl::getNamespace() - { - - return wsdlModel->getCString("targetNamespace"); - - } - - /// - /// Find the operation defined in this wsdl - /// - const WsdlOperation& Wsdl::findOperation(const string& serviceName, - const string& portName, - const string& operationName) - { - string message; - - string operationKey = serviceName+"#"+portName+"#"+operationName; - OperationMap::iterator iter = operationMap.find(operationKey); - if (iter != operationMap.end()) - { - return iter->second; - } - - // Find the service - DataObjectPtr service = findService(serviceName); - if (!service) - { - // Service not found - message = "Unable to find service "; - message = message + serviceName; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - else - { - - - // Found the service - DataObjectList& portList = service->getList("port"); - for (int j=0; j<portList.size();j++) - { - string portListName(portList[j]->getCString("name")); - if (portListName.compare(portName) == 0) - { - // found port - // Add address at this point - string targetAddress(portList[j]->getCString("address/location")); - - // find operation by traversing the binding, portType then operation - string wsBindingName(portList[j]->getCString("binding")); - - DataObjectPtr wsBinding = findBinding(wsBindingName); - if (!wsBinding) - { - message = "Unable to find binding "; - message = message + wsBindingName; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - - - string soapAction; - bool documentStyle = false; - bool useEncoded = false; - WsdlOperation::soapVersion soapVer = WsdlOperation::SOAP11; - - // Find the binding operation - DataObjectList& bindingOperationList = wsBinding->getList("operation"); - for (int i=0; i<bindingOperationList.size(); i++) - { - string name(bindingOperationList[i]->getCString("name")); - - if (name.compare(operationName) == 0) - { - DataObjectPtr op = bindingOperationList[i]->getDataObject("operation"); - string opType = op->getType().getURI(); - if (opType == "http://schemas.xmlsoap.org/wsdl/soap12/") - { - soapVer = WsdlOperation::SOAP12; - } - // Get the soapAction - soapAction = bindingOperationList[i]->getCString("operation/soapAction"); - - // Get the style - string style = bindingOperationList[i]->getCString("operation/style"); - if (style == "") - { - style = wsBinding->getCString("binding/style"); - } - if (style == "document") - { - documentStyle = true; - } - - // get the use - string use = bindingOperationList[i]->getCString("input/body/use"); - if (style == "encoded") - { - useEncoded = true; - } - } - } - - - // TODO - get the style from the binding or operation???? - - // Found the binding, get the portType - string wsPortTypeName(wsBinding->getCString("type")); - DataObjectPtr wsPortType = findPortType(wsPortTypeName); - if (!wsPortType) - { - message = "Unable to find PortType "; - message = message + wsPortTypeName; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - - //Utils::printDO(wsPortType); - - // Found the portType, find the operation - DataObjectList& operationList = wsPortType->getList("operation"); - for (int k=0; k< operationList.size(); k++) - { - string opName(operationList[k]->getCString("name")); - if( opName.compare(operationName) == 0) - { - // Found the operation - - // Find the type of the request message - string inputMessageType = string(operationList[k]->getCString("input/message")); - - DataObjectPtr wsMessageIn = findMessage(inputMessageType); - if (!wsMessageIn) - { - message = "Unable to find message "; - message = message + inputMessageType; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - - string requestType(wsMessageIn->getList("part")[0]->getCString("element")); - - // Find the type of the response message - string outputMessageType = string(operationList[k]->getCString("output/message")); - - DataObjectPtr wsMessageOut = findMessage(outputMessageType); - if (!wsMessageOut) - { - message = "Unable to find message "; - message = message + outputMessageType; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - - string responseType(wsMessageOut->getList("part")[0]->getCString("element")); - - WsdlOperation& wsdlOp = operationMap[operationKey]; - wsdlOp.setOperationName(operationName); - wsdlOp.setSoapAction(soapAction); - wsdlOp.setEndpoint(targetAddress); - wsdlOp.setSoapVersion(soapVer); - wsdlOp.setDocumentStyle(documentStyle); - wsdlOp.setEncoded(useEncoded); - wsdlOp.setInputType(requestType); - wsdlOp.setOutputType(responseType); - return wsdlOp; - } - - } - - message = "Unable to find Operation "; - message = message + operationName; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - } - // cannot find the port - message = "Unable to find port "; - message = message + portName; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - - } - - /// - /// Find a service - /// - DataObjectPtr Wsdl::findService(const string& serviceName) - { - DataObjectPtr service = 0; - - - // Find the binding - DataObjectList& serviceList = wsdlModel->getList("service"); - for (int i=0; i<serviceList.size(); i++) - { - string name(serviceList[i]->getCString("name")); - - if (name.compare(serviceName) == 0) - { - return serviceList[i]; - } - } - - return service; - } - - - /// - /// Find a named binding - /// - DataObjectPtr Wsdl::findBinding(const string& bindingName) - { - DataObjectPtr binding = 0; - string uri; - string name; - - - //Utils::tokeniseQName(bindingName, uri, name); - Utils::rTokeniseString(":", bindingName, uri, name); - - - // Find the binding - DataObjectList& bindingList = wsdlModel->getList("binding"); - for (int i=0; i<bindingList.size(); i++) - { - string nameBinding(bindingList[i]->getCString("name")); - - if (nameBinding.compare(name) == 0) - { - return bindingList[i]; - } - } - - return binding; - } - - /// - /// Find a named portType - /// - DataObjectPtr Wsdl::findPortType(const string& portTypeName) - { - DataObjectPtr portType = 0; - string uri; - string name; - - - // Utils::tokeniseQName(portTypeName, uri, name); - Utils::rTokeniseString(":", portTypeName, uri, name); - - - // Find the binding - DataObjectList& portTypeList = wsdlModel->getList("portType"); - for (int i=0; i<portTypeList.size(); i++) - { - string namePortType(portTypeList[i]->getCString("name")); - - if (namePortType.compare(name) == 0) - { - return portTypeList[i]; - } - } - - return portType; - } - - /// - /// Find a named message - /// - DataObjectPtr Wsdl::findMessage(const string& messageName) - { - DataObjectPtr message = 0; - string uri; - string name; - - - // Utils::tokeniseQName(messageName, uri, name); - Utils::rTokeniseString(":", messageName, uri, name); - - - // Find the binding - DataObjectList& messageList = wsdlModel->getList("message"); - for (int i=0; i<messageList.size(); i++) - { - string nameMessage(messageList[i]->getCString("name")); - - if (nameMessage.compare(name) == 0) - { - return messageList[i]; - } - } - - return message; - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wsdl.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wsdl.h deleted file mode 100644 index 70a07996cc..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/Wsdl.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_wsdl_h -#define tuscany_sca_model_wsdl_h - -#include "osoa/sca/export.h" -#include <string> -using std::string; - -#include "tuscany/sca/model/WsdlOperation.h" - -#include "commonj/sdo/SDO.h" -using commonj::sdo::DataObjectPtr; - -#include <map> -using std::map; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - /** - * Holds information about a WSDL definition loaded into the runtime. - */ - class Wsdl - { - public: - /** - * Constructor. - * @param wsdlModel The data object representing the WSDL document - * defining a web service. - */ - Wsdl(DataObjectPtr wsdlModel); - - /** - * Destructor. - */ - ~Wsdl(); - - - /** - * Returns the target namespace of the WSDL definitions. - * @return The target namespace. - */ - string getNamespace(void); - - /** - * Find an operation in the WSDL definitions. - * @param serviceName The name of the service on which this - * operation is defined. - * @param portName The name of the port in the service to - * use. - * @param operationName The name of the operation to find. - * @return The operation if found. Exception thrown if not found. - */ - const WsdlOperation& findOperation(const string& serviceName, - const string& portName, - const string& operationName); - - private: - - /** - * Find a service in the wsdl definition. - * @param serviceName The name of the service. - * @return A data object describing the service if found, otherwise - * a 0 if not found. - */ - DataObjectPtr findService(const string& serviceName); - - /** - * Find a binding in the wsdl definition. - * @param bindingName The name of the binding to find. - * @return A data object describing the binding if found, otherwise - * a 0 if not found. - */ - DataObjectPtr findBinding(const string& bindingName); - - /** - * Find a portType in the wsdl definition. - * @param portTypeName The name of the portType. - * @return A data object describing the portType if found, otherwise - * a 0 if not found. - */ - DataObjectPtr findPortType(const string& portTypeName); - - /** - * Find a message in the wsdl definition. - * @param messageName The name of the message. - * @return A data object describing the message if found, otherwise - * a 0 if not found. - */ - DataObjectPtr findMessage(const string& messageName); - - - /** - * The data object representation of the WSDL document. - */ - DataObjectPtr wsdlModel; - - typedef map<string, WsdlOperation> OperationMap; - OperationMap operationMap; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wsdl_h - diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.cpp b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.cpp deleted file mode 100644 index 40964ea20e..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#include "tuscany/sca/model/WsdlOperation.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Constructor - WsdlOperation::WsdlOperation() - { - LOGENTRY(1, "WsdlOperation::constructor"); - LOGEXIT(1, "WsdlOperation::constructor"); - } - - WsdlOperation::~WsdlOperation() - { - } - - - void WsdlOperation::setInputType(const string& inputType) - { - Utils::tokeniseQName(inputType, inputTypeUri, inputTypeName); - } - - void WsdlOperation::setOutputType(const string& outputType) - { - Utils::tokeniseQName(outputType, outputTypeUri, outputTypeName); - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.h b/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.h deleted file mode 100644 index 9fe22b6f57..0000000000 --- a/tags/cpp-0.1.incubating-M1-RC3a/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * - * 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: 2005/12/22 11:33:21 $ */ - -#ifndef tuscany_sca_model_wsdlOperation_h -#define tuscany_sca_model_wsdlOperation_h -#include "osoa/sca/export.h" -#include <string> -using std::string; - - -#include "commonj/sdo/SDO.h" -using commonj::sdo::DataObjectPtr; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - /** - * Represents a single.,bound WSDL defined operation. - * This class includes information from the soapBinding - * in addition to the WSDL definition of the operation. - */ - class WsdlOperation - { - public: - /** - * Constructor. - * @param operation The name of the operation. - * @param soapAction The soapAction associated with this operation - * in the SOAP binding of the operation. - * @param endpoint The endpoint address of the operation. - * @param responseName The name of the response message. - */ - WsdlOperation(); - - /** - * Destructor. - */ - ~WsdlOperation(); - - /** - * Return the name of the operation for use when serializing an - * outgoing message. - * @return The name of the element in the request message. - */ - const string& getOperationName() const {return operationName;} - void setOperationName(const string& opName) {operationName = opName;} - - /** - * The soap action string for this operation. - * @return The soap action. - */ - const string& getSoapAction() const {return soapAction;} - void setSoapAction(const string& soapAct) {soapAction = soapAct;} - - /** - * Return the endpoint address for the target web service. - * @return The endpoint address. - */ - const string& getEndpoint() const {return endpoint;} - void setEndpoint(const string& ep) {endpoint = ep;} - - enum soapVersion - { - SOAP11, - SOAP12 - }; - - void setSoapVersion(soapVersion ver) {soapVer = ver;} - soapVersion getSoapVersion() const {return soapVer;} - - void setDocumentStyle(bool docStyle) {documentStyle = docStyle;} - bool isDocumentStyle() const {return documentStyle;} - - void setEncoded(bool enc) {encoded = enc;} - bool isEncoded() const {return encoded;} - - - void setInputType(const string& inputType); - const string& getInputTypeUri() const {return inputTypeUri;} - const string& getInputTypeName() const {return inputTypeName;} - void setOutputType(const string& outputType); - const string& getOutputTypeUri() const {return outputTypeUri;} - const string& getOutputTypeName() const {return outputTypeName;} - - private: - /** - * The name of the operation for use when serializing an - * outgoing message. - */ - string operationName; - - /** - * The soap action string for this operation. - */ - string soapAction; - - /** - * The endpoint address of the target web service. - */ - string endpoint; - - bool documentStyle; - bool encoded; - soapVersion soapVer; - - string inputTypeUri; - string inputTypeName; - - string outputTypeUri; - string outputTypeName; - - DataObjectPtr inputMessage; - DataObjectPtr outputMessage; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wsdlOperation_h - |