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が使えるようにしました。
各種リスナー対応
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();
プロジェクトのフォルダ雛形を作る機能
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で動くようにしてくれました。動作までは出来たので、あとは見直しと整形して出してくれるそうです。
合わせてよろしくお願いします。