Hi,
Now we have Endpoint/EndpointReference models to encapsulate the metadata
for <component, service/reference, binding>. I think we should better align
the core-spi to the Endpoint/EndpointReference to further simplify the
invocation/extension code.
a) Move the methods from RuntimeWire to Endpoint/EndpointReference
(potentially RuntimeEndpoint/RuntimeEndpointReference)
1) Endpoint owns the service binding invocation chain (one per Endpoint)
and the service invocation chains (one per Operation)
2) EndpointReference owns the reference invocation chains (one per
Operation) and the reference binding invocation chain (one per
EndpointReference)
3) For local wires over a given binding, the EndpointReferenceProvider
for the binding is responsible for finding the corresponding service
invocation chain from
the Endpoint and dispatch the invocations to it. This can be done in
the BindingInvoker.
b) Remove methods that looks up by binding from
RuntimeComponentService/RuntimeComponentReference and push them onto the
Endpoint/EndpointReference if necessary.
c) Simplify the
BindingProviderFactory/ServiceBindingProvider/ReferenceBindingProvider SPIs:
1) Replace the component/service/binding tuple with Endpoint
2) Replace the component/reference/binding tuple with EndpointReference
Thanks,
Raymond