Contextの系譜

commons-chainのContextインターフェースの系譜もなんだかややこしい。ざっくり言って次の2通りの系譜がある。

1.Context <- ContextBase <- WebContext <- ServletWebContext
2.Context <- ContextWrapper <- ActionContextBase <- WebActionContext <- ServletActionContext

1.の系譜がcommons-chainが提供するもので、2.の系譜はstrutsが提供するもの。途中にContextWrapperがあることからわかるように、2.は対応する1.のクラスのラッパーとして動作する。また、2.はComposableRequestProcessorによって処理されるチェーンのコマンド間で情報を受け渡すための入れ物となる(ContextWrapperがActionContextを継承している)。