概要: Webエンジン Ver 5.3.0.0 (2010/12/01) をリリースいたします。 今回のリリースは、軽微な機能改善及びバグフィックスです。 但し、今回のリリースでは、標準テーブル(GEA09)に項目を追加しています。 バージョンアップの際は、必ず項目追加を行って下さい。 ALTER TABLE GEA09 ADD ( NEXTGUI VARCHAR2(1000)) ; ※ バージョンアップされる場合は、ビルドファイル(verup.x.x.x.x.zip)に含まれるchanges.txtを確認の上、 作業をお願いします。 ※ 変更点に関する詳細及びその他の修正内容については、添付のリリースノートを参照下さい。 5.3.0.0 (2010/12/01) [jfreechart 見直し] jfreechartで、表示に利用する DatasetとRenderer、Plot の定義データを見直しました。 これに伴い、インスタンス作成箇所を修正します。 また、サンプル画面に、新しく使えるようになったグラフの追加と、機能的に不備なデータの 削除を行いました。 hayabusa\io\ChartFactory#newDataset( final Connection conn,final String query,final String type ) hayabusa\io\ChartFactory#newDataset( final DBTableModel table , final String type ) hayabusa\io\ChartFactory#newChartPlot( final String type ) hayabusa\io\ChartFactory$TypeRenderer hayabusa\io\ChartPlot_Pie#getPlot( final ChartCreate create ) サンプル画面も修正しておきます。 gf\jsp\GF6110 [左右分割スクロールのタグ化] 左右分割処理で、今までは、Viewタグを2つに分けてDIV要素で直接指示して左右分割を 実現していましたが、これを簡素化できるように、タグを追加します。 タグ内部で、設定を変えつつ、Viewを2回呼び出しています。 hayabusa\html\AbstractViewForm#setNumberType( final String type ) hayabusa\taglib\SplitViewTag.java(48): * @og.rev 5.3.0.0 (2010/12/01) 新規作成 hayabusa\taglib\ViewFormTag#doStartTag() hayabusa\taglib\ViewFormTag#splitViewParamSet() TLDファイルに追加します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld サンプル画面も修正しておきます。 gf\jsp\GF6130 [軽微な修正、警告対応] メソッドの引数で使われていない物を削除しました。 hayabusa\taglib\DirectWriteTableTag#executeCall( final Connection conn,final CallableStatement callStmt,final String[] args ) 若干、コメント修正 hayabusa\taglib\CommonTagSupport#doEndTag() [web.xml修正] gf の WEB-INF/web.xml が、version="2.5" の場合は、taglib 定義を、 jsp-config で括る必要があるにもかかわらず、括っていなかった。 正式な形式に修正します。 ge の web.xml は、version="2.4" であり、gf と整合性が取れていないため、 version="2.5" に変更するとともに、taglib 定義の箇所を修正します。 ge/WEB-INF/web.xml tld宣言がコメントされていますが、修正しておきます。 gf/WEB-INF/web.xml hayabusa/servlet/TestCometServlet.javaを一旦削除します。 これは、Cometのサンプルですが、Tomcat7 以降、CometEvent、CometProcessor の パッケージが、異なります。よって、このまま、Tomcat6 と Tomcat7 との互換性を 取ることが難しいため、一旦削除し、Tomcat7 を標準とするバージョンで 必要であれば復活させます。 org.apache.catalina.CometEvent ⇒ org.apache.catalina.comet.CometEvent org.apache.catalina.CometProcessor ⇒ org.apache.catalina.comet.CometProcessor (Comet自体がそもそも苦し紛れの仕様なので、今後どうするかは未定です。) hayabusa/servlet/TestCometServlet.java 削除 これに伴い、web.xml に記述してあるサーブレットの設定サンプルも削除します。 ge/WEB-INF/web.xml gf/WEB-INF/web.xml [headタグ・バグ修正] linkタグの終了がscriptで終了しているバグを修正します。 org.opengion.hayabusa.taglib.HeadTag.addStyleTag(String, StringBuilder) [topMenuタグ・改善] menuType="NEXTGUI"の場合でも、マルチセッションチェックを行わないようにします。 org.opengion.hayabusa.taglib.TopMenuTag.doEndTag() [ヘッダー固定改善] 左右分割時のヘッダー固定で、表示データをCtrl+Aで選択後、Excel等で貼り付けると左右で行がずれる問題に対応します。 jsp/common/scrollBar2.js [リソース登録画面バグ修正] リソース登録画面で以下のバグを修正します。 ①キー差分で差分データに対して"変更"処理を行った場合に、接続先(From)のUNIQ番号で接続先(To)のデータが 更新されてしまうバグを修正(キー差分では「複写」ボタンのみ、属性差分では「変更」ボタンのみを表示するように変更) ②リソース登録画面で、変更時にシステムIDを変更して登録すると、変更後のシステムIDでデータが「追加」される のではなく、変更前のシステムIDのデータが「変更」されてしまうバグを修正 ③カラム、ラベル、コードの各画面で、システムID='**'のラベルが適用されているデータに対して、追加、変更を行うと、 システムID='**'のデータが変更されてしまうバグを修正 ge/jsp/GE0002 ge/jsp/GE0003 ge/jsp/GE0004 ge/jsp/GE0005 [DB定義追加] ①ユーザーアクセス画面管理テーブル(GEA09) の次画面リストカラム追加 ALTER TABLE GEA09 ADD ( NEXTGUI VARCHAR2(1000)) ; ge\changes\changes.txt ge\changes\5300\alter(GE).txt [jfreechartの改造] jfreechart のグラフ表示用タグ ChartDatasetTag で、DBTableModel の値を 利用して、表示する機能を追加します。 * useTableData="false"(初期値)の場合は、BODY部に書かれた SQL 文を実行してデータを取得します。 * useTableData="true" にすると、その前の query タグ等で作成した DBTableModel を利用して * グラフ化します。その場合は、BODY部の SQL 文は、無視されます。 * 利用する DBTableModel は、tableId と scope 属性から取得します。 useTableData , tableId , scope 属性を追加します。 hayabusa.taglib.ChartDatasetTag#doStartTag() { hayabusa.taglib.ChartDatasetTag#doAfterBody() { hayabusa.taglib.ChartDatasetTag#doEndTag() { hayabusa.taglib.ChartDatasetTag#release2() { hayabusa.taglib.ChartDatasetTag#setUseTableData( final String flag ) { 新規追加 hayabusa.taglib.ChartDatasetTag#setTableId( final String tableId ) { 新規追加 hayabusa.io.ChartDataset#makeDataset( final DBTableModel table ) { 新規追加 hayabusa.io.ChartFactory#newDataset( final Connection conn,final String query,final String type ) hayabusa.io.ChartFactory#newDataset( final DBTableModel table , final String type ) { 新規追加 hayabusa.io.ChartFactory#newChartPlot( final String type ) { これに伴い、TLDを変更します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld サンプル画面も修正します。 gf/jsp/GF6110 gf/jsp/GF6120 [daemon処理の強化] 帳票デーモンで、不審な停止が起こったが、原因が不明であった。 暫定処置ではあるが、デーモン処理を見直すことで、発生頻度を低下します。 現在、Throwable で catch しているが、その内容として、 1.LogWriter 2.insertErrorGE56 3.updateGE50 4.vals == null の HybsSystemException 5.USE_LISTID.remove 6.rc の 初期化(= nullセット) の順番で、処理をしているが、エラー発生の確率の少ない5番を、 先に持ってきます。 また、今回は、LogWriter による書き込みもありませんでしたが、 標準出力へも書き込んで置くようにします。 plugin.daemon.Daemon_Report#startDaemon() { plugin.daemon.Daemon_MailReceive.HybsTimerTask#startDaemon() { [使われていない変数の削除] メソッドの引数で使用されていない引数を削除します。 hayabusa.taglib.DirectWriteTableTag#create( final PrintWriter out ) { hayabusa.taglib.DirectWriteTableTag#ResultSet executeCall( final Connection conn,final CallableStatement callStmt,final String[] args ) throws SQLException { 5.2.3.0 (2010/12/01) [URLHashFilter 追加 ※試作中] URLHashFilter で、レベル対応を実装します。 これとともに、ハッシュ化と暗号化の両方をサポートします。 fukurou.security.URLHashMap.java hayabusa.filter.URLHashFilter.java hayabusa.common.SystemData#URL_ACCESS_SECURITY_LEVEL = "0" ; * レベル0:なにも制限はありません。 * レベル1:Referer チェックを行います。つまり、URLを直接入力しても動作しません。 * ただし、Refererが付いてさえいれば、アクセス許可を与えます。 * Referer 無しの場合でも、URLにパラメータが存在しない、または、 * アドレスがハッシュ化/暗号化されている場合は、アクセスを許可します。 * レベル1の場合、ハッシュ戻し/複合化処理は行います。あくまで、ハッシュ化 * 暗号化されていない場合でも、Refererさえあれば、許可するということです。 * (パラメータなし or ハッシュあり or Refererあり の場合、許可) * レベル2:フィルター処理としては、レベル1と同じです。 * 異なるのは、URLのハッシュ化/暗号化処理を、外部URLに対してのみ行います。 * (パラメータなし or ハッシュあり or Refererあり の場合、許可) * レベル3:URLのパラメータがハッシュ化/暗号化されている必要があります。 * レベル1同様、URLにパラメータが存在しない場合は、アクセスを許可します。 * レベル1と異なるのは、パラメータは必ずハッシュ化か、暗号化されている * 必要があるということです。(内部/外部問わず) * (パラメータなし or ハッシュあり の場合、許可) * それ以外:アクセスを停止します。 [画面アクセス履歴管理 ※試作中] (※ 正式には、GEA09 テーブルに項目追加が必要な為、Ver.5.3.0.0 でリリースします。) 画面アクセスの履歴(順番)を管理する機能を追加します。 この機能により、ある画面から次の画面に遷移する場合の統計情報が 取得できます。 これは、QUERY画面上部のショートカットリンクに、次に使用する画面の リンクを用意することで、出来るだけ画面を広く使える様になります。 (query_info.jsp の topMenu タグのmenuType を ONELEVEL から NEXTGUI に変更) hayabusa.resource.GUIInfo#setNextGuiKey( final String guiKey ) { hayabusa.resource.GUIInfo#getNextGuiKeys() { hayabusa.taglib.HeadTag#doStartTag() hayabusa.resource.UserInfo#setAccessGui( final GUIInfo guiInfo ) hayabusa.resource.UserInfo#saveGUIAccessInfo() hayabusa.resource.UserAccessTable#updateLastAccessTime( final String systemId,final String userId,final String guiKey,final String lastAccessTime,final String nextGuiKeys ) hayabusa.taglib.TopMenuTag#makeNextguiMenu() menuType に NEXTGUI 属性を追加 gf\jsp\custom\query_info.jsp topMenu タグのmenuType を ONELEVEL から NEXTGUI に変更 [テーブル罫線対応] テーブルに罫線を表示できるように機能追加します。 なお、現時点では、IE ではうまく表示できないため、使えません。 (Firefox ではうまく表示されます。) hayabusa.common.SystemData#HTML_TABLE_PARAM plugin.view.ViewForm_HTMLTable#getTableTag() { gf\src\script\common\scrollBar2.js ヘッダーに属性をコピーする際に、"bordercolor", "frame", "rules" を追加 [マルチメニュー対応] マルチメニューで、2種類存在する方式のそれぞれの問題箇所を修正します。 ・MATRIX(大分類付きマルチメニュー)で、sideCount の機能を追加 ・sideCount の初期値を、1 から 無制限 に変更 ・matrixMenu.jsp の CSS 指定部を、共通、MATRIX用、MATRIX2用に整理 ・標準サンプルの設定値変更(sideCount = "6") gf\jsp\menu\matrixMenu.jsp hayabusa.taglib.TopMenuTag#release2() hayabusa.taglib.TopMenuTag#makeMatrixMenu() { [カラムのリソースの初期値利用] カラムでリソースファイルの初期値を使うかどうかを指定。 カラムの値や初期値がセットされていないときに、カラムリソースの 初期値を利用するかどうかを、true/false で指定します。 true の場合は、初期値を使用します。 過去との互換性の関係で、この属性は、false に設定されています。 hayabusa.taglib.ColumnTag#release2() { hayabusa.taglib.ColumnTag#setUseDefaultPropertieVal( final String dv ) { hayabusa.common.SystemData#USE_DEFAULT_PROPERTIE_VALUE = "false" ; [switch タグ、case タグ作成] switch タグとcase タグを新規に追加します。 これは、equals タグで、ごちゃごちゃ書かれている箇所を、スムーズに書くためのタグです。 基本的には、JSP にロジックを持ち込みたくないので、多用しないでください。 hayabusa.taglib.SwitchTag.java hayabusa.taglib.CaseTag.java これに伴い、TLDを変更します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [bulkSet チェックボックス、ラジオボタン対応] カンマ文字列対応とチェックボックス対応を行います。 カンマ文字列対応とは、一括入力欄に対して、カンマ区切りの文字列を入力した場合に 変換する仕様とします。 また、コピー&ペーストした結果を、クリップボード経由で取得、設定する場合は、 カンマを改行文字に置き換えて処理します。 また、EXCEL等で、縦でなく横の文字列は、タブ区切り文字になりますので、 その場合も、タブをカンマに置き換えて、一括設定できるようにします。 ・テキストは、カンマ区切り文字で分割して設定します。 ・プルダウンは、Ctrl-V/Ctrl-V というオプションを新規作成し、値をセットします。 ・プルダウンは、値:ラベル文字列で抜き出し、設定時は、":"で分割した値のみ設定します。 ・チェックボックスは、1,0 の値を取得します。"1" の場合にチェックをONします。 ・ラジオボタンは、設定部は、プルダウン(MENU)に変更して簡素化します。 gf\src\script\common\resultScript.js#bulkSet( obj ) gf\src\script\common\resultScript.js#bulkPaste( obj ) gf\src\script\common\resultScript.js#ctrlCV( obj ) チェックボックスでは、onChange ではなく、onClick でイベントを発生させます。 また、ラジオボタンは、制御が特殊なので、プルダウン(MENU)に変換して使用します。 hayabusa.html.AbstractViewForm#getSortedColumnLabel( final int column )