@Override public CpsBodyInvoker newBodyInvoker() { return base.newBodyInvoker(); }
@Override public CpsBodyInvoker newBodyInvoker() { if (body == null) { throw new IllegalStateException("There is no body to invoke"); } return newBodyInvoker(body); }
@Override public boolean start() throws Exception { CpsStepContext cps = (CpsStepContext) getContext(); if (parallelStep.closures.isEmpty()) { cps.get(TaskListener.class).getLogger().println("No branches to run"); cps.onSuccess(Collections.<String,Object>emptyMap()); return true; } CpsThread t = CpsThread.current(); ResultHandler r = new ResultHandler(cps, this, parallelStep.isFailFast()); for (Entry<String,Closure> e : parallelStep.closures.entrySet()) { BodyExecution body = cps.newBodyInvoker(t.getGroup().export(e.getValue())) .withStartAction(new ParallelLabelAction(e.getKey())) .withCallback(r.callbackFor(e.getKey())) .start(); bodies.add(body); } return false; }
@Override public boolean start() throws Exception { CpsStepContext cps = (CpsStepContext) getContext(); CpsThread t = CpsThread.current(); CpsFlowExecution execution = t.getExecution(); String text = cwd.child(step.getPath()).readToString(); String clazz = execution.getNextScriptName(step.getPath()); String newText = ReplayAction.replace(execution, clazz); if (newText != null) { listener.getLogger().println("Replacing Groovy text with edited version"); text = newText; } Script script; try { script = execution.getShell().parse(text); } catch (MultipleCompilationErrorsException e) { // Convert to a serializable exception, see JENKINS-40109. throw new CpsCompilationErrorsException(e); } // execute body as another thread that shares the same head as this thread // as the body can pause. cps.newBodyInvoker(t.getGroup().export(script)) .withDisplayName(step.getPath()) .withCallback(BodyExecutionCallback.wrap(cps)) .start(); // when the body is done, the load step is done return false; }
@Override public boolean start() throws Exception { Closure body = ScriptBytecodeAdapter.getMethodPointer(this, "bodyBlock"); CpsStepContext cps = (CpsStepContext) getContext(); CpsThread t = CpsThread.current(); cps.newBodyInvoker(t.getGroup().export(body)) .withCallback(BodyExecutionCallback.wrap(cps)) .start(); return false; } }