Nimbusは、SIerによるSIerのためのSI部品ライブラリです。 基盤としてDIコンテナを持ち、サービス(POJO)をホスティングし、アプリケーションに提供します。 また、ライフサイクルの概念があり、サービス間の依存関係の解決を行いながらライフサイクルを制御します。
バグFIX、機能追加、機能改善を行いました。
ソースファイル数が1000に到達しました!!
1. バグFIX
(1)jp.ossc.nimbus.beans.SimplePropertyの不具合を修正
setやgetから始まらないプロパティに対して、getPropertyType(Class)を呼び出すと型が解決できない不具合を修正した。
(2)jp.ossc.nimbus.recset.RecordSetの不具合を修正
・RowVersionチェックが行われていない不具合を修正した。
・setWhere(PartUpdateRecords)、setWhere(CodeMasterUpdateKey[])メソッドで、Where句を作成する際に、文の最後がORで終了してしまう不具合を修正した。
・TIMESTAMP型を定義したRecordSetで、search()を呼び出すとjava.sql.Timestampが取得でき、cloneするとjava.util.Dateになってしまい、型が変わる問題があったため、java.util.Dateに統一するように修正した。
・部分更新時に、更新する側が送ってきた更新キーが、更新される側のRecordSetのスキーマの主キー以外の情報を含んでいると、部分更新ができない不具合を修正した。
(3)jp.ossc.nimbus.recset.RowDataの不具合を修正
setCodeMasterUpdateKey()を呼び出した時、RowDataのトランザクションモードが、read、update、deleteの場合、ユニークキーが設定されない不具合を修正した。
(4)jp.ossc.nimbus.service.aop.interceptor.servlet.SelectableServletFilterInterceptorServiceの不具合を修正
URIとパスの判定にどちらともHttpServletRequest#getRequestURLを使っていた不具合を修正した。
URIの場合は、HttpServletRequest#getRequestURI()を、パスの場合はHttpServletRequest#getPathInfo()を取得し、取得できなければgetServletPath()を使うように修正した。
(5)jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerAccessImpl2の不具合を修正
・result要素の子要素にstatic-invoke要素が書けない不具合を修正した。
・オーバーロードされたsetterの属性に対して、attribute属性でインジェクションしようとすると例外が発生する不具合を修正した。
・transaction属性を指定しても、Supportsにしかならない不具合を修正した。
・空のflowを呼び出すと、NullPointerExceptionが発生する不具合を修正した。
(6)jp.ossc.nimbus.service.codemaster.CodeMasterServiceの不具合を修正
部分更新時に、更新対象のマスタが存在しない場合にNullPointerExceptionが発生する不具合を修正した。
(7)jp.ossc.nimbus.service.codemaster.PartUpdateRecordsの不具合を修正
getKeys()で取得したIteratorのremoveを呼んでキーを削除しても、getKey(CodeMasterUpdateKey key)で取得できてしまう不具合を修正した。
(8)jp.ossc.nimbus.service.writer.mail.MailWriterServiceの不具合を修正
RetryCount属性に指定したリトライ回数よりも1回少ない回数しかリトライしない不具合を修正した。
2. 変更
(1)jp.ossc.nimbus.beans.SimplePropertyの機能追加及び動作変更
[機能追加]
・オーバーロードされたsetterに値を設定できるようにした。
[動作変更]
・getPropertyType(Class)で、オーバーロードされたメソッドがある場合、メソッド特定できず、戻り値の型が不定になる可能性があるため、NoSuchPropertyExceptionになるようにした。
(2)jp.ossc.nimbus.beans.IndexedPropertyの機能追加
jp.ossc.nimbus.beans.dataset.Recordのインデックス指定プロパティの型を、getPropertyType(Object)で取得できるようにした。
(3)jp.ossc.nimbus.beans.MappedPropertyの機能追加
jp.ossc.nimbus.beans.dataset.Recordのキー指定プロパティの型を、getPropertyType(Object)で取得できるようにした。
(4)jp.ossc.nimbus.core.DefaultServiceManagerServiceの動作変更
type属性を指定しないattribute要素を指定した場合で、そのname属性値で特定されるsetterがオーバーロードされていた時、属性の型をStringとみなすようにした。
(5)jp.ossc.nimbus.recset.RecordSetの機能追加
部分更新時に、ソートするメソッドを追加した。
setPartUpdateSort(String[] orderBy, boolean[] isAsc)
setPartUpdateSort(int[] orderBy, boolean[] isAsc)
(6)jp.ossc.nimbus.service.aop.interceptor.servlet.SetCharacterEncodingInterceptorServiceの動作変更
リクエストパラメータの値に「%ZZ」のように%の後ろに数値以外が設定されてしまった場合、例外をスローするように実装されていたが、例外をスローせずに、そのまま「%ZZ」という文字列として解釈するようにした。
(7)jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerAccessImpl2の機能追加
・ジャーナルの出力を制御するjournal属性を追加した。
・式を表現するexpression要素を追加した。
(8)jp.ossc.nimbus.service.codemaster.CodeMasterFinderインタフェース変更
以下のメソッドを追加した。
・updateCodeMaster(String key)
・updateCodeMaster(String key, Date updateTime)
(9)jp.ossc.nimbus.service.codemaster.CodeMasterServiceの機能追加
・複数のコードマスタTopicをListenする機能を追加した。
・CodeMasterFinderインタフェースのメソッド追加に伴い、新たなメソッドを実装した。
(10)jp.ossc.nimbus.service.codemaster.CodeMasterUpdateKeyの機能追加
setUpdateType(int)メソッドを追加した。
(11)jp.ossc.nimbus.service.codemaster.WeakReferenceCodeMasterServiceの機能追加
CodeMasterFinderインタフェースのメソッド追加に伴い、新たなメソッドを実装した。
(12)jp.ossc.nimbus.service.crypt.CipherCryptServiceの機能追加
jp.ossc.nimbus.util.converter.StringConverter、jp.ossc.nimbus.util.converter.ReversibleConverterインタフェースを実装した。
(13)jp.ossc.nimbus.service.ioccall.interceptor.JournalInterceptorServiceの機能追加
次のinterceptor以降で例外が発生した場合に、ジャーナルに例外を出力するようにした。
(14)jp.ossc.nimbus.service.jms.JMSConnectionFactoryServiceの機能追加
Connectionから例外がthrowされた場合や、KeepAliveCheckerからJMSサーバのダウンが通知された場合に、自動的に再接続を行う機能を追加した。
(15)jp.ossc.nimbus.service.keepalive.KeepAliveCheckerインタフェース変更
KeepAliveListenerを登録する機能を追加した。
(16)jp.ossc.nimbus.service.jndi.CachedJndiFinderServiceの機能追加
KeepAliveCheckerインタフェースの変更に伴って、KeepAliveListenerへの状態変更通知機能を追加した。
(17)jp.ossc.nimbus.service.keepalive.smtp.CachedJndiFinderServiceの機能追加
KeepAliveCheckerインタフェースの変更に伴って、KeepAliveListenerへの状態変更通知機能を追加した。
(18)jp.ossc.nimbus.service.writer.SimpleElementの機能追加
FormatConverterを設定する事で、任意のフォーマット変換を行えるようにした。
3. 追加
(1)jp.ossc.nimbus.beans.NimbusPropertyEditorManagerを追加
Nimbusで提供しているPropertyEditorを取得できるPropertyEditorManagerクラスを追加した。
(2)jp.ossc.nimbus.beans.datasetパッケージを追加
1次元及び2次元のデータを含んだ汎用的なデータ構造を、動的に構築する事ができる汎用Beanを提供するクラス郡を追加した。
デフォルト実装では、プロパティの存在チェック、型チェック、制約条件チェックや、値の双方向変換をサポートしている。
(3)jp.ossc.nimbus.service.keepalive.KeepAliveListenerを追加
KeepAliveCheckerから状態が変更された事を通知されるリスナインタフェースを追加した。
(4)jp.ossc.nimbus.service.scheduler.DatabaseScheduleFactoryServiceを追加
スケジュールのマスタをデータベースで定義するScheduleFactoryサービスを追加した。
(5)jp.ossc.nimbus.service.scheduler.DatabaseScheduleStateManagerServiceを追加
スケジュールの状態をデータベースで管理するScheduleStateManagerサービスを追加した。
(6)jp.ossc.nimbus.util.converter.FormatConverterを追加
文字列と特定オブジェクトの相互変換を行うConverterインタフェースを定義した。
(7)jp.ossc.nimbus.util.converter.DateFormatConverterを追加
文字列とjava.util.Dateの相互変換を行うFormatConverterクラスを追加した。
(8)jp.ossc.nimbus.util.converter.DecimalFormatConverterを追加
文字列と数値の相互変換を行うFormatConverterクラスを追加した。
(9)jp.ossc.nimbus.util.converter.PropertyEditorConverterを追加
java.beans.PropertyEditorを使って、文字列と特定のオブジェクトの相互変換を行うFormatConverterクラスを追加した。
(10)jp.ossc.nimbus.util.converter.DateSetXMLConverterを追加
XMLとjp.ossc.nimbus.beans.dataset.DataSetの相互変換を行うReversibleConverterクラスを追加した。
(11)jp.ossc.nimbus.util.converter.PaddingConverterを追加
文字列パディングを行うConverterインタフェースを定義した。
(12)jp.ossc.nimbus.util.converter.PaddingStringConverterを追加
文字列パディング及びトリムを行うPaddingConverterクラスを追加した。