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 881c54492..75190b998 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 afbf70378..4a3eae1dd 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 @@ -36,8 +36,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 GET_JOB_EXECUTION_COUNT = "SELECT count(JOB_EXECUTION_ID) from %PREFIX%JOB_EXECUTION " + "where JOB_INSTANCE_ID = ?"; 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 c870a22a0..9dd8c44c0 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 LobHandler lobHandler = new DefaultLobHandler(); 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 def52e804..bf573db5d 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 @@ -54,6 +54,19 @@ public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean { private DataFieldMaxValueIncrementerFactory incrementerFactory; + 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 {@link DataSource}. * @param dataSource a {@link DataSource} @@ -64,7 +77,8 @@ public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean { /** * Sets the database type. - * @param dbType as specified by {@link DefaultDataFieldMaxValueIncrementerFactory} + * @param dbType as specified by + * {@link DefaultDataFieldMaxValueIncrementerFactory} */ public void setDatabaseType(String dbType) { this.databaseType = dbType; @@ -113,6 +127,7 @@ public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean { dao.setJobExecutionIncrementer(incrementerFactory.getIncrementer(databaseType, tablePrefix + "JOB_EXECUTION_SEQ")); dao.setTablePrefix(tablePrefix); + dao.setExitMessageLength(exitMessageLength); dao.afterPropertiesSet(); return dao; } @@ -123,6 +138,7 @@ public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean { dao.setStepExecutionIncrementer(incrementerFactory.getIncrementer(databaseType, tablePrefix + "STEP_EXECUTION_SEQ")); dao.setTablePrefix(tablePrefix); + dao.setExitMessageLength(exitMessageLength); dao.afterPropertiesSet(); return dao; }