package org.infinispan.jcache.remote; import javax.cache.configuration.CompleteConfiguration; import javax.cache.configuration.Configuration; import javax.cache.configuration.MutableConfiguration; import org.infinispan.client.hotrod.configuration.ConfigurationBuilder; public class ConfigurationAdapter<K, V> { private MutableConfiguration<K, V> c; private ConfigurationAdapter(MutableConfiguration<K, V> configuration) { this.c = configuration; } public MutableConfiguration<K, V> getConfiguration() { return c; } public org.infinispan.client.hotrod.configuration.Configuration build() { ConfigurationBuilder cb = new ConfigurationBuilder(); //TODO:! // if (c.isStoreByValue()) // cb.storeAsBinary().enable(); // // Factory<CacheLoader<K,V>> cacheLoaderFactory = c.getCacheLoaderFactory(); // if (cacheLoaderFactory != null) { // // User-defined cache loader will be plugged once cache has started // cb.persistence().addStore(JStoreAdapterConfigurationBuilder.class); // } // // Factory<CacheWriter<? super K, ? super V>> cacheWriterFactory = c.getCacheWriterFactory(); // if (cacheWriterFactory != null) { // // User-defined cache writer will be plugged once cache has started // cb.persistence().addStore(JCacheWriterAdapterConfigurationBuilder.class); // } // // if (c.isStatisticsEnabled()) // cb.jmxStatistics().enable(); return cb.build(); } public static <K, V> ConfigurationAdapter<K, V> create(Configuration<K, V> c) { // A configuration copy as required by the spec if (c instanceof CompleteConfiguration) { return new ConfigurationAdapter<K, V>( new MutableConfiguration<K, V>((CompleteConfiguration<K, V>) c)); } else { //support use of Basic Configuration MutableConfiguration<K, V> mutableConfiguration = new MutableConfiguration<K, V>(); mutableConfiguration.setStoreByValue(c.isStoreByValue()); mutableConfiguration.setTypes(c.getKeyType(), c.getValueType()); return new ConfigurationAdapter<K, V>( new MutableConfiguration<K, V>(mutableConfiguration)); } } public static <K, V> ConfigurationAdapter<K, V> create() { return new ConfigurationAdapter<K, V>(new MutableConfiguration<K, V>()); } }