Nimbusは、SIerによるSIerのためのSI部品ライブラリです。 基盤としてDIコンテナを持ち、サービス(POJO)をホスティングし、アプリケーションに提供します。 また、ライフサイクルの概念があり、サービス間の依存関係の解決を行いながらライフサイクルを制御します。
バグFIX、機能追加、機能改善を行いました。
1. バグFIX
(1)jp.ossc.nimbus.beans.DateEditorの不具合を修正
年月日のフィールドにNOW/ddと指定した時に月が1ヶ月前になってしまう不具合を修正した。
(2)jp.ossc.nimbus.recset.RecordSetの不具合を修正
searchメソッドの終了時に、ResultSetをcloseするように修正した。
(3)jp.ossc.nimbus.service.aop.Compilerを修正
**指定の時に、コンパイル対象のクラスが正しく認識されない不具合を修正した。
(4)jp.ossc.nimbus.service.aop.javassist.MethodInterceptorAspectServiceの不具合を修正
・内部クラスのアスペクトに失敗する不具合を修正した。
・コンストラクタでのsuper()またはthis()呼び出しの引数で、メソッドを呼び出している場合にアスペクトに失敗する不具合を修正した。
(5)jp.ossc.nimbus.util.sql.WrappedConnectionの不具合を修正
ContextからリクエストIDを取得して、ジャーナルに出力する機能が働いていなかった不具合を修正した。
(6)jp.ossc.nimbus.service.graph.JFreeChartFactoryServiceの不具合を修正
JFreeChartにLegendが設定されているかチェックせずにFontを追加していた不具合を修正した。
2. 変更
(1)Nimbus Coreのファクトリ機能の仕様を変更
service要素のinstance属性がfactoryの場合は、ファクトリするオブジェクトをサービスプロキシでラップしていた。
サービスプロキシには、java.lang.Proxyを使用しているが、性能的に問題がある事が分かったので、management属性がtrueの時だけ、サービスプロキシでラップするように変更した。
(2)jp.ossc.nimbus.service.semaphore.Semaphoreインタフェースの変更
セマフォ獲得後に、セマフォ占有時間が長いものに対して、強制的にセマフォを開放する機能を追加した。
(3)jp.ossc.nimbus.service.aop.interceptor.FlowControlInterceptorServiceに属性追加
jp.ossc.nimbus.service.semaphore.Semaphoreインタフェースの変更に伴って、ForceFreeTimeout属性を追加した。
(4)jp.ossc.nimbus.service.aop.javassist.MethodInterceptorAspectServiceに属性追加
アスペクト対象から除外するクラス名を指定できるように、属性NoTargetClassNameを追加した。
(5)jp.ossc.nimbus.service.cache.TimeExpierOverflowValidatorServiceに属性追加
指定した区切りでキャッシュをあふれさせる事ができるように、属性Periodを追加した。
(6)jp.ossc.nimbus.service.soap.JaxRpcServiceFactoryServiceに属性追加
javax.xml.rpc.encoding.TypeMappingを指定できるように、属性TypeMappingを追加した。
(7)jp.ossc.nimbus.service.graph.DatabaseDatasetFactoryServiceに属性追加
PreparedStatementにフェッチサイズを設定できるように、属性fetchSizeを追加した。
(8)jp.ossc.nimbus.service.graph.DatabaseOHLCDatasetFactoryServiceに属性追加
ResultSetからデータを取得する際に、カラム名を指定して取得すると、性能的に問題になる場合があるため、カラムインデックスを指定してデータを取得できるように、属性dateColumnIndex, timeColumnIndex, openPriceColumnIndex, highPriceColumnIndex, lowPriceColumnIndex, closePriceColumnIndex, volumeColumnIndexを追加した。
(9)jp.ossc.nimbus.service.graph.DatabaseTimeSeriesCollectionFactoryServiceに属性追加
・(8)と同件で、カラムインデックスを指定できるように、属性dateColumnIndex, timeColumnIndex, valueColumnIndexを追加した。
・このサービスが生成したデータを、線グラフとして使用する場合に、Y値が同値で連続すると、同値間のデータは無意味になる。
その無意味なデータ量のせいで性能が落ちる場合があるため、連続する同値のデータは無視できるように、属性isIgnoreSameValueを追加した。
・任意の区間のデータを、平均、OHLCなどのいくつかの集計方法で集計できるようにした。その際の集計処理タイプを設定する、属性collateDataTypeを追加した。
・値を集計する期間を設定する属性collateDataField、collateDataPeriodを追加した。
・入力のデータがある固定の時間間隔でしか存在せず、同一時間に複数のデータが存在する場合に、その時間間隔を同一時間データの数で時分割して、自動的に時間を割り振る事ができるようにした。その機能を有効化するかどうかを設定する、属性isAutoTimesharingを追加した。
・入力データの間隔を設定する、属性inputDataField、inputDataPeriodを追加した。
(10)jp.ossc.nimbus.service.graph.AbstractTickUnitAdjusterServiceに属性追加
表示する値の範囲が狭い場合に、目盛りが表示されないような場合がある。そのため、ValueAxis.setAutoRangeMinimumSize(double)を使って、軸の最小描画範囲を、目盛りの2倍にする事で、目盛りが必ず表示されるようにする事ができる。
この自動調整機能を有効化する、属性autoRangeMinimumSizeEnabledを追加した。