Class Main

All Implemented Interfaces:
Handler<CommandLine,Integer>
Direct Known Subclasses:
MainForRequestTesting

public class Main extends HandlerQueueManager<Main> implements Handler<CommandLine,Integer>
本フレームワークの起動シーケンスの起点となるクラス。

本クラスをjavaコマンドから直接起動することで、以下の処理を行う。

 1. コマンドライン引数のパース。
 2. コンポーネント設定ファイル(xml)の読み込みとハンドラー構成の初期化
 3. ハンドラーキューに対する後続処理の委譲。
 4. 終了/エラー処理。
    (結果コードはハンドラキューの戻り値、または送出された例外をもとに設定する。)
 

以下は、本クラスの使用例である。 (起動オプションに設定した値は、CommandLineオブジェクトから取得できる。)

起動コマンドの例

 java                                                 \
     -server                                          \
     -Xmx128m                                         \
     -Dsample=100                                     \
 nablarch.fw.launcher.Main                            \
     -diConfig    file:./batch-config.xml             \
     -requestPath admin.DataUnloadBatchAction/BC0012  \
     -userId      testUser                            \
     -namedParam  value                               \
     value1
 
起動コマンドの説明

 アプリケーション引数(JVMへの設定である起動コマンドの説明は行わない)

           -Dsample      コンポーネント設定ファイル中の埋め込みパラメータの値。例では、${sample}に100が設定される。

 Mainクラスへの引数

   (必須)  -diConfig     コンポーネント設定ファイルのファイルパス。クラスパス配下のxmlファイルを指定。
   (必須)  -requestPath  実行対象のアクションハンドラクラス名/リクエストIDを指定。
   (必須)  -userId       プロセスの実行権限ユーザID。セッション変数とスレッドコンテキストに保持される。
           -namedParam   名前付きパラメータ。CommandLineに使用される属性値を指定。
           value1        無名パラメータ。CommandLineに使用される属性値を指定。
  • Constructor Details

    • Main

      public Main()
  • Method Details

    • getHandlerQueue

      public List<Handler> getHandlerQueue()
      Description copied from class: HandlerQueueManager
      現在のハンドラキューの内容を返す。
      Specified by:
      getHandlerQueue in class HandlerQueueManager<Main>
      Returns:
      現在のハンドラキューの内容
    • main

      public static void main(String... args)
      メインメソッド。

      本メソッドでは、以下の内容をログ出力する。

      及び処理終了時
      Parameters:
      args - コマンドライン引数
    • handle

      public Integer handle(CommandLine commandLine, ExecutionContext context)
      入力データに対する処理を実行する。 この実装では、ハンドラキューに後続処理を委譲し、その処理結果から このプロセスの終了コードを算出して返す。
      Specified by:
      handle in interface Handler<CommandLine,Integer>
      Parameters:
      commandLine - 入力データ
      context - 実行コンテキスト
      Returns:
      処理結果データ
    • execute

      @Published(tag="architect") public static int execute(CommandLine commandLine)
      バッチを実行する。

      handle(CommandLine, ExecutionContext)に処理を委譲して結果を返す。

      Parameters:
      commandLine - 起動オプション
      Returns:
      終了コード
    • setupExecutionContext

      protected Main setupExecutionContext(CommandLine commandLine, ExecutionContext context)
      バッチコントローラ起動前準備を行う。
      実行コンテキストを生成し、以下の処理を行う。
      • コンポーネント設定ファイルに定義したハンドラキューの設定
      • DataReaderの設定
      • DataReaderFactoryの設定
      • ディスパッチハンドラの設定
      • セッションスコープにプロセスの実行権限ユーザIDと、起動オプションのマップを設定
      Parameters:
      commandLine - 起動オプション
      context - 実行コンテキスト
      Returns:
      初期化されたコントローラ
    • setUpSystemRepository

      protected void setUpSystemRepository(String configFilePath)
      コンポーネント設定ファイルの設定にしたがって、システムリポジトリの初期化を行う。
      Parameters:
      configFilePath - コンポーネント設定ファイルのパス
    • initializeLog

      protected void initializeLog()
      各種ログの初期化を行う。
    • outputAppSettingsLog

      protected void outputAppSettingsLog()
      アプリケーション設定のログを出力する。