概要: Webエンジン Ver 5.1.4.0 (2010/03/01) をリリースいたします。 今回のリリースのおける主な変更点は、各種標準ソフト・モジュールの最新版への対応です。 これに伴い、本バージョンから、JDK、Tomcat、OpenOfficeの標準バージョンを以下に変更します。 JDK : 1.6 update 18 Tomcat : 6.0.24 OpenOffice : 3.2 また、標準環境の雛型のアーカイブとして、 openGion_apps_win32_5.1_jdk160u18_tomcat6024_ooo32.zip も同時に公開します。 ※ バージョンアップされる場合は、ビルドファイル(verup.x.x.x.x.zip)に含まれるchanges.txtを確認の上、 作業をお願いします。 ※ 変更点に関する詳細及びその他の修正内容については、添付のリリースノートを参照下さい。 5.1.4.0 (2010/03/01) [ヘッダー固定バグ修正] ヘッダー固定で、ビューの高さ、幅を%で指定した場合に、正しく動作しない問題に対応します。 これは、%指定が誤ってpx指定として処理されていたためです。 jsp/common/scrollBar2.js [メニューハイライト機能追加] 通常の左メニューで、現在開いている画面メニューがハイライトされるように修正します。 また、これに伴いボタンメニューでのハイライト処理もjQueryで実装するように見直しします。 org.opengion.hayabusa.taglib.TopMenuTag.makeTagMenuString(String, String, String, String, int) org.opengion.hayabusa.taglib.TopMenuTag.setUseButtonScript(String) jsp/menu/multiMenu.jsp jsp/menu/menuHilight.js jsp/menu/menuHilight_button.js [tabLinkタグ・Firefox対応] tabLinkタグの初期タブ表示がFirefoxで動作しない問題に対応します。 これは、Firefoxでaタグに対して、JavaScriptでobj.click()を発行しても、マウスクリックと同等の 処理が行われないためことが原因です。 今回の対応では、aタグのクリックイベント(タブのハイライト)の処理は、obj.onclick()で処理を行い、 リンク先のオープンは、JavaScriptで処理するようにします。 org.opengion.hayabusa.taglib.TabLinkTag.makeTag() jsp/common/tagLink.js [タグリブ検索画面改善] タグリブ検索画面で、タグ名称を大文字・小文字区別なく検索出来るように修正します。 jsp/DOC01/result.jsp jsp/DOC02/result.jsp [標準メニュー改善] 標準で表示される左メニューで、隠しメニューを定義した際に表示される、隠しメニュー表示用の文字 "←・・・→"に、カーソルをあてた際に、通常のリンクと同じようにマウスカーソルの形状が変更される ようにします。 jsp/menu/multiMenu.jsp [Excel出力のカラム指定] writeTable タグで、writerClass が Excel、ExcelRenderer の場合に、 カラム指定できない件の対応を行いました。 今回は、カラム指定と、useNumber 属性の対応と合わせて行いました。 なお、JExcel については、互換性のために残しているだけですので、 今回は、対応していません。 org.opengion.plugin.io.TableWriter_Excel.java org.opengion.plugin.io.TableWriter_ExcelRenderer.java 【ファイル入出力】ダウンロード のJSP を修正します。 主に、この画面で、columns 属性とuseNumber 属性のテストが行えるように 改造しました。 また、writerClass の引数も最新にあわせて用意しました。 gf/jsp/GF6270/query.jsp gf/jsp/GF6270/result.jsp [タブリンク機能バグ修正] タブリンクタグを使用して、タブを複数行に渡って表示している場合に、行の最後に表示されているタブを 選択状態にすると、最後のタブのみが折り返してしまうバグを修正します。 これは、選択状態のタブのみ、タブの下のボーダーを表示していないことが原因でした。 対応しては、選択状態のタブは、下のボーダーをtransparentの状態で表示するようにします。 (つまり、見た目上の変更はありません) jsp/common/default.css [IE8対応] IE8で各画面のフレームの幅を手動で調節した後、QUERY画面の上に表示されている自動調節ボタンを 押すと、正しくフレームの幅が設定されないバグを修正します。 これは、IE8のバグです。http://support.microsoft.com/kb/973210/ja 対応としては、以下の通りです。 @メニューフレームの調整 -> 手動で幅を変更した場合は、強制的にメニューフレームの幅を160pxにします。 Aクエリフレームの調整 -> 手動で幅を変更した場合は、縮小機能が働かないようにします。 (手動で変更する場合は、クエリフレームの狭める場合が大半であると想定され、 縮小機能が働かなくても問題ないはずです) jsp/common/toggleFrame.js [DB定義ファイル取込] DB定義ファイル(GF80)を、DB定義DBテーブル(GF02,GF05,GF06,GF07)に取り込む処理で、 PoatgreSQL では、NULL と ''(空文字列)が異なるため、WHERE条件で 不要な情報まで取り込まれてしまいました。 (これは、前回の修正で、 ( UK is not null and UK != '' ) を、( UK is not null or UK != '' ) に変更したことが原因です。 ORACLE では、AND にすると、0件になり、OR にすると正常に取れていましたが、 PostgreSQLでは、セット方法により、カラムが、空文字で満たされ、OR にすると すべてのデータが引っかかってしまいました。 そこで、( LENGTH(UK) != 0 ) とすることで、空文字以外という事を、明確にします。 GF2060/dbdefIn.jsp [NVL⇒COALESCE 置換] ORACLE固有の関数である、NVL を、ANSI標準の COALESCE に置き換えます。 今回は、コメントアウトされている箇所も置き換えておきます。 gf/jsp/GANTT07/result.jsp gf/jsp/GF2020/entry.jsp gf/jsp/GF2120/GFM0010.jsp gf/jsp/GF2120/GFM0011.jsp gf/jsp/GF9100/result.jsp gf/jsp/GFX013/query.jsp gf/jsp/GFX014/sourceSQL.jsp gf/jsp/ORA10/dba_table.jsp ge/jsp/MAIL01\entry.jsp ge/jsp/MAIL01\result.jsp ge/jsp/MAIL01\showPtn.jsp ge/jsp/MAIL02\entry.jsp ge/jsp/MAIL02\result.jsp ge/jsp/MAIL03\result.jsp ge/jsp/MAIL03\showDetails.jsp ge/jsp/MAIL04\result.jsp ge/jsp/MAIL06\result.jsp ge/jsp/MAIL07\result.jsp [EXCEL(CSV)取込処理] リソースで、一括EXCEL取込処理で、ラベルリソースへの値セットが 行われない件の対応を行いました。 sqlType が、COPY|MODIFY の場合のみ、処理するようになっていますが、 EXCEL登録時は、INSERT が帰ってきます。 よって、判定を、COPY|MODIFY|INSERT に修正します。 ge/jsp/GE0002/entry.jsp ge/jsp/GE0003/entry.jsp ge/jsp/GE0004/entry.jsp ge/jsp/GE0004/result.jsp [repeatCount反映、SYSTEM_ID初期値設定] リソース登録画面で、repeatCount を入力しても、データに反映されない件で JSP を修正します。 これは、entry タグにパラメータ設定されていなかったためです。 それと、SYSTEM_ID を初期検索条件の値をデフォルト設定するように修正します。 ge/jsp/GE0002/update.jsp ge/jsp/GE0003/update.jsp ge/jsp/GE0004/update.jsp ge/jsp/GE0005/update.jsp ge/jsp/GE0007/update.jsp ge/jsp/GE0008/update.jsp ge/jsp/GE0016/update.jsp [SYSTEM_ID の再セット] 現在、SYSTEM_ID の 初期値は、{@SYS.SYSTEM_ID} になっており、画面で検索する都度、 この値にセットされる。 リソース画面(GE)は、各システムごとに組み込むのではなく、共通利用するように なったため、この初期値では、毎回、手で書き換える必要があった。 そこで、QUERYで検索したSYSTEM_IDをセッションに登録し、初期値をその値を利用する 様に修正します。 (以下のリストは、修正前の行。修正後は、defaultVal="{@U_SYSID}" となる) ge/jsp/custom/init.jsp ログイン時に、U_SYSID に、SYS.SYSTEM_ID をセットする。 ge/jsp/custom/result_info.jsp QUERY から SYSTEM_ID が引数から登録されると、U_SYSID にセットする。 ge/jsp/GE0001/query.jsp(25): ge/jsp/GE0002/query.jsp(23): ge/jsp/GE0003/query.jsp(23): ge/jsp/GE0004/query.jsp(23): ge/jsp/GE0005/query.jsp(23): ge/jsp/GE0007/query.jsp(23): ge/jsp/GE0008/query.jsp(23): ge/jsp/GE0009/query.jsp(23): ge/jsp/GE0011/query.jsp(25): ge/jsp/GE0013/query.jsp(25): ge/jsp/GE0016/query.jsp(25): ge/jsp/GE0017/query.jsp(29): ge/jsp/GE0018/query.jsp(29): ge/jsp/GE0019/query.jsp(29): ge/jsp/GE0020/query.jsp(29): ge/jsp/MAIL01/query.jsp(26): ge/jsp/MAIL02/query.jsp(26): ge/jsp/MAIL03/query.jsp(26): ge/jsp/MAIL06/query.jsp(25): ge/jsp/MAIL07/query.jsp(25): ge/jsp/REP01/query.jsp(25): ge/jsp/REP02/query.jsp(25): ge/jsp/REP03/query.jsp(25): ge/jsp/REP04/query.jsp(25): ge/jsp/REP05/query.jsp(25): ge/jsp/REP06/query.jsp(25): ge/jsp/REP07/query.jsp(25): ge/jsp/REP14/query.jsp(25): ge/jsp/REP20/query.jsp(24): ge/jsp/REP21/query.jsp(16): [jfreechart-1.0.13.jar 対応] jfreechart-1.0.13.jar に対応する準備を行います。 jfreechart は、バージョンアップするたびに、どこかで不具合が発生しますので、 本体のアップは、行いません。 ただし、将来的なことを考え、影響範囲が少ないと思える箇所は、対応しておきます。 jfreechart-1.0.13は、org.jfree.chart.plot.CategoryPlot の継承もとの org.jfree.chart.plot.Plot に、 public void setNotify( boolean ) メソッドが追加されたため、HybsCategoryPlot.java に作成していた protected void setNotify( boolean ) メソッドがコンパイルエラーになります。 よってsetNotify メソッドをpublic にします。 また、equals と hashCode もあまり意味が無かったので、削除します。 org.opengion.hayabusa.io.HybsCategoryPlot#setNotify( final boolean isNotify ) protected ⇒ public org.opengion.hayabusa.io.HybsCategoryPlot#equals( final Object anObject ) 削除 org.opengion.hayabusa.io.HybsCategoryPlot#hashCode() 削除 ChartPlot_Category において、CategoryDataset は、setRangeAxis より先に行う必要がある。 org.opengion.hayabusa.io.ChartPlot_Category#getPlot( final ChartCreate create ) jfreechart 評価用画面(GF6110:【ビュー関連】集計グラフ)を修正します。 gf/jsp/GF6110/JfreeChartType.jsp 削除 gf/jsp/GF6110/typeOption.jsp 削除 gf/jsp/GF6110/chartTypeXY.jsp gf/jsp/GF6110/typeOptionXY.jsp gf/jsp/GF6110/typeOptionBar.jsp gf/jsp/GF6110/chartTypePie.jsp gf/jsp/GF6110/query.jsp gf/jsp/GF6110/typeOptionVal.jsp gf/jsp/GF6110/typeOptionPie.jsp gf/jsp/GF6110/result.jsp gf/jsp/GF6110/chartTypeVal.jsp gf/jsp/GF6120/typeOption.jsp [画面遷移なし登録・バグ修正] 画面遷移なし登録で、viewFormTypeにHTMLCutomTableや、HTMLFormatTable等を使用している場合に、 変更ボタン等を押すごとに、各項目の幅が少しずつ広がってしまうバグを修正します。 これは、IEのCSS実装のバグで、IEでは、THタグのpaddingが0より大きい場合は、width属性の指定値と、 その結果で表示されるサイズが異なってしまう問題があります。 (但し、この場合でも、colgroupが指定されている場合(HTMLTableの場合)は、正しい値が返ります) 今回の対応としては、ヘッダー固定時のTHタグのpaddingを0にします。 (実際は、データ項目よりヘッダーの方が幅があるということは、レアケースであるため、影響はないと 判断しています) jsp/common/scrollBar2.js jsp/common/scrollBar2.css [標準環境バージョンアップ] 標準環境の各ソフトウェア・モジュールをバージョンアップします。 これに伴い、app環境として、openGion_apps_win32_5.0_jdk160u18_tomcat6024_ooo32.zipをリリースします。 JDK : 160_18 Tomcat : 6.0.24 POI : 3.6-20091214 jQuery : 1.4 OpenOffice : 3.2 [Tomcat6.0.24対応] tldの設定で、emptyと記述した場合にタグのボディが記述 されているとエラーになる問題に対応します。 (tagdependentに変更) 参照 : https://issues.apache.org/bugzilla/show_bug.cgi?id=47977 src/META-INF/taglib.tld [各種パッチソースの場所を移動] Tomcatのパッチや、hsqldbの拡張関数など、周辺環境に関連する部分のソースフォルダを uap/webapps/gf/src/other から apps/src 以下に移動します。 [インデックス作成JSP] GF80 の検索で、インデックスやインデックスカラムを作成する箇所で、 UK や IXA などのカラムから、インデックス情報を取得する際に、 and ( UK is not null and UK != '' ) というSQL文で取得しているが、AND 結合なので、同時に発生することが ないので、結果、一件もデータを取得できない状況であった。 ここは、or 結合とすることで、対応します。 and ( UK is not null or UK != '' ) 取り込んだ情報を、DB定義に反映させるボタンを、result から query に移動 させます。(ボタンの存在に気づきにくいため) jsp/GF2060/dbdefIn.jsp jsp/GF2060/query.jsp jsp/GF2060/result.jsp 各チェック処理において、0件ストップと、オリジナル件数の表示を加えます。 データが無いために、0件なのか、チェック結果が0件なのか分かりにくいためです。 jsp/GF2060/GFM0032.jsp jsp/GF2060/GFM0034.jsp jsp/GF2060/GFM0035.jsp jsp/GF2060/GFM0036.jsp jsp/GF2060/GFM0039.jsp jsp/GF2060/GFM0040.jsp jsp/GF2060/GFM0045.jsp 取り込んだ DB定義情報を DB定義テーブルへ反映させるボタンの名称を変更します。(リソース修正) DbdefIn 定義テーブル取込 ⇒ 廃止 DBDEF_IN DB定義テーブル反映 ⇒ 新規追加 [画面ロールのrootの扱いに関するバグ対応] 画面ロールに、"root" と登録されると、root しか見えないのではなく すべての人から見えるようになってしまう。 これは、RoleMode で、共通化を図っているため、"root" 文字を すべて許可 してしまうためです。 ここでは、GUIData で、ロールが、"root" の場合、特殊な記号("r00t")に 置換えることで、通常のロールでは見えないようにします。 この場合は、user が、root であれば、見ることが可能です。 # 本件は、暫定対応です。 org/opengion/hayabusa/resource/GUIData#GUIData( final String[] data ) [ユーザーの言語・ロールの動的切り替え機能] ロールの動的切り替え機能は、すでに対応済みで、接続時に、引数として、 ?ROLES=XXXX と渡せば切り替わります。 ただし、下記の仕様とする。 1.自分が持っているロールと、ぴたりと一致すること。(部分ではない) 2.切り替えは、途中からではなく、新しいセッションで再接続する必要がある。 言語の切り替えは、接続時に、引数として、?NEWLANG=en などと指定する。 こちらに関しては、自分のユーザーリソースの制限はない。 (ただし、その言語に対応したリソースが必要) こちらも、切り替えは、新しいセッションで再接続する必要がある。 両方を同時に指定する場合は、?ROLES=XXXX&NEWLANG=en などと指定する。 org/opengion/hayabusa/resource/UserInfo#setLang( final String newLang ) org/opengion/hayabusa/taglib/HeadTag#sessionInit() [データベース単位のファンクション] データベース名の情報も、取得できるようにします。 データベース名毎に異なるファンクション名の処理を少し見直します。 ここでは、{@DBF.CON},{@DBF.SUBSTR} 以外に、{@DBF.NAME} を追加します。 また、fukurou.db.DBFunctionName の呼び出しで、データベース名を引数に取っていた 箇所を、dbid 名に変更します。 # 考え方は、データベース名 で良いのですが、エンジン内部では、すべて、dbid で # 接続先を管理しているため。 org/opengion/fukurou/db/ConnectionFactory#getDBName( final String dbid ) { 新規追加 org/opengion/fukurou/db/ConnectionFactory#getDBFullName( final String dbid ) { 廃止(getDBName に置換え) org/opengion/fukurou/db/DBFunctionName.java クラスから enum へ変更 org/opengion/hayabusa/report2/QueueManager_DB#final String CON = DBFunctionName.getFunctionName( "CON", null ); org/opengion/hayabusa/taglib/CommonTagSupport#getDBFunctionName( final String key ) { [データ集合処理のまとめカラム処理] TableMergeTag で、集合処理するときに、相違データをCSV連結する機能を追加します。 masterKeysで集合処理するときに、通常、最初に見つかった行データのみ残りますが、 ここに指定したカラムについては、発生都度、自分自身の情報に、CSV形式で連結して いくカラムを指定する属性、 groupAddClms を追加します。 この操作により、本来削除された情報が、1行のCSV形式で取得できる効果が得られます。 これは、value タグの action="APPEND" を、DBTableModel に対して実施するような感じです。 この機能を利用することで、PL/SQL関数である、INDEX_BIKO を廃止します。 これに伴い、INDEX_BIKO関数を利用している、GF2040 と GF2110 のロジックを修正します。 org/opengion/hayabusa/taglib/TableMergeTag#makeKeyMap( final DBTableModel table, final String keys, final boolean useCheckOnly ) { org/opengion/hayabusa/taglib/TableMergeTag#release2() { org/opengion/hayabusa/taglib/TableMergeTag#setGroupAddClms( final String groupAddClms ) { META-INF/hybs-taglib.tld db/oracle/sql/05_SRC/INDEX_BIKO.sql 廃止 jsp/GF2040/directGF07.jsp jsp/GF2110/directGF07.jsp [Javadoc 警告修正] {@DBF.XXX} 表記が、タグとして認識されて、警告となった。 {@DBF.XXX} に修正。 org/opengion/fukurou/db/DBFunctionName.java:44: 警告 - @DBF.XXX は未知のタグです。 [tomcat6.0.24 対応] tomcat6.0.24 のカスタマイズ分を、対応します。 JSPをコンパイルするときのCLASSローダーのキャッシュ処理のカスタマイズを 新バージョン対応します。 gf\src\other\tomcat_Modify-jasper.jar 以下のソースを修正します。 なお、継承により作成しています、tomcat_CacheControl は、ソース修正不要です。 org.apache.jasper.EmbeddedServletOptions.java org.apache.jasper.compiler.JspRuntimeContext.java [クエリ画面・高さ自動調整対応] クエリ画面での高さ自動調整対応で以下の機能改善を行います。 @横スクロールが出る場合にも正しく自動調節されるように修正 AFireFoxで正しく自動調節されるように修正 jsp/common/default.js#adjustFrameHeight();