v0_2_01リリース

http://code.google.com/p/sdloader/

シーサーコンに向けて、v0_2_01をリリースしました。
また、スタンドアロン風のSDLoaderDesktopSWTもアップしました。SDLoaderDesktopSWT_v0_0_05が最新です。
WebLauncherにも反映済みです。

追加機能・不具合修正は以下の通りです。

ServletAPI2.5,JSP2.1対応

ServletAPI2.5と言っても、ServletContext#getContextPath()ぐらいの追加です。
あとJSP2.1対応のJasperが使えるようにしました。

FireFoxでエラーになる対応

FireFox複数リクエストを投げてきた時にうまく動かない不具合を修正しました。

各種リスナー対応

ServletRequestListener,ServletRequeAttributeListener,ServletContextAttributeListerなど、J2EEのリスナーをひとしきり動くようにしました。
唯一動かないのが、HttpSessionActivationListenerです。
セッションクラスタリングは今後も作る予定がありませんので。。。

プログラマブルWarデプロイ

WebAppContextにwarファイルパスを書けるようにしました。

SDLoader loader = new SDLoader();
WebAppContext context = new WebAppContext("/hoge","c:/foo.war");
loader.addWebAppContext(context);
loader.start();

これでwarファイルをデプロイして起動できます。
なお、warファイルはテンポラリに解凍されます。

プログラマブルweb.xml

WebAppContextにWebXmlを設定可能にしました。

SDLoader loader = new SDLoader();
WebAppContext context = new WebAppContext("/hoge","WebContent");

WebXml webXml = new WebXml();
webXml.getWebApp().addFilter(new FilterTag().setFilterName("requestFilter").setFilterClass(RequestFilter.class))
webXml.getWebApp().addFilterMapping(new FilterMappingTag().setFilterName("requestFilter").setUrlPattern("/filterAndDispatchTest/*").addDispatcher("REQUEST"))		
context.setWebXml(webXml);

loader.addWebAppContext(context);
loader.start();

もともと内部でWebXmlを持っていたので、それをプログラマブルに設定できるようにしました。
WebXmlはnewする以外にも、既存のweb.xmlからインスタンスをつくり、そこに追加したりも出来ます。
なおこの機能はまだ使い勝手が悪いので、もう少し簡潔に書けるクラスを用意する予定です。

LineSpeed機能

SDLoader#setLineSpeed()にLineSpeedの定数をセットすると、
回線速度をエミュレートするようになります。

SDLoader loader = new SDLoader();
loader.setLineSpeed(LineSpeed.ISDN_64K_BPS);//ISDNの速度
loader.start();

AjaxFlashなどでプログレスバーを開発したり、重いコンテンツの見え具合などを確認するのに便利です。

プロジェクトのフォルダ雛形を作る機能

SDLoaderのJarファイルに入っているServlet25ProjectTemplatToolおよびServlet24ProjectTemplatToolを実行すると、その場にWEB-INFやweb.xmlなどのテンプレートが出力されます。
Eclipseの場合、

プロジェクト作成>SDLoaderのjar入れる>jar右クリック実行>Servlet25ProjectTemplatTool

で、雛形が展開されます。
私はweb.xmlの構文をすぐに忘れてしまうので、そのために作りました。

設定ファイル

Java起動ディレクトリに「sdloader.properties」を置くと、デフォルト設定を上書きできるようになります。
デフォルトの設定は、jarファイル内に入っています。

ログ出力

ログをJDKLoggerだけ使うようにして、設定ファイルで出力先や出力方法を変えられるようにしました。
あと、起動バッチも書き直して、ログファイルを出すようにしました。
Java起動ディレクトリに「sdloader-logging.properties」の名前でファイルを置くと、ログ設定が出来ます。
なお、設定の書き方はJDKLoggerに準じます。

停止URL

ブラウザからhttp://localhost:ポート/sdloader-command/stopにアクセスすると、SDLoaderを停止するようにしました。


なお、T2の各種サンプルにもSDLoaderをおきました。サンプルをSVNからダウンロードしたあと、bootstrapというフォルダに入っているMainクラスからサンプルが起動できます。
またid:yone098さんがCargoで動くようにしてくれました。動作までは出来たので、あとは見直しと整形して出してくれるそうです。


合わせてよろしくお願いします。