From 4a37d15c61cb84d35fa5d8f4c816ac25bc41acfb Mon Sep 17 00:00:00 2001 From: lucasward Date: Sun, 10 Feb 2008 01:28:41 +0000 Subject: [PATCH] Fixes to get the codebase to compile successfully again, still a ways to go before all tests pass. --- .../step/simple/SimpleStepExecutorTests.java | 54 +-- .../step/simple/SimpleStepTests.java | 18 +- .../simple/StepExecutorInterruptionTests.java | 42 ++- .../tasklet/ItemOrientedTaskletTests.java | 320 ------------------ .../src/test/resources/job-configuration.xml | 41 +-- .../batch/execution/bootstrap/support/job.xml | 40 ++- .../execution/configuration/test-context.xml | 108 +++--- 7 files changed, 171 insertions(+), 452 deletions(-) delete mode 100644 spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/ItemOrientedTaskletTests.java diff --git a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/SimpleStepExecutorTests.java b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/SimpleStepExecutorTests.java index f63820119..bb9b2de36 100644 --- a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/SimpleStepExecutorTests.java +++ b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/SimpleStepExecutorTests.java @@ -29,12 +29,10 @@ import org.springframework.batch.core.domain.JobExecution; import org.springframework.batch.core.domain.JobInstance; import org.springframework.batch.core.domain.JobParameters; import org.springframework.batch.core.domain.JobSupport; -import org.springframework.batch.core.domain.Step; import org.springframework.batch.core.domain.StepContribution; import org.springframework.batch.core.domain.StepExecution; import org.springframework.batch.core.domain.StepInstance; import org.springframework.batch.core.domain.StepInterruptedException; -import org.springframework.batch.core.tasklet.Tasklet; import org.springframework.batch.execution.repository.SimpleJobRepository; import org.springframework.batch.execution.repository.dao.MapJobDao; import org.springframework.batch.execution.repository.dao.MapStepDao; @@ -161,8 +159,8 @@ public class SimpleStepExecutorTests extends TestCase { final JobExecution jobExecution = new JobExecution(jobInstance); final StepExecution stepExecution = new StepExecution(step, jobExecution); - stepConfiguration.setTasklet(new Tasklet() { - public ExitStatus execute() throws Exception { + stepConfiguration.setItemReader(new ItemReader() { + public Object read() throws Exception { assertEquals(step, stepExecution.getStep()); assertNotNull(StepSynchronizationManager.getContext().getStepExecution()); processed.add("foo"); @@ -217,14 +215,14 @@ public class SimpleStepExecutorTests extends TestCase { public void testIncrementRollbackCount() { - Tasklet tasklet = new Tasklet() { + ItemReader itemReader = new ItemReader() { - public ExitStatus execute() throws Exception { + public Object read() throws Exception { int counter = 0; counter++; if (counter == 1) { - throw new Exception(); + throw new RuntimeException(); } return ExitStatus.CONTINUABLE; @@ -233,7 +231,7 @@ public class SimpleStepExecutorTests extends TestCase { }; StepInstance step = new StepInstance(new Long(1)); - stepConfiguration.setTasklet(tasklet); + stepConfiguration.setItemReader(itemReader); JobExecution jobExecutionContext = new JobExecution(jobInstance); StepExecution stepExecution = new StepExecution(step, jobExecutionContext); @@ -248,9 +246,9 @@ public class SimpleStepExecutorTests extends TestCase { public void testExitCodeDefaultClassification() throws Exception { - Tasklet tasklet = new Tasklet() { + ItemReader itemReader = new ItemReader() { - public ExitStatus execute() throws Exception { + public Object read() throws Exception { int counter = 0; counter++; @@ -264,7 +262,7 @@ public class SimpleStepExecutorTests extends TestCase { }; StepInstance step = new StepInstance(new Long(1)); - stepConfiguration.setTasklet(tasklet); + stepConfiguration.setItemReader(itemReader); JobExecution jobExecutionContext = new JobExecution(jobInstance); StepExecution stepExecution = new StepExecution(step, jobExecutionContext); @@ -284,7 +282,7 @@ public class SimpleStepExecutorTests extends TestCase { public void testNonRestartedJob() throws Exception { StepInstance step = new StepInstance(new Long(1)); MockRestartableTasklet tasklet = new MockRestartableTasklet(); - stepExecutor.setTasklet(tasklet); + stepExecutor.setItemReader(tasklet); stepConfiguration.setSaveExecutionAttributes(true); JobExecution jobExecutionContext = new JobExecution(jobInstance); StepExecution stepExecution = new StepExecution(step, jobExecutionContext); @@ -303,7 +301,7 @@ public class SimpleStepExecutorTests extends TestCase { StepInstance step = new StepInstance(new Long(1)); step.setStepExecutionCount(1); MockRestartableTasklet tasklet = new MockRestartableTasklet(); - stepExecutor.setTasklet(tasklet); + stepExecutor.setItemReader(tasklet); stepConfiguration.setSaveExecutionAttributes(true); JobExecution jobExecutionContext = new JobExecution(jobInstance); StepExecution stepExecution = new StepExecution(step, jobExecutionContext); @@ -327,7 +325,7 @@ public class SimpleStepExecutorTests extends TestCase { StepInstance step = new StepInstance(new Long(1)); step.setStepExecutionCount(1); MockRestartableTasklet tasklet = new MockRestartableTasklet(); - stepConfiguration.setTasklet(tasklet); + stepConfiguration.setItemReader(tasklet); stepConfiguration.setSaveExecutionAttributes(false); JobExecution jobExecutionContext = new JobExecution(jobInstance); StepExecution stepExecution = new StepExecution(step, jobExecutionContext); @@ -351,8 +349,8 @@ public class SimpleStepExecutorTests extends TestCase { public void testRestartJobOnNonRestartableTasklet() throws Exception { StepInstance step = new StepInstance(new Long(1)); step.setStepExecutionCount(1); - stepConfiguration.setTasklet(new Tasklet() { - public ExitStatus execute() throws Exception { + stepConfiguration.setItemReader(new ItemReader() { + public Object read() throws Exception { return ExitStatus.FINISHED; } }); @@ -405,8 +403,8 @@ public class SimpleStepExecutorTests extends TestCase { public void testStreamManager() throws Exception { StepInstance step = new StepInstance(new Long(1)); step.setStepExecutionCount(1); - stepConfiguration.setTasklet(new Tasklet() { - public ExitStatus execute() throws Exception { + stepConfiguration.setItemReader(new ItemReader() { + public Object read() throws Exception { return ExitStatus.FINISHED; } }); @@ -433,7 +431,7 @@ public class SimpleStepExecutorTests extends TestCase { assertEquals(0, map.size()); } - private class MockRestartableTasklet extends ItemStreamAdapter implements Tasklet { + private class MockRestartableTasklet extends ItemStreamAdapter implements ItemReader { private boolean getExecutionAttributesCalled = false; @@ -441,7 +439,7 @@ public class SimpleStepExecutorTests extends TestCase { private boolean restoreFromCalledWithSomeContext = false; - public ExitStatus execute() throws Exception { + public Object read() throws Exception { StepSynchronizationManager.getContext().setAttribute("TASKLET_TEST", this); return ExitStatus.FINISHED; } @@ -487,20 +485,22 @@ public class SimpleStepExecutorTests extends TestCase { stepExecutor.setInterruptionPolicy(interruptionPolicy); - Tasklet tasklet = new Tasklet() { + ItemReader itemReader = new ItemReader() { - public ExitStatus execute() throws Exception { + public Object read() throws Exception { int counter = 0; counter++; if (counter == 1) { - throw new StepInterruptedException(""); + throw new RuntimeException(); } return ExitStatus.CONTINUABLE; } + }; - stepExecutor.setTasklet(tasklet); + + stepExecutor.setItemReader(itemReader); StepInstance step = new StepInstance(new Long(1)); JobExecution jobExecutionContext = new JobExecution(jobInstance); @@ -524,13 +524,13 @@ public class SimpleStepExecutorTests extends TestCase { public void testStatusForResetFailedException() throws Exception { - Tasklet tasklet = new Tasklet() { - public ExitStatus execute() throws Exception { + ItemReader itemReader = new ItemReader() { + public Object read() throws Exception { // Trigger a rollback throw new RuntimeException("Foo"); } }; - stepExecutor.setTasklet(tasklet); + stepExecutor.setItemReader(itemReader); stepExecutor.setStreamManager(new SimpleStreamManager(transactionManager) { public void rollback(TransactionStatus status) { super.rollback(status); diff --git a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/SimpleStepTests.java b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/SimpleStepTests.java index a05a54bfd..6906809f5 100644 --- a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/SimpleStepTests.java +++ b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/SimpleStepTests.java @@ -25,7 +25,9 @@ import org.springframework.batch.core.domain.JobInstance; import org.springframework.batch.core.domain.JobParameters; import org.springframework.batch.core.domain.StepExecution; import org.springframework.batch.core.domain.StepInstance; +import org.springframework.batch.item.reader.ItemReaderAdapter; import org.springframework.batch.item.stream.SimpleStreamManager; +import org.springframework.batch.item.writer.ItemWriterAdapter; import org.springframework.batch.repeat.RepeatContext; import org.springframework.batch.repeat.exception.handler.ExceptionHandler; import org.springframework.batch.support.transaction.ResourcelessTransactionManager; @@ -40,21 +42,25 @@ public class SimpleStepTests extends TestCase { SimpleStep step = new SimpleStep(); step.setJobRepository(new JobRepositorySupport()); step.setTransactionManager(new ResourcelessTransactionManager()); + step.setItemReader(new ItemReaderAdapter()); + step.setItemWriter(new ItemWriterAdapter()); assertNotNull(step.createStepExecutor()); } public void testSuccessfulExceptionHandler() throws Exception { - SimpleStep configuration = new SimpleStep("foo"); - configuration.setJobRepository(new JobRepositorySupport()); - configuration.setTransactionManager(new ResourcelessTransactionManager()); + SimpleStep step = new SimpleStep("foo"); + step.setItemReader(new ItemReaderAdapter()); + step.setItemWriter(new ItemWriterAdapter()); + step.setJobRepository(new JobRepositorySupport()); + step.setTransactionManager(new ResourcelessTransactionManager()); final List list = new ArrayList(); - configuration.setExceptionHandler(new ExceptionHandler() { + step.setExceptionHandler(new ExceptionHandler() { public void handleException(RepeatContext context, Throwable throwable) throws RuntimeException { list.add(throwable); throw new RuntimeException("Oops"); } }); - SimpleStepExecutor executor = (SimpleStepExecutor) configuration.createStepExecutor(); + SimpleStepExecutor executor = (SimpleStepExecutor) step.createStepExecutor(); StepExecution stepExecution = new StepExecution(new StepInstance(new Long(11)), new JobExecution( new JobInstance(new Long(0L), new JobParameters()), new Long(12))); try { @@ -120,6 +126,8 @@ public class SimpleStepTests extends TestCase { public void testMandatoryPropertiesAfterExecution() throws Exception { SimpleStep step = new SimpleStep(); + step.setItemReader(new ItemReaderAdapter()); + step.setItemWriter(new ItemWriterAdapter()); step.setJobRepository(new JobRepositorySupport()); step.setTransactionManager(new ResourcelessTransactionManager()); assertNotNull(step.createStepExecutor()); diff --git a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/StepExecutorInterruptionTests.java b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/StepExecutorInterruptionTests.java index aa9262fe4..98edad913 100644 --- a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/StepExecutorInterruptionTests.java +++ b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/StepExecutorInterruptionTests.java @@ -21,21 +21,22 @@ import java.util.List; import junit.framework.TestCase; import org.springframework.batch.core.domain.BatchStatus; -import org.springframework.batch.core.domain.JobSupport; import org.springframework.batch.core.domain.JobExecution; import org.springframework.batch.core.domain.JobInstance; import org.springframework.batch.core.domain.JobParameters; +import org.springframework.batch.core.domain.JobSupport; import org.springframework.batch.core.domain.StepExecution; import org.springframework.batch.core.domain.StepInstance; import org.springframework.batch.core.domain.StepInterruptedException; import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.tasklet.Tasklet; import org.springframework.batch.execution.repository.SimpleJobRepository; import org.springframework.batch.execution.repository.dao.JobDao; import org.springframework.batch.execution.repository.dao.MapJobDao; import org.springframework.batch.execution.repository.dao.MapStepDao; import org.springframework.batch.execution.repository.dao.StepDao; -import org.springframework.batch.repeat.ExitStatus; +import org.springframework.batch.item.ItemReader; +import org.springframework.batch.item.ItemWriter; +import org.springframework.batch.item.reader.ItemReaderAdapter; import org.springframework.batch.repeat.policy.SimpleCompletionPolicy; import org.springframework.batch.repeat.support.RepeatTemplate; import org.springframework.batch.support.transaction.ResourcelessTransactionManager; @@ -50,43 +51,52 @@ public class StepExecutorInterruptionTests extends TestCase { private JobInstance job; - private RepeatOperationsStep stepConfiguration; + private RepeatOperationsStep step; public void setUp() throws Exception { jobRepository = new SimpleJobRepository(jobDao, stepDao); JobSupport jobConfiguration = new JobSupport(); - stepConfiguration = new RepeatOperationsStep(); - jobConfiguration.addStep(stepConfiguration); + step = new RepeatOperationsStep(); + jobConfiguration.addStep(step); jobConfiguration.setBeanName("testJob"); job = jobRepository.createJobExecution(jobConfiguration, new JobParameters()).getJobInstance(); - stepConfiguration.setJobRepository(jobRepository); - stepConfiguration.setTransactionManager(new ResourcelessTransactionManager()); + step.setJobRepository(jobRepository); + step.setTransactionManager(new ResourcelessTransactionManager()); + step.setItemReader(new ItemReaderAdapter()); + step.setItemWriter(new ItemWriter(){ + public void write(Object item) throws Exception { + }}); } public void testInterruptChunk() throws Exception { List steps = job.getStepInstances(); - final StepInstance step = (StepInstance) steps.get(0); + final StepInstance stepInstance = (StepInstance) steps.get(0); JobExecution jobExecutionContext = new JobExecution(new JobInstance(new Long(0L), new JobParameters())); - final StepExecution stepExecution = new StepExecution(step, jobExecutionContext); - stepConfiguration.setTasklet(new Tasklet() { - public ExitStatus execute() throws Exception { + final StepExecution stepExecution = new StepExecution(stepInstance, jobExecutionContext); + step.setItemReader(new ItemReader() { + public Object read() throws Exception { // do something non-trivial (and not Thread.sleep()) double foo = 1; for (int i = 2; i < 250; i++) { foo = foo * i; } - // always return true, so processing always continues - return new ExitStatus(foo != 1); + + if(foo != 1){ + return new Double(foo); + } + else{ + return null; + } } }); Thread processingThread = new Thread() { public void run() { try { - stepConfiguration.execute(stepExecution); + step.execute(stepExecution); } catch (StepInterruptedException e) { // do nothing... @@ -114,7 +124,7 @@ public class StepExecutorInterruptionTests extends TestCase { RepeatTemplate template = new RepeatTemplate(); // N.B, If we don't set the completion policy it might run forever template.setCompletionPolicy(new SimpleCompletionPolicy(2)); - stepConfiguration.setChunkOperations(template); + step.setChunkOperations(template); testInterruptChunk(); } diff --git a/spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/ItemOrientedTaskletTests.java b/spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/ItemOrientedTaskletTests.java deleted file mode 100644 index db8904c1b..000000000 --- a/spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/ItemOrientedTaskletTests.java +++ /dev/null @@ -1,320 +0,0 @@ -/* - * 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.execution.tasklet; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import junit.framework.TestCase; - -import org.springframework.batch.io.Skippable; -import org.springframework.batch.item.ItemReader; -import org.springframework.batch.item.ItemRecoverer; -import org.springframework.batch.item.ItemWriter; -import org.springframework.batch.item.KeyedItemReader; -import org.springframework.batch.item.exception.StreamException; -import org.springframework.batch.item.reader.AbstractItemReader; -import org.springframework.batch.item.writer.AbstractItemWriter; -import org.springframework.batch.repeat.context.RepeatContextSupport; -import org.springframework.batch.repeat.synch.RepeatSynchronizationManager; -import org.springframework.batch.retry.policy.SimpleRetryPolicy; - -/** - * @author Dave Syer - * @author Peter Zozom - */ -public class ItemOrientedTaskletTests extends TestCase { - - private List list = new ArrayList(); - - private List items = new ArrayList(); - - private ItemReader itemProvider = new AbstractItemReader() { - int count = 0; - - public Object read() throws Exception { - if (count < items.size()) { - Object data = items.get(count++); - if (data instanceof Exception) { - throw (Exception) data; - } - return data; - } - return null; - } - - public void close() throws StreamException { - } - }; - - private ItemWriter itemWriter = new AbstractItemWriter() { - public void write(Object data) throws Exception { - list.add(data); - } - }; - - private ItemOrientedTasklet module; - - public void setUp() throws Exception { - - // create module - module = new ItemOrientedTasklet(); - - // set up module - module.setItemReader(itemProvider); - module.setItemWriter(itemWriter); - - module.afterPropertiesSet(); - - RepeatSynchronizationManager.register(new RepeatContextSupport(null)); - - } - - /* - * (non-Javadoc) - * - * @see junit.framework.TestCase#tearDown() - */ - protected void tearDown() throws Exception { - super.tearDown(); - RepeatSynchronizationManager.clear(); - } - - // tests also read and process - public void testExecute() throws Exception { - - // TEST1: data provider returns some object and data processor should - // process it - - // set up mock objects - items = Collections.singletonList("foo"); - - // call execute - assertTrue(module.execute().isContinuable()); - - // verify method calls - assertEquals(1, list.size()); - assertEquals("foo", list.get(0)); - } - - public void testExecuteWithNothingToRead() throws Exception { - - // TEST2: data provider returns null (nothing to read) - - // call read - assertFalse(module.execute().isContinuable()); - - } - - public void testExecuteWithExceptionOnRead() throws Exception { - - // TEST3: exception is thrown by data provider - - // set up mock objects - items = Collections.singletonList(new RuntimeException("foo")); - - // call read - try { - module.execute(); - fail("RuntimeException was expected"); - } - catch (RuntimeException bce) { - // expected - assertEquals("foo", bce.getMessage()); - } - } - - public void testNotSkippable() throws Exception { - try { - module.skip(); - } - catch (Exception e) { - // Unexpected - throw e; - } - } - - public void testSkippableReader() throws Exception { - module.setItemReader(new SkippableItemReader()); - module.setItemRecoverer(null); - module.skip(); - assertEquals(1, list.size()); - } - - public void testSkippablReaderProcessor() throws Exception { - module.setItemReader(new SkippableItemReader()); - module.setItemWriter(new SkippableItemWriter()); - module.setItemRecoverer(null); - module.skip(); - assertEquals(2, list.size()); - } - - public void testRecoverable() throws Exception { - - // set up and call execute - items = Collections.singletonList("foo"); - - module.setItemRecoverer(new ItemRecoverer() { - public boolean recover(Object item, Throwable cause) { - assertEquals("FOO", cause.getMessage()); - list.add(item); - return true; - } - }); - - module.setItemReader(new AbstractItemReader() { - public Object read() throws Exception { - return "bar"; - } - - public void close() throws StreamException { - } - }); - - module.setItemWriter(new AbstractItemWriter() { - public void write(Object data) throws Exception { - throw new RuntimeException("FOO"); - } - }); - - module.afterPropertiesSet(); - - try { - module.execute(); - fail("Expected RuntimeException"); - } - catch (RuntimeException e) { - assertEquals("FOO", e.getMessage()); - } - - // After a processing exception the recovery is done automatically. - - // verify method calls - assertEquals(1, list.size()); - assertEquals("The item was not passed in to recover method", "bar", list.get(0)); - } - - public void testRetryPolicy() throws Exception { - module.setRetryPolicy(new SimpleRetryPolicy(1)); - module.setItemRecoverer(new ItemRecoverer() { - public boolean recover(Object item, Throwable cause) { - assertEquals("FOO", cause.getMessage()); - list.add(item + "_recovered"); - return true; - } - }); - module.setItemReader(new MockItemReader()); - module.setItemWriter(new AbstractItemWriter() { - public void write(Object data) throws Exception { - throw new RuntimeException("FOO"); - } - }); - - // finish initialisation - module.afterPropertiesSet(); - - try { - module.execute(); - fail("Expected RuntimeException"); - } - catch (RuntimeException e) { - assertEquals("FOO", e.getMessage()); - } - - // No exception thrown now because we are going to recover... - module.execute(); - - // No need for client has to call recover directly - - // verify method calls - assertEquals(1, list.size()); - assertEquals("The item was not passed in to recover method", "foo_recovered", list.get(0)); - } - - public void testInitialisationWithNullProvider() throws Exception { - module.setItemReader(null); - try { - module.afterPropertiesSet(); - } - catch (IllegalArgumentException e) { - assertTrue(e.getMessage().toLowerCase().indexOf("reader") >= 0); - } - } - - public void testInitialisationWithNullProcessor() throws Exception { - module.setItemWriter(null); - try { - module.afterPropertiesSet(); - } - catch (IllegalArgumentException e) { - assertTrue("Message did not contain writer: " + e.getMessage(), e.getMessage().toLowerCase().indexOf( - "writer") >= 0); - } - } - - private class MockItemReader extends AbstractItemReader implements KeyedItemReader { - public Object read() throws Exception { - return "foo"; - } - - public Object getKey(Object item) { - return item; - } - } - - private class SkippableItemReader implements KeyedItemReader, Skippable { - public Object read() throws Exception { - return itemProvider.read(); - } - - public Object getKey(Object item) { - return item; - } - - public void skip() { - list.add("provider"); - } - - public void close() throws StreamException { - } - } - - private class SkippableItemWriter implements ItemWriter, Skippable { - String props = "foo=bar"; - - public SkippableItemWriter() { - super(); - } - - public SkippableItemWriter(String props) { - this(); - this.props = props; - } - - public void write(Object data) throws Exception { - // no-op - } - - public void skip() { - list.add("writer"); - } - - public void close() throws Exception { - } - } -} diff --git a/spring-batch-execution/src/test/resources/job-configuration.xml b/spring-batch-execution/src/test/resources/job-configuration.xml index 9f048418c..3e75ce21f 100644 --- a/spring-batch-execution/src/test/resources/job-configuration.xml +++ b/spring-batch-execution/src/test/resources/job-configuration.xml @@ -1,35 +1,36 @@ - - - + + - + - - + + - - - - - - - - + class="org.springframework.batch.item.reader.ListItemReader"> + - + + + + - - + + diff --git a/spring-batch-execution/src/test/resources/org/springframework/batch/execution/bootstrap/support/job.xml b/spring-batch-execution/src/test/resources/org/springframework/batch/execution/bootstrap/support/job.xml index 78a4492d7..7c1065a80 100644 --- a/spring-batch-execution/src/test/resources/org/springframework/batch/execution/bootstrap/support/job.xml +++ b/spring-batch-execution/src/test/resources/org/springframework/batch/execution/bootstrap/support/job.xml @@ -1,31 +1,37 @@ - - + - - + + - - - - - - - - + class="org.springframework.batch.item.reader.ListItemReader"> + - + + + + + + + + + + - + diff --git a/spring-batch-execution/src/test/resources/org/springframework/batch/execution/configuration/test-context.xml b/spring-batch-execution/src/test/resources/org/springframework/batch/execution/configuration/test-context.xml index 38a2920cf..2617c1ce3 100644 --- a/spring-batch-execution/src/test/resources/org/springframework/batch/execution/configuration/test-context.xml +++ b/spring-batch-execution/src/test/resources/org/springframework/batch/execution/configuration/test-context.xml @@ -1,61 +1,75 @@ - - - - - - + + + - + + + - - + + - - - - - - - - + class="org.springframework.batch.item.reader.ListItemReader"> + - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + +