Package com.streamconverter.context
Class PipelineContext
java.lang.Object
com.streamconverter.context.PipelineContext
パイプライン内でコマンド間の共有値を管理するコンテキスト。
パイプライン実行中に、あるコマンドが抽出した値(例: XMLヘッダのorderId)を 他のコマンドのログ出力に自動反映するための仕組みを提供する。
共有値は PipelineContextTurboFilter により、
ログ出力直前にMDCへ自動的にマージされる。
使用例:
// コマンド内でストリームデータから値を抽出してMDCに伝搬
PipelineContext.putShared("orderId", extractedOrderId);
// 他のコマンドのログ出力時に自動的にMDCに反映される
MDC 関連クラスの全体像:
MdcPropagatingRule— ストリームから抽出した値を このコンテキスト経由で MDC に伝搬する Rule 実装。コマンドから MDC へ値を書き込む際の推奨手段。PipelineContextTurboFilter— ログ出力直前にsyncToMDC()を呼び出し、共有値を MDC へ自動反映する Logback TurboFilter。MDCInitializer—InheritableMDCAdapterを インストールし、MDC コンテキストを子スレッドへ自動継承させる。アプリ起動時に一度呼ぶ。
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidclear()現在のスレッドからPipelineContextをクリアする。static String共有値を取得する。static void共有値を設定し、呼び出しスレッドのMDCにも即座に反映する。static voidset(PipelineContext context) 現在のスレッドにPipelineContextを設定する。static void全共有値を呼び出しスレッドのMDCにマージする。
-
Constructor Details
-
PipelineContext
public PipelineContext()パイプラインコンテキストを新規作成する。
-
-
Method Details
-
syncToMDC
全共有値を呼び出しスレッドのMDCにマージする。PipelineContextが未設定の場合は何もしない。
-
set
現在のスレッドにPipelineContextを設定する。StreamConverterがパイプラインの各コマンドスレッドで呼び出す。
- Parameters:
context- 設定するPipelineContext
-
clear
現在のスレッドからPipelineContextをクリアする。