Let's agree (or disagree) on the following statements one by one.
1) We'll have two component services C1/svc1 and C2/innerService.
2) C2/innerService is configured with binding.ws.
3) C2/innerService is available on a web service endpoint, the uri of the
endpoint depends on how the binding.ws is declared.
4) C1/svc1 inherits the binding.ws from C2/innerService.
Now the question is if C1/svc1 share the same endpoint with C2/innerService.
If C1/svc1 overrides C2/innerService's bindings, for example, specify a new
URI for binding.ws or a new binding, then C1/svc1 will have its own
endpoints.
If C1/svc1 only has the @promote attribute without child elements for
bindings, it becomes a bit tricky to me.
* C2/innerService's binding.ws has an explicit endpoint URI from either the
soap:address or @uri. Then the service promotion will take the same URI. In
this case, I assume there is only one WS endpoint.
* C2/innerService has <binding.ws/> without explicit endpoint URI. Then
C1/svc1 will have <binding.ws/>. C2/innerService will be assigned a default
URI for the binding.ws. Will C1/svc1 takes the one from C2/innerService or
C1/svc1 will be assigned with a different URI for the binding.ws as it's now
in a different level of composition. If it's the later, then we end up with
two WS endpoints. I think we need some clarification from the SCA spec to
well define the promotion rules.
Another interesting perspective is how to wire to C2/svc1:
<component name="C3">
<reference name="ref" target="C2/svc1">
<binding.ws .../> <!-- Do we need to provide a URI here for
binding.ws? -->
</reference>
...
</component>
Thanks,
Raymond
--------------------------------------------------
From: "Scott Kurz" <[EMAIL PROTECTED]>
Sent: Wednesday, March 19, 2008 5:28 AM
To: <[email protected]>
Subject: Re: real basic question on Composite impl (recursion)
Thanks for responding Raymond,
That's not what I envisioned, and I'm struggling to find more concrete
guidance in the OSOA specs.
Though closest guidance I saw in skimming the Assembly spec was on lines
1522-23:
. The bindings defined on the component service are still in effect for
local wires within the composite that target the component service
This, to me, suggests that you would only have one WS endpoint, as far as
the non-SCA world is concerned, though you have multiple ways of resolving
an SCA reference wire target pointing to this service, from other SCA
clients within the domain, depending on whether they are in the same
composite (Composite2) as C2 or not.
What are your reasons for understanding that there would be two web
services
here?
Thanks, Scott
On Mon, Mar 17, 2008 at 5:07 PM, Raymond Feng <[EMAIL PROTECTED]> wrote:
Here is my understanding:
1) Component C1 has a service named as svc1 with binding.ws.
2) Component C2 has a service named as innerService with binding.ws.
I assume two web services (one for the innerService, the other for svc1)
will be exposed when this composite is started. I don't think binding.sca
plays a role in your scenario.
Thanks,
Raymond
--------------------------------------------------
From: "Scott Kurz" <[EMAIL PROTECTED]>
Sent: Monday, March 17, 2008 1:53 PM
To: <[email protected]>
Subject: real basic question on Composite impl (recursion)
> I think this has been discussed before on this list.. but I'm not sure
or
> forget where we ended up.
>
> In the case that you have a non-default binding on a component service
> defined with an inner composite which
> is in turn used as a component impl, what happens if the service is not
> re-defined overridden at the higher level?
>
> As an example, in the following case, does the service C1/svc1 have a
> WS
> binding or default binding (or both)?
>
> <composite name="Composite1" xmlns:ns="http://dummy">
> <component name="C1">
> <implementation.composite name="ns:Composite2">
> </component>
> </composite>
>
> <composite name="Composite2" targetNamespace="http://dummy" xmlns:ns="
> http://dummy">
> <component name="C2">
> <implementation.java class="my.C2Impl">
> <service name="innerService">
> <binding.ws .../>
> </service>
> </component>
> <!-- innerService of component C2 is promoted as svc1 -->
> <service name="svc1" promote="C2/innerService"/>
> </composite>
>
> Thanks,
> Scott
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]