public static <T> Callable<T> loggingDecorator(Callable<T> callable) {
    if (callable instanceof MDCPropagatingCallable) {
      return callable;
    }
    return new MDCPropagatingCallable<T>(callable);
  }
public static < T > Callable < T > loggingDecorator ( Callable < T > callable ) { if ( callable instanceof MDCPropagatingCallable ) { return callable ; } return new MDCPropagatingCallable < T > ( callable ) ; }
Creates an {@link Callable<T>} which propagates the MDC
information across thread boundaries.
@param callable the {@link Callable<T>} to wrap
@return a new instance of {@link Callable<T>}