Release Note Ver 2001.0.05 2002/09/16 FIXED BUGS none new functions / modified functions com.ngMAT.servlet.EZServlet EZServlet内で例外が発生した場合にもログ出力するよう修正した。 LineReaderComponent以外で、データ長を取得できる場合にContent-Lengthヘッダを出力するようにした。 com.ngMAT.servlet.EZServletConfig EZServletでキャッチした例外をハンドリングするクラスの定義を可能とした。 EZServlet.ExceptionHandelr= 指定するクラスは、com.ngMAT.serlvet.ExceptionHandlerを実装している必要がある。 com.ngMAT.Common.DBConnection 接続済みのコネクションのヘルスチェック機能を追加。 removeConnection (int)において、Connection#close()で例外が発生しても、デバッグログに 情報を出力するだけで、基本的に無視するようにした。 getConnection (String)において、空き要素がない場合のリトライ中にも番犬が活動できるように した。 com.ngMAT.Common.ngmObject getGroupedProperties(String)を追加。但し、保有しているプロパティがCoolPropertiesのインスタンス の場合のみ利用可能。 com.ngMAT.Common.PooledDBConnection 接続済みのコネクションのヘルスチェック機能を追加。 removeConnection (int)において、Connection#close()で例外が発生しても、デバッグログに 情報を出力するだけで、基本的に無視するようにした。 getConnection (String)において、空き要素がない場合のリトライ中にも番犬が活動できるように した。 com.ngMAT.HTML.HTMLTemplate カスタムタグ([[#$...]])パース機能を追加した。パースされたカスタムタグオブジェクトは getCustomTag(String name)で取得可能。 タグ文字の直前に'\'を配置することでタグ文字をエスケープし通常の文字として扱えるようbにした。 new classes com.ngMAT.servlet.ExceptionHandler EZServletでキャッチした例外をハンドリングするクラス。 com.ngMAT.Common.DBConnectionHealthChecker DBConnection / PooledDBConnectionにおける、接続済みコネクションのヘルスチェッカ。 com.ngMAT.Common.StandardOracleHealthChecker Oracle用標準ヘルスチェッカ。"select 1 from dual"を実行し正常終了でOKとする。 com.ngMAT.Common.StandardPostgreSQLHealthChecker PostgreSQL用標準ヘルスチェッカ。"select 1"を実行し正常終了でOKとする。 com.ngMAT.HTML.CustomTag HTMLTemplate中で使用するカスタムタグハンドラクラスのベースクラス。 com.ngMAT.HTML.InputStreamResource InputStreamをソースとするHTMLComponent。 com.ngMAT.HTML.FileResource FileをソースとするHTMLComponent。 Ver 2001.0.04 2002/07/20 FIXED BUGS bug id tbs00011 com.ngMAT.Common.ngmPGDBObject#getDBString(String)で"\"をエスケープするように修正。 bug id tbs00012 com.ngMAT.servlet.EZServletContect#init(..)において、HttpServletRequest#getCookies() の結果がnullの場合にNullPointerExceptionが発生してしまう。 bug id tbs00013 com.ngMAT.tools.Bcp, com.ngMAT.tools.PGBcpで、Statement/ResultSetのcloseもれを修正。 bug id tbs00014 com.ngMAT.servlet.EZServletContext#createCookieTimestamp(..)において、クッキー有効 期限の時刻表記書式で"00"時となるべき時に"24"時となる。 new functions / modified functions com.ngMAT.Mail.SimpleMailMessage アドレスの個人名部分に日本語を使用可能とした。また、キャラクタセットをプロパティMail.Charsetで指定 可能とした。デフォルトはiso-2022-jp。アドレス表記例: つ∞たん佐藤 。 com.ngMAT.Common.Log 出力先ファイル切り替え単位時間にDAYLY以外に、HOURLYを追加。HOURLYでは毎時0分以降の出力 タイミングで新しいファイルに切り替わる。付加されるファイル拡張子はyyyyMMdd.HH形式。 com.ngMAT.Common.CoolProperties getGroupedProperties (String)を追加。 com.ngMAT.HTML.ParsedTable ヘッダ行、可変行共に、出力すべき内容がない場合、空の
を出力しないよう修正。 com.ngMAT.HTML.HTMLTemplate インクルードテンプレート読み込み時の例外のメッセージを分かりやすく修正。 printStackTrace(String tagname, Throwable t)を追加。 com.ngMAT.servlet.EZServletContext cookie受信時のデコードの際、先頭の1文字が"%"でない場合、utf-8でURLデコードしないで、 リクエストパラメタと同じ文字セットを想定した変換を行うよう修正。ver. 2001.0.02より前 の環境から移行した際に発生し得る問題を完全ではないが防止する。 getCookies()がURLデコードする前のクッキーを返してしまってのを、デコード後のクッキーを 返すよう修正。代わりにクライアントから受け取った素の状態を取得できるように getRawCookies()を追加。 getCookiesTable()を追加。クッキー名をキーとするHashtableを返す。 他のサーブレットにフォワードする、forward()を追加。 setStatus(int status_code)を追加。 getMethod()を追加。 com.ngMAT.servlet.EZServletConfig EZServletContext#getErrorHTML (Thrownable)で使用する、例外発生時のメッセージ表示用テンプレートを プロパティで指定可能とした。以下のいずれかで指定する。 EZServlet.ErrorTemplate : テンプレートファイル名を指定 EZServlet.ErrorHTML : テンプレートHTML文字列を指定 リクエスト処理後のストリームのflush/closeをそれぞれ抑止可能とした。 EZServlet.ForceStreamFlush=false EZServlet.ForceStreamClose=false デフォルトはいずれもtrueで、リクエスト処理完了毎にflush/closeする。 リダイレクト時のurl encodingを抑止可能とした。 EZServlet.ForceUrlEncodingOnRedirection=false デフォルトはtrueでsendRedirectの内部で、HttpServletResponse#encodeRedirectUrl(..)する。 getTemplate(String)でIOExceptionをthrowしないよう修正。代わりにcom.ngMAT.Common.LowLevelException をthrowすることとした。(EZServletContextとの対象性の確保) new classes Ver 2001.0.03 2001/09/14 FIXED BUGS none new functions / modified functions com.ngMAT.servlet.EZServletContext setSessionValue(...)/getSessionValue(...)/getSessionValueNames(...)/removeSessionValue(...) において、JavaServletAPI2.0ベースのHttpSession#xxxValuexxx(...)とJavaServletAPI2.2ベースの HttpSession#xxxAttributexxx(...)を設定により、切り替え可能とした。これは、BEA WebLogicServer 6 で、JavaServletAPI2.2ベースのメソッドでセッション値を扱わないと、クラスタリングに対応できない などの制約に対応するための措置。プロパティにて EZServlet.TargetServletSpec=2.2 と指定することで、上記メソッドは2.2対応となる。指定なしか、 EZServlet.TargetServletSpec=2.0 の場合は、これまでと同様に2.0ベースのメソッド呼び出しとなる。2.1は指定できない。 com.ngMAT.Common.CoolProperties プロパティファイル内で、他のプロパティ値を参照可能とした。#VariableReference=enableを指定することで、 その行より後の key=value のvalueの中の{$keyname}をその行以前に登録されているkeynameに対応する値に置換する。 但し、"{{$keyname}"は、置換せず"{$keyname}"として処理する。(エスケープ) ついでに、"{{{$keyname}"はエスケープをエスケープして、先頭の"{{"は"{"に、{$keyname}は値に置換する。 その後、#VariableReference=disableを指定した行より後は、{$keyname}を置換しない。 com.ngMAT.Common.CoolProperties# ロード時にファイルの依存関係を標準出力に出力するようにした。また、newした後に、元ネタのファイル名 リストを取得するためのメソッドpublic Enumeration getFilenameList()を新規に追加。 com.ngMAT.Mail.SimpleMailMessage getMessageID(), getTosArray()を追加。 new classes Ver 2001.0.02 2001/08/21 FIXED BUGS bug id tbs00009 com.ngMAT.EZServletで、プロパティServlet.Request.Charsetを指定しないで 使用した場合にNullPointerExceptionが発生。 bug id tbs00010 com.ngMAT.Common.DBConnection#getConnection(...)でプール要素が不足状態 の場合に、他のreleaseConnection(...)に処理を譲らずに待っているため、 結果的に、必ず接続の割り当てに失敗する。 new functions / modified functions com.ngMAT.servlet.EZServletContext cookieの送出をする際にutf8でURLエンコードし、受信時にはデコードするようにした。 new classes none Ver 2001.0.01 2001/08/15 FIXED BUGS bug id tbs00008 Java 2 SDK 1.3においてnew com.ngMAT.Common.CoolProperties (filename)において NullPointerExceptionが発生。 new functions none new classes none Ver 2001.0 2001/08/07 FIXED BUGS bug id tbs00004 com.ngMAT.servlet.EZServletContext#sendRedirect (String) の際に、クッキーが送信できない。 bug id tbs00005 com.ngMAT.HTML.form.Checkbox.setChecked()が効かない。 bug id tbs00006 com.ngMAT.HTML.form.Radio.setChecked()が効かない。 bug id tbs00007 com.ngMAT.Common.DSV のコンストラクタに空文字列を渡した場合要素数が1になる。 new functions com.ngMAT.servlet.EZServlet HTMLTemplate出力時に「変数タグ」置換機能を追加。 おまけヘッダ出力機能を追加。プロパティServlet.Header=で指定。 com.ngMAT.servlet.EZServletConfig short getShortProperty (String name)を追加。 com.ngMAT.servlet.EZServletContext addCookie (String name, String value, int max_age)を追加。 addCookie (String name, String value, String path)を追加。 addCookie (String name, String value, String path, int max_age)を追加。 long getLongCookieValue (String name)を追加。 removeSessionValue (String name)を追加。 short getShortParameter (String name)を追加。 short getShortParameter (String name, short default_value)を追加。 boolean getBooleanParameter (String name)を追加。 boolean getBooleanParameter (String name, short default_value)を追加。 int getIntParameter (String name, int default_value)を追加。 long getLongParameter (String name, long default_value)を追加。 boolean[] getBooleanParameterValues (String name)を追加。 short[] getShortParameterValues (String name)を追加。 int[] getIntParameterValues (String name)を追加。 long[] getLongParameterValues (String name)を追加。 String getRequestURI()を追加。 String getRequestURL()を追加。 void sendError (int status_code)を追加。 void sendError (int status_code, String message)を追加。 String getRemoteAddr()を追加。 HTMLTemplate getTemplate (String name)にifdef機能を追加。 setRadioCheckedWithParameter (HTMLTemplate, String), setCheckboxCheckedWithParameter (HTMLTemplate, String)を追加。 com.ngMAT.Common.SmallCodeTable add (String key, String value)を追加。 put (String key, String value)を追加。 add (int index, String key, String value)を追加。 com.ngMAT.Common.CoolProperties インスタンス内にベクタイメージを保持するように機能追加。getVectorImage()で取得可能。 #EncodingType指定の際に、エンコーディング名の先頭に"#"を付けると、その項目が プロパティの値に含まれないように修正。(ご意見感謝m(__)m) com.ngMAT.Common.Log setLineHeader (null)で行ヘッダの出力を抑制可能とした。 com.ngMAT.HTML.HTMLTemplate 同一テンプレート中の同一名称複数タグを扱えるよう修正。同じ名称のタグは 1度の、setTagValue(..)/setInsertionTagValue(..)で同じ値を持つようになる。 テンプレート変数([[$.../]])をプロパティで一括置換する、 setTemplateVariables (Properties)を追加。これを利用することで、 テンプレートの環境順応性を高めることが可能。 EZServletにおいては、EZServletContext#getTemplate (...)実行時に、 自動的にこの処理を行う。 setRadioChecked (String, String), setRadioChecked (String, long), setCheckboxChecked (String, String), setCheckboxChecked (String, long)を追加。 初期化時のifdef判定を左右両端をtrimしてから行うように修正。 com.ngMAT.HTML.form.Select Propertiesをパラメタとするコンストラクタで、Propertiesがcom.ngMAT.Common.CoolProperteis のインスタンスの場合、そのベクタイメージを使用する様に変更。(ご意見感謝m(__)m) com.ngMAT.tools.Bcp Bcp.File.Encodingプロパティでファイル入出力文字エンコーディング指定可能に。 new classes com.ngMAT.HTML.ByteArrayComponent 画像などHTML以外のコンテンツを返すときにどぞ。 com.ngMAT.HTML.LineReaderComponent DBやファイルから大きめの内容を行単位で返したい時に使うとメモリ節約。 com.ngMAT.HTML.GroupedHTMLComponent チェックボックスやラジオボタンのグループ化用クラス。 com.ngMAT.HTML.NullHTMLComponent からっぽ。 com.ngMAT.HTML.ParsedTable テンプレート中の<TABLE>タグをパースして、行テンプレートを生成する。 com.ngMAT.HTML.form.DecoratedCheckbox com.ngMAT.HTML.form.DecoratedRadio com.ngMAT.HTML.form.GroupedCheckbox com.ngMAT.HTML.form.GroupedRadio com.ngMAT.Common.PooledDBConnection DBConnectionの機能拡張版。複数の接続先に対応。 com.ngMAT.Common.ngmPGDBObject ngmDBObject(←Oracle用)のPostgreSQL版。 com.ngMAT.tools.PGBcp Bcp(←Oracle用)のPostgreSQL版。 Ver 1.1.02 2000/11/04 FIXED BUGS bug id tbs00003 com.ngMAT.Common.DBConnection#getConnection(...) プロパティファイルでDBConnection.Retry.Countを1 以上に設定しないと、接続に失敗する。 Ver 1.1.01 2000/11/02 FIXED BUGS bug id tbs00002 com.ngMAT.servlet.TemplateBasedServlet, com.ngMAT.servlet.EZServletContextの String[] getParameterValues(...) をコールした後に、同じ名称のパラメタを String getParameerValue(...) で値を取得すると文字が化ける。 new functions com.ngMAT.servlet.EZServlet プロパティEZServlet.DEBUG_MODE=trueの指定で、デバッグ情報を出力する 機能を追加。 com.ngMAT.servlet.EZServletConfig 初期化の中でもテンプレートを取得できるよう、getTemplate (String)を追加。 com.ngMAT.servlet.EZServletContext getParameterNames()を追加。 HTTPパラメタを使用して、テンプレートのタグを一括置換する setTagValueWithParameters(...)を追加。入力値の妥当性確認後の再表示など に利用可能。 com.ngMAT.HTML.HTMLTemplate setInsertionTagValue(..)/setTagValue(..)/getInsertionTag(..)で、タグ名 の大文字小文字は無視するように修正。 com.ngMAT.Common.DBConnection releaseConnection(..)において、強制的にrollback()を実行するよう修正。 プロパティ項目DBConnection.MaxConnextions, DBConnection.Retry.Interval, DBConnection.Retry.Count(いずれもオプション)により、それぞれ、プール 内最大接続保持数(デフォルトは32)、割り当て可能なプール内要素を確保 できない場合の、リトライ間隔(デフォルトは1000msec)、リトライ回数(デフォ ルトは0回)を指定可能とした。 com.ngMAT.tools.Bcp updateモードを追加。 Ver 1.1.00 2000/10/12 new functions com.ngMAT.Common.DBConnection 以下の項目をプロパティにて設定可能にした。デバッグモードでは、詳細の アクションログが出力される。番犬の名前はパトラッシュ。あなたの好きな 名前にも変えられるよ!意味ないけど(-_-;) WatchDog.Name DBConnection.Log DBConnection.DebugMode com.ngMAT.Common.Log サイクリックにファイル名を変更する機能を付加。とりあえず、今回は1日 に一度、日付が変わるタイミングで変更する"DAYLY"を用意した。パラメタで 指定したファイル名の後ろに、日付を示す文字列が付加される。デフォルト で、このDAYLYが適用されるので、これまでのコードのままで、この新機能を 適用可能。また、ファイル名を継続的に同じする必要がある場合は、新しい コンストラクタを使用して、NONEを指定する必要がある。 New Release EZServlet 超お手軽サーブレットフレームワークいーぢーさーぶれっと登場! TemplateBasedServletの部品の上に、最も標準的な処理フローを標準パターン として提供。 設定の読み込みなどの初期化はxxxxConfig、ブラウザからの呼出し語との処理に 必要なものは、xxxxContextに集約し、よりわかりやすい形式で提供。 Ver 1.0.01 2000/06/23 bug fix bug id tbs00001 タグマークをプロパティで指定せず、デフォルトで使用すると HTMLTemplate生成時にNullPointerExceptionが発生。 On constructing HTMLTemplate without specifying tag marks in the properties file, NullPointerException is thrown. Ver 1.0 2000/06/06 初期リリース First production release