
io.mstream.trader.datafeed.cache.repository.StocksRepositoryCacheProvider Maven / Gradle / Ivy
The newest version!
package io.mstream.trader.datafeed.cache.repository;
import io.mstream.trader.datafeed.stocks.StocksRepository;
import org.joda.money.Money;
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 StocksRepositoryCacheProvider
implements Provider> {
public static final String CACHE_NAME = "stocksRepository";
private final CacheManager cacheManager;
@Inject
public StocksRepositoryCacheProvider(CacheManager cacheManager) {
this.cacheManager = cacheManager;
}
@Override
public Cache get() {
MutableConfiguration config =
new MutableConfiguration<>();
config
.setTypes(
StocksRepository.Key.class,
Money.class
)
.setStoreByValue(false)
.setExpiryPolicyFactory(
FactoryBuilder.factoryOf(
EternalExpiryPolicy.class
)
);
return cacheManager
.createCache(
CACHE_NAME,
config
);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy