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

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