public class StepSynchronizationManager
extends java.lang.Object
Step
. N.B.
it is the responsibility of every Step
implementation to ensure that
a StepContext
is available on every thread that might be involved in
a step execution, including worker threads from a pool.Constructor and Description |
---|
StepSynchronizationManager() |
Modifier and Type | Method and Description |
---|---|
static void |
close()
Method for unregistering the current context - should always and only be
used by in conjunction with a matching
register(StepExecution)
to ensure that getContext() always returns the correct value. |
static StepContext |
getContext()
Getter for the current context if there is one, otherwise returns
null . |
static StepContext |
register(StepExecution stepExecution)
Register a context with the current thread - always put a matching
close() call in a finally block to ensure that the correct
context is available in the enclosing block. |
static StepContext |
register(StepExecution stepExecution,
BatchPropertyContext propertyContext)
Register a context with the current thread - always put a matching
close() call in a finally block to ensure that the correct
context is available in the enclosing block. |
static void |
release()
A convenient "deep" close operation.
|
@Nullable public static StepContext getContext()
null
.StepContext
or null
if there is none (if one
has not been registered for this thread).public static StepContext register(StepExecution stepExecution)
close()
call in a finally block to ensure that the correct
context is available in the enclosing block.stepExecution
- the step context to registerStepContext
or the current one if it has the same
StepExecution
public static StepContext register(StepExecution stepExecution, BatchPropertyContext propertyContext)
close()
call in a finally block to ensure that the correct
context is available in the enclosing block.stepExecution
- the step context to registerpropertyContext
- an instance of BatchPropertyContext
to be
used by the StepSynchronizationManager.StepContext
or the current one if it has the same
StepExecution
public static void close()
register(StepExecution)
to ensure that getContext()
always returns the correct value.
Does not call StepContext.close()
- that is left up to the caller
because he has a reference to the context (having registered it) and only
he has knowledge of when the step actually ended.public static void release()
close()
if the step execution for the current context is ending.
Delegates to StepContext.close()
and then ensures that
close()
is also called in a finally block.