)
org.opengion.hayabusa.resource.UserInfo.isValidAddr(String)
org.opengion.hayabusa.taglib.HeadTag.sessionInit()
[リアルタイムチェックバグ修正]
リアルタイムチェックで、クエリ画面で「必須入力エラー」が不正に出力されるバグを修正します。
この問題は、以下のコーディングがされている場合に、以下の操作手順で発生します。
【コーディング条件】
@query.jspで任意の項目に対して、必須属性(must="true")を付加
Aresult.jspで@で指定したカラムの必須チェックを行わない。
(columnCheckタグを記述しない、またはcolumnCheckタグでnullCheck属性を個別に指定し、@の項目を
除外する)
【操作手順】
@コーディング@で必須に指定した(但し必須チェックをしない)項目に、何も入力せずに検索
A通常通り、データ選択⇒登録を行う。
B以降は、query.jspで全ての項目について、フォーカスが離れると「必須入力エラー」が出る。
※再現パターンは、これ以外にも存在する可能性があります。
この問題は、クエリ項目における、必須の自動チェックと、リクエストキャッシュの相互影響により
発生します。クエリ項目における必須チェックは、"h_must_must"というパラメーターキーに対して、
項目名を送信することで、必須チェック対象の項目を判別しています。
但し、この内容は、リクエストキャッシュに保存されるため、コーディング方法によっては、
realtimecheck.jspでこのパラメーターが復元され、不正なエラーチェックが発生します。
org.opengion.hayabusa.taglib.ColumnCheckTag.makeErrorMessage(ErrorMessage)
[戻るボタン改善]
登録エラー時などに表示される、history.back()を利用した戻るボタン(common/history_back.jsp)について、
formボタンで囲わないようにします。
これは、戻るボタンJSP自体をformタグの中に記述すると、formタグが入れ子になら、パラメーターが正しく
送信されなくなるためです。
jsp/common/histry_back.jsp
[urlConnectタグ・バグ修正]
接続時のエラー処理でNullPointerExceptionが発生し、正しくエラー処理が行われないバグを修正します。
org.opengion.hayabusa.taglib.URLConnectTag.doEndTag()
[テキストファイル入力改善]
テキストファイルの入力(readerClass="Default")で、ダブルクオーテーションで囲われたデータ中に改行Cが
存在する場合に、正しく取り込めないバグを修正します。
Excelでは、タブ区切りや、カンマ区切りのデータを取り込む際、そのデータが"(ダブルクオーテーション)で
囲われている場合、そのダブルクオーテーション内の、改行Cは、行の区切りではなく、データの一部と見なされる
ため、正しく取り込むことができます。
今回の対応では、Excelの取り込みに合わせて、"(ダブルクオーテーション)の改行Cが正しく取り込みできる
ように対応します。
org.opengion.fukurou.util.StringUtil.countChar(String, char)
org.opengion.fukurou.util.CSVTokenizer.nextToken()
org.opengion.plugin.io.TableReader_Default.readDBTable(BufferedReader)
[動的プルダウンバグ修正]
動的プルダウン機能で、tabindexなど項目に指定した属性情報が、項目入替え後に引き継がれないバグを
修正します。
jsp/common/eventColumn.js
jsp/common/eventColumnMarker.jsp
org.opengion.hayabusa.taglib.ColumnTag.setEventURL(String) Javadocのみ修正
[選択行スクロールバグ修正]
2回連続で(再検索を行うことなく)登録処理を行った場合に、2回目の行編集時に、選択行に
スクロールしないバグを修正します。
org.opengion.hayabusa.html.AbstractViewForm.init(DBTableModel)
[リアルタイムチェック改善]
ヘッダー固定が適用されているビューに、リアルタイムチェックの吹き出しが表示された場合、
ビューをスクロールすると、吹き出しがスクロールせず、吹き出しの位置と実際の入力ボックスが
ずれてしまう不具合に対応します。
これは、リアルタイムチェックの吹き出しの要素をbody要素の直下に配置しているためで、bodyに対する
スクロールには追随しますが、ヘッダー固定のようなbody内部の要素でのスクロールには追随しないためです。
今回の対応では、ヘッダー固定をスクロール時には、吹き出しを一旦全て非表示にするように対応しています。
jsp/common/realTimeCheck.js
[マトリクスメニュー改善]
マトリクスメニューで、画面の実アドレスと画面IDが異なる場合に、正しく画面が開かないバグを修正します。
jsp/result.jsp
[Java業務ロジック改善]
テーブルモデルに指定のカラムが存在しているかどうかを確認できるメソッドを追加します。
org.opengion.fukurou.business.AbstractBizLogic.isLine(String)
[Ver4互換モード対応]
openGionの旧バージョンであるVer4の環境に対して、互換モードの設定を追加することで旧環境でも
openGionが起動できるように対応します。
具体的には、互換モードが設定された場合、openGion本体(Java)及びGEシステムの各画面からアクセスする際の
項目名が、旧項目名に変換されます。
これにより、Ver4環境のDB環境に変更を加えることなく、openGionを導入することができるようになります。
なお、互換モードは、リステムリソースの"VER4_COMPATIBLE_MODE"を"true"に設定することで動作します。
また、この互換モードの設定により、内部的に項目名が変化される項目一覧は以下の通りです。
テーブルID (false) ※openGion標準 (true) ※Ver4互換
------------ ----------------------- --------------------
GEA05 ROLES ROLE
GEA10 NAME_JA NAME
GE50 OUT_FILE OUTFILE
GE50 OUT_DIR OUTDIR
GE51 TEXT_DATA TEXT
GE51 CLM COLUMN_NAME
GE53 OUT_FILE OUTFILE
GE53 OUT_DIR OUTDIR
GE55 HOST_ID HOST
GE58 CLM COLUMN_NAME
GE30 H_TXT HEADER
GE30 F_TXT FOOTER
GE31 CONTENTS CONTENT
GE32 CONTENTS CONTENT
GE33 ADDRESS MEMBER
GE33 NAME_JA NAME
GE33 KBNAME NM_KBN
(以下変更ソースリスト)
org.opengion.hayabusa.common.SystemData.VER4_COMPATIBLE_MODE
org.opengion.hayabusa.report.GE50Access
org.opengion.hayabusa.report.RFIDPrintRequest
org.opengion.hayabusa.report2.QueueManager_DB
org.opengion.hayabusa.report2.QueueManager_DB.DBTableModelCreator
org.opengion.hayabusa.mail.MailManager_DB
org.opengion.hayabusa.mail.MailPattern
org.opengion.hayabusa.mail.AbstractMailManager
org.opengion.plugin.daemon.Daemon_Report
jsp/ge/GE0001
jsp/ge/GE0002
jsp/ge/GE0016
jsp/ge/GE0017
jsp/ge/GE0018
jsp/ge/GE0019
jsp/ge/GE0020
jsp/ge/REP01
jsp/ge/REP02
jsp/ge/REP03
jsp/ge/REP04
jsp/ge/REP06
jsp/ge/REP14
jsp/ge/MAIL01
jsp/ge/MAIL02
jsp/ge/MAIL03
jsp/ge/MAIL07
[Popupタグ、リアルタイムチェックバグ修正]
Popupタグ、リアルタイムチェックの機能で、"+"など一部の文字が正しく引数として渡されないバグを修正します。
これは、JavaScriptで文字をエンコードする際に、独自関数、又はencodeURI()を利用していたためです。
今回の対応では、encodeURIComponent()を使用するように変更します。
jsp/common/ogPopup.js
jsp/common/realTimeCheck.js
[共通項目名の変更]
5.1.0.0 (2009/11/04) で実施された共通項目名の変更で、一部対応漏れがありましたので、これに対応します。
定義が変更されるテーブルは、GE36,GEA05,GEA06,GF95です。
alter文については、GE、GFのコンテキストフォルダのchanges/5200/以下のファイルに記述されています。
GE36 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加
GEA05 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加
GEA06 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加
GF95 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加
[Calc帳票・バグ修正]
Calc帳票システムで、表紙となる雛形にボディー部分のデータ{@xxx_n}を定義していない場合に
エラーとなるバグを修正します。
org.opengion.hayabusa.report2.OdsContentParser.writeParsedSheet(OdsSheet, BufferedWriter)
[ユーザーリソース・LDAP対応]
ユーザーリソースをLDAPから取得できるように対応します。
Tomcatを含めたLDAP認証の設定方法については、以下のURLを参照して下さい。
( URL : http://www.opengion.com/227.html )
org.opengion.hayabusa.common.SystemData.RESOURCE_USER_SRC_TYPE
org.opengion.hayabusa.common.SystemData.RESOURCE_USER_LDAP_CLM
org.opengion.hayabusa.common.SystemData.RESOURCE_USER_LDAP_FILTER
org.opengion.hayabusa.common.SystemData.RESOURCE_USER_ROLE_LDAP_FILTER
org.opengion.hayabusa.resource.UserInfoFactory.clear()
org.opengion.hayabusa.resource.UserInfoFactory.newInstance(String, String, String)
org.opengion.hayabusa.resource.UserInfoFactory.getVals(String, String, ApplicationInfo)
org.opengion.hayabusa.resource.UserInfoFactory.getValsByLdap(String, String)
5.1.9.0 (2010/08/01)
[DB定義DB・シーケンス定義追加]
build.xml シーケンス出力を追加
GF09 新規テーブル
gf/jsp/GF2042 新規画面
gf/jsp/GF2140 シーケンススクリプト出力機能追加
gf/jsp/GF2150 シーケンススクリプト出力機能追加
org.opengion.plugin.table.TableFilter_SEQRESET
org.opengion.plugin.table.TableFilter_SEQRESET_FIREBIRD
org.opengion.plugin.table.TableFilter_SEQRESET_HSQLDB
org.opengion.plugin.table.TableFilter_SEQRESET_MYSQL
org.opengion.plugin.table.TableFilter_SEQRESET_POSGRE
org.opengion.plugin.table.TableFilter_SEQRESET_SQLSERVER
[UNIQ番号シーケンス名/トリガー名変更]
Oracleでは、MySQLやPostgreSQLなどのように、シーケンス番号を採番するためのカラム種別が
存在していません。このため、テーブル毎にシーケンスを作成し、トリガーでシーケンス番号を
採番しています。
現状では、このシーケンス名は、[TABLE_NAME]S01となっていますが、この場合、同じ命名規則で
新たにシーケンスを定義しようとすると、[TABLE_NAME]S02から採番する必要があり、管理上不都合が
生じる可能性があるため、UNIQカラムのシーケンス番号を取得するためのオブジェクトは、
[TABLE_NAME]S00(トリガーは、[TABLE_NAME]T00)にオブジェクト名を変更します。
但し、既に[TABLE_NAME]S02などのように定義されている、GE32S02(メールモジュールで使用)については、
過去との互換性を考慮し、今回のタイミングでは変更しません。
org.opengion.plugin.table.TableFilter_TABLE.makeUniqSeq(int[], String[])
org.opengion.plugin.table.TableFilter_TABLE.makeUniqTrig(int[], String[], String)
org.opengion.plugin.table.TableFilter_TABLE_FIREBIRD.makeUniqSeq(int[], String[])
org.opengion.plugin.table.TableFilter_TABLE_FIREBIRD.makeUniqTrig(int[], String[], String)
[ファイル入出力不具合対応]
"[Abstractクラス移動]"による変更で、Defaultのファイル入出力が正しく動作しないバグを修正します。
org.opengion.hayabusa.io.TableReader_Default
org.opengion.hayabusa.io.TableWriter_Default
org.opengion.hayabusa.io.AbstractTableReader
org.opengion.plugin.io.TableReader_Default
org.opengion.plugin.io.TableWriter_Default
[メソッド修正]
メソッドの引数を使わずに、インスタンス変数をそのまま使用していた
ため、引数を使用するように変更します。
処理的には同じですが、将来的に、何か不測の事態を招く可能性があるため
修正しておきます。
fukurou.xml.XML2TableParser#getCpParentTagName( final String fQName )
BufferedInputStream のスコープを小さくします。(単に変数が離れていたため)
fukurou.util.ZipFileUtil#addZipEntry( final ZipOutputStream zos, ・・・・
if 文の 判定を 反転し、then と else を入れ替えます。
ソースチェックの警告対応です。 Avoid if (x != y) ..; else ..;
plugin.daemon.Daemon_Report#initDaemon()
[画面自動作成]
不要なメソッド・使われていないメソッドを廃止します。
fukurou.xml.OGNode#addTabNode( final int tab ) 廃止
fukurou.xml.OGNode#addTabNode( final int tab , final OGNode node ) 廃止
fukurou.xml.OGAttributes#setAttrTab( final String attTab ) 廃止
id 属性のみ特別にキャッシュしておきます。
fukurou.xml.OGAttributes#OGAttributes( final String attTab , final Attributes attri , final boolean useCR )
fukurou.xml.OGAttributes#setVal( final int adrs , final String val ) {
fukurou.xml.OGAttributes#add( final String key , final String val ) {
fukurou.xml.OGAttributes#add( final int adrs , final String key , final String val ) {
fukurou.xml.OGAttributes#remove( final int adrs ) {
メソッドの新規追加
fukurou.xml.OGAttributes#getVal( final String key ) {
fukurou.xml.OGAttributes#getId() { return id; }
JspSaxParser 、OGAttributes 、OGDocument、OGElement、OGNode について、
それぞれ、修正を行いました。
新規クラスの追加・パッケージの追加
画面自動作成 に伴って、関連するクラスを追加します。
ただし、現状は、仮状態とします。内容の見直しが入る予定です。
hayabusa.taglib.JspCreateTag.java 新規追加
hayabusa.develop パッケージの追加
AbstractJspCreate.java
JspConvertEntity.java
JspCreateFactory.java
JspEnumeration.java
plugin.develop パッケージの追加
JspCreate_OG_COLUMN.java
JspCreate_OG_COMMENT.java
JspCreate_OG_QUERY.java
JspCreate_OG_SELECT.java
JspCreate_OG_VIEW.java
これに伴い、JspCreateTag に関する tld の変更があります。
jspCreate タグ追加
gf/src/META-INF/hybs-taglib.tld
gf/WEB-INF/hybs-taglib.tld
[画面自動作成 JSP側、リソース追加]
画面リソースの追加、修正を行います。
既存のアドレス、名称の変更もありますので、ご注意ください。
GF2200 common/gamen/13_GUILIST
GF2201 common/gamen/11_GUIMAKE
GF2202 common/gamen/12_GUIMAKEGUI
GF2203 廃止
SPCDEF_SHIYO 仕様書DB登録
GF2250 青紙定義 GF90
GF2251 ← GF2252 移動(利用DB定義) GF91 A, GF90
GF2252 ← GF2252 移動(画面項目定義) GF92
GF2253 画面リンク設定
GF2254 項目チェック基準
GF2255 DBセット基準
GF2256 PG変更履歴
[シーケンス対応]
Oracle,Postgresql,MySQL,HSQLDB,Firebirdについて、透過的にシーケンスが扱えるようにします。
近い将来に、シーケンス自体も、DB定義DBで管理し、ここからスクリプトを自動生成することで、
より各DBを意識することなく、シーケンスを扱うことが出来るように対応する予定です。
org.opengion.hayabusa.taglib.BizLogicTag.call(String, Transaction)
org.opengion.fukurou.db.DBFunctionName.getSequence(String, Transaction)
org.opengion.fukurou.business.BizLogicHelper.setConnection(Connection) 廃止
org.opengion.fukurou.business.BizLogicHelper.setDbid(String)
org.opengion.fukurou.business.BizLogicHelper.setTransaction(Transaction)
org.opengion.fukurou.business.AbstractBizLogic.seq(String)
org.opengion.fukurou.business.AbstractBizLogic.setConnection(Connection) 廃止
org.opengion.fukurou.business.AbstractBizLogic.setDbid(String)
org.opengion.fukurou.business.AbstractBizLogic.setTransaction(Transaction)
org.opengion.fukurou.business.AbstractBizLogic.exec()
org.opengion.fukurou.business.AbstractBizLogic.call(String, String, String, int, ArrayTableModel)
[DBスクリプトの移動]
DBスクリプトの配置場所を見直します。
db/[DBName]/sql/06_DATA -> db/common/sql/01_DATA に移動(各DB共通化)
db/[DBName]/xml/install/06_DATA -> db/common/xml/install/01_DATA に移動(各DB共通化)
db/xml -> db/common/xml/install/01_DATA
db/common/xml/update/const に移動(不要データが更新される問題に対応)
build.xml
org.opengion.hayabusa.common.SystemInstaller.loadXMLScript(String, String)
org.opengion.hayabusa.common.SystemInstaller.execScripts(String, String)
[Calc帳票・複数シート(シートブレイク)機能 バグ修正]
Calc帳票システムの複数シート(シートブレイク)機能で、要求NOの最終行に対して、正しくシートブレイク処理が
行わないバグを修正します。
org.opengion.hayabusa.report2.OdsContentParser.getBodyValue(String, int)
[パッケージ依存関係見直し]
fukurouパッケージは、最下位(最もベースとなる)パッケージなので、hayabusa パッケージを
混ぜないようにします。
hayabusa.common.HybsSystem をコメントアウトして、fukurou 内部に記述します。
fukurou.util.ErrMsg.java(18): import org.opengion.hayabusa.common.HybsSystem;
fukurou.util.ErrorMessage.java(21): import org.opengion.hayabusa.common.HybsSystem;
fukurou.util.SystemParameter.java(27): import org.opengion.hayabusa.common.HybsSystem;
[クラス見直し]
JspSaxParser で、static メソッドを廃止。通常のオブジェクトクラスとして扱います。
また、JspSaxParser で、ディレクトリコピー処理で、間にフィルター機能を追加します。
これは、JspParserFilter インターフェースを add できるようにします。
fukurou.xml.JspSaxParser.java
fukurou.xml.JspParserFilter.java 新規追加
[taglet の表示方法見直し]
カスタムタグの説明用の 独自タグ og.tag の処理方法を変更します。
従来は、og.tag の配列を、テーブルに設定するようなイメージでしたが、
元々、このタグは一つしか現れないため、単純に合成するようにします。
その際、 タグで囲うことで、元のドキュメントのレイアウトを生かすように
します。
他のタグレットも、若干修正します。
fukurou.taglet.TagletRev#toString( final Tag[] tagTags )
fukurou.taglet.TagletFormSample#toString( final Tag[] tagTags )
fukurou.taglet.TagletTag#toString( final Tag[] tagTags )
AbstractTaglet.java に対して、処理中のテキストのインラインコメント {@link ・・・}
を処理できるようにメソッドを追加します。
例えば、{@link org.opengion.hayabusa.db.CellEditor CellEditor} と登録すると、
Editor
に変換します。
fukurou.taglet.AbstractTaglet#link( final String in ) 新規追加
[コメント修正]
BizLogicTag の setCommandメソッドのドキュメントを修正します。
入力可能な引数を指定するところで、自分のではなく、QueryTag の static 変数を指定していたため。
自分で指定するには、private static 変数を、public static に変更します。
hayabusa.taglib.BizLogicTag#CMD_ENTRY private static final → public static final 変更
hayabusa.taglib.BizLogicTag.java(420): * @see コマンド定数
javaDoc で警告が出ていたので、修正します。(BizLogic インターフェースが削除された件)
hayabusa.taglib.BizLogicTag.java:101 警告 - タグ @link: 参照が見つかりません: org.opengion.fukurou.business.BizLogic
BizLogic → BizLogicHelper に変更
renderer
hayabusa.taglib.ColumnEditorTag.java(544): * editor
hayabusa.taglib.ColumnEditorTag.java(561): * dbType
hayabusa.taglib.ColumnTag.java(797): * renderer
hayabusa.taglib.ColumnTag.java(814): * editor
hayabusa.taglib.ColumnTag.java(831): * dbType
hayabusa.taglib.ProcessTag.java(142): * process
hayabusa.taglib.QueryTag.java(635): * queryType
hayabusa.taglib.ReadTableTag.java(679): * readerClass
hayabusa.taglib.ReportTableTag.java(468): * reportClass
hayabusa.taglib.ViewFormTag.java(948): * viewFormType
hayabusa.taglib.WriteTableTag.java(531): * writerClass
【タグ】と、@og.tag の位置関係がおかしいコメントを修正します。
基本的には、【タグ】 と@og.tag はセットで記述します。
また、【タグ】のすぐ下に、@og.tag を記述して、コメント自体をすべて取り込むようにします。
BackGamenTag.java 、CommonForwardTag.java、CommonTagSupport.java、DBMetaDataQueryTag.java、
EntryTag.java、FileWhereTag.java、MessageTag.java、TextTag.java、TfootTag.java、ViewParamTag.java
[コメント削除]
古い API へのリンクを、削除します。
すでに、@see タグで、JavaDoc へのリンクは貼られているので、ほとんど重複状態でした。
hayabusa.taglib.FileWhereTag.java(194): * 正規表現
hayabusa.taglib.FileWhereTag.java(211): * 正規表現
[build.xml 修正]
taglet で外部指定しているので、内部の tag 指定は不要なので、コメントアウトしておきます。
以下の、javadoc タグの入れ子指定部分
これは使われていなかったので、取り合えずコメントアウト
[Abstractクラス移動]
pluginパッケージに含まれていた各種Abstractクラスをhayabusaパッケージ内に移動します。
org.opengion.plugin.column.AbstractDBType org.opengion.hayabusa.db に移動
org.opengion.plugin.column.DBTypeCheckUtil org.opengion.hayabusa.db に移動
org.opengion.plugin.column.AbstractEditor org.opengion.hayabusa.db に移動
org.opengion.plugin.column.AbstractRenderer org.opengion.hayabusa.db に移動
org.opengion.plugin.io.TableReader_Default org.opengion.hayabusa.io に移動
org.opengion.plugin.io.TableWriter_Default org.opengion.hayabusa.io に移動
org.opengion.plugin.query.AbstractQuery org.opengion.hayabusa.db に移動
org.opengion.plugin.table.AbstractTableFilter org.opengion.hayabusa.db に移動
org.opengion.plugin.view.AbstractViewForm org.opengion.hayabusa.html に移動
[Javaソース削除]
TLD に存在していないソース 2点と、JSPサンプルに使用されていないソース 1点を削除します。
SQLTag は、TLD からも削除します。
hayabusa.taglib.JFreeChartTag.java 完全廃止(javaファイル削除) / すでに、TDLに存在しません。
hayabusa.taglib.TableInOut.java 完全廃止(javaファイル削除) / すでに、TDLに存在しません。
hayabusa.taglib.SQLTag.java 廃止タグ。サンプルJSPにないため、TDL から削除します。
[ソースチェック XSLT定義修正]
廃止タグ、廃止属性の警告の関係で、定義ファイルを修正しました。
JFreeChartTag、TableInOut、SQLTag のクラス廃止
headタグの useInputFocus属性、 writeTableタグの direct 属性を警告に追加しました。
あと、画面表示で、display 属性を追加しました。
gf\jsp\DOC18\xslt\GF70_PROG.xsl
gf\jsp\DOC18\query.jsp
gf\jsp\DOC18\result.jsp
[tldファイル 整合性]
hybs-taglib.tld の指定と、各カスタムタグの設定の整合性を取ります。
以下の設定は、あくまで openGion のケースです。一般のTLDやカスタムタグの設定ルールと
異なるケースがあります。
・TLDファイルの body-content の設定
JSP :JSPとして解釈します。BODYを使う場合は、基本的に JSP です。
tagdependent :そのまま使用します。BODYを使わない場合に設定します。
Empty :BODYなしの場合の設定ですが、厳密にBODYを書いてはいけないので、基本、使いません。
・doStartTag() の戻り値
SKIP_BODY :BODY部の評価を行いません。つまり、tagdependent とセットで使用します。
EVAL_BODY_INCLUDE :BODY部の評価を行いますが、バッファしません。つまり、doAfterBody()メソッドを呼ばないケースです。
BODY に書かれた内容が、そのまま、出力されます。
EVAL_BODY_BUFFERED :BODY部の評価を行い、かつ、doAfterBody()メソッドを呼ぶ場合は、必須です。
BODY に書かれた内容は出力されません。
つまり、下記の組み合わせのみとします。
BODYなし tagdependent SKIP_BODY BODY部になにか書かれていてもなにもしない。
BODYあり JSP EVAL_BODY_INCLUDE BODY部のJSP結果がそのまま、出力されます。
BODYあり JSP EVAL_BODY_BUFFERED doAfterBody()を使用、または、BODY部の出力を明示的に制御したい場合。
※ Empty が使えなくなった今、tagdependent と JSP の違いは、BODYあり/なし を明示的に示すためだけに
設定することにします。すべてを、JSP に統一することも可能ですが、あえて区別することにします。
※ EVAL_BODY_INCLUDE と EVAL_BODY_BUFFERED の違いは、doAfterBody() で値を使用するには、必ず
EVAL_BODY_BUFFERED にしなければなりませんが、使わない場合は、BODY部に書かれた設定値を
JspWriter に渡すかどうかの判定になります。
EVAL_BODY_BUFFERED の場合は、BODY に書かれた内容は、JspWriter に渡されません。
例えば、一連の処理をBODY部で実行させる場合、その結果(例えば、エラーメッセージ等も含む)を表示させたい
場合は、EVAL_BODY_INCLUDE にしておく必要があります。
逆に、BODY部のタグが、findAncestorWithClass などで上位の親に設定値をすべて渡してしまうケースでは、
上位の親に doAfterBody() がなかったとしても、EVAL_BODY_BUFFERED として、JspWriter に出力しない
ケースもありえます。
・TLDファイルの body-content の設定
InputTag.java → JSP
DatabaseMetaDataTag.java → tagdependent
DirectXMLSaveTag.java → tagdependent
MailSenderTag2.java → tagdependent
PopupTag.java → tagdependent
RegistryQueryTag.java → tagdependent
TableMergeTag.java → tagdependent
TableUpdateParamTag.java → tagdependent
TabListTag.java → tagdependent
・doStartTag() の戻り値(処理用タグなので、BODY部の表示は出さない。)
ViewMarkerTag → EVAL_BODY_BUFFERED
ViewLinkTag → EVAL_BODY_BUFFERED
EntryTag → EVAL_BODY_BUFFERED
WEB-INF/hybs-taglib.tld
src/META-INF/hybs-taglib.tld
[Transaction 続き]
fukurou.db.DBUtil.java ほぼ、すべてのメソッドを修正、Transaction 対応メソッドを新規追加
hayabusa.taglib.QueryTag#traceQuery( final String sql , final Transaction tran )
hayabusa.taglib.TableExistTag.java 廃止タグなので、修正を行いません。
hayabusa.taglib.DataCheckTag.java#doEndTag()
hayabusa.taglib.DataCheckTag.java#checkSql( final String str, final ErrMessageManager manager, final String[] values ・・・
hayabusa.taglib.DataCheckTag.java#checkRows( final String str, final ErrMessageManager manager, final Transaction tran )
hayabusa.db.TableFilter#setApplicationInfo( ApplicationInfo appInfo ) ; 廃止
hayabusa.db.TableFilter#setTransaction( Transaction tran ) ; 新規追加
hayabusa.taglib.TableFilterTag#doEndTag()
plugin.table.AbstractTableFilter#setApplicationInfo( ApplicationInfo appInfo ) ; 廃止
plugin.table.AbstractTableFilter#setTransaction( Transaction tran ) ; 新規追加
plugin.table.TableFilter_DBSELECT#execute()
plugin.table.TableFilter_INDEX#execute()
plugin.table.TableFilter_TABLE#execute()
[DB定義DB・リソース連携改善]
DB定義DB・リソース連携機能で、差分を取る際のリソースの検索方法について、'**'も含むことができるようにします。
gf/jsp/GF2120
[JSPチェック]
データベース定義の変更
VIEW_LENGTH、MAX_LENGTH の属性情報が、標準リソースと異なるので、
ここでは別の名称に変更します。
それぞれ、_LENGTH を _SIZE にし、桁数は、20桁とします。
※ 前回分のおさらい。
ALTER TABLE GF73 MODIFY ( USE_LENGTH VARCHAR2(20) NULL) ;
ALTER TABLE GF73 RENAME COLUMN USE_LENGTH TO MAX_LENGTH;
ALTER TABLE GF73 MODIFY ( VIEW_LENGTH VARCHAR2(20) ) ;
ALTER TABLE GF73 MODIFY ( READONLY VARCHAR2(20) ) ;
ALTER TABLE GF73 MODIFY ( DISABLED VARCHAR2(20) ) ;
ALTER TABLE GF74 MODIFY ( DBID VARCHAR2(20) ) ;
※ 前回分から、さらに変更分
ALTER TABLE GF73 RENAME COLUMN VIEW_LENGTH TO VIEW_SIZE;
ALTER TABLE GF73 RENAME COLUMN MAX_LENGTH TO MAX_SIZE;
gf\jsp\DOC18\xslt\GF73_PROG.xsl
gf\jsp\DOC13\result.jsp
[spaceタグ修正]
spase タグに、width 属性、colspan 属性を追加します。
従来は、ラベル部分(前半部分)の大きさ(width 属性)を指定するための labelWidth 属性と
値部分(後半部分)の大きさ(width 属性)を指定指定するための valueWidth 属性が
ありましたが、全体の大きさを指定することができませんでした。
そこで、全体の大きさとして、width 属性を指定できるようにしました。
width 属性を指定した場合に、colspan を指定しなかった場合は、colspan="2" に強制的に
セットされます。
hayabusa.taglib.SpaceTag#release2()
hayabusa.taglib.SpaceTag#makeTag()
hayabusa.taglib.SpaceTag#setWidth( final String width ) 新規追加
hayabusa.taglib.SpaceTag#setColspan( final String colspan ) 新規追加
[selectタグ修正]
select タグに、addNoValue 属性を追加します。
この属性は、ColumnTag と、ColumnEditorTag にはありましたが、SelectTag には
ありませんでした。
(SelectTagは、option を自分で登録するため、NoValue も自分で登録できるので。)
ここでは、ColumnTag と同様の方法で、NoValue を登録できるように修正します。
(※ 初期値は、ColumnTag と異なり、false に設定します。これは、旧環境との
互換性のためです。)
hayabusa.taglib.SelectTag#doStartTag()
hayabusa.taglib.SelectTag#release2()
hayabusa.taglib.SelectTag#setAddNoValue( final String flag ) 新規追加
[andタグ修正]
and タグに、matchKey 属性、matchVal 属性を追加します。
and タグは、value 属性の中の、{@XXXX} が、null の場合、その条件を
消します。ところが、条件そのものが分岐するケースの場合、引数が、
null にならない場合や、条件違いで、検索するカラムが異なる場合など
分岐処理が発生すると、equals タグで判断する必要が出てきます。
SQL文のWHERE条件が、あまり複雑になると、見通しの悪いプログラムに
なってしまいます。
そこで、この and タグを利用する/しない の判断に、matchKey 、matchVal
属性を使えるように機能追加します。
これは、Java の String クラスの、正規表現メソッドを利用して、
matchKey.matches( matchVal ) が、true の場合のみ、and タグを使用するように
します。ただし、matchKey 、matchVal どちらかが null の場合は、
判定が無効ということで、true (利用する)とします。
hayabusa.taglib.SqlAndTag#release2()
hayabusa.taglib.SqlAndTag#doEndTag()
hayabusa.taglib.SqlAndTag#setMatchKey( final String mkey )
hayabusa.taglib.SqlAndTag#setMatchVal( final String mval )
[コードリソースのサブセット対応]
コードリソースは、予め決められたプルダウンを作成するための情報を
持っていますが、それは、動的には変えることができません。
(DBMENUは、Select文の引数次第で条件を変えることができます。)
例えば、管理者と一般担当者で、選択できる項目が異なると、従来は、
2種類のコードリソースを用意しておく必要がありました。
また、進捗や状況、パターンに応じて、サブセットを用意したいケースが
あったと思います。
ここでは、codeList 属性を追加することにより、ここに、コードリソースの
コード値のサブセット(選択範囲)をカンマ区切りで指定することで、
指定のサブセットのみのコードリソースを再作成する機能を用意します。
hayabusa.resource.CodeData#subset( final String codeCsv )
hayabusa.resource.CodeData#subsetList( final String codeCsv ) 新規追加
hayabusa.resource.CodeData#subsetGroup( final String group ) 新規追加
hayabusa.resource.CodeData#subsetRole( final RoleMode role ) 新規追加
hayabusa.taglib.ColumnTag#release2()
hayabusa.taglib.ColumnTag#setCodeList( final String list )
hayabusa.taglib.ColumnTag#setCodeGroup( final String list )
hayabusa.taglib.ColumnTag#getInsertTag( final DBColumn clm, final String value )
hayabusa.taglib.ColumnEditorTag#release2()
hayabusa.taglib.ColumnEditorTag#setCodeList( final String list )
hayabusa.taglib.ColumnEditorTag#getModifyConfig( final DBColumn dbColumn )
[tldファイルの修正]
spaceタグの、width 属性、colspan 属性
selectタグの、addNoValue 属性
andタグの、matchKey 属性、matchVal 属性
columnタグの、codeList 属性、codeGroup 属性
columnEditorタグの、codeList 属性、codeGroup 属性
Transactionタグ
これらの属性追加に伴う、hybs-taglib.tld ファイルの更新を行います。
WEB-INF/hybs-taglib.tld
src/META-INF/hybs-taglib.tld
[コードリソースの階層メニュー対応]
Selection_DB には実装されている、optgroup (階層メニュー)を、Selection_CODE にも入れます。
CodeData 、CodeDataLoader 上には、CODELVL などの階層メニューを作成するための
属性は取得しているが、Selection_CODE で利用していません。
データベースから直接取得する、Selection_DB では対応済みです。
ここでは、Selection_CODE にも階層メニューを作成機能を実装します。
hayabusa.resource.CodeData# CodeData( final String clm, final Map data )
hayabusa.resource.CodeData#useGroup() 新規追加
hayabusa.resource.CodeData#useParam() 新規追加
hayabusa.resource.CodeData#getCodeGroup( final int seqNo,final String group ) 廃止
hayabusa.resource.CodeData#isUse( final int seqNo ) 新規追加
hayabusa.resource.CodeData#useRoleMode() 新規追加
hayabusa.db.Selection_CODE#Selection_CODE( final CodeData cdData )
hayabusa.resource.CodeDataLoader#QUERY = "select CLM,CODE,
hayabusa.resource.CodeDataLoader#QUERY2 = "select CLM,CODE,
[秀丸エディタ 単語補完機能対応]
秀丸エディタの 単語補完機能が、秀丸 Ver7 以降で利用可能になっています。
これを受けて、jsp.hokan.txt ファイルを作成します。
なお、これを、秀丸の実行フォルダにコピーし、ファイルタイプ別の単語補完設定を行います。
※ このファイルを利用するに当たり、以下の設定も追記しておいてください。
・[その他]→[ファイルタイプ別の設定]→[その他・単語補完]の単語補完の検索対象で、
辞書ファイルとして、この、jsp.hokan.txt ファイルを登録します。
ファイルタイプは、.jsp にしておきます。
・辞書ファイルの詳細ボタンで、右下 「さらに」ボタンをクリックします。
・単語の先頭文字:<
・単語の途中文字:: ="|
という設定をしておく必要があります。
その他の設定は、お好みで、お願いします。
build.xml
src/xslt/jspHokan.xsl
[JavaDoc の整合性チェック機能追加]
fukurou.taglet.DocletSpecific
build.xml
_build.bat
[タグリブのトランザクション対応]
通常のタグでは、コネクションプールより、その時々のコネクションを取り出して利用するため、
タグごとに異なるコネクションで処理されます。
また、commit や rollback などもそれぞれのタグで行われるため、連続処理時にエラーが
発生しても、中途半端な状態になります。
ここでは、各 DBID 単位にコネクションを共有し、このタグの間は、同じオブジェクトを
commit や、rollback せずに使いまわすようにします。
これにより、複数タグ間のトランザクションや、異なる DBID 間のトランザクションを
実現します。
fukurou.db.Transaction 新規追加
fukurou.db.TransactionReal 新規追加
fukurou.db.TransactionImpl 新規追加
hayabusa.db.Query#setTransaction( final Transaction tran ) ;
hayabusa.db.DBTableModelUtil#makeDBTable( final String stmt ,final String[] args ,
hayabusa.common.HybsSystem#TRANSACTION_KEY = "h_tran"; セッションにセーブするキー
plugin.query.AbstractQuery#init()
plugin.query.AbstractQuery#commit()
plugin.query.AbstractQuery#rollback()
plugin.query.AbstractQuery#close()
plugin.query.AbstractQuery#realClose()
plugin.query.AbstractQuery#getConnection()
plugin.query.AbstractQuery#setTransaction( final Transaction tran )
hayabusa.taglib.TransactionTag 新規追加
hayabusa.taglib.QueryTag#doAfterBody()
hayabusa.taglib.DirectTableInsertTag#create( final BufferedReader reader )
hayabusa.taglib.DirectWriteTableTag#create( final PrintWriter out )
hayabusa.taglib.DirectXMLSaveTag#doEndTag()
hayabusa.taglib.BizLogicTag#
hayabusa.taglib.BizLogicTag#release2()
hayabusa.taglib.BizLogicTag#execute()
hayabusa.taglib.BizLogicTag#call( final BizLogic logic )
hayabusa.taglib.QueryOptionTag#doAfterBody()
hayabusa.taglib.UserInfoTag#doAfterBody()
hayabusa.taglib.ValueTag#doAfterBody()
[ConnData,ConnDataFactory の廃止(Deprecated)]
fukurou専用のコネクション管理クラスでしたが、
現在は、ConnectionFactory.java と DBConfig.xml が使用できますので、
廃止します。(Deprecated)
fukurou.process.ConnData
fukurou.process.ConnDataFactory
[JSPチェック]
JSPファイルをUTF-8 でセーブする場合、BOM が付与されてしまうケースがありますが、
BOMが付くと、XSLT 変換できないケースがあります。
セーブするときに、BOM マーカーをOFF(つけない)します。
gf\jsp\GF6170\entry.jsp
gf\jsp\GF6170\result.jsp
gf\jsp\GF6170\undo.jsp
gf\jsp\GF6170\update.jsp
gf\jsp\GF9130\entry.jsp
gf\jsp\GF9130\result.jsp
gf\jsp\GF9130\undo.jsp
gf\jsp\GF9130\update.jsp
gf\jsp\GF9140\entry.jsp
gf\jsp\GF9230\entry.jsp
gf\jsp\GF9230\result.jsp
gf\jsp\GF9230\update.jsp
gf\jsp\GF9430\entry.jsp
gf\jsp\GF9430\result.jsp
gf\jsp\GF9500\result.jsp
gf\jsp\GF9540\result.jsp
gf\jsp\GF9610\entry.jsp
gf\jsp\GF9620\entry.jsp
JSPソースチェックの XSLT と、実データベースの整合性が取れていなかったため、
XSLT の修正と、DB定義の変更を行います。
以前のDB定義見直し時の対応漏れ(Ver5 専用設計とします)
(TEXT → TEXT_DATA)
jsp\DOC18\xslt\GF70_PROG.xsl
jsp\DOC18\xslt\GF73_PROG.xsl
(KEYS → P_KEYS)
(VALS → P_VALS)
gf\jsp\DOC18\xslt\GF71_PROG.xsl
gf\jsp\DOC18\xslt\GF72_PROG.xsl
(NAME → FORM_NAME)
(VALUE → FORM_VAL)
gf\jsp\DOC18\xslt\GF73_PROG.xsl
(GF73 DB定義)
gf\jsp\DOC13\result.jsp
db\oracle\sql\01_TABLE\GF73S.sql
db\oracle\xml\install\01_TABLE\GF73S.xml
ALTER TABLE GF73 MODIFY ( USE_LENGTH VARCHAR2(20) NULL) ;
ALTER TABLE GF73 RENAME COLUMN USE_LENGTH TO MAX_LENGTH;
USE_LENGTH VARCHAR2(9) DEFAULT 0 NOT NULL /* 150 使用桁数 */
↓
MAX_LENGTH VARCHAR2(20) /* 150 使用桁数 */
ALTER TABLE GF73 MODIFY ( VIEW_LENGTH VARCHAR2(20) ) ;
ALTER TABLE GF73 MODIFY ( READONLY VARCHAR2(20) ) ;
ALTER TABLE GF73 MODIFY ( DISABLED VARCHAR2(20) ) ;
VIEW_LENGTH , READONLY , DISABLED
VARCHAR2(10) → VARCHAR2(20)
(NAMES → CLMS)
(QUERYTYPE → SQL_TYPE)
(SCOPE → JSP_SCOPE)
(QUERY → SQL_TEXT)
gf\jsp\DOC18\xslt\GF74_PROG.xsl
(GF74 DB定義)
db\oracle\sql\01_TABLE\GF74S.sql
db\oracle\xml\install\01_TABLE\GF74S.xml
ALTER TABLE GF74 MODIFY ( DBID VARCHAR2(20) ) ;
DBID VARCHAR2(10) /* 90 データベースID */
↓
DBID VARCHAR2(20) /* 90 データベースID */
(VERSION → VERNO)
gf\jsp\DOC18\xslt\GF76_PROG.xsl
(NAME → NAME_JA)
gf\jsp\DOC18\xslt\GF79_PROG.xsl
JSPチェックの新しい警告を追加します。
match="og:view" の WARNING21A、WARNING21B、WARNING21C、WARNING21D
jsp\DOC18\xslt\GF70_PROG.xsl
jsp\DOC18\xslt\GF7X_PROG.xsl 削除
gf\jsp\DOC18\query.jsp
[DBConfig.xml編集機能追加]
DBConfig.xmlを画面から編集するための機能を追加します。
編集は、管理メニューの「接続先編集」から行います。
jsp/common/gamen/05_DBCONFIG 追加
hybs-taglib.tld
org.opengion.fukurou.db.DatabaseConfig.DBID_INFO_KEYS
org.opengion.fukurou.db.DatabaseConfig.DBDRIVER_CLASS_KEY
org.opengion.fukurou.db.DatabaseConfig.init()
org.opengion.fukurou.db.DatabaseConfig.reload()
org.opengion.fukurou.db.DatabaseConfig.getDbidMap(Element, EDbid)
org.opengion.fukurou.db.DatabaseConfig.getDbidInfoKeys()
org.opengion.fukurou.db.DatabaseConfig.getDbidInfo()
org.opengion.fukurou.db.DatabaseConfig.setDbidInfo(String[][])
org.opengion.fukurou.db.DatabaseConfig.getDriverList()
org.opengion.fukurou.db.DatabaseConfig.getDriverList(Element)
org.opengion.fukurou.db.DatabaseConfig.setDriverList(String[])
org.opengion.fukurou.xml.DomParser.write(File, Document)
org.opengion.hayabusa.taglib.DataCheckTag.setSelectedAll(String)
org.opengion.hayabusa.taglib.DataCheckTag.getParameterRows()
org.opengion.hayabusa.taglib.DataCheckTag.release2()
[Java業務ロジック改善]
Java業務ロジックを実装しているorg.opengion.fukurou.businessパッケージで、タブリブなど外部クラスから
情報をセットするためのメソッドと、業務ロジック内で使用する各種Utilメソッドを分離し、業務ロジックの
各実装クラスから、不要なメソッドが見えないように改善します。
org.opengion.fukurou.business.BizLogicHelper
org.opengion.fukurou.business.BizLogic 削除
org.opengion.fukurou.business.AbstractBizLogic
org.opengion.fukurou.business.BizLogic_ENTRY
org.opengion.fukurou.business.BizLogic_TABLE
org.opengion.fukurou.business.BizLogic_CURSOR
org.opengion.hayabusa.taglib.BizLogicTag.execute()
org.opengion.hayabusa.taglib.BizLogicTag.call(String)
[fileタグ改善]
fileタグでファイルを読み込み(action="READ")する際のエンコードを指定できるようにします。
エンコードを指定しない場合は、過去との互換性を考慮し、OS依存の文字コードでファイルを読み込みます。
hybs-taglib.tld
org.opengion.hayabusa.taglib.FileTag.release2()
org.opengion.hayabusa.taglib.FileTag.actionExec(String)
org.opengion.hayabusa.taglib.FileTag.setEncode(String)
[メール送信・改善]
メール送信時のパラメータとして、mail.smtp.localhostの設定を追加します。
これは、openGionとSTMPが同一サーバーで動作している場合、メールサーバーの設定によっては、
"501 Syntax: HELO hostname"というエラーメッセージが返される場合があります。
これに対応するため、localhost接続時にも、ドメイン名つきのホスト名が適用されるように上記の
設定を追加します。
org.opengion.fukurou.mail.MailTX.MailTX(String, String)
[文字種別追加(KCL)]
全角+改行のみを許可する文字種別として"KCL"を追加します。
これは、全角のみ(K)をベースとして、改行C(CR+LF)を許可する文字として追加したものになります。
org.opengion.plugin.column.DBType_KCL
[readTableタグ・自動読み取り機能のバグ修正]
readTableでreaderClassを"AUTO"(自動読み取り)にした場合に、Excel以外の読み取りが正しく処理できない
バグを修正します。
org.opengion.hayabusa.taglib.ReadTableTag.doEndTag()
[リソース登録画面・改善]
画面リソース登録画面(カラム、コード、ラベル)で、同じ画面ID、アドレスで複数のデータを登録した場合に、
画面上1件しか表示されないバグを修正します。
従来は、異なる作成区分で同じ画面IDのデータについて、もっとも上位の作成区分のデータのみを表示させるため、
画面ID+アドレスでグループ化して表示していましたが、画面リソースの構造上、画面ID、アドレス、作成区分が
同じデータでもロール違いで登録できるため、今回の対応では、グループ表示そのものを廃止しています。
ge/jsp/GE0002/result.jsp
[ヘッダー固定不具合修正]
画面遷移なし登録で、選択形式をラジオボタンや非選択形式にする、またはカスタムテーブルを使用した場合に、
行を変更する度に、行の幅が広がってしまうバグを修正します。これは、5.1.4.0 (2010/03/01)の以下の修正と
関連して、ヘッダーとデータ部の構造が異なる際に、ヘッダー部にコピーされる1行目のデータ部のtdのpaddingが
0pxに設定されていないために起こります。今回の対応では、ヘッダー、データ部ともに左右のpaddingについては、
明示的に0pxを指定するようにします。
---------------------------------------------------------------------------------------------------
[画面遷移なし登録・バグ修正]
画面遷移なし登録で、viewFormTypeにHTMLCutomTableや、HTMLFormatTable等を使用している場合に、
変更ボタン等を押すごとに、各項目の幅が少しずつ広がってしまうバグを修正します。
これは、IEのCSS実装のバグで、IEでは、THタグのpaddingが0より大きい場合は、width属性の指定値と、
その結果で表示されるサイズが異なってしまう問題があります。
(但し、この場合でも、colgroupが指定されている場合(HTMLTableの場合)は、正しい値が返ります)
今回の対応としては、ヘッダー固定時のTHタグのpaddingを0にします。
(実際は、データ項目よりヘッダーの方が幅があるということは、レアケースであるため、影響はないと
判断しています)
jsp/common/scrollBar2.js
jsp/common/scrollBar2.css
---------------------------------------------------------------------------------------------------
jsp/common/scrollBar2.css
[eventColumnバグ修正]
5.1.8.0 (2010/07/01) の 以下の改善で、動的入替え(eventColumn)が動作しなくなっていた問題に対応します。
----------------------------------------------------------------------------------------------------
[DBColumnConfig 改善]
DBColumnConfig ⇔ DBColumn 間の相互データ更新で、すべての内容をコピーしていなかったため、
再作成すると属性が抜けてしまっていた。
必要な属性を設定するように修正。
今回は、DBColumnConfig の コンストラクタの修正は行っていませんので、セッターメソッドで
データを設定しています。
org.opengion.hayabusa.db.DBColumnConfig#setRawEditParameter( final String param )
org.opengion.hayabusa.db.DBColumnConfig#setRawRendParameter( final String param )
org.opengion.hayabusa.db.DBColumn#getConfig()
----------------------------------------------------------------------------------------------------
jsp/common/eventColumn.jsp
org.opengion.hayabusa.db.DBColumnConfig
org.opengion.hayabusa.db.DBEventColumn
org.opengion.hayabusa.taglib.SelectTag
[DB定義DB・リソース連携バグ修正]
DB定義DBのリソース連携機能で、属性差分更新時に、ラベルリソースが更新されず、新規に追加されてしまう
バグを修正します。
gf/jsp/GF2120/GFM0010.jsp,GFM0011.jsp
[リソース登録画面・改善]
リソース登録画面(カラム、コード、ラベル)で、カラムを検索条件に指定しない状態で、登録を行うと、
再検索時に、登録したデータしか表示されない不具合を修正します。
ge/jsp/GE0003/entry.jsp
ge/jsp/GE0004/entry.jsp
ge/jsp/GE0005/entry.jsp
ge/jsp/REP03/entry.jsp
[dataCheckタグ改善]
dataCheckタグで、エラーが発生した際、エラー表示の前後に処理・表示を行うJSPをincludeできる機能を追加します。
通常、entry.jspでdataCheckを行う場合は、entry.jsp内で/jsp/common/history_back.jspをincludeしているため、
別途戻るボタンなどのJSPをincludeする必要はありません。
しかし、update.jspでエラーチェックを行った場合は、エラー発生時のみ、戻るボタンを表示する必要があります。
このような場合に対応するため、エラー発生時のみ、処理を行うことが出来る機能を追加します。
hybs-taglib.tld
org.opengion.hayabusa.taglib.DataCheckTag.doEndTag()
org.opengion.hayabusa.taglib.DataCheckTag.includeJsp(String)
org.opengion.hayabusa.taglib.DataCheckTag.release2()
org.opengion.hayabusa.taglib.DataCheckTag.setBeforeErrorJsp(String)
org.opengion.hayabusa.taglib.DataCheckTag.setAfterErrorJsp(String)
jsp/common/history_back.jsp
[columnCheckタグ改善]
columnCheckタグで、ラジオボタンなど、同じ名前で複数の要素を持つ項目に対して、必須チェックを自動行った場合、
エラーメッセージが要素数分出力されてしまう問題に対応します。
org.opengion.hayabusa.taglib.ColumnCheckTag.makeErrorMessage(ErrorMessage)
[Java業務ロジック改善]
パラメーターを設定する際、int型、double型でもString.ValueOf()を行うことなく、直接登録できるように
します。但し、内部的には、String.ValueOf()を呼び出して、String型で管理していますので、値を取り出す際は、
vari(),vard()等、戻り値の型に対応したメソッドを呼び出す必要があります。
org.opengion.fukurou.business.AbstractBizLogic.set(String, int)
org.opengion.fukurou.business.AbstractBizLogic.set(String, double)
[各種修正(ドキュメント関係)]
JavaDoc関係のワーニングや、設定漏れなど、繻子瑛しました。
詳細は、5.1.9.0_refactoring.txt に記述しておきます。
・@og.tag は、taglib 専用のタグ説明用の キーワードです。
・【TAG】は、タグリブ用のキーワードです。
・Javadoc で、パッケージ 説明のHTML(package.html)を追加します。
・@Deprecated の説明(コメント)追加
・public 定数のJavaDocコメント追加
・public定数 ⇒ private定数に変更
・そものも、定数自体を廃止
・protected 定数のJavaDocコメント追加
・@param の記述が不足しているものに、追記しました。
・@return の記述が不足しているものに、追記しました。
[自動インストール対応]
画面からシステムのインストールを行うことの出来る機能を追加します。
インストールは、管理メニューの「システムインストール」の画面から行います。
インストール方法の詳細(インストールアーカイブの形式)は、sysInstallタグのタブリブドキュメントを
参照して下さい。
hybs-taglib.tld sysInstallタグ追加
jsp/common/gamen/06_INSTALL
org.opengion.hayabusa.common.SystemInstaller
org.opengion.hayabusa.common.SystemParameter.loadDBResource(Map)
org.opengion.hayabusa.taglib.SysInstallTag
5.1.8.0 (2010/07/01)
[PostgreSQL対応]
openGionでは、select文の結果から、DBTableModelの作成や各種パラメーターへのセットする際は、select文の
項目名を全て大文字化して、管理しています。
これは、元々のベースであるOracleが項目名を全て大文字で管理しているからです。
一方、PostgreSQLでは、項目名は、基本的に全て小文字として扱われます。これはselect文発行時に、項目名に別名を
つけた場合でも同様で、結果として返される項目名は、全て小文字になります。
しかしながら、一部のロジックにおいて、大文字化が不十分であったため、今回はその対応を行っています。
org.opengion.hayabusa.io.HybsJDBCCategoryDataset.innerQuery(Connection, String)
org.opengion.fukurou.business.AbstractBizLogic.execSQL(String, int, ArrayTableModel)
[Java業務ロジック・バグ修正]
引数のチェック不備により、NullPointerExceptionが発生するバグを修正します。
org.opengion.fukurou.business.AbstractBizLogic.replaceParam(String, int, ArrayTableModel)
[ファイル入力(Calc)・バグ修正]
Calcからのファイル読み込みで、セル内に書式設定がされている場合に、内容が正しく読み取れないバグを修正します。
org.opengion.plugin.io.TableReader_Calc.DomOdsParser.processRow(Element, int)
[ReadTableタグ・自動読み取り改善]
ReadTableタグの自動読み取り機能で、Calcも自動読み取りの対象とします。
なお、読み取りの優先順は、Excel、Calc、Text(UnicodeLittle)、Text(Windows-31J)です。
org.opengion.hayabusa.taglib.ReadTableTag.doEndTag()
[直列化復元]
直列化復元の際に設定されないtransientフィールドがあります。
readObject メソッド中で、初期化する必要があります。
writeObject 、readObject メソッドを新規に追加します。
hayabusa.servlet.TestCometServlet#writeObject( final ObjectOutputStream strm ) throws IOException {
hayabusa.servlet.TestCometServlet#readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
初期化漏れの対応
変数 tabData の初期化が行われていなかったため、処理を追加します。
hayabusa.taglib.TabLinkTag#readObject( final ObjectInputStream strm ) throws IOException, ClassNotFoundException {
[Exception キャッチ]
Exceptionが発生しないのにExceptionをキャッチしています。正式なExceptionをキャッチするように対応します。
ここでは、IOException と、InvalidFormatException をキャッチします。
plugin.io.TableReader_Excel#readDBTable() {
[ユーザーリソース登録画面・改善]
ユーザーリソース登録画面で、初期ログインFG='0'(初期)のデータが2件登録できないようにチェックをを行います。
これは、2件存在する場合、どちらのロールでログイン処理が行われるかが判別できなくなるためです。
ge/jsp/GE0001/entry.jsp
[3色ボタン・改善]
フレームを拡大・縮小するための3色ボタンについて、マトリクスメニューから各画面を表示した際に、
メニューの縮小ボタンを押すと、フレームサイズが不正になり、画面が表示されなくなるバグを修正します。
jsp/common/toggleFrame.js
[ユーザーIDの大文字・小文字区別化]
userInfoの作成で、従来は、ログインIDを全て大文字として扱っていましたが、これを大文字・小文字を区別
して処理するように変更します。
org.opengion.hayabusa.taglib.HeadTag.sessionInit()
[Java業務ロジック・改善]
テーブル系の処理を行うためのJava業務ロジック(BizLogic_TABLE)で、#first()、#last()を
行ループの中で呼び出しするように変更します。
org.opengion.fukurou.business.BizLogic_TABLE.main()
[lint , pmd , findbugs などのチェック]
各種バグ発見ツールによるチェックを行いました。
メソッドの置換え、変数名修正、不要 import 削除など。
・META-INF/hybs-taglib.tld 属性削除(andのandVals、jspInitのdebug、reportのencode)
詳細は、5.1.8.0_refactoring.txt を参照願います。
[enum NativeType 機能追加]
指定の文字列のNativeType の判定処理を行うメソッドを、enum NativeType クラスに追加しました。
これにより、従来より、StringUtil.getNativeType( String ) で行われていた判定処理を、
NativeType.getType( String ) 処理に置き換えます。
fukurou.model.NativeType#getType( final String str ) 新規追加
fukurou.util.getNativeType( final String str ) 廃止
fukurou.business.ArrayTableModel#getNativeType( final int clm )
fukurou.model.ArrayDataModel#getNativeType( final int clm )
fukurou.process.LineModel#getNativeType( final int clm )
hayabusa.report2.OdsContentParser#getNativeType( final String key, final String val )
[ViewFormTag 修正]
ViewFormTag で、同時設定の不可属性のチェック方法を、各メソッドから、doStartTag() の
最初に移動します。
同時設定属性 = (columnWritable,noWritable,columnDisplay,noDisplay,columnGroup,noGroup)
以前は、属性へのセットの順番が不明なため、チェックロジックが複雑 かつ 間違いがありました。
すべて受け取ってから、判断するようにすると、簡単になります。
org.opengion.hayabusa.taglib.ViewFormTag#doStartTag()
org.opengion.hayabusa.taglib.ViewFormTag#setColumnWritable( final String columnName )
org.opengion.hayabusa.taglib.ViewFormTag#setNoWritable( final String columnName )
org.opengion.hayabusa.taglib.ViewFormTag#setColumnDisplay( final String columnName )
org.opengion.hayabusa.taglib.ViewFormTag#setNoDisplay( final String columnName )
org.opengion.hayabusa.taglib.ViewFormTag#setColumnGroup( final String group )
org.opengion.hayabusa.taglib.ViewFormTag#setNoGroup( final String group )
[ヘッダー固定・バグ修正]
左右分割でヘッダー固定を使用した際に、画面遷移時に左右位置の表示位置が異なるバグを修正します。
jsp/common/scrollBar2.js
[選択行スクロール・バグ修正]
5.1.1.1 (2009/12/02)の以下の修正の影響で、ある画面から行を選択し、ヘッダー固定を行わない画面に
対して、遷移した場合にJavaScriptのエラーが出る不具合を修正します。
---------------------------------------------------------------------------------------------
5.1.1.1 (2009/12/02)
[選択行スクロール・バグ修正]
行選択後、画面遷移した際に、選択行に自動的に遷移する機能で、ヘッダーラベルに改行が
含まれている場合に、入力行が隠れてしまう(スクロールし過ぎてしまう)バグを修正します。
このバグを修正するため、スクロールする際の基準となる行を、既存の「選択行の1つ前」から
「選択行自身」に変更します。
jsp/common/default.js#focus2()
org.opengion.plugin.view.AbstractViewForm.isFirstChecked(int)
---------------------------------------------------------------------------------------------
jsp/common/default.js
[Viewタグ・バグ修正]
5.1.7.0 (2010/06/01)の以下の改善によりviewFormType="HTMLCustomData"等で、不要なdivタグが
出力されてしまう不具合に対応します。
対応としては、画面遷移なし登録の場合に限って、divタグを必ず出力するようにし、それ以外の場合は、
従来通り(useHilightRow="false"でdivも出力しない)とします。
--------------------------------------------------------------------------------------------
[画面遷移なし登録・バグ修正]
画面遷移なし登録で、行が1件もない状態で追加ボタンを押した際、update.jspのviewの設定で、
useHilightRowがfalseになっていると正しく行が表示されないバグを修正します。
これは、update.jspから返されるHTMLをresult.jspに挿入する際に、「div onclick="hilightRow」
という文字列でマッチさせていたためですが、useHilightRowをoffにすると、このdivが出力されない
ために、マッチせず、データが表示されていませんでした。
今回の対応では、useHilightRowでも、元の文字
例えば、バックカラーに色を付ける、文字を薄い灰色にする、などできます。
ただし、データ量が圧倒的に増えるため、大量のデータ等で使用するのは避けたほうが良いと思います。
この修正にあわせて、noGroup (まとめないカラム名を指定する)方法を追加しました。
columnGroup との同時使用は出来ません。
org.opengion.hayabusa.html.ViewForm#setNoGroup( final String group ) 新規追加
org.opengion.hayabusa.html.ViewForm#setGroupClass( final String grpCls ) 新規追加
org.opengion.plugin.view.AbstractViewForm#clear()
org.opengion.plugin.view.AbstractViewForm#setNoGroup( final String group ) 新規追加
org.opengion.plugin.view.AbstractViewForm#setGroupClass( final String grpCls ) 新規追加
org.opengion.plugin.view.AbstractViewForm#enum CLM_GRP { KIGO , CHAR };
org.opengion.plugin.view.AbstractViewForm#getRendererValue( final int row,final int column , final String inVal )
org.opengion.hayabusa.taglib.ViewFormTag#release2()
org.opengion.hayabusa.taglib.ViewFormTag#doEndTag()
org.opengion.hayabusa.taglib.ViewFormTag#setColumnWritable( final String columnName ) 実装修正
org.opengion.hayabusa.taglib.ViewFormTag#setNoWritable( final String columnName ) 実装修正
org.opengion.hayabusa.taglib.ViewFormTag#setColumnGroup( final String group ) 実装修正
org.opengion.hayabusa.taglib.ViewFormTag#setNoGroup( final String group ) 新規追加
org.opengion.hayabusa.taglib.ViewFormTag#setGroupClass( final String grpCls ) 新規追加
gf/jsp/DOC02/result.jsp サンプル
hybs-taglib.tld 追加(noGroup,groupClass)
上記の修正に便乗して、boolean 配列への初期値設定の方法を、一つのメソッドに統一しました。
org.opengion.plugin.view.AbstractViewForm#setBooleanArray( final String clsm , final boolean def , final boolean[] arrays )
org.opengion.plugin.view.AbstractViewForm#setColumnWritable( final String columnName )
org.opengion.plugin.view.AbstractViewForm#setNoWritable( final String columnName )
org.opengion.plugin.view.AbstractViewForm#setColumnDisplay( final String columnName )
org.opengion.plugin.view.AbstractViewForm#setNoDisplay( final String columnName )
org.opengion.plugin.view.AbstractViewForm#setColumnGroup( final String group )
org.opengion.plugin.view.AbstractViewForm#setNoGroup( final String group )
org.opengion.plugin.view.AbstractViewForm#setTableSorterKeys( final String columnName )
org.opengion.plugin.view.AbstractViewForm#setWritableControl( final String wrtCtrl )
Viewの行単位のゼブラ処理で、TR(テーブル要素の行指定) に class 属性を付与できるようにします。
これは、bgColorClsClm で指定のカラムの値を、各行の class 要素として出力します。
このとき、ヘッダー固定のJavaScriptの関係で、クラス名は、"row_XX" 形式にする必要があります。
(同時に、それに対応するように、JavaScript本体も修正します。
org.opengion.hayabusa.taglib.ViewFormTag#doEndTag()
org.opengion.hayabusa.taglib.ViewFormTag#release2()
org.opengion.hayabusa.taglib.ViewFormTag#setBgColorClsClm( final String clsClm ) 新規追加
org.opengion.hayabusa.html.ViewForm#setBgColorClsClm( final String clsClm ) 新規追加
org.opengion.plugin.view.AbstractViewForm#setBgColorClsClm( final String clsClm ) 新規追加
org.opengion.plugin.view.AbstractViewForm#getBgColorCycleClass( final int row ) 修正
ge/jsp/common/option/jqog.js row_0,row_1 ・・・ をrow_ だけ見るように修正
gf/jsp/common/option/jqog.js row_0,row_1 ・・・ をrow_ だけ見るように修正
gf/jsp/DOC02/result.jsp サンプル
hybs-taglib.tld 追加(bgColorClsClm)
[ValueTag 改善]
value が NULL の時に、設定するかどうか(true/false)を指定する、nullSet 属性を廃止します。
内部ロジックを削除し、インターフェースは、互換性のために残します。
ただし、早期にメソッドそのものも廃止される可能性がありますので、Ver5 のJSP移行時に、
属性の削除をお願いします。
org.opengion.hayabusa.taglib.ValueTag#doStartTag()
org.opengion.hayabusa.taglib.ValueTag#release2()
org.opengion.hayabusa.taglib.ValueTag#setAttribute( final String key,final String value,final String action )
org.opengion.hayabusa.taglib.ValueTag#setSQLAttribute( final DBTableModel table )
org.opengion.hayabusa.taglib.ValueTag#setNullSet( final String flag ) 廃止(論理的)
org.opengion.hayabusa.taglib.ValueTag#toString()
org.opengion.hayabusa.taglib.CommonTagSupport#release2()
org.opengion.hayabusa.taglib.CommonTagSupport#getRequestValue( final String key, final boolean xssCheckFlg )
org.opengion.hayabusa.taglib.CommonTagSupport#setUseValue( final boolean flag ) 廃止
gf/jsp/
common\eventColumnMaker.jsp(45):
common\fileDownload.jsp(102):
common\gamen\12_GUIMAKEGUI\selectTable.jsp(19):
common\gamen\12_GUIMAKEGUI\selectTable.jsp(27):
DOC04\query.jsp(26):
ge/jsp/
common\eventColumnMaker.jsp(45):
common\fileDownload.jsp(102):
common\gamen\12_GUIMAKEGUI\selectTable.jsp(19):
common\gamen\12_GUIMAKEGUI\selectTable.jsp(27):
[XML関連クラス 追加]
JSP画面のXMLパースの基本クラスとして、JspSaxParser.java および、関連クラスを追加します。
これは、SAXParser を利用した、独自のOGNode/OGElement オブジェクトを取得する、ユーティリティークラスです。
DOM で構築した Element では、属性の並び順が保障されません。
そこで、独自に、OGElement をSAXパーサーから作成することで、簡易的に DOM 的なオブジェクトを作成しています。
これは、XML パース用に用意したというより、JSP をパーすするために今後も拡張していきます。
JSPをパースする目的は、JSP画面 ⇒ 仕様書DB ⇒ JSP画面 というサイクルを設けて、画面の自動作成への流れを
作ることにあります。
org.opengion.fukurou.xml.JspSaxParser.java 新規作成
org.opengion.fukurou.xml.OGAttributes.java 新規作成
org.opengion.fukurou.xml.OGDocument.java 新規作成
org.opengion.fukurou.xml.OGElement.java 新規作成
org.opengion.fukurou.xml.OGNode.java 新規作成
org.opengion.fukurou.xml.OGNodeType.java 新規作成
[GUESTユーザー対応]
ユーザー認証が行われないページにおいて、GUESTユーザーとしてログインできる機能を追加します。
この機能については、既に実装されていましたが、利用するには、headタグでuseGuest="true"を個別に指定する
という設計思想でしたが、現状の実装では、この属性をJSP上で設定しても、反映されません。
(つまり、GUESTユーザー機能が有効にならない)
今回の対応では、useGuest="true"を指定しない場合でもGUESTユーザーが有効になるようにします。
但し、この場合でも、実際にGUESTユーザーを利用するには、ユーザーリソースにGUESTユーザーを別途意図的に
登録する必要があります。
org.opengion.hayabusa.taglib.HeadTag.sessionInit()
[Java業務ロジック・改善]
@bizLogicタグでvalsを指定する際、同じキーで複数のパラメーターが存在した場合に、値を連結する機能を
追加します。これを利用するには、bizLogicタグでmulti="true"を指定する必要があります。
AbizLogicタグでkeysだけを指定してvalsを指定しない場合に、Keysで指定された項目名に対応するパラメーターを
自動的に取得し、Valsとして使用するようにします。
Blineメソッドで存在しないカラムを指定した場合に、NullPointerExceptionが発生するバグを修正します。
Cパラメーターのキー一覧、テーブルのキー一覧を返すメソッドを追加します。
Dbizの配下にあるclassファイルも自動コンパイルのクラスパスとして追加します。
hybs-taglib.tld
org.opengion.fukurou.business.AbstractBizLogic.line(String, int)
org.opengion.fukurou.business.AbstractBizLogic.lineKeys()
org.opengion.fukurou.business.AbstractBizLogic.varKeys()
org.opengion.hayabusa.taglib.BizLogicTag.setMulti(String)
org.opengion.hayabusa.taglib.BizLogicTag.release2()
org.opengion.hayabusa.taglib.BizLogicTag.setVals(String)
org.opengion.hayabusa.taglib.BizLogicTag.makeVals()
org.opengion.hayabusa.taglib.BizLogicTag.doEndTag()
[Java業務ロジック・バグ修正]
@fukurou.jarが読み込まれず、自動コンパイルが正常に動作しないバグを修正します。
AソースコードのエンコーディングがOS依存になっていましたが、これをUTF-8固定にします。
org.opengion.hayabusa.taglib.BizLogicTag
org.opengion.fukurou.util.HybsLoader.compileClass(String)
[表示種別追加・複数件QUERY型]
表示種別として、「複数件QUERY型」を新規に追加します。
この表示種別では、単一データを取得するQUERY型と異なり、複数件のデータが存在した場合に、
各値をタグで連結して返します。
また、QUERY定義で、第2パラメーターにclass属性を指定することができますので、各データを縦に並べて
表示したり、各各データ毎に文字色を変更することもできます。
各項目に対して、表示種別を画面から登録するには、システムID:**、作成区分:0(エンジン)で定義されている
RENDERERのコードリソースで、MULTIQUERYのコード値が定義されている必要があります。
org.opengion.plugin.column.Renderer_MULTIQUERY
[リソース登録画面・バグ修正]
リソース登録画面で"エラーデータを除外"の機能が利用できない不具合を修正します。
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
[グループメニューバグ修正]
グループメニューで、コードリソースのキーが存在しない場合にエラーとなるバグを修正します。
org.opengion.hayabusa.taglib.TopMenuTag.makeTagMenuString(String, String, String, String, int)
[画面帳票発行機能改善]
画面帳票発行機能で、画面から出力する帳票雛形ファイルを、先に対応したコメント形式に変更します。
jsp/common/gamen/14_EDIT/download.jsp
org.opengion.plugin.io.TableWriter_CalcDef.writeData(DBTableModel, PrintWriter)
org.opengion.plugin.io.TableWriter_CalcDef.createTextCell(OdfFileDom, String, DBColumn, Boolean, Boolean)
org.opengion.plugin.io.TableWriter_CalcDefAno 新規追加
[全チェック機能改善]
全チェックを押した状態でresult.jspからupdate.jsp等に遷移した場合に、遷移先のJSPでも全チェックボックスが
チェックされた状態になるように改善します。
org.opengion.hayabusa.taglib.ViewFormTag.doStartTag()
org.opengion.plugin.view.AbstractViewForm.getAllCheckControl()
[画面リソース登録画面改善]
画面リソース登録画面で、追加時に、システムID+画面ID+アドレス+作成区分で存在チェックをかけるようにします。
ge/jsp/GE0002/entry.jsp
[Calc帳票システム・コメント定義機能追加]
Calc帳票システムで、コメントに{@xxx_n}の定義ができる機能を追加します。
従来は、セルに対して、{@xxx_n}の定義を行う必要があったため、データの桁数を確認しながら雛形を定義する
ことができませんでした。
今回の機能追加では、{@xxx_n}の定義を、そのセルのコメントとして定義することで、セルには、一般的な
帳票開発ツールと同じように、XXXXX(文字型)、99999(数値型)を記述することができるようになり、出力結果を
イメージしながら雛形の開発を行うことができるようになります。
また、テキストボックスなどのオブジェクトに対しても、「名前」の定義に{@xxx_n}の記述することができます。
但し、この機能を利用するには、以下の制約があります。
(1)コメントまたは、オブジェクトの名前に変数を定義する場合、項目定義の先頭には、必ず"ANO."を付加し、
{@ANO.xxx_n}の形式で定義する必要があります。
(2)コメントまたは、オブジェクトの名前に{@ANO.xxx_n}が定義された場合、そのセル全体が{@ANO.xxx_n}の値に
よって置き換わります。このため、これらのセルについては関数定義などを行うことはできません。
また、この定義方法の詳細については、別途マニュアルを用意します。
org.opengion.hayabusa.report2.TagParser.checkKey(String, StringBuilder)
org.opengion.hayabusa.report2.OdsContentParser.writeParsedRow(String, BufferedWriter, String, String)
org.opengion.hayabusa.report2.OdsContentParser.parseByAnnotation(String, int, String, StringBuilder)
org.opengion.hayabusa.report2.OdsContentParser.isCell(String, int)
[Calc帳票システム・改善]
Calc帳票システムで、セルの値に{@xxx_n}を定義し、これを変換すると、データが数値の場合に先頭に'が
付加されてしまう問題に対応します。
これは、セルの定義で、数値タイプを指定していても、セルの内容が文字列({@xxx_n})である場合に、Calcが
自動的に文字列であると判断し、この状態で数値データを埋め込むと、データの先頭に'が付加されてしまいます。
今回の対応では、カラムの定義で、数値タイプの場合は、パース時にセルの定義を数値型に置き換えることで、
先頭の'が付加されないようにします。
なお、数値タイプかどうかの判断については、ローカルリソース使用時はリソース定義から、未使用時はデータ
に応じて数値タイプかどうかを判断します。
org.opengion.hayabusa.report2.OdsContentParser.writeParsedRow(String, BufferedWriter, String, String)
org.opengion.hayabusa.report2.OdsContentParser.changeType(String, int, String, String, NativeType, StringBuilder)
org.opengion.hayabusa.report2.OdsContentParser.getNativeType(String, String)
[Calc帳票システム・グラフ対応]
Calc帳票システムで、雛形で定義されたグラフが正しく出力されるように改善します。
グラフ表示については、1つの雛形シートから複数シートが出力された場合でも、それぞれのシートで
独立して、シート毎のデータでグラフ表示が行われます。
但し、グラフデータで他のシートのデータを参照することはできません。自身のシートのデータのみを
参照することができます。
また、グラフ対応に伴い、内部のパースロジックを共通化を行い、内部処理を見直しています。
org.opengion.hayabusa.report2.OdsSheet 新規追加
org.opengion.hayabusa.report2.TagParser 新規追加
org.opengion.hayabusa.report2.OdsContentParser.appendValue(String, int, String, StringBuilder)
org.opengion.hayabusa.report2.OdsContentParser.writeParsedRow(String, BufferedWriter, String, String)
org.opengion.hayabusa.report2.OdsContentParser.replaceOoocError(String)
org.opengion.hayabusa.report2.OdsContentParser.execStyles()
org.opengion.hayabusa.report2.OdsContentParser.replaceGraphInfo(String, String, String)
org.opengion.hayabusa.report2.OdsContentParser.parseGraphContent(String, String, String)
org.opengion.hayabusa.report2.OdsContentParser.parseManifest(String, String[])
[エラーメッセージ表示改善]
システムエラー発生時に画面に表示されるエラーメッセージを改善し、テーブル形式でエラーメッセージが
表示されるようにします。
ラベルリソース(SYSERR) 追加
jsp/common/error.jsp
org.opengion.hayabusa.taglib.ErrorTag.getTableMsg(Throwable)
org.opengion.hayabusa.taglib.ErrorTag.VIEW_MSGTYPE
org.opengion.hayabusa.taglib.ErrorTag.setViewMsgType(String)
org.opengion.hayabusa.taglib.ErrorTag.doEndTag()
[画面帳票発行機能・画面改善]
画面帳票発行機能の帳票定義画面を見直しします。
jsp/image/hatena_min.gif
jsp/common/gamen/14_EDIT/
[forwardタグ・バグ修正]
5.1.7.0 (2010/06/01)の以下の修正で、forwardタグのpage属性にhttpから始まる外部URLを直接記述した
場合に、自身の画面IDが付加されてしまうバグを修正します。
org.opengion.hayabusa.taglib.ForwardTag.doEndTag()
----------------------------------------------------------------------------------------------
[og:forwargタグ改善]
og:forwardタグでGAMENIDをパラメーターとして渡すようにします。
gamenId属性で指定された場合はその画面IDが、指定されていない場合は、自身の画面IDが渡されます。
また、過去との互換性を考慮し、keys属性にGAMENIDが含まれている場合は、valsで指定されている
画面IDが優先されます。
org.opengion.hayabusa.taglib.ForwardTag.doEndTag()
----------------------------------------------------------------------------------------------
[ラベルリソース登録画面修正]
ラベルリソース登録画面で、言語を検索条件に指定しない場合に、日本語のデータしか表示されないバグを
修正します。
ge/jsp/GE0005/result.jsp
[ヘッダーソート機能・バグ修正]
ヘッダーソート機能で、result.jsp以外のJSPをforward.jsp経由で呼び出した場合に、ヘッダーソートが
正しく機能しないバグを修正します。
これは、forward.jspに記述されているcommonForwardタグの遷移先の制御で、command=VIEWの場合に、必ず
result.jspに遷移していたためです。
今回の対応では、直前にアクセスされたJSPに遷移するように変更し、result.jsp以外でもヘッダーソート
機能が正しく動作するようにします。
org.opengion.hayabusa.taglib.CommonForwardTag.getForwardURI(HttpServletRequest, HttpSession)
5.1.7.0 (2010/06/01)
[ヘッダー固定・バグ修正]
ヘッダー固定(ScrollBar2.js)で、tdタグで指定した高さが無視されてしまうバグを修正します。
jsp/common/scrollBar2.css
[画面キャプチャ機能 追加]
org.opengion.fukurou.util.DisplayCapture.java クラスを新規に追加します。
これは、画面イメージをキャプチャして、ファイルに書き出すためのクラスです。
基本的な使い方は、main メソッドから立ち上げて、クリップボードの状態を監視します。
クリップボードに、"GUI:画面ID xxxxx.jsp" 形式の文字が書き込まれると、flavorsChanged イベントが
発生して、画面を、ファイルに書き出す処理が実行されます。
書き出すファイル名の初期形式は、useGuiDir の設定により異なります。
org.opengion.fukurou.util.DisplayCapture.java 新規追加
gf\jsp\custom\result_info_Capture.jsp クリップボードに画面IDとJSPファイル名をセットする。
* Usage: java org.opengion.fukurou.util.DisplayCapture
* [BASE_DIR] [useGuiDir(false/true)] [imageFormat(png|gif|jpg)] [startCnt]
*
* args[0] BASE_DIR : キャプチャファイルをセーブするベースとなるディレクトリ(初期値:起動フォルダ)
* args[1] useGuiDir : キャプチャ画像をセーブするファイル方式を指定します。(初期値:false)
* true(保存時は、ベースフォルダに、画面ID+jspファイル名で、ファイルを作成する)
* false(保存時に画面IDのフォルダを作成し、その下に、jspファイル名で、ファイルを作成する。)
* args[2] imageFormat : 作成するイメージの形式。png|gif|jpg のどれか。
* args[3] startCnt : セーブファイル名をユニークにするためのカウント(初期値:100)
[DBConfig.xml 取得方法変更]
DBConfig.xml の取得方法を、jaxb とDBConfig.xsd 方式から、DocumentBuilder による DOM処理に変更します。
スキーマの定義情報をコンパイルして、毎回、作り直す処理は、複雑なためです。
ただし、DBConfig.xml を変更した場合は、読取クラスも修正する必要があります。
# 以前は、DBConfig.xsd を変更するだけで、Javaのソースを自動作成していました。しかし、実際には
# 修正箇所は、何箇所も発生するため、スキーマからJavaソースを作成するメリットはありませんでした。
これに伴い、org.opengion.fukurou.xml.jaxb.dbid のクラスは、廃止されます。
org.opengion.fukurou.xml.DomParser.java 新規追加
org.opengion.fukurou.db.DatabaseConfig.java 大幅書き換え
org.opengion.fukurou.db.EDbid.java Cloneable の追加と、メソッドの若干の修正
org.opengion.fukurou.xml.jaxb.dbid.DbConfig.java 廃止
org.opengion.fukurou.xml.jaxb.dbid.DbDriver.java 廃止
org.opengion.fukurou.xml.jaxb.dbid.Dbid.java 廃止
org.opengion.fukurou.xml.jaxb.dbid.ObjectFactory.java 廃止
org.opengion.fukurou.xml.jaxb.dbid.DBConfig.xsd 廃止
gf/build.xml DBConfig.xsd 廃止に伴う修正
[filter関連修正]
filter関連で、isClosed == true の場合に 安全のため、Exception を発行していますが、
これを、無視して、単に、return のみとします。
これは、GZIPResponseWrapper の finishResponse() メソッドで、
public void finishResponse() {
Closer.ioClose( writer );
Closer.ioClose( stream );
}
のような処理を行っていますが、writer 自体が、stream を元に作られているため、
writer の close() で、自動的に、stream もclose() されています。
この処理で、Closer.ioClose( stream ) を止めれば、解決すると思われますが、
何らかの問題で、IO関連のリソースが開放されないケースでは、システムダウンにも
繋がりかねないため、すでに、close 済みの場合は、何もしないという実装で対処します。
org.opengion.hayabusa.filter.FileResponseStream#flush()
org.opengion.hayabusa.filter.FileResponseStream#write(final int bt)
org.opengion.hayabusa.filter.FileResponseStream#write(final byte bt[], final int off, final int len)
org.opengion.hayabusa.filter.GZIPResponseStream#flush()
org.opengion.hayabusa.filter.GZIPResponseStream#write(final int bt)
org.opengion.hayabusa.filter.GZIPResponseStream#write(final byte bt[], final int off, final int len)
[og:view(フォーマット処理)バグ修正]
og:viewタグで、HTMLFormatテーブルやHTMLCustomテーブルを利用して、Body部分にフォーマットを記述した際、
そのフォーマット部分に{@xxx}形式の変数が存在し、さらにその値に"["が含まれてる場合、その値が
フォーマット定義として処理されてしまい、エラーとなる問題に対応します。
今回の対応では、og:view、og:tbody、og:thead、og:tfoot、og:Itdの各タグで、{@xxx}の変数の値に"["が含ま
れていた場合は、予めサニタイズ(無効化)し、表示時に戻すという処理を加えることで、その値がフォーマット
定義として処理されないようにします。
org.opengion.fukurou.util.SystemParameter.getColumns()
org.opengion.fukurou.util.SystemParameter.getFormats()
org.opengion.hayabusa.html.TableFormatter.getFormat()
org.opengion.hayabusa.html.TableFormatter.getTrTag()
org.opengion.hayabusa.html.TableFormatter.makeFormat(DBTableModel)
org.opengion.hayabusa.html.TableFormatter.decodeSanitizedStr(String)
org.opengion.hayabusa.taglib.CommonTagSupport.getSanitizedBodyString()
org.opengion.hayabusa.taglib.ViewFormTag.doAfterBody()
org.opengion.hayabusa.taglib.TFormatTag.doEndTag()
[columnタグ、selectタグのdefaultVal属性の改善]
columnタグ、selectタグでcommandがRENEWの場合は、defaultValを適用しないようにします。。
これは、defaultValの値が埋め込まれた項目が存在する画面に戻った際に、
defaultValの項目の値がnullとなっていた場合に、defaultValの値が復元されると、
検索結果との不一致が発生するためです。
※この問題は、command=NEW(画面リンクした場合)でも発生します。
しかし、この場合、遷移先の画面がエントリー画面などであった場合は、defaultValが適用されないと
問題が発生する可能性があります。
このため、command=NEWの場合の問題を根本的に解決するには、今回の対応方法ではなく、画面遷移時の
forward制御を見直す必要があります。
具体的には、forward.jspでcommand=NEWの場合に、自動的にresult.jspに遷移するのではなく、query.jspで
自動サブミットさせることで、これをトリガとして、result.jspを表示することで、query.jspとresult.jspの
整合性をあわせることができます。
但し、この方法も、result.jspのみが存在し、query.jspが存在しない場合に、result.jspが開かなくなる可能性があります。
つまり、JSPを変えないと言う前提の上では、対応は困難であるため、command=NEWに対する対応は見送っています。
org.opengion.hayabusa.taglib.ColumnTag.doStartTag()
org.opengion.hayabusa.taglib.SelectTag.doStartTag()
[ポップアップボタン・閉じるボタン標準化]
ポップアップ画面で、閉じるボタンを標準化します。
閉じるボタンを表示するには、query.jspでpopup_info.jsp、または、popup_info.jsp_minを
インクルードして下さい。
(ポップアップ画面の標準雛形もこれをインクルードするように変更しています。)
/jsp/custom/popup_info.jsp
/jsp/custom/popup_info.jsp_min
/jsp/image/close.gif
/jsp/image/close_min.gif
/gf/jsp/GF9510/query.jsp
[1行用のヘッダー追加]
クエリ部分に表示される標準のヘッダー(query_info.jsp)について、表示領域の高さを縮小したものを
標準として提供します。
これを利用するには、custom/query_info.jsp_minを標準のcustom/query_info.jspと置き換えて下さい。
/jsp/custom/query_info.jsp_min
/jsp/image/separator_min
/jsp/image/back_min.gif
[Calc帳票・シートブレイク機能追加]
Calc帳票システムで、データを埋め込む雛形シートを動的に切り替えることのできる機能を追加します。
この機能を利用するには、以下の手順を踏む必要があります。
@1つの雛形ファイルに対して、複数シートSHEET1,SHEET2を定義しておく
A帳票レイアウト定義で、(SHEETBREAK)という項目を予め用意しておき、その項目の値としてシート名
(SHEET1,SHEET2)を定義しておく。
これにより、SHEETBREAKのシート名がブレイクしたタイミングでデータを埋め込むシートを切り替える
ことができます。
org.opengion.hayabusa.report2.OdsContentParser.SHEET_BREAK
org.opengion.hayabusa.report2.OdsContentParser.execContent()
org.opengion.hayabusa.report2.OdsContentParser.getBodyValue(String, int)
TEST10.ods シートブレイク用のサンプル追加
[Calc帳票システム・バグ修正]
Calc帳票システムで雛形シートにセル参照(セルBをセルAの参照にするなど)を行った際に、正しくパース
されない不具合を修正します。
org.opengion.hayabusa.report2.OdsContentParser.replaceOoocError(String)
[tableUpdateタグ・SQLインジェクション対策対応]
tableUpdateタグでSQLインジェクション対策を行うための、quotCheck属性が利用できるようにします。
但し、現状のJSPとの互換性を考慮し、初期値は、false(SQLインジェクションチェックを行わない)です。
hybs-taglib.tld
org.opengion.hayabusa.taglib.TableUpdateTag.doStartTag()
org.opengion.hayabusa.taglib.TableUpdateTag.release2()
org.opengion.hayabusa.taglib.TableUpdateTag.setQuotCheck(String)
[ヘッダーソート機能・バグ修正]
ヘッダーソート後に画面遷移し、戻ってきた際にstartNoがクリアされるバグを修正します。
org.opengion.hayabusa.taglib.ViewFormTag.doStartTag()
[画面遷移なし登録・バグ修正]
画面遷移なし登録で、行が1件もない状態で追加ボタンを押した際、update.jspのviewの設定で、
useHilightRowがfalseになっていると正しく行が表示されないバグを修正します。
これは、update.jspから返されるHTMLをresult.jspに挿入する際に、「div onclick="hilightRow」
という文字列でマッチさせていたためですが、useHilightRowをoffにすると、このdivが出力されない
ために、マッチせず、データが表示されていませんでした。
今回の対応では、useHilightRowでも、 がSQL文中で利用できないバグを修正
gf/jsp/GF6410
hybs-taglib.tld valueタグ、columnタグにxssCheck属性を追加
jsp/common/htmlend.jsp
jsp/common/eventColumnSql.jsp 廃止
jsp/common/eventColumn.jsp 新規追加
jsp/common/eventColumn.js
jsp/common/eventColumnMarker.jsp
jsp/common/jquery/jquery.js 1.4.2にバージョンアップ
org.opengion.hayabusa.common.HybsSystem.EVENT_COLUMN_CLASS
org.opengion.hayabusa.common.HybsSystem.EVENT_COLUMN_WRITABLE
org.opengion.hayabusa.common.HybsSystem.EVENT_COLUMN_ID
org.opengion.hayabusa.common.HybsSystem.EVENT_COLUMN_INITVAL
org.opengion.hayabusa.db.DBEventColumn 新規追加
org.opengion.hayabusa.db.DBColumn.DBColumn(String, ColumnData, LabelData, CodeData)
org.opengion.hayabusa.db.DBColumn.getRawParam() 廃止
org.opengion.hayabusa.db.DBColumn.getRawEditParam()
org.opengion.hayabusa.db.DBColumn.getRawRendParam()
org.opengion.hayabusa.db.DBColumnConfig.getRawParameter() 廃止
org.opengion.hayabusa.db.DBColumnConfig.getRawEditParameter()
org.opengion.hayabusa.db.DBColumnConfig.getRawRendParameter()
org.opengion.hayabusa.db.DBColumnConfig.setRawParameter(String)
org.opengion.hayabusa.db.DBColumn.getEventColumnTag(String, String, boolean)
org.opengion.hayabusa.db.DBColumn.getEventColumnTag(String, String, int, boolean)
org.opengion.hayabusa.html.StringFormat org.opengion.plugin.columnから移動
org.opengion.hayabusa.taglib.CommonTagSupport.addEventColumn(String, String) 廃止
org.opengion.hayabusa.taglib.CommonTagSupport.addEventColumn(String, String, String, String, String, String)
org.opengion.hayabusa.taglib.CommonTagSupport.addEventColumn(DBColumn)
org.opengion.hayabusa.taglib.ColumnTag.doAfterBody()
org.opengion.hayabusa.taglib.ColumnTag.release2()
org.opengion.hayabusa.taglib.ColumnTag.setXssCheck(String)
org.opengion.hayabusa.taglib.ColumnTag.getInsertTag(DBColumn, String)
org.opengion.hayabusa.taglib.ColumnEditorTag.doAfterBody()
org.opengion.hayabusa.taglib.ColumnEditorTag.setParameter(String)
org.opengion.hayabusa.taglib.QueryOptionTag.doAfterBody()
org.opengion.hayabusa.taglib.QueryOptionTag.doEndTag()
org.opengion.hayabusa.taglib.QueryOptionTag.release2()
org.opengion.hayabusa.taglib.QueryOptionTag.getEventColumn() 廃止
org.opengion.hayabusa.taglib.SelectTag.makeTag()
org.opengion.hayabusa.taglib.SelectTag.setRawParam(String)
org.opengion.hayabusa.taglib.SelectTag.release2()
org.opengion.hayabusa.taglib.ValueTag.doStartTag()
org.opengion.hayabusa.taglib.ValueTag.doAfterBody()
org.opengion.hayabusa.taglib.ValueTag.doEndTag()
org.opengion.hayabusa.taglib.ValueTag.release2()
org.opengion.hayabusa.taglib.ValueTag.setXssCheck(String)
org.opengion.hayabusa.taglib.ValueTag.commandExec(String)
org.opengion.hayabusa.taglib.ValueTag.getSQLAttribute(DBTableModel)
org.opengion.hayabusa.taglib.ViewFormTag.doEndTag()
org.opengion.plugin.view.AbstractViewForm.init(DBTableModel)
org.opengion.plugin.view.AbstractViewForm.getRendererValue(int, int, String)
org.opengion.plugin.view.AbstractViewForm.getEditorValue(int, int, String)
org.opengion.plugin.view.AbstractViewForm.setColumnWritable(String)
org.opengion.plugin.view.AbstractViewForm.setNoWritable(String)
org.opengion.plugin.view.AbstractViewForm.setUseEventCols()
org.opengion.plugin.column.AbstractEditor.AbstractEditor(DBColumn)
org.opengion.plugin.column.AbstractEditor.getValue(String)
org.opengion.plugin.column.AbstractEditor.getValue(int, String)
org.opengion.plugin.column.AbstractEditor.createEventColumnJS(String, String, int, String) 廃止
org.opengion.plugin.column.Editor_AUTOAREA.getValue(String)
org.opengion.plugin.column.Editor_AUTOAREA.getValue(int, String)
org.opengion.plugin.column.Editor_DBMENU.Editor_DBMENU(DBColumn)
org.opengion.plugin.column.Editor_DBMENU.getValue(String)
org.opengion.plugin.column.Editor_DBMENU.getValue(int, String)
org.opengion.plugin.column.Editor_DBMENU.getOption(TagBuffer, String, boolean)
org.opengion.plugin.column.Editor_DBRADIO.getValue(int, String)
org.opengion.plugin.column.Editor_DBRADIO.getValue(String)
org.opengion.plugin.column.Editor_HIDDEN.Editor_HIDDEN(DBColumn)
org.opengion.plugin.column.Editor_INDBMENU
org.opengion.plugin.column.Editor_INDBMENU.getOption(TagBuffer, String)
org.opengion.plugin.column.Editor_MENU.Editor_MENU(DBColumn)
org.opengion.plugin.column.Editor_MENU.getValue(String)
org.opengion.plugin.column.Editor_MENU.getValue(int, String)
org.opengion.plugin.column.Editor_MENU.getValue(int, String)
org.opengion.plugin.column.Editor_QUERY.getValue(int, String)
org.opengion.plugin.column.Editor_QUERY.getValue(String)
org.opengion.plugin.column.Editor_TEXTAREA.getValue(String)
org.opengion.plugin.column.Editor_TEXTAREA.getValue(int, String)
org.opengion.plugin.column.Renderer_DBMENU.getValue(int, String)
org.opengion.plugin.column.Renderer_DBMENU.getValue(String)
org.opengion.plugin.column.Renderer_FORM
org.opengion.plugin.column.Renderer_FORM.getValue(String)
org.opengion.plugin.column.Renderer_QUERY
org.opengion.plugin.column.Renderer_QUERY.getValue(String)
[左右分割画面不具合対応]
左右分割画面で、右側のビューに他画面のリンク・マーカーがセットされてしまうバグを修正します。
これは、右側のビュー表示のcommandが"VIEW"で設定されていることにより、他画面のビュー情報のキャッシュが
復元されてしまうため発生します。(通常、右側のビューは、viewFormId="viewX2"となっており、他画面で
同じviewFormIdが存在すると、復元されてしまう)
今回の対応では、ビュー情報をキャッシュから復元する条件を厳しくし、同一画面IDのキャッシュ情報のみしか
復元しないようにします。
org.opengion.hayabusa.html.ViewForm.setGamenId(String)
org.opengion.hayabusa.html.ViewForm.getGamenId()
org.opengion.plugin.view.AbstractViewForm.setGamenId(String)
org.opengion.plugin.view.AbstractViewForm.getGamenId()
org.opengion.hayabusa.taglib.ViewFormTag.doStartTag()
[og:forwargタグ改善]
og:forwardタグでGAMENIDをパラメーターとして渡すようにします。
gamenId属性で指定された場合はその画面IDが、指定されていない場合は、自身の画面IDが渡されます。
また、過去との互換性を考慮し、keys属性にGAMENIDが含まれている場合は、valsで指定されている
画面IDが優先されます。
org.opengion.hayabusa.taglib.ForwardTag.doEndTag()
[Calc帳票64Bit対応]
Calc帳票が64Bit版Javaでも動作するように対応します。
但し、64Bit版Javaで動作させる場合は、システムリソースのREPORT_OOO_CONN_TYPEを"TCP"に設定した上で、
"そのサーバー上で動作する他のCalc帳票と重複しない"ようにREPORT_OOO_MIN_PORTを設定する必要があります。
REPORT_OOO_MIN_PORTについては、「プロセス毎に割り当てるポート番号を初期値」ですので、REPORT_OOO_MIN_PORT
を基準として、プロセスの最大数分までのポート番号は予め明けて置いてください。
----------------------------------------------------------------------------------------------------
設定例) REPORT_OOO_CONN_TYPE = "TCP"、REPORT_OOO_MIN_PORT = "8100"、REPORT_MAX_PROCESS_COUNT = "256"
の場合、8100から、最大で8355までのポート番号が自動で割り振られます。
----------------------------------------------------------------------------------------------------
但し、プロセスを起動しようとしたポート番号が、他のプロセス(OpenOffice以外のプロセスを含む)で、
既にバインド(使用中)の場合は、そのポート番号をスキップした上で空きポートを検索します。
org.opengion.hayabusa.common.SystemData.REPORT_OOO_CONN_TYPE
org.opengion.hayabusa.common.SystemData.REPORT_OOO_MIN_PORT
org.opengion.hayabusa.report2.ProcessFactory.ProcessPool.createInstance()
org.opengion.hayabusa.report2.SOfficeProcess.ENV_DIR
org.opengion.hayabusa.report2.SOfficeProcess.bootstrap()
org.opengion.hayabusa.report2.SOfficeProcess.execOffice(String, String, int)
org.opengion.hayabusa.report2.SOfficeProcess.getConnParam(String)
org.opengion.hayabusa.report2.SOfficeProcess.getProcParam(String)
org.opengion.hayabusa.report2.SOfficeProcessTcp 新規作成
[og:popupタグ改善]
og:popupタグでポップアップ先に渡すコマンドを指定できるようにします。
従来は、JavaScriptでcommand="NEW"を固定で渡していましたが、今回の対応で、これを引数として
渡せるようにします。
hybs-taglib.tld
jsp/common/ogPopup.js
org.opengion.hayabusa.taglib.PopupTag.release2()
org.opengion.hayabusa.taglib.PopupTag.setCommand(String)
org.opengion.hayabusa.taglib.PopupTag.makePopup(boolean)
[og:errorMessageタグ改善]
エラー・ワーニングメッセージの後に改行を入れるようにします。
「登録しました。」(displayMsg)の後には、改行が入っているため、これに仕様を合わます。
org.opengion.hayabusa.taglib.ErrorMessageTag.makeTitle()
5.1.6.0 (2010/05/01)
[docConvertタグ追加]
xlsやodsなど各種ファイルを変換するためのタグを追加します。
--- Javadocより抜粋 ------------------------------------------------------------
変換を行うことのできる入出力のフォーマット以下の通りです。
[対応フォーマット]
入力[Calc(ODS) ,Excel(XLS) ] -> 出力[Calc(ODS) ,Excel(XLS) ,PDF]
入力[Writer(ODT) ,Word(DOC) ] -> 出力[Writer(ODT) ,Word(DOC) ,PDF]
入力[Impress(ODP),PowerPoint(PPT)] -> 出力[Impress(ODP),PowerPoint(PPT),PDF]
--------------------------------------------------------------------------------
hybs-taglib.tld
jsp/GF6420 サンプル画面追加
org.opengion.hayabusa.taglib.DocConvertTag
org.opengion.hayabusa.report2.ExecProcess.output(String...)
org.opengion.hayabusa.report2.OdsConverter 廃止
org.opengion.hayabusa.report2.DocConverter 新規追加
[リアルタイム帳票・マルチスレッド対応]
画面からのリアルタイム帳票機能のマルチスレッド対応を行います。
具体的には、リクエスト毎のスレッドを生成することで、マルチスレッド対応を行います。
但し、デーモン起動時とは異なり、生成されたスレッドは、処理後、WAITすることなく、
即座にスレッドを終了します。
org.opengion.hayabusa.report2.ExecThread.finishAfterExec()
org.opengion.hayabusa.report2.ExecThreadManager.insertQueueOnNewThread(ExecQueue)
org.opengion.hayabusa.report2.QueueManager_DIRECT.create()
[DBTypeの初期値]
DBTypeの初期値を "XK" とし、各種設定時にこれを使用するように変更します。
org.opengion.hayabusa.db.DBType#DEF_TYPE = "XK" ; 追加
org.opengion.hayabusa.db.DBTypeFactory#newInstance( final String id )
org.opengion.hayabusa.db.DBColumnConfig#DBColumnConfig( final String name )
org.opengion.hayabusa.db.DBColumnConfig#DBColumnConfig( final String lang , ・・・
org.opengion.hayabusa.db.DBColumnConfig#setDbType( final String dbType )
org.opengion.hayabusa.resource.ColumnData#ColumnData( final String[] data )
[TableWriterのDbType判定方法の初期化]
TableWriter で、DbType が、NVAR や S9,R などの場合の処理分岐を、
事前にチェックしておく方法に変更します。
現時点で、TableWriter_Default 、TableWriter_Renderer などで、判定方法(の順番)の
相違による動作の違い(先のDBTypeがnullの場合のエラーの発生の仕方が異なる)
が発生しているため。
処理的にも、データ件数分の判定を行っているため、事前にカラム作成時に
判定しておくほうが効率的にもなります。
org.opengion.plugin.io.TableWriter_Default#createDBColumn()
org.opengion.plugin.io.TableWriter_Default#writeData( final DBTableModel table,final PrintWriter writer )
org.opengion.plugin.io.TableWriter_Default#writeData( final DBTableModel table,final PrintWriter writer )
org.opengion.plugin.io.TableWriter_CSV#writeData( final DBTableModel table,final PrintWriter writer )
org.opengion.plugin.io.TableWriter_CSV2#writeData( final DBTableModel table,final PrintWriter writer )
org.opengion.plugin.io.TableWriter_Data#writeData( final DBTableModel table,final PrintWriter writer )
org.opengion.plugin.io.TableWriter_Data2#writeData( final DBTableModel table,final PrintWriter writer )
org.opengion.plugin.io.TableWriter_Renderer#writeData( final DBTableModel table,final PrintWriter writer )
org.opengion.plugin.io.TableWriter_T#writeData( final DBTableModel table,final PrintWriter writer )
org.opengion.plugin.io.TableWriter_XML#writeData( final DBTableModel table,final PrintWriter writer )
org.opengion.hayabusa.io.TableWriter#NUMBER_TYPE_LIST 削除
[readDBTableのエラーチェック強化]
読み取るファイルが、0件の場合で、かつ、#NAME が見つからない、または、
columns で設定されていない場合(つまり、DBTableModel が作成されなかった場合)は、
エラーにします。
org.opengion.plugin.io.TableReader_Default#readDBTable( final BufferedReader reader )
[readDBTableのcolumns対応]
TableReader_Default.java などに実装されている、columns が設定されている場合は、
その情報を使用する対応を実装します。
あと、useNumber 属性が考慮されていなかったので、それも対応しておきます。
org.opengion.plugin.io.TableReader_Excel$HeaderData#setColumns( final String columns )
org.opengion.plugin.io.TableReader_Excel$HeaderData#setUseNumber( final boolean useNumber )
org.opengion.plugin.io.TableReader_Excel#readDBTable()
org.opengion.plugin.io.TableReader_JExcel$JxlHeaderData#setColumns( final String columns )
org.opengion.plugin.io.TableReader_JExcel$JxlHeaderData#setUseNumber( final boolean useNumber )
org.opengion.plugin.io.TableReader_JExcel#readDBTable()
useNumber 属性を考慮
org.opengion.plugin.io.TableReader_Calc#makeHeaderFromClms()
[ReadTable系 機能追加]
ReadTable系で、入力データの読み飛ばし機能を追加します。
タグ属性は、skipRowCount とします。
org.opengion.hayabusa.taglib.ReadTableTag#release2()
org.opengion.hayabusa.taglib.ReadTableTag#setSkipRowCount( final String count )
org.opengion.hayabusa.taglib.ReadTableTag#create( final BufferedReader out )
org.opengion.hayabusa.io.TableReader#setSkipRowCount( final String count )
org.opengion.hayabusa.io.TableReader#getSkipRowCount()
org.opengion.hayabusa.io.TableReader#readDBTable( final BufferedReader reader )
org.opengion.plugin.io.TableReader_Calc#makeDBTableModel( final RowInfo[] rowInfoList )
org.opengion.plugin.io.TableReader_Excel#readDBTable()
org.opengion.plugin.io.TableReader_JExcel#readDBTable()
動作確認用に、JSPを修正します。
jsp/GF6370/query.jsp
jsp/GF6370/entry.jsp
jsp/GF6370/result.jsp
[forwardタグ・日本語ファイル名の文字化け対応(Firefox対応)]
Firefoxでforwardタグ経由で、日本語ファイル名のファイルをダウンロードした場合に、文字化けが発生する
バグを修正します。
このバグは、ブラウザ毎に日本語ファイル名の取り扱いが異なるためです。(詳細は以下を参照下さい)
--------------------------------------------------------------------------------------------
[日本語ファイル名でダウンロードさせる方法]
(1)IEの場合
@ファイル名(URL)に直接日本語(Shift_JIS)を指定。
AContent-Dispositionヘッダに、UTF-8でURLエンコード(x-www-form-urlencoded)
された日本語を指定する。
(※ただし、Content-Dispositionヘッダのファイル名に拡張子がふくまれない
場合は、URLでコードされないため、%xx...のままのファイル名でダウンロード
される)
(2)FireFoxの場合
@Content-Dispositionヘッダに、UTF-8でMIMEエンコーディングを指定する
--------------------------------------------------------------------------------------------
org.opengion.hayabusa.taglib.ForwardTag.doEndTag()
[リアルタイムチェック・jQuery1.4対応]
リアルタイムチェック機能で、エラー発生後、正しいデータを入力してもエラーバルーンが消えないバグを
修正します。
jsp/common/realTimeCheck.js
[画面項目並べ替え機能対応]
ユーザー自身が画面の項目の並び順及び、項目の表示/非表示を設定することのできる機能を追加します。
詳細は、別途マニュアル及び設計資料を用意しますので、そちらを参照して下さい。
taglib.tld
jsp/common/hilightRow.js
jsp/common/default.css
jsp/common/gamen/14_EDIT/
jsp/common/fileDownload.jsp
org.opengion.hayabusa.common.HybsSystem.USER_VIEW_CLMS
org.opengion.hayabusa.db.DBLastSql.isTableMatch(String, String)
org.opengion.hayabusa.db.DBLastSql.setViewNotEditable()
org.opengion.hayabusa.db.DBLastSql.isViewEditable()
org.opengion.hayabusa.db.DBLastSql.setViewClmNames(String)
org.opengion.hayabusa.db.DBLastSql.getViewClmNames()
org.opengion.hayabusa.taglib.FileUDTag.doStartTag()
org.opengion.hayabusa.taglib.CommonTagSupport.release2()
org.opengion.hayabusa.taglib.CommonTagSupport.startQueryTransaction(String)
org.opengion.hayabusa.taglib.CommonTagSupport.commitTableObject(String, DBTableModel)
org.opengion.hayabusa.taglib.CommonTagSupport.useMainTrans(boolean)
org.opengion.hayabusa.taglib.QueryTag.doStartTag()
org.opengion.hayabusa.taglib.QueryTag.release2()
org.opengion.hayabusa.taglib.QueryTag.setMainTrans(String)
org.opengion.hayabusa.taglib.QueryTag.doAfterBody()
org.opengion.hayabusa.taglib.ReadTableTag.doStartTag()
org.opengion.hayabusa.taglib.ReadTableTag.release2()
org.opengion.hayabusa.taglib.ReadTableTag.setMainTrans(String)
org.opengion.hayabusa.taglib.DBMetaDataQueryTag.doStartTag()
org.opengion.hayabusa.taglib.DBMetaDataQueryTag.release2()
org.opengion.hayabusa.taglib.DBMetaDataQueryTag.setMainTrans(String)
org.opengion.hayabusa.taglib.LDAPQueryTag.doStartTag()
org.opengion.hayabusa.taglib.LDAPQueryTag.release2()
org.opengion.hayabusa.taglib.LDAPQueryTag.setMainTrans(String)
org.opengion.hayabusa.taglib.RegistryQueryTag.doStartTag()
org.opengion.hayabusa.taglib.RegistryQueryTag.release2()
org.opengion.hayabusa.taglib.RegistryQueryTag.setMainTrans(String)
org.opengion.hayabusa.taglib.TableMergeTag.doStartTag()
org.opengion.hayabusa.taglib.TableMergeTag.release2()
org.opengion.hayabusa.taglib.TableMergeTag.setMainTrans(String)
org.opengion.hayabusa.taglib.URLConnectTag.doStartTag()
org.opengion.hayabusa.taglib.URLConnectTag.release2()
org.opengion.hayabusa.taglib.URLConnectTag.setMainTrans(String)
org.opengion.hayabusa.taglib.ViewFormTag.doStartTag()
org.opengion.hayabusa.taglib.ViewFormTag.doEndTag()
org.opengion.hayabusa.taglib.ViewFormTag.checkUseSeqClmTable()
org.opengion.hayabusa.taglib.ViewFormTag.setViewClms()
org.opengion.hayabusa.html.ViewForm.getViewClms()
org.opengion.hayabusa.html.ViewForm.isEditable()
org.opengion.plugin.view.AbstractViewForm.getViewClms()
org.opengion.plugin.view.AbstractViewForm.isEditable()
org.opengion.plugin.view.ViewForm_HTMLFormatTable.getViewClms()
org.opengion.plugin.view.ViewForm_HTMLCustomTable.getViewClms()
org.opengion.plugin.view.ViewForm_HTMLCustomTreeBOM.getViewClms()
org.opengion.plugin.view.ViewForm_CustomData.isEditable()
org.opengion.plugin.view.ViewForm_HTMLCalendar.isEditable()
org.opengion.plugin.view.ViewForm_HTMLCrossTable.isEditable()
org.opengion.plugin.view.ViewForm_HTMLDynamic.isEditable()
org.opengion.plugin.view.ViewForm_HTMLEntry.isEditable()
org.opengion.plugin.view.ViewForm_HTMLFormatTextField.isEditable()
org.opengion.plugin.view.ViewForm_HTMLGanttTable.isEditable()
org.opengion.plugin.view.ViewForm_HTMLRotationTable.isEditable()
org.opengion.plugin.view.ViewForm_HTMLSimpleList.isEditable()
org.opengion.plugin.view.ViewForm_HTMLSeqClmTable.getViewClms()
org.opengion.plugin.view.ViewForm_HTMLTextField.isEditable()
[リソース登録画面不具合修正]
カラム、画面、コードリソースの画面で行を選択しない状態で登録を行うと、ラベルリソースに登録されない
不具合を修正します。
ge/jsp/GE0002/entry.jsp
ge/jsp/GE0003/entry.jsp
ge/jsp/GE0004/entry.jsp
[画面帳票発行機能対応]
画面から帳票発行することのできる機能を追加します。
この機能は、Calc帳票システムをベースとして、ユーザー自身が画面に対して帳票雛形を登録し、その雛形に
従って、画面の検索結果を出力するための機能です。
詳細は、別途マニュアルを用意しますので、そちらを参照して下さい。
taglib.tld fileUDタグのeditImg追加、readTableのscope、valueタグのtblScopeを追加
jsp/image/edit.png
jsp/common/fileDownload.jsp
jsp/common/fileDownloadListDef.txt
jsp/common/gamen/14_EDIT
WEB-INF/web.xml [ContextRoot]/report以下を公開できるように設定変更
org.opengion.hayabusa.taglib.FileUDTag.doEndTag()
org.opengion.hayabusa.taglib.FileUDTag.setEditImg( String )
[ユーザー永続化テーブル(GE20)の定義変更]
ユーザー永続化テーブル(GE20)の定義変更でパラメータの値(PARAM)のNOT NULL制約を解除します。
ge/changes/5160/alter(GE)_GE20.txt
[画面自動作成対応]
画面作成を行う画面JSPをgf/jsp以下から、common以下に移動します。また、これに伴い、既存のJSPから
動的にJSPを作成するための画面を廃止します。
gf/jsp/GF2200 廃止
gf/jsp/GF2201 廃止
gf/jsp/GF2202 廃止
gf/jsp/GF2203 廃止
gf/jsp/GF2251 廃止
gf/jsp/GF2252/query.jsp
gf/jsp/GF2253/query.jsp
common/11_GUIMAKE 新規画面(共通)
common/12_GUIMAKEGUI 新規画面(共通)
common/13_GUILIST 新規画面(共通)
common/jquery/jquery-ui.js 新規追加(現時点では、headタグでの読み込みは行いません)
customUserDef/ 作成した画面のJSPを置くフォルダ
[DB定義DB改善]
DB定義DBでテーブル間の関連情報(テーブルJOINを行うための項目の関連情報)を管理できるようにします。
GF2041(テーブル関連) 新規画面
GF08(テーブル関連定義) 新規テーブル
[Calc出力対応]
Calc出力用のwriterクラスを追加します。また、CalcDefのwriterクラスを使用することで、帳票雛形を作成する
ための元情報({@XXXX_n})を指定行数分列挙したファイルを出力を出力することができます。
org.opengion.plugin.io.TableWriter_Calc
org.opengion.plugin.io.TableWriter_CalcDef
odfdom.jar Calc出力対応
xercesImpl.jar Calc出力対応
[機能追加]
DBTableModelの行を物理削除します。
通常のデータベース等で削除する場合は、DELETE行も残しておかないと、どの行を削除するか
判らなくなります。また、アプリケーションによっては、削除ではなく、フラグだけを立てる
ケースもあるため、現在の commend="DELETE" では、論理削除+値の書き換えも可能になっています。
ここでの物理削除は、WriteTable など、ファイル出力時には、その行そのものをなくしておくほうが
良いケースがあるためです。
org.opengion.hayabusa.taglib.EntryTag.commandExec( final String command )
org.opengion.hayabusa.taglib.EntryTag.realDelete()
gf/jsp/GF6370/delete.jsp
[FileUtil改善]
内部構造で、copy等の機能を見直しました。
以前は、バイナリファイルの 改行コードをCR+LF に統一する処理を、copy メソッド中に
入れていましたが、メソッド自体を完全に分離しました。
また、copy メソッドの第3引数に、keepTimeStamp=true 属性を追加し、コピー元の
ファイルのタイムスタンプを、コピー先にもセットする機能を追加しました。
org.opengion.fukurou.util.FileUtil#copy( final String fromFile,final String toFile )
org.opengion.fukurou.util.FileUtil#copy( final String fromFile,final String toFile,final boolean keepTimeStamp )
org.opengion.fukurou.util.FileUtil#copy( final File fromFile,final File toFile )
org.opengion.fukurou.util.FileUtil#copy( final File fromFile,final File toFile,final boolean keepTimeStamp )
org.opengion.fukurou.util.FileUtil#changeCrLfcopy( final File fromFile,final File toFile )
org.opengion.fukurou.util.FileUtil#copy( final InputStream input,final OutputStream output )
org.opengion.fukurou.util.FileUtil#copyDirectry( final String fromDir, final String toDir )
org.opengion.fukurou.util.FileUtil#copyDirectry( final File fromDir, final File toDir )
org.opengion.fukurou.util.FileUtil#copyDirectry( final File fromDir, final File toDir, final boolean keepTimeStamp )
org.opengion.fukurou.process.Process_FileCopy#action( final LineModel data )
サンプルの実行に、mainメソッドを修正しています。
org.opengion.fukurou.util.FileUtil#main( final String[] args )
[ファイル伝送関係 新規追加]
ファイル伝送に関するクラスを新規に追加します。
※ ファイル伝送関連クラスの インターフェース定義
org.opengion.fukurou.util.ConnectIF.java
※ ファイル伝送関連クラスの アブストラクトクラス定義
org.opengion.fukurou.util.AbstractConnect.java
※ ファイル伝送関連クラスで、FTP伝送クラス定義
org.opengion.fukurou.util.FTPConnect.java
※ ファイル伝送関連クラスで、Samba伝送クラス定義
org.opengion.fukurou.util.SMBConnect.java
※ ファイル伝送関連クラスで、SFTP伝送クラス定義
org.opengion.fukurou.util.SFTPConnect.java
※ 標準ライブラリ追加
jsch-0.1.42.jar FTP/SMP対応
commons-net-ftp-2.0.jar FTP/SMP対応
jcifs-1.3.14.jar FTP/SMP対応
[Process_FileFtp 新規追加]
org.opengion.fukurou.process.Process_FileFtp.java
[ヘッダーソート機能・バグ修正]
左右分割を行っている画面で、ヘッダーソート機能を利用してソートを行うと、左のビューと
右のビューでデータの並び順が一致しなくなるバグを修正します。
これは、左右のそれぞれのビューで、ヘッダーソートが処理されてしまうことが原因です。
今回の対応では、1リクエストにおいて、1つのテーブルモデルに対してはヘッダーソートが1回しか
処理されないように対応します。
org.opengion.hayabusa.common.HybsSystem.VIEW_SORT_KEY
org.opengion.hayabusa.taglib.ViewFormTag.doStartTag()
[GF・DB定義変更]
@GF90 に 参照PGID:SPGID , 画面編集FG:FGGAMEN 追加
alter(GF)_GF90.txt
@GF91 に AS_TABLE テーブル別名 , SEQ 表示順 追加
gf/changes/5160/alter(GF)_GF91.txt
@GF92 に USE_ORDER 表示順指定追加
AGF92 に AS_CLM カラム別名追加
BGF92 に JOINTYPE 連携タイプ追加
CGF92 に AS_TABLE テーブル別名追加
DGF92 に CLS_NAME DBクラス追加
gf/changes/5160/alter(GF)_GF92.txt
[DB定義DBバグ修正]
テーブルカラムの画面で、新規にカラムの追加ができないバグを修正します。
gf/jsp/GF2020/entry.jsp
[valueタグ・バグ修正]
valueタグで、actipn="ALL_APPEND"を使用した際に、選択行がない場合に処理されないバグを修正します。
org.opengion.hayabusa.taglib.ValueTag.setTableAttribute(DBTableModel, String, String)
org.opengion.hayabusa.taglib.ValueTag.getTableAttribute(DBTableModel, String, String)
[ヘッダー固定バグ修正]
ヘッダー固定で、段組表示を行った状態で、ポップアップエラーメッセージをドラッグした際に、
ヘッダー固定が崩れてしまうバグを修正します。
これは、IEで段組表示を行う際のヘッダー部分の高さの設定に問題があったためです。
IEの場合、段組表示(正確には、body部分とheader部分のcolspan、rowspanの構造が異なる場合)
の場合に、ヘッダー部分の各項目の幅を計算するため、ヘッダー固定を行うためにコピーしたヘッダー
にデータの1行目を付加した上で、幅を計算しています。但し、このヘッダーにコピーしたデータ部分は、
画面表示には不要なため、今までは、body部分のtopに1行目の高さ分のマイナス値を与えることで
ヘッダーにコピーされたデータ部分が表示されないように対応していました。但し、この場合に、
ヘッダー部分の高さを明示して指定していなかったため、リサイズが発生したタイミングで、
レイアウトが崩れてしまうことがありました。
今回の対応では、body部分にマイナス値のtopを指定するのではなく、header部分に表示に必要な
高さを明示的に指定するに変更します。
jsp/common/scrollBar2.js
[画面帳票作成機能対応]
@帳票雛型で行番号・ページ番号を出力できるようにします。
具体的な方法として、行番号は、{@ROWNO_n} (nは、通常のカラムと同じ配列番号)、
ページ番号は{@PAGENO}を指定します。
org.opengion.hayabusa.report2.OdsContentParser.getHeaderFooterValue(String)
org.opengion.hayabusa.report2.OdsContentParser.getBodyValue(String, int)
ACalc形式で出力するためのWriterClassを追加します。
org.opengion.hayabusa.taglib.WriteTableTag.doEndTag()
org.opengion.hayabusa.taglib.WriteTableParamTag.KEY_LIST
BODFDOMで出力されたODSファイルをパースできるように、パーサーを改善します。
org.opengion.hayabusa.report2.OdsContentParser.execMeta()
[ポップアップエラー・バグ修正]
headタグで、noTransition="true"または、useAjaxSubmit="true"を指定した際に、エラー時に表示される
ポップアップがドラッグできないバグを修正します。
jsp/common/jquery/jqDnR.js
[URLConnectタグ・DBTableModel変換機能拡張]
URLConnectタグで結果として返されたXMLをDBTableModelに変換する機能で、rowKeyに指定されたタグの
親タグ名を取得できるように対応します。
これは、1つのXML内に
-
123
-
ABC
XYZ
という構造があった場合に、rowKeyにITEMを指定するだけでは、その後の処理で、それが、group1に属する
ものか、group2に属するもの何かが判別できないため、このgroup1,group2をDBTableModelにセットできる
ようにします。
具体的には、colKeysで、"PARENT_TAG","PARENT_FULL_TAG"を指定すると、それぞれ直近の親タグ、及び
rowKeyより上の全ての親タグ名を連結した文字列をDBTableModel上にセットするようにします。
org.opengion.fukurou.xml.XML2TableParser.getCpParentTagName(String)
org.opengion.fukurou.xml.XML2TableParser.setTableCols(String, String[])
org.opengion.fukurou.xml.XML2TableParser.startElement(String, String, String, Attributes)
org.opengion.fukurou.xml.XML2TableParser.getColIdx(String)
[URLConnectタグ・バグ修正]
URLConnectタグでPOSTデータがエンコードされないバグを修正します。
また、これと同時にリクエスト、レスポンスのデータの入出力のデフォルトエンコードとして
"UTF-8"を設定します。さらにこのエンコード指定をurlConnectタグのencode属性で指定できる
ようにします。
hybs-taglib.tld
org.opengion.hayabusa.taglib.URLConnectTag.release2()
org.opengion.hayabusa.taglib.URLConnectTag.connect()
org.opengion.hayabusa.taglib.URLConnectTag.setEncode(String)
org.opengion.fukurou.util.URLConnect.connect()
[ViewForm_HTMLTable改善]
caption 属性が使われていないため、削除します。
org.opengion.plugin.view.ViewForm_HTMLTable#clear() {
org.opengion.plugin.view.ViewForm_HTMLTable#getTableTag() {
org.opengion.plugin.view.ViewForm_HTMLTable#setCaption( final String caption )
int[] rowNo 宣言が使われていないため、削除します。
[ユーザー単位カラム表示編集機能]
ユーザー単位に表示するカラムの順番、表示可非を指定できるように対応します。
標準的な、ViewForm_HTMLTable に対応すると、カラムのアドレス指定が発生するため、
(言うほどの処理速度低下にはなりませんが)処理クラスを分けておきます。
ここでは、ViewForm_HTMLSeqClmTable クラスを新規に追加します。
具体的には、setColumnDisplay( final String columnName ) に、指定された順番に
表示するというHTMLFormatTable の簡易版として用意します。
# setColumnDisplay は、表示するカラムだけを指定していますが、このクラスでは、
# 表示順も指定するという機能に格上げします。
org.opengion.plugin.view.ViewForm_HTMLSeqClmTable.java
org.opengion.hayabusa.taglib.ViewFormTag#doStartTag()
org.opengion.hayabusa.taglib.ViewFormTag#release2()
org.opengion.hayabusa.taglib.ViewFormTag#setClmSeqDisplay( final String columnName )
src/META-INF/taglib.tld
リクエスト変数 {@SYS.XXXX} に対する値の取得で、パラメータ指定機能を追加します。
引数に、@変数が使用できる用に修正します。具体的には、{@SYS.@XXXX}
で、@XXXX をリクエスト変数から取得した値を利用します。
この中で、@GUIID だけが、さらに特殊で、実行中の画面IDを割り当てます。
この @GUIID は、ここまでの文字列を画面IDに置き換えるとともに、それ以降の
文字列を、画面IDに連結させます。
{@SYS.@GUIID_XXXX} ⇒ 画面ID_XXXX 文字列で、システムパラメータ の値を取得します。
org.opengion.hayabusa.taglib.CommonTagSupport#sys( final String key )
5.1.5.0 (2010/04/01)
[Process_FileCopy改善]
ファイルのコピー時に、元のファイルのタイムスタンプをコピーする機能を追加します。
-keepTimeStamp パラメータを追加します。初期値は、false(コピー時刻が設定される)
org.opengion.fukurou.process.Process_FileCopy#init( final ParamProcess paramProcess )
org.opengion.fukurou.process.Process_FileCopy#action( final LineModel data )
[Webサービス対応]
Webサービス対応として、以下の2つの機能を追加します。
@URLConnectタグで、SOAPで提供されているWebサービスを呼び出しできる機能を追加します。
呼び出しを行うには、methodに"SOAP"を指定した上で、EndPointにあたるURLに加えて、
メソッド名(soapMethodName)、メソッド名の名前空間(soapNameSpace)、メソッドパラメータ
(keys,vals又は、Body部分でXMLを指定)を指定する必要があります。
AURLConnectタグで、Webサービスを呼び出した返されるXMLを表形式(DBTableModel)及び属性
パラメーターに変換するための機能を追加します。
この機能は、SOAPだけでなく、URLベース(いわゆるREST)のWebサービスでも利用することができます。
DBTableModelへの変換を行うためには、行及び項目のタグをそれぞれ、rowKey、colKeys属性で指定します。
属性パラメーター({@xxx}で取り出せる形式)に変換するためには、キーをrtnKeysで指定します。
hybs-taglib.tld
org.opengion.fukurou.util.SOAPConnect 新規追加
org.opengion.fukurou.util.URLConnect.getConnection()
org.opengion.fukurou.xml.XML2TableParser 新規追加
org.opengion.hayabusa.taglib.URLConnectTag.doStartTag()
org.opengion.hayabusa.taglib.URLConnectTag.doEndTag()
org.opengion.hayabusa.taglib.URLConnectTag.release2()
org.opengion.hayabusa.taglib.URLConnectTag.setSoapNameSpace(String)
org.opengion.hayabusa.taglib.URLConnectTag.setSoapMethodName(String)
org.opengion.hayabusa.taglib.URLConnectTag.setTableId(String)
org.opengion.hayabusa.taglib.URLConnectTag.setRowKey(String)
org.opengion.hayabusa.taglib.URLConnectTag.setColKeys(String)
org.opengion.hayabusa.taglib.URLConnectTag.setRtnKeys(String)
gf/jsp/GF7020
[ログ出力改善]
出力が2重、3重に出力されるのを回避します。
org.opengion.fukurou.process.MainProcess#init()
org.opengion.fukurou.process.MainProcess#run()
[JavaDoc コメント修正]
org.opengion.fukurou.util.Argument.java
[コンパイル Warning 対策]
OpenOffice 3.2 での冗長なキャスト警告の抑止を行います。
キャストをはずすと、旧3.1 では、エラーになるため、@SuppressWarnings("cast") で
警告を出さないように修正します。
org.opengion.hayabusa.report2.OdsConverter.java
org.opengion.hayabusa.report2.SOfficeProcess.java
[画面遷移なし登録・改善]
画面遷移なし登録で、連続して追加・複写ボタンで行追加を行うと、1行→2行→4行と
行数が倍々に増えていきます。
これは、追加・複写処理がチェックされた全ての行を対象として行われるためです。
但し、場合によっては、1行ずつ追加したい場合もあるため、今回はこれに対応します。
具体的には、submitボタンでcommand="INSERTONE"定義すると、1行ずつ行が追加されます。
(repeatCountを指定した場合は、複数行を一度に追加することが可能です。)
また、画面遷移なし登録時のINSERTONEの処理では、画面上の行の並びとサーバー上のDBTableModel上の
順番が合うように整合性を取った状態で行の追加を行います。
org.opengion.hayabusa.taglib.EntryTag.commandExec(String)
org.opengion.hayabusa.taglib.EntryTag.insertOne()
jsp/common/option/jqog.js
jsp/common/option/noTransition.js
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();
5.1.3.0 (2010/02/01)
[選択プルダウン・バグ修正]
メニューまたは、DBメニューで、ラベル(短)が定義されている場合に、検索画面でも、ラベル(短)でプルダウン
の内容が表示されているバグを修正します。
対応としては、入力不可能な状態での表示(レンデラー適用時)と同じく、一覧表示の場合のみ、ラベル(短)が適用
されるようにします。
org.opengion.hayabusa.db.Selection.getOption(String, boolean, boolean)
org.opengion.hayabusa.db.Selection_CODE.Selection_CODE(CodeData)
org.opengion.hayabusa.db.Selection_CODE.getOption(String, boolean)
org.opengion.hayabusa.db.Selection_CODE.getOption(String, boolean, boolean)
org.opengion.hayabusa.db.Selection_RADIO.getOption(String, boolean, boolean)
org.opengion.hayabusa.db.Selection_DBRADIO.getOption(String, boolean, boolean)
org.opengion.hayabusa.db.Selection_DB.Selection_DB(String, String, String)
org.opengion.hayabusa.db.Selection_DB.getOption(String, boolean)
org.opengion.hayabusa.db.Selection_DB.getOption(String, boolean, boolean)
org.opengion.plugin.column.Editor_MENU.getValue(String)
org.opengion.plugin.column.Editor_MENU.getValue(int, String)
org.opengion.plugin.column.Editor_DBMENU.getValue(String)
org.opengion.plugin.column.Editor_DBMENU.getValue(int, String)
org.opengion.plugin.column.Editor_DBMENU.getOption(TagBuffer, String, boolean)
[DBメニュー・バグ修正]
DBメニューを定義する際に、ラベル(短)(第3カラム)を指定した場合に、ラベル(短)の値がnullの場合でも
ラベル短で表示されてしまい、選択項目の表示がnullとなってしまうバグを修正します。
org.opengion.hayabusa.db.Selection_DB.Selection_DB(String, String, String)
[画面遷移なし登録・バグ修正]
画面遷移なし登録を有効にした場合に、特定のcommandでsubmitした際に、submit先のog:forwardタグが
正しく動作しない問題に対応します。
これは、画面遷移なし登録を行う際にog:headタグに指定する、noTransition="true"の属性値に関して、
サーバーサイドでの状態とクライアントサイドでの状態が一致していないことが原因です。
noTransition="true"の設定については、result.jspでのみ設定を行うことで、これを起点にバックグラウンド
で実行されるupdate.jsp、entry.jspでは、設定しなくても動作するように、セッションにその情報を保存
しています。(サーバーサイドの状態)
一方、クライアントに読み込まれるJavaScriptでは、そのsubmitをバックグラウンドで実行するかどうかを
submitする際のコマンドにより制御しています。(通常の他画面への遷移等は、バックグラウンドで実行しないため)
ここで、submitするcommandをNEWとすると、クライアント側では、バックグラウンドsubmitは、行われません。
しかしながら、サーバー側ではセッション情報の値からバックグラウンドsubmitされたものとして処理される
ため不整合が発生していました。
今回の対応では、サーバー側の状態をセッションに保存するのではなく、クライアント側からパラメーターとして
送ることで、そのリクエストを画面遷移なしモードとして処理するかどうかを判定するように変更します。
この場合の弊害として、「無効である」という状態は、リクエストで送信されなくなるため、システムリソースで
システム全体で有効となっている場合に、特定の画面だけを無効にする場合は、result.jspだけでなく、関連する
全てのJSPでnoTransition="false"を指定する必要があります。
jsp/common/option/noTransition.js
jsp/common/option/ajaxSubmit.js
jsp/common/option/jqog.js
org.opengion.hayabusa.taglib.CommonTagSupport.setNoTransitionRequest(boolean)
org.opengion.hayabusa.taglib.CommonTagSupport.isNoTransitionRequest()
org.opengion.hayabusa.taglib.CommonTagSupport.setAjaxSubmitRequest(boolean)
org.opengion.hayabusa.taglib.CommonTagSupport.isAjaxSubmitRequest()
org.opengion.hayabusa.taglib.HeadTag.setUseAjaxSubmit(String)
org.opengion.hayabusa.taglib.HeadTag.setNoTransition(String)
org.opengion.hayabusa.taglib.HeadTag.doEndTag()
org.opengion.hayabusa.taglib.EntryTag.doEndTag()
org.opengion.hayabusa.taglib.EntryTag.setNoTransition(String)
org.opengion.hayabusa.taglib.ForwardTag.doEndTag()
org.opengion.hayabusa.taglib.ForwardTag.setNoTransition(String)
org.opengion.hayabusa.taglib.ForwardTag.setUseAjaxSubmit(String)
org.opengion.hayabusa.taglib.ViewFormTag.doEndTag()
org.opengion.hayabusa.taglib.ViewFormTag.setNoTransition(String)
[DB定義DB修正]
DB定義DBが、PostgreSQL でも使用できるように調整しました。
また、PL/SQL の DATA_DEFAULT.sql を廃止するために、
エンジンに新規クラス plugin/column/DBType_DD.java を作成しました。
(一部、使用箇所が残っているため、PL/SQLの廃止はまだ)
org/opengion/plugin/column/DBType_DD.java
jsp/GF2000/insertGF01.jsp
jsp/GF2010/insertGF02.jsp
jsp/GF2020/directGF05.jsp
jsp/GF2020/entry.jsp
jsp/GF2020/insertGF05.jsp
jsp/GF2030/insertGF06.jsp
jsp/GF2060/GFM0034.jsp
jsp/GF2060/GFM0035.jsp
jsp/GF2060/GFM0036.jsp
jsp/GF2060/GFM0040.jsp
jsp/GF2060/GFM0045.jsp
jsp/GF2090/query.jsp
jsp/GF2110/directGF02.jsp
jsp/GF2110/directGF05.jsp
jsp/GF2150/result.jsp
jsp/GF2160/GFM0035.jsp
jsp/GF2160/GFM0036.jsp
jsp/GF2160/GFM0040.jsp
jsp/GF2160/GFM0045.jsp
リソース修正
カラムリソースの DATA_DEFAULT(初期値) に、DBTYPE(文字種別) に、「DD」を設定
コードリソースの DBTYPE に、「DD」を追加
[ヘッダー固定バグ修正]
ヘッダー固定が画面遷移なし登録で正しく動作しないバグについて修正します。
この問題は、ヘッダー固定の仕様として、テーブルを初回に描画した後、セル幅を固定
(CSSのtable-layout:fixed)していたため、HTMLを後から挿入してもセル幅の再調整が行われない
ことが原因です。
今回の修正では、セル幅の固定を行わず、自動で再計算を行うように変更します。
また、このヘッダー固定の仕様として、元のヘッダー部分のコピーを作成することで、ヘッダー固定を
実現していますが、このコピーする際のヘッダーのセルの計算方法をIEとFireFoxで同じとなるように
内部ロジックの見直しも行います。
jsp/common/scrollBar2.js
jsp/common/scrollBar2.css
jsp/common/option/jqog.js
[ヘッダー固定バグ修正]
上記の修正の影響で発生した、ヘッダーとボディーで異なるcolspan構造を定義した場合にレイアウトが
崩れてしまう問題に対応します。
これは元々、IEのバグであり、IEでは、th,tdタグにcolspanが含まれている場合に、widthを指定しても、
これが無視されてレンダリングされてしまうためです。(FireFoxでは、widthの指定でレンダリングされます)
この問題は、theadとtbodyのcolspanの構造が同じであれば、発生しませんが、異なる場合に、レイアウトが
崩れてしまいます。
今回の対応では、IEの場合のみ、データの1行目のcolspan構造を解析し、これがtheadと異なる場合には、
ヘッダー固定を行うためのヘッダーテーブルに1行目をダミーデータとして付加し、正しくレンダリングされる
ように対応します。(この対応は、IEのみ影響を受けます。FireFox等ではこの処理は行われません)
jsp/common/scrollBar2.js
[Ajaxツリーテーブル表示・バグ修正]
Ajaxツリー表示で、展開ボタンを押した後に、その行に対して変更ボタンを押すと、再度展開できてしまう
バグを修正します。
この問題は、変更時のHTMLの置き換えで、展開ボタンの状態(クラス属性)がクリアされてしまうことが原因
です。(展開ボタンの画像のみは、入れ替えていました)
今回の修正では、展開ボタンについては、クラス属性を含めて、元のものに置き換えるようにします。
jsp/common/option/noTransition.js
[行選択エラー画面の改善]
og:submitタグ等で、forward.jsp経由で別画面に遷移した際に、行が選択されていない場合に
表示されるエラーメッセージ(ERR0028 選択されていません。もう一度、選択しなおして下さい。)
の背景色が真っ白になるバグを修正します。
これは、forward.jspで記述されているog:headタグで、headTypeがnullの場合に、CSSファイルがinclude
されていなかったことが原因です。
今回の対応では、CSSファイルに限っては、headTypeがnullの場合でもincludeするように修正します。
org.opengion.hayabusa.taglib.HeadTag.doEndTag()
5.1.2.0 (2010/01/01)
[Calc帳票・256ページを超えた場合の対応]
Calc帳票で、1要求番号当りのページ数が256を超えた場合に、256枚目までしか出力されない件について
対応します。元々、この問題は、Calcが1ファイル当りに256シートまでしか扱えないことが原因でした。
今回の対応では、256シートを超える場合、再度続きのデータから処理を行うことによって、それ以降の
データも出力されるように対応します。
但し、以下の2点については、ご注意下さい。
@データの解析、出力処理は、ファイル単位(最大256シート)に行われます。このため、257枚目以降で
エラーが発生した場合、それより前の部分については、出力されてしまいます。
(要求番号のステータスとしては、"アプリエラー"となります)
Aファイル出力を行った場合、256シート単位でファイルが分割されます。この場合、出力ファイル名は、
1ファイル目 : GE50にセットした出力ファイル名(現状通り)
2ファイル目以降 : "ファイル名"_[1から始まる連番]."拡張子"となります。
また、今回の対応と合わせて、処理後に、GE50の処理行数と処理ページ数が正しくセットされるように
改善します。
org.opengion.hayabusa.report2.ExecQueue.getOutputName()
org.opengion.hayabusa.report2.ExecQueue.addExecPageCnt(int)
org.opengion.hayabusa.report2.ExecQueue.getExecPagesCnt()
org.opengion.hayabusa.report2.ExecQueue.setExecRowCnt(int)
org.opengion.hayabusa.report2.ExecQueue.getExecRowCnt()
org.opengion.hayabusa.report2.ExecQueue.setEnd(boolean)
org.opengion.hayabusa.report2.ExecQueue.isEnd()
org.opengion.hayabusa.report2.ExecQueue.MAX_SHEETS_PER_FILE
org.opengion.hayabusa.report2.ExecProcess.process()
org.opengion.hayabusa.report2.ExecThread.exec(ExecQueue)
org.opengion.hayabusa.report2.OdsContentParser.OdsContentParser(ExecQueue, String)
org.opengion.hayabusa.report2.OdsContentParser.execContent()
org.opengion.hayabusa.report2.QueueManager_DB.SQL_UPDATE_GE50
org.opengion.hayabusa.report2.QueueManager_DB.status(ExecQueue, int)
[Calc帳票・バグ修正]
Calc帳票で、出力時の例外処理でCalcオブジェクトが正しくCloseされていないバグを修正します。
org.opengion.hayabusa.report2.ExecProcess.output(String...)
[タグリブマニュアル・クイックリファレンスマニュアル作成]
build時にタグリブマニュアルのクイックリファレンスを作成するようにします。
クリックリファレンスは、アーカイブ内の、uap/webapps/gf/doc/taglib/quickReference.htmlに
保存されます。
GFX004 -> DOC08 画面ID変更
build.xml
[サンプル・HSQLDB対応]
サンプル画面が、HSQLDBで動作しない問題について対応します。
gf/jsp/GF9130
gf/jsp/GF9430
gf/jsp/GF9500
gf/jsp/GF9510
[MySQL対応・不具合修正]
MySQL対応で、ロール登録画面が動作しなくなっていた問題に対応します。
ge/jsp/GE0019
ge/jsp/GE0020
[Calc帳票システム・MySQL対応]
Calc帳票システムで、帳票明細データの各カラムへの分割処理を内部で処理するようにします。
従来は、帳票レイアウト登録(REP03)画面で、レイアウト変更時に、データを分割するための
SQL文を生成し、これを利用して、帳票明細データを分割し、DBTableModelを生成していました。
しかし、このSQL文で必要となる、バイト数ベースの文字分割関数(OracleのSUBSTRB)は、他の
DBでは通常、用意されていません。このため、今回、MySQL等、他のデータベースに対応するため、
データの分割処理を、内部で処理するように変更します。
これに伴い、GE54(帳票雛形定義)のHSQL,FSQL,BSQLの項目については、Calc帳票としては、有閑
となります。また、レイアウト変更時も、これらの項目に対してのSQL文のセットは行いません。
もし、旧Excel帳票システムを利用する場合は、GE54のトリガを利用して、SQL文をセットして下さい。
(具体的には、ge\db\oracle\sql\05_SRC\forOldExcelReportSystem内のスクリプトを参照して下さい)
ge/jsp/REP02/verify.jsp
ge/jsp/REP03/entry.jsp
org.opengion.fukurou.db.DBFunctionName.getFunctionName(String, String)
org.opengion.hayabusa.report2.ExecQueue.setFsql(String) 廃止
org.opengion.hayabusa.report2.ExecQueue.getFsql() 廃止
org.opengion.hayabusa.report2.ExecQueue.setBsql(String) 廃止
org.opengion.hayabusa.report2.ExecQueue.getBsql() 廃止
org.opengion.hayabusa.report2.ExecQueue.setHsql(String) 廃止
org.opengion.hayabusa.report2.ExecQueue.getHsql() 廃止
org.opengion.hayabusa.report2.QueueManager_DB.create()
org.opengion.hayabusa.report2.QueueManager_DB.set(ExecQueue)
org.opengion.hayabusa.report2.QueueManager_DB.DBTableModelCreator
org.opengion.hayabusa.report2.OdsConverter.print(XComponent, String)
org.opengion.plugin.table.TableFilter_REPORTDATA
org.opengion.plugin.table.TableFilter_REPORTLAYOUT.execute()
[og:equalsタグ・仕様変更]
og:equalsタグで、ignoreCase属性を指定しない場合でも、大文字、小文字を区別して条件判定を行う
ように仕様を変更します。
org.opengion.hayabusa.taglib.EqualsTag
org.opengion.hayabusa.taglib.EqualsTag.release2()
[編集種別(AUTOAREA,TEXTAREA)の仕様変更]
編集種別のAUTOAREA,TEXTAREAで、データの先頭が'_'となっている場合に、自動的に書き込み不可に
なる機能を廃止します。データより書き込み制御を行う場合は、og:viewタグのwritableControl属性で
明示的に対象となるカラムを指定して下さい。
org.opengion.plugin.column.Editor_AUTOAREA.getValue(String)
org.opengion.plugin.column.Editor_AUTOAREA.getValue(int, String)
org.opengion.plugin.column.Editor_TEXTAREA.getValue(String)
org.opengion.plugin.column.Editor_TEXTAREA.getValue(int, String)
[フィルター機能追加]
HybsFileFilter に、ディレクトリの判定を行うかどうかを指定する引数を、コンストラクタに追加します。
これを利用できるように、Process_FileSearch に、useDIR パラメータを実装します。
fukurou.util.HybsFileFilter#HybsFileFilter( final boolean useDIR )
fukurou.process.Process_FileSearch#init( final ParamProcess paramProcess )
[機能追加]
ValueTag で、DBTableModel を参照する場合の scope を指定できるように、tblScope 属性を追加します。
従来は、DBTableModel は、scope="session" からのみ、取得するようになっていました。
(tableId は、パラメータで指定可能でした。)
従来から存在している scope パラメータは、出力のValue に対する指定でした。
hayabusa.taglib.ValueTag#setTblScope( final String scp )
hayabusa.taglib.ValueTag#release2()
hayabusa.taglib.ValueTag#doEndTag()
[機能追加]
HybsFileFilter で、引数のパラメータを、'|' 区切り文字で複数設定可能にします。
また、reverse 引数を追加することで、結果を反転できるようにします。
この対応により、UnMatchesFilter が不要になったため、削除します。
これに伴い、Process_FileSearch に、反転させるパラメータを追加します。
hayabusa.taglib.FileWhereTag#doEndTag()
fukurou.process.Process_FileSearch#init( final ParamProcess paramProcess )
fukurou.util.HybsFileFilter$StartsWithFilter
fukurou.util.HybsFileFilter$EndsWithFilter
fukurou.util.HybsFileFilter$InstrFilter
fukurou.util.HybsFileFilter$EqualsFilter
fukurou.util.HybsFileFilter$MatchesFilter
fukurou.util.HybsFileFilter$UnMatchesFilter 削除
fukurou.util.HybsFileFilter#startsWith( final String prefix,final boolean reverse )
fukurou.util.HybsFileFilter#endsWith( final String suffix,final boolean reverse )
fukurou.util.HybsFileFilter#instr( final String str,final boolean reverse )
fukurou.util.HybsFileFilter#fileEquals( final String str,final boolean reverse )
fukurou.util.HybsFileFilter#matches( final String str,final boolean reverse )
fukurou.util.HybsFileFilter#unMatches( final String str ) 削除
[微修正]
MainProcess で、実行が行われているかどうかの表示で、50件ごとの、"." や、1000件毎の Count=[件数]
表示を、標準出力ではなく、エラー出力に変更します。
これは、出力のログを、リダイレクト ">" 記号で出力させると、混ざって出力されるためです。
fukurou.process.MainProcess#run()
TableDiff で、debug 出力時の項目を増やします。また、デバッグ出力が判る様に、文字列 "DEBUG:" を
先頭に付与します。
fukurou.process.TableDiff.java
[表示機能修正]
display 属性と、debug 属性を見直します。
display 属性は、基本的に、条件に合致した場合の次ぎに渡す行を出力します。
また、debug 属性は、先頭に、"DEBUG:"文字列を追記しますので、通常の画面出力と区別できるようにします。
fukurou.process.Process_DBWriter#action( final LineModel data )
fukurou.process.Process_FileCopy#action( final LineModel data )
fukurou.process.Process_FileSearch#action( final LineModel data )
fukurou.process.Process_Grep#action( final LineModel data )
fukurou.process.Process_TableDiff#action( final LineModel model )
fukurou.process.Process_TableFilter#action( final LineModel data )
fukurou.process.Process_TableWriter#action( final LineModel data )
[共通JSP]
共通JSP(common/gamen/03_DBSEARCH)で、検索結果に、tableFilter で、LABEL を付ける箇所で、
DB登録処理(INSERT,UPDATE,DELETE など)で、エラーになるため、検索件数が0件以上のみ、処理するように変更。
jsp/common/gamen/03_DBSEARCH/result.jsp
[FireBird対応]
DBスクリプト作成 画面で、FireBird を選択できるように、項目を追加します。
jsp/GF2140/query.jsp
[MySQL対応]
明示的に、TransactionIsolation に、TRANSACTION_READ_COMMITTED を指定する。
fukurou.db.ConnectionPool#createInstance()
setObject に ParameterMetaData の getParameterType を渡す。(PostgreSQL対応)
fukurou.business.AbstractBizLogic.execSQL( String, int, ArrayTableModel )
fukurou.db.DBUtil.dbExecute( final String stmt ,final String[] args, final ApplicationInfo appInfo, final String dbid, final boolean useHeader )
fukurou.db.DBUtil.dbExist( final String stmt ,final String[] args, final ApplicationInfo appInfo , final String dbid )
fukurou.process.Process_DBCountFilter#init( final ParamProcess paramProcess )
fukurou.process.Process_DBCountFilter#end( final boolean isOK )
fukurou.process.Process_DBCountFilter#action( final LineModel data )
fukurou.process.Process_DBMerge#init( final ParamProcess paramProcess )
fukurou.process.Process_DBMerge#end( final boolean isOK )
fukurou.process.Process_DBMerge#action( final LineModel data )
fukurou.process.Process_DBMerge#makePrepareStatement( final String table,final LineModel data )
hayabusa.db.DBSimpleTable#startInsert()
hayabusa.db.DBSimpleTable#startUpdate()
hayabusa.db.DBSimpleTable#startDelete()
hayabusa.db.DBSimpleTable#execute( final String[] values )
hayabusa.db.DBSimpleTable#close( final boolean commitFlag )
[GrepChange修正]
置換処理を実施する(true)かどうかを指定するパラメータを追加します。(初期値:置換する[true])
処理速度向上と、置換する場合の前処理(ファイルのコピーやリネームなど)を実行しないようにします。
fukurou.process.Process_GrepChange#init( final ParamProcess paramProcess )
fukurou.process.Process_GrepChange#action( final LineModel data )
[微修正]
connection.setAutoCommit は、ConnectionFactory で設定済みなので、コメントアウトする。
hayabusa.common.SystemParameter#loadDBResource( final Map sysParam )
5.1.1.2 (2009/12/10)
[業務ロジックフレームワーク・Linux対応]
業務ロジックフレームワークで、Javaソースのコンパイル時に指定しているクラスパスの区切り文字が
Windows依存(;)になっていたため、File.pathSeparatorCharを使い、Linuxでも動作するようにします。
org.opengion.hayabusa.taglib.BizLogicTag
org.opengion.fukurou.util.HybsLoaderConfig.HybsLoaderConfig(String, String, boolean)
org.opengion.fukurou.util.HybsLoaderConfig.HybsLoaderConfig(String, String, boolean, boolean, String)
[MySQL対応]
MySQLで、500Byte以上のカラムについては、カラム定義をVARCHARではなく、TEXTで定義します。
これは、MySQLの制限として
@ユニークインデックスは、767 bytes 以内にする必要がある。
Aインデックスは、1000byte 以内にする必要がある。
Bテーブルの全カラムの合計バイト数が、65535 を超えるとエラー(UTF-8の場合、実バイト数x3)
が存在するためです。
この対応に伴い、ROLES等、インデックスのキーになっている項目も、定義がTEXTになります。
このような場合、INDEXの定義として、部分インデックス(先頭255Bytesのみインデックス化)を使用
することで、対応を行います。
org.opengion.plugin.table.TableFilter_TABLE_MYSQL.makeLineList(String[], boolean)
org.opengion.plugin.table.TableFilter_INDEX.execute()
org.opengion.plugin.table.TableFilter_INDEX.makeIndexClmStr(String, int)
org.opengion.plugin.table.TableFilter_INDEX_MYSQL.makeIndexClmStr(String, int)
org.opengion.fukurou.db.DBFunctionName.getFunctionName(String, String)
[Admin管理画面・バグ修正]
Admin管理画面の「パラメータ」が正しく表示されないバグを修正します。
(原因:リンク時に画面IDが正しくセットされていなかったため)
org.opengion.hayabusa.servlet.HybsAdmin.getAdminLink()
5.1.1.1 (2009/12/02)
[選択行スクロール・バグ修正]
行選択後、画面遷移した際に、選択行に自動的に遷移する機能で、ヘッダーラベルに改行が
含まれている場合に、入力行が隠れてしまう(スクロールし過ぎてしまう)バグを修正します。
このバグを修正するため、スクロールする際の基準となる行を、既存の「選択行の1つ前」から
「選択行自身」に変更します。
jsp/common/default.js#focus2()
org.opengion.plugin.view.AbstractViewForm.isFirstChecked(int)
5.1.1.0 (2009/12/01)
[業務ロジックフレームワーク・α版リリース]
業務ロジックをJavaでコーディングするためのフレームワークのα版をリリースします。
(今回のリリースは、あくまで開発者向けリリースです。正式版リリースまでの間にインターフェース
レベルで仕様が変更される可能性があります)
taglib.tld
org.opengion.common.SystemData
org.opengion.hayabusa.resource.ResourceManager.getLabel(String, String[])
org.opengion.hayabusa.taglib.BizLogicTag
org.opengion.fukurou.business.AbstractBizLogic
org.opengion.fukurou.business.ArrayTableModel
org.opengion.fukurou.business.BizLogic_CURSOR
org.opengion.fukurou.business.BizLogic_ENTRY
org.opengion.fukurou.business.BizLogic_TABLE
org.opengion.fukurou.business.BizLogic
org.opengion.fukurou.util.HybsLoaderFactory
org.opengion.fukurou.util.HybsLoader
org.opengion.fukurou.util.HybsLoaderConfig
org.opengion.fukurou.util.SystemParameter.replace(HybsEntry[])
org.opengion.fukurou.util.SystemParameter.replace(Map)
gf.common.GFP00001 サンプル
gf.gf9140.GFP19140A サンプル
gf.gf9440.GFP19440A サンプル
gf.gf9540.GFP19540S サンプル
gf/jsp/GF9140 サンプル
gf/jsp/GF9240 サンプル
gf/jsp/GF9340 サンプル
gf/jsp/GF9440 サンプル
gf/jsp/GF9540 サンプル
[リファクタリング]
ErrMsgクラス及びErrorMessageクラスをorg.opengion.fukurou.utilに移します。
(業務ロジックからこれらのクラスを参照するため)
org.opengion.fukurou.util.ErrMsg パッケージ移動
org.opengion.fukurou.util.ErrorMessage パッケージ移動
org.opengion.fukurou.business.AbstractBizLogic
org.opengion.fukurou.business.BizLogic
org.opengion.fukurou.business.BizLogic_ENTRY
org.opengion.fukurou.business.BizLogic_TABLE
org.opengion.hayabusa.db.DBColumn
org.opengion.hayabusa.db.DBErrMsg
org.opengion.hayabusa.db.DBTableModelUtil
org.opengion.hayabusa.db.DBType
org.opengion.hayabusa.db.Query
org.opengion.hayabusa.db.TableFilter
org.opengion.hayabusa.resource.ResourceManager
org.opengion.hayabusa.taglib.BizLogicTag
org.opengion.hayabusa.taglib.ColumnCheckTag
org.opengion.hayabusa.taglib.CommonForwardTag
org.opengion.hayabusa.taglib.DataCheckTag
org.opengion.hayabusa.taglib.DBMetaDataQueryTag
org.opengion.hayabusa.taglib.DirectTableInsertTag
org.opengion.hayabusa.taglib.DirectWriteTableTag
org.opengion.hayabusa.taglib.EntryTag
org.opengion.hayabusa.taglib.ErrorMessageTag
org.opengion.hayabusa.taglib.LDAPQueryTag
org.opengion.hayabusa.taglib.MailSenderTag2
org.opengion.hayabusa.taglib.PlsqlUpdateTag
org.opengion.hayabusa.taglib.QueryTag
org.opengion.hayabusa.taglib.ReadTableTag
org.opengion.hayabusa.taglib.TableExistTag
org.opengion.hayabusa.taglib.TableFilterTag
org.opengion.hayabusa.taglib.TableUpdateTag
org.opengion.hayabusa.taglib.TaglibUtil
org.opengion.plugin.column.AbstractDBType
org.opengion.plugin.column.DBType_ALL
org.opengion.plugin.column.DBType_DATE
org.opengion.plugin.column.DBType_K
org.opengion.plugin.column.DBType_OASNM
org.opengion.plugin.column.DBType_R
org.opengion.plugin.column.DBType_S9
org.opengion.plugin.column.DBType_X9
org.opengion.plugin.column.DBType_XH
org.opengion.plugin.column.DBType_XHU
org.opengion.plugin.column.DBType_XK
org.opengion.plugin.column.DBType_XKZ
org.opengion.plugin.column.DBType_XL
org.opengion.plugin.column.DBType_XLU9
org.opengion.plugin.column.DBType_XU
org.opengion.plugin.column.DBType_XU9
org.opengion.plugin.column.DBType_YM01
org.opengion.plugin.column.DBType_YM31
org.opengion.plugin.column.DBType_YMD
org.opengion.plugin.query.AbstractQuery
org.opengion.plugin.query.Query_JDBC
org.opengion.plugin.query.Query_JDBCArrayCallable
org.opengion.plugin.query.Query_JDBCCallable
org.opengion.plugin.query.Query_JDBCErrMsg
org.opengion.plugin.query.Query_JDBCKeyEntry
org.opengion.plugin.query.Query_JDBCPLSQL
org.opengion.plugin.query.Query_JDBCPrepared
org.opengion.plugin.query.Query_JDBCTableUpdate
org.opengion.plugin.query.Query_JDBCUpdate
org.opengion.plugin.table.AbstractTableFilter
org.opengion.plugin.table.TableFilter_CLMSET
org.opengion.plugin.table.TableFilter_DBARG
org.opengion.plugin.table.TableFilter_DBARG_OUT
org.opengion.plugin.table.TableFilter_DBSELECT
org.opengion.plugin.table.TableFilter_DTYPE
org.opengion.plugin.table.TableFilter_INDEX
org.opengion.plugin.table.TableFilter_LABEL
org.opengion.plugin.table.TableFilter_TABLE
[表示種別=DECIMALの仕様変更]
表示種別=DECIMALでリソースの初期値がnullに、そのままnullで表示されるようにします。
これまでは、nullの場合でも0が表示されていました。この変更により、nullの場合に0を
表示する際は、リソースの初期値に明示的に0を設定を行う必要があります。
org.opengion.plugin.column.Renderer_DECIMAL.Renderer_DECIMAL()
org.opengion.plugin.column.Renderer_DECIMAL.Renderer_DECIMAL(DBColumn)
[Google Chrome対応]
Google Chromeで左メニューのプルダウンが正しく動作しない問題に対応します。
jsp/common/menu/GmisTree.js
[Linux版起動スクリプト修正]
CentOSでも起動スクリプトが動作するように修正します。
bin/startup.sh
bin/startHsqldb.sh
bin/shutdown.sh
[MySQL/PostgreSQL 対応]
MySQL対応 明示的に、TRANSACTION_READ_COMMITTED を指定する。
fukurou/process/ConnData#ConnData( final String url,final String user, final String passwd,final int uniq )
fukurou/xml/HybsXMLSave#main( final String[] args ) ※ main メソッドなので、サンプル実行時のみ影響
PostgreSQLの場合は、stmt.setObject() する場合に、 ParameterMetaData の Type を利用して
型変換を明示的に指定する必要があります。(Oracle,hsqldb,Mysql,MS SQL Server は、自動変換可能)
よって、PostgreSQL の場合だけ、true を返すように修正します。
fukurou/util/ApplicationInfo#useParameterMetaData( final Connection conn )
実行エラー時に、rollback を追加(PostgreSQL対応)
SQLException が発生した場合に、ほとんどのケースで、rollback を入れているが、
ORACLE の場合は、自動的に次のトランザクションの実行が可能であったが、PostgreSQL では、
明示的に、rollback しておかないと、次の処理がエラーになってしまう。
hayabusa/common/SystemInstaller#getOldMaxVersion()
hayabusa/common/SystemInstaller#getOldSystemVersion() throws SQLException
[Connection 関連の見直し]
connection.setAutoCommit は、ConnectionFactory で設定済みなので、コメントアウトする。
hayabusa/common/SystemParameter.#loadDBResource( final Map sysParam ) throws SQLException
[loadXMLScript 関連の見直し]
新規にスキーマを作成する場合に、もう少しコメントを出して、処理中ということが判る様にします。
hayabusa/common/SystemInstaller#loadXMLScript( final String type, final String context ) throws SQLException
[TableFilter 関連の見直し]
HybsSystem.CR を AbstractTableFilter にのみ配置し、各サブクラスはそれを利用するように修正。
FIREBIRD、HSQLDB、MYSQL、SQLSERVER、POSGRE を追加、見直し。
データのアクセス用の配列番号のIDを private ⇒ protected にし、各サブクラスはそれを利用するように修正。
各種メソッドのコメント(JavaDoc)の記述
plugin/table/AbstractTableFilter.java
plugin/table/TableFilter_INDEX_FIREBIRD.java
plugin/table/TableFilter_DBARG_OUT.java
plugin/table/TableFilter_INDEX.java
plugin/table/TableFilter_INDEX_HSQLDB.java
plugin/table/TableFilter_INDEX_MYSQL.java
plugin/table/TableFilter_INDEX_POSGRE.java
plugin/table/TableFilter_INDEX_SQLSERVER.java
plugin/table/TableFilter_REPORTLAYOUT.java
plugin/table/TableFilter_TABLE.java
plugin/table/TableFilter_TABLE_FIREBIRD.java
plugin/table/TableFilter_TABLE_SQLSERVER.java
plugin/table/TableFilter_TABLE_HSQLDB.java
plugin/table/TableFilter_TABLE_MYSQL.java
plugin/table/TableFilter_TABLE_POSGRE.java
[_build.bat,build.xml の見直し]
データベース定義を出力する箇所で、MYSQL,POSGRE 等のスキーマ出力に対応
データ出力は、target=xml 、スキーマ出力は、taget=table と分離する。
target=compile で、コンパイルオプションに、-Xlint:all を追加
webapps/gf/_build.bat
webapps/gf/build.xml
[startup**.bat の追加]
MySQL と PostgreSQL の 起動バッチ(インストーラ版)を追加します。
bin/startupMySQL.bat
bin/startupPostgres.bat
[データベース自動インストールの機能修正]
hsql , mysql , oracle , postgres について、VIEWの変更と初期データの変更を
行いました。
GEA10V01.sql に、RMCN_USR が設定されていましたが、これを GEA10.xm のデータとして
設定するようにします。
ge/db/hsql/
ge/db/mysql/
ge/db/oracle/
ge/db/postgres/
5.1.0.0 (2009/11/04)
[クロス集計機能バグ修正]
5.0.0.3 (2009/09/22)で機能追加した合計列の先頭表示の機能について、合計列が
複数カラム存在する場合に正しく表示されないバグを修正します。
org.opengion.plugin.view.ViewForm_HTMLCrossTable.create(int, int)
[ユーザーリソース項目追加]
ユーザーリソースにメールアドレスの項目を追加します。
これに伴い、メールモジュールのメール取得用ビュー(GE35)も変更しています。
ge/jsp/GE0001
GEA10 MAILADの項目を追加
GE35 ビュー定義変更
[My SQL対応]
標準的なデータベースの予約語に対して、カラム名を置き換えます。
これに伴い、Javaソース、JSP、データベース定義等も変更いたします。
GE30 FOOTER ⇒ F_TXT
GE30 HEADER ⇒ H_TXT
GE31 CONTENT ⇒ CONTENTS
GE32 CONTENT ⇒ CONTENTS
GE33 MEMBER ⇒ ADDRESS
GE33 NAME ⇒ NAME_JA
GE33 NM_KBN ⇒ KBNAME
GE50 OUTDIR ⇒ OUT_DIR
GE50 OUTFILE ⇒ OUT_FILE
GE51 TEXT ⇒ TEXT_DATA
GE52 COLUMN_NAME ⇒ CLM
GE53 OUTDIR ⇒ OUT_DIR
GE53 OUTFILE ⇒ OUT_FILE
GE55 HOST ⇒ HOST_ID
GE58 COLUMN_NAME ⇒ CLM
GEA05 ROLE ⇒ ROLES (桁数 500 変更含む)
GEA10 NAME ⇒ NAME_JA
GF21 GF70 〜 GF77 カラム追加
GF21 PREFIX ⇒ PRE_FIX
GF21 VERSION ⇒ VERNO
GF22 PREFIX ⇒ PRE_FIX
GF22 TYPE ⇒ VAL_TYPE
GF22 VERSION ⇒ VERNO
GF23 VERSION ⇒ VERNO
GF24 VERSION ⇒ VERNO
GF25 VERSION ⇒ VERNO
GF43 MONTH ⇒ MM
GF43 YEAR ⇒ YYYY
GF44 NAME ⇒ NAME_JA
GF60 NAME ⇒ NAME_JA
GF60 ROLE ⇒ ROLES (桁数 500 変更含む)
GF61 NAME ⇒ NAME_JA
GF62 NAME ⇒ NAME_JA
GF62 VERSION ⇒ VERNO
GF63 FUNCTION ⇒ FUNC
GF63 LOAD ⇒ SU_LOAD
GF63 NAME ⇒ NAME_JA
GF64 NAME ⇒ NAME_JA
GF65 FUNCTION ⇒ FUNC
GF66 LOAD ⇒ SU_LOAD
GF70 TEXT ⇒ TEXT_DATA
GF71 KEYS ⇒ P_KEYS
GF71 TEXT ⇒ TEXT_DATA
GF71 VALS ⇒ P_VALS
GF72 KEYS ⇒ P_KEYS
GF72 VALS ⇒ P_VALS
GF73 NAME ⇒ FORM_NAME
GF73 TEXT ⇒ TEXT_DATA
GF73 VALUE ⇒ FORM_VAL
GF74 NAMES ⇒ CLMS
GF74 QUERY ⇒ SQL_TEXT
GF74 QUERYTYPE ⇒ SQL_TYPE
GF74 SCOPE ⇒ JSP_SCOPE
GF76 VERSION ⇒ VERNO
GF79 NAME ⇒ NAME_JA
GF93 KEYS ⇒ P_KEYS
GF93 VALS ⇒ P_VALS
WKGE52_XIN COLUMN_NAME ⇒ CLM
java,sql,xml,xsl の各修正ファイルは、別途一覧をご確認ください。
jsp に関しましては、ほぼ、すべての箇所に修正が及んでいますので、
一覧での提供は行いません。
5.0.2.0 (2009/11/01)
[Google Chrome対応]
Google Chromeで拡張検索条件を表示すると、縦に表示されてしまう問題に対応します。
jsp/common/default.css
[ガントチャート機能・バグ修正]
ガントチャート表示機能(og:ganttHeaderタグ)で、view_zoomに1(2週間)を指定した際に、日付表示が
おかしくなるバグを修正します。
これは、4.3.7.3 (2009/06/22)の以下の修正によるものです。今回の対応では、letter-spacing属性を
コメントアウトします。(firefox対応については、別途検討します)
--- 元の修正 --------------------------------------------------------------------------
4.3.7.3 (2009/06/22)
[FireFox対応]
・ガント表示でヘッダー表示される日付が枠からはみ出して正しく表示されないバグを修正します。
jsp/common/default.css
---------------------------------------------------------------------------------------
jsp/common/default.css
[リファクタリング]
common,customフォルダ内のJSPでリンクパスが相対パスになっているものについて、他と同様に
{@SYS.JSP}を経由した絶対パス形式の記述に変更します。
jsp/custom/query_info.jsp
jsp/custom/query_tab_info.jsp
jsp/custom/matrix_info.jsp
[DB検索画面修正]
@ファイルセーブ機能が正しく動作しないバグを修正します。(パスの設定に誤りがあったため)
Aオブジェクト依存関係の正展開、逆展開機能を追加します。
executionで
(a)referenced(recur down) を 選択し、オブジェクト名を入力するとそのオブジェクトを基点として
正展開することができます。展開結果に対して、REF_NAMEを入力し、参照オブジェクトの絞込み
を行うことも可能です。
(b)referenced(recur up) を 選択し、REF_NAMEを入力するとそのオブジェクトを基点として
逆展開することができます。展開結果に対して、オブジェクト名を入力し、参照オブジェクトの絞込み
を行うことも可能です。
jsp/common/gamen/03_DBDSEARCH/
[tabLinkタグ改善]
openTab属性がfalseの場合でも、openTabNameに指定された場合、その指定されたタブをハイライトする
ようにします。
これは、他の画面からタブ画面に遷移した場合に、リンクの引数(command=NEW)と、タブの自動オープンの
2重でタブの中身が開かれ、タイミングによっては、
”QueryTag Query処理が割り込まれました。DBTableModel は登録しません。”
のエラーになります。
このような場合に対応は、openTabをfalseにし、openTabNameのみを指定することで、タブのよる自動オープン
をせずに、開かれたタブのハイライトのみを行うことで対応することができます。
org.opengion.hayabusa.taglib.TabLinkTag.makeTag()
jsp/common/tabLink.js#initialTabSelect(boolean, Object)
[Calc帳票システム改善]
@ローカルリソースフラグ
今まではローカルリソースフラグがfalseの場合、GEのリソース(帳票システムが起動しているリソース)
を適用していましたが、この仕様を変更し、ローカルリソースフラグがfalseの場合は、リソースを
使用しないようにします。(GEのリソースは意識されることがなく、不要な変換が行われるため)
Aリソース適用時のデータ変換
リソース適用時、数値カラムでマイナスデータが存在すると、spanタグで囲われてしまうバグを
修正します。(spanタグを除去)
org.opengion.hayabusa.report2.OdsContentParser.getHeaderFooterValue(String)
org.opengion.hayabusa.report2.OdsContentParser.getBodyValue(String, int)
org.opengion.hayabusa.report2.OdsContentParser.checkValue(String)
[戻るリンク・機能追加]
戻るリンクタグ(backGamenタグ)に相対パスで戻るリンクを作成する機能を追加します。
通常、戻るリンクは、linkタグで生成された絶対パスを利用して戻る先のアドレスを決定しており、
通常利用においては、他システム間での画面リンクも正常動作するため、問題ありません。
但し、ロードバランサーなどを経由し、アドレス変換されているような場合は、絶対パスが
有効とならないケースがあるため、相対パスによる戻るリンクを対応します。
当然のことながら、この機能を利用する場合は、異なるシステム間のリンクは正しく動作しません
ので、ご注意下さい。
org.opengion.hayabusa.taglib.BackGamenTag.makeTag()
org.opengion.hayabusa.taglib.BackGamenTag.makeLinkTag()
org.opengion.hayabusa.taglib.BackGamenTag.makeButtonTag()
org.opengion.hayabusa.taglib.BackGamenTag.setType(String)
[リソース登録画面不具合修正]
リソース登録画面(カラム、ラベル、コード)で差分更新を行った際、関係のないラベルリソースの内容が
書き換えられてしまうバグを修正します。
これは、差分更新を行う際、Fromの接続先から取得されたラベルリソースのユニーク番号をキーとして、
Toの接続先のラベルリソースのデータを更新していたためです。
ge4/jsp/GE0002
ge4/jsp/GE0003
ge4/jsp/GE0004
[クリアボタン・バグ修正]
戻るボタンが出力されている状態で、クリアボタンを押すと、戻るボタンが消える不具合を修正します。
org.opengion.hayabusa.taglib.QueryButtonTag.getReset()
[JSP解析・改善]
QUERY定義検索から、使用カラム検索への画面リンクを追加します。
この目的は、QUERY定義検索で、呼び出しPL/SQLを調査する際、PL/SQLのcallステートメント自体が
引数で渡されている場合、QUERY定義検索だけでは、呼び出しPL/SQLがわからないことに対応するため
のものです。(このため、リンクの引数には、ファイル名は付加していません。)
gf/jsp/DOC14/result.jsp
[JSP解析・バグ修正]
QUERY定義検索、JSPファイルの一覧でタグのbody部分を指定する際に、textデータが抜き出されない
(子供のタグ要素の部分しか抜き出されない)バグを修正します。
gf/jsp/DOC18/xslt/GF74_PROG.xsl
gf/jsp/DOC18/xslt/GF76_PROG.xsl
[拡張機能・リソース連携修正]
リソース連携の差分検索時の条件のシステムIDが "**" の条件をはずします。
gf/jsp/GF2120/GFM0007.jsp
gf/jsp/GF2120/GFM0010.jsp
gf/jsp/GF2120/GFM0011.jsp
gf/jsp/GF2120/GFM0012.jsp
gf/jsp/GF2120/GFM0013.jsp
gf/jsp/GF2120/GFM0014.jsp
gf/jsp/GF2120/GFM0029.jsp
gf/jsp/GF2120/GFM0030.jsp
gf/jsp/GF2120/GFM0031.jsp
[selectタグ機能追加]
selectタグでmultiple="true"を選択した場合に、初期状態で複数選択が有効になるように
対応します。具体的には、同一のカラム名を複数持つ画面から、selectタグが記述された
次画面に遷移した際、それぞれのカラムに入力された全ての値に対し、プルダウンが選択
状態になります。(この機能は、multiple="true"の場合のみ有効です)
org.opengion.hayabusa.taglib.SelectTag.setValue(String)
org.opengion.hayabusa.taglib.SelectTag.doStartTag()
org.opengion.hayabusa.taglib.SelectTag.setDefaultVal(String)
org.opengion.hayabusa.taglib.OptionTag.doEndTag()
org.opengion.hayabusa.taglib.OptionTag.makeTag()
org.opengion.hayabusa.taglib.QueryOptionTag.doEndTag()
org.opengion.hayabusa.taglib.QueryOptionTag.makeLabel(SelectTag)
[帳票デーモン起動画面バグ修正]
起動状況に他のシステムIDのデータが表示されるバグを修正します。
ge/jsp/REP21/result.jsp
[帳票システムバグ修正]
Calcの関数内に、{@xxxx_}が存在し、かつそのデータに"(ダブルクオーテーション)が
含まれていた場合にエラーとなるバグを修正します。
org.opengion.hayabusa.report2.OdsContentParser.replaceOoocError(String)
[帳票システムバグ修正]
Calc帳票でデータに改行Cが含まれている場合に、Calc上で改行されないバグを修正します。
関数内に改行Cが含まれている場合、改行Cは無視されます。(OOoの制限上、関数の引数として
改行Cを含む文字列は受け取れないため)
org.opengion.hayabusa.report2.OdsContentParser.checkValue(String)
org.opengion.hayabusa.report2.OdsContentParser.replaceOoocError(String)
[アクセス統計テーブル(GE15)再編成機能追加]
アクセス統計テーブルの再編成機能を追加します。再編成処理は、Tomcatシャットダウン時に
実行されます。データの保存期間の初期値は、180日です。この期間は、システムリソースの
ACCESS_TOKEI_ALIVE_DAYSで変更することができます。
(nullを指定した場合、再編成は行われません)
※既存バグにより、本バージョンより以前のバージョンで追加されたGE15のデータは、DYSETが
セットされていないため、再編成が実施されません。
本バージョンを導入する際に、以下のSQLにより、DYSETの設定をして下さい。
update ge15 set dyset=dylogout;
--------------------------------
org.opengion.hayabusa.common.SystemData.ACCESS_TOKEI_ALIVE_DAYS
org.opengion.hayabusa.common.HybsContextListener.contextDestroyed(ServletContextEvent)
org.opengion.hayabusa.common.SystemManager.deleteGUIAccessInfo()
org.opengion.hayabusa.resource.UserInfo.saveGUIAccessInfo()
org.opengion.hayabusa.db.DBSimpleTable.setWhere(String) DELETE処理が実行できないバグを修正
org.opengion.hayabusa.db.DBSimpleTable.getDeleteSQL() DELETE処理が実行できないバグを修正
GE15 インデックス追加(GE15_SC SYSTEM_ID,DYSET)
5.0.1.1 (2009/10/02)
[行ハイライト機能バグ修正]
5.0.0.3 (2009/09/22)で実施した改善で、チェックボックスが存在しない行で行ハイライト機能
が正常に動作しない問題に対応します。
jsp/common/hilightRow.js
5.0.1.0 (2009/10/01)
5.0.0.4 (2009/10/01)
[レスポンス測定画面追加]
画面レスポンスを追加するための画面を新規に作成します。(実験のカテゴリー内)
gf/jsp/GF7120
[noTransition利用時のuseSelectedRow不具合修正]
これまでnoTransitionを利用して登録した際にはuseSelectedRowをfalseに
指定する必要がありました。(最終行に戻ってしまうため)
noTransitionのJavaScript側で戻るための行番号をname="SEL_ROW"で出力するようにします。
entry.jspのforwardタグにkey="SEL_ROW",value="{@SEL_ROW}"を追加して下さい。
jsp/common/option/jqog.js
jsp/common/option/noTransition.js
5.0.0.3 (2009/09/22)
[ユーザーリソース登録画面修正]
ユーザーリソース登録画面で、Excel取込した場合に重複されるユーザーが登録できるバグを
修正します。
※リソース登録画面は、エンジンタグによりデータチェック・登録を行っているため、画面から
入力されたデータに対する重複チェックは、画面単位に実装を行う必要があり、この対応は、
根本的な解決にはなりません。恒久対策については、業務ロジックのJava化時に検討します。
ge/jsp/GE0001/entry.jsp
[ヘッダーソート機能バグ改善]
ヘッダーソート後に、追加ボタンなどを押し、その後取り消しボタンを押すと逆順にソートされ
てしまうバグを修正します。
hayabusa/taglib/ViewFormTag#doStartTag()
[タスク埋め画面修正]
タスク埋めガント(GANTT09)で、左右分割の左と右のViewの間に
空のtdタグが大量に出力され、スペースが出来ていました。
(空tdはIEのcolspanバグの対応のために出力)
og:theadタグ内でitdタグを利用している場合と利用していない場合で
この空tdタグの出力数を変える事で対応します。
plugin/view/FiewForm_HTMLGanttTable#clear()
plugin/view/FiewForm_HTMLGanttTable#create( int, int )
plugin/view/FiewForm_HTMLGanttTable#getHeadLine()
[行ハイライト機能バグ修正]
行ハイライトで全行チェックボックスを押した後、行の選択を外すのに、2回クリックしなければ
ならないバグを修正します。
(これは、行ハイライトの判断基準が行の背景色(ハイライトされているか)で判断していたためです。
今回の対応で、行のチェックボックスの状態を元に、ハイライトするかを判断します)
jsp/common/hilightRow.js
[メニュー表示(グループス)・バグ修正]
グループメニューの表示で、表示対象のグループスが1件の場合に表示されないバグを修正します。
hayabusa/taglib/TopMenuTag#makeGroupMenu()
[クロス集計機能改善]
クロス集計の合計列をCUBEの先頭に表示できるようにします。
crossParamタグのfirstClmGokei属性をtrueにセットして下さい。
初期値はfalse(最終列)です。
hybs-taglib.tld
hayabusa/html/ViewCrossTableParam#FIRST_CLM_GOKEI_KEY
hayabus/taglib/ViewCrossParamTag#setFirstClmGokei( String )
plugin/view/ViewForm_HTMLCrossTable#create()
plugin/view/ViewForm_HTMLCrossTable#paramInit( DBTableModel )
plugin/view/ViewForm_HTMLCrossTable#getHeadLine()
5.0.0.2 (2009/09/15)
[セキュリティ対応:エラーメッセージ制御・カスタマイズエラー画面作成]
Tomcat及びJSPのエラーが発生した際に出力される情報を減らす事で
セキュリティ上のリスクを軽減します。
スタックトレース情報及びバージョンの情報が出力されなくなります。
tomcatのconf/web.xml内を置き換えて下さい。
(ログは今まで通り出力されます。)
tomcat/conf/web.xml error-page修正
context/jsp/common/error.jsp
hayabusa/taglib/ErrorTag#VIEW_MSGTYPE
hayabusa/taglib/ErrorTag#doEndTag()
hayabusa/taglib/ErrorTag#getStackTrace( Throwable, String )
hayabusa/taglib/ErrorTag#getStackData( StringBuilder, Throwable, String )
[リクエスト変数のXSS対策]
{@xxx}で変換するリクエストパラメータに対してless/greater than sign(<,>)のチェックを
行うようにします。
チェックを行うかどうかはシステムパラメータのUSE_XSS_CHECKで設定します。(初期値true)
但し、一部タグではこのチェックをかけないようにしています。
SQL文で利用する可能性のあるQuery,QueryOption,And,Updateタグに関しては
xssCheck属性で個別に設定可能です。
XSSチェックの利用に際しては全画面に対して動作確認をして下さい。
hybs-taglib.tld
hayabusa/common/SystemData#USE_XSS_CHECK
hayabusa/taglib/CommonTagSupport#release2()
hayabusa/taglib/CommonTagSupport#getRequestValue( String )
hayabusa/taglib/CommonTagSupport#getRequestValue( String, boolean )
hayabusa/taglib/CommonTagSupport#useXssCheck( boolean )
hayabusa/taglib/QueryOptionTag#doAfterBody()
hayabusa/taglib/QueryOptionTag#release2()
hayabusa/taglib/QueryOptionTag#setXssCheck( String )
hayabusa/taglib/Querytag#doAfterBody()
hayabusa/taglib/Querytag#release2()
hayabusa/taglib/Querytag#setXssCheck( String )
hayabusa/taglib/SqlAndTag#doStartTag()
hayabusa/taglib/SqlAndTag#release2()
hayabusa/taglib/SqlAndTag#setXssCheck( String )
hayabusa/taglib/EntryTag#setRequestValues() ALLをチェック対象から外す
hayabusa/taglib/FavoritelinkTag#doStartTag() XSSチェックをかけない
hayabusa/taglib/ColumnCheckTag#doStartTag() XSSチェックをかけない
hayabusa/taglib/FrameTag#doStartTag() XSSチェックをかけない
hayabusa/taglib/CommonForwardTag#doEndTag() XSSチェックをかけない
[メッセージのサニタイジング処理廃止]
XSSチェックを導入したため、導入したメッセージ引数の
HTMLサニタイジング処理を廃止します。
又、columnCheckタグでxssチェックをしない箇所をユーザが実際に
入力したリクエストパラメータに限定します。
その他タグで無条件許可していたものも変更します。
hayabusa/resource/LabelData#getMessage(String[]) サニタイジング処理廃止
hayabusa/resource/LabelData#getDescription(String[]) サニタイジング処理廃止
hayabusa/taglib/ColumnCheckTag#doStartTag()
hayabusa/taglib/ColumnCheckTag#makeErrorMessage( ErrorMessage )
hayabusa/taglib/ColumnCheckTag#makeEntryErrorMessage( ErrorMessage )
hayabusa/taglib/FavoritelinkTag#doStartTag()
hayabusa/taglib/FavoritelinkTag#makeUrlEncode( HttpServletRequest )
hayabusa/taglib/FrameTag#doStartTag()
hayabusa/taglib/CommonForwardTag#doEndTag()
[DB定義システム・不具合修正]
DB定義書の取込機能がHSQLDBで正しく動作しない問題について対応します。
gf/jsp/GF2060/dbdefIn.jsp
[自動インストール機能不具合修正]
拡張子がxmlファイル以外のファイルは読み込まないように修正します。
(subversionにアップした際、各フォルダに.svnが作成され、これも読み込もうとしていた)
org.opengion.hayabusa.common.SystemInstaller#loadXMLScript(String,String)
[ViewFormの修正]
viewタグ内で[KEY.xxx]や[I]の形式が利用できなかったHTMLFormatTextFieldを、
利用できるように修正します。
plugin/view/ViewForm_HTMLFormatTextField#create( int, int )
[ボタンメニューの修正]
ボタンメニューのボタン間隔を狭くして、ボタンが多く入るようにします。
jsp/common/default.css .buttonMenu変更
[リソースXML抜き出し画面修正]
リソースXML抜き出し画面で作成区分の条件に'<','>'を指定した場合にxssCheckで
エラーになるバグを修正します。
jsp/GE0009/result_resource.jsp
---------------------------------------------------------------------------
[配布パッケージの変更]
devパッケージから、appsフォルダを分離します。
appsフォルダは、環境毎(現状は、win32とlinux32のみ)に用意し、配布します。
[Calc帳票LINE_COPY機能]
Calc帳票で{@LINECOPY}と記述する事で、その行以降データが存在しなくなるまで
該当行と同じレイアウトでBODY部分を出力し続けます。
ヘッダ・フッタ処理は通常通り行われますが、LINECOPY行以降のオブジェクトが
ずれるため、下部にオブジェクトを配置するような帳票では利用できません。
hayabusa/report2/OdsContentParser#LINE_COPY
hayabusa/report2/OdsContentParser#execContent()
hayabusa/report2/OdsContentParser$OOoCalcSheet#incrementKey( String, int )
hayabusa/report2/OdsContentParser$OOoCalcSheet#analyze( String, int )
hayabusa/report2/OdsContentParser$OOoCalcSheet#lineCopy( String, int )
jsp/GF2020/DBDEF.ods LINE_COPY版に変更
[andタグのmulti機能修正]
mis:andタグでmulti属性をtrueにすると'A','B'という形式で出力されますが、
空文字のみで送信した場合に'',''のように出力されていました。
複数のリクエストが全てnullか空文字の場合は{@xxx}がnullという扱いとし、
通常のnull値の場合と同様にand句そのものを出力しないようにします。
hayabusa/taglib/SqlAndTag#getRequestValue( String )
hayabusa/taglib/SqlAndTag#release2()
hayabusa/taglib/SqlAndTag#doEndTag()
[JDK,Tomcatのバージョンアップ]
Windows標準環境をJDK1.6update16、Tomcat6.0.20にバージョンアップします。
(Linux版については、まだリリースされていません)
openGion_apps_win32_5.1.zip
[新規クラス Process_StringUtil 作成]
・StringUtilクラスの特定のメソッドでデータ変換する、Process_StringUtil クラスを新規追加します。
現時点で利用できるStringUtil のメソッドは、下記の通りです。
urlEncode : UTF-8 で、URLエンコードを行う。
rTrim : 文字列の後ろのスペースを削除
htmlFilter : HTML上のエスケープ文字を変換
getMD5 : MessageDigestにより、MD5 でハッシュした文字に変換
code39 : CODE39 の 文字列を作成(チェックデジット付き)
getUnicodeEscape : HTML のエスケープ記号(&#xZZZZ;)に変換
getReplaceEscape : HTML のエスケープ記号(&#xZZZZ;)を戻す
spanCut : 引数からspanタグを取り除く
・このクラスの追加に伴い、Process_UnicodeEscape.java をdeprecatedにします。
類似機能に、Process_StringUtil を利用してください。
-action 引数に、getUnicodeEscape か、getReplaceEscape を指定することで、
ESCAPE(変換)/REVERSE(戻し) の指定と同一の処理を行います。
fukurou/process/Process_StringUtil 新規追加
fukurou/process/Process_UnicodeEscape deprecated コメント追記
[整合性チェック(種別間) 修正]
GF2090 整合性チェック(種別間) を修正しましたので、更新願います。
更新処理を、update.jsp , entry.jsp 形式に変更・複写機能、削除機能を追加(削除機能のみあった)
・使用フラグが無効だったので、削除、JSPフォルダを差し替えてください。
[画面自動作成機能追加]
画面自動作成を行うサンプル機能を追加します。
gf/jsp/GF2200
gf/jsp/GF2201
gf/jsp/GF2202
gf/jsp/GF2203
gf/jsp/GF2251
gf/jsp/GF2252
gf/jsp/GF2253
GE90 テーブル追加
GE91 テーブル追加
GE92 テーブル追加
GE93 テーブル追加
GE94 テーブル追加
GE95 テーブル追加
GE96 テーブル追加
5.0.0.1 (2009/08/15)
[起動スクリプト不具合]
・HSQLDBの起動用スクリプト(uap/bin/startupHSQLDB.bat)に不具合があり、
正しく起動しないバグを修正します。
・Oracleの起動環境変数設定スクリプト(uap/bin/init.bat)のドライバークラスが
oracle.jdbc.driver.OracleDriver から oracle.jdbc.OracleDriver に変更します。
uap/bin/startupHSQLDB.bat
uap/bin/init.bat
[リファクタリング]
1.StringBuffer の箇所を、StringBuilder に置き換えます。
hayabusa\mail\AbstractMailManager.java(184): // StringBuffer errMsgBuf = new StringBuffer();
hayabusa\mail\AbstractMailManager.java(209): StringBuffer errMsgBuf = new StringBuffer();
hayabusa\mail\AbstractMailManager.java(505): StringBuffer idBuf = new StringBuffer();
hayabusa\mail\MailPattern.java(182): StringBuffer contentBuf = new StringBuffer();
hayabusa\mail\MailPattern.java(429): StringBuffer rtnBuf = new StringBuffer();
hayabusa\mail\MailPattern.java(452): StringBuffer to_id = new StringBuffer();
hayabusa\mail\MailPattern.java(453): StringBuffer to_name = new StringBuffer();
hayabusa\mail\MailPattern.java(454): StringBuffer to_addr = new StringBuffer();
hayabusa\mail\MailPattern.java(455): StringBuffer cc_id = new StringBuffer();
hayabusa\mail\MailPattern.java(456): StringBuffer cc_name = new StringBuffer();
hayabusa\mail\MailPattern.java(457): StringBuffer cc_addr = new StringBuffer();
hayabusa\mail\MailPattern.java(458): StringBuffer bcc_id = new StringBuffer();
hayabusa\mail\MailPattern.java(459): StringBuffer bcc_name = new StringBuffer();
hayabusa\mail\MailPattern.java(460): StringBuffer bcc_addr = new StringBuffer();
hayabusa\taglib\HeadTag.java(850): StringBuffer errBuf = new StringBuffer(100);
hayabusa\taglib\TabLinkTag.java(495): StringBuffer errBuf = new StringBuffer( 100 );
hayabusa\taglib\ValueTag.java(513): StringBuffer buf = new StringBuffer();
plugin\io\TableReader_Calc.java(472): StringBuffer sb = new StringBuffer();
plugin\view\ViewForm_HTMLCustomTreeBOM.java(123): StringBuffer newtg = new StringBuffer( HybsSystem.BUFFER_LARGE );
2.pmd-4.2.5 (カスタマイズ版)での警告の修正
org\opengion\hayabusa\mail\MailPattern.java:413 New exception is thrown in catch block, original stack trace may be lost
org\opengion\hayabusa\taglib\TabLinkTag.java:302 Avoid instantiation through private constructors from outside of the constructor's class.
org\opengion\hayabusa\taglib\TabLinkTag.java:336 Avoid instantiation through private constructors from outside of the constructor's class.
org\opengion\plugin\column\Renderer_TEXTAREA.java:49 Private field 'tagBuffer' could be made final; it is only initialized in the declaration or constructor.
org\opengion\plugin\io\TableReader_Calc.java:113 A throw statement in a finally block makes the control flow hard to understand.
org\opengion\plugin\io\TableReader_Calc.java:114 Avoid using if statements without curly braces
org\opengion\plugin\io\TableReader_Calc.java:347 Avoid using implementation types like 'ArrayList'; use the interface instead
3.直接出力用の Writer 引数追加を ViewForm に追加します。
これは、ViewForm で、大量のString を StringBilder で作成する際、
expand が発生し、大量の無駄なオブジェクトが作成されます。
Writer で直接、クライアントに返送すれば、余計なオブジェクトの
生成が抑制されます。
ただし、途中でエラーが発生した場合は、途中までデータが返送
されているため、エラーメッセージがデータ(画面)の下に表示されますので
エラー時に、Javaエラーを表示させず、エラー画面へ転送するように変更
する必要があります。
その対応が完了してから、各実装クラスの機能修正を行います。
* @og.rev 5.0.0.1 (2009/08/15) 直接出力用の Writer 引数追加
package org.opengion.hayabusa.html;
public interface ViewForm {
void create( int startNo, int pageSize, Writer wrt ) throws IOException ;
package org.opengion.plugin.view;
public abstract class AbstractViewForm implements ViewForm {
public void create( final int startNo, final int pageSize, final Writer wrt ) throws IOException {
package org.opengion.fukurou.util;
public final class StringUtil {
public static String replace( final String target,final String from,final String to ) {
public static String urlAppend( final String url1,final String url2 ) {
4.メソッドのパラメータに、final を付けるルールを実行
fukurou\model\ArrayDataModel.java(163): public NativeType getNativeType( int clm ) {
fukurou\process\LineModel.java(315): public NativeType getNativeType( int clm ) {
fukurou\xml\JspIncludeReader.java(178): public static void main( String[] args ) {
fukurou\xml\jaxb\dbid\DbConfig.java(66): public void setDbDriver(DbDriver value) {
fukurou\xml\jaxb\dbid\Dbid.java(79): public void setDbidKey(String value) {
fukurou\xml\jaxb\dbid\Dbid.java(103): public void setUrl(String value) {
fukurou\xml\jaxb\dbid\Dbid.java(127): public void setUser(String value) {
fukurou\xml\jaxb\dbid\Dbid.java(151): public void setPassword(String value) {
fukurou\xml\jaxb\dbid\Dbid.java(175): public void setReadonly(Boolean value) {
fukurou\xml\jaxb\dbid\Dbid.java(199): public void setMincount(Integer value) {
fukurou\xml\jaxb\dbid\Dbid.java(223): public void setMaxcount(Integer value) {
fukurou\xml\jaxb\dbid\Dbid.java(247): public void setPooltime(Integer value) {
fukurou\xml\jaxb\dbid\Dbid.java(271): public void setApplicationInfo(Boolean value) {
hayabusa\db\DBTableModelImpl.java(383): public void addValues( String[] values ,int aRow, boolean isWritable ) {
hayabusa\io\HybsCategoryAxis.java(117): public List refreshTicks(Graphics2D g2,
hayabusa\io\HybsCategoryAxis.java(256): public double getCategoryJava2DCoordinate(CategoryAnchor anchor,
hayabusa\io\HybsStackedBarRenderer.java(97): public void drawItem(Graphics2D g2,
hayabusa\io\ShapeList.java(56): public Shape getShape( int index ) {
hayabusa\report2\OdsConverter.java(211): public void printJobEvent( PrintJobEvent event ) {
hayabusa\report2\OdsConverter.java(216): public void disposing( EventObject event ) {
hayabusa\report2\OdsConverter.java(371): public static void main( String[] args ) throws Exception {
plugin\view\AbstractViewForm.java(255): public void create( int startNo, int pageSize, Writer wrt ) throws IOException {
plugin\view\AbstractViewForm.java(1746): public void setHeight( String high ) {
plugin\view\AbstractViewForm.java(1761): public void setWidth( String wide ) {
plugin\view\AbstractViewForm.java(1827): public void setNoTransition( boolean flag ) {
hayabusa\io\HybsCategoryPlot.java(226): protected void drawRangeGridlines(Graphics2D g2, Rectangle2D dataArea,
fukurou\xml\XSLT.java(485): private String toXmlRow( TransformerException ex ) {
hayabusa\taglib\TableUpdateParamTag.java(383): private String getInsertSQL( NamesData namesData ) {
hayabusa\taglib\TableUpdateParamTag.java(430): private String getUpdateSQL( NamesData namesData ) {