java.lang.Object
org.springframework.batch.repeat.context.SynchronizedAttributeAccessor
org.springframework.batch.core.scope.context.JobContext
All Implemented Interfaces:
org.springframework.core.AttributeAccessor

public class JobContext extends SynchronizedAttributeAccessor
A context object that can be used to interrogate the current JobExecution and some of its associated properties using expressions based on bean paths. Has public getters for the job execution and convenience methods for accessing commonly used properties like the ExecutionContext associated with the job execution.
Since:
3.0
Author:
Dave Syer, Jimmy Praet (create JobContext based on StepContext), Mahmoud Ben Hassine
  • Constructor Details

  • Method Details

    • getJobName

      public String getJobName()
      Convenient accessor for current job name identifier.
      Returns:
      the job name identifier of the enclosing JobInstance associated with the current JobExecution
    • getSystemProperties

      public Properties getSystemProperties()
      Convenient accessor for System properties to make it easy to access them from placeholder expressions.
      Returns:
      the current System properties
    • getJobExecutionContext

      public Map<String,Object> getJobExecutionContext()
      Returns:
      a map containing the items from the job ExecutionContext
    • getJobParameters

      public Map<String,Object> getJobParameters()
      Returns:
      a map containing the items from the JobParameters
    • registerDestructionCallback

      public void registerDestructionCallback(String name, Runnable callback)
      Allow clients to register callbacks for clean up on close.
      Parameters:
      name - the callback id (unique attribute key in this context)
      callback - a callback to execute on close
    • removeAttribute

      @Nullable public Object removeAttribute(String name)
      Override base class behaviour to ensure destruction callbacks are unregistered as well as the default behaviour.
      Specified by:
      removeAttribute in interface org.springframework.core.AttributeAccessor
      Overrides:
      removeAttribute in class SynchronizedAttributeAccessor
      See Also:
    • close

      public void close()
      Clean up the context at the end of a step execution. Must be called once at the end of a step execution to honour the destruction callback contract from the StepScope.
    • getJobExecution

      public JobExecution getJobExecution()
      The current JobExecution that is active in this context.
      Returns:
      the current JobExecution
    • getId

      public String getId()
      Returns:
      unique identifier for this context based on the step execution
    • equals

      public boolean equals(Object other)
      Extend the base class method to include the job execution itself as a key (i.e. two contexts are only equal if their job executions are the same).
      Overrides:
      equals in class SynchronizedAttributeAccessor
    • hashCode

      public int hashCode()
      Overrides the default behaviour to provide a hash code based only on the job execution.
      Overrides:
      hashCode in class SynchronizedAttributeAccessor
    • toString

      public String toString()
      Overrides:
      toString in class SynchronizedAttributeAccessor