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 ofIQueryCache
specifically. - Context-aware caching: Cache key creation can now make use of the retrieval context.
- Cache key improvements: The
CompositeKey
class 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
IContextualMarketDataRetrieverFactory
interface 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:
CurveMarketData
andSurfaceMarketData
no longer provide mapping methods.ICurveMarketData
andISurfaceMarketData
interfaces have been removed.
- Converted mapping from functional interfaces to simple mapping objects:
- The
MapperFactory
interface has been removed without a replacement. Mapper implementations can no longer be tied to other coordinates. - The
CoordinateMapper
interface has been replaced byITenorMapper
andIMoneynessMapper
. - Default implementations for mapping String objects to Double values are provided for tenors and moneyness values (in the
DefaultStringToDoubleTenorMapper
andDefaultStringToDoubleMoneynessMapper
classes).
- The
- Interpolator constructors take the coordinate modification strategy as the first parameter.
- Added
NONE
to theInterpolationMode
options. - Removed
ICachingInterpolationService
, replaced with anIInterpolatorBuilderService
, which buildsIInterpolator
objects without a cache. - Changed
IInterpolationService
to directly interpolate a value for a cache key, mode, known data, and requested point. - Added default implementations of the
IInterpolatorBuilderService
andIInterpolationService
for curves and surfaces. - Removed the
InterpolationFunction
class. - Measure builder classes take
ITenorMapper
andIMoneynessMapper
objects instead ofMapperFactory
objects. 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.