当前位置: 首页>>代码示例>>Java>>正文


Java CompleteConfiguration.getCacheLoaderFactory方法代码示例

本文整理汇总了Java中javax.cache.configuration.CompleteConfiguration.getCacheLoaderFactory方法的典型用法代码示例。如果您正苦于以下问题:Java CompleteConfiguration.getCacheLoaderFactory方法的具体用法?Java CompleteConfiguration.getCacheLoaderFactory怎么用?Java CompleteConfiguration.getCacheLoaderFactory使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在javax.cache.configuration.CompleteConfiguration的用法示例。


在下文中一共展示了CompleteConfiguration.getCacheLoaderFactory方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: validateConfiguration

import javax.cache.configuration.CompleteConfiguration; //导入方法依赖的package包/类
private void validateConfiguration(CompleteConfiguration<?, ?> configuration)
{
    if (configuration.isStoreByValue())
    {
        throw new UnsupportedOperationException("Store by value is not supported in Guava!");
    }

    if (configuration.getExpiryPolicyFactory() == null)
    {
        throw new NullPointerException("Expiry policy factory cannot be null!");
    }

    ExpiryPolicy expiryPolicy = configuration.getExpiryPolicyFactory().create();

    if (!(expiryPolicy instanceof EternalExpiryPolicy)
        && !(expiryPolicy instanceof ModifiedExpiryPolicy)
        && !(expiryPolicy instanceof TouchedExpiryPolicy))
    {
        throw new UnsupportedOperationException("Invalid expiry policy configuration!");
    }

    if (configuration.isReadThrough() && configuration.getCacheLoaderFactory() == null)
    {
        throw new IllegalArgumentException("Invalid read through cache configuration!");
    }

    if (configuration.isWriteThrough() || configuration.getCacheWriterFactory() != null)
    {
        throw new UnsupportedOperationException("Invalid write through cache configuration!");
    }
}
 
开发者ID:ocafebabe,项目名称:guava-jcache,代码行数:32,代码来源:GuavaCacheManager.java

示例2: initCacheLoaderWriter

import javax.cache.configuration.CompleteConfiguration; //导入方法依赖的package包/类
private <K, V> Jsr107CacheLoaderWriter<K, V> initCacheLoaderWriter(CompleteConfiguration<K, V> config, MultiCacheException mce) {
  Factory<CacheLoader<K, V>> cacheLoaderFactory = config.getCacheLoaderFactory();
  @SuppressWarnings("unchecked")
  Factory<CacheWriter<K, V>> cacheWriterFactory = (Factory<CacheWriter<K, V>>) (Object) config.getCacheWriterFactory();

  if (config.isReadThrough() && cacheLoaderFactory == null) {
    throw new IllegalArgumentException("read-through enabled without a CacheLoader factory provided");
  }
  if (config.isWriteThrough() && cacheWriterFactory == null) {
    throw new IllegalArgumentException("write-through enabled without a CacheWriter factory provided");
  }

  CacheLoader<K, V> cacheLoader = cacheLoaderFactory == null ? null : cacheLoaderFactory.create();
  CacheWriter<K, V> cacheWriter;
  try {
    cacheWriter = cacheWriterFactory == null ? null : cacheWriterFactory.create();
  } catch (Throwable t) {
    if (t != mce) {
      mce.addThrowable(t);
    }
    CacheResources.close(cacheLoader, mce);
    throw mce;
  }

  if (cacheLoader == null && cacheWriter == null) {
    return null;
  } else {
    return new Eh107CacheLoaderWriter<>(cacheLoader, config.isReadThrough(), cacheWriter, config.isWriteThrough());
  }
}
 
开发者ID:ehcache,项目名称:ehcache3,代码行数:31,代码来源:ConfigurationMerger.java

示例3: copyBuilder

import javax.cache.configuration.CompleteConfiguration; //导入方法依赖的package包/类
/**
 * Copies the configuration to the target Builder. If the source (configuration)
 * is also a Builder, its fields also get copied. Any null-value in the
 * configuration is ignored in the copying process, leaving the corresponding
 * target value unchanged. The CacheWriteMode can be
 * defined in two ways: If configuration is a Builder it is copied plainly,
 * otherwise it is derived from configuration.isStoreByValue().
 * 
 * @param configuration The source builder
 * @param target The target builder
 */
private void copyBuilder(Configuration<K, V> configuration, Builder<K, V> target)
{
	CacheWriteMode tcacheWriteMode = null;
	if (configuration instanceof Builder)
	{
		Builder<K, V> sourceB = (Builder<K, V>)configuration;
		// tCache native configuration
		if (sourceB.id != null)
			target.id = sourceB.id;
		target.strictJSR107 = sourceB.strictJSR107;
		target.maxCacheTime = sourceB.maxCacheTime;
		target.maxCacheTimeSpread = sourceB.maxCacheTimeSpread;
		this.cleanUpIntervalMillis = sourceB.cleanUpIntervalMillis;
		target.expectedMapSize = sourceB.expectedMapSize;
		target.concurrencyLevel = sourceB.concurrencyLevel;
		if (sourceB.evictionPolicy != null)
			target.evictionPolicy = sourceB.evictionPolicy;
		if (sourceB.evictionClass != null)
			target.evictionClass = sourceB.evictionClass;			
		if (sourceB.hashImplementation != null)
			target.hashImplementation = sourceB.hashImplementation;
		if (sourceB.jamPolicy != null)
			target.jamPolicy = sourceB.jamPolicy;
		if (sourceB.loader != null)
			target.loader = sourceB.loader; // loader vs loaderFactory

		tcacheWriteMode = sourceB.writeMode;
	}
	
	if (configuration instanceof CompleteConfiguration)
	{
		CompleteConfiguration<K,V> cc = (CompleteConfiguration<K,V>)configuration;
		target.statistics = cc.isStatisticsEnabled();
		target.management = cc.isManagementEnabled();
		
		target.expiryPolicyFactory = cc.getExpiryPolicyFactory();
		target.writerFactory = cc.getCacheWriterFactory();
		Factory<javax.cache.integration.CacheLoader<K, V>> lf = cc.getCacheLoaderFactory();
		if (lf != null)
		{
			target.loader = null; // loader vs loaderFactory
			target.loaderFactory = lf;
		}
		
		Collection<CacheEntryListenerConfiguration<K, V>> listenerConfsCopy = new ArrayList<>(0);
		for (CacheEntryListenerConfiguration<K, V> entry : cc.getCacheEntryListenerConfigurations())
		{
			listenerConfsCopy.add(entry);
		}
		target.listenerConfigurations = listenerConfsCopy;
		
		target.writeThrough = cc.isWriteThrough();
		target.readThrough =  cc.isReadThrough();
	}
	
	// JSR107 configuration follows
	if (tcacheWriteMode != null)
		target.writeMode = tcacheWriteMode;
	else
		target.writeMode = CacheWriteMode.fromStoreByValue(configuration.isStoreByValue());
	
	target.keyType = configuration.getKeyType();
	target.valueType = configuration.getValueType();

}
 
开发者ID:trivago,项目名称:triava,代码行数:77,代码来源:Builder.java

示例4: BlazingCacheCache

import javax.cache.configuration.CompleteConfiguration; //导入方法依赖的package包/类
public BlazingCacheCache(String cacheName, CacheClient client, CacheManager cacheManager, Serializer<K, String> keysSerializer, Serializer<V, byte[]> valuesSerializer, boolean usefetch, Configuration<K, V> configuration) {
    this.cacheName = cacheName;
    this.cacheManager = cacheManager;
    this.client = client;
    this.keysSerializer = keysSerializer;
    this.valuesSerializer = valuesSerializer;
    this.valueType = configuration.getValueType();
    this.keyType = configuration.getKeyType();
    this.usefetch = usefetch;
    this.configurationMXBean = new BlazingCacheConfigurationMXBean<>(this);
    this.statisticsMXBean = new BlazingCacheStatisticsMXBean<>(this);
    this.storeByReference = !configuration.isStoreByValue();
    if (configuration instanceof CompleteConfiguration) {
        this.configuration = new MutableConfiguration<>((CompleteConfiguration<K, V>) configuration);
        CompleteConfiguration<K, V> cc = (CompleteConfiguration<K, V>) configuration;
        if (cc.getExpiryPolicyFactory() == null) {
            throw new IllegalArgumentException("ExpiryPolicyFactory cannot be null");
        } else {
            ExpiryPolicy _policy = cc.getExpiryPolicyFactory().create();;
            if (_policy == null) {
                throw new IllegalArgumentException("ExpiryPolicy cannot be null");
            }
            if (_policy instanceof EternalExpiryPolicy) {
                this.policy = null; // shortcut for the most common case
            } else {
                this.policy = _policy;
            }
        }

        if (cc.getCacheLoaderFactory() != null) {
            cacheLoader = (CacheLoader) cc.getCacheLoaderFactory().create();
        } else {
            cacheLoader = null;
        }
        if (cc.getCacheWriterFactory() != null) {
            cacheWriter = (CacheWriter<K, V>) cc.getCacheWriterFactory().create();
        } else {
            cacheWriter = null;
        }
        isReadThrough = cc.isReadThrough();
        isWriteThrough = cc.isWriteThrough();
        needPreviuosValueForListeners = policy != null;
        if (cc.getCacheEntryListenerConfigurations() != null) {
            for (CacheEntryListenerConfiguration<K, V> listenerConfig : cc.getCacheEntryListenerConfigurations()) {
                configureListener(listenerConfig);
            }
        }
    } else {
        this.configuration = new MutableConfiguration<K, V>()
            .setTypes(configuration.getKeyType(), configuration.getValueType())
            .setStoreByValue(configuration.isStoreByValue());
        this.policy = null; // means "eternal"
        cacheLoader = null;
        needPreviuosValueForListeners = false;
        cacheWriter = null;
        isReadThrough = false;
        isWriteThrough = false;
    }
    if (isReadThrough && cacheLoader == null) {
        throw new IllegalArgumentException("cache isReadThrough=" + isReadThrough + " cacheLoader=" + cacheLoader);
    }
    if (isWriteThrough && cacheWriter == null) {
        throw new IllegalArgumentException("cache isWriteThrough=" + isWriteThrough + " cacheWriter=" + cacheWriter);
    }
    if (this.configuration.isManagementEnabled()) {
        setManagementEnabled(true);
    }

    if (this.configuration.isStatisticsEnabled()) {
        setStatisticsEnabled(true);
    }

}
 
开发者ID:diennea,项目名称:blazingcache,代码行数:74,代码来源:BlazingCacheCache.java

示例5: Eh107CompleteConfiguration

import javax.cache.configuration.CompleteConfiguration; //导入方法依赖的package包/类
public Eh107CompleteConfiguration(Configuration<K, V> config, final CacheConfiguration<K, V> ehcacheConfig, boolean useEhcacheExpiry, boolean useEhcacheLoaderWriter) {
  this.ehcacheConfig = ehcacheConfig;
  this.keyType = config.getKeyType();
  this.valueType = config.getValueType();
  this.isStoreByValue = isStoreByValue(config, ehcacheConfig);

  Factory<ExpiryPolicy> tempExpiryPolicyFactory = EternalExpiryPolicy.factoryOf();

  if (config instanceof CompleteConfiguration) {
    CompleteConfiguration<K, V> completeConfig = (CompleteConfiguration<K, V>) config;
    this.isReadThrough = completeConfig.isReadThrough();
    this.isWriteThrough = completeConfig.isWriteThrough();
    this.isStatisticsEnabled = completeConfig.isStatisticsEnabled();
    this.isManagementEnabled = completeConfig.isManagementEnabled();

    if (useEhcacheLoaderWriter) {
      this.cacheLoaderFactory = createThrowingFactory();
      this.cacheWriterFactory = createThrowingFactory();
    } else {
      this.cacheLoaderFactory = completeConfig.getCacheLoaderFactory();
      this.cacheWriterFactory = completeConfig.getCacheWriterFactory();
    }

    tempExpiryPolicyFactory = completeConfig.getExpiryPolicyFactory();
    for (CacheEntryListenerConfiguration<K, V> listenerConfig : completeConfig.getCacheEntryListenerConfigurations()) {
      cacheEntryListenerConfigs.add(listenerConfig);
    }
  } else {
    this.isReadThrough = false;
    this.isWriteThrough = false;
    this.isStatisticsEnabled = false;
    this.isManagementEnabled = false;
    this.cacheLoaderFactory = null;
    this.cacheWriterFactory = null;
  }

  if (useEhcacheExpiry) {
    tempExpiryPolicyFactory = createThrowingFactory();
  }

  this.expiryPolicyFactory = tempExpiryPolicyFactory;
}
 
开发者ID:ehcache,项目名称:ehcache3,代码行数:43,代码来源:Eh107CompleteConfiguration.java


注:本文中的javax.cache.configuration.CompleteConfiguration.getCacheLoaderFactory方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。