Hi Brady,

That would need that standard Apache way (tm)!

Raise an issue in our Jira system (under the SCA C++ component), check
out the code head from SVN, make your changes, make sure they compile
and the basic tests run and then create a patch and attach it to the
Jira. Add a note on this thread to explain what you've changed and a
committer should check and apply the patch.

The idea is that you do the above often enough so that the committers
get bored of applying your patches and vote you on as a committer!

Cheers
Andy

On 6/20/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



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to