org.springframework.batch.retry.policy
Class SimpleRetryPolicy

java.lang.Object
  extended by org.springframework.batch.retry.policy.SimpleRetryPolicy
All Implemented Interfaces:
RetryPolicy

public class SimpleRetryPolicy
extends Object
implements RetryPolicy

Simple retry policy that retries a fixed number of times for a set of named exceptions (and subclasses). The number of attempts includes the initial try, so e.g.

 retryTemplate = new RetryTemplate(new SimpleRetryPolicy(3));
 retryTemplate.execute(callback);
 
will execute the callback at least once, and as many as 3 times.

Author:
Dave Syer, Rob Harrop

Field Summary
static int DEFAULT_MAX_ATTEMPTS
          The default limit to the number of attempts for a new policy.
 
Constructor Summary
SimpleRetryPolicy()
          Create a SimpleRetryPolicy with the default number of retry attempts.
SimpleRetryPolicy(int maxAttempts, Map<Class<? extends Throwable>,Boolean> retryableExceptions)
          Create a SimpleRetryPolicy with the specified number of retry attempts.
 
Method Summary
 boolean canRetry(RetryContext context)
          Test for retryable operation based on the status.
 void close(RetryContext status)
           
 int getMaxAttempts()
          The maximum number of retry attempts before failure.
 RetryContext open(RetryContext parent)
          Get a status object that can be used to track the current operation according to this policy.
 void registerThrowable(RetryContext context, Throwable throwable)
          Update the status with another attempted retry and the latest exception.
 void setMaxAttempts(int retryAttempts)
          Setter for retry attempts.
 void setRetryableExceptions(Map<Class<? extends Throwable>,Boolean> retryableExceptions)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MAX_ATTEMPTS

public static final int DEFAULT_MAX_ATTEMPTS
The default limit to the number of attempts for a new policy.

See Also:
Constant Field Values
Constructor Detail

SimpleRetryPolicy

public SimpleRetryPolicy()
Create a SimpleRetryPolicy with the default number of retry attempts.


SimpleRetryPolicy

public SimpleRetryPolicy(int maxAttempts,
                         Map<Class<? extends Throwable>,Boolean> retryableExceptions)
Create a SimpleRetryPolicy with the specified number of retry attempts.

Parameters:
maxAttempts -
retryableExceptions -
Method Detail

setRetryableExceptions

public void setRetryableExceptions(Map<Class<? extends Throwable>,Boolean> retryableExceptions)
Parameters:
retryableExceptions -

setMaxAttempts

public void setMaxAttempts(int retryAttempts)
Setter for retry attempts.

Parameters:
retryAttempts - the number of attempts before a retry becomes impossible.

getMaxAttempts

public int getMaxAttempts()
The maximum number of retry attempts before failure.

Returns:
the maximum number of attempts

canRetry

public boolean canRetry(RetryContext context)
Test for retryable operation based on the status.

Specified by:
canRetry in interface RetryPolicy
Parameters:
context - the current retry status
Returns:
true if the last exception was retryable and the number of attempts so far is less than the limit.
See Also:
RetryPolicy.canRetry(org.springframework.batch.retry.RetryContext)

close

public void close(RetryContext status)
Specified by:
close in interface RetryPolicy
Parameters:
status - a retry status created by the RetryPolicy.open(RetryContext) method of this manager.
See Also:
RetryPolicy.close(RetryContext)

registerThrowable

public void registerThrowable(RetryContext context,
                              Throwable throwable)
Update the status with another attempted retry and the latest exception.

Specified by:
registerThrowable in interface RetryPolicy
Parameters:
context - the current status object.
See Also:
RetryPolicy.registerThrowable(RetryContext, Throwable)

open

public RetryContext open(RetryContext parent)
Get a status object that can be used to track the current operation according to this policy. Has to be aware of the latest exception and the number of attempts.

Specified by:
open in interface RetryPolicy
Parameters:
parent - the parent context if we are in a nested retry.
Returns:
a RetryContext object specific to this manager.
See Also:
RetryPolicy.open(RetryContext)


Copyright © 2013 SpringSource. All Rights Reserved.