■
S2Javelinとは、SeasarのAOP機構を利用し、Seasar上のアプリケーションの動作ログを出力するツールです。出力した動作ログは、そのままArrowVisionというビューワを用いてシーケンス図を表示させることが可能です。
詳細や入手等はこちらから↓
http://s2javelin.sandbox.seasar.org/s2javelin.html
それで、ReadMeをほむほむと読みながら設定していたのですが、
diconの設定でつまりました。
S2JSFの場合のサンプルはあったのですが、Teedaの場合のサンプルが無かったのです(TT TT)
そんな訳で、Teedaの場合のdiconの設定方法をメモしておきます。
前提として、Page,Serviceクラスに対してログ出力するとします。
S2JSFの場合はallaop.diconに設定するらしいのですが、
Teedaの場合はcustomizer.diconに以下の様に設定します。
(ここが最適かは自信ありませんが、意図通りには動いてくれます)
customizer.dicon
<components> <include path="default-customizer.dicon"/> <include path="javelin.dicon"/> <component name="pageCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain"> <!-- S2Javelin --> <initMethod name="addCustomizer"> <arg> <component class="org.seasar.framework.container.customizer.AspectCustomizer"> <initMethod name="addInterceptorName"> <arg>"s2JavelinInterceptor"</arg> </initMethod> <property name="pointcut">"do.*, initialize, prerender"</property> </component> </arg> </initMethod> </component> 〜 <component name="serviceCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain"> <!-- S2Javelin --> <initMethod name="addCustomizer"> <arg> <component class="org.seasar.framework.container.customizer.AspectCustomizer"> <initMethod name="addInterceptorName"> <arg>"s2JavelinInterceptor"</arg> </initMethod> </component> </arg> </initMethod> </component> 〜 </components>
こんな感じで対象のカスタマイザーに追加すればOKです。
例ではPageクラスのdo〜メソッド,initializeメソッド,prerenderメソッドを監視対象にしています。
必要に応じて自由にpointcutを設定できます。設定しない場合は全メソッドが対象となります。
なお、javelin.diconをincludeするのにも注意です。
Page,Serviceクラス以外も対象にしたい場合には、
その対象にしたいクラスに対応するカスタマイザーに同様に追加すればOKです。
#id:kimpoさん、いつもありがとうございます。