Nimbusは、SIerによるSIerのためのSI部品ライブラリです。 基盤としてDIコンテナを持ち、サービス(POJO)をホスティングし、アプリケーションに提供します。 また、ライフサイクルの概念があり、サービス間の依存関係の解決を行いながらライフサイクルを制御します。
バグFIX、機能追加、機能改善、動作変更を行いました。
1. バグFIX
(1)jp.ossc.nimbus.beans.ArrayEditorの不具合を修正
文字列から配列に変換しようとするとClassCastExceptionが発生する不具合を修正した。
(2)jp.ossc.nimbus.beans.MappedPropertyの不具合を修正
・primitive型のマッププロパティに値を設定できない不具合を修正した。
・オーバーロードされたメソッドを複数呼び出すと、最初に呼び出したメソッドがキャッシュされてしまっている不具合を修正した。
(3)jp.ossc.nimbus.beans.SimplePropertyの不具合を修正
・set、getから始まっていない単純プロパティにアクセスする場合に、プロパティの頭文字を大文字にするとアクセスできない不具合を修正した。
・setterだけが存在するプロパティの値を参照するとNullPointerExceptionが発生する不具合を修正した。
(4)jp.ossc.nimbus.beans.dataset.DataSetの不具合を修正
・サブクラスを作って、そのcloneメソッドを呼ぶと、親クラスであるDataSetクラスになってしまう不具合を修正した。
・addHeader、addRecordListを呼ぶとNullPointerExceptionが発生する不具合を修正した。
(5)jp.ossc.nimbus.recset.RecordSetの不具合を修正
サブクラスを作って、そのcloneメソッドを呼ぶと、親クラスであるRecordSetクラスになってしまう不具合を修正した。
(6)jp.ossc.nimbus.service.aop.interceptor.servlet.HttpServletResponseDeflateInterceptorServiceの不具合を修正
DeflateLength属性を設定しても使用されない不具合を修正した。
(7)jp.ossc.nimbus.service.cache.DefaultOverflowControllerServiceの不具合を修正
Queueを設定せずに、PeriodicOverflowIntervalを設定するとサービスの起動に失敗する不具合を修正した。
(8)jp.ossc.nimbus.service.codemaster.CodeMasterServiceの不具合を修正
マスタに存在しないマスタ更新メッセージを受信した場合に、IOCを空呼びしてしまう不具合を修正した。
(9)jp.ossc.nimbus.service.journal.editor.DateJournalEditorServiceの不具合を修正
マルチスレッドで呼び出すと、ArrayIndexOutOfBoundsExceptionが発生する不具合を修正した。
(10)jp.ossc.nimbus.service.writer.PropertyWritableRecordFactoryServiceの不具合を修正
IterateFormatを使用した場合で、Iterate対象のオブジェクトがnullの場合にNullPointerExceptionが発生する不具合を修正した。
2. 変更
(1)jp.ossc.nimbus.beans.ByteArrayEditorの機能追加
2進数、8進数表記にも対応した。
0bで2進数、0oで8進数を表す。
(2)jp.ossc.nimbus.beans.IndexedPropertyの機能追加及び動作変更
[機能追加]
・オーバーロードしたsetterに値をsetする場合には、Methodをキャッシュしていなかったが、キャッシュするようにした。
・getから始まらないインデックス付きgetterを呼べるようにした。
・数値型のプロパティ値を設定する場合に、自動的にワイドキャストできるようにした。
[動作変更]
・setterだけで且つオーバーロードされたsetterを持つプロパティに対して、getPropertyTypeを呼び出すと、NoSuchPropertyExceptionをthrowするようにした。
(3)jp.ossc.nimbus.beans.MappedPropertyの機能追加及び動作変更
[機能追加]
・オーバーロードしたsetterに値をsetする場合には、Methodをキャッシュしていなかったが、キャッシュするようにした。
・getから始まらないキー付きgetterを呼べるようにした。
・数値型のプロパティ値を設定する場合に、自動的にワイドキャストできるようにした。
[動作変更]
・setterだけで且つオーバーロードされたsetterを持つプロパティに対して、getPropertyTypeを呼び出すと、NoSuchPropertyExceptionをthrowするようにした。
(4)jp.ossc.nimbus.beans.MappedPropertyの機能追加
・オーバーロードしたsetterに値をsetする場合には、Methodをキャッシュしていなかったが、キャッシュするようにした。
・数値型のプロパティ値を設定する場合に、自動的にワイドキャストできるようにした。
(5)jp.ossc.nimbus.beans.dataset.DataSetの機能追加
・java.lang.Cloneableを実装した。
・toString()メソッドを実装した。
(6)jp.ossc.nimbus.beans.dataset.DefaultPropertySchemaの機能追加
入力変換及び出力変換のConverterとして、PaddingConverterを指定できるようにした。
(7)jp.ossc.nimbus.beans.dataset.Recordの機能追加
・java.lang.Cloneableを実装した。
・java.util.Mapを実装した。
(8)jp.ossc.nimbus.beans.dataset.RecordListの機能追加
java.lang.Cloneableを実装した。
(9)jp.ossc.nimbus.recset.FieldSchemaの機能追加
SQLのSELECT列に対してエイリアスを使えるように拡張した。
スキーマ定義にAAA X.A,1,0,0のように列名のところをブランクでセパレートすることでエイリアスを使うことが可能となる。
(10)jp.ossc.nimbus.recset.RecordSetの機能追加
以下のメソッドを追加した。
・public void sort(String[] orderBy, boolean[] isAsc, boolean isSetRowNum)
・public void sort(int[] orderBy, boolean[] isAsc, boolean isSetRowNum)
・public void setDynamicSearchKey(String name, String[] colNames, String[] orderBy)
・public void setDynamicSearchKey(String name, int[] colIndexes, int[] orderBy)
・public void setDynamicSearchKey(String name, String[] colNames, String[] orderBy, boolean[] isAsc)
・public void setDynamicSearchKey(String name, int[] colIndexes, int[] orderBy, boolean[] isAsc)
・public Comparator createRowComparator()
(11)jp.ossc.nimbus.service.aop.interceptor.ThreadContextInitializeInterceptorServiceの機能追加
以下の属性を追加した。
・ContextValueMapping
・ContextValue
(12)jp.ossc.nimbus.service.aop.interceptor.servlet.AccessJournalInterceptorServiceの機能追加
アクセスジャーナルで、セッションも出力できるようにした。
また、以下の属性を追加した。
・HttpSessionJournalKey
・OutputRequestSession
・OutputResponseSession
(13)jp.ossc.nimbus.service.aop.interceptor.servlet.ThreadContextInitializeInterceptorServiceの機能追加
以下の属性を追加した。
・ContextValueMapping
・ContextValue
(14)jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerAccessImpl2の機能追加
・result要素に、step-ref要素を指定できるようにした。
・throw要素で、任意の例外をthrowできるようにした。
(15)jp.ossc.nimbus.service.beancontrol.interfaces.BeanFlowInvokerFactoryのインターフェース変更
getBeanFlowKeySet()メソッドを追加した。
(16)jp.ossc.nimbus.service.beancontrol.DefaultBeanFlowInvokerFactoryServiceの機能追加
・BeanFlowInvokerFactoryインタフェース変更に伴い、getBeanFlowKeySet()メソッドを追加した。
・Path属性を追加した。
(17)jp.ossc.nimbus.service.beancontrol.resource.ResourceManagerImplの動作改善
rollback時に、close対象のリソースを必ず取得していたので、取得していないリソースは無視するようにした。
(18)jp.ossc.nimbus.service.connection.DataSourceConnectionFactoryServiceの機能追加
データソース名をContextから取得できるようにした。
(19)jp.ossc.nimbus.service.journal.editor.BeanJournalEditorServiceの機能追加
以下の属性を追加した。
・EnabledProperties
・PropertyTypeStartDelimiter
・PropertyTypeEndDelimiter
・PropertyNameValueDelimiter
・StartValueDelimiter
・EndValueDelimiter
・PropertyDelimiter
(20)jp.ossc.nimbus.service.journal.editor.BlockJournalEditorServiceBaseの機能追加
OutputBlockLineSeparator属性を追加した。
(21)jp.ossc.nimbus.service.journal.editor.ImmutableJournalEditorServiceBaseの機能追加
OutputIndent属性を追加した。
(22)jp.ossc.nimbus.service.journal.editor.MapJournalEditorServiceの機能追加
以下の属性を追加した。
・StartValueDelimiter
・EndValueDelimiter
・SecretString
・SecretKeys
・EnabledKeys
(23)jp.ossc.nimbus.service.journal.editor.ObjectArrayJournalEditorServiceの動作変更
配列の要素の値がnullの場合、値の開始区切り文字と終了区切り文字を出力しないようにした。
(24)jp.ossc.nimbus.service.journal.editorfinder.ObjectMappedEditorFinderServiceの動作変更
EditorMap属性で、java.lang.String[]などの[]付きの配列表現ができなかったのをできるようにした。
(25)jp.ossc.nimbus.util.converter.CustomStringConverterのインタフェース変更
以下のメソッドのアクセス修飾子を変更した。
protected void setConvertStrings(String[] fromStrs, String[] toStrs)
↓
public void setConvertStrings(String[] fromStrs, String[] toStrs)
(26)jp.ossc.nimbus.util.converter.DateFormatConverterの機能追加
直列化可能にした。
(27)jp.ossc.nimbus.util.converter.DateSetXMLConverterのリファクタ
・クラス名をDataSetXMLConverterに変更。
・StreamConverterインタフェースを実装した。
・以下の定数を削除
・DEFAULT_CHARACTER_ENCODING
・以下のメソッドを削除
・public void setCharacterEncoding(String)
・public String getCharacterEncoding()
・以下のメソッドを追加
・public void setCharacterEncodingToStream(String)
・public String getCharacterEncodingToStream()
・public void setCharacterEncodingToObject(String)
・public String getCharacterEncodingToObject()
・public InputStream convertToStream(Object obj) throws ConvertException
・public Object convertToObject(InputStream is) throws ConvertException
3. 追加
(1)jp.ossc.nimbus.service.aop.interceptor.RetryInterceptorServiceを追加
再送制御を行うInterceptorサービスを追加した。
(2)jp.ossc.nimbus.service.aop.interceptor.ReturnInterceptorServiceを追加
戻り値を擬似したり、戻り値をプロキシでラップするなどの戻り値制御を行うInterceptorサービスを追加した。
(3)jp.ossc.nimbus.service.aop.interceptor.servlet.StreamExchangeInterceptorServiceを追加
サーブレットリクエストの入力ストリームを入力オブジェクトに変換し、出力オブジェクトをサーブレットレスポンスに出力するInterceptorサービスを追加した。
(4)jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerFactoryGroupServiceを追加
BeanFlowInvokerFactoryサービスをグルーピングするBeanFlowInvokerFactoryサービスを追加した。
(5)jp.ossc.nimbus.service.converter.BeanFlowConverterServiceを追加
BeanFlowを使って、Beanの変換を行うConverterサービスを追加した。
(6)jp.ossc.nimbus.service.httpパッケージを追加
HTTP通信をサポートするサービスのインタフェースを追加した。
(7)jp.ossc.nimbus.service.http.httpclientパッケージを追加
jp.ossc.nimbus.service.httpパッケージで定義したインタフェースの実装クラスとして、Jakarta HttpClientを使った実装サービスを追加した。
(8)jp.ossc.nimbus.service.journal.editor.HttpSessionCSVJournalEditorServiceを追加
HttpSessionをCSV形式でフォーマットするJournalEditorサービスを追加した。
(9)jp.ossc.nimbus.service.journal.editor.HttpSessionJournalEditorServiceを追加
HttpSessionを文字列にフォーマットするJournalEditorサービスを追加した。
(10)jp.ossc.nimbus.service.journal.editor.HttpSessionMapJournalEditorServiceを追加
HttpSessionをMapにフォーマットするJournalEditorサービスを追加した。
(11)jp.ossc.nimbus.service.resource.httpパッケージを追加
HttpClientFactoryをResourceFactoryとして動作させるResourceFactoryサービスを追加した。
(12)jp.ossc.nimbus.util.converter.StreamConverterを追加
ストリーム⇔オブジェクトの相互変換を行うStreamConverterインタフェースを追加した。
(13)jp.ossc.nimbus.util.converter.DOMHTMLConverterを追加
DOM⇔HTMLの相互変換を行うStreamConverterサービスを追加した。
(14)jp.ossc.nimbus.util.converter.StringStreamConverterを追加
ストリーム⇔文字列の相互変換を行うStreamConverterサービスを追加した。