
io.mstream.trader.simulation.cache.repository.StockPriceRepositoryCacheProvider Maven / Gradle / Ivy
package io.mstream.trader.simulation.cache.repository;
import io.mstream.trader.simulation.stocks.StocksPriceRepository;
import io.mstream.trader.simulation.stocks.datafeed.data.StockPrice;
import javax.cache.Cache;
import javax.cache.CacheManager;
import javax.cache.configuration.FactoryBuilder;
import javax.cache.configuration.MutableConfiguration;
import javax.cache.expiry.EternalExpiryPolicy;
import javax.inject.Inject;
import javax.inject.Provider;
public class StockPriceRepositoryCacheProvider
implements Provider> {
public static final String CACHE_NAME = "stockPriceRepository";
private final CacheManager cacheManager;
@Inject
public StockPriceRepositoryCacheProvider(CacheManager cacheManager) {
this.cacheManager = cacheManager;
}
@Override
public Cache get() {
MutableConfiguration config =
new MutableConfiguration<>();
config
.setTypes(
StocksPriceRepository.Key.class,
StockPrice.class
)
.setStoreByValue(false)
.setExpiryPolicyFactory(
FactoryBuilder.factoryOf(
EternalExpiryPolicy.class
)
);
return cacheManager
.createCache(
CACHE_NAME,
config
);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy