}
private void initServiceBindingInvocationChains() {
// add the binding interceptors to the service binding wire
ServiceBindingProvider provider = getBindingProvider();
if ((provider != null) && (provider instanceof EndpointProvider)) {
((EndpointProvider)provider).configure();
}
// add the policy interceptors to the service binding wire
List<PolicyProvider> pps = getPolicyProviders();
if (pps != null) {
for (PolicyProvider p : pps) {
Interceptor interceptor = p.createBindingInterceptor();
if (interceptor != null) {
bindingInvocationChain.addInterceptor(interceptor);
} // end if
} // end for
} // end if
// This is strategically placed before the RuntimeInvoker is added to the end of the
// binding chain as the RuntimeInvoker doesn't need to take part in the response
// processing and doesn't implement InvokerAsyncResponse
ServiceBindingProvider serviceBindingProvider = getBindingProvider();
if (isAsyncInvocation() &&
serviceBindingProvider instanceof EndpointAsyncProvider &&
((EndpointAsyncProvider)serviceBindingProvider).supportsNativeAsync()){
// fix up the invocation chains to point back to the
// binding chain so that async response messages