Jiemamyプロジェクト
結構メインプロジェクト化してきました。当面はシリアライザ担当。
アプリケーションモデルとシリアライズモデルを分けてドメイン変換はS2Dxo。シリアライズはXStreamにキメた。
S2Dxoがパッケージプライベートなプロパティに対応してなくてちょっと困ったけど、BeanConverterを独自拡張。BeanDescとPropertyDescもパッケージプライベートなプロパティが扱えるように独自に定義してなんとかした。えーもー、final classなんで自前のConverter内にstatic classでコピペして改造という強引なやり方ですw
S2Dxoの場合、独自の変換処理を作る時はDxoをインターフェイスではなくて抽象クラスにする例がありますが、この例だとAOPがかかったメソッドは内部に隠ぺいしたいができないジレンマに陥る。なので、自分の場合はConverterを独自実装で対応した。Converterを実装しておけばもsrcとdestの条件がマッチすればどのDxoでも呼び出されるので非常に生産的だなーと感じました。ほんとによく出来てますね。
(S2BeanUtilsもI/Fが使いやすくてよいのですが、ディープコピーに対応していない、、、ように見えた。)
S2Configプロジェクト
こちらは環境依存の設定ファイルを扱うフレームワークです。jdbc.diconや既存のdiconファイルにプロパティファイルの設定値をDIすることができ、またアプリケーション固有の環境依存の設定についても簡単にDtoにDIできる仕組みを実装しました。読み込みだけでなく書き込みもサポートするので、アプリケーションのインストーラなどでJDBC設定をユーザに設定させてその値を環境依存の設定ファイルとして書き込むことが可能になります。こちらについても、次のSeasar Conまでに正式リリースさせる目標です。実はJiemamyプロジェクトで使いたいという強い要望があったりしますw
S2JUnit4のafterBindFieldsとbeforeUnbindFieldsアノテーション対応
https://www.seasar.org/issues/browse/CONTAINER-98?focusedCommentId=12680
うーん、コミッタでもないのに、勢いでこれを実装してしまいました。テストケースも書いてパスしています。
現状のS2JUnit4では、DIコンテナのコンポーネントとテストクラスのフィールドのバインド後とアンバインド前のイベントをテストクラスの中で扱えませんので、上記のアノテーションをメソッドに設定するとそのイベントを扱うことができるようになります。実はこれもJiemamyプロジェクトがらみでしてw
s2-tigerのコミッタの方、パッチをご提供しますので、どうか取り込んでいただけないでしょうか?
よろしくお願いします。