Class CallableDecorator

java.lang.Object
org.jenkinsci.remoting.CallableDecorator

public abstract class CallableDecorator extends Object
Decorator on Callable.call() to filter the execution.
Author:
Kohsuke Kawaguchi
See Also:
  • Constructor Details

    • CallableDecorator

      public CallableDecorator()
  • Method Details

    • call

      public <V> V call(Callable<V> callable) throws Exception
      Used to decorate everything that executes in the channel as a result of a request from the other side, such as RPC executions on exported objects, user-provided Callable execution, pipe write, and so on.
      Throws:
      Exception
    • userRequest

      public <V, T extends Throwable> Callable<V,T> userRequest(Callable<V,T> op, Callable<V,T> stem)
      Used to specifically decorate user-provided Callable execution. Unlike call(java.util.concurrent.Callable), this method provides an opportunity to inspect the actual Callable object given to Channel.call(Callable) from the other side, whereas call(java.util.concurrent.Callable) only provides an opaque blob that itself may wrap the actual user-given operations.
      Parameters:
      op - The original callable object given to Channel.call(Callable).
      stem - Computation that represents the invocation of op as well as any additional decoration done by other CallableDecorators.
      Returns:
      Returns the a decorated Callable that represents the decorated computation, which normally executes some pre-processing, then delegates to the stem, then performs some cleanup. If there's nothing to filter, return stem.
      Throws:
      RuntimeException - Any exception thrown from this method will be propagated to the other side as if the execution of the callable had failed with this exception.