v0_2_02リリース

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

SDLoaderのv0_2_02をリリースしました。
また、スタンドアロン風のSDLoaderDesktopSWTもアップしました。SDLoaderDesktopSWT_v0_0_06が最新です。

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

コマンドライン対応

コマンドラインから実行するためのクラス(CommandLineOpenクラス)を追加しました。

java -cp sdloader-jsp21.jar sdloader.CommandLineOpen オプション

オプションがない場合、コマンド実行ディレクトリにあるwebappsフォルダを探し、その中にあるwarファイルを実行します。
オプションは次のとおりです。

Usage:             すべてのオプションは、--option=value の形で記述します。
--port             Listenするポート番号
                   指定しない場合30000を使用します。
                   例)--port=8080
--webApps          デプロイするアプリケーションのwarファイル、もしくはディレクトリを指定します。
                   「;」で区切ると、複数のアプリケーションをデプロイできます。
                   コンテキストルートには、warファイル名がもしくはディレクトリ名が使用されます。
                   例)--webApps=/path/to/app.war
--home             SDLoaderホームディレクトリを指定します。
                   このディレクトリ下の「webapps」もしくは--webAppsDirオプションで指定したディレクトリにアプリケーションを配置します。
                   指定しない場合、Java実行ディレクトリを使用します。
                   例)--home=/path/to/sdloader
--webAppsDir       アプリケーションの入ったディレクトリを指定します。
                   相対パスの場合、ホームディレクトリからの相対パスになります。
                   指定しない場合、「webapps」が使用されます。
                   例)--webAppsDir=weblibs
--autoPortDetect   指定ポートが使用中の場合、空きポートを探すかどうか。
                   指定しない場合、falseが使用されます。
                   例)--autoPortDetect=true
--useOutSidePort   外部からのアクセス可能なポートを使用するかどうか。
                   指定しない場合、localhostのみのリクエストを受け付けます。
                   例)--useOutSidePort=true
--sslEnable        SSLを使用するかどうか。
                   指定しない場合、SSLは使用しません。
                   例)--sslEnable=true
--lineSpeed        擬似的な回線速度を設定します。
                   指定しない場合、速度制限はありません。
                   例)--lineSpeed=64000 (64Kbpsの場合)
--workDir          JSPおよびwarファイル展開用のworkディレクトリを指定します。
                   指定しない場合、${java.io.tmp}/.sdloaderを使用します。
                   例)--workDir=/path/to/dir

オレオレSSL通信

テスト時にSSLでも試したいと思うのは業界人の人情、ということで、SSL通信をサポートしました。
jarファイルの中にSDLoader用のオレオレ証明書が内蔵してありますので、

SDLoader sdloader = new SDLoader(8080);
sdloader.setSSLEnable(true);

とすると、SSL通信が可能になります。

キャッシュヘッダーの都合でSSLの時だけPDFが出ない!というような時のテストなんかに使えたりするかもしれません。

WebXMLWriterクラス

WebXmlクラスから実際のxmlを作成するためのWebXmlWriterを追加しました。

WebXmlVisitor visitor = new WebXmlVisitorImpl(new WebXmlWritingContext());
StringWriter sw = new StringWriter();
WebXmlWriter writer = new WebXmlWriterImpl(visitor, sw);
writer.write(webXml);
System.out.println(sw.toString());

WebXmlクラスでサーブレットなどを登録した後にこれで書き出すと、web.xmlを出力できます。

その他

・URIEncodeがISO-8859-1の場合、デコード処理を行わないようにしました。
・getRealPath()がURL形式になっていたため、URIに変換するように修正しました。
・帯域制限なしの時に、通信が遅くなっていたのを修正しました。
・フォワード時にURLに付与したパラメータをフォワード先でとれなかったため、取れるように機能追加しました。


よろしくお願いします。