Brady, Welcome aboard! The best way to proceed is to open a Jira ( https://issues.apache.org/jira/browse/TUSCANY) describing what you are trying to achieve then attach a patch to the Jira. It's usually a good idea to post on tuscany_dev when you submit a patch as some of us filter off Jira messages and don't immediately see them. Then... some kindly committer can apply and test the patch and, if all is well, commit it to subversion.
What you are proposing sounds very reasonable so I will look out for a Jira and patch. Cheers, On 20/06/07, Brady Johnson <[EMAIL PROTECTED]> wrote:
Hello all, Im investigating using TuscanySCA (C++ version) with a container other than Axis. To do this, the container needs to be able to obtain the WSDL operations, etc loaded by Tuscany. I would like to propose extending some of the Tuscany APIs to allow them to be queried, since currently you can only do a find with an operation name. These query operations could be done either by returning an iterator to the internal map, or by just returning a list of map's value strings. The second option would probably be safer and more thread-safe. Below are the extensions that I propose adding: runtime/core/src/tuscany/sca/model/Composite.h/cpp std::list<std::string> Composite::getNamespaces(); runtime/core/src/tuscany/sca/model/WSDLDefinition.h/cpp std::list<std::string> WSDLDefinition::getPortTypes(); std::list<std::string> WSDLDefinition::getOperations( const std::string &portTypeName ); If its decided to allow the internal map to be iterated over, the interface would look something like this: runtime/core/src/tuscany/sca/model/Composite.h/cpp std::map<std::string, WSDLDefinition*>::const_iterator Composite::getNamespacesIteratorBegin(); std::map<std::string, WSDLDefinition*>::const_iterator Composite::getNamespacesIteratorEnd(); Once the projects have been loaded by calling: tuscany::sca::SCARuntime::initializeSharedRuntime() The system composite can then be obtained by calling: tuscany::sca::model::Composite* SCARuntime::getSystem(); With the system composite, the extension to the Composite class would allow you to get all of the WSDL namespaces loaded. Then for each namespace, the WSDLDefinition can be obtained by calling: WSDLDefinition* Composite::findWSDLDefinition(const std::string& wsdlNamespace); Then, for each WSDLDefinition, all of the WSDL PortTypes can be obtained by calling the getPortTypes() method above. Then for each PortType, the actual operations can be retreived by calling the getOperations() method above. Im not currently a TuscanySCA contributor, so what would it take to get these changes in? Thanks -------------------- Brady Johnson Rogue Wave Software - [EMAIL PROTECTED] Lead Software Developer - HydraSCA
-- Pete