Migration notes 0.9

This page explains the changes required to migrate to the stated version of the Atoti Market Data.

Migrate to 0.9.0

Upgrading from Atoti Market Data 0.1.0 - See Atoti Market Data 0.9.0 Release Notes.

Summary

Java 21

Atoti Market Data 0.9.0 requires Java 21.

API changes

  • The AContextualMarketDataRetriever#createCacheKey method now returns CompositeKey.

  • The selection of a market data container based on a post-processor property has been moved into a new post-processor, APropertyMarketDataPostProcessor.

  • The withOverriddenValues in the post-processor builders now takes varargs as input instead of a List<Object> to be consistent with the signature of the withRequiredLevels method.

  • The functional interface CoordinatesToMapper has been renamed to MapperFactory.

  • To reflect that change, the following class attributes have been modified:

    Class New attribute name Old attribute name
    InterpolatingCurveContextualMarketDataRetriever tenorMapperFactory tenorCoordinatesToMapper
    InterpolatingSurfaceContextualMarketDataRetriever tenorMapperFactory tenorCoordinatesToMapper
    moneynessMapperFactory moneynessCoordinatesToMapper
    InterpolatingCubeContextualMarketDataRetriever tenorMapperFactory tenorCoordinatesToMapper
    moneynessMapperFactory moneynessCoordinatesToMapper
    maturityMapperFactory maturityCoordinatesToMapper
  • The IMaturityConverter interface is not used anymore in post-processors. Instead, MapperFactory needs to be defined:

Post-processor class Changes
CurveMarketDataPostProcessor Does not implement IMaturityConverterAware anymore.
Added property TENOR_MAPPER_FACTORY_PROPERTY for the MapperFactory handling tenors.
Added method withTenorMapperFactory in the builder to define the tenor MapperFactory.
SurfaceMarketDataPostProcessor Does not implement IMaturityConverterAware anymore.
Added property TENOR_MAPPER_FACTORY_PROPERTY for the MapperFactory handling tenors.
Added property MONEYNESS_MAPPER_FACTORY_PROPERTY for the MapperFactory handling moneyness.
Added method withTenorMapperFactory in the builder to define the tenor MapperFactory.
Added method withMoneynessMapperFactory in the builder to define the moneyness MapperFactory.
CubeMarketDataPostProcessor Does not implement IMaturityConverterAware anymore.
Added property TENOR_MAPPER_FACTORY_PROPERTY for the MapperFactory handling tenors.
Added property MONEYNESS_MAPPER_FACTORY_PROPERTY for the MapperFactory handling moneyness.
Added property MATURITY_MAPPER_FACTORY_PROPERTY for the MapperFactory handling moneyness. Added method withTenorMapperFactory in the builder to define the tenor MapperFactory.
Added method withMoneynessMapperFactory in the builder to define the moneyness MapperFactory.
Added method withMaturityMapperFactory in the builder to define the maturity MapperFactory.
  • The following store classes have been updated to add a constructor with a name parameter:

    • SpotMarketDataStore
    • CurveMarketDataStore
    • SurfaceMarketDataStore
    • CubeMarketDataStore
    • FxRateMarketDataStore
  • A new argument StoreProperties storeProperties, corresponding to the ConfigurationProperties used to define the store name suffix, has been added to the constructors of the beans in the following classes:

    • SpotMarketDataRetrievalConfig
    • CurveMarketDataRetrievalConfig
    • SurfaceMarketDataRetrievalConfig
    • CubeMarketDataRetrievalConfig
    • FxRateMarketDataRetrievalConfig
  • The *MarketDataRetrievalConfig beans of type AConfigurableSchema are now published as the concrete type. For example, the bean for the Spot store is now of type SpotMarketDataStore. These beans are then used by the other beans in the configuration to keep the store name consistent.

Behavior changes

  • Market data retrieval when overriddenStoreValues has the same length as requiredLevels is now allowed in ADefaultMarketDataPostProcessor.
  • An interpolation mode is no longer mandatory in CurveMarketDataPostProcessor, SurfaceMarketDataPostProcessor, and CubeMarketDataPostProcessor. If no interpolation mode is provided, the market data retrieved by these post-processors is not interpolated.

Properties

Added

Property Default value Description
market-data.store.suffix "" Suffix added to store names. That suffix is added to the name of all the stores.