diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/dao/JdbcCustomerDebitDao.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/dao/JdbcCustomerDebitDao.java index e6ee65d12..05f023d70 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/dao/JdbcCustomerDebitDao.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/dao/JdbcCustomerDebitDao.java @@ -16,13 +16,12 @@ package org.springframework.batch.sample.dao; +import javax.sql.DataSource; + import org.springframework.batch.sample.domain.CustomerDebit; -import org.springframework.jdbc.core.JdbcOperations; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.simple.SimpleJdbcOperations; import org.springframework.jdbc.core.simple.SimpleJdbcTemplate; -import org.springframework.beans.factory.annotation.Autowired; - -import javax.sql.DataSource; /** diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/dao/OrderTransformer.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/dao/OrderTransformer.java index c3d48dc93..0d19d3a11 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/dao/OrderTransformer.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/dao/OrderTransformer.java @@ -35,7 +35,7 @@ import org.springframework.batch.sample.domain.Order; * Converts Order object to a String. * @author Dave Syer */ -public class OrderTransformer implements ItemTransformer { +public class OrderTransformer implements ItemTransformer> { /** * Aggregators for all types of lines in the output file @@ -46,8 +46,7 @@ public class OrderTransformer implements ItemTransformer { * Converts information from an Order object to a collection of Strings for * output. */ - public Object transform(Object data) { - Order order = (Order) data; + public List transform(Order order) { List result = new ArrayList(); diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/BatchSqlCustomerCreditIncreaseWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/BatchSqlCustomerCreditIncreaseWriter.java index f20ccc6ae..41026b0af 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/BatchSqlCustomerCreditIncreaseWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/BatchSqlCustomerCreditIncreaseWriter.java @@ -17,9 +17,9 @@ import org.springframework.util.Assert; * * @author Dave Syer */ -public class BatchSqlCustomerCreditIncreaseWriter implements ItemWriter, InitializingBean { +public class BatchSqlCustomerCreditIncreaseWriter implements ItemWriter, InitializingBean { - private ItemWriter delegate; + private ItemWriter delegate; public static final BigDecimal FIXED_AMOUNT = new BigDecimal(1000); @@ -28,7 +28,7 @@ public class BatchSqlCustomerCreditIncreaseWriter implements ItemWriter, Initial * {@link BatchSqlUpdateItemWriter}. * @param delegate the delegate to set */ - public void setDelegate(ItemWriter delegate) { + public void setDelegate(ItemWriter delegate) { this.delegate = delegate; } @@ -44,23 +44,14 @@ public class BatchSqlCustomerCreditIncreaseWriter implements ItemWriter, Initial * (non-Javadoc) * @see org.springframework.batch.item.processor.DelegatingItemWriter#doProcess(java.lang.Object) */ - public void write(Object data) throws Exception { - CustomerCredit customerCredit = ((CustomerCredit) data).increaseCreditBy(FIXED_AMOUNT); + public void write(CustomerCredit customerCredit) throws Exception { delegate.write(customerCredit); } - /** - * @throws ClearFailedException - * @see org.springframework.batch.item.database.BatchSqlUpdateItemWriter#clear() - */ public void clear() throws ClearFailedException { delegate.clear(); } - /** - * @throws FlushFailedException - * @see org.springframework.batch.item.database.BatchSqlUpdateItemWriter#flush() - */ public void flush() throws FlushFailedException { delegate.flush(); } diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerCreditIncreaseWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerCreditIncreaseWriter.java index 11c23b903..9c35c96c2 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerCreditIncreaseWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerCreditIncreaseWriter.java @@ -11,7 +11,7 @@ import org.springframework.batch.sample.domain.CustomerCredit; * * @author Robert Kasanicky */ -public class CustomerCreditIncreaseWriter extends AbstractItemWriter { +public class CustomerCreditIncreaseWriter extends AbstractItemWriter { public static final BigDecimal FIXED_AMOUNT = new BigDecimal("1000"); @@ -28,9 +28,9 @@ public class CustomerCreditIncreaseWriter extends AbstractItemWriter { /* (non-Javadoc) * @see org.springframework.batch.item.processor.DelegatingItemWriter#doProcess(java.lang.Object) */ - public void write(Object data) throws Exception { - CustomerCredit customerCredit = ((CustomerCredit) data).increaseCreditBy(FIXED_AMOUNT); - customerCreditDao.writeCredit(customerCredit); + public void write(CustomerCredit customerCredit) throws Exception { + CustomerCredit result = customerCredit.increaseCreditBy(FIXED_AMOUNT); + customerCreditDao.writeCredit(result); } } diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerCreditUpdateWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerCreditUpdateWriter.java index bf8e0a460..820738006 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerCreditUpdateWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerCreditUpdateWriter.java @@ -22,12 +22,11 @@ import org.springframework.batch.sample.domain.CustomerCredit; -public class CustomerCreditUpdateWriter extends AbstractItemWriter { +public class CustomerCreditUpdateWriter extends AbstractItemWriter { private double creditFilter = 800; private CustomerCreditDao dao; - public void write(Object data) throws Exception { - CustomerCredit customerCredit = (CustomerCredit) data; + public void write(CustomerCredit customerCredit) throws Exception { if (customerCredit.getCredit().doubleValue() > creditFilter) { dao.writeCredit(customerCredit); diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerUpdateWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerUpdateWriter.java index 492c270a9..5d1d95ebe 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerUpdateWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/CustomerUpdateWriter.java @@ -27,12 +27,11 @@ import org.springframework.batch.sample.domain.Trade; * * @author Robert Kasanicky */ -public class CustomerUpdateWriter extends AbstractItemWriter { +public class CustomerUpdateWriter extends AbstractItemWriter { private CustomerDebitDao dao; - public void write(Object data) { - Trade trade = (Trade) data; + public void write(Trade trade) { CustomerDebit customerDebit = new CustomerDebit(); customerDebit.setName(trade.getCustomer()); customerDebit.setDebit(trade.getPrice()); diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/DummyItemWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/DummyItemWriter.java index 4f51b0e74..84ddeef97 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/DummyItemWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/DummyItemWriter.java @@ -21,7 +21,7 @@ import org.springframework.batch.item.support.AbstractItemWriter; * @author Dave Syer * */ -public class DummyItemWriter extends AbstractItemWriter { +public class DummyItemWriter extends AbstractItemWriter { public void write(Object item) throws Exception { // NO-OP diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/ItemTrackingItemWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/ItemTrackingItemWriter.java index 3059b4f15..84b0b86fc 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/ItemTrackingItemWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/ItemTrackingItemWriter.java @@ -9,15 +9,15 @@ import org.springframework.batch.item.validator.ValidationException; /** * Remembers all items written - useful for testing. */ -public class ItemTrackingItemWriter extends AbstractItemWriter { +public class ItemTrackingItemWriter extends AbstractItemWriter { - private List items = new ArrayList(); + private List items = new ArrayList(); private int failure = -1; private int counter = 0; - public void write(Object item) throws Exception { + public void write(T item) throws Exception { items.add(item); if (++counter == failure) { @@ -25,7 +25,7 @@ public class ItemTrackingItemWriter extends AbstractItemWriter { } } - public List getItems() { + public List getItems() { return items; } diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/OrderWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/OrderWriter.java deleted file mode 100644 index f615b9a1d..000000000 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/OrderWriter.java +++ /dev/null @@ -1,32 +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.sample.item.writer; - -import org.springframework.batch.core.UnexpectedJobExecutionException; -import org.springframework.batch.item.support.DelegatingItemWriter; -import org.springframework.batch.sample.domain.Order; - - - -public class OrderWriter extends DelegatingItemWriter { - public Object doProcess(Object data) { - if (!(data instanceof Order)) { - throw new UnexpectedJobExecutionException("OrderProcessor can process only Order objects"); - } - return data; - } -} diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/PersonWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/PersonWriter.java index 8748e5a95..53cc04f9b 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/PersonWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/PersonWriter.java @@ -23,10 +23,10 @@ import org.springframework.batch.sample.domain.Person; -public class PersonWriter extends AbstractItemWriter { +public class PersonWriter extends AbstractItemWriter { private static Log log = LogFactory.getLog(PersonWriter.class); - public void write(Object data) { + public void write(Person data) { if (!(data instanceof Person)) { log.warn("PersonProcessor can process only Person objects, skipping record"); diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/PlayerItemWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/PlayerItemWriter.java index ab432d685..abf76dc5f 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/PlayerItemWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/PlayerItemWriter.java @@ -4,12 +4,12 @@ import org.springframework.batch.item.support.AbstractItemWriter; import org.springframework.batch.sample.dao.PlayerDao; import org.springframework.batch.sample.domain.Player; -public class PlayerItemWriter extends AbstractItemWriter { +public class PlayerItemWriter extends AbstractItemWriter { private PlayerDao playerDao; - public void write(Object data) throws Exception { - playerDao.savePlayer((Player)data); + public void write(Player player) throws Exception { + playerDao.savePlayer(player); } public void setPlayerDao(PlayerDao playerDao) { diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/RetrySampleItemWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/RetrySampleItemWriter.java index 907c61f71..62d07dc51 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/RetrySampleItemWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/RetrySampleItemWriter.java @@ -8,11 +8,11 @@ import org.springframework.batch.item.support.AbstractItemWriter; * * @author Robert Kasanicky */ -public class RetrySampleItemWriter extends AbstractItemWriter { +public class RetrySampleItemWriter extends AbstractItemWriter { private int counter = 0; - public void write(Object data) throws Exception { + public void write(T data) throws Exception { counter++; if (counter == 2 || counter == 3) { throw new RuntimeException("Temporary error"); diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/StagingItemWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/StagingItemWriter.java index f3f623154..53ad598dc 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/StagingItemWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/StagingItemWriter.java @@ -22,7 +22,7 @@ import org.springframework.util.ClassUtils; /** * Database {@link ItemWriter} implementing the process indicator pattern. */ -public class StagingItemWriter extends JdbcDaoSupport implements StepExecutionListener, ItemWriter { +public class StagingItemWriter extends JdbcDaoSupport implements StepExecutionListener, ItemWriter { public static final String NEW = "N"; @@ -70,7 +70,7 @@ public class StagingItemWriter extends JdbcDaoSupport implements StepExecutionLi * * @see ItemWriter#write(java.lang.Object) */ - public void write(Object data) { + public void write(T data) { final long id = incrementer.nextLongValue(); final long jobId = stepExecution.getJobExecution().getJobId().longValue(); final byte[] blob = SerializationUtils.serialize((Serializable) data); diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/TradeWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/TradeWriter.java index 3dd853908..5a58fba10 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/TradeWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/TradeWriter.java @@ -26,7 +26,7 @@ import org.springframework.batch.sample.domain.Trade; * Delegates the actual writing to custom DAO delegate. Allows configurable * exception raising for testing skip and restart. */ -public class TradeWriter extends AbstractItemWriter { +public class TradeWriter extends AbstractItemWriter { private static Log log = LogFactory.getLog(TradeWriter.class); private TradeDao dao; @@ -44,17 +44,10 @@ public class TradeWriter extends AbstractItemWriter { this.failure = failure; } - public void write(Object data) { - if (!(data instanceof Trade)) { - log.warn("TradeProcessor can process only Trade objects, skipping record"); + public void write(Trade trade) { - return; - } + log.debug(trade); - Trade trade = (Trade) data; - log.debug(data); - - // TODO put some processing of the trade object here dao.writeTrade(trade); if (index++ == failure) { diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/mapping/TradeFieldSetMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/mapping/TradeFieldSetMapper.java index 07de78780..88b15f2bc 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/mapping/TradeFieldSetMapper.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/mapping/TradeFieldSetMapper.java @@ -23,6 +23,7 @@ import org.springframework.batch.sample.domain.Trade; +@SuppressWarnings("unchecked") public class TradeFieldSetMapper implements FieldSetMapper { public static final int ISIN_COLUMN = 0; diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/BatchSqlCustomerCreditIncreaseWriterTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/BatchSqlCustomerCreditIncreaseWriterTests.java index 416444b8e..cff0a4e07 100644 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/BatchSqlCustomerCreditIncreaseWriterTests.java +++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/BatchSqlCustomerCreditIncreaseWriterTests.java @@ -63,7 +63,7 @@ public class BatchSqlCustomerCreditIncreaseWriterTests { /** * Test method for - * {@link org.springframework.batch.sample.item.writer.BatchSqlCustomerCreditIncreaseWriter#write(java.lang.Object)}. + * {@link org.springframework.batch.sample.item.writer.BatchSqlCustomerCreditIncreaseWriter#write(CustomerCredit)}. * @throws Exception */ @Test diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/OrderWriterTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/OrderWriterTests.java deleted file mode 100644 index a1460d70a..000000000 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/OrderWriterTests.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.springframework.batch.sample.item.writer; - -import static org.junit.Assert.*; -import org.junit.Before; -import org.junit.Test; - -import org.easymock.MockControl; -import org.springframework.batch.core.UnexpectedJobExecutionException; -import org.springframework.batch.item.ItemWriter; -import org.springframework.batch.sample.domain.Order; - -public class OrderWriterTests { - - private MockControl writerControl; - private OrderWriter processor; - private ItemWriter writer; - - @Before - public void setUp() { - - //create mock writer - writerControl = MockControl.createControl(ItemWriter.class); - writer = (ItemWriter)writerControl.getMock(); - - //create processor - processor = new OrderWriter(); - processor.setDelegate(writer); - } - - @Test - public void testProcess() throws Exception { - - Order order = new Order(); - //set-up mock writer - writer.write(order); - writerControl.replay(); - - //call tested method - processor.write(order); - - //verify method calls - writerControl.verify(); - } - - @Test - public void testProcessWithException() throws Exception { - - writerControl.replay(); - //call tested method - try { - processor.write(this); - fail("Batch critical exception was expected"); - } catch (UnexpectedJobExecutionException bce) { - assertTrue(true); - } - writerControl.verify(); - } -} diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/TradeProcessorTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/TradeProcessorTests.java index 353b47b3c..986e1ee7b 100644 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/TradeProcessorTests.java +++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/TradeProcessorTests.java @@ -40,12 +40,4 @@ public class TradeProcessorTests { writerControl.verify(); } - @Test - public void testProcessNonTradeObject() { - - writerControl.replay(); - //call tested method - processor.write(this); - writerControl.verify(); - } }