diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/explore/BatchMetaDataExplorer.java b/spring-batch-core/src/main/java/org/springframework/batch/core/explore/BatchMetaDataExplorer.java new file mode 100644 index 000000000..06aa8bb1e --- /dev/null +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/explore/BatchMetaDataExplorer.java @@ -0,0 +1,51 @@ +/* + * Copyright 2006-2007 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.batch.core.explore; + +import java.util.Collection; +import java.util.Date; +import java.util.EnumSet; + +import org.springframework.batch.core.BatchStatus; +import org.springframework.batch.core.JobExecution; +import org.springframework.batch.core.JobInstance; + +/** + * @author Dave Syer + * + */ +public interface BatchMetaDataExplorer { + + int countJobExecutionsByStatus(EnumSet statuses); + + /** + * @param statuses the status values to search + * @param start the start record (defaults to 0) + * @param count the maximum number of objects to return + * @return the {@link JobExecution} objects that have the provided status, + * sorted in reverse order by start time. + */ + Collection findJobExecutionsByStatus(EnumSet statuses, int start, int count); + + int countJobExecutionsByDate(Date from, Date to); + + Collection findJobExecutionsByDate(Date from, Date to, int start, int count); + + Collection findJobInstancesByJobName(String jobName); + + Collection getJobExecutionsForJobInstance(JobInstance jobInstance); + +} diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/FlatFileItemReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/FlatFileItemReader.java index d956f465a..d8438ad31 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/FlatFileItemReader.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/FlatFileItemReader.java @@ -245,7 +245,7 @@ public class FlatFileItemReader extends AbstractBufferedItemReaderItemStream< if (record != null) { try { FieldSet tokenizedLine = tokenizer.tokenize(record); - return fieldSetMapper.mapLine(tokenizedLine, lineCount); + return fieldSetMapper.mapLine(tokenizedLine); } catch (RuntimeException ex) { // add current line count to message and re-throw diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapper.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapper.java index 231122caa..5ffa00434 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapper.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapper.java @@ -102,7 +102,7 @@ public class BeanWrapperFieldSetMapper extends DefaultPropertyEditorRegistrar /** * The bean name (id) for an object that can be populated from the field set - * that will be passed into {@link #mapLine(FieldSet, int)}. Typically a + * that will be passed into {@link #mapLine(FieldSet)}. Typically a * prototype scoped bean so that a new instance is returned for each field * set mapped. * @@ -118,7 +118,7 @@ public class BeanWrapperFieldSetMapper extends DefaultPropertyEditorRegistrar /** * Public setter for the type of bean to create instead of using a prototype * bean. An object of this type will be created from its default constructor - * for every call to {@link #mapLine(FieldSet, int)}.
+ * for every call to {@link #mapLine(FieldSet)}.
* * Either this property or the prototype bean name must be specified, but * not both. @@ -153,10 +153,10 @@ public class BeanWrapperFieldSetMapper extends DefaultPropertyEditorRegistrar * the {@link DataBinder} from {@link #createBinder(Object)} has errors * after binding). * - * @see org.springframework.batch.item.file.mapping.FieldSetMapper#mapLine(org.springframework.batch.item.file.mapping.FieldSet, int) + * @see org.springframework.batch.item.file.mapping.FieldSetMapper#mapLine(org.springframework.batch.item.file.mapping.FieldSet) */ @SuppressWarnings("unchecked") - public T mapLine(FieldSet fs, int lineNum) { + public T mapLine(FieldSet fs) { T copy = getBean(); DataBinder binder = createBinder(copy); binder.bind(new MutablePropertyValues(getBeanProperties(copy, fs.getProperties()))); diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/FieldSetMapper.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/FieldSetMapper.java index fffeb66a6..d0b6c20b7 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/FieldSetMapper.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/FieldSetMapper.java @@ -30,7 +30,6 @@ public interface FieldSetMapper { * Method used to map data obtained from a {@link FieldSet} into an object. * * @param fs the {@link FieldSet} to map - * @param lineNum the current line number (if known), or negative if not */ - public T mapLine(FieldSet fs, int lineNum); + public T mapLine(FieldSet fs); } diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/PassThroughFieldSetMapper.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/PassThroughFieldSetMapper.java index e26de83fe..8d8b4bef6 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/PassThroughFieldSetMapper.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/mapping/PassThroughFieldSetMapper.java @@ -31,7 +31,7 @@ public class PassThroughFieldSetMapper implements FieldSetMapper
{ * org.springframework.batch.io.file.FieldSetMapper#mapLine(org.springframework * .batch.io.file.FieldSet) */ - public FieldSet mapLine(FieldSet fs, int lineNum) { + public FieldSet mapLine(FieldSet fs) { return fs; } diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/AggregateItemFieldSetMapper.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/AggregateItemFieldSetMapper.java index 790962237..bd98778a4 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/AggregateItemFieldSetMapper.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/AggregateItemFieldSetMapper.java @@ -78,14 +78,12 @@ public class AggregateItemFieldSetMapper implements FieldSetMapper mapLine(FieldSet fieldSet, int lineNum) { + public AggregateItem mapLine(FieldSet fieldSet) { if (fieldSet.readString(0).equals(begin)) { return AggregateItem.getHeader(); @@ -94,7 +92,7 @@ public class AggregateItemFieldSetMapper implements FieldSetMapper(delegate.mapLine(fieldSet, lineNum)); + return new AggregateItem(delegate.mapLine(fieldSet)); } diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/CompositeItemWriter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/CompositeItemWriter.java index 233034fa5..79592091b 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/CompositeItemWriter.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/CompositeItemWriter.java @@ -1,7 +1,5 @@ package org.springframework.batch.item.support; -import java.util.List; - import org.springframework.batch.item.ClearFailedException; import org.springframework.batch.item.FlushFailedException; import org.springframework.batch.item.ItemWriter; @@ -15,9 +13,9 @@ import org.springframework.batch.item.ItemWriter; */ public class CompositeItemWriter implements ItemWriter { - private List> delegates; + private ItemWriter[] delegates; - public void setDelegates(List> delegates) { + public void setDelegates(ItemWriter[] delegates) { this.delegates = delegates; } @@ -25,19 +23,19 @@ public class CompositeItemWriter implements ItemWriter { * Calls injected ItemProcessors in order. */ public void write(T item) throws Exception { - for (ItemWriter writer : delegates) { + for (ItemWriter writer : delegates) { writer.write(item); } } public void clear() throws ClearFailedException { - for (ItemWriter writer : delegates) { + for (ItemWriter writer : delegates) { writer.clear(); } } public void flush() throws FlushFailedException { - for (ItemWriter writer : delegates) { + for (ItemWriter writer : delegates) { writer.flush(); } } diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/FlatFileItemReaderBasicTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/FlatFileItemReaderBasicTests.java index f594aedd7..ec2804f87 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/FlatFileItemReaderBasicTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/FlatFileItemReaderBasicTests.java @@ -18,8 +18,6 @@ package org.springframework.batch.item.file; import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; import junit.framework.TestCase; @@ -104,23 +102,6 @@ public class FlatFileItemReaderBasicTests extends TestCase { assertEquals(null, itemReader.read()); } - /** - * Regular usage of read method - */ - public void testReadWithLineNumber() throws Exception { - final List list = new ArrayList(); - itemReader.setFieldSetMapper(new FieldSetMapper
() { - public FieldSet mapLine(FieldSet fs, int lineNum) { - list.add(lineNum); - return fs; - } - }); - itemReader.open(executionContext); - assertEquals("[FlatFileInputTemplate-TestData]", itemReader.read().toString()); - assertEquals(new Integer(1), list.get(0)); - assertEquals(null, itemReader.read()); - } - /** * Regular usage of read method */ @@ -142,7 +123,7 @@ public class FlatFileItemReaderBasicTests extends TestCase { public void testReadWithMapperError() throws Exception { itemReader.setFieldSetMapper(new FieldSetMapper
() { - public FieldSet mapLine(FieldSet fs, int lineNum) { + public FieldSet mapLine(FieldSet fs) { throw new RuntimeException("foo"); } }); diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/FlatFileItemReaderCommonTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/FlatFileItemReaderCommonTests.java index 65b25d681..8c2fc21f4 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/FlatFileItemReaderCommonTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/FlatFileItemReaderCommonTests.java @@ -21,7 +21,7 @@ public class FlatFileItemReaderCommonTests extends CommonItemStreamItemReaderTes Resource resource = new ByteArrayResource(FOOS.getBytes()); tested.setResource(resource); tested.setFieldSetMapper(new FieldSetMapper() { - public Foo mapLine(FieldSet fs, int lineNum) { + public Foo mapLine(FieldSet fs) { Foo foo = new Foo(); foo.setValue(fs.readInt(0)); return foo; diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/MultiResourceItemReaderFlatFileTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/MultiResourceItemReaderFlatFileTests.java index 27c9738b1..5f24f1463 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/MultiResourceItemReaderFlatFileTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/MultiResourceItemReaderFlatFileTests.java @@ -23,7 +23,7 @@ public class MultiResourceItemReaderFlatFileTests extends FlatFileItemReader fileReader = new FlatFileItemReader(); fileReader.setFieldSetMapper(new FieldSetMapper() { - public Foo mapLine(FieldSet fs, int lineNum) { + public Foo mapLine(FieldSet fs) { Foo foo = new Foo(); foo.setValue(fs.readInt(0)); return foo; diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapperTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapperTests.java index 155722066..1810bd37c 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapperTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/mapping/BeanWrapperFieldSetMapperTests.java @@ -63,7 +63,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { FieldSet fieldSet = new DefaultFieldSet(new String[] { "This is some dummy string", "true", "C" }, new String[] { "varString", "varBoolean", "varChar" }); - TestObject result = mapper.mapLine(fieldSet, -1); + TestObject result = mapper.mapLine(fieldSet); assertEquals("This is some dummy string", result.getVarString()); assertEquals(true, result.isVarBoolean()); assertEquals('C', result.getVarChar()); @@ -78,7 +78,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { FieldSet fieldSet = new DefaultFieldSet(new String[] { "This is some dummy string", "true", "C" }, new String[] { "varString", "varBoolean", "varChar" }); - TestObject result = mapper.mapLine(fieldSet, -1); + TestObject result = mapper.mapLine(fieldSet); assertEquals("This is some dummy string", result.getVarString()); assertEquals(true, result.isVarBoolean()); assertEquals('C', result.getVarChar()); @@ -93,7 +93,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { FieldSet fieldSet = new DefaultFieldSet(new String[] { "This is some dummy string", "true", "C" }, new String[] { "VarString", "VAR_BOOLEAN", "VAR_CHAR" }); - TestObject result = mapper.mapLine(fieldSet, -1); + TestObject result = mapper.mapLine(fieldSet); assertEquals("This is some dummy string", result.getVarString()); assertEquals(true, result.isVarBoolean()); assertEquals('C', result.getVarChar()); @@ -107,7 +107,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { FieldSet fieldSet = new DefaultFieldSet(new String[] { "This is some dummy string", "true", "C" }, new String[] { "varString", "varBoolean", "varChar" }); - TestObject result = mapper.mapLine(fieldSet, -1); + TestObject result = mapper.mapLine(fieldSet); assertEquals("This is some dummy string", result.getVarString()); assertEquals(true, result.isVarBoolean()); assertEquals('C', result.getVarChar()); @@ -130,7 +130,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { new String[] { "This is some dummy string", "1", "Another dummy", "2" }, new String[] { "valueA", "valueB", "testObjectB.valueA", "testObjectB.testObjectC.value" }); - TestNestedA result = mapper.mapLine(fieldSet, -1); + TestNestedA result = mapper.mapLine(fieldSet); assertEquals("This is some dummy string", result.getValueA()); assertEquals(1, result.getValueB()); @@ -150,7 +150,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { FieldSet fieldSet = new DefaultFieldSet(new String[] { "This is some dummy string", "1" }, new String[] { "VALUE_A", "VALUE_B" }); - TestNestedA result = (TestNestedA) mapper.mapLine(fieldSet, -1); + TestNestedA result = (TestNestedA) mapper.mapLine(fieldSet); assertEquals("This is some dummy string", result.getValueA()); assertEquals(1, result.getValueB()); @@ -167,7 +167,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { FieldSet fieldSet = new DefaultFieldSet(new String[] { "1" }, new String[] { "foo" }); - TestNestedC result = mapper.mapLine(fieldSet, -1); + TestNestedC result = mapper.mapLine(fieldSet); // "foo" is similar enough to "value" that it matches - but only because // nothing else does... @@ -189,7 +189,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { FieldSet fieldSet = new DefaultFieldSet(new String[] { "Another dummy", "2" }, new String[] { "TestObjectB.ValueA", "TestObjectB.TestObjectC.Value" }); - TestNestedA result = mapper.mapLine(fieldSet, -1); + TestNestedA result = mapper.mapLine(fieldSet); assertEquals("Another dummy", result.getTestObjectB().getValueA()); assertEquals(2, result.getTestObjectB().getTestObjectC().getValue()); @@ -209,7 +209,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { FieldSet fieldSet = new DefaultFieldSet(new String[] { "Another dummy" }, new String[] { "TestObjectB.foo" }); try { - mapper.mapLine(fieldSet, -1); + mapper.mapLine(fieldSet); fail("Expected NotWritablePropertyException"); } catch (NotWritablePropertyException e) { @@ -231,7 +231,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { FieldSet fieldSet = new DefaultFieldSet(new String[] { "2" }, new String[] { "TestObjectA.garbage" }); try { - mapper.mapLine(fieldSet, -1); + mapper.mapLine(fieldSet); fail("Expected NotWritablePropertyException"); } catch (NotWritablePropertyException e) { @@ -271,7 +271,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { FieldSet fieldSet = new DefaultFieldSet(new String[] { "1", "2", "3" }, new String[] { "NestedC[0].Value", "NestedC[1].Value", "NestedC[2].Value" }); - mapper.mapLine(fieldSet, -1); + mapper.mapLine(fieldSet); assertEquals(1, ((TestNestedC) nestedList.getNestedC().get(0)).getValue()); assertEquals(2, ((TestNestedC) nestedList.getNestedC().get(1)).getValue()); @@ -285,7 +285,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { mapper.setTargetType(TestObject.class); FieldSet fieldSet = new DefaultFieldSet(new String[] { "00009" }, new String[] { "varLong" }); - TestObject bean = (TestObject) mapper.mapLine(fieldSet, -1); + TestObject bean = (TestObject) mapper.mapLine(fieldSet); // since Spring 2.5.5 this is OK (before that BATCH-261) assertEquals(9, bean.getVarLong()); } @@ -299,7 +299,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { mapper.setCustomEditors(Collections.singletonMap(Long.TYPE, new CustomNumberEditor(Long.class, NumberFormat .getNumberInstance(), true))); - TestObject bean = (TestObject) mapper.mapLine(fieldSet, -1); + TestObject bean = (TestObject) mapper.mapLine(fieldSet); assertEquals(9, bean.getVarLong()); } @@ -313,7 +313,7 @@ public class BeanWrapperFieldSetMapperTests extends TestCase { mapper.setCustomEditors(Collections.singletonMap(Long.TYPE, new CustomNumberEditor(Long.class, NumberFormat .getNumberInstance(), true))); - TestObject bean = (TestObject) mapper.mapLine(fieldSet, -1); + TestObject bean = (TestObject) mapper.mapLine(fieldSet); assertEquals(9, bean.getVarLong()); assertEquals(78, bean.getVarInt()); diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/mapping/PassThroughFieldSetMapperTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/mapping/PassThroughFieldSetMapperTests.java index 884cf2caf..84fa0773f 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/mapping/PassThroughFieldSetMapperTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/mapping/PassThroughFieldSetMapperTests.java @@ -27,11 +27,11 @@ public class PassThroughFieldSetMapperTests extends TestCase { /** * Test method for - * {@link org.springframework.batch.item.file.mapping.PassThroughFieldSetMapper#mapLine(org.springframework.batch.item.file.mapping.FieldSet, int)}. + * {@link org.springframework.batch.item.file.mapping.PassThroughFieldSetMapper#mapLine(org.springframework.batch.item.file.mapping.FieldSet)}. */ public void testMapLine() { FieldSet fieldSet = new DefaultFieldSet(new String[] { "foo", "bar" }); - assertEquals(fieldSet, mapper.mapLine(fieldSet, -1)); + assertEquals(fieldSet, mapper.mapLine(fieldSet)); } diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/AggregateItemFieldSetMapperTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/AggregateItemFieldSetMapperTests.java index a9c4e4b07..c106c3ace 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/AggregateItemFieldSetMapperTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/AggregateItemFieldSetMapperTests.java @@ -16,26 +16,26 @@ public class AggregateItemFieldSetMapperTests { @Test public void testDefaultBeginRecord() throws Exception { - assertTrue(mapper.mapLine(new DefaultFieldSet(new String[] { "BEGIN" }), -1).isHeader()); - assertFalse(mapper.mapLine(new DefaultFieldSet(new String[] { "BEGIN" }), -1).isFooter()); + assertTrue(mapper.mapLine(new DefaultFieldSet(new String[] { "BEGIN" })).isHeader()); + assertFalse(mapper.mapLine(new DefaultFieldSet(new String[] { "BEGIN" })).isFooter()); } @Test public void testSetBeginRecord() throws Exception { mapper.setBegin("FOO"); - assertTrue(mapper.mapLine(new DefaultFieldSet(new String[] { "FOO" }), -1).isHeader()); + assertTrue(mapper.mapLine(new DefaultFieldSet(new String[] { "FOO" })).isHeader()); } @Test public void testDefaultEndRecord() throws Exception { - assertFalse(mapper.mapLine(new DefaultFieldSet(new String[] { "END" }), -1).isHeader()); - assertTrue(mapper.mapLine(new DefaultFieldSet(new String[] { "END" }), -1).isFooter()); + assertFalse(mapper.mapLine(new DefaultFieldSet(new String[] { "END" })).isHeader()); + assertTrue(mapper.mapLine(new DefaultFieldSet(new String[] { "END" })).isFooter()); } @Test public void testSetEndRecord() throws Exception { mapper.setEnd("FOO"); - assertTrue(mapper.mapLine(new DefaultFieldSet(new String[] { "FOO" }), -1).isFooter()); + assertTrue(mapper.mapLine(new DefaultFieldSet(new String[] { "FOO" })).isFooter()); } @Test @@ -52,11 +52,11 @@ public class AggregateItemFieldSetMapperTests { @Test public void testDelegate() throws Exception { mapper.setDelegate(new FieldSetMapper() { - public String mapLine(FieldSet fs, int lineNum) { + public String mapLine(FieldSet fs) { return "foo"; } }); - assertEquals("foo", mapper.mapLine(new DefaultFieldSet(new String[] { "FOO" }), -1).getItem()); + assertEquals("foo", mapper.mapLine(new DefaultFieldSet(new String[] { "FOO" })).getItem()); } diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/CompositeItemWriterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/CompositeItemWriterTests.java index 48cbc10f9..4e30a7d0f 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/CompositeItemWriterTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/CompositeItemWriterTests.java @@ -1,11 +1,11 @@ package org.springframework.batch.item.support; -import java.util.ArrayList; -import java.util.List; - +import static org.easymock.EasyMock.createStrictMock; +import static org.easymock.EasyMock.expectLastCall; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; import junit.framework.TestCase; -import static org.easymock.EasyMock.*; import org.springframework.batch.item.ItemWriter; /** @@ -28,7 +28,8 @@ public class CompositeItemWriterTests extends TestCase { final int NUMBER_OF_WRITERS = 10; Object data = new Object(); - List> writers = new ArrayList>(NUMBER_OF_WRITERS); + @SuppressWarnings("unchecked") + ItemWriter[] writers = new ItemWriter[NUMBER_OF_WRITERS]; for (int i = 0; i < NUMBER_OF_WRITERS; i++) { @SuppressWarnings("unchecked") @@ -38,7 +39,7 @@ public class CompositeItemWriterTests extends TestCase { expectLastCall().once(); replay(writer); - writers.add(writer); + writers[i] = writer; } itemProcessor.setDelegates(writers); diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AbstractTradeBatchTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AbstractTradeBatchTests.java index 9d7f0326f..57fadb9f3 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AbstractTradeBatchTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AbstractTradeBatchTests.java @@ -60,7 +60,7 @@ public abstract class AbstractTradeBatchTests extends TestCase { } protected static class TradeMapper implements FieldSetMapper { - public Trade mapLine(FieldSet fs, int lineNum) { + public Trade mapLine(FieldSet fs) { return new Trade(fs); } } diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/football/internal/GameFieldSetMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/football/internal/GameFieldSetMapper.java index 1fdf70e26..cade553f2 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/football/internal/GameFieldSetMapper.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/football/internal/GameFieldSetMapper.java @@ -6,7 +6,7 @@ import org.springframework.batch.sample.domain.football.Game; public class GameFieldSetMapper implements FieldSetMapper { - public Game mapLine(FieldSet fs, int lineNum) { + public Game mapLine(FieldSet fs) { if(fs == null){ return null; diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/football/internal/PlayerFieldSetMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/football/internal/PlayerFieldSetMapper.java index 9fe7b0b01..0d312a93a 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/football/internal/PlayerFieldSetMapper.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/football/internal/PlayerFieldSetMapper.java @@ -6,7 +6,7 @@ import org.springframework.batch.sample.domain.football.Player; public class PlayerFieldSetMapper implements FieldSetMapper { - public Player mapLine(FieldSet fs, int lineNum) { + public Player mapLine(FieldSet fs) { if(fs == null){ return null; diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/AddressFieldSetMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/AddressFieldSetMapper.java index b628ee3fe..103e2cfee 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/AddressFieldSetMapper.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/AddressFieldSetMapper.java @@ -33,7 +33,7 @@ public class AddressFieldSetMapper implements FieldSetMapper
{ public static final String COUNTRY_COLUMN = "COUNTRY"; - public Address mapLine(FieldSet fieldSet, int lineNum) { + public Address mapLine(FieldSet fieldSet) { Address address = new Address(); address.setAddressee(fieldSet.readString(ADDRESSEE_COLUMN)); diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/BillingFieldSetMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/BillingFieldSetMapper.java index 8b717e22f..da5e351ce 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/BillingFieldSetMapper.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/BillingFieldSetMapper.java @@ -27,7 +27,7 @@ public class BillingFieldSetMapper implements FieldSetMapper { public static final String PAYMENT_TYPE_ID_COLUMN = "PAYMENT_TYPE_ID"; public static final String PAYMENT_DESC_COLUMN = "PAYMENT_DESC"; - public BillingInfo mapLine(FieldSet fieldSet, int lineNum) { + public BillingInfo mapLine(FieldSet fieldSet) { BillingInfo info = new BillingInfo(); info.setPaymentId(fieldSet.readString(PAYMENT_TYPE_ID_COLUMN)); diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/CustomerFieldSetMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/CustomerFieldSetMapper.java index f825f1c26..68abcdd3e 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/CustomerFieldSetMapper.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/CustomerFieldSetMapper.java @@ -34,7 +34,7 @@ public class CustomerFieldSetMapper implements FieldSetMapper { public static final String REG_ID_COLUMN = "REG_ID"; public static final String VIP_COLUMN = "VIP"; - public Customer mapLine(FieldSet fieldSet, int lineNum) { + public Customer mapLine(FieldSet fieldSet) { Customer customer = new Customer(); if (Customer.LINE_ID_BUSINESS_CUST.equals(fieldSet.readString(LINE_ID_COLUMN))) { diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/HeaderFieldSetMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/HeaderFieldSetMapper.java index 3385ffc5f..d05fb9ba8 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/HeaderFieldSetMapper.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/HeaderFieldSetMapper.java @@ -27,7 +27,7 @@ public class HeaderFieldSetMapper implements FieldSetMapper { public static final String ORDER_ID_COLUMN = "ORDER_ID"; public static final String ORDER_DATE_COLUMN = "ORDER_DATE"; - public Order mapLine(FieldSet fieldSet, int lineNum) { + public Order mapLine(FieldSet fieldSet) { Order order = new Order(); order.setOrderId(fieldSet.readLong(ORDER_ID_COLUMN)); order.setOrderDate(fieldSet.readDate(ORDER_DATE_COLUMN)); diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/OrderItemFieldSetMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/OrderItemFieldSetMapper.java index 936c069eb..b2eb1dd1b 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/OrderItemFieldSetMapper.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/OrderItemFieldSetMapper.java @@ -33,7 +33,7 @@ public class OrderItemFieldSetMapper implements FieldSetMapper { public static final String ITEM_ID_COLUMN = "ITEM_ID"; - public LineItem mapLine(FieldSet fieldSet, int lineNum) { + public LineItem mapLine(FieldSet fieldSet) { LineItem item = new LineItem(); item.setItemId(fieldSet.readLong(ITEM_ID_COLUMN)); diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/OrderItemReader.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/OrderItemReader.java index c43ec24a3..3a150d061 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/OrderItemReader.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/OrderItemReader.java @@ -90,7 +90,7 @@ public class OrderItemReader extends AbstractItemReader { // start a new Order if (Order.LINE_ID_HEADER.equals(lineId)) { log.debug("STARTING NEW RECORD"); - order = headerMapper.mapLine(fieldSet, -1); + order = headerMapper.mapLine(fieldSet); return; } @@ -115,7 +115,7 @@ public class OrderItemReader extends AbstractItemReader { log.debug("MAPPING CUSTOMER"); if (order.getCustomer() == null) { - order.setCustomer(customerMapper.mapLine(fieldSet, -1)); + order.setCustomer(customerMapper.mapLine(fieldSet)); order.getCustomer().setBusinessCustomer(true); } @@ -126,7 +126,7 @@ public class OrderItemReader extends AbstractItemReader { log.debug("MAPPING CUSTOMER"); if (order.getCustomer() == null) { - order.setCustomer(customerMapper.mapLine(fieldSet, -1)); + order.setCustomer(customerMapper.mapLine(fieldSet)); order.getCustomer().setBusinessCustomer(false); } @@ -135,25 +135,25 @@ public class OrderItemReader extends AbstractItemReader { if (Address.LINE_ID_BILLING_ADDR.equals(lineId)) { log.debug("MAPPING BILLING ADDRESS"); - order.setBillingAddress(addressMapper.mapLine(fieldSet, -1)); + order.setBillingAddress(addressMapper.mapLine(fieldSet)); return; } if (Address.LINE_ID_SHIPPING_ADDR.equals(lineId)) { log.debug("MAPPING SHIPPING ADDRESS"); - order.setShippingAddress(addressMapper.mapLine(fieldSet, -1)); + order.setShippingAddress(addressMapper.mapLine(fieldSet)); return; } if (BillingInfo.LINE_ID_BILLING_INFO.equals(lineId)) { log.debug("MAPPING BILLING INFO"); - order.setBilling(billingMapper.mapLine(fieldSet, -1)); + order.setBilling(billingMapper.mapLine(fieldSet)); return; } if (ShippingInfo.LINE_ID_SHIPPING_INFO.equals(lineId)) { log.debug("MAPPING SHIPPING INFO"); - order.setShipping(shippingMapper.mapLine(fieldSet, -1)); + order.setShipping(shippingMapper.mapLine(fieldSet)); return; } @@ -163,7 +163,7 @@ public class OrderItemReader extends AbstractItemReader { if (order.getLineItems() == null) { order.setLineItems(new ArrayList()); } - order.getLineItems().add(itemMapper.mapLine(fieldSet, -1)); + order.getLineItems().add(itemMapper.mapLine(fieldSet)); return; } diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/ShippingFieldSetMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/ShippingFieldSetMapper.java index 69197bc8b..31f30b270 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/ShippingFieldSetMapper.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/order/internal/ShippingFieldSetMapper.java @@ -28,7 +28,7 @@ public class ShippingFieldSetMapper implements FieldSetMapper { public static final String SHIPPING_TYPE_ID_COLUMN = "SHIPPING_TYPE_ID"; public static final String SHIPPER_ID_COLUMN = "SHIPPER_ID"; - public ShippingInfo mapLine(FieldSet fieldSet, int lineNum) { + public ShippingInfo mapLine(FieldSet fieldSet) { ShippingInfo info = new ShippingInfo(); info.setShipperId(fieldSet.readString(SHIPPER_ID_COLUMN)); diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/trade/internal/TradeFieldSetMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/trade/internal/TradeFieldSetMapper.java index 78988879f..0821e42de 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/trade/internal/TradeFieldSetMapper.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/trade/internal/TradeFieldSetMapper.java @@ -29,7 +29,7 @@ public class TradeFieldSetMapper implements FieldSetMapper { public static final int PRICE_COLUMN = 2; public static final int CUSTOMER_COLUMN = 3; - public Trade mapLine(FieldSet fieldSet, int lineNum) { + public Trade mapLine(FieldSet fieldSet) { Trade trade = new Trade(); trade.setIsin(fieldSet.readString(ISIN_COLUMN)); diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/domain/order/OrderItemReaderTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/domain/order/OrderItemReaderTests.java index d95a42d46..712b1d13c 100644 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/domain/order/OrderItemReaderTests.java +++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/domain/order/OrderItemReaderTests.java @@ -84,13 +84,13 @@ public class OrderItemReaderTests { // create mock mapper FieldSetMapper mapper = createMock(FieldSetMapper.class); // set how mapper should respond - set return values for mapper - expect(mapper.mapLine(headerFS, -1)).andReturn(order); - expect(mapper.mapLine(customerFS, -1)).andReturn(customer); - expect(mapper.mapLine(billingFS, -1)).andReturn(billing); - expect(mapper.mapLine(shippingFS, -1)).andReturn(shipping); - expect(mapper.mapLine(billingInfoFS, -1)).andReturn(billingInfo); - expect(mapper.mapLine(shippingInfoFS, -1)).andReturn(shippingInfo); - expect(mapper.mapLine(itemFS, -1)).andReturn(item).times(3); + expect(mapper.mapLine(headerFS)).andReturn(order); + expect(mapper.mapLine(customerFS)).andReturn(customer); + expect(mapper.mapLine(billingFS)).andReturn(billing); + expect(mapper.mapLine(shippingFS)).andReturn(shipping); + expect(mapper.mapLine(billingInfoFS)).andReturn(billingInfo); + expect(mapper.mapLine(shippingInfoFS)).andReturn(shippingInfo); + expect(mapper.mapLine(itemFS)).andReturn(item).times(3); replay(mapper); // set-up provider: set mappers diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/support/AbstractFieldSetMapperTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/support/AbstractFieldSetMapperTests.java index c409e8f49..774c99c00 100644 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/support/AbstractFieldSetMapperTests.java +++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/support/AbstractFieldSetMapperTests.java @@ -37,7 +37,7 @@ public abstract class AbstractFieldSetMapperTests { */ @Test public void testRegularUse() { - assertEquals(expectedDomainObject(), fieldSetMapper().mapLine(fieldSet(), -1)); + assertEquals(expectedDomainObject(), fieldSetMapper().mapLine(fieldSet())); } }