Example usage for org.springframework.batch.repeat.support RepeatSynchronizationManager register

List of usage examples for org.springframework.batch.repeat.support RepeatSynchronizationManager register

Introduction

In this page you can find the example usage for org.springframework.batch.repeat.support RepeatSynchronizationManager register.

Prototype

public static RepeatContext register(RepeatContext context) 

Source Link

Document

Method for registering a context - should only be used by RepeatOperations implementations to ensure that #getContext() always returns the correct value.

Usage

From source file:org.springframework.batch.repeat.support.RepeatTemplate.java

/**
 * Execute the batch callback until the completion policy decides that we
 * are finished. Wait for the whole batch to finish before returning even if
 * the task executor is asynchronous.//from w ww.j  a v a 2s  .  c o  m
 * 
 * @see org.springframework.batch.repeat.RepeatOperations#iterate(org.springframework.batch.repeat.RepeatCallback)
 */
@Override
public RepeatStatus iterate(RepeatCallback callback) {

    RepeatContext outer = RepeatSynchronizationManager.getContext();

    RepeatStatus result = RepeatStatus.CONTINUABLE;
    try {
        // This works with an asynchronous TaskExecutor: the
        // interceptors have to wait for the child processes.
        result = executeInternal(callback);
    } finally {
        RepeatSynchronizationManager.clear();
        if (outer != null) {
            RepeatSynchronizationManager.register(outer);
        }
    }

    return result;
}

From source file:org.springframework.batch.repeat.support.RepeatTemplate.java

/**
 * Delegate to the {@link CompletionPolicy}.
 * //from   w  w  w.  j  a  v  a2 s . co m
 * @see org.springframework.batch.repeat.CompletionPolicy#start(RepeatContext)
 */
protected RepeatContext start() {
    RepeatContext parent = RepeatSynchronizationManager.getContext();
    RepeatContext context = completionPolicy.start(parent);
    RepeatSynchronizationManager.register(context);
    logger.debug("Starting repeat context.");
    return context;
}