SAStrutsでStrutsのコード、設定を動かせるようにしてみた。

SAStrutsは開発者の技術スキルをそのまま移行できるように作られてます。
でも、普通のStrutsは設定しても全く動かないわけです。
struts-config.xmlとか普通に書いても動かない。


そこでSAStrutsStrutsの設定のまま普通のStrutsが動くようにしてみました。


ダウンロードはここ↓
sa-struts-aos.jar
ソース付です。


ちなみにSAStrutsAOS(sa-struts-aos)と名づけました。
AOSはAdditional Original Styleの略。
英語的に正しいかは英語が全然出来ないのでわかりません。
Append Old Strutsでもいいです。


■微妙な点
Strutsで設定された部分についてはHotDeploy出来きない。
 (SAStruts定義部分はHotDeploy出来るよ)
 Seasarコンテナにも登録されていません。
 通常のStrutsロジックを呼び出してます。

・ActionServletやModuleConfigFactory、RequestProcessor、ValidatorPlugInに
 手が入っている場合、使えない。
 

・パッケージ分けが結構大変
 SAStrutsと共存が目的のためSAStruts部分とStruts部分の切りわけが、、。


・あんまりテストしてない。
 いっぱい使われてるので想定してないケースも有りそうだし。
 需要があるかも分からないので、むしろ突っ込み待ち。


■いいかもしれないところ
StrutsSAStrutsも動く!


・新規開発じゃなくても(改修時にでも)使えるかも。
 パッケージ内にStruts部分とSAStruts部分が生まれることになってしまうが
 SAStrutsを利用できるメリットは高いかもしれない。


・開発者の技術スキルだけでなくStruts資産を生かして、
 SAStruts開発ができる。(かも)



■使い方■
1.web.xmlstruts-config.xmlに設定してある
 S2ModuleConfigFactory
 S2RequestProcessor
 S2ValidatorPlugIn
 を
 S2AOSModuleConfigFactory
 S2AOSRequestProcessor
 S2AOSValidatorPlugIn
 に変える。


2.sa-struts-aos.jarをライブラリに追加する。


以上。


あとは、普通にstruts-config.xml
form-beansやaction-mappingsの設定をするだけ。


SAStruts部分を追加するときは
完全に別パッケージを切ってそこをルートパッケージとした方がいいと思います。



実はソースを変えた部分は全然多くないのだけど、
本体のSAStrutsに入れるには微妙なソースだと思ってるので、
本体のSAStrutsとは別プロジェクトでいいんじゃないかなって思ってます。
(きれいにまとまれば入れるかもしれないけれど。。)


Seasarコンテナ管理と管理外のソースが生まれることになるので
正直、微妙だとは思うが、
Strutsのプロジェクトを
延々struts-config.xmlやvalidator.xmlを編集しまくる
Strutsで作り続けるのもヤダし、
SAStrutsへのステップとして使って貰えればと思うのだが。


需要があるのか全く分からないので、何か意見などあればガンガン下さい。