Class JobContext
- 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 currentJobExecution
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 theExecutionContext
associated with the job execution.- Since:
- 3.0
- Author:
- Dave Syer, Jimmy Praet (create JobContext based on
StepContext
), Mahmoud Ben Hassine
Constructor Summary
Constructors Constructor Description JobContext(JobExecution jobExecution)
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Clean up the context at the end of a step execution.boolean
equals(java.lang.Object other)
Extend the base class method to include the job execution itself as a key (i.e.java.lang.String
getId()
JobExecution
getJobExecution()
The currentJobExecution
that is active in this context.java.util.Map<java.lang.String,java.lang.Object>
getJobExecutionContext()
java.lang.String
getJobName()
Convenient accessor for current job name identifier.java.util.Map<java.lang.String,java.lang.Object>
getJobParameters()
java.util.Properties
getSystemProperties()
Convenient accessor for System properties to make it easy to access them from placeholder expressions.int
hashCode()
Overrides the default behaviour to provide a hash code based only on the job execution.void
registerDestructionCallback(java.lang.String name, java.lang.Runnable callback)
Allow clients to register callbacks for clean up on close.java.lang.Object
removeAttribute(java.lang.String name)
Override base class behaviour to ensure destruction callbacks are unregistered as well as the default behaviour.java.lang.String
toString()
Methods inherited from class org.springframework.batch.repeat.context.SynchronizedAttributeAccessor
attributeNames, getAttribute, hasAttribute, setAttribute, setAttributeIfAbsent
Constructor Detail
JobContext
public JobContext(JobExecution jobExecution)
Method Detail
getJobName
public java.lang.String getJobName()
Convenient accessor for current job name identifier.- Returns:
- the job name identifier of the enclosing
JobInstance
associated with the currentJobExecution
getSystemProperties
public java.util.Properties getSystemProperties()
Convenient accessor for System properties to make it easy to access them from placeholder expressions.- Returns:
- the current System properties
getJobExecutionContext
public java.util.Map<java.lang.String,java.lang.Object> getJobExecutionContext()
- Returns:
- a map containing the items from the job
ExecutionContext
getJobParameters
public java.util.Map<java.lang.String,java.lang.Object> getJobParameters()
- Returns:
- a map containing the items from the
JobParameters
registerDestructionCallback
public void registerDestructionCallback(java.lang.String name, java.lang.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 java.lang.Object removeAttribute(java.lang.String name)
Override base class behaviour to ensure destruction callbacks are unregistered as well as the default behaviour.- Specified by:
removeAttribute
in interfaceorg.springframework.core.AttributeAccessor
- Overrides:
removeAttribute
in classSynchronizedAttributeAccessor
- See Also:
SynchronizedAttributeAccessor.removeAttribute(String)
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 theStepScope
.
getJobExecution
public JobExecution getJobExecution()
The currentJobExecution
that is active in this context.- Returns:
- the current
JobExecution
getId
public java.lang.String getId()
- Returns:
- unique identifier for this context based on the step execution
equals
public boolean equals(java.lang.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 classSynchronizedAttributeAccessor
hashCode
public int hashCode()
Overrides the default behaviour to provide a hash code based only on the job execution.- Overrides:
hashCode
in classSynchronizedAttributeAccessor
toString
public java.lang.String toString()
- Overrides:
toString
in classSynchronizedAttributeAccessor