From 9e07cda1b3acdcca2425c09ed5d44b065365f737 Mon Sep 17 00:00:00 2001 From: robokaso Date: Wed, 3 Sep 2008 13:33:42 +0000 Subject: [PATCH] IN PROGRESS - BATCH-774: Split item count into read/write/filter removed itemCount from StepExecution --- .../batch/core/StepContribution.java | 15 ++++++----- .../batch/core/StepExecution.java | 25 ++----------------- .../NoWorkFoundStepExecutionListener.java | 2 +- .../step/item/SkipLimitStepFactoryBean.java | 2 +- .../batch/core/StepExecutionTests.java | 15 +++-------- ...NoWorkFoundStepExecutionListenerTests.java | 2 +- .../item/SkipLimitStepFactoryBeanTests.java | 4 +-- .../StatefulRetryStepFactoryBeanTests.java | 10 ++++---- .../step/item/StatefulRetryTaskletTests.java | 8 +++--- .../core/step/tasklet/TasketStepTests.java | 8 +++--- .../sample/common/InfiniteLoopWriter.java | 2 +- 11 files changed, 31 insertions(+), 62 deletions(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java index d3b180c7c..b45e8f844 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java @@ -75,6 +75,13 @@ public class StepContribution { readCount++; } + /** + * Increment the counter for the number of items read. + */ + public void incrementReadCount(int count) { + readCount += count; + } + /** * Increment the counter for the number of items written. */ @@ -162,14 +169,6 @@ public class StepContribution { processSkipCount++; } - /** - * @param contribution - */ - public void increment(StepContribution contribution) { - itemCount += contribution.getItemCount(); - readSkipCount += contribution.getReadSkipCount(); - } - /** * @return the read skip count */ diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java index 5b6a818e9..73e879649 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java @@ -41,8 +41,6 @@ public class StepExecution extends Entity { private volatile BatchStatus status = BatchStatus.STARTING; - private volatile int itemCount = 0; - private volatile int readCount = 0; private volatile int writeCount = 0; @@ -150,24 +148,6 @@ public class StepExecution extends Entity { public void setEndTime(Date endTime) { this.endTime = endTime; } - - /** - * Returns the current number of items input for this execution - * - * @return the current number of items input for this execution - */ - public int getItemCount() { - return itemCount; - } - - /** - * Sets the current number of processed items for this execution - * - * @param itemCount the current number of processed items for this execution - */ - public void setItemCount(int itemCount) { - this.itemCount = itemCount; - } /** * Returns the current number of items read for this execution @@ -334,7 +314,6 @@ public class StepExecution extends Entity { * @param contribution */ public synchronized void apply(StepContribution contribution) { - itemCount += contribution.getItemCount(); readSkipCount += contribution.getReadSkipCount(); writeSkipCount += contribution.getWriteSkipCount(); filterCount += contribution.getFilterCount(); @@ -470,8 +449,8 @@ public class StepExecution extends Entity { public String toString() { return super.toString() - + String.format(", name=%s, itemCount=%d, readSkipCount=%d, writeSkipCount=%d" - + ", commitCount=%d, rollbackCount=%d", stepName, itemCount, readSkipCount, writeSkipCount, + + String.format(", name=%s, readCount=%d, filterCount=%d, writeCount=%d readSkipCount=%d, writeSkipCount=%d" + + ", commitCount=%d, rollbackCount=%d", stepName, readCount, filterCount, writeCount, readSkipCount, writeSkipCount, commitCount, rollbackCount); } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/NoWorkFoundStepExecutionListener.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/NoWorkFoundStepExecutionListener.java index 65b383156..9e19c3330 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/NoWorkFoundStepExecutionListener.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/NoWorkFoundStepExecutionListener.java @@ -29,7 +29,7 @@ import org.springframework.batch.repeat.ExitStatus; public class NoWorkFoundStepExecutionListener extends StepExecutionListenerSupport { public ExitStatus afterStep(StepExecution stepExecution) { - if (stepExecution.getItemCount() == 0) { + if (stepExecution.getReadCount() == 0) { throw new NoWorkFoundException("Step has not processed any items"); } return stepExecution.getExitStatus(); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java index 0b5db8a49..d4d45489e 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java @@ -434,7 +434,7 @@ public class SkipLimitStepFactoryBean extends SimpleStepFactoryBean } } - contribution.incrementItemCount(inputs.size()); + contribution.incrementReadCount(inputs.size()); contribution.incrementFilterCount(filtered); inputs.clear(); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java index ffa07b5c2..7e719ce69 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java @@ -110,15 +110,6 @@ public class StepExecutionTests extends TestCase { assertEquals(123, execution.getCommitCount()); } - /** - * Test method for - * {@link org.springframework.batch.core.StepExecution#getItemCount()}. - */ - public void testGetTaskCount() { - execution.setItemCount(123); - assertEquals(123, execution.getItemCount()); - } - public void testGetFilterCount() { execution.setFilterCount(123); assertEquals(123, execution.getFilterCount()); @@ -132,14 +123,12 @@ public class StepExecutionTests extends TestCase { StepContribution contribution = execution.createStepContribution(); contribution.incrementReadSkipCount(); contribution.incrementWriteSkipCount(); - contribution.incrementItemCount(); contribution.incrementReadCount(); contribution.incrementWriteCount(); contribution.incrementFilterCount(1); execution.apply(contribution); assertEquals(1, execution.getReadSkipCount()); assertEquals(1, execution.getWriteSkipCount()); - assertEquals(1, execution.getItemCount()); assertEquals(1, execution.getReadCount()); assertEquals(1, execution.getWriteCount()); assertEquals(1, execution.getFilterCount()); @@ -162,7 +151,9 @@ public class StepExecutionTests extends TestCase { } public void testToString() throws Exception { - assertTrue("Should contain item count: " + execution.toString(), execution.toString().indexOf("item") >= 0); + assertTrue("Should contain read count: " + execution.toString(), execution.toString().indexOf("read") >= 0); + assertTrue("Should contain write count: " + execution.toString(), execution.toString().indexOf("write") >= 0); + assertTrue("Should contain filter count: " + execution.toString(), execution.toString().indexOf("filter") >= 0); assertTrue("Should contain commit count: " + execution.toString(), execution.toString().indexOf("commit") >= 0); assertTrue("Should contain rollback count: " + execution.toString(), execution.toString().indexOf("rollback") >= 0); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/NoWorkFoundStepExecutionListenerTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/NoWorkFoundStepExecutionListenerTests.java index ec3da5d87..bfb46b208 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/NoWorkFoundStepExecutionListenerTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/NoWorkFoundStepExecutionListenerTests.java @@ -37,7 +37,7 @@ public class NoWorkFoundStepExecutionListenerTests extends TestCase { new JobExecution( new JobInstance(new Long(1), new JobParameters(), "NoProcessingJob"))); - stepExecution.setItemCount(0); + stepExecution.setReadCount(0); try { tested.afterStep(stepExecution); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBeanTests.java index 50c1f01fc..5b6f07505 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBeanTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBeanTests.java @@ -99,7 +99,7 @@ public class SkipLimitStepFactoryBeanTests { List expectedOutput = Arrays.asList(StringUtils.commaDelimitedListToStringArray("1,3,5")); assertEquals(expectedOutput, writer.written); - assertEquals(4, stepExecution.getItemCount()); + assertEquals(4, stepExecution.getReadCount()); } @@ -126,7 +126,7 @@ public class SkipLimitStepFactoryBeanTests { // no rollbacks assertEquals(0, stepExecution.getRollbackCount()); - assertEquals(4, stepExecution.getItemCount()); + assertEquals(4, stepExecution.getReadCount()); } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryStepFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryStepFactoryBeanTests.java index 8a980f27b..b8aebd2bf 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryStepFactoryBeanTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryStepFactoryBeanTests.java @@ -168,7 +168,7 @@ public class StatefulRetryStepFactoryBeanTests { assertEquals(2, processed.size()); // [] assertEquals(0, recovered.size()); - assertEquals(2, stepExecution.getItemCount()); + assertEquals(2, stepExecution.getReadCount()); assertEquals(0, stepExecution.getReadSkipCount()); } @@ -200,7 +200,7 @@ public class StatefulRetryStepFactoryBeanTests { assertEquals(2, stepExecution.getSkipCount()); // b is processed once and skipped, plus 1, plus c, plus the null at end assertEquals(7, count); - assertEquals(4, stepExecution.getItemCount()); + assertEquals(4, stepExecution.getReadCount()); } @Test @@ -381,7 +381,7 @@ public class StatefulRetryStepFactoryBeanTests { assertEquals(4, processed.size()); // [] assertEquals(0, recovered.size()); - assertEquals(1, stepExecution.getItemCount()); + assertEquals(1, stepExecution.getReadCount()); } @Test @@ -438,7 +438,7 @@ public class StatefulRetryStepFactoryBeanTests { assertEquals(1, processed.size()); // [] assertEquals(0, recovered.size()); - assertEquals(1, stepExecution.getItemCount()); + assertEquals(1, stepExecution.getReadCount()); } @Test @@ -484,7 +484,7 @@ public class StatefulRetryStepFactoryBeanTests { assertEquals(4, processed.size()); // [] assertEquals(0, recovered.size()); - assertEquals(1, stepExecution.getItemCount()); + assertEquals(1, stepExecution.getReadCount()); } @Test diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryTaskletTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryTaskletTests.java index f15313166..9123caa12 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryTaskletTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryTaskletTests.java @@ -114,7 +114,7 @@ public class StatefulRetryTaskletTests { retryTemplate, rollbackClassifier, readSkipPolicy, writeSkipPolicy, writeSkipPolicy); StepContribution contribution = new StepExecution("foo", null).createStepContribution(); handler.execute(contribution, new BasicAttributeAccessor()); - assertEquals(limit, contribution.getItemCount()); + assertEquals(limit, contribution.getReadCount()); } @Test @@ -159,7 +159,7 @@ public class StatefulRetryTaskletTests { } assertTrue(attributes.hasAttribute("OUTPUT_BUFFER_KEY")); handler.execute(contribution, attributes); - assertEquals(1, contribution.getItemCount()); + assertEquals(1, contribution.getReadCount()); assertEquals(1, contribution.getWriteSkipCount()); assertEquals(1, written.size()); } @@ -210,7 +210,7 @@ public class StatefulRetryTaskletTests { // expected } assertTrue(attributes.hasAttribute("OUTPUT_BUFFER_KEY")); - assertEquals(3, contribution.getItemCount()); + assertEquals(3, contribution.getReadCount()); assertEquals(2, contribution.getWriteSkipCount()); assertEquals(5, written.size()); } @@ -249,7 +249,7 @@ public class StatefulRetryTaskletTests { handler.execute(contribution, attributes); assertEquals(1, chunk.getSkips().size()); - assertEquals(2, contribution.getItemCount()); + assertEquals(2, contribution.getReadCount()); assertEquals(1, contribution.getProcessSkipCount()); assertEquals(5, processed.size()); assertEquals("[p1, p2]", written.toString()); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TasketStepTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TasketStepTests.java index 83063b72c..ee6661c55 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TasketStepTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TasketStepTests.java @@ -134,7 +134,7 @@ public class TasketStepTests { step.execute(stepExecution); assertEquals(1, processed.size()); - assertEquals(1, stepExecution.getItemCount()); + assertEquals(1, stepExecution.getReadCount()); assertEquals(1, stepExecution.getCommitCount()); } @@ -155,7 +155,7 @@ public class TasketStepTests { step.execute(stepExecution); assertEquals(3, processed.size()); - assertEquals(3, stepExecution.getItemCount()); + assertEquals(3, stepExecution.getReadCount()); assertTrue(3 <= jobRepository.updateCount); } @@ -804,7 +804,7 @@ public class TasketStepTests { step.execute(stepExecution); assertEquals(3, processed.size()); - assertEquals(3, stepExecution.getItemCount()); + assertEquals(3, stepExecution.getReadCount()); } /** @@ -845,7 +845,7 @@ public class TasketStepTests { public void update(StepExecution stepExecution) { updateCount++; if (updateCount <= 3) { - assertEquals(updateCount, stepExecution.getItemCount()); + assertEquals(updateCount, stepExecution.getReadCount()); } } diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/InfiniteLoopWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/InfiniteLoopWriter.java index 0c2fcc168..8f3cbdb13 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/InfiniteLoopWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/InfiniteLoopWriter.java @@ -54,7 +54,7 @@ public class InfiniteLoopWriter extends StepExecutionListenerSupport implements Thread.currentThread().interrupt(); throw new RuntimeException("Job interrupted."); } - stepExecution.setItemCount(++count); + stepExecution.setWriteCount(++count); logger.info("Executing infinite loop, at count=" + count); } }