ひがやすを技術ブログ

電通国際情報サービスのプログラマ

include & namespace

ちょっと多忙にまぎれてましたが、includeメカニズム仕様について新案をまとめたいと思います。適宜つっこみください。

S2のincludeによるコンポーネント参照の仕組みを変えたいと
思います。
今までは、ルートにフラットにコンポーネントが集められていた
のですが、これを親子関係で管理したいと思います。
例えば、Aがルート(S2ContainerFactoryで作成される)として

  • A include B,C
  • B include D
  • C include D

の関係があったとします。
コンポーネントの検索順は、自分、見つからなかったら子供を
登録順に検索します。
Aに登録されているコンポーネントは、A,B,D,Cのコンポーネント
見えます。コンテナの検索順もA,B,D,Cの順です。
Bに登録されているコンポーネントは、B,Dのコンポーネント
見えます。コンテナの検索順もB,Dの順です。
DはB,Cからincludeされていますが、インスタンスは1つです。
想定している登録パターンは次のとおりです。
app.dicon include 業務A.dicon, 業務B.dicon
業務A.diconには業務Aのバウンダリ層とロジック層の
コンポーネントが含まれます。
業務A.dicon include j2ee.dicon, dao.dicon, 共通ロジック.dicon
dao.diconにはすべてのDaoが登録されます。
dao.dicon include j2ee.dicon
j2ee.diconは複数のコンテナからincludeされますが、
インスタンスは1つです。