IN PROGRESS - BATCH-712: Upgrade ItemReaders to use Parameterized types
This commit is contained in:
@@ -10,15 +10,15 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
|
||||
class FooItemReader implements ItemStream, ItemReader<Foo>, DisposableBean, InitializingBean {
|
||||
|
||||
DrivingQueryItemReader<Foo> itemReader;
|
||||
DrivingQueryItemReader<?> itemReader;
|
||||
|
||||
public void setItemReader(DrivingQueryItemReader<Foo> itemReader) {
|
||||
public void setItemReader(DrivingQueryItemReader<?> itemReader) {
|
||||
this.itemReader = itemReader;
|
||||
}
|
||||
|
||||
FooDao fooDao = new SingleKeyFooDao();
|
||||
|
||||
public FooItemReader(DrivingQueryItemReader<Foo> inputSource, JdbcTemplate jdbcTemplate) {
|
||||
public FooItemReader(DrivingQueryItemReader<?> inputSource, JdbcTemplate jdbcTemplate) {
|
||||
this.itemReader = inputSource;
|
||||
fooDao.setJdbcTemplate(jdbcTemplate);
|
||||
}
|
||||
|
||||
@@ -15,8 +15,11 @@
|
||||
*/
|
||||
package org.springframework.batch.item.database;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.database.support.MultipleColumnJdbcKeyCollector;
|
||||
import org.springframework.batch.item.sample.Foo;
|
||||
|
||||
/**
|
||||
* @author Lucas Ward
|
||||
@@ -25,14 +28,14 @@ import org.springframework.batch.item.database.support.MultipleColumnJdbcKeyColl
|
||||
public class MultipleColumnJdbcDrivingQueryItemReaderIntegrationTests extends
|
||||
AbstractJdbcItemReaderIntegrationTests {
|
||||
|
||||
protected ItemReader createItemReader() throws Exception {
|
||||
protected ItemReader<Foo> createItemReader() throws Exception {
|
||||
|
||||
MultipleColumnJdbcKeyCollector keyGenerator =
|
||||
new MultipleColumnJdbcKeyCollector(getJdbcTemplate(),
|
||||
MultipleColumnJdbcKeyCollector<Map<?,?>> keyGenerator =
|
||||
new MultipleColumnJdbcKeyCollector<Map<?,?>>(getJdbcTemplate(),
|
||||
"SELECT ID, VALUE from T_FOOS order by ID, VALUE");
|
||||
|
||||
keyGenerator.setRestartSql("SELECT ID, VALUE from T_FOOS where ID > ? and VALUE > ? order by ID");
|
||||
DrivingQueryItemReader inputSource = new DrivingQueryItemReader();
|
||||
DrivingQueryItemReader<Map<?,?>> inputSource = new DrivingQueryItemReader<Map<?,?>>();
|
||||
inputSource.setSaveState(true);
|
||||
inputSource.setKeyCollector(keyGenerator);
|
||||
FooItemReader fooItemReader = new FooItemReader(inputSource, getJdbcTemplate());
|
||||
|
||||
@@ -3,30 +3,31 @@ package org.springframework.batch.item.database;
|
||||
import org.springframework.batch.item.ExecutionContext;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.database.support.SingleColumnJdbcKeyCollector;
|
||||
import org.springframework.batch.item.sample.Foo;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
|
||||
public class SingleColumnJdbcDrivingQueryItemReaderCommonTests extends CommonDatabaseItemStreamItemReaderTests {
|
||||
|
||||
protected ItemReader getItemReader() throws Exception {
|
||||
protected ItemReader<Foo> getItemReader() throws Exception {
|
||||
JdbcTemplate jdbcTemplate = new JdbcTemplate(getDataSource());
|
||||
SingleColumnJdbcKeyCollector keyCollector = new SingleColumnJdbcKeyCollector(jdbcTemplate,
|
||||
SingleColumnJdbcKeyCollector<Long> keyCollector = new SingleColumnJdbcKeyCollector<Long>(jdbcTemplate,
|
||||
"SELECT ID from T_FOOS order by ID");
|
||||
keyCollector.setRestartSql("SELECT ID from T_FOOS where ID > ? order by ID");
|
||||
DrivingQueryItemReader reader = new DrivingQueryItemReader();
|
||||
DrivingQueryItemReader<Long> reader = new DrivingQueryItemReader<Long>();
|
||||
reader.setKeyCollector(keyCollector);
|
||||
reader.setSaveState(true);
|
||||
return new FooItemReader(reader, jdbcTemplate);
|
||||
}
|
||||
|
||||
protected void pointToEmptyInput(ItemReader tested) throws Exception {
|
||||
protected void pointToEmptyInput(ItemReader<Foo> tested) throws Exception {
|
||||
FooItemReader fooReader = (FooItemReader) tested;
|
||||
fooReader.close(new ExecutionContext());
|
||||
|
||||
DrivingQueryItemReader reader = new DrivingQueryItemReader();
|
||||
DrivingQueryItemReader<Long> reader = new DrivingQueryItemReader<Long>();
|
||||
reader.close(new ExecutionContext());
|
||||
|
||||
JdbcTemplate jdbcTemplate = new JdbcTemplate(getDataSource());
|
||||
SingleColumnJdbcKeyCollector keyCollector = new SingleColumnJdbcKeyCollector(jdbcTemplate,
|
||||
SingleColumnJdbcKeyCollector<Long> keyCollector = new SingleColumnJdbcKeyCollector<Long>(jdbcTemplate,
|
||||
"SELECT ID from T_FOOS where ID < 0");
|
||||
|
||||
reader.setKeyCollector(keyCollector);
|
||||
|
||||
@@ -2,21 +2,22 @@ package org.springframework.batch.item.database;
|
||||
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.database.support.SingleColumnJdbcKeyCollector;
|
||||
import org.springframework.batch.item.sample.Foo;
|
||||
|
||||
public class SingleColumnJdbcDrivingQueryItemReaderIntegrationTests extends AbstractJdbcItemReaderIntegrationTests {
|
||||
|
||||
protected ItemReader source;
|
||||
protected ItemReader<Long> source;
|
||||
|
||||
|
||||
/**
|
||||
* @return input source with all necessary dependencies set
|
||||
*/
|
||||
protected ItemReader createItemReader() throws Exception {
|
||||
protected ItemReader<Foo> createItemReader() throws Exception {
|
||||
|
||||
SingleColumnJdbcKeyCollector keyStrategy = new SingleColumnJdbcKeyCollector(getJdbcTemplate(),
|
||||
SingleColumnJdbcKeyCollector<Long> keyStrategy = new SingleColumnJdbcKeyCollector<Long>(getJdbcTemplate(),
|
||||
"SELECT ID from T_FOOS order by ID");
|
||||
keyStrategy.setRestartSql("SELECT ID from T_FOOS where ID > ? order by ID");
|
||||
DrivingQueryItemReader inputSource = new DrivingQueryItemReader();
|
||||
DrivingQueryItemReader<Long> inputSource = new DrivingQueryItemReader<Long>();
|
||||
inputSource.setKeyCollector(keyStrategy);
|
||||
inputSource.setSaveState(true);
|
||||
return new FooItemReader(inputSource, getJdbcTemplate());
|
||||
|
||||
@@ -17,7 +17,7 @@ import org.springframework.util.ClassUtils;
|
||||
*/
|
||||
public class MultipleColumnJdbcKeyGeneratorIntegrationTests extends AbstractTransactionalDataSourceSpringContextTests {
|
||||
|
||||
MultipleColumnJdbcKeyCollector keyStrategy;
|
||||
MultipleColumnJdbcKeyCollector<Map<?,?>> keyStrategy;
|
||||
|
||||
ExecutionContext executionContext;
|
||||
|
||||
@@ -28,7 +28,7 @@ public class MultipleColumnJdbcKeyGeneratorIntegrationTests extends AbstractTran
|
||||
protected void onSetUpBeforeTransaction() throws Exception {
|
||||
super.onSetUpBeforeTransaction();
|
||||
|
||||
keyStrategy = new MultipleColumnJdbcKeyCollector(getJdbcTemplate(),
|
||||
keyStrategy = new MultipleColumnJdbcKeyCollector<Map<?,?>>(getJdbcTemplate(),
|
||||
"SELECT ID, VALUE from T_FOOS order by ID");
|
||||
|
||||
keyStrategy.setRestartSql("SELECT ID, VALUE from T_FOOS where ID > ? and VALUE > ? order by ID");
|
||||
@@ -38,10 +38,10 @@ public class MultipleColumnJdbcKeyGeneratorIntegrationTests extends AbstractTran
|
||||
|
||||
public void testRetrieveKeys(){
|
||||
|
||||
List<Object> keys = keyStrategy.retrieveKeys(executionContext);
|
||||
List<Map<?,?>> keys = keyStrategy.retrieveKeys(executionContext);
|
||||
|
||||
for (int i = 0; i < keys.size(); i++) {
|
||||
Map<?,?> id = (Map<?,?>)keys.get(i);
|
||||
Map<?,?> id = keys.get(i);
|
||||
assertEquals(id.get("ID"), new Long(i + 1));
|
||||
assertEquals(id.get("VALUE"), new Integer(i + 1));
|
||||
}
|
||||
@@ -54,13 +54,13 @@ public class MultipleColumnJdbcKeyGeneratorIntegrationTests extends AbstractTran
|
||||
keyMap.put("VALUE", "3");
|
||||
executionContext.put(ClassUtils.getShortName(MultipleColumnJdbcKeyCollector.class)+ ".current.key", keyMap);
|
||||
|
||||
List<Object> keys = keyStrategy.retrieveKeys(executionContext);
|
||||
List<Map<?,?>> keys = keyStrategy.retrieveKeys(executionContext);
|
||||
|
||||
assertEquals(2, keys.size());
|
||||
Map<?,?> key = (Map<?,?>)keys.get(0);
|
||||
Map<?,?> key = keys.get(0);
|
||||
assertEquals(new Long(4), key.get("ID"));
|
||||
assertEquals(new Integer(4), key.get("VALUE"));
|
||||
key = (Map<?,?>)keys.get(1);
|
||||
key = keys.get(1);
|
||||
assertEquals(new Long(5), key.get("ID"));
|
||||
assertEquals(new Integer(5), key.get("VALUE"));
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ import org.springframework.util.ClassUtils;
|
||||
*/
|
||||
public class SingleColumnJdbcKeyGeneratorIntegrationTests extends AbstractTransactionalDataSourceSpringContextTests {
|
||||
|
||||
SingleColumnJdbcKeyCollector keyStrategy;
|
||||
SingleColumnJdbcKeyCollector<Long> keyStrategy;
|
||||
|
||||
ExecutionContext executionContext;
|
||||
|
||||
@@ -25,7 +25,7 @@ public class SingleColumnJdbcKeyGeneratorIntegrationTests extends AbstractTransa
|
||||
protected void onSetUpBeforeTransaction() throws Exception {
|
||||
super.onSetUpBeforeTransaction();
|
||||
|
||||
keyStrategy = new SingleColumnJdbcKeyCollector(getJdbcTemplate(),
|
||||
keyStrategy = new SingleColumnJdbcKeyCollector<Long>(getJdbcTemplate(),
|
||||
"SELECT ID from T_FOOS order by ID");
|
||||
|
||||
keyStrategy.setRestartSql("SELECT ID from T_FOOS where ID > ? order by ID");
|
||||
@@ -35,7 +35,7 @@ public class SingleColumnJdbcKeyGeneratorIntegrationTests extends AbstractTransa
|
||||
|
||||
public void testRetrieveKeys(){
|
||||
|
||||
List<Object> keys = keyStrategy.retrieveKeys(new ExecutionContext());
|
||||
List<Long> keys = keyStrategy.retrieveKeys(new ExecutionContext());
|
||||
|
||||
for (int i = 0; i < keys.size(); i++) {
|
||||
Long id = (Long)keys.get(i);
|
||||
@@ -51,7 +51,7 @@ public class SingleColumnJdbcKeyGeneratorIntegrationTests extends AbstractTransa
|
||||
|
||||
keyStrategy.updateContext(new Long(3), executionContext);
|
||||
|
||||
List<Object> keys = keyStrategy.retrieveKeys(executionContext);
|
||||
List<Long> keys = keyStrategy.retrieveKeys(executionContext);
|
||||
|
||||
assertEquals(2, keys.size());
|
||||
assertEquals(new Long(4), keys.get(0));
|
||||
|
||||
@@ -15,6 +15,7 @@ public class AggregateItemReaderTests extends TestCase {
|
||||
private ItemReader<Object> input;
|
||||
private AggregateItemReader provider;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void setUp() {
|
||||
|
||||
//create mock for input
|
||||
|
||||
Reference in New Issue
Block a user