今日確認できたところ
struts-config.xmlを動的に読み込むところ。
試すためには、、、、
s2struts-exampleで試すのが一番かな。
まずはs2struts-exampleをS2.4に移行するために以下のjarにして
- s2-framework-2.4.0-beta-3.jar
- s2-extension-2.4.0-beta-3.jar
あとdiconをいろいろ
次はs2struts1.3.0-beta-2への移行
リポジトリからソースを取ってきてmvnで以下のjarを作ってコピー
あとdiconファイルも更新
エラーがでて不要なdiconはとりあえず削除(利用してないし、、、よりあえずってことで)
- RequestProcessor.diconを削除(app.diconのincludeもあわせて削除)
- dao-pager.diconを削除
MessageManagerクラスが移動しているので利用しているソースのimportを修正。これでエラーがなくなるはず。
エラーがなくなったら、以下のファイルを修正
これで一応移行は終了。なので動作確認。
いきなりAdd Applicationが動かない。。。Actionを登録してないからだ、、、
Add.diconに追加しよう。。。簡単にするために以下のように直接書くことにした。
<components> <component class="org.seasar.struts.examples.add.AddServiceImpl"/> <component class="org.seasar.struts.examples.add.AddAction"/> </components>
そして動作確認。。。一応動作した。。。Selenium IDE大活躍
これでS2.4とs2struts1.3.0-beta-2-SNAPSHOTへの移行は完了かな。
つぎはいよいよHOT Deployへ
- web.xmlの修正
- hotdeployfilterを追加
<filter> <filter-name>hotdeployfilter</filter-name> <filter-class>org.seasar.framework.container.hotdeploy.HotdeployFilter</filter-class> </filter> : : <filter-mapping> <filter-name>hotdeployfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
<plug-in className="org.seasar.struts.hotdeploy.plugin.HotdeployPlugIn"/>
- app.diconにs2struts-hotdeploy.diconを追加
<components> <include path="s2struts-hotdeploy.dicon"/> <include path="s2struts.dicon"/> : : </components>
- s2container.diconを追加、、、とりあえずは下のような感じで、、、あとからいろいろ追加するということで
<components> <component class="org.seasar.framework.container.hotdeploy.OndemandBehavior"> <property name="rootPackageName">"org.seasar.struts.examples.employee"</property> </component> </components>
この状態で動作確認。。。とりあえずemployee以外は一通り動いた
次は、struts-config.xmlとvalidation.xmlの内容を動的に読み込むことの確認
まずCalculationFormの派生元をActionFormからValidatorFormへ変更(ここでTomcatを再起動したけど、不要だったかな、、、)
Add Applicationで何も入力しなくても動作することを再確認。なにもチェックされてないっと。
パラメーターチェックを行うためにstruts-config.xmlの/addのvalidateをtrueに変更
<action path="/add" type="org.seasar.struts.examples.add.AddAction" name="calcForm" scope="request" validate="true" input="/pages/addInput.html"> <forward name="success" path="/pages/result.html" /> </action>
そしてvalidation.xmlにcalcFormのチェック内容を追加
<form name="calcForm"> <field property="arg1" depends="intRange"> <arg key="arg1" resource="false"/> <arg1 name="intRange" key="${var:min}" resource="false" /> <arg2 name="intRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>4</var-value> </var> <var> <var-name>max</var-name> <var-value>16</var-value> </var> </field> </form>
これで何も入力せずに実行したら、ちゃんと引っかかるはず、、、引っかかった。
やっと、Tomcatの再起動なしでstruts-config.xmlとvalidation.xmlを更新できることの確認ができた。
HOT deployの機能を全然使ってないけど、はじめの第一歩ということで。
明日がメインのところをいろいろ確認しないと。。。
[追記]
いろいろしてたら、インターフェースにつけたアノテーションが実装クラスから取得できないなー。
うーむ。。。