All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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