Ota Wataru
ota****@orang*****
2007年 4月 12日 (木) 15:11:07 JST
Dev-MLの皆様 はじめましてwataruと申します 地方で主に業務システムの受託開発などを行うSI企業に属している者です。 マスカットは公開当初に少し拝見したのですが、その後はノーマークでし たが数日前に書籍が発売されたのを知り再度サンプル等を確認しました。 以前確認した時に煩雑だと感じたメッセージのハンドリングを改善する マスカットJavaEEフレームワークの存在を知りDevMLを確認したところ 本体への取り込みを検討されているみたいですね。 齋藤様の実装はある程度汎用的にカップリングする事を目的とされている ようでしたが、最近の至れり尽くせりなフレームワークに慣れている身と してはまだ面倒な感じがするのとjavaでのDIコンテナをseasar以外にする 事は私の業務では考え難いため専用の拡張を施してみたらどうかと思い 1日で出来る処まで実装してみました。 拡張した点や仕様は以下の感じになってます ・S2Containerで管理するコンポーネントを呼び出すDe マスカットからのリクエストを以下の流れで処理します リクエスト->S2MaskatServlet->S2コンポーネント->レスポンス ・イベント定義ファイルとコンポーネントのマッピング maskat_layoutID#value = S2コンポーネント名 component#id + _ + event#id = メソッド名 ・パラメータの変換&DTOマッピング 1、param#sourceがプリミティブ 1-1、コンポーネントのメソッドに定義される引数がプリミティブの 場合はparam#sourceがそのまま渡されます。 1-2、コンポーネントのメソッドに定義される引数がDTOの場合は Dxoを用いて(param#source x n)をDTOに変換して渡されます。 2、param#sourceがJSON(連想配列) param#sourceがJSONでコンポーネントのメソッドに定義される引数が DTOの場合はJSONを内部でMap->Dxo->DTOに変換して渡されます。 基本的には上記のような追加機能となりますが、メリットとしてはS2で 管理されるコンポーネントを透過的に呼び出すのでDI+AOPが使えS2Container2.4 からのSMARTデプロイに準じた構成をとる事でHOTDeployも可能になってます。 HttpSessionやRequestはS2Containerが管理するのでS2MaskatServletでは 特別処理していません。 実装のサンプルを確認がとりやすいようeclipseプロジェクトアーカイブで 以下のアドレスに公開しておきます。 http://219.117.241.123/s2maskat_snap.zip 「s2maskatプロジェクトとMaskatプロジェクトの2プロジェクト」 此方の環境は eclipse3.2.1 + tomcatランチャープラグイン JDK1.5._11 マスカットJavaEEフレームワークとdemoのAddサンプルを変更しています。 マスカット&Rialtoもあまり触っていないので変な部分やサンプルの動作 以外のケースは未対応ですが感想や需要の有無等ご意見をいただければと思います。