Hi Simon

It's not clear to me from your answer whether you think that
SCAClientFactory is or isn't intended to return an SCAClient
implementation appropriate for the domain you which to retrieve
services from.

> The SCAClientFactory.newInstance() call uses various mechanisms
> to identify which vendor-specific SCAClient implementation to
> return.  The returned SCAClient object will be capable of locating
> all domains that use the same vendor implementation that created
> the SCAClient object.

Suggests to me that you think it should

>
> The alternative form suggested above doesn't work because it would
> require the SCAClientFactory to maintain some global knowledge of
> which domains use which vendor implementations, and return the
> appropriate SCAClient vendor implementation for the domain specified.

Suggests to me that you think it shouldn't.


There are two thing going on here.

1/ establish what sort of client you need - depends on the technology
of the domain you wish to talk to
2/ establish precise domain you need

1/ could certainly be achieved by swapping in and out the specific
factory implementation you have on the application classpath. Hence
you don't need a domain ID to choose as the choice is made for you
before the code runs. However I don't see why having the domain ID
does any harm here in that it would allow Tuscany to make step 2
transparent. Unless the argument here is that the Assembly spec
doesn't define what a domain ID looks like so we can't type it in the
interface.
2/ needs the domain ID

Simon

Reply via email to