From 9681c485aad82d17ef186196db0cd04e0919b1bc Mon Sep 17 00:00:00 2001 From: dsyer Date: Wed, 10 Oct 2007 09:46:03 +0000 Subject: [PATCH] RESOLVED - issue BATCH-161: OutputSource still extends ResourceLifecycle http://opensource.atlassian.com/projects/spring/browse/BATCH-161 --- .../sample/dao/CustomerCreditWriter.java | 2 +- .../dao/FlatFileCustomerCreditWriter.java | 80 ++++++++++--------- .../batch/sample/dao/JdbcTradeWriter.java | 6 -- .../batch/sample/dao/SqlNflGameDao.java | 10 --- .../sample/dao/SqlNflPlayerSummaryDao.java | 10 --- .../FlatFileCustomerCreditWriterTests.java | 11 ++- .../sample/dao/FlatFileOrderWriterTests.java | 7 -- .../tasklet/SimpleTradeTaskletTests.java | 3 - 8 files changed, 53 insertions(+), 76 deletions(-) diff --git a/samples/src/main/java/org/springframework/batch/sample/dao/CustomerCreditWriter.java b/samples/src/main/java/org/springframework/batch/sample/dao/CustomerCreditWriter.java index fd1e387ff..666a3ff10 100644 --- a/samples/src/main/java/org/springframework/batch/sample/dao/CustomerCreditWriter.java +++ b/samples/src/main/java/org/springframework/batch/sample/dao/CustomerCreditWriter.java @@ -24,7 +24,7 @@ import org.springframework.batch.sample.domain.CustomerCredit; * * @author Robert Kasanicky */ -public interface CustomerCreditWriter extends ResourceLifecycle{ +public interface CustomerCreditWriter extends ResourceLifecycle { void write(CustomerCredit customerCredit); diff --git a/samples/src/main/java/org/springframework/batch/sample/dao/FlatFileCustomerCreditWriter.java b/samples/src/main/java/org/springframework/batch/sample/dao/FlatFileCustomerCreditWriter.java index 19a0454de..b8ef69013 100644 --- a/samples/src/main/java/org/springframework/batch/sample/dao/FlatFileCustomerCreditWriter.java +++ b/samples/src/main/java/org/springframework/batch/sample/dao/FlatFileCustomerCreditWriter.java @@ -17,56 +17,64 @@ package org.springframework.batch.sample.dao; import org.springframework.batch.io.OutputSource; +import org.springframework.batch.item.ResourceLifecycle; import org.springframework.batch.sample.domain.CustomerCredit; import org.springframework.beans.factory.DisposableBean; - /** * Writes customer's credit information in a file. * * @see CustomerCreditWriter * @author Robert Kasanicky */ -public class FlatFileCustomerCreditWriter implements CustomerCreditWriter, DisposableBean { - +public class FlatFileCustomerCreditWriter implements CustomerCreditWriter, + DisposableBean { + private OutputSource outputSource; - + private String separator = "\t"; - - private volatile boolean opened = false; - public void write(CustomerCredit customerCredit) { - - if (!opened) { - open(); - } + private volatile boolean opened = false; - String line = "" + customerCredit.getName() + separator + customerCredit.getCredit(); + public void write(CustomerCredit customerCredit) { - outputSource.write(line); - } + if (!opened) { + open(); + } - public void setSeparator(String separator) { - this.separator = separator; - } + String line = "" + customerCredit.getName() + separator + + customerCredit.getCredit(); - public void setOutputSource(OutputSource outputSource) { - this.outputSource = outputSource; - } - - public void open() { - outputSource.open(); - opened = true; - } - - public void close() { - outputSource.close(); - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.DisposableBean#destroy() - */ - public void destroy() throws Exception { - close(); - } + outputSource.write(line); + } + + public void setSeparator(String separator) { + this.separator = separator; + } + + public void setOutputSource(OutputSource outputSource) { + this.outputSource = outputSource; + } + + public void open() { + if (outputSource instanceof ResourceLifecycle) { + ((ResourceLifecycle) outputSource).open(); + } + opened = true; + } + + public void close() { + if (outputSource instanceof ResourceLifecycle) { + ((ResourceLifecycle) outputSource).close(); + } + } + + /* + * (non-Javadoc) + * + * @see org.springframework.beans.factory.DisposableBean#destroy() + */ + public void destroy() throws Exception { + close(); + } } diff --git a/samples/src/main/java/org/springframework/batch/sample/dao/JdbcTradeWriter.java b/samples/src/main/java/org/springframework/batch/sample/dao/JdbcTradeWriter.java index 497945832..306fb080c 100644 --- a/samples/src/main/java/org/springframework/batch/sample/dao/JdbcTradeWriter.java +++ b/samples/src/main/java/org/springframework/batch/sample/dao/JdbcTradeWriter.java @@ -70,10 +70,4 @@ public class JdbcTradeWriter implements TradeWriter { this.writeTrade((Trade)output); } - public void close() { - } - - public void open() { - } - } diff --git a/samples/src/main/java/org/springframework/batch/sample/dao/SqlNflGameDao.java b/samples/src/main/java/org/springframework/batch/sample/dao/SqlNflGameDao.java index 65f35abff..83442a127 100644 --- a/samples/src/main/java/org/springframework/batch/sample/dao/SqlNflGameDao.java +++ b/samples/src/main/java/org/springframework/batch/sample/dao/SqlNflGameDao.java @@ -34,14 +34,4 @@ public class SqlNflGameDao extends JdbcDaoSupport implements OutputSource { this.getJdbcTemplate().update(INSERT_GAME, args); } - public void close() { - // TODO Auto-generated method stub - - } - - public void open() { - // TODO Auto-generated method stub - - } - } diff --git a/samples/src/main/java/org/springframework/batch/sample/dao/SqlNflPlayerSummaryDao.java b/samples/src/main/java/org/springframework/batch/sample/dao/SqlNflPlayerSummaryDao.java index 453a18d22..e16f51943 100644 --- a/samples/src/main/java/org/springframework/batch/sample/dao/SqlNflPlayerSummaryDao.java +++ b/samples/src/main/java/org/springframework/batch/sample/dao/SqlNflPlayerSummaryDao.java @@ -28,14 +28,4 @@ public class SqlNflPlayerSummaryDao extends JdbcDaoSupport implements OutputSour getJdbcTemplate().update(INSERT_SUMMARY, args); } - public void close() { - // TODO Auto-generated method stub - - } - - public void open() { - // TODO Auto-generated method stub - - } - } diff --git a/samples/src/test/java/org/springframework/batch/sample/dao/FlatFileCustomerCreditWriterTests.java b/samples/src/test/java/org/springframework/batch/sample/dao/FlatFileCustomerCreditWriterTests.java index abd7463cf..86016db24 100644 --- a/samples/src/test/java/org/springframework/batch/sample/dao/FlatFileCustomerCreditWriterTests.java +++ b/samples/src/test/java/org/springframework/batch/sample/dao/FlatFileCustomerCreditWriterTests.java @@ -3,6 +3,7 @@ package org.springframework.batch.sample.dao; import java.math.BigDecimal; import org.springframework.batch.io.OutputSource; +import org.springframework.batch.item.ResourceLifecycle; import org.springframework.batch.sample.domain.CustomerCredit; import org.easymock.MockControl; @@ -11,15 +12,15 @@ import junit.framework.TestCase; public class FlatFileCustomerCreditWriterTests extends TestCase { private MockControl outputControl; - private OutputSource output; + private ResourceLifecycleOutputSource output; private FlatFileCustomerCreditWriter writer; public void setUp() throws Exception { super.setUp(); //create mock for OutputSource - outputControl = MockControl.createControl(OutputSource.class); - output = (OutputSource)outputControl.getMock(); + outputControl = MockControl.createControl(ResourceLifecycleOutputSource.class); + output = (ResourceLifecycleOutputSource)outputControl.getMock(); //create new writer writer = new FlatFileCustomerCreditWriter(); @@ -73,4 +74,8 @@ public class FlatFileCustomerCreditWriterTests extends TestCase { //verify method calls outputControl.verify(); } + + private interface ResourceLifecycleOutputSource extends OutputSource, ResourceLifecycle { + + } } diff --git a/samples/src/test/java/org/springframework/batch/sample/dao/FlatFileOrderWriterTests.java b/samples/src/test/java/org/springframework/batch/sample/dao/FlatFileOrderWriterTests.java index ad356631f..bab3d855c 100644 --- a/samples/src/test/java/org/springframework/batch/sample/dao/FlatFileOrderWriterTests.java +++ b/samples/src/test/java/org/springframework/batch/sample/dao/FlatFileOrderWriterTests.java @@ -28,13 +28,6 @@ public class FlatFileOrderWriterTests extends TestCase { list.add(output); } - public void close() { - list.add("close"); - } - - public void open() { - list.add("open"); - } }; private FlatFileOrderWriter writer; diff --git a/samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleTradeTaskletTests.java b/samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleTradeTaskletTests.java index df90ae48d..ed7ffea3a 100644 --- a/samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleTradeTaskletTests.java +++ b/samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleTradeTaskletTests.java @@ -7,7 +7,6 @@ import junit.framework.TestCase; import org.springframework.batch.io.file.support.DefaultFlatFileInputSource; import org.springframework.batch.sample.dao.TradeWriter; import org.springframework.batch.sample.domain.Trade; -import org.springframework.batch.sample.tasklet.SimpleTradeTasklet; public class SimpleTradeTaskletTests extends TestCase { @@ -43,8 +42,6 @@ public class SimpleTradeTaskletTests extends TestCase { writerCalled = true; } public void write(Object output) {} - public void close() {} - public void open() {} }; //create module