Add retry listeners

This commit is contained in:
dsyer
2008-03-08 12:15:27 +00:00
parent 7208151adb
commit b68fbd64c3

View File

@@ -23,6 +23,7 @@ import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemRecoverer;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.repeat.ExitStatus;
import org.springframework.batch.retry.RetryListener;
import org.springframework.batch.retry.RetryOperations;
import org.springframework.batch.retry.RetryPolicy;
import org.springframework.batch.retry.backoff.BackOffPolicy;
@@ -59,6 +60,8 @@ public class StatefulRetryStepFactoryBean extends DefaultStepFactoryBean {
private BackOffPolicy backOffPolicy;
private RetryListener[] retryListeners;
/**
* Public setter for the retry limit. Each item can be retried up to this
* limit.
@@ -84,6 +87,14 @@ public class StatefulRetryStepFactoryBean extends DefaultStepFactoryBean {
this.backOffPolicy = backOffPolicy;
}
/**
* Public setter for the {@link RetryListener}s.
* @param retryListeners the {@link RetryListener}s to set
*/
public void setRetryListeners(RetryListener[] retryListeners) {
this.retryListeners = retryListeners;
}
/**
* Public setter for the {@link ItemKeyGenerator} which will be used to
* cache failed items between transactions. If it is not injected but the
@@ -135,6 +146,9 @@ public class StatefulRetryStepFactoryBean extends DefaultStepFactoryBean {
ItemReaderRetryPolicy itemProviderRetryPolicy = new ItemReaderRetryPolicy(retryPolicy);
RetryTemplate retryTemplate = new RetryTemplate();
if (retryListeners!=null) {
retryTemplate.setListeners(retryListeners);
}
retryTemplate.setRetryPolicy(itemProviderRetryPolicy);
if (backOffPolicy != null) {
retryTemplate.setBackOffPolicy(backOffPolicy);