Branch: refs/heads/kohsuke
  Home:   https://github.com/jenkinsci/workflow-plugin
  Commit: bd25ad20311fa0b7fb86b6e909f9428ab5214f83
      
https://github.com/jenkinsci/workflow-plugin/commit/bd25ad20311fa0b7fb86b6e909f9428ab5214f83
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-15 (Sat, 15 Nov 2014)

  Changed paths:
    M api/src/main/java/org/jenkinsci/plugins/workflow/flow/FlowExecution.java
    A 
api/src/main/java/org/jenkinsci/plugins/workflow/steps/WorkflowBodyInvoker.java
    M 
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/CatchErrorStep.java
    M 
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/PushdStep.java
    M 
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/RetryStepExecution.java
    M 
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/TimeoutStepExecution.java
    R cps/src/main/java/org/jenkinsci/plugins/workflow/cps/BodyInvoker.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyExecution.java
    A cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyInvoker.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsStepContext.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/DSL.java
    M 
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/steps/LoadStepExecution.java
    M 
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/steps/ParallelStepExecution.java
    M 
step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/BodyExecution.java
    A 
step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/BodyInvoker.java
    M 
step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/StepContext.java
    M 
step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/StepDescriptor.java
    M 
support/src/main/java/org/jenkinsci/plugins/workflow/support/DefaultStepContext.java
    M 
support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/ExecutorStepExecution.java
    M 
support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/WorkspaceStepExecution.java
    M 
support/src/test/java/org/jenkinsci/plugins/workflow/test/steps/BlockSemaphoreStep.java
    M 
support/src/test/java/org/jenkinsci/plugins/workflow/test/steps/TmpDirStepExecution.java

  Log Message:
  -----------
  Added BodyInvoker to create room for more control over how to invoke body.

Such control includes how FlowNodes are created, the display name for the body 
invocation, additional Actions, etc.


  Commit: eefea91dbfe8524b3d091ee0b0c3f7d25b0d5eaf
      
https://github.com/jenkinsci/workflow-plugin/commit/eefea91dbfe8524b3d091ee0b0c3f7d25b0d5eaf
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-17 (Mon, 17 Nov 2014)

  Changed paths:
    A step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/Outcome.java
    M 
support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/input/InputStepExecution.java
    R 
support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/input/Outcome.java

  Log Message:
  -----------
  Promoted the Outcome class over to the API

... as a preparation of providing StepContext after the body execution


  Commit: 62b92d7a563fcb7a20d5b0aa69058de5be120b8c
      
https://github.com/jenkinsci/workflow-plugin/commit/62b92d7a563fcb7a20d5b0aa69058de5be120b8c
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-18 (Tue, 18 Nov 2014)

  Changed paths:
    M 
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/PushdStep.java
    M 
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/TimeoutStepExecution.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyExecution.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyInvoker.java
    A 
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodySubContext.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/DSL.java
    M 
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/steps/ParallelStep.java
    M 
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/steps/ParallelStepExecution.java
    M 
step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/BodyExecution.java
    A 
step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/BodyExecutionCallback.java
    M 
step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/BodyInvoker.java
    M 
support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/ExecutorStepExecution.java
    M 
support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/WorkspaceStepExecution.java
    M 
support/src/test/java/org/jenkinsci/plugins/workflow/test/steps/BlockSemaphoreStep.java
    M 
support/src/test/java/org/jenkinsci/plugins/workflow/test/steps/TmpDirStepExecution.java

  Log Message:
  -----------
  [JENKINS-25504]

Introducing BodyExecutionCallback as a beefed up version of
FutureCallback, so that the step implementation can interact with the
start body block / end body block, such as adding log messages.

We do this by creating a different StepContext objects that are only
valid during the body start and body end.  This in turn allow Steps to
re-inject the context to access correct TaskListeners and things like
that (which is not in this commit.)

Copying my email to jenkinsci-dev for the motivation:
------
I'm working on this card, where we want to be able to write to console
log and do stuff at the end of the body invocation.

The challenge here is that the Step API has no dependency to the
workflow Flow Node API (it goes the other way around), so we need to do
this in a way that doesn't force Flow API into the likes of RetryStep.
That pretty much means we need to do the context injection of
TaskListener like StepContext does.

I thought about two ways to do this.

One is to reuse the existing StepContext instance. We could just say
that at the point of the callback from the body execution,
StepContet.get() would return the context objects for the end of the
body (TaskListener connecte to the right FlowNode, etc.) We could then
provide some convenience base class that performs @StepContextParameter
injection, so that everything gets reinjected.

This works, but I also feel that it's bit brittle, especially for
ParallelStep that invokes multiple bodies at the same time, and thus it
wants multiple different post body execution context. So I started
thinking about another way, where the end of the body execution is
notified to FutureCallback<BodyExecutionResult> instead of
FutureCallback<Object>, and the newly added BodyExecutionResult class
would have properties like outcome, the same get(Class) method that
returns contextual object, and so on.

That also makes it more explicit that the context injection works
differently post body execution.


  Commit: bd51b04ebeec4ece43f396626ae7e6f94a25e96f
      
https://github.com/jenkinsci/workflow-plugin/commit/bd51b04ebeec4ece43f396626ae7e6f94a25e96f
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-18 (Tue, 18 Nov 2014)

  Changed paths:
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyExecution.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyInvoker.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsStepContext.java

  Log Message:
  -----------
  [JENKINS-25504]

CPS engine side of the change to fire newly added callbacks of
BodyExecutionCallback


  Commit: b7930b7f1268e8cd2167a6091a2524128056de72
      
https://github.com/jenkinsci/workflow-plugin/commit/b7930b7f1268e8cd2167a6091a2524128056de72
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-18 (Tue, 18 Nov 2014)

  Changed paths:
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyExecution.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyInvoker.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/DSL.java
    M 
step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/BodyExecution.java

  Log Message:
  -----------
  Shuffling code between CpsBodyInvoker and CpsBodyExecution.

... to make their lifecycles clearer. Namely, CpsBodyInvoker is a builder 
pattern to accumulate
possibly non-serializable parameters, then once it gets going CpsBodyExecution 
represents
the running program state.

The time between CpsBodyInvoker.start() and CpsBodyInvoker.launch() is where 
two objects reside side by side.


  Commit: cb36d0f093d8e71ccb49d88f1ba8446cfd52c35b
      
https://github.com/jenkinsci/workflow-plugin/commit/cb36d0f093d8e71ccb49d88f1ba8446cfd52c35b
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-18 (Tue, 18 Nov 2014)

  Changed paths:
    M CHANGES.md
    M aggregator/pom.xml
    M 
aggregator/src/test/java/org/jenkinsci/plugins/workflow/WorkflowRunTest.java
    M 
aggregator/src/test/java/org/jenkinsci/plugins/workflow/steps/TimeoutStepTest.java
    M api/pom.xml
    M basic-steps/pom.xml
    M cps-global-lib/pom.xml
    M cps/pom.xml
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsStepContext.java
    M 
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/GroovyShellDecorator.java
    M durable-task-step/pom.xml
    M job/pom.xml
    M job/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java
    M 
job/src/main/resources/org/jenkinsci/plugins/workflow/job/WorkflowRun/index.jelly
    A 
job/src/main/resources/org/jenkinsci/plugins/workflow/job/WorkflowRun/index.properties
    M pom.xml
    M scm-step/pom.xml
    M step-api/pom.xml
    M support/pom.xml
    M 
support/src/main/java/org/jenkinsci/plugins/workflow/support/actions/WorkspaceActionImpl.java
    M 
support/src/main/java/org/jenkinsci/plugins/workflow/support/pickles/FilePathPickle.java
    M 
support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/ExecutorStepExecution.java

  Log Message:
  -----------
  Synced up with the 'master' branch

Conflicts:
        
support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/ExecutorStepExecution.java


  Commit: b2fdafc5f737f93602c4f8a58ac1c4b7c30f86a1
      
https://github.com/jenkinsci/workflow-plugin/commit/b2fdafc5f737f93602c4f8a58ac1c4b7c30f86a1
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-18 (Tue, 18 Nov 2014)

  Changed paths:
    R 
api/src/main/java/org/jenkinsci/plugins/workflow/steps/WorkflowBodyInvoker.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyInvoker.java
    M 
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodySubContext.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsStepContext.java
    M 
step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/BodyExecutionCallback.java

  Log Message:
  -----------
  BodyExecutionCallback provides the opportunity to interact with FlowNode, 
including adding Actions.

So I removed WorkflowBodyInvoker whose sole purpose was to add Actions to the 
start node.


  Commit: e91088fbfafffaa488264b36574b4227c7aba3dc
      
https://github.com/jenkinsci/workflow-plugin/commit/e91088fbfafffaa488264b36574b4227c7aba3dc
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-18 (Tue, 18 Nov 2014)

  Changed paths:
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyExecution.java

  Log Message:
  -----------
  Fixed thread sychronization


  Commit: b3be09d14469d465379a043249e74b52250d0dad
      
https://github.com/jenkinsci/workflow-plugin/commit/b3be09d14469d465379a043249e74b52250d0dad
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-18 (Tue, 18 Nov 2014)

  Changed paths:
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyExecution.java
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyInvoker.java
    M 
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodySubContext.java

  Log Message:
  -----------
  Honor skip body block.


  Commit: d955c5089a88f9098bddd17e86e46c8a9a83f6ff
      
https://github.com/jenkinsci/workflow-plugin/commit/d955c5089a88f9098bddd17e86e46c8a9a83f6ff
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-18 (Tue, 18 Nov 2014)

  Changed paths:
    M 
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/CatchErrorStep.java
    M 
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/PushdStep.java
    M 
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/TimeoutStepExecution.java
    M 
support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/ExecutorStepExecution.java
    M 
support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/WorkspaceStepExecution.java
    M 
support/src/test/java/org/jenkinsci/plugins/workflow/test/steps/TmpDirStepExecution.java

  Log Message:
  -----------
  Where we don't invoke body multiple times, there's no point in creating a 
nested body block nodes.

This simplifies the flow graph, hence the visualization


  Commit: acf3930dbafae665d318a12e8e0021bc41314ff1
      
https://github.com/jenkinsci/workflow-plugin/commit/acf3930dbafae665d318a12e8e0021bc41314ff1
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-18 (Tue, 18 Nov 2014)

  Changed paths:
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodyExecution.java
    M 
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodySubContext.java
    M 
step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/BodyExecutionCallback.java

  Log Message:
  -----------
  These fields shouldn't be persisted


  Commit: db140e57b899f926cf0b8adc0021729b6053cd99
      
https://github.com/jenkinsci/workflow-plugin/commit/db140e57b899f926cf0b8adc0021729b6053cd99
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-18 (Tue, 18 Nov 2014)

  Changed paths:
    M 
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsBodySubContext.java

  Log Message:
  -----------
  Making FindBugs happy


  Commit: 0d48c5cb7f7b2cea43fac1248f7969b43b8a430f
      
https://github.com/jenkinsci/workflow-plugin/commit/0d48c5cb7f7b2cea43fac1248f7969b43b8a430f
  Author: Kohsuke Kawaguchi <[email protected]>
  Date:   2014-11-18 (Tue, 18 Nov 2014)

  Changed paths:
    M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsStepContext.java

  Log Message:
  -----------
  To preserve the order of invocation it needs to be List.


  Commit: d774db87819203b9bddcf4bf192541a5bb3cba24
      
https://github.com/jenkinsci/workflow-plugin/commit/d774db87819203b9bddcf4bf192541a5bb3cba24
  Author: CloudBees DEV@Cloud <[email protected]>
  Date:   2014-11-19 (Wed, 19 Nov 2014)

  Changed paths:
    M aggregator/src/test/java/org/jenkinsci/plugins/workflow/DSLTest.java
    M 
aggregator/src/test/java/org/jenkinsci/plugins/workflow/steps/CoreStepTest.java
    M 
aggregator/src/test/java/org/jenkinsci/plugins/workflow/steps/build/BuildTriggerStepRestartTest.java
    M 
aggregator/src/test/java/org/jenkinsci/plugins/workflow/steps/build/BuildTriggerStepTest.java
    M 
aggregator/src/test/java/org/jenkinsci/plugins/workflow/steps/input/InputStepTest.java

  Log Message:
  -----------
  Merge REMERGE_HEAD


Compare: 
https://github.com/jenkinsci/workflow-plugin/compare/ab1e8334a8a6...d774db878192

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to