/** * Checks whether configuration enables copying * * @param cacheConfiguration the cache config * @return true is copying is required, otherwise false */ static boolean requiresCopy(final CacheConfiguration cacheConfiguration) { return cacheConfiguration.isCopyOnRead() || cacheConfiguration.isCopyOnWrite(); }
private static boolean isCopyOnReadAndCopyOnWrite(final CacheConfiguration cacheConfiguration) { return cacheConfiguration.isCopyOnRead() && cacheConfiguration.isCopyOnWrite(); }
/** * Wraps (always) with the proper configured CopyingCacheStore * @param cacheStore the store to wrap * @param cacheConfiguration the cache config backed by this store * @param <T> the Store type * @return the wrapped store */ private static <T extends Store> CopyingCacheStore<T> wrap(final T cacheStore, final CacheConfiguration cacheConfiguration) { final ReadWriteCopyStrategy<Element> copyStrategyInstance = cacheConfiguration.getCopyStrategyConfiguration() .getCopyStrategyInstance(cacheConfiguration.getClassLoader()); return new CopyingCacheStore<T>(cacheStore, cacheConfiguration.isCopyOnRead(), cacheConfiguration.isCopyOnWrite(), copyStrategyInstance, cacheConfiguration.getClassLoader()); }
/** * Wraps (always) with the proper configured CopyingCacheStore * @param cacheStore the store to wrap * @param cacheConfiguration the cache config backed by this store * @param <T> the Store type * @return the wrapped store */ private static <T extends Store> TxCopyingCacheStore<T> wrap(final T cacheStore, final CacheConfiguration cacheConfiguration) { final ReadWriteCopyStrategy<Element> copyStrategyInstance = cacheConfiguration.getCopyStrategyConfiguration() .getCopyStrategyInstance(cacheConfiguration.getClassLoader()); return new TxCopyingCacheStore<T>(cacheStore, cacheConfiguration.isCopyOnRead(), cacheConfiguration.isCopyOnWrite(), copyStrategyInstance, cacheConfiguration.getClassLoader()); }
/** * Factory method to wrap the MemoryStore into a BruteForceSource, accounting for transactional and copy * configuration * * @param memoryStore the underlying store acting as source * @param cacheConfiguration the cache configuration * @return a BruteForceSource connected to underlying MemoryStore and matching configuration */ protected static BruteForceSource createBruteForceSource(MemoryStore memoryStore, CacheConfiguration cacheConfiguration) { BruteForceSource source = new MemoryStoreBruteForceSource(memoryStore, cacheConfiguration.getSearchable()); CopyStrategyHandler copyStrategyHandler = new CopyStrategyHandler(cacheConfiguration.isCopyOnRead(), cacheConfiguration.isCopyOnWrite(), cacheConfiguration.getCopyStrategy(), cacheConfiguration.getClassLoader()); if (cacheConfiguration.getTransactionalMode().isTransactional()) { source = new TransactionalBruteForceSource(source, copyStrategyHandler); } else if (cacheConfiguration.isCopyOnRead() || cacheConfiguration.isCopyOnWrite()) { source = new CopyingBruteForceSource(source, copyStrategyHandler); } return source; }
/** * Wraps the given {@link net.sf.ehcache.store.ElementValueComparator} if the configuration requires copy on read * * @param comparator the comparator to wrap * @param cacheConfiguration the cache configuration * @return the comparator passed if no copy needed, a wrapped comparator otherwise */ public static ElementValueComparator wrap(final ElementValueComparator comparator, final CacheConfiguration cacheConfiguration) { final ReadWriteCopyStrategy<Element> copyStrategyInstance = cacheConfiguration.getCopyStrategyConfiguration() .getCopyStrategyInstance(cacheConfiguration.getClassLoader()); CopyStrategyHandler copyStrategyHandler = new CopyStrategyHandler(cacheConfiguration.isCopyOnRead(), cacheConfiguration.isCopyOnWrite(), copyStrategyInstance, cacheConfiguration.getClassLoader()); return new TxCopyingElementValueComparator(comparator, copyStrategyHandler); }
static CopyStrategyHandler getCopyStrategyHandler(final Ehcache cache) { if (cache.getCacheConfiguration().isXaTransactional() || cache.getCacheConfiguration().isXaStrictTransactional() || cache.getCacheConfiguration().isLocalTransactional()) { return new TxCopyStrategyHandler(cache.getCacheConfiguration().isCopyOnRead(), cache.getCacheConfiguration().isCopyOnWrite(), cache.getCacheConfiguration().getCopyStrategy(), cache.getCacheConfiguration().getClassLoader()); } else if (cache.getCacheConfiguration().isCopyOnRead() || cache.getCacheConfiguration().isCopyOnWrite()) { return new CopyStrategyHandler(cache.getCacheConfiguration().isCopyOnRead(), cache.getCacheConfiguration().isCopyOnWrite(), cache.getCacheConfiguration().getCopyStrategy(), cache.getCacheConfiguration().getClassLoader()); } else { return NO_COPY_STRATEGY_HANDLER; } }
/** * Wraps the given {@link net.sf.ehcache.store.ElementValueComparator} if the configuration requires copy on read * * @param comparator the comparator to wrap * @param cacheConfiguration the cache configuration * @return the comparator passed if no copy needed, a wrapped comparator otherwise */ public static ElementValueComparator wrapIfCopy(final ElementValueComparator comparator, final CacheConfiguration cacheConfiguration) { if (isCopyOnReadAndCopyOnWrite(cacheConfiguration)) { final ReadWriteCopyStrategy<Element> copyStrategyInstance = cacheConfiguration.getCopyStrategyConfiguration() .getCopyStrategyInstance(cacheConfiguration.getClassLoader()); CopyStrategyHandler copyStrategyHandler = new CopyStrategyHandler(cacheConfiguration.isCopyOnRead(), cacheConfiguration.isCopyOnWrite(), copyStrategyInstance, cacheConfiguration.getClassLoader()); return new CopyingElementValueComparator(comparator, copyStrategyHandler); } return comparator; }
/** * Checks whether configuration enables copying * * @param cacheConfiguration the cache config * @return true is copying is required, otherwise false */ static boolean requiresCopy(final CacheConfiguration cacheConfiguration) { return cacheConfiguration.isCopyOnRead() || cacheConfiguration.isCopyOnWrite(); }
/** * Checks whether configuration enables copying * * @param cacheConfiguration the cache config * @return true is copying is required, otherwise false */ static boolean requiresCopy(final CacheConfiguration cacheConfiguration) { return cacheConfiguration.isCopyOnRead() || cacheConfiguration.isCopyOnWrite(); }
private boolean skipCopyForRead() { // only do a copy for read before comparing if both copy on read and copy on write are enabled return !(cacheConfiguration.isCopyOnRead() && cacheConfiguration.isCopyOnWrite()); }
private DiskBackedMemoryStore(CacheConfiguration cacheConfiguration, MemoryStore cache, DiskStore authority, SearchManager searchManager) { super(cache, authority, cacheConfiguration.getCopyStrategy(), searchManager, cacheConfiguration.isCopyOnWrite(), cacheConfiguration.isCopyOnRead()); }
/** * Create a MemoryOnlyStore * * @param cacheConfiguration the cache configuration * @param authority the memory store */ protected MemoryOnlyStore(CacheConfiguration cacheConfiguration, MemoryStore authority, SearchManager searchManager) { super(NullStore.create(), authority, cacheConfiguration.getCopyStrategy(), searchManager, cacheConfiguration.isCopyOnWrite(), cacheConfiguration.isCopyOnRead()); }
builder.offheapEnabled(ehcacheConfig.isOverflowToOffHeap()); builder.compressionEnabled(terracottaConfiguration.isCompressionEnabled()); builder.copyOnReadEnabled(ehcacheConfig.isCopyOnRead());
element.addAttribute(new SimpleNodeAttribute("copyOnWrite", cacheConfiguration.isCopyOnWrite()).optional(true).defaultValue( CacheConfiguration.DEFAULT_COPY_ON_WRITE)); element.addAttribute(new SimpleNodeAttribute("copyOnRead", cacheConfiguration.isCopyOnRead()).optional(true).defaultValue( CacheConfiguration.DEFAULT_COPY_ON_READ)); element.addAttribute(new SimpleNodeAttribute("timeToIdleSeconds", cacheConfiguration.getTimeToIdleSeconds()).optional(true)
/** * Wraps (always) with the proper configured CopyingCacheStore * @param cacheStore the store to wrap * @param cacheConfiguration the cache config backed by this store * @param <T> the Store type * @return the wrapped store */ private static <T extends Store> TxCopyingCacheStore<T> wrap(final T cacheStore, final CacheConfiguration cacheConfiguration) { final ReadWriteCopyStrategy<Element> copyStrategyInstance = cacheConfiguration.getCopyStrategyConfiguration() .getCopyStrategyInstance(cacheConfiguration.getClassLoader()); return new TxCopyingCacheStore<T>(cacheStore, cacheConfiguration.isCopyOnRead(), cacheConfiguration.isCopyOnWrite(), copyStrategyInstance, cacheConfiguration.getClassLoader()); }
/** * Wraps (always) with the proper configured CopyingCacheStore * @param cacheStore the store to wrap * @param cacheConfiguration the cache config backed by this store * @param <T> the Store type * @return the wrapped store */ private static <T extends Store> CopyingCacheStore<T> wrap(final T cacheStore, final CacheConfiguration cacheConfiguration) { final ReadWriteCopyStrategy<Element> copyStrategyInstance = cacheConfiguration.getCopyStrategyConfiguration() .getCopyStrategyInstance(cacheConfiguration.getClassLoader()); return new CopyingCacheStore<T>(cacheStore, cacheConfiguration.isCopyOnRead(), cacheConfiguration.isCopyOnWrite(), copyStrategyInstance, cacheConfiguration.getClassLoader()); }
/** * Wraps (always) with the proper configured CopyingCacheStore * @param cacheStore the store to wrap * @param cacheConfiguration the cache config backed by this store * @param <T> the Store type * @return the wrapped store */ private static <T extends Store> CopyingCacheStore<T> wrap(final T cacheStore, final CacheConfiguration cacheConfiguration) { final ReadWriteCopyStrategy<Element> copyStrategyInstance = cacheConfiguration.getCopyStrategyConfiguration() .getCopyStrategyInstance(cacheConfiguration.getClassLoader()); return new CopyingCacheStore<T>(cacheStore, cacheConfiguration.isCopyOnRead(), cacheConfiguration.isCopyOnWrite(), copyStrategyInstance, cacheConfiguration.getClassLoader()); }
/** * Wraps (always) with the proper configured CopyingCacheStore * @param cacheStore the store to wrap * @param cacheConfiguration the cache config backed by this store * @param <T> the Store type * @return the wrapped store */ private static <T extends Store> TxCopyingCacheStore<T> wrap(final T cacheStore, final CacheConfiguration cacheConfiguration) { final ReadWriteCopyStrategy<Element> copyStrategyInstance = cacheConfiguration.getCopyStrategyConfiguration() .getCopyStrategyInstance(cacheConfiguration.getClassLoader()); return new TxCopyingCacheStore<T>(cacheStore, cacheConfiguration.isCopyOnRead(), cacheConfiguration.isCopyOnWrite(), copyStrategyInstance, cacheConfiguration.getClassLoader()); }
static CopyStrategyHandler getCopyStrategyHandler(final Ehcache cache) { if (cache.getCacheConfiguration().isXaTransactional() || cache.getCacheConfiguration().isXaStrictTransactional() || cache.getCacheConfiguration().isLocalTransactional()) { return new TxCopyStrategyHandler(cache.getCacheConfiguration().isCopyOnRead(), cache.getCacheConfiguration().isCopyOnWrite(), cache.getCacheConfiguration().getCopyStrategy(), cache.getCacheConfiguration().getClassLoader()); } else if (cache.getCacheConfiguration().isCopyOnRead() || cache.getCacheConfiguration().isCopyOnWrite()) { return new CopyStrategyHandler(cache.getCacheConfiguration().isCopyOnRead(), cache.getCacheConfiguration().isCopyOnWrite(), cache.getCacheConfiguration().getCopyStrategy(), cache.getCacheConfiguration().getClassLoader()); } else { return NO_COPY_STRATEGY_HANDLER; } }