Class JobRepositoryFactoryBean

java.lang.Object
org.springframework.batch.core.repository.support.AbstractJobRepositoryFactoryBean
org.springframework.batch.core.repository.support.JobRepositoryFactoryBean
All Implemented Interfaces:
org.springframework.beans.factory.FactoryBean<JobRepository>, org.springframework.beans.factory.InitializingBean

public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean implements org.springframework.beans.factory.InitializingBean
A FactoryBean that automates the creation of a SimpleJobRepository using JDBC DAO implementations which persist batch metadata in database. Requires the user to describe what kind of database they are using.
Author:
Ben Hale, Lucas Ward, Dave Syer, Michael Minella, Mahmoud Ben Hassine
  • Field Details

    • logger

      protected static final org.apache.commons.logging.Log logger
  • Constructor Details

    • JobRepositoryFactoryBean

      public JobRepositoryFactoryBean()
  • Method Details

    • setClobType

      public void setClobType(int type)
      Parameters:
      type - a value from the Types class to indicate the type to use for a CLOB
    • setSerializer

      public void setSerializer(ExecutionContextSerializer serializer)
      A custom implementation of the ExecutionContextSerializer. The default, if not injected, is the DefaultExecutionContextSerializer.
      Parameters:
      serializer - used to serialize/deserialize ExecutionContext
      See Also:
    • setLobHandler

      public void setLobHandler(org.springframework.jdbc.support.lob.LobHandler lobHandler)
      A special handler for large objects. The default is usually fine, except for some (usually older) versions of Oracle. The default is determined from the data base type.
      Parameters:
      lobHandler - the LobHandler to set
      See Also:
      • LobHandler
    • setMaxVarCharLength

      public void setMaxVarCharLength(int maxVarCharLength)
      Public setter for the length of long string columns in database. Do not set this if you haven't modified the schema. Note this value will be used for the exit message in both JdbcJobExecutionDao and JdbcStepExecutionDao and also the short version of the execution context in JdbcExecutionContextDao . If you want to use separate values for exit message and short context, then use setMaxVarCharLengthForExitMessage(int) and setMaxVarCharLengthForShortContext(int). For databases with multi-byte character sets this number can be smaller (by up to a factor of 2 for 2-byte characters) than the declaration of the column length in the DDL for the tables.
      Parameters:
      maxVarCharLength - the exitMessageLength to set
    • setMaxVarCharLengthForShortContext

      public void setMaxVarCharLengthForShortContext(int maxVarCharLengthForShortContext)
      Public setter for the length of short context string column in database. Do not set this if you haven't modified the schema. For databases with multi-byte character sets this number can be smaller (by up to a factor of 2 for 2-byte characters) than the declaration of the column length in the DDL for the tables. Defaults to AbstractJdbcBatchMetadataDao.DEFAULT_SHORT_CONTEXT_LENGTH
      Parameters:
      maxVarCharLengthForShortContext - the short context length to set
      Since:
      5.1
    • setMaxVarCharLengthForExitMessage

      public void setMaxVarCharLengthForExitMessage(int maxVarCharLengthForExitMessage)
      Public setter for the length of the exit message in both JdbcJobExecutionDao and JdbcStepExecutionDao. Do not set this if you haven't modified the schema. For databases with multi-byte character sets this number can be smaller (by up to a factor of 2 for 2-byte characters) than the declaration of the column length in the DDL for the tables. Defaults to AbstractJdbcBatchMetadataDao.DEFAULT_EXIT_MESSAGE_LENGTH.
      Parameters:
      maxVarCharLengthForExitMessage - the exitMessageLength to set
      Since:
      5.1
    • setDataSource

      public void setDataSource(DataSource dataSource)
      Public setter for the DataSource.
      Parameters:
      dataSource - a DataSource
    • setJdbcOperations

      public void setJdbcOperations(org.springframework.jdbc.core.JdbcOperations jdbcOperations)
      Public setter for the JdbcOperations. If this property is not set explicitly, a new JdbcTemplate will be created for the configured DataSource by default.
      Parameters:
      jdbcOperations - a JdbcOperations
    • setDatabaseType

      public void setDatabaseType(String dbType)
      Sets the database type.
      Parameters:
      dbType - as specified by DefaultDataFieldMaxValueIncrementerFactory
    • setTablePrefix

      public void setTablePrefix(String tablePrefix)
      Sets the table prefix for all the batch meta-data tables.
      Parameters:
      tablePrefix - prefix prepended to batch meta-data tables
    • setIncrementerFactory

      public void setIncrementerFactory(DataFieldMaxValueIncrementerFactory incrementerFactory)
    • setJobKeyGenerator

      public void setJobKeyGenerator(JobKeyGenerator jobKeyGenerator)
      * Sets the generator for creating the key used in identifying unique {link JobInstance} objects
      Parameters:
      jobKeyGenerator - a JobKeyGenerator
      Since:
      5.1
    • setCharset

      public void setCharset(@NonNull Charset charset)
      Set the Charset to use when serializing/deserializing the execution context. Defaults to "UTF-8". Must not be null.
      Parameters:
      charset - to use when serializing/deserializing the execution context.
      Since:
      5.0
      See Also:
    • setConversionService

      public void setConversionService(@NonNull org.springframework.core.convert.support.ConfigurableConversionService conversionService)
      Set the conversion service to use in the job repository. This service is used to convert job parameters from String literal to typed values and vice versa.
      Parameters:
      conversionService - the conversion service to use
      Since:
      5.0
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Overrides:
      afterPropertiesSet in class AbstractJobRepositoryFactoryBean
      Throws:
      Exception
    • createJobInstanceDao

      protected JobInstanceDao createJobInstanceDao() throws Exception
      Specified by:
      createJobInstanceDao in class AbstractJobRepositoryFactoryBean
      Returns:
      fully configured JobInstanceDao implementation.
      Throws:
      Exception - thrown if error occurs creating JobInstanceDao.
    • createJobExecutionDao

      protected JobExecutionDao createJobExecutionDao() throws Exception
      Specified by:
      createJobExecutionDao in class AbstractJobRepositoryFactoryBean
      Returns:
      fully configured JobExecutionDao implementation.
      Throws:
      Exception - thrown if error occurs creating JobExecutionDao.
    • createStepExecutionDao

      protected StepExecutionDao createStepExecutionDao() throws Exception
      Specified by:
      createStepExecutionDao in class AbstractJobRepositoryFactoryBean
      Returns:
      fully configured StepExecutionDao implementation.
      Throws:
      Exception - thrown if error occurs creating StepExecutionDao.
    • createExecutionContextDao

      protected ExecutionContextDao createExecutionContextDao() throws Exception
      Specified by:
      createExecutionContextDao in class AbstractJobRepositoryFactoryBean
      Returns:
      fully configured ExecutionContextDao implementation.
      Throws:
      Exception - thrown if error occurs creating ExecutionContextDao.