// If the remote POJO interface method has limited concurrency allowed, we need to make
// sure we have permission to invoke that method. None of these calls should throw an exception.
Class<?> target_interface = Class.forName(target_interface_name);
Method target_method = target_interface.getMethod(method_name, class_signature);
LimitedConcurrency limited_concurrency = target_method.getAnnotation(LimitedConcurrency.class);
if ((limited_concurrency != null) && (concurrency_manager != null)) {
permit = concurrency_manager.getPermit(limited_concurrency.value());
}
// if a parameter is a remote stream, we have to create a sender for it to use
// this is needed in case the remote server that is serving the stream data requires SSL - in that
// case, our sender needs to have SSL configured properly