jp.terasoluna.fw.batch.springsupport.init
クラス JobExecutor

java.lang.Object
  上位を拡張 jp.terasoluna.fw.batch.springsupport.init.JobExecutor
すべての実装されたインタフェース:
Workable<AbstractJobControlInfo>, org.springframework.beans.factory.DisposableBean
直系の既知のサブクラス:
JobExecutor

public class JobExecutor
extends java.lang.Object
implements org.springframework.beans.factory.DisposableBean, Workable<AbstractJobControlInfo>

ジョブ起動用メインクラス。
ジョブ起動前のJobBeanFactoryの生成や破棄処理を行う。
生成されたJobBeanFactoryはキャッシュされ同じジョブが実行された 場合は キャッシュしたJobBeanFactoryを返す。


フィールドの概要
private  JobContext.START_TYPE async
          非同期起動有無フラグ。
protected static java.lang.String DATA_ACCESS_CONTEXT_DEFINITION_NAME
          データアクセス用Bean定義ファイル名。
private static java.lang.String ENDFILECHECKER_NAME
          ジョブ終了監視用Bean名。
private static java.lang.String EXITCODE_MAP
          デフォルト終了コード。
private static java.lang.String FRAMEWORK_BEAN_DEFINITION_NAME
          フレームワークBean定義ファイル名。
private  org.springframework.context.ConfigurableApplicationContext frameworkFactory
          フレームワークBeanFactory。
private static java.lang.String JOBCONTEXT_NAME
          ジョブコンテキストBean名。
private  java.util.Map<java.lang.String,java.lang.String> jobExitCodeMap
          デフォルトのジョブ終了コードのマップ。
private  java.util.Map<java.lang.String,org.springframework.context.ConfigurableApplicationContext> jobFactoryMap
          ジョブBeanFactoryのキャッシュ用Map。
private static java.lang.String JOBMANAGER_NAME
          ジョブマネージャBean名。
private  java.lang.String jobParametersSplitStr
          ジョブパラメータの区切り文字。
protected static java.lang.String JOBSTATUS_NAME
          ジョブ状況用Bean名。
protected static java.lang.String JOBSTATUS_SUMMARIZER
          処理状態のサマライザ。
private static org.apache.commons.logging.Log log
          ログインスタンス。
protected static java.lang.String MONITORABLE_JOBSTATUS_NAME
          モニター用ジョブ状況用Bean名。
private  SupportProcessor postJobProcessor
          ジョブ後処理用インスタンス。
private  SupportProcessor preJobProcessor
          ジョブ前処理用インスタンス。
private static java.lang.String THREAD_POOL_DEFINITION_NAME
          スレッドプール用Bean定義ファイル名。
private  ThrowableHandler throwableHandler
          Throwableハンドラ。
private static java.lang.String THROWABLEHANDLER_NAME
          Throwableハンドラ用Bean名。
protected static java.lang.String USE_MONITORABLE
          ジョブ終了監視用Bean名。
protected static java.lang.String USECACHE_NAME
          キャッシュ有無用Bean名。
protected static java.lang.String VALIDATE_DEFINITION_NAME
          スレッドプール用Bean定義ファイル名。
 
コンストラクタの概要
protected JobExecutor()
          コンストラクタ。
protected JobExecutor(java.lang.String[] beanFileName)
          コンストラクタ。
 
メソッドの概要
private  void checkJobInfo(JobInfo jobInfo)
          英数字文字例であるかをチェックする。
 void destroy()
          作成したBeanFactoryの破棄処理を行う。
protected  JobStatus execute(JobInfo jobInfo)
          ジョブを実行する。
protected  org.springframework.context.ConfigurableApplicationContext getFrameworkFactory()
          フレームワークBeanFactoryの取得
protected  org.springframework.context.ConfigurableApplicationContext getJobBeanFactory(JobInfo jobInfo)
          ジョブ毎のBeanFactoryを取得するメソッド。
protected  JobContext getJobContext(org.springframework.context.ConfigurableApplicationContext jobFactory, JobInfo jobInfo)
          ジョブコンテキストの取得。
protected  Workable<WorkUnit> getJobManager(org.springframework.context.ConfigurableApplicationContext jobFactory)
          ジョブマネージャを取得する。
protected  JobStatus getJobStatus(org.springframework.context.ConfigurableApplicationContext jobFactory, JobInfo jobInfo)
          ジョブ処理状態格納用JobStatusを取得する。
protected  WorkUnit getWorkUnit(JobContext jobContext)
          WorkUnitを生成し、ジョブコンテキストを設定する。
private  void initDefaultJobExitCodeMap()
          ジョブ終了コードのマップを初期化する。
protected  void initEndFileChecker(JobStatus jobStatus, JobContext jobContext)
          終了ファイル監視スレッドの初期化を行う。
protected  boolean isAsync()
          非同期ジョブ起動であるかを評価する。
protected  void printEndLog(JobStatus jobStatus)
          ジョブの開始ログを出力する。
protected  void printStartLog(JobInfo jobInfo)
          ジョブの開始ログを出力する。
protected  void removeJobStatusFromEndFileChecker(JobStatus jobStatus, JobContext jobContext)
          終了ファイル監視スレッドに登録されたジョブの処理状態を削除する。
 void setAsync(boolean async)
          非同期起動有無フラグを設定する。
protected  void setDefaultJobExitCode(JobStatus jobStatus)
          ジョブ終了コードを設定する。
 void setJobParametersSplitStr(java.lang.String jobParametersSplitStr)
          ジョブパラメータの区切り文字を設定する。
 void setPostJobProcessor(SupportProcessor postJobProcessor)
          ジョブ起動前処理を設定する。
 void setPreJobProcessor(SupportProcessor preJobProcessor)
          ジョブ起動後処理を設定する。
 void setThrowableHandler(ThrowableHandler throwableHandler)
          Throwableハンドラを設定する。
 void work(AbstractJobControlInfo jobInfo, JobStatus jobStatus)
          非同期型ジョブ起動時のワーカメソッド。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

private static org.apache.commons.logging.Log log
ログインスタンス。


FRAMEWORK_BEAN_DEFINITION_NAME

private static final java.lang.String FRAMEWORK_BEAN_DEFINITION_NAME
フレームワークBean定義ファイル名。

関連項目:
定数フィールド値

DATA_ACCESS_CONTEXT_DEFINITION_NAME

protected static final java.lang.String DATA_ACCESS_CONTEXT_DEFINITION_NAME
データアクセス用Bean定義ファイル名。

関連項目:
定数フィールド値

THREAD_POOL_DEFINITION_NAME

private static final java.lang.String THREAD_POOL_DEFINITION_NAME
スレッドプール用Bean定義ファイル名。

関連項目:
定数フィールド値

VALIDATE_DEFINITION_NAME

protected static final java.lang.String VALIDATE_DEFINITION_NAME
スレッドプール用Bean定義ファイル名。

関連項目:
定数フィールド値

USECACHE_NAME

protected static final java.lang.String USECACHE_NAME
キャッシュ有無用Bean名。

関連項目:
定数フィールド値

JOBCONTEXT_NAME

private static final java.lang.String JOBCONTEXT_NAME
ジョブコンテキストBean名。

関連項目:
定数フィールド値

JOBMANAGER_NAME

private static final java.lang.String JOBMANAGER_NAME
ジョブマネージャBean名。

関連項目:
定数フィールド値

JOBSTATUS_NAME

protected static final java.lang.String JOBSTATUS_NAME
ジョブ状況用Bean名。

関連項目:
定数フィールド値

MONITORABLE_JOBSTATUS_NAME

protected static final java.lang.String MONITORABLE_JOBSTATUS_NAME
モニター用ジョブ状況用Bean名。

関連項目:
定数フィールド値

ENDFILECHECKER_NAME

private static final java.lang.String ENDFILECHECKER_NAME
ジョブ終了監視用Bean名。

関連項目:
定数フィールド値

USE_MONITORABLE

protected static final java.lang.String USE_MONITORABLE
ジョブ終了監視用Bean名。

関連項目:
定数フィールド値

JOBSTATUS_SUMMARIZER

protected static final java.lang.String JOBSTATUS_SUMMARIZER
処理状態のサマライザ。

関連項目:
定数フィールド値

EXITCODE_MAP

private static final java.lang.String EXITCODE_MAP
デフォルト終了コード。

関連項目:
定数フィールド値

THROWABLEHANDLER_NAME

private static final java.lang.String THROWABLEHANDLER_NAME
Throwableハンドラ用Bean名。

関連項目:
定数フィールド値

frameworkFactory

private org.springframework.context.ConfigurableApplicationContext frameworkFactory
フレームワークBeanFactory。


jobFactoryMap

private java.util.Map<java.lang.String,org.springframework.context.ConfigurableApplicationContext> jobFactoryMap
ジョブBeanFactoryのキャッシュ用Map。


async

private JobContext.START_TYPE async
非同期起動有無フラグ。


preJobProcessor

private SupportProcessor preJobProcessor
ジョブ前処理用インスタンス。


postJobProcessor

private SupportProcessor postJobProcessor
ジョブ後処理用インスタンス。


jobExitCodeMap

private java.util.Map<java.lang.String,java.lang.String> jobExitCodeMap
デフォルトのジョブ終了コードのマップ。


jobParametersSplitStr

private java.lang.String jobParametersSplitStr
ジョブパラメータの区切り文字。


throwableHandler

private ThrowableHandler throwableHandler
Throwableハンドラ。

コンストラクタの詳細

JobExecutor

protected JobExecutor()
コンストラクタ。

FrameworkFactory 初期化処理を行う。


JobExecutor

protected JobExecutor(java.lang.String[] beanFileName)
コンストラクタ。(非同期ジョブ起動用)

FrameworkFactory 初期化処理を行う。

パラメータ:
beanFileName - Bean定義ファイル
メソッドの詳細

getJobBeanFactory

protected org.springframework.context.ConfigurableApplicationContext getJobBeanFactory(JobInfo jobInfo)
ジョブ毎のBeanFactoryを取得するメソッド。
生成されたBeanFactoryはキャッシュし再利用される。

パラメータ:
jobInfo - ジョブ依頼情報
戻り値:
ジョブ毎のBeanFactory

isAsync

protected boolean isAsync()
非同期ジョブ起動であるかを評価する。

戻り値:
非同期ジョブの起動であればtrueを返す。

getJobManager

protected Workable<WorkUnit> getJobManager(org.springframework.context.ConfigurableApplicationContext jobFactory)
ジョブマネージャを取得する。

パラメータ:
jobFactory - ジョブ毎のBeanFactory
戻り値:
ジョブマネージャ

getJobContext

protected JobContext getJobContext(org.springframework.context.ConfigurableApplicationContext jobFactory,
                                   JobInfo jobInfo)
ジョブコンテキストの取得。
ジョブコンテキストを取得し、初期値を設定する。

パラメータ:
jobFactory - ジョブ毎のBeanFactory
jobInfo - ジョブ依頼情報
戻り値:
ジョブコンテキスト

getJobStatus

protected JobStatus getJobStatus(org.springframework.context.ConfigurableApplicationContext jobFactory,
                                 JobInfo jobInfo)
ジョブ処理状態格納用JobStatusを取得する。
JobStatusを取得し、初期値を設定する。

パラメータ:
jobFactory - ジョブ毎のBeanFactory
jobInfo - ジョブ依頼情報
戻り値:
ジョブ処理状態格納用JobStatus

getWorkUnit

protected WorkUnit getWorkUnit(JobContext jobContext)
WorkUnitを生成し、ジョブコンテキストを設定する。

パラメータ:
jobContext - ジョブコンテキスト
戻り値:
WorkUnit

initEndFileChecker

protected void initEndFileChecker(JobStatus jobStatus,
                                  JobContext jobContext)
終了ファイル監視スレッドの初期化を行う。
ジョブの処理状態を登録する。

パラメータ:
jobStatus - ジョブの処理状態
jobContext - ジョブコンテキスト

removeJobStatusFromEndFileChecker

protected void removeJobStatusFromEndFileChecker(JobStatus jobStatus,
                                                 JobContext jobContext)
終了ファイル監視スレッドに登録されたジョブの処理状態を削除する。

パラメータ:
jobStatus - ジョブの処理状態
jobContext - ジョブコンテキスト

execute

protected JobStatus execute(JobInfo jobInfo)
ジョブを実行する。
ジョブ依頼情報を用いて指定されたジョブを起動する。

パラメータ:
jobInfo - ジョブ依頼情報
戻り値:
ジョブ実行結果

printStartLog

protected void printStartLog(JobInfo jobInfo)
ジョブの開始ログを出力する。

パラメータ:
jobInfo - ジョブ依頼情報

printEndLog

protected void printEndLog(JobStatus jobStatus)
ジョブの開始ログを出力する。

パラメータ:
jobStatus - ジョブの処理状態

checkJobInfo

private void checkJobInfo(JobInfo jobInfo)
英数字文字例であるかをチェックする。

パラメータ:
jobInfo - チェック対象の文字例

setDefaultJobExitCode

protected void setDefaultJobExitCode(JobStatus jobStatus)
ジョブ終了コードを設定する。 終了コードの設定がNullの場合、Bean定義の状態別終了コードを デフォルト終了コードとして設定する。

パラメータ:
jobStatus - 処理対象の処理状況

initDefaultJobExitCodeMap

private void initDefaultJobExitCodeMap()
ジョブ終了コードのマップを初期化する。


work

public void work(AbstractJobControlInfo jobInfo,
                 JobStatus jobStatus)
非同期型ジョブ起動時のワーカメソッド。

定義:
インタフェース Workable<AbstractJobControlInfo> 内の work
パラメータ:
jobInfo - ジョブ依頼情報
jobStatus - ジョブステータス

destroy

public void destroy()
作成したBeanFactoryの破棄処理を行う。
キャッシュしたJobBeanFactory及ぶFrameworkBeanFactory を破棄する。

定義:
インタフェース org.springframework.beans.factory.DisposableBean 内の destroy

setAsync

public void setAsync(boolean async)
非同期起動有無フラグを設定する。
Springからの値をインジェクションする。

パラメータ:
async - 非同期起動有無フラグ

setPreJobProcessor

public void setPreJobProcessor(SupportProcessor preJobProcessor)
ジョブ起動後処理を設定する。

パラメータ:
preJobProcessor - ジョブ起動前処理

setPostJobProcessor

public void setPostJobProcessor(SupportProcessor postJobProcessor)
ジョブ起動前処理を設定する。

パラメータ:
postJobProcessor - ジョブ起動前処理

setJobParametersSplitStr

public void setJobParametersSplitStr(java.lang.String jobParametersSplitStr)
ジョブパラメータの区切り文字を設定する。

パラメータ:
jobParametersSplitStr - ジョブパラメータの区切り文字

getFrameworkFactory

protected org.springframework.context.ConfigurableApplicationContext getFrameworkFactory()
フレームワークBeanFactoryの取得

戻り値:
frameworkFactory フレームワークBeanFactory

setThrowableHandler

public void setThrowableHandler(ThrowableHandler throwableHandler)
Throwableハンドラを設定する。

パラメータ:
throwableHandler - Throwableハンドラ