Nimbusは、SIerによるSIerのためのSI部品ライブラリです。 基盤としてDIコンテナを持ち、サービス(POJO)をホスティングし、アプリケーションに提供します。 また、ライフサイクルの概念があり、サービス間の依存関係の解決を行いながらライフサイクルを制御します。
バグFIX、機能追加、機能改善、動作変更を行いました。
1. バグFIX
(1)jp.ossc.nimbus.beans.SimplePropertyの不具合を修正
数値型のプロパティに対して、setProperty()を呼び出した時に、正しくワイドキャストできない不具合を修正した。
(2)jp.ossc.nimbus.beans.IndexedPropertyの不具合を修正
数値型のプロパティに対して、setProperty()を呼び出した時に、正しくワイドキャストできない不具合を修正した。
(3)jp.ossc.nimbus.beans.MappedPropertyの不具合を修正
数値型のプロパティに対して、setProperty()を呼び出した時に、正しくワイドキャストできない不具合を修正した。
(4)jp.ossc.nimbus.beans.PropertyFactoryの不具合を修正
キー付きプロパティに任意のプロパティをネストさせると、正しくプロパティのパースが行われない不具合を修正した。
(5)jp.ossc.nimbus.beans.dataset.DataSetの不具合を修正
サブクラスを作って、cloneDataSet()、cloneSchema()を呼ぶと、親クラスであるDataSetのインスタンスが返ってくる不具合を修正した。
(6)jp.ossc.nimbus.beans.dataset.Recordの不具合を修正
サブクラスを作って、cloneRecord()、cloneSchema()を呼ぶと、親クラスであるRecordのインスタンスが返ってくる不具合を修正した。
(7)jp.ossc.nimbus.beans.dataset.RecordListの不具合を修正
サブクラスを作って、cloneRecordList()、cloneSchema()を呼ぶと、親クラスであるRecordListのインスタンスが返ってくる不具合を修正した。
(8)jp.ossc.nimbus.ioc.ejb.EJBDriveDispatcherの不具合を修正
IOCのStateless Session BeanをシングルトンなEJBとしてデプロイした場合、IOCの処理結果がスレッドセーフでなくなる不具合を修正した。
(9)jp.ossc.nimbus.ioc.ejb.facade.SLSBFacadeBeanの不具合を修正
IOCのStateless Session BeanをシングルトンなEJBとしてデプロイした場合、IOCの処理結果がスレッドセーフでなくなる不具合を修正した。
(10)jp.ossc.nimbus.ioc.ejb.unitofwork.SLSBUnitOfWorkBeanの不具合を修正
IOCのStateless Session BeanをシングルトンなEJBとしてデプロイした場合、IOCの処理結果がスレッドセーフでなくなる不具合を修正した。
(11)jp.ossc.nimbus.recset.RecordSetの不具合を修正
cloneEmpty()メソッドで、複製したRecordSetが空になっていない不具合を修正した。
(12)jp.ossc.nimbus.recset.RowDataの不具合を修正
サブクラスを作って、cloneRowData()を呼ぶと、親クラスであるRowDataのインスタンスが返ってくる不具合を修正した。
(13)jp.ossc.nimbus.service.cache.MemorySizeOverflowValidatorServiceの不具合を修正
MaxHeapMemorySize属性とHighHeapMemorySize属性に小数値を設定できない不具合を修正した。
(14)jp.ossc.nimbus.service.graph.DatabaseTimeSeriesCollectionFactoryServiceの不具合を修正
CollateDataType属性の値がCOLLATE_DATA_TYPE_STARTまたはCOLLATE_DATA_TYPE_ENDの場合に、時刻がずれてしまう不具合を修正した。
(15)jp.ossc.nimbus.service.http.httpclient.HttpRequestImplの不具合を修正
サブクラスGetHttpRequestImplを使用した場合に、FollowRedirects属性が必ずtrueになってしまう不具合を修正した。
(16)jp.ossc.nimbus.service.http.httpclient.HttpResponseImplの不具合を修正
CharacterEncoding属性のデフォルト値として、ISO8859-1という存在しない文字コードを使用していたので、ISO8859_1に修正した。
(17)jp.ossc.nimbus.service.queue.QueueHandlerContainerServiceの不具合を修正
stop時に、Queue待ちしているQueueHandlerスレッドの停止よりも、Queueを先に開放していた不具合を修正した。
(18)jp.ossc.nimbus.service.writer.mail.MailWriterServiceの不具合を修正
javax.mail.Sessionを生成する時に渡すPropertiesに、System.getProperties()をそのまま使用していたため、Sessionへの設定がスレッドセーフではなくなってしまう不具合を修正した。
2. 変更
(1)jp.ossc.nimbus.beans.Propertyインタフェースの変更
setProperty(Object,Class,Object)メソッドを追加した。
(2)jp.ossc.nimbus.beans.SimplePropertyの機能追加
・Propertyインタフェースの変更に伴い、setProperty(Object,Class,Object)メソッドを実装した。
・primitive型のラッパー型のプロパティに対して、setProperty(Object, Object)を呼び出した時に、自動的にワイドキャストできるようにした。
・setProperty(Object, Object)で、設定する値がnullの時、引数の型が分からないので、諦めてNoSuchWritablePropertyExceptionをthrowしていたが、該当するセッターで最もワイドな型のメソッドを探してみるようにした。
(3)jp.ossc.nimbus.beans.NestedPropertyの機能追加
Propertyインタフェースの変更に伴い、setProperty(Object,Class,Object)メソッドを実装した。
(4)jp.ossc.nimbus.beans.IndexedPropertyの機能追加
・Propertyインタフェースの変更に伴い、setProperty(Object,Class,Object)メソッドを実装した。
・primitive型のラッパー型のプロパティに対して、setProperty(Object, Object)を呼び出した時に、自動的にワイドキャストできるようにした。
・setProperty(Object, Object)で、設定する値がnullの時、引数の型が分からないので、諦めてNoSuchWritablePropertyExceptionをthrowしていたが、該当するセッターで最もワイドな型のメソッドを探してみるようにした。
(5)jp.ossc.nimbus.beans.MappedPropertyの機能追加
・Propertyインタフェースの変更に伴い、setProperty(Object,Class,Object)メソッドを実装した。
・primitive型のラッパー型のプロパティに対して、setProperty(Object, Object)を呼び出した時に、自動的にワイドキャストできるようにした。
・setProperty(Object, Object)で、設定する値がnullの時、引数の型が分からないので、諦めてNoSuchWritablePropertyExceptionをthrowしていたが、該当するセッターで最もワイドな型のメソッドを探してみるようにした。
(6)jp.ossc.nimbus.beans.NimbusPropertyEditorManagerの機能追加
以下の型の、PropertyEditorを追加した。
・java.math.BigDecimal
・java.math.BigDecimal[]
・java.math.BigInteger
・java.math.BigInteger[]
(7)jp.ossc.nimbus.beans.PropertyFactoryの機能追加
キー付きプロパティのキーを指定する場合に、キーのセパレータである()以外の文字列なら、.や[などの別のプロパティのセパレータも指定できるようにした。
(8)jp.ossc.nimbus.beans.StringEditorの動作変更
setValue(null)された時に、getAsText()で"null"ではなく、nullを返すようにした
(9)jp.ossc.nimbus.beans.dataset.DataSetの機能追加
RecordにRecordListをネストさせる事ができるようにした。
それに伴い、以下のメソッドを追加した。
・setNestedRecordListSchema(String, String)
・getNestedRecordListSchema(String)
・getNestedRecordListSchemaNames()
・getNestedRecordListSchemaSize()
・getNestedRecordListSchemaMap()
・createNestedRecordList(String)
(10)jp.ossc.nimbus.beans.dataset.DefaultPropertySchemaの動作変更及び機能追加
[動作変更]
・プロパティ名を指定していない場合に、PropertySchemaDefineExceptionがthrowされるようにした。
・parse()とformat()で、Converterが指定されてなく、値がnullの場合、何もしないようにした。
[機能追加]
・setParseProperty()、getFormatProperty()で、Converterが指定されていない時に、PropertyEditorを使用するようにした。
(11)jp.ossc.nimbus.beans.dataset.RecordListの動作変更及びの機能追加
[動作変更]
・cloneRecordList()で、Recordも複製するようにした。
[機能追加]
・コンストラクタRecordList(String name, RecordSchema schema)を追加した。
(12)jp.ossc.nimbus.beans.dataset.RecordSchemaの機能追加
RecordにRecordListをネストさせる際に、レコードスキーマ定義でRecordListPropertySchemaのクラス名を定義する代わりにエイリアスとして、"LIST"と書けるようにした。
(13)jp.ossc.nimbus.core.DefaultServiceLoaderServiceの動作変更
デフォルトのPropertyEditorの管理を、NimbusPropertyEditorManagerに委譲した。
(14)jp.ossc.nimbus.core.MetaDataの機能追加
以下のメソッドを追加した。
・setParent(MetaData)
(15)jp.ossc.nimbus.core.ConstructorMetaDataの機能追加
以下のメソッドを追加した。
・removeArgument(ArgumentMetaData)
・clearArguments()
(16)jp.ossc.nimbus.core.InvokeMetaDataの機能追加
以下のメソッドを追加した。
・removeArgument(ArgumentMetaData)
・clearArguments()
(17)jp.ossc.nimbus.core.ManagerMetaDataの機能追加
以下のコンストラクタを追加した。
・ManagerMetaData()
以下のメソッドを追加した。
・setServiceLoader(ServiceLoader)
・removeProperty(String)
・clearProperties()
(18)jp.ossc.nimbus.core.ObjectMetaDataの機能追加
以下のコンストラクタを追加した。
・ObjectMetaData()
以下のメソッドを追加した。
・setServiceLoader(ServiceLoader)
・setManagerName(String)
・getField(String)
・removeField(String)
・clearFields()
・removeAttribute(String)
・clearAttributes()
・removeInvoke(InvokeMetaData)
・clearInvokes()
(19)jp.ossc.nimbus.core.ServerMetaDataの機能追加
以下のメソッドを追加した。
・setServiceLoader(ServiceLoader)
・removeManager(String)
・clearManagers()
・removePropertyEditor(String)
・clearPropertyEditors()
・removeProperty(String)
・clearProperties()
(20)jp.ossc.nimbus.core.ServiceMetaDataの機能追加
以下のコンストラクタを追加した。
・ServiceMetaData()
以下のメソッドを追加した。
・setFactory(boolean)
・setOptionalConfig(Element)
・removeDepends(DependsMetaData)
・clearDepends()
(21)jp.ossc.nimbus.ioc.ejb.EJBDriveDispatcherの機能改善
EJBの配置記述子で、loggerを指定しなくてもデプロイできるようにした。
(22)jp.ossc.nimbus.ioc.ejb.command.SLSBCommandBeanの機能改善
EJBの配置記述子で、loggerを指定しなくてもデプロイできるようにした。
(23)jp.ossc.nimbus.recset.RecordSetの機能追加
1.1.0との下位互換性のため、以下のメソッドを追加した。
・searchDynamicKey(String, RowData, String[], boolean[])
・searchDynamicKey(String, RowData, int[], boolean[])
(24)jp.ossc.nimbus.service.aop.interceptor.servlet.HttpServletResponseDeflateInterceptorServiceの機能改善
HTTPリクエストヘッダ"Accept-Encoding"の解釈を、RFC 2616に従って解釈するように拡張した。
(25)jp.ossc.nimbus.service.aop.interceptor.servlet.StreamExchangeInterceptorServiceの機能追加
HTTPリクエストの入力ストリームの解凍を行うかどうかを制御するRequestStreamInflate属性を追加した。
(26)jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerAccessImpl2の機能追加
・result要素の子要素に、step-ref要素を指定できるようにした。
・throw要素で、任意の例外をnewしてthrowできるようにした。
・attribute要素にtype属性が指定されている時に、指定された属性に該当するsetterがオーバライドしてある場合に、指定された型に一番近いsetterを探しに行くようにした。
(27)jp.ossc.nimbus.service.codemaster.CodeMasterFinderの機能追加
以下のメソッドを追加した。
・getCodeMasterNameSet()
(28)jp.ossc.nimbus.service.codemaster.CodeMasterServiceの機能追加
CodeMasterFinderインタフェースの変更に伴って、getCodeMasterNameSet()メソッドを実装した。
(29)jp.ossc.nimbus.service.codemaster.WeakReferenceCodeMasterServiceの機能追加
CodeMasterFinderインタフェースの変更に伴って、getCodeMasterNameSet()メソッドを実装した。
(30)jp.ossc.nimbus.service.graph.DatabaseOHLCDatasetFactoryServiceの機能追加
・データをある一定の期間毎に集計するために、集計間隔を設定するCollateDataPeriod属性を追加した。
・CollateDataPeriod属性を使用した際に、集計したデータの日付を、期間内のどこにするかを設定するCollateDataDateType属性を追加した。
(31)jp.ossc.nimbus.service.graph.DatabaseTimeSeriesCollectionFactoryServiceの機能追加
・CollateDataType属性に指定できる値として、一定期間毎の合計を行うCOLLATE_DATA_TYPE_SUMを追加した。
・CollateDataPeriod属性を使用した際に、集計したデータの日付を、期間内のどこにするかを設定するCollateDataDateType属性を追加した。
(32)jp.ossc.nimbus.service.http.HttpResponseの機能追加
以下のメソッドを追加した。
・getStatusMessage()
(33)jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryServiceの機能追加
・接続タイムアウトが発生した場合、HttpClientConnectTimeoutExceptionをthrowするようにした。
・ソケットタイムアウトが発生した場合、HttpClientSocketTimeoutExceptionをthrowするようにした。
・内部クラスHttpClientImplのアクセス修飾子をprotectedからpublicに変更した。
・getHttpClient()メソッドを追加した。
以下の属性を追加した
・Proxy
・LocalAddress
・HttpClientParam
・HttpClientParamMap
・HttpVersion
(34)jp.ossc.nimbus.service.http.httpclient.HttpRequestImplの動作変更及び機能追加
[動作変更]
・ContentType属性のデフォルト値を、"text/html"からnullに変更した。
・リクエストボディが空の時や、リクエストボディが圧縮閾値以下の時は、Content-Encodingヘッダを削除するようにした。
・HTTPリクエストヘッダ"Content-Encoding"に、複数の圧縮エンコーディングが指定されている場合に、指定された順で全ての圧縮処理を行っていたが、1つの圧縮処理しかしないように変更した。
・getObject()してエラーになった場合に、入力ストリームをリセットするようにした。
[機能追加]
以下のメソッドを追加した。
・setHttpMethodParam(String, Object)
・getHttpMethodParamNameSet()
・getHttpMethodParam(String)
・getHttpMethodParamMap()
・removeHeader(String)
(35)jp.ossc.nimbus.service.http.httpclient.HttpResponseImplの動作変更及び機能追加
[動作変更]
・HTTPリクエストヘッダ"Content-Encoding"に、複数の圧縮エンコーディングが指定されている場合に、指定された順で全ての解凍処理を行っていたが、1つの解凍処理しかしないように変更した。
[機能追加]
以下のメソッドを追加した。
・getStatusMessage()
・setStatusMessage(String)
(36)jp.ossc.nimbus.util.converter.DataSetXMLConverterの機能追加
・setDataSet(String,DataSet)で指定されたDataSetに、データセット名が設定されていない場合は、指定された名前をDataSetに自動的に設定するようにした。
・RecordにネストしたRecordListをXMLで相互変換できるようにした。
(37)jp.ossc.nimbus.util.converter.DateSetXMLConverterを削除
不要なクラスを削除した。
3. 追加
(1)jp.ossc.nimbus.beans.BigDecimalEditorを追加
java.math.BigDecimalを編集するPropertyEditorを追加した。
(2)jp.ossc.nimbus.beans.BigDecimalArrayEditorを追加
java.math.BigDecimal[]を編集するPropertyEditorを追加した。
(3)jp.ossc.nimbus.beans.BigIntegerEditorを追加
java.math.BigIntegerを編集するPropertyEditorを追加した。
(4)jp.ossc.nimbus.beans.BigIntegerArrayEditorを追加
java.math.BigInteger[]を編集するPropertyEditorを追加した。
(5)jp.ossc.nimbus.beans.dataset.RecordListPropertySchemaを追加
RecordにRecordListをネストさせるスキーマ定義の解釈を行うPropertySchema実装クラスを追加した。
(6)jp.ossc.nimbus.service.codemaster.CodeMasterFinderGroupServiceを追加
CodeMasterFinderをグルーピングするCodeMasterFinderサービスを追加した。
(7)jp.ossc.nimbus.service.http.httpclient.HttpClientConnectTimeoutExceptionを追加
タイムアウト系のエラーを区別して検知できるように、例外クラスを追加した。
(8)jp.ossc.nimbus.service.http.httpclient.HttpClientSocketTimeoutExceptionを追加
タイムアウト系のエラーを区別して検知できるように、例外クラスを追加した。
(9)jp.ossc.nimbus.service.http.proxyパッケージを追加
HttpClientを使用したシステムで、対向Webサーバのモックを立てれるように、HTTPプロキシサーバ機能を追加した。