docs: @Override
    public void signal(final ActivityExecution execution, final String signalName, final Object signalData) throws Exception {
      ProcessApplicationReference targetProcessApplication = ProcessApplicationContextUtil.getTargetProcessApplication((ExecutionEntity) execution);
      if(ProcessApplicationContextUtil.requiresContextSwitch(targetProcessApplication)) {
        Context.executeWithinProcessApplication(new Callable<Void>() {
          public Void call() throws Exception {
            signal(execution, signalName, signalData);
            return null;
          }
        }, targetProcessApplication, new InvocationContext(execution));
      }
      else {
        doSignal(execution, signalName, signalData);
      }
    }