Review process: Break cycle introduced when RetrySynchManager was moved into support package.

This commit is contained in:
dsyer
2008-03-14 11:33:18 +00:00
parent 07877a9538
commit 2424c0ec39
17 changed files with 90 additions and 114 deletions

View File

@@ -19,13 +19,12 @@ package org.springframework.batch.retry.policy;
import junit.framework.TestCase;
import org.springframework.batch.retry.RetryContext;
import org.springframework.batch.retry.support.RetrySynchronizationManager;
public class AlwaysRetryPolicyTests extends TestCase {
public void testSimpleOperations() throws Exception {
AlwaysRetryPolicy policy = new AlwaysRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
assertTrue(policy.canRetry(context));
policy.registerThrowable(context, null);
@@ -36,7 +35,7 @@ public class AlwaysRetryPolicyTests extends TestCase {
public void testRetryCount() throws Exception {
AlwaysRetryPolicy policy = new AlwaysRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
policy.registerThrowable(context, null);
assertEquals(0, context.getRetryCount());
@@ -47,9 +46,8 @@ public class AlwaysRetryPolicyTests extends TestCase {
public void testParent() throws Exception {
AlwaysRetryPolicy policy = new AlwaysRetryPolicy();
RetryContext context = policy.open(null);
RetrySynchronizationManager.register(context);
RetryContext child = policy.open(null);
RetryContext context = policy.open(null, null);
RetryContext child = policy.open(null, context);
assertNotSame(child, context);
assertSame(context, child.getParent());
}

View File

@@ -24,13 +24,12 @@ import junit.framework.TestCase;
import org.springframework.batch.retry.RetryContext;
import org.springframework.batch.retry.RetryPolicy;
import org.springframework.batch.retry.TerminatedRetryException;
import org.springframework.batch.retry.support.RetrySynchronizationManager;
public class CompositeRetryPolicyTests extends TestCase {
public void testEmptyPolicies() throws Exception {
CompositeRetryPolicy policy = new CompositeRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
assertTrue(policy.canRetry(context));
}
@@ -38,7 +37,7 @@ public class CompositeRetryPolicyTests extends TestCase {
public void testTrivialPolicies() throws Exception {
CompositeRetryPolicy policy = new CompositeRetryPolicy();
policy.setPolicies(new RetryPolicy[] { new MockRetryPolicySupport(), new MockRetryPolicySupport() });
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
assertTrue(policy.canRetry(context));
}
@@ -50,7 +49,7 @@ public class CompositeRetryPolicyTests extends TestCase {
return false;
}
} });
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
assertFalse(policy.canRetry(context));
}
@@ -68,7 +67,7 @@ public class CompositeRetryPolicyTests extends TestCase {
errorRegistered = true;
}
} });
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
assertTrue(policy.canRetry(context));
policy.registerThrowable(context, null);
@@ -90,7 +89,7 @@ public class CompositeRetryPolicyTests extends TestCase {
list.add("2");
}
} });
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
policy.close(context);
assertEquals(2, list.size());
@@ -99,7 +98,7 @@ public class CompositeRetryPolicyTests extends TestCase {
public void testRetryCount() throws Exception {
CompositeRetryPolicy policy = new CompositeRetryPolicy();
policy.setPolicies(new RetryPolicy[] { new MockRetryPolicySupport(), new MockRetryPolicySupport() });
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
policy.registerThrowable(context, null);
assertEquals(0, context.getRetryCount());
@@ -110,9 +109,8 @@ public class CompositeRetryPolicyTests extends TestCase {
public void testParent() throws Exception {
CompositeRetryPolicy policy = new CompositeRetryPolicy();
RetryContext context = policy.open(null);
RetrySynchronizationManager.register(context);
RetryContext child = policy.open(null);
RetryContext context = policy.open(null, null);
RetryContext child = policy.open(null, context);
assertNotSame(child, context);
assertSame(context, child.getParent());
}

View File

@@ -23,7 +23,6 @@ import java.util.Map;
import junit.framework.TestCase;
import org.springframework.batch.retry.RetryContext;
import org.springframework.batch.retry.support.RetrySynchronizationManager;
import org.springframework.batch.support.ExceptionClassifierSupport;
public class ExceptionClassifierRetryPolicyTests extends TestCase {
@@ -31,13 +30,13 @@ public class ExceptionClassifierRetryPolicyTests extends TestCase {
ExceptionClassifierRetryPolicy policy = new ExceptionClassifierRetryPolicy();
public void testDefaultPolicies() throws Exception {
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
}
public void testTrivialPolicies() throws Exception {
policy.setPolicyMap(Collections.singletonMap(ExceptionClassifierSupport.DEFAULT, new MockRetryPolicySupport()));
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
assertTrue(policy.canRetry(context));
}
@@ -45,7 +44,7 @@ public class ExceptionClassifierRetryPolicyTests extends TestCase {
public void testNullPolicies() throws Exception {
policy.setPolicyMap(new HashMap());
try {
policy.open(null);
policy.open(null, null);
fail("Expected IllegalArgumentException");
}
catch (IllegalArgumentException e) {
@@ -60,7 +59,7 @@ public class ExceptionClassifierRetryPolicyTests extends TestCase {
map.put("foo", new NeverRetryPolicy());
policy.setPolicyMap(map);
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
assertTrue(policy.canRetry(context));
@@ -82,7 +81,7 @@ public class ExceptionClassifierRetryPolicyTests extends TestCase {
assertTrue(policy.canRetry(context));
// But now the classifier will be active in the new context...
context = policy.open(null);
context = policy.open(null, null);
assertTrue(policy.canRetry(context));
policy.registerThrowable(context, new IllegalArgumentException());
assertFalse(policy.canRetry(context));
@@ -97,7 +96,7 @@ public class ExceptionClassifierRetryPolicyTests extends TestCase {
count++;
}
}));
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
// The mapped (child) policy hasn't been used yet, so if we close now
// we don't incur the possible expense of ceating the child context.
@@ -112,7 +111,7 @@ public class ExceptionClassifierRetryPolicyTests extends TestCase {
public void testRetryCount() throws Exception {
ExceptionClassifierRetryPolicy policy = new ExceptionClassifierRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
policy.registerThrowable(context, null);
assertEquals(0, context.getRetryCount());
@@ -123,9 +122,8 @@ public class ExceptionClassifierRetryPolicyTests extends TestCase {
public void testParent() throws Exception {
ExceptionClassifierRetryPolicy policy = new ExceptionClassifierRetryPolicy();
RetryContext context = policy.open(null);
RetrySynchronizationManager.register(context);
RetryContext child = policy.open(null);
RetryContext context = policy.open(null, null);
RetryContext child = policy.open(null, context);
assertNotSame(child, context);
assertSame(context, child.getParent());
}

View File

@@ -196,7 +196,7 @@ public class ExternalRetryPolicyTests extends TestCase {
// do nothing
}
public RetryContext open(RetryCallback callback) {
public RetryContext open(RetryCallback callback, RetryContext parent) {
RetryContextSupport context = new RetryContextSupport(null);
context.setAttribute(MockRetryCallback.EXHAUSTED, Boolean.valueOf(!canRetry(context)));
return context;

View File

@@ -73,7 +73,7 @@ public class ItemReaderRetryPolicyTests extends TestCase {
count++;
list.add(data);
}
}));
}), null);
assertNotNull(context);
// we haven't called the processor yet...
assertEquals(0, count);
@@ -88,7 +88,7 @@ public class ItemReaderRetryPolicyTests extends TestCase {
public Object doWithRetry(RetryContext context) throws Throwable {
return null;
}
});
}, null);
fail("Expected IllegalStateException");
}
catch (IllegalStateException e) {
@@ -103,7 +103,7 @@ public class ItemReaderRetryPolicyTests extends TestCase {
public void write(Object data) {
count++;
}
}));
}), null);
assertNotNull(context);
// We can always retry if delegate says so...
@@ -117,7 +117,7 @@ public class ItemReaderRetryPolicyTests extends TestCase {
count++;
list.add(data);
}
}));
}), null);
assertNotNull(context);
policy.registerThrowable(context, new Exception());
assertFalse(policy.canRetry(context));
@@ -130,7 +130,7 @@ public class ItemReaderRetryPolicyTests extends TestCase {
count++;
list.add(data);
}
}));
}), null);
assertNotNull(context);
policy.registerThrowable(context, new Exception());
assertFalse(policy.canRetry(context));
@@ -153,14 +153,14 @@ public class ItemReaderRetryPolicyTests extends TestCase {
policy.setDelegate(new SimpleRetryPolicy(2));
// First call...
RetryContext context = policy.open(callback);
RetryContext context = policy.open(callback, null);
assertNotNull(context);
policy.registerThrowable(context, new Exception());
assertTrue(policy.canRetry(context));
policy.close(context);
// Second call...
context = policy.open(callback);
context = policy.open(callback, null);
assertNotNull(context);
policy.registerThrowable(context, new Exception());
assertFalse(policy.canRetry(context));
@@ -179,13 +179,13 @@ public class ItemReaderRetryPolicyTests extends TestCase {
public void write(Object data) {
}
});
RetryContext context = policy.open(callback);
RetryContext context = policy.open(callback, null);
assertNotNull(context);
assertTrue(policy.canRetry(context));
policy.registerThrowable(context, new Exception());
assertFalse(policy.canRetry(context));
assertEquals(0, count);
context = policy.open(callback);
context = policy.open(callback, null);
// On the second retry, the recovery path is taken...
Object result = policy.handleRetryExhausted(context);
assertNotNull(result); // default result is null
@@ -207,7 +207,7 @@ public class ItemReaderRetryPolicyTests extends TestCase {
policy.setDelegate(new SimpleRetryPolicy(1));
MockFailedItemProvider provider = new MockFailedItemProvider(Collections.EMPTY_LIST);
ItemReaderRetryCallback callback = new ItemReaderRetryCallback(provider, null);
policy.open(callback);
policy.open(callback, null);
assertEquals(1, provider.hasFailedCount);
}
@@ -245,7 +245,7 @@ public class ItemReaderRetryPolicyTests extends TestCase {
});
policy.setDelegate(new SimpleRetryPolicy(1));
RetryContext context = policy.open(callback);
RetryContext context = policy.open(callback, null);
assertNotNull(context);
assertEquals(0, count);
@@ -257,7 +257,7 @@ public class ItemReaderRetryPolicyTests extends TestCase {
Object result = policy.handleRetryExhausted(context);
assertEquals("foo", result); // default result is last item
context = policy.open(callback);
context = policy.open(callback, null);
// True after exhausted - the history is reset...
assertTrue(policy.canRetry(context));
}
@@ -270,7 +270,7 @@ public class ItemReaderRetryPolicyTests extends TestCase {
count++;
list.add(data);
}
}));
}), null);
assertNotNull(context);
policy.registerThrowable(context, null);
assertEquals(0, context.getRetryCount());
@@ -289,11 +289,11 @@ public class ItemReaderRetryPolicyTests extends TestCase {
policy = new ItemReaderRetryPolicy();
policy.setDelegate(new SimpleRetryPolicy(1));
RetryContext context = policy.open(callback);
RetryContext context = policy.open(callback, null);
assertNotNull(context);
policy.registerThrowable(context, new RuntimeException("foo"));
assertEquals(1, context.getRetryCount());
context = policy.open(callback);
context = policy.open(callback, null);
assertEquals(1, context.getRetryCount());
policy.registerThrowable(context, new RuntimeException("foo"));
assertEquals(2, context.getRetryCount());

View File

@@ -19,13 +19,12 @@ package org.springframework.batch.retry.policy;
import junit.framework.TestCase;
import org.springframework.batch.retry.RetryContext;
import org.springframework.batch.retry.support.RetrySynchronizationManager;
public class NeverRetryPolicyTests extends TestCase {
public void testSimpleOperations() throws Exception {
NeverRetryPolicy policy = new NeverRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
// We can retry until the first exception is registered...
assertTrue(policy.canRetry(context));
@@ -38,7 +37,7 @@ public class NeverRetryPolicyTests extends TestCase {
public void testRetryCount() throws Exception {
NeverRetryPolicy policy = new NeverRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
policy.registerThrowable(context, null);
assertEquals(0, context.getRetryCount());
@@ -49,9 +48,8 @@ public class NeverRetryPolicyTests extends TestCase {
public void testParent() throws Exception {
NeverRetryPolicy policy = new NeverRetryPolicy();
RetryContext context = policy.open(null);
RetrySynchronizationManager.register(context);
RetryContext child = policy.open(null);
RetryContext context = policy.open(null, null);
RetryContext child = policy.open(null, context);
assertNotSame(child, context);
assertSame(context, child.getParent());
}

View File

@@ -19,7 +19,6 @@ package org.springframework.batch.retry.policy;
import junit.framework.TestCase;
import org.springframework.batch.retry.RetryContext;
import org.springframework.batch.retry.support.RetrySynchronizationManager;
public class SimpleRetryPolicyTests extends TestCase {
@@ -35,14 +34,14 @@ public class SimpleRetryPolicyTests extends TestCase {
public void testCanRetryIfNoException() throws Exception {
SimpleRetryPolicy policy = new SimpleRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertTrue(policy.canRetry(context));
}
public void testEmptyExceptionsNeverRetry() throws Exception {
SimpleRetryPolicy policy = new SimpleRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
// We can't retry any exceptions...
policy.setRetryableExceptionClasses(new Class[0]);
@@ -54,16 +53,16 @@ public class SimpleRetryPolicyTests extends TestCase {
public void testRetryLimitInitialState() throws Exception {
SimpleRetryPolicy policy = new SimpleRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertTrue(policy.canRetry(context));
policy.setMaxAttempts(0);
context = policy.open(null);
context = policy.open(null, null);
assertFalse(policy.canRetry(context));
}
public void testRetryLimitSubsequentState() throws Exception {
SimpleRetryPolicy policy = new SimpleRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
policy.setMaxAttempts(2);
assertTrue(policy.canRetry(context));
policy.registerThrowable(context, new Exception());
@@ -74,7 +73,7 @@ public class SimpleRetryPolicyTests extends TestCase {
public void testRetryCount() throws Exception {
SimpleRetryPolicy policy = new SimpleRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
policy.registerThrowable(context, null);
assertEquals(0, context.getRetryCount());
@@ -85,9 +84,8 @@ public class SimpleRetryPolicyTests extends TestCase {
public void testParent() throws Exception {
SimpleRetryPolicy policy = new SimpleRetryPolicy();
RetryContext context = policy.open(null);
RetrySynchronizationManager.register(context);
RetryContext child = policy.open(null);
RetryContext context = policy.open(null, null);
RetryContext child = policy.open(null, context);
assertNotSame(child, context);
assertSame(context, child.getParent());
}

View File

@@ -19,14 +19,13 @@ package org.springframework.batch.retry.policy;
import junit.framework.TestCase;
import org.springframework.batch.retry.RetryContext;
import org.springframework.batch.retry.support.RetrySynchronizationManager;
public class TimeoutRetryPolicyTests extends TestCase {
public void testTimeoutPreventsRetry() throws Exception {
TimeoutRetryPolicy policy = new TimeoutRetryPolicy();
policy.setTimeout(100);
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
policy.registerThrowable(context, new Exception());
assertTrue(policy.canRetry(context));
Thread.sleep(200);
@@ -36,7 +35,7 @@ public class TimeoutRetryPolicyTests extends TestCase {
public void testRetryCount() throws Exception {
TimeoutRetryPolicy policy = new TimeoutRetryPolicy();
RetryContext context = policy.open(null);
RetryContext context = policy.open(null, null);
assertNotNull(context);
policy.registerThrowable(context, null);
assertEquals(0, context.getRetryCount());
@@ -47,9 +46,8 @@ public class TimeoutRetryPolicyTests extends TestCase {
public void testParent() throws Exception {
TimeoutRetryPolicy policy = new TimeoutRetryPolicy();
RetryContext context = policy.open(null);
RetrySynchronizationManager.register(context);
RetryContext child = policy.open(null);
RetryContext context = policy.open(null, null);
RetryContext child = policy.open(null, context);
assertNotSame(child, context);
assertSame(context, child.getParent());
}