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

Reply via email to