diff --git a/infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateInputSource.java b/infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateCursorInputSource.java similarity index 90% rename from infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateInputSource.java rename to infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateCursorInputSource.java index a31ee9bec..5c104d8c7 100644 --- a/infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateInputSource.java +++ b/infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateCursorInputSource.java @@ -31,16 +31,17 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionSynchronizationAdapter; import org.springframework.util.Assert; +import org.springframework.util.ClassUtils; /** * {@link InputSource} for reading database records built on top of Hibernate. * * @author Robert Kasanicky */ -public class HibernateInputSource implements InputSource, Restartable, InitializingBean, DisposableBean, +public class HibernateCursorInputSource implements InputSource, Restartable, InitializingBean, DisposableBean, ResourceLifecycle { - private static final String RESTART_DATA_ROW_NUMBER_KEY = "HibernateInputSource.rowNumber"; + private static final String RESTART_DATA_ROW_NUMBER_KEY = ClassUtils.getShortName(HibernateCursorInputSource.class)+".rowNumber"; private SessionFactory sessionFactory; private StatelessSession session; diff --git a/infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisInputSource.java b/infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisDrivingQueryInputSource.java similarity index 84% rename from infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisInputSource.java rename to infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisDrivingQueryInputSource.java index d6e4c120f..0af20f4b3 100644 --- a/infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisInputSource.java +++ b/infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisDrivingQueryInputSource.java @@ -18,6 +18,8 @@ package org.springframework.batch.io.driving; import org.springframework.batch.io.driving.support.IbatisKeyGenerator; import org.springframework.orm.ibatis.SqlMapClientTemplate; +import com.ibatis.sqlmap.client.SqlMapClient; + /** * Extension of {@link DrivingQueryInputSource} that maps keys to * objects. An iBatis query id must be set to map and return each 'detail record'. @@ -25,7 +27,7 @@ import org.springframework.orm.ibatis.SqlMapClientTemplate; * @author Lucas Ward * @see IbatisKeyGenerator */ -public class IbatisInputSource extends DrivingQueryInputSource { +public class IbatisDrivingQueryInputSource extends DrivingQueryInputSource { private String detailsQueryId; @@ -54,8 +56,8 @@ public class IbatisInputSource extends DrivingQueryInputSource { * * @param sqlMapClientTemplate */ - public void setSqlMapClientTemplate( - SqlMapClientTemplate sqlMapClientTemplate) { - this.sqlMapClientTemplate = sqlMapClientTemplate; + public void setSqlMapClient( + SqlMapClient sqlMapClient) { + this.sqlMapClientTemplate = new SqlMapClientTemplate(sqlMapClient); } } diff --git a/infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateInputSourceIntegrationTests.java b/infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateInputSourceIntegrationTests.java index 83331c505..1c0937737 100644 --- a/infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateInputSourceIntegrationTests.java +++ b/infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateInputSourceIntegrationTests.java @@ -2,14 +2,14 @@ package org.springframework.batch.io.cursor; import org.hibernate.SessionFactory; import org.springframework.batch.io.InputSource; -import org.springframework.batch.io.cursor.HibernateInputSource; +import org.springframework.batch.io.cursor.HibernateCursorInputSource; import org.springframework.batch.io.support.AbstractDataSourceInputSourceIntegrationTests; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.orm.hibernate3.LocalSessionFactoryBean; /** - * Tests for {@link HibernateInputSource} + * Tests for {@link HibernateCursorInputSource} * * @author Robert Kasanicky */ @@ -25,7 +25,7 @@ public class HibernateInputSourceIntegrationTests extends AbstractDataSourceInpu String hsqlQuery = "from Foo"; - HibernateInputSource inputSource = new HibernateInputSource(); + HibernateCursorInputSource inputSource = new HibernateCursorInputSource(); inputSource.setQueryString(hsqlQuery); inputSource.setSessionFactory(sessionFactory); inputSource.afterPropertiesSet(); diff --git a/infrastructure/src/test/java/org/springframework/batch/io/driving/IbatisInputSourceIntegrationTests.java b/infrastructure/src/test/java/org/springframework/batch/io/driving/IbatisInputSourceIntegrationTests.java index 8efec8e3e..2a7e7ef98 100644 --- a/infrastructure/src/test/java/org/springframework/batch/io/driving/IbatisInputSourceIntegrationTests.java +++ b/infrastructure/src/test/java/org/springframework/batch/io/driving/IbatisInputSourceIntegrationTests.java @@ -1,12 +1,10 @@ package org.springframework.batch.io.driving; import org.springframework.batch.io.InputSource; -import org.springframework.batch.io.driving.IbatisInputSource; import org.springframework.batch.io.driving.support.IbatisKeyGenerator; import org.springframework.batch.io.support.AbstractDataSourceInputSourceIntegrationTests; import org.springframework.core.io.ClassPathResource; import org.springframework.orm.ibatis.SqlMapClientFactoryBean; -import org.springframework.orm.ibatis.SqlMapClientTemplate; import com.ibatis.sqlmap.client.SqlMapClient; @@ -24,15 +22,14 @@ public class IbatisInputSourceIntegrationTests extends AbstractDataSourceInputSo factory.setDataSource(super.getJdbcTemplate().getDataSource()); factory.afterPropertiesSet(); SqlMapClient sqlMapClient = (SqlMapClient) factory.getObject(); - SqlMapClientTemplate sqlMapClientTemplate = new SqlMapClientTemplate(sqlMapClient); - IbatisInputSource inputSource = new IbatisInputSource(); + IbatisDrivingQueryInputSource inputSource = new IbatisDrivingQueryInputSource(); IbatisKeyGenerator keyGenerator = new IbatisKeyGenerator(); keyGenerator.setDrivingQueryId("getAllFooIds"); inputSource.setDetailsQueryId("getFooById"); keyGenerator.setRestartQueryId("getAllFooIdsRestart"); keyGenerator.setSqlMapClient(sqlMapClient); - inputSource.setSqlMapClientTemplate(sqlMapClientTemplate); + inputSource.setSqlMapClient(sqlMapClient); inputSource.setKeyGenerator(keyGenerator); return inputSource; diff --git a/samples/src/main/resources/jobs/hibernateJob.xml b/samples/src/main/resources/jobs/hibernateJob.xml index 5ad0b3a5e..e97fbcc64 100644 --- a/samples/src/main/resources/jobs/hibernateJob.xml +++ b/samples/src/main/resources/jobs/hibernateJob.xml @@ -43,7 +43,7 @@ - diff --git a/samples/src/main/resources/jobs/ibatisJob.xml b/samples/src/main/resources/jobs/ibatisJob.xml index 4c3a88239..a997709ae 100644 --- a/samples/src/main/resources/jobs/ibatisJob.xml +++ b/samples/src/main/resources/jobs/ibatisJob.xml @@ -45,13 +45,18 @@ - - - + + + + + + +