Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Let's assume we have the following composition:

composite1 -- component1 - component1 (implementation.composite) --- component11#reference1
                                                                                  --- component12#service1

And component11#reference1 is declared as follows:

Panel

<reference name="reference1" target="component12/service1">
    <binding.sca/>
    <binding.x/>
</reference>

When we create a CallableReference for "component12/service1", I think we need to capture the URI of the containing component as well.

...

The serialized CallableReference can look like:

Panel

<reference xmlns:t="http://tuscany.apache.org/xmlns/sca" t:conversationID="conversation_001" t:callbackID="callback_001">
    <interface.java interface="<businessInterfaceClassName>"/>
    <binding.choice uri="sca:/component1/component12#service1"/>
        <binding.sca/>
        <binding.x/>
    </binding.choice>
</reference>

I'm thinking of using <binding.choice> as an internal binding that encapsulates a list of candidate bindings which later on can be matched against the service.

Panel

<reference name="$internal$.callableReference" target="component12/service1"

    xmlns:t="http://tuscany.apache.org/xmlns/sca"
    t:parentURI="component1"
    t:conversationID="conversation_001"
    t:callbackID="callback_001">
    <interface.java interface="<businessInterfaceClassName>"/>
    <binding.sca/>
    <binding.x/>
    <callback>
        ...
    </callback>
</reference>

Resolve a CallableReference/ServiceReference to live model objects for local optimizations:

...