v0_3_04 ポート再利用のロジックを見直し。 SDLoaderの停止コマンド実行時に正しく通信できるかを確認してから再利用するように修正。 Open,SystemTrayOpen,BrowserOpenでコマンドライン引数を取れるように修正。 getSession()していない時にセッションが作られていた不具合を修正 v0_3_03 pom.xmlが他プロジェクトで使用するとエラーになっていたのを修正 ServletとFilterの初期パラメータが空文字の場合にnullをセットしていたのを修正 ServletContext#getResourcePaths()で正しいパスが返っていなかったのを修正 v0_3_02 SystemTrayOpenで起動した場合に、停止しない問題を修正. パスが../から始まる場合、WebAppClassLoader#getResources()でリソースを重複して返していた問題を修正. stop()時にSystem.exitを呼ぶためのsetExitOnStop()を追加. mime.xmlを廃止(クラスに直書き。ただしファイルの読み込み自体は行い、読めたら上書き) sdloader.propertiesのデフォルト設定をSDLoaderクラスに移動。 ファイルがなくてもエラーが出ないようにした。 (こちらもクラスに直書き。ただしファイルの読み込み自体は行い、読めたら上書き) v0_3_01 ClassLoaderHandlerのhandleResourecesが正しく動作するように修正. バインドする対象を、localhostから127.0.0.1に変更 同一プロセス内で同じポートを再度バインドする際、REUSE_ADDRで開くように修正. 定数定義のクラスをconstantsに移動. HttpServletRequest#getRequestURL()の戻り値が、ローカルのホスト名だったのを修正 v0_3_00 SSL時にnocacheを使わないようにした(ダウンロードできないコンテンツがあるため) SDLoader#stop()時にエラーが出るときがある問題を修正 WebAppClassLoaderに介入するClassLoaderHandlerを追加。 WebAppContextに、addClassPathとaddLibPathを追加。 同一プロセスで複数インスタンスを起動/停止するような利用方法に対応するよう修正。 制御フラグをAtomicBooleanに変更。 autoPortDetectでない場合に使用ポートがふさがっていた時に、同ポートに停止コマンドを送るように修正。 初期スレッド数をデフォルト2に変更 mime.xmlをmime.propertiesに変更 v0_2_03 サイズの大きいリクエスト/レスポンスの場合に、OutOfMemoryになっていた問題を修正。 Include時、ヘッダーなどの各種項目設定を無視するように修正。 複数回setContentLengthを呼ぶとヘッダーが複数出ていたのを修正。 v0_2_02 コマンドライン引数をとるMainクラスを追加。 URIEncodeがISO-8859-1の場合、デコード処理を行わないようにした。 getRealPath()がURL形式になっていたため、URIに変換するように修正した。 SSLを使用可能にした。 WebXMLWriterを導入した。 帯域制限なしの時に、通信が遅くなっていたのを修正 フォワード時にURLに付与したパラメータがフォワード先でとれなかったため、取れるように修正した。 v0_2_01 loadonstartupを実装 (同じ数値の場合、タグ順に初期化。0以下もしくはタグなしの場合、loadonstartupタグありのServlet初期化後に、タグ順に初期化。 タグがない場合でも初回リクエストではなくタグ読み込み時に初期化します) ServletRequestListener,ServletRequestAttributeListenerを実装 最大プール数以上のSocketProcessorを生成した場合、スレッド開始前に処理メソッドが 呼ばれていた問題を修正(FireFoxなど通信数の多いブラウザで通信が失敗する不具合の修正) ServletContext#getMajorVersionとgetMinorVersionを実装 ログ出力をJDKLoggerに1本化。 コマンドサーブレットをデプロイするようにした。 ブラウザからhttp://localhost:port/sdloader-command/stopにアクセスすると SDLoaderが停止します。 WebAppContextにwarファイルパスを書けるようにした。 new WebAppContext("/hoge","c:/foo.war")のように記述可能。 v0_2_00 ServletAPI2.5,JSP2.1に対応 これに伴い、sdloader.jarに同梱するapiを2.5に変更。 JSP1.2を削除 ServletContextImplにgetContextPath追加(API変更による追加) InMemoryEmbeddedServletOptionに、Tomcat6のServletOptionの機能を追加 WebAppContextにWebXmlを設定可能にした。 (WebAppContextにWebXmlをセットしておくと、それが優先されます) LineSpeed機能を追加。 SDLoader#setLineSpeed()にLineSpeedの定数をセットすると、 回線速度をエミュレートするようになります。 プロジェクトのフォルダ雛形を作る機能を追加。 Servlet25ProjectTemplatToolおよびServlet24ProjectTemplatToolを 実行すると、その場にテンプレートが出力されます。 ServletContextAttributeListener,HttpSessionBindingListener,HttpSessionListenerに対応。 v0_1_14 WebAppContextを使用する際、複数のドキュメントルートをしていできるように修正。 複数指定した場合、順番にファイルがあるかどうかをチェックし、ファイルが見つかった時点でそのファイルを利用します。 コンテキストパスに"/"が入っているものでも動作するように修正。 HttpServletRequestからパスを取る部分をURIDecoderでコードするように修正。 その際の文字エンコードを、HttpRequest.sdloader.http.HttpRequest.KEY_REQUEST_URI_ENCODINGで指定できるようにした。 デフォルトはISO-8859-1を使用。 SDLoaderにsetUseNoCacheModeを追加。trueをセットすると、すべてのリクエストにno-cacheヘッダーを付与する。 WebApplicationクラスをWebAppに変更 HttpRequest.KEY_REQUEST_USE_BODY_ENCODE_FOR_URIをKEY_REQUEST_USE_BODY_ENCODEING_FOR_URIに変更 HttpReqeustHeaderとHttpResponseHeaderをHttpHeaderに統合 HttpInputをHttpRequestReaderに変更 FireFoxで一部通信がエラーになる部分を修正 v0_1_13 SDLoaderのコンストラクタ引数にポートを自動取得するかどうかのフラグを渡せるコンストラクタを追加。 ServietContext.getServletInfoで"SDLoader"の文字列を返すように修正(BlazeDS対策) v0_1_12 URLClassLoader経由でSDLoaderを動かすとエラーになる不具合に対応。 (Webコンテナのライブラリをロードするクラスローダの親にSystemClassLoaderを指定していたため、 SDLoader.class.getClassLoader()を使用するように修正) lifecycle系のインターフェースをsdloader.lifecycleパッケージに移動 web.xmlのfilter-mapping(REQUEST,INCLUDE,FORWARD)に対応 v0_1_11 SWTを使い、タスクトレーにアイコンをしまうようにした。 RequestDispatcherで、引数パスの先頭に/がついていない場合でも /をつけるように修正。 v0_1_10 WebAppContextクラスをnewし、SDLoaderにaddすることでWebアプリをデプロイできるようにした。 (使い方はSDLoaderWebAppContextDeployTestを参照) v0_1_9 メンテナンスリリース v0_1_8 空白パス上だと動作しない問題に対応。 v0_1_7 ・ sendRedirectで307を返していたので、302を返すように修正。 ・ リクエストパラメータをデコードする際、デフォルトでISO-8859-1を使用し、request.setCharacterEncodingで エンコードを指定されて場合は指定されたものを使用するように修正。 ・コンテキストルートのみのURLを/付きでリダイレクトする場合に、host部分が127.0.0.1になっていたのを修正。 ・デフォルトエンコーディング、GETパラメータにbodyエンコーディングを使うかどうかを設定できるようにした。 ・レスポンスのデフォルトエンコーディングをISO-8859-1に変更し、setContentTypeとsetCharacterEncodingで セットしたエンコードを文字エンコードに使用するようにした。 ・レスポンスのTransfer-EncodingがChunkedで無い場合、Content-LengthをSDLoaderでセットするようにした。 ・外向けポートをListen出来るようにした。request.usetOutSidePortで設定可能。 v0_1_06 Context.xmlにシステムプロパティを使用できるようにした。 ${name}の形式でdocBaseを記述すると、nameをキーにしてSystemからプロパティを取得します。 PathPairクラスを外に出し、WebAppContextに名称変更。パース部分もWebAppManagerから 分離。 v0_1_05 無解凍war機能を追加(Servlet動作のみ) これに伴い、クラスローダーの構成を変更。 各Webアプリは、WebAppClassLoaderを持ちます。このクラスローダーは内部に web-inf下をロードするクラスローダを持つ構造になっています。 WebアプリはWebAppClassLoaderを通じてクラスロードを行いますが、loadClass時に WebAppClassLoaderはまずロード済みのクラスが無いかどうかを親クラスローダー に確認します。無い場合で指定のパッケージパターンを持つクラスの場合は、web-inf下を ロードするクラスローダーでロードします。さらに無い場合は親クラスローダーでロードし、 最後はweb-inf下のクラスローダーでロードします。 v0_1_04 イベントディスパッチャー追加 ライフサイクルイベント追加 v0_1_03 ルート直下のファイルを扱うための機能を追加。 webapps直下のROOTフォルダにファイルを置くと、http://localhost/ファイル名で アクセスできます。 コマンド機能の追加。SDLoader起動と同時に、ポート8089をコマンド受付用としてバインドします。 telnetもしくはHTTPで「stop」「restar」のコマンドを送ると、SDLoaderをコントロールできます。 v0_1_02 Webアプリの一覧表示機能を実装。 共有セッション機能を実装。 起動時にブラウザをオープンするクラスを実装 v0_1_01 ・welcome-file機能を実装。 v0_1_00 ・最初のリリース