Incomplete - task 87: Refactor KeyedItemReader

Split off from ItemReader interface.
This commit is contained in:
dsyer
2008-03-01 15:24:06 +00:00
parent 886e8b4f75
commit b89a68dfeb
18 changed files with 220 additions and 116 deletions

View File

@@ -19,6 +19,7 @@ package org.springframework.batch.container.jms;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
@@ -48,16 +49,24 @@ public class BatchMessageListenerContainerTests extends TestCase {
return ExitStatus.CONTINUABLE; // means we can continue to operate, but no message is received
}
};
container = new BatchMessageListenerContainer(template);
container = getContainer(template);
boolean received = doExecute(null, null);
assertEquals(1, count);
assertFalse("Message received", received);
}
private BatchMessageListenerContainer getContainer(RepeatTemplate template) {
MockControl connectionFactoryControl = MockControl.createControl(ConnectionFactory.class);
ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
BatchMessageListenerContainer container = new BatchMessageListenerContainer(template);
container.setConnectionFactory(connectionFactory);
return container;
}
public void testReceiveAndExecuteWithCallback() throws Exception {
RepeatTemplate template = new RepeatTemplate();
template.setCompletionPolicy(new SimpleCompletionPolicy(2));
container = new BatchMessageListenerContainer(template);
container = getContainer(template);
MockControl sessionControl = MockControl.createNiceControl(Session.class);
MockControl consumerControl = MockControl.createControl(MessageConsumer.class);
@@ -87,7 +96,7 @@ public class BatchMessageListenerContainerTests extends TestCase {
public void testReceiveAndExecuteWithCallbackReturningNull() throws Exception {
RepeatTemplate template = new RepeatTemplate();
template.setCompletionPolicy(new SimpleCompletionPolicy(2));
container = new BatchMessageListenerContainer(template);
container = getContainer(template);
MockControl sessionControl = MockControl.createNiceControl(Session.class);
MockControl consumerControl = MockControl.createControl(MessageConsumer.class);
@@ -114,7 +123,7 @@ public class BatchMessageListenerContainerTests extends TestCase {
public void testTransactionalReceiveAndExecuteWithCallbackThrowingException() throws Exception {
RepeatTemplate template = new RepeatTemplate();
template.setCompletionPolicy(new SimpleCompletionPolicy(2));
container = new BatchMessageListenerContainer(template);
container = getContainer(template);
container.setSessionTransacted(true);
boolean received = doTestWithException(new IllegalStateException("No way!"), true, 2);
assertFalse("Message received", received);
@@ -123,7 +132,7 @@ public class BatchMessageListenerContainerTests extends TestCase {
public void testNonTransactionalReceiveAndExecuteWithCallbackThrowingException() throws Exception {
RepeatTemplate template = new RepeatTemplate();
template.setCompletionPolicy(new SimpleCompletionPolicy(2));
container = new BatchMessageListenerContainer(template);
container = getContainer(template);
container.setSessionTransacted(false);
boolean received = doTestWithException(new IllegalStateException("No way!"), false, 2);
assertTrue("Message not received", received);
@@ -132,7 +141,7 @@ public class BatchMessageListenerContainerTests extends TestCase {
public void testNonTransactionalReceiveAndExecuteWithCallbackThrowingError() throws Exception {
RepeatTemplate template = new RepeatTemplate();
template.setCompletionPolicy(new SimpleCompletionPolicy(2));
container = new BatchMessageListenerContainer(template);
container = getContainer(template);
container.setSessionTransacted(false);
try {
boolean received = doTestWithException(new RuntimeException("No way!"), false, 2);

View File

@@ -9,6 +9,7 @@ import junit.framework.TestCase;
import org.springframework.batch.io.oxm.domain.Trade;
import org.springframework.batch.io.xml.StaxEventItemReader;
import org.springframework.batch.io.xml.oxm.UnmarshallingEventReaderDeserializer;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.oxm.Unmarshaller;
@@ -28,6 +29,9 @@ public abstract class AbstractStaxEventReaderItemReaderTests extends TestCase {
source.setFragmentRootElementName("trade");
UnmarshallingEventReaderDeserializer deserializer = new UnmarshallingEventReaderDeserializer(getUnmarshaller());
source.setFragmentDeserializer(deserializer);
source.open(new ExecutionContext());
}
public void testRead() {

View File

@@ -14,6 +14,7 @@ import org.custommonkey.xmlunit.XMLUnit;
import org.springframework.batch.io.oxm.domain.Trade;
import org.springframework.batch.io.xml.StaxEventItemWriter;
import org.springframework.batch.io.xml.oxm.MarshallingEventWriterSerializer;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
@@ -58,6 +59,8 @@ public abstract class AbstractStaxEventWriterItemWriterTests extends TestCase {
MarshallingEventWriterSerializer mapper = new MarshallingEventWriterSerializer(getMarshaller());
writer.setSerializer(mapper);
writer.open(new ExecutionContext());
}
protected void tearDown() throws Exception {

View File

@@ -21,7 +21,7 @@ import java.util.List;
import javax.sql.DataSource;
import org.springframework.batch.item.KeyedItemReader;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.reader.AbstractItemReaderRecoverer;
import org.springframework.batch.item.writer.AbstractItemWriter;
import org.springframework.batch.repeat.ExitStatus;
@@ -48,7 +48,7 @@ public class ExternalRetryInBatchTests extends AbstractDependencyInjectionSpring
private RepeatTemplate repeatTemplate;
private KeyedItemReader provider;
private ItemReader provider;
private JdbcTemplate jdbcTemplate;

View File

@@ -21,7 +21,7 @@ import java.util.List;
import javax.sql.DataSource;
import org.springframework.batch.item.KeyedItemReader;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.reader.AbstractItemReaderRecoverer;
import org.springframework.batch.item.writer.AbstractItemWriter;
import org.springframework.batch.retry.callback.ItemReaderRetryCallback;
@@ -41,7 +41,7 @@ public class ExternalRetryTests extends AbstractDependencyInjectionSpringContext
private RetryTemplate retryTemplate;
private KeyedItemReader provider;
private ItemReader provider;
private JdbcTemplate jdbcTemplate;