Comcast/jrugged — pull request #22 by weggert (2013-11-13 05:45:39+00:00)
Title: Add a RetryableAspect

This change adds a RetryableAspect. The Retryable aspect allows a method
to be annotated with an @Retryable annotation to cause automatic retries
in the case of an exception.

This is particularly useful in cases where data is being written in a
way where a conflict exception may occur.

The @Retryable annotation takes 3 arguments:
maxRetries - The maximum number of retries. Defaults to 0.
retryOn - The list of exception classes to retry on. Defaults to all.
retryDelayMillis - The delay between retries in millis. Defaults to 0.

The @Retryable annotation works in much the same way as the
@CircuitBreaker and @PerformanceMonitor annotations, and so all of
the same caveats apply. Trying to call an @Retryable method from within
the same instance will bypass the proxy and result in no retrying.