added support for retry analyzer (submitted by Jeremy)
diff --git a/src/jdk15/org/testng/util/RetryAnalyzerCount.java b/src/jdk15/org/testng/util/RetryAnalyzerCount.java
new file mode 100644
index 0000000..b2f5746
--- /dev/null
+++ b/src/jdk15/org/testng/util/RetryAnalyzerCount.java
@@ -0,0 +1,48 @@
+package org.testng.util;
+
+import org.testng.IRetryAnalyzer;
+import org.testng.ITestResult;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * An implementation of IRetryAnalyzer that allows you to specify
+ * the maximum number of times you want your test to be retried.
+ *
+ * @author tocman@gmail.com (Jeremie Lenfant-Engelmann)
+ */
+public abstract class RetryAnalyzerCount implements IRetryAnalyzer {
+
+ // Default retry once.
+ AtomicInteger count = new AtomicInteger(1);
+
+ /**
+ * Set the max number of time the method needs to be retried.
+ * @param count
+ */
+ protected void setCount(int count) {
+ this.count.set(count);
+ }
+
+ /**
+ * Retries the test if count is not 0.
+ * @param result The result of the test.
+ */
+ public boolean retry(ITestResult result) {
+ boolean retry = false;
+
+ if (count.intValue() > 0) {
+ retry = retryMethod(result);
+ count.decrementAndGet();
+ }
+ return retry;
+ }
+
+ /**
+ * The method implemented by the class that test if the test
+ * must be retried or not.
+ * @param result The result of the test.
+ * @return true if the test must be retried, false otherwise.
+ */
+ public abstract boolean retryMethod(ITestResult result);
+}