Migration notes 1.1
This page explains the changes required to migrate to the stated version of the Atoti Market Data.
Migrate to 1.1.2
Upgrading from Atoti Market Data 1.1.1 - See Atoti Market Data 1.1.2 Release Notes.
No migration is required for this bugfix version.
Migrate to 1.1.1
Upgrading from Atoti Market Data 1.1.0 - See Atoti Market Data 1.1.1 Release Notes.
No migration is required for this bugfix version.
Migrate to 1.1.0
Upgrading from Atoti Market Data 1.0.1 - See Atoti Market Data 1.1.0 Release Notes.
Summary
- Standalone interpolation services: All interpolation logic has been moved to standalone interpolation services.
- ConcurrentMap caching: Caching in Atoti Market Data now uses
ConcurrentMap<Object, Object>caches instead ofIQueryCachespecifically. - Context-aware caching: Cache key creation can now make use of the retrieval context.
- Cache key improvements: The
CompositeKeyclass has newmerge(CompositeKey other)andmerge(Object... values)methods that let you concatenate keys or individual objects. - Automated Registry injection: Registry injection for post-processors is now automated through the Spring Boot Starter.
- Removed retriever factories: Removed the
IContextualMarketDataRetrieverFactoryinterface and all remaining implementations. - Removed extra method from FX retrievers: The
getAvailableCurrencies()method in the FX retrievers has been removed.
Standalone interpolation services
Interpolation logic is now fully encapsulated within standalone interpolation services. The following changes have been made to support this move:
- Dropped mapping from data classes:
CurveMarketDataandSurfaceMarketDatano longer provide mapping methods.ICurveMarketDataandISurfaceMarketDatainterfaces have been removed.
- Converted mapping from functional interfaces to simple mapping objects:
- The
MapperFactoryinterface has been removed without a replacement. Mapper implementations can no longer be tied to other coordinates. - The
CoordinateMapperinterface has been replaced byITenorMapperandIMoneynessMapper. - Default implementations for mapping String objects to Double values are provided for tenors and moneyness values (in the
DefaultStringToDoubleTenorMapperandDefaultStringToDoubleMoneynessMapperclasses).
- The
- Interpolator constructors take the coordinate modification strategy as the first parameter.
- Added
NONEto theInterpolationModeoptions. - Removed
ICachingInterpolationService, replaced with anIInterpolatorBuilderService, which buildsIInterpolatorobjects without a cache. - Changed
IInterpolationServiceto directly interpolate a value for a cache key, mode, known data, and requested point. - Added default implementations of the
IInterpolatorBuilderServiceandIInterpolationServicefor curves and surfaces. - Removed the
InterpolationFunctionclass. - Measure builder classes take
ITenorMapperandIMoneynessMapperobjects instead ofMapperFactoryobjects. Both mapper types are optional.
ConcurrentMap caching
We have replaced all API usages of IQueryCache with ConcurrentMap<Object, Object>. As IQueryCache is an extension of ConcurrentMap<Object, Object>, using those implementations in API calls will still work, but is no longer mandatory.
Context-aware caching
The abstract createCacheKey(C translatedCoordinates) method in the AContextualMarketDataRetriever class is now createCacheKey(C translatedCoordinates, MarketDataRetrieverContext context).
Default implementations of this method have also been added to the InterpolatedCurveMarketDataRetriever and InterpolatedSurfaceMarketDataRetriever implementations, which add the InterpolationMode to the cache key.
Cache key improvements
The CompositeKey class has new merge(CompositeKey other) and merge(Object... values) methods that let you concatenate keys or individual objects.
Automated Registry injection
Post-processor instance variables that required Registry injection in the project using Atoti Market Data are now injected automatically when using the Spring Boot Starter.
The configuration classes used for this injection are imported into the respective retrieval configuration classes (e.g. FxMarketDataPostProcessorInjectionConfig is imported into FxRateMarketDataRetrievalConfig and executed automatically.)
Removed retriever factories
The IContextualMarketDataRetrieverFactory interface has been removed. The following related classes have also been removed:
FxMarketDataRetrieverFactory: a factory for FX retrievers.IFxMarketDataRetrieverFactoryAware: an interface for Registry injection into post-processors.FactoryFxRateMarketDataPostProcessor: a post-processor using theFxMarketDataRetrieverFactory.FactoryFxRateMarketDataMeasureBuilder: a builder for measures using theFactoryFxRateMarketDataPostProcessor.
Removed extra method from FX retrievers
The getAvailableCurrencies() method in the FX retrievers has been removed. To retrieve the available currencies from the FX Rate store, use the Atoti Server Database API.