remoteInvocation.addAttribute(attributeProvider.getAttributeName(), attributeProvider.getAttributeValue(remoteInvocation, null));
}
TransactionMgr.beginRemoteCall(config, remoteInvocation);
RemoteInvocationResult result = nestedHttpInvokerRequestExecutor.executeRequest(config, remoteInvocation);
TransactionMgr.endRemoteCall(result);
if (result.getValue() instanceof RemoteInvocationResultWrapper) {
RemoteInvocationResultWrapper resultWrapper = (RemoteInvocationResultWrapper)result.getValue();
// Attribute Consumers
for (RemoteInvocationAttributeConsumer attributeConsumer : getRemoteInvocationAttributeConsumers()) {
attributeConsumer.consume(remoteInvocation.getArguments(), resultWrapper.getAttribute(attributeConsumer.getAttributeName()));
}
return new RemoteInvocationResult(resultWrapper.getReturnValue());
}
return result;
}