diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBean.java index 4541908ca..3ec585b88 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBean.java @@ -97,7 +97,7 @@ public class JobRepositoryFactoryBean implements FactoryBean, InitializingBean { private JobInstanceDao createJobInstanceDao(JdbcTemplate jdbcTemplate) throws Exception { JdbcJobInstanceDao dao = new JdbcJobInstanceDao(); dao.setJdbcTemplate(jdbcTemplate); - dao.setJobIncrementer(incrementerFactory.getIncrementer(databaseType, "BATCH_JOB_SEQ")); + dao.setJobIncrementer(incrementerFactory.getIncrementer(databaseType, tablePrefix + "JOB_SEQ")); dao.setTablePrefix(tablePrefix); dao.afterPropertiesSet(); return dao; @@ -106,7 +106,7 @@ public class JobRepositoryFactoryBean implements FactoryBean, InitializingBean { private JobExecutionDao createJobExecutionDao(JdbcTemplate jdbcTemplate) throws Exception { JdbcJobExecutionDao dao = new JdbcJobExecutionDao(); dao.setJdbcTemplate(jdbcTemplate); - dao.setJobExecutionIncrementer(incrementerFactory.getIncrementer(databaseType, "BATCH_JOB_EXECUTION_SEQ")); + dao.setJobExecutionIncrementer(incrementerFactory.getIncrementer(databaseType, tablePrefix + "JOB_EXECUTION_SEQ")); dao.setTablePrefix(tablePrefix); dao.afterPropertiesSet(); return dao; @@ -115,7 +115,7 @@ public class JobRepositoryFactoryBean implements FactoryBean, InitializingBean { private StepExecutionDao createStepExecutionDao(JdbcTemplate jdbcTemplate) throws Exception { JdbcStepExecutionDao dao = new JdbcStepExecutionDao(); dao.setJdbcTemplate(jdbcTemplate); - dao.setStepExecutionIncrementer(incrementerFactory.getIncrementer(databaseType, "BATCH_STEP_EXECUTION_SEQ")); + dao.setStepExecutionIncrementer(incrementerFactory.getIncrementer(databaseType, tablePrefix + "STEP_EXECUTION_SEQ")); dao.setTablePrefix(tablePrefix); dao.afterPropertiesSet(); return dao; diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBeanTests.java index 8467dc8d1..1eea48c7e 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBeanTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBeanTests.java @@ -27,29 +27,35 @@ import org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer /** * @author Lucas Ward - * + * */ -public class JobRepositoryFactoryBeanTests extends TestCase{ +public class JobRepositoryFactoryBeanTests extends TestCase { JobRepositoryFactoryBean factory; + MockControl incrementerControl = MockControl.createControl(DataFieldMaxValueIncrementerFactory.class); + DataFieldMaxValueIncrementerFactory incrementerFactory; + DataSource dataSource; + String tablePrefix = "TEST_BATCH_PREFIX_"; + protected void setUp() throws Exception { super.setUp(); - + factory = new JobRepositoryFactoryBean(); MockControl dataSourceControl = MockControl.createControl(DataSource.class); - dataSource = (DataSource)dataSourceControl.getMock(); + dataSource = (DataSource) dataSourceControl.getMock(); factory.setDataSource(dataSource); - incrementerFactory = (DataFieldMaxValueIncrementerFactory)incrementerControl.getMock(); + incrementerFactory = (DataFieldMaxValueIncrementerFactory) incrementerControl.getMock(); factory.setIncrementerFactory(incrementerFactory); + factory.setTablePrefix(tablePrefix); } - - public void testNoDatabaseType() throws Exception{ - - try{ + + public void testNoDatabaseType() throws Exception { + + try { incrementerFactory.isSupportedIncrementerType(null); incrementerControl.setReturnValue(false); incrementerFactory.getSupportedIncrementerTypes(); @@ -58,15 +64,15 @@ public class JobRepositoryFactoryBeanTests extends TestCase{ factory.afterPropertiesSet(); fail(); } - catch(IllegalArgumentException ex){ - //expected + catch (IllegalArgumentException ex) { + // expected } } - - public void testInvalidDatabaseType() throws Exception{ - + + public void testInvalidDatabaseType() throws Exception { + factory.setDatabaseType("invalid type"); - try{ + try { incrementerFactory.isSupportedIncrementerType("invalid type"); incrementerControl.setReturnValue(false); incrementerFactory.getSupportedIncrementerTypes(); @@ -75,28 +81,28 @@ public class JobRepositoryFactoryBeanTests extends TestCase{ factory.afterPropertiesSet(); fail(); } - catch(IllegalArgumentException ex){ - //expected + catch (IllegalArgumentException ex) { + // expected } } - - public void testCreateRepository() throws Exception{ + + public void testCreateRepository() throws Exception { String databaseType = "databaseType"; factory.setDatabaseType(databaseType); - - incrementerFactory.getIncrementer(databaseType, "BATCH_JOB_SEQ"); + + incrementerFactory.getIncrementer(databaseType, tablePrefix + "JOB_SEQ"); incrementerControl.setReturnValue(new StubIncrementer()); - incrementerFactory.getIncrementer(databaseType, "BATCH_JOB_EXECUTION_SEQ"); + incrementerFactory.getIncrementer(databaseType, tablePrefix + "JOB_EXECUTION_SEQ"); incrementerControl.setReturnValue(new StubIncrementer()); - incrementerFactory.getIncrementer(databaseType, "BATCH_STEP_EXECUTION_SEQ"); + incrementerFactory.getIncrementer(databaseType, tablePrefix + "STEP_EXECUTION_SEQ"); incrementerControl.setReturnValue(new StubIncrementer()); incrementerControl.replay(); - + factory.getObject(); - + incrementerControl.verify(); } - + private class StubIncrementer implements DataFieldMaxValueIncrementer { public int nextIntValue() throws DataAccessException { @@ -110,6 +116,6 @@ public class JobRepositoryFactoryBeanTests extends TestCase{ public String nextStringValue() throws DataAccessException { return null; } - + } }