diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/AbstractJdbcBatchMetadataDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/AbstractJdbcBatchMetadataDao.java index 3575ba106..948bd2581 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/AbstractJdbcBatchMetadataDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/AbstractJdbcBatchMetadataDao.java @@ -17,6 +17,8 @@ public abstract class AbstractJdbcBatchMetadataDao implements InitializingBean { * Default value for the table prefix property. */ public static final String DEFAULT_TABLE_PREFIX = "BATCH_"; + + public static final int DEFAULT_EXIT_MESSAGE_LENGTH = 2500; private String tablePrefix = DEFAULT_TABLE_PREFIX; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java index a3c83f4d0..3b0e29337 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java @@ -37,8 +37,6 @@ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements private static final Log logger = LogFactory.getLog(JdbcJobExecutionDao.class); - private static final int DEFAULT_EXIT_MESSAGE_LENGTH = 2500; - private static final String SAVE_JOB_EXECUTION = "INSERT into %PREFIX%JOB_EXECUTION(JOB_EXECUTION_ID, JOB_INSTANCE_ID, START_TIME, " + "END_TIME, STATUS, CONTINUABLE, EXIT_CODE, EXIT_MESSAGE, VERSION, CREATE_TIME, LAST_UPDATED) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcStepExecutionDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcStepExecutionDao.java index c5cae08f4..e6637ab27 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcStepExecutionDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcStepExecutionDao.java @@ -58,8 +58,6 @@ public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao implement private static final String CURRENT_VERSION_STEP_EXECUTION = "SELECT VERSION FROM %PREFIX%STEP_EXECUTION WHERE STEP_EXECUTION_ID=?"; - private static final int DEFAULT_EXIT_MESSAGE_LENGTH = 2500; - private int exitMessageLength = DEFAULT_EXIT_MESSAGE_LENGTH; private DataFieldMaxValueIncrementer stepExecutionIncrementer; 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 555ca0017..03a265eeb 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 @@ -79,6 +79,19 @@ public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean i private DataFieldMaxValueIncrementerFactory incrementerFactory; private PlatformTransactionManager transactionManager; + + private int exitMessageLength = AbstractJdbcBatchMetadataDao.DEFAULT_EXIT_MESSAGE_LENGTH; + + /** + * Public setter for the exit message length in database. Do not set this if + * you haven't modified the schema. Note this value will be used for both + * {@link JdbcJobExecutionDao} and {@link JdbcStepExecutionDao}. + * + * @param exitMessageLength the exitMessageLength to set + */ + public void setExitMessageLength(int exitMessageLength) { + this.exitMessageLength = exitMessageLength; + } /** * Public setter for the isolation level to be used for the transaction when @@ -191,6 +204,7 @@ public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean i dao.setJobExecutionIncrementer(incrementerFactory.getIncrementer(databaseType, tablePrefix + "JOB_EXECUTION_SEQ")); dao.setTablePrefix(tablePrefix); + dao.setExitMessageLength(exitMessageLength); dao.afterPropertiesSet(); return dao; } @@ -202,6 +216,7 @@ public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean i dao.setStepExecutionIncrementer(incrementerFactory.getIncrementer(databaseType, tablePrefix + "STEP_EXECUTION_SEQ")); dao.setTablePrefix(tablePrefix); + dao.setExitMessageLength(exitMessageLength); dao.afterPropertiesSet(); return dao; }