Download List

Sponsored link

Project Description

Projectの概要

JSPカスタムタグをベースとした、Webアプリケーションフレームワークです。
SQLの知識さえあれば、データのCRUD操作をメインとした業務システムが 簡単に構築することができます。

このフレームワークは、村田機械株式会社の基幹システムを構築するために 開発され、全ての基幹システムは、これを利用して構築し、稼動しています。

(基本機能)
・ユーザー管理         ・認証・アクセス制御
・多言語対応          ・Excel入出力機能
・ガントチャート表示、編集機能 ・定型帳票作成、発行機能
・定型メール送信機能      ・データベース定義管理機能
・バッチ処理機能

各種詳細情報及びドキュメントについては、openGion@Websiteを参照して下さい。


Java を含む標章は、米国 Sun Microsystems, Inc.の商標であり、同社のJava ブランドの技術を使用した製品を指します。
Excel は、Microsoft Corporationの米国及びその他の国における登録商標です。
コンテンツ中に記載された社名および製品名は、すべて各社の商標または登録商標です。

System Requirements

System requirement is not defined

Released at 2013-07-27 23:59
opengion 5.6.7.0 (4 files Hide)

Release Notes

5.6.7.0 (2013/07/27)
[初期install の見直し]
初期インストールを見直します。
・出力フォルダを、db/common と、db/resource に分離します。
db/common は、DBID=DEFAULT になり、db/resource は、DBID=RESOURCE になります。
・db/oracle , db/firebird … などのフォルダは、各コンテキストのDB定義になりますので
DBID=DEFAULT で処理します。
・sql フォルダと xmlフォルダの階層を合わせる。
それぞれ、同じ階層構造に合わせます。基本的には、それぞれのフォルダの下位に、
install と update フォルダを作成します。
・build.xml を簡易化します。
ant の定義ファイルを見直し、簡素化します。上記出力先変更に伴う、見直しです。
gf/build.xml
src/META-INF/hybs-taglib.tld
WEB-INF/hybs-taglib.tld

Tomcat起動時の処理処理(SystemParameter)で、クラスパスが、resource 以下の拡張XDKファイルは
DBID=RESOURCEに登録し、クラスパスが、xml 以下の拡張XDKファイルは、DBID=DEFAULT に登録します。
hayabusa.common.SystemParameter#loadDBResource( final Map<String,String> sysParam )

SystemInstaller でも、同様に、db/common と、db/[DBNAME]/xml は、DBID=DEFAULT に
db/resource は、DBID=RESOURCEに登録します。
関連する処理で、SystemInstaller 内の各サブ処理ごとに、コミットしているので、
メソッドの中でコミットするように修正します。
これは、ORACLEとfirebirdのDDL処理の違いなどに関連します。
hayabusa.common.SystemInstaller#SystemInstaller( final Connection conn, final PrintWriter out )
hayabusa.common.SystemInstaller#getOldMaxVersion()
hayabusa.common.SystemInstaller#getOldSystemVersion( final String systemId, final String hostUrl )
hayabusa.common.SystemInstaller#dbXMLResourceInsert()
hayabusa.common.SystemInstaller#execScripts( final EXEC_TYPE type, final String scriptPath, final Connection conn )
hayabusa.taglib.SysInstallTag#doEndTag()
hayabusa.common.SystemParameter#loadDBResource( final Map<String,String> sysParam )
fukurou.db.DBUtil#getProductName( final Connection conn )
fukurou.xml.HybsXMLSave#useParameterMetaData( final Connection conn )

[TableFilter_DBARG_OUT に xml出力機能追加]
TableFilter_DBARG_OUT に、xml出力機能を追加します。
簡易インストールと、ソースコード自動化の一環です。
TABLEやINDEL作成スクリプトが XML化されているので、それに準拠するためです。
ただし、ARG変数は、ORACLEでPL/SQLを実行する場合にしか使いませんので、
今後はできるだけ使わない方向を考えています。
plugin.table.TableFilter_DBARG_OUT.java

他のTableFilterも、修正しておきます。
plugin.table.TableFilter_DBSRC_OUT.java
plugin.table.TableFilter_INDEX.java
plugin.table.TableFilter_INDEX_FIREBIRD.java
plugin.table.TableFilter_SEQUENCE.java
plugin.table.TableFilter_SEQUENCE_FIREBIRD.java
plugin.table.TableFilter_SEQUENCE_HSQLDB.java
plugin.table.TableFilter_SEQUENCE_MYSQL.java
plugin.table.TableFilter_SEQUENCE_POSGRE.java
plugin.table.TableFilter_SEQUENCE_SQLSERVER.java
plugin.table.TableFilter_TABLE.java
plugin.table.TableFilter_TABLE_FIREBIRD.java
plugin.table.TableFilter_THUMBNAIL.java
plugin.table.TableFilter_UNIQ_NAME.java
ge/jsp/GE0009
gf/jsp/GF2140
gf/jsp/GF2150
gf/jsp/GF7110

[HybsXMLSave に DDL処理件数追加]
HybsXMLSave に DDL(データ定義言語:Data Definition Language)の処理件数の
カウンターを追加します。
通常は、executeUpdate の戻り値(int)を 削除数としてカウントしていますが、
DDL実行時は、0 が返されるため、delete や insert などの
DML(データ操作言語:Data Manipulation Language)文と分けてカウントします。
あくまで、参考情報として、カウントするだけです。
fukurou.xml.HybsXMLSave#actionExecSQL( final TagElement tag )
fukurou.xml.HybsXMLSave#getDDLCount()
fukurou.xml.HybsXMLSave#main( final String[] args )
hayabusa.common.InitFileLoader#loadXML( final InputStream stream, final Connection conn,final String table )
hayabusa.taglib.DirectXMLSaveTag#doEndTag()

[DBUtil の CLOB対応]
DBUtil で、検索した際に、Clob等のオブジェクト系の結果を、きちんと文字列に変換するように
修正します。
従来は、String.valueOf( obj ) していた為、CLOB 、ROWID、TIMESTAMP がうまく変換されませんでした。
fukurou.db.DBUtil#resultToArray( final ResultSet resultSet,final boolean useHeader )

[DB定義変更]
GF83 のシーケンス、トリガ、インデックスを追加します。
すでに、テーブルは作成済みかも知れませんが、トリガがないと
UNIQキーの自動作成ができません。また、インデックスがないと、
検索処理が時間がかかります。
gf\changes\5670\GF83S.sql
gf\changes\5670\GF83C.sql

[XML出力の改行の見直し]
拡張XDKのファイル出力で、余計な改行が出力されない様に、見直します。
plugin.io.TableWriter_XML#writeData( final DBTableModel table,final PrintWriter writer )

[URLConnectの見直し]
URLConnect で、レスポンスコードに応じて、RuntimeException を投げるかどうかを指定する
-errEx 引数を追加します。
-errEx=true を指定すると、レスポンスコードが、4XX,5XX の時に RuntimeException を投げます。
初期値は、false です。
fukurou.util.URLConnect#main( final String[] args )

同時に、レスポンスコードに対応する文字列 を追加します。JavaのHttpURLConnection の定数で
定義済み以外の値を追加します。
fukurou.util.URLConnect#code2Message( final int code )

[ActiveDirectoryに対するLDAP接続対応]
ActiveDirectoryのLDAPインターフェイスに対して接続を行うと、
Unprocessed Continuation Reference(s)エラーが発生したため
JNDI上のREFERRAL属性をシステムリソースから設定可能にします。
初期値は空で、設定した場合のみ該当の値がContext.REFERRALにセットされます。
fukurouのProcessはバッチ上からreferralで指定して下さい。
同時にmeilSenderタグのldapKey,ldapValsの初期値をシステムリソースで設定可能にします。
LDAP_MAILSEND_KEY,LDAP_MAILSEND_VALSで指定して下さい。
hayabusa.resource.LDAPSearch#init()
hayabusa.common.SystemData#LDAP_SEARCH_REFERRAL
hayabusa.common.SystemData#LDAP_MAILSEND_KEY
hayabusa.common.SystemData#LDAP_MAILSEND_VALS
hayabusa.taglib.MailSenderTag#release2()
furkurou.process.Process_LDAPReader#init( final ParamProcess paramProcess )

[DBConfigEditorTag 修正]
DBConfigEditorTag に、DBConfigのプルダウン情報の取得機能を追加します。
DBIDのキーと、タイトルをつないだ、コードリソース情報を作成する機能を追加します。
これにより、使用しているシステムのDBID一覧をプルダウンメニューとして使用できます。
開発用のシステムとしての利用が想定できます。

また、command と type にセットできる値のチェックを行います。
hayabusa.taglib.DBConfigEditorTag#setCommand( final String cmd )
hayabusa.taglib.DBConfigEditorTag#setType( final String tp )
fukurou.db.DatabaseConfig.java

[javadocの見直し]
javadoc 作成時に、ソースコードのHTMLも作成するように変更します。
メインのjavadocタグに、linksource="true" を追加します。
gf/build.xml

[共通属性 caseNN の追加]
共通属性 caseNN を追加します。
これは、caseKey、caseVal に関連するタグの実行可否を判定する要因です。
caseKey と caseVal の場合は、どちらも null の場合は、許可(true)になります。
これは、過去の互換性を持たせるためです。どちらかが null 出ない場合は、
caseKey.matches( caseVal ) の結果が適用されますが、マッチさせる条件が必要です。
ここで、引数が、null 出ない場合(Not Null = NN)に、許可(true)させる場合は、
設定が難しくなります。
そこで、単に、null でなければ許可(true)にする caseNN 属性を追加します。
既存の caseKey、caseVal を持っているタグに、追加します。
hayabusa.taglib.CommonTagSupport#release2()
hayabusa.taglib.CommonTagSupport#setCaseNN( final String cnn )
hayabusa.taglib.CommonTagSupport#useTag()

hybs-taglib.tld
og:and , og:button , og:column , og:columnEditor , og:hidden , og:input ,
og:link , og:message , og:option , og:orderBy , og:popup , og:query ,
og:queryOption , og:select , og:submit , og:tableMerge ,
og:tbody , og:tfoot , og:thead , og:userInfo , og:value , og:view ,
og:fileUpdate , og:directXMLSave , og:writeTableParam

[BizLogicTag 関連の修正]
BizLogicTag で、Exception を throw するとき、一旦、errMsg 変数にセットします
hayabusa.taglib.BizLogicTag#call( final String logicName , final Transaction tran )
hayabusa.taglib.BizLogicTag#makeVals()
fukurou.business.AbstractBizLogic.java
fukurou.business.ArrayTableModel#ArrayTableModel( final String[] nms, final String[][] vs, final String[] ms )
fukurou.business.ArrayTableModel#toString()
fukurou.business.BizLogic_CURSOR#init()
fukurou.business.BizLogic_TABLE#main()

5.6.6.2 (2013/07/19)
[EXEC_START_TAG の付け忘れ]
xml出力で、<EXEC_SQL> を付け忘れていたので修正します。
plugin.table.TableFilter_TABLE#makeHeadLine( final int[] clmNo,final String[] data )

[IPアドレスからのホスト逆引き機能追加]
{@SYS.HOSNAME xxx.xxx.xxx.xxx}でホスト名称を逆引きできるようにします。
取得できない場合は空白文字を返します。
IPアドレスからInetAddressオブジェクトが作成できない場合等はエラーになります。
名逆引きメソッドは、他での利用は殆ど無いと判断して、現段階ではCommonTagSupportに作成します。
hayabusa.taglib.CommonTagSupport#sys( final String key )
hayabusa.taglib.CommonTagSupport#getHostName( final String ip )
jsp/common/gamen/01_ADMIN/printSystemParameter.jsp

5.6.6.1 (2013/07/12)
[ColumnSetTag,EntryTag 機能追加]
ColumnSetTag,EntryTag に、action="SUFIX" , action="PREFIX" を追加します。
value に指定した記号を、後ろから検索し、前後に分割する機能です。
分割記号(value に指定した記号)は、分割後の値には含みません。
例えば、"AAA/BBB/CCC.xls" という値に対して、
action="SUFIX" value="." ⇒ xls
action="SUFIX" value="/" ⇒ CCC.xls
action="PREFIX" value="." ⇒ AAA/BBB/CCC
action="PREFIX" value="/" ⇒ AAA/BBB
という具合です。
hayabusa.taglib.ColumnSetTag.java コメント修正
hayabusa.taglib.EntryTag#actionExec( final String action,final String clmId,
final String oldValue,final String newValue )

[TableFilter_THUMBNAIL 修正]
THUMB_SUFIX パラメータを追加します。これは、サムネイル画像の拡張子の指定です。
ここで指定した拡張子に、画像フォーマットを変換して、出力します。
初期値は、AUTO です。
AUTOの場合は、元ファイルと同じ拡張子が使われます。
自分で指定する場合は、拡張子違いの元ファイルがあれば重複しますので注意が必要です。
拡張子が bmp の場合の、png に置き換えは行いません。
plugin.table.TableFilter_THUMBNAIL#execute()

関連して、拡張子求め( getSuffix( String ) )が null を返す対応を入れます。
また、拡張子変換がある為、オリジナルサイズがサムネイルより小さい場合、変換なしの処理を
行っていましたがこれを廃止し、必ず変換するようにします。
よって、オリジナルサイズがサムネイル指定サイズより小さい場合は、拡大されます。
fukurou.util.ImageResizer#convert( final BufferedImage inputImage, final String out, final int sizeX, final int sizeY )
fukurou.util.ImageResizer#isReaderSuffix( final String fileName )
fukurou.util.ImageResizer#isWriterSuffix( final String fileName )

[ValueTag の修正]
ValueTagで、value指定が null の場合、エラーになっていたので、正式にエラーチェックするようにします。
hayabusa.taglib.ValueTag#actionExec( final String action,final String value )
hayabusa.taglib.ValueTag#setAttribute( final String key,final String value,final String action )

[FileUploadTag の修正]
FileUploadTagで、添え字がない場合に、columns 属性を使用すると、レコードが作成されなかったが
使い勝手の観点から、1行だけDBTableModelを作成するように変更します。
hayabusa.taglib.FileUploadTag#makeDBTableFromClms( final MultipartRequest multi )
hayabusa.servlet.MultipartRequest.java 不要な name 属性をコメントアウト

[xmlファイルの取込み]
データベース処理や、リソースファイルなどの XMLファイル形式のデータ取込み処理を、
resource ファイルと、xml ファイルの両方に適用するように修正します。
クラスパス内の検索で、xmlも対象とします。
これに伴い、再読み込み防止処置のタイムスタンプの書き換えを、jar ファイルにも適用します。
hayabusa.common.SystemParameter#loadDBResource( final Map<String,String> sysParam )
hayabusa.common.InitFileLoader#loadInitFiles( final boolean useTimeStamp )

拡張XDK形式のMERGE_SQL 対応に適用します。
これは、ROWSET、ROW 形式の XMLフォームで、MERGE_SQL を登録すると、そのSQL文で、
UPDATEして、結果が0件ならINSERTを行います。
これにより、更新処理もできるようになります。
本来は、MERGE_SQL は、どこに入れてもよく、MERGE_SQL が現れるまでは、INSERTのみで、
MERGE_SQL 以降は、有れば更新、なければ追加処理が実行されますが、TableWriter_XML
では、firstExecSql の次に挿入します。
通常、firstExecSql には、delete 文を書いて、全件削除-全件INSERT するので、
MERGE_SQL を使う場合は、firstExecSql は、使いません。(使っても構いません)
plugin.io.TableWriter_XML#setParam( final List<HybsEntry> listParam )
plugin.io.TableWriter_XML#writeData( final DBTableModel table,final PrintWriter writer )
hayabusa.taglib.WriteTableParamTag#KEY_LIST

[SystemOut.java クラスの新規作成]
System.out.prinltn を簡易的に使用できるようにするクラス SystemOut を新規作成します。
これは、個々のクラスから、System.out で書き込んでいる デバッグ情報を簡易的に出力
できるようにしたクラスです。
fukurou.util.SystemOut.java

[TableFilter 関連]
5.6.6.0 (2013/07/05) で対応した、TableFilter のkeys の整合性チェックで、
チェックすべきキーを、static 宣言していた為、すべてのTableFilter のキーが
登録されてしまい、チェックになりませんでした。
そこで、インスタンス変数とし、コンストラクタで、init メソッドを呼び出す方式に
変更します。
hayabusa.db.AbstractTableFilter#AbstractTableFilter()
hayabusa.db.AbstractTableFilter#init( final Map<String,String> keysMap )
plugin.table.TableFilter_BIKO2CODE.java
plugin.table.TableFilter_CLMSET.java
plugin.table.TableFilter_DBARG.java
plugin.table.TableFilter_DBARG_OUT.java
plugin.table.TableFilter_DBSELECT.java
plugin.table.TableFilter_DTYPE.java
plugin.table.TableFilter_INDEX.java
plugin.table.TableFilter_LABEL.java
plugin.table.TableFilter_REPORTDATA.java
plugin.table.TableFilter_ROTATE.java
plugin.table.TableFilter_SEQRESET.java
plugin.table.TableFilter_TABLE.java
plugin.table.TableFilter_THUMBNAIL.java
plugin.table.TableFilter_UNIQ_NAME.java
plugin.table.TableFilter_UPPER.java

[TableWriter 関連]
TableWriter 関連も、TableFilter と同様に、各サブクラスで設定可能な
keys の整合性チェックを行います。
本来は、TableFilter と同じ方式で対応すべきですが、多くの TableWriter が
パラメータを使用しない(個々に属性定義してしまっている)のと、
パラメータを一つづつ登録してくるのではなく、Listにまとめて登録してくる
など、微妙に方式が異なる為、違う方式で実装します。
各サブクラスに static でマップを作成しておき、整合性チェックするようにします。
hayabusa.io.AbstractTableWriter#checkParam( final String key,final Map<String,String> keysMap )
plugin.io.TableWriter_JSON#setParam( final List<HybsEntry> listParam )
plugin.io.TableWriter_CalcDef#setParam( final List<HybsEntry> listParam )
plugin.io.TableWriter_XML#setParam( final List<HybsEntry> listParam )

WriteTableParamTag に、caseKey、caseVal 属性を追加します。
hayabusa.taglib.WriteTableParamTag#doStartTag()
hayabusa.taglib.WriteTableParamTag#doEndTag()
hybs-taglib.tld writeTableParam タグに、caseKey、caseVal 属性追加

[xmlファイルを直接登録する]
これに伴い、デバッグ情報が少なかったので、対応しました。
fukurou.xml.HybsXMLSave#actionRow( final TagElement tag )
fukurou.xml.HybsXMLSave#actionExecSQL( final TagElement tag )
fukurou.xml.HybsXMLSave#actionMergeSQL( final TagElement tag )

key が null や ゼロ文字列の場合は、Map に追加しません。
hayabusa.taglib.DirectXMLSaveTag#getAfterMap()
fukurou.xml.TagElement#put( final String key, final String val )

DirectXMLSaveTag に、caseKey、caseVal 属性を追加します。
hayabusa.taglib.DirectXMLSaveTag#doStartTag()
hayabusa.taglib.DirectXMLSaveTag#doEndTag()
hybs-taglib.tld directXMLSave タグに、caseKey、caseVal 属性追加

テスト的に、GEとGFのdb初期データをjar化する処理を、ant の build.xml に追加
<!-- 5.6.6.1 (2013/07/12) GE db初期データのjarファイルを生成 -->
<jar jarfile="${src.dir}/GE_db${hayabusa.version}.jar" index="true">
<fileset dir="${env.CORE_PATH}/db/common" includes="xml/**/*" />
</jar>
<!-- 5.6.6.1 (2013/07/12) GF db初期データのjarファイルを生成 -->

サンプルJSPを作成します。
jsp/GF7100

[タグリブマニュアルの修正]
タグリブマニュアルの充実を図る為の修正を行います。
まずは、各タグクラスに付けている og.group タグを、独立させます。
現在は、<description> 属性の最初に表示していますが、<tagGroup> として
用意します。
GF23 テーブルに、属性を用意し、個別に検索できるようにします。
fukurou.taglet.DocletTaglib#writeContents( final ClassDoc[] classes,final DocletTagWriter writer )
fukurou.taglet.DocletTaglib#makeGroupTag( final Tag[] tag )
gf\src\xslt\GF23.xsl

[廃止のクラスのJavaDoc修正]
廃止のクラスのJavaDoc のog.group タグの文字部分に、(廃止)文字を追加します。
hayabusa.taglib.StackHeaderTag.java
hayabusa.taglib.TableExistTag.java
hayabusa.taglib.TabTableTag.java
hayabusa.taglib.TabTag.java
hayabusa.taglib.UpdateTag.java

_build.bat の spec チェックで、Deprecated アノテーション のチェックを行います。
内容は、@Deprecated アノテーションを見つけて、コメントに、【廃止】という文字が
存在するかどうかで判定します。
無ければ、警告とし、JavaDoc に記述します。
fukurou.taglet.DocletSpecific#checkTag( final ExecutableMemberDoc menber )

以下の、コメントを修正します。
[javadoc] 警告5:【廃止】= C:\opengion\uap\webapps\gf\src\org\opengion\fukurou\process\ConnDataFactory.java:64 ConnDataFactory
[javadoc] 警告5:【廃止】= C:\opengion\uap\webapps\gf\src\org\opengion\fukurou\process\ConnDataFactory.java:77 createConnData
[javadoc] 警告5:【廃止】= C:\opengion\uap\webapps\gf\src\org\opengion\fukurou\process\ConnDataFactory.java:105 closeConnData
[javadoc] 警告5:【廃止】= C:\opengion\uap\webapps\gf\src\org\opengion\fukurou\process\ConnDataFactory.java:140 clear
[javadoc] 警告5:【廃止】= C:\opengion\uap\webapps\gf\src\org\opengion\fukurou\process\ConnData.java:76 ConnData
[javadoc] 警告5:【廃止】= C:\opengion\uap\webapps\gf\src\org\opengion\fukurou\process\ConnData.java:103 getConnection
[javadoc] 警告5:【廃止】= C:\opengion\uap\webapps\gf\src\org\opengion\fukurou\process\ConnData.java:111 getUniq
[javadoc] 警告5:【廃止】= C:\opengion\uap\webapps\gf\src\org\opengion\fukurou\process\ConnData.java:119 getCreateTime
[javadoc] 警告5:【廃止】= C:\opengion\uap\webapps\gf\src\org\opengion\fukurou\process\ConnData.java:129 makeApplicationInfo
[javadoc] 警告5:【廃止】= C:\opengion\uap\webapps\gf\src\org\opengion\fukurou\process\ConnData.java:150 toString
[javadoc] 警告5:【廃止】= C:\opengion\uap\webapps\gf\src\org\opengion\hayabusa\taglib\TabTag.java:344 setStyle

Changelog

No Changelogs