diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-oracle10g.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-oracle10g.sql
index 1f5c94545..a50f89f28 100644
--- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-oracle10g.sql
+++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-oracle10g.sql
@@ -74,6 +74,6 @@ CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT (
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
) ;
-CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ START WITH 0 MAXVALUE 9223372036854775807 NOCYCLE;
-CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ START WITH 0 MAXVALUE 9223372036854775807 NOCYCLE;
-CREATE SEQUENCE BATCH_JOB_SEQ START WITH 0 MAXVALUE 9223372036854775807 NOCYCLE;
+CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ START WITH 0 MINVALUE 0 MAXVALUE 9223372036854775807 NOCYCLE;
+CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ START WITH 0 MINVALUE 0 MAXVALUE 9223372036854775807 NOCYCLE;
+CREATE SEQUENCE BATCH_JOB_SEQ START WITH 0 MINVALUE 0 MAXVALUE 9223372036854775807 NOCYCLE;
diff --git a/spring-batch-core/src/main/sql/oracle10g.vpp b/spring-batch-core/src/main/sql/oracle10g.vpp
index facb61f19..610c1f821 100644
--- a/spring-batch-core/src/main/sql/oracle10g.vpp
+++ b/spring-batch-core/src/main/sql/oracle10g.vpp
@@ -1,3 +1,3 @@
-#macro (sequence $name $value)CREATE SEQUENCE ${name} START WITH ${value} MAXVALUE 9223372036854775807 NOCYCLE;
+#macro (sequence $name $value)CREATE SEQUENCE ${name} START WITH ${value} MINVALUE 0 MAXVALUE 9223372036854775807 NOCYCLE;
#end
#macro (notnull $name $type)MODIFY ${name} NOT NULL#end
diff --git a/spring-batch-infrastructure-tests/pom.xml b/spring-batch-infrastructure-tests/pom.xml
index a600f8e1b..7feafd91e 100644
--- a/spring-batch-infrastructure-tests/pom.xml
+++ b/spring-batch-infrastructure-tests/pom.xml
@@ -11,6 +11,10 @@
2.1.1.CI-SNAPSHOT
../spring-batch-parent
+
+
+ hsql
+
tiger
@@ -65,6 +69,12 @@
maven-surefire-plugin
false
+
+
+ ENVIRONMENT
+ ${environment}
+
+
@@ -219,6 +229,19 @@
org.springframework
spring-aop
+
+ mysql
+ mysql-connector-java
+ 5.1.6
+ runtime
+
+
+ com.oracle.jdbc
+ com.springsource.oracle.jdbc
+ 10.2.0.2
+ true
+ runtime
+
diff --git a/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/item/database/JdbcPagingItemReaderAsyncTests.java b/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/item/database/JdbcPagingItemReaderAsyncTests.java
index 6cd7e12cf..1da5da798 100644
--- a/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/item/database/JdbcPagingItemReaderAsyncTests.java
+++ b/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/item/database/JdbcPagingItemReaderAsyncTests.java
@@ -24,7 +24,7 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.batch.item.ItemReader;
-import org.springframework.batch.item.database.support.HsqlPagingQueryProvider;
+import org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean;
import org.springframework.batch.item.sample.Foo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
@@ -137,11 +137,12 @@ public class JdbcPagingItemReaderAsyncTests {
JdbcPagingItemReader reader = new JdbcPagingItemReader();
reader.setDataSource(dataSource);
- HsqlPagingQueryProvider queryProvider = new HsqlPagingQueryProvider();
- queryProvider.setSelectClause("select ID, NAME, VALUE");
- queryProvider.setFromClause("from T_FOOS");
- queryProvider.setSortKey("ID");
- reader.setQueryProvider(queryProvider);
+ SqlPagingQueryProviderFactoryBean factory = new SqlPagingQueryProviderFactoryBean();
+ factory.setDataSource(dataSource);
+ factory.setSelectClause("select ID, NAME, VALUE");
+ factory.setFromClause("from T_FOOS");
+ factory.setSortKey("ID");
+ reader.setQueryProvider((PagingQueryProvider) factory.getObject());
reader.setRowMapper(new ParameterizedRowMapper() {
public Foo mapRow(ResultSet rs, int i) throws SQLException {
Foo foo = new Foo();
diff --git a/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/item/database/JdbcPagingRestartIntegrationTests.java b/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/item/database/JdbcPagingRestartIntegrationTests.java
index 9f547b3be..9ebc966a9 100644
--- a/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/item/database/JdbcPagingRestartIntegrationTests.java
+++ b/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/item/database/JdbcPagingRestartIntegrationTests.java
@@ -36,7 +36,7 @@ import org.junit.runner.RunWith;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemStream;
-import org.springframework.batch.item.database.support.HsqlPagingQueryProvider;
+import org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean;
import org.springframework.batch.item.sample.Foo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
@@ -122,7 +122,7 @@ public class JdbcPagingRestartIntegrationTests {
List