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

org.infinispan.config.FluentConfiguration Maven / Gradle / Ivy

/*
 * JBoss, Home of Professional Open Source
 * Copyright 2011 Red Hat Inc. and/or its affiliates and other
 * contributors as indicated by the @author tags. All rights reserved.
 * See the copyright.txt in the distribution for a full listing of
 * individual contributors.
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 */

package org.infinispan.config;

import org.infinispan.commons.hash.Hash;
import org.infinispan.configuration.cache.VersioningScheme;
import org.infinispan.container.DataContainer;
import org.infinispan.distribution.ch.ConsistentHash;
import org.infinispan.distribution.group.Group;
import org.infinispan.distribution.group.Grouper;
import org.infinispan.eviction.EvictionStrategy;
import org.infinispan.eviction.EvictionThreadPolicy;
import org.infinispan.interceptors.base.CommandInterceptor;
import org.infinispan.loaders.CacheLoaderConfig;
import org.infinispan.remoting.ReplicationQueue;
import org.infinispan.transaction.LockingMode;
import org.infinispan.transaction.TransactionMode;
import org.infinispan.transaction.lookup.TransactionManagerLookup;
import org.infinispan.transaction.lookup.TransactionSynchronizationRegistryLookup;
import org.infinispan.util.concurrent.IsolationLevel;

import java.util.List;
import java.util.Properties;

/**
 * Fluent configuration base class.
 *
 * @author Galder Zamarreño
 * @author Vladimir Blagojevic
 * @author [email protected]
 * @since 5.0
 */
@Deprecated
public class FluentConfiguration extends AbstractFluentConfigurationBean {

   public FluentConfiguration(Configuration config) {
      setConfiguration(config);
   }

   /**
    * Defines the local, in-VM locking and concurrency characteristics of the cache.
    */
   @Deprecated public static interface LockingConfig extends FluentTypes {
      /**
       * Maximum time to attempt a particular lock acquisition
       *
       * @param lockAcquisitionTimeout
       */
      LockingConfig lockAcquisitionTimeout(Long lockAcquisitionTimeout);

      /**
       * Cache isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation
       * levels. See http://en.wikipedia.org/wiki/Isolation_level
       * for a discussion on isolation levels.
       *
       * @param isolationLevel
       */
      LockingConfig isolationLevel(IsolationLevel isolationLevel);

      /**
       * This setting is only applicable in the case of REPEATABLE_READ. When write skew check is
       * set to false, if the writer at commit time discovers that the working entry and the
       * underlying entry have different versions, the working entry will overwrite the underlying
       * entry. If true, such version conflict - known as a write-skew - will throw an Exception.
       *
       * @param writeSkewCheck
       */
      LockingConfig writeSkewCheck(Boolean writeSkewCheck);

      /**
       * If true, a pool of shared locks is maintained for all entries that need to be locked.
       * Otherwise, a lock is created per entry in the cache. Lock striping helps control memory
       * footprint but may reduce concurrency in the system.
       *
       * @param useLockStriping
       */
      LockingConfig useLockStriping(Boolean useLockStriping);

      /**
       * Concurrency level for lock containers. Adjust this value according to the number of
       * concurrent threads interacting with Infinispan. Similar to the concurrencyLevel tuning
       * parameter seen in the JDK's ConcurrentHashMap.
       *
       * @param concurrencyLevel
       */
      LockingConfig concurrencyLevel(Integer concurrencyLevel);
   }

   /**
    * Holds the configuration for cache loaders and stores.
    */
   @Deprecated public static interface LoadersConfig extends FluentTypes {
      /**
       * If true, when the cache starts, data stored in the cache store will be pre-loaded into memory.
       * This is particularly useful when data in the cache store will be needed immediately after
       * startup and you want to avoid cache operations being delayed as a result of loading this data
       * lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance
       * penalty as startup time is affected by this process.
       *
       * @param preload
       */
      LoadersConfig preload(Boolean preload);

      /**
       * If true, data is only written to the cache store when it is evicted from memory, a phenomenon
       * known as 'passivation'. Next time the data is requested, it will be 'activated' which means
       * that data will be brought back to memory and removed from the persistent store. This gives you
       * the ability to 'overflow' to disk, similar to swapping in an operating system. 
*
* If false, the cache store contains a copy of the contents in memory, so writes to cache result * in cache store writes. This essentially gives you a 'write-through' configuration. * * @param passivation */ LoadersConfig passivation(Boolean passivation); /** * This setting should be set to true when multiple cache instances share the same cache store * (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared * database.) Setting this to true avoids multiple cache instances writing the same modification * multiple times. If enabled, only the node where the modification originated will write to the * cache store.
*
* If disabled, each individual cache reacts to a potential remote update by storing the data to * the cache store. Note that this could be useful if each individual node has its own cache * store - perhaps local on-disk. * * @param shared */ LoadersConfig shared(Boolean shared); LoadersConfig addCacheLoader(CacheLoaderConfig... configs); } /** * Defines transactional (JTA) characteristics of the cache. */ @Deprecated public static interface TransactionConfig extends FluentTypes { /** * Fully qualified class name of a class that looks up a reference to a * {@link javax.transaction.TransactionManager}. The default provided is capable of locating * the default TransactionManager in most popular Java EE systems, using a JNDI lookup. * * @param transactionManagerLookupClass */ TransactionConfig transactionManagerLookupClass(Class transactionManagerLookupClass); /** * Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this * method marks the cache as transactional. * * @param transactionManagerLookup instance to use as lookup * @return this TransactionConfig */ TransactionConfig transactionManagerLookup(TransactionManagerLookup transactionManagerLookup); /** * Configure Transaction Synchronization Registry lookup directly using an instance of TransactionManagerLookup. * Calling this method marks the cache as transactional. * * @param transactionSynchronizationRegistryLookup instance to use as lookup * @return this TransactionConfig */ TransactionConfig transactionSynchronizationRegistryLookup(TransactionSynchronizationRegistryLookup transactionSynchronizationRegistryLookup); /** * If true, the cluster-wide commit phase in two-phase commit (2PC) transactions will be * synchronous, so Infinispan will wait for responses from all nodes to which the commit was * sent. Otherwise, the commit phase will be asynchronous. Keeping it as false improves * performance of 2PC transactions, since any remote failures are trapped during the prepare * phase anyway and appropriate rollbacks are issued. * * @param syncCommitPhase */ TransactionConfig syncCommitPhase(Boolean syncCommitPhase); /** * If true, the cluster-wide rollback phase in two-phase commit (2PC) transactions will be * synchronous, so Infinispan will wait for responses from all nodes to which the rollback was * sent. Otherwise, the rollback phase will be asynchronous. Keeping it as false improves * performance of 2PC transactions. * * @param syncRollbackPhase */ TransactionConfig syncRollbackPhase(Boolean syncRollbackPhase); /** * Only has effect for DIST mode and when useEagerLocking is set to true. When this is * enabled, then only one node is locked in the cluster, disregarding numOwners config. On the * opposite, if this is false, then on all cache.lock() calls numOwners RPCs are being * performed. The node that gets locked is the main data owner, i.e. the node where data would * reside if numOwners==1. If the node where the lock resides crashes, then the transaction is * marked for rollback - data is in a consistent state, no fault tolerance. * * Note: Starting with infinispan 5.1 eager locking is replaced with pessimistic locking and can * be enforced by setting transaction's locking mode to PESSIMISTIC. * * @param useEagerLocking * @deprecated * @see Configuration#getTransactionLockingMode() */ @Deprecated TransactionConfig useEagerLocking(Boolean useEagerLocking); /** * Only has effect for DIST mode and when useEagerLocking is set to true. When this is * enabled, then only one node is locked in the cluster, disregarding numOwners config. On the * opposite, if this is false, then on all cache.lock() calls numOwners RPCs are being * performed. The node that gets locked is the main data owner, i.e. the node where data would * reside if numOwners==1. If the node where the lock resides crashes, then the transaction is * marked for rollback - data is in a consistent state, no fault tolerance. * * @param eagerLockSingleNode * @deprecated starting with Infinispan 5.1 single node locking is used by default */ @Deprecated TransactionConfig eagerLockSingleNode(Boolean eagerLockSingleNode); /** * If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing * remote and local transactions to finish. The amount of time to wait for is defined by the * cache stop timeout. It is recommended that this value does not exceed the transaction * timeout because even if a new transaction was started just before the cache was stopped, * this could only last as long as the transaction timeout allows it. */ TransactionConfig cacheStopTimeout(Integer cacheStopTimeout); /** * This method allows configuration of the transaction recovery cache. * When this method is called, it automatically enables recovery. So, * if you want it to be disabled, make sure you call * {@link org.infinispan.config.FluentConfiguration.RecoveryConfig#disable()} */ RecoveryConfig recovery(); TransactionConfig useSynchronization(Boolean useSynchronization); /** * Configures whether the cache uses optimistic or pessimistic locking. If the cache is not transactional then * the locking mode is ignored. * @see org.infinispan.config.Configuration#isTransactionalCache() */ TransactionConfig lockingMode(LockingMode lockingMode); /** * Configures whether the cache is transactional or not. * @see TransactionMode */ TransactionConfig transactionMode(TransactionMode transactionMode); /** * @see org.infinispan.config.Configuration#isTransactionAutoCommit(). */ TransactionConfig autoCommit(boolean enabled); /** * This configuration option was added for the following situation: * - pre 5.1 code is using the cache */ Configuration.TransactionType use1PcForAutoCommitTransactions(boolean b); } /** * Defines recovery configuration for the cache. */ @Deprecated public static interface RecoveryConfig extends TransactionConfig { RecoveryConfig disable(); /** * Sets the name of the cache where recovery related information is held. If not specified defaults to * a cache named {@link Configuration.RecoveryType#DEFAULT_RECOVERY_INFO_CACHE} */ RecoveryConfig recoveryInfoCacheName(String cacheName); } /** * Configures deadlock detection. */ @Deprecated public static interface DeadlockDetectionConfig extends FluentTypes { DeadlockDetectionConfig disable(); /** * Time period that determines how often is lock acquisition attempted within maximum time * allowed to acquire a particular lock * * @param duration */ DeadlockDetectionConfig spinDuration(Long duration); } /** * Configures custom interceptors to be added to the cache. */ @Deprecated public static interface CustomInterceptorsConfig extends FluentTypes, CustomInterceptorCumulator { } /** * Enables addition of several customer interceptors */ @Deprecated public static interface CustomInterceptorCumulator { CustomInterceptorPosition add(CommandInterceptor interceptor); } /** * Configures the location of a specific custom interceptor */ @Deprecated public static interface CustomInterceptorPosition { CustomInterceptorsConfig first(); CustomInterceptorsConfig last(); CustomInterceptorsConfig atIndex(int index); CustomInterceptorsConfig after(Class interceptorClass); CustomInterceptorsConfig before(Class interceptorClass); } /** * Controls the eviction settings for the cache. */ @Deprecated public interface EvictionConfig extends FluentTypes { /** * Eviction strategy. Available options are 'UNORDERED', 'FIFO', 'LRU', 'LIRS' and 'NONE' (to disable * eviction). * * @param strategy */ EvictionConfig strategy(EvictionStrategy strategy); /** * Threading policy for eviction. * * @param threadPolicy */ EvictionConfig threadPolicy(EvictionThreadPolicy threadPolicy); /** * Maximum number of entries in a cache instance. If selected value is not a power of two the * actual value will default to the least power of two larger than selected value. -1 means no * limit. * * @param maxEntries */ EvictionConfig maxEntries(Integer maxEntries); } /** * Controls the default expiration settings for entries in the cache. */ @Deprecated public static interface ExpirationConfig extends FluentTypes { /** * Maximum lifespan of a cache entry, after which the entry is expired cluster-wide, in * milliseconds. -1 means the entries never expire. * * Note that this can be overridden on a per-entry basis by using the Cache API. * * @param lifespan */ ExpirationConfig lifespan(Long lifespan); /** * Maximum idle time a cache entry will be maintained in the cache, in milliseconds. If the * idle time is exceeded, the entry will be expired cluster-wide. -1 means the entries never * expire. * * Note that this can be overridden on a per-entry basis by using the Cache API. * * @param maxIdle */ ExpirationConfig maxIdle(Long maxIdle); /** * Interval (in milliseconds) between subsequent runs to purge expired * entries from memory and any cache stores. If you wish to disable the * periodic eviction process altogether, set wakeupInterval to -1. * * @param wakeUpInterval */ ExpirationConfig wakeUpInterval(Long wakeUpInterval); /** * Sets whether the background reaper thread is enabled to test entries for expiration. Regardless of whether * a reaper is used, entries are tested for expiration lazily when they are touched. * @param enabled whether a reaper thread is used or not */ ExpirationConfig reaperEnabled(Boolean enabled); } /** * Defines clustered characteristics of the cache. */ @Deprecated public static interface ClusteringConfig extends FluentTypes { /** * Cache mode. For distribution, set mode to either 'd', 'dist' or 'distribution'. For * replication, use either 'r', 'repl' or 'replication'. Finally, for invalidation, 'i', 'inv' * or 'invalidation'. If the cache mode is set to 'l' or 'local', the cache in question will * not support clustering even if its cache manager does. */ ClusteringConfig mode(Configuration.CacheMode mode); /** * Configure async sub element. Once this method is invoked users cannot subsequently invoke * configureSync() as two are mutually exclusive * * @return AsyncConfig element */ AsyncConfig async(); /** * Configure sync sub element. Once this method is invoked users cannot subsequently invoke * configureAsync() as two are mutually exclusive * * @return SyncConfig element */ SyncConfig sync(); /** * Configure stateRetrieval sub element * * @return StateRetrievalConfig element */ StateRetrievalConfig stateRetrieval(); /** * This method allows configuration of the L1 cache for distributed * caches. When this method is called, it automatically enables L1. So, * if you want it to be disabled, make sure you call * {@link org.infinispan.config.FluentConfiguration.L1Config#disable()} */ L1Config l1(); /** * * Configure hash sub element * * @return HashConfig element */ HashConfig hash(); } /** * If configured all communications are asynchronous, in that whenever a thread sends a message * sent over the wire, it does not wait for an acknowledgment before returning. AsyncConfig is * mutually exclusive with the SyncConfig */ @Deprecated public interface AsyncConfig extends ClusteringConfig { /** * If true, this forces all async communications to be queued up and sent out periodically as * a batch. * * @param useReplQueue */ AsyncConfig useReplQueue(Boolean useReplQueue); /** * If useReplQueue is set to true, this attribute can be used to trigger flushing of the queue * when it reaches a specific threshold. * * @param replQueueMaxElements */ AsyncConfig replQueueMaxElements(Integer replQueueMaxElements); /** * If useReplQueue is set to true, this attribute controls how often the asynchronous thread * used to flush the replication queue runs. This should be a positive integer which * represents thread wakeup time in milliseconds. * * @param replQueueInterval */ AsyncConfig replQueueInterval(Long replQueueInterval); /** * If true, asynchronous marshalling is enabled which means that caller can return even * quicker, but it can suffer from reordering of operations. You can find more information here * * @param asyncMarshalling */ AsyncConfig asyncMarshalling(Boolean asyncMarshalling); /** * This overrides the replication queue implementation class. Overriding the default allows * you to add behavior to the queue, typically by subclassing the default implementation. * * @param replQueueClass */ AsyncConfig replQueueClass(Class replQueueClass); } /** * If configured all communications are synchronous, in that whenever a thread sends a message * sent over the wire, it blocks until it receives an acknowledgment from the recipient. * SyncConfig is mutually exclusive with the AsyncConfig. */ @Deprecated public interface SyncConfig extends ClusteringConfig { /** * This is the timeout used to wait for an acknowledgment when making a remote call, after * which the call is aborted and an exception is thrown. * * @param replTimeout */ SyncConfig replTimeout(Long replTimeout); } /** * Configures how state is retrieved when a new cache joins the cluster. * Used with invalidation and replication clustered modes. */ @Deprecated public interface StateRetrievalConfig extends ClusteringConfig { /** * If true, this will cause the cache to ask neighboring caches for state when it starts up, * so the cache starts 'warm', although it will impact startup time. * * @param fetchInMemoryState */ StateRetrievalConfig fetchInMemoryState(Boolean fetchInMemoryState); /** * If true, this will allow the cache to provide in-memory state to a neighbor, even if the * cache is not configured to fetch state from its neighbors (fetchInMemoryState is false) * * @param alwaysProvideInMemoryState */ StateRetrievalConfig alwaysProvideInMemoryState(Boolean alwaysProvideInMemoryState); /** * Initial wait time when backing off before retrying state transfer retrieval * * @param initialRetryWaitTime */ StateRetrievalConfig initialRetryWaitTime(Long initialRetryWaitTime); /** * Wait time increase factor over successive state retrieval backoffs * * @param retryWaitTimeIncreaseFactor */ StateRetrievalConfig retryWaitTimeIncreaseFactor(Integer retryWaitTimeIncreaseFactor); /** * Number of state retrieval retries before giving up and aborting startup. * * @param numRetries */ StateRetrievalConfig numRetries(Integer numRetries); /** * This is the maximum amount of time - in milliseconds - to wait for state from neighboring * caches, before throwing an exception and aborting startup. * * @param timeout */ StateRetrievalConfig timeout(Long timeout); /** * This is the maximum amount of time to run a cluster-wide flush, to allow for syncing of * transaction logs. * * @param logFlushTimeout */ StateRetrievalConfig logFlushTimeout(Long logFlushTimeout); /** * This is the maximum number of non-progressing transaction log writes after which a * brute-force flush approach is resorted to, to synchronize transaction logs. * * @param maxNonProgressingLogWrites */ StateRetrievalConfig maxNonProgressingLogWrites(Integer maxNonProgressingLogWrites); /** * Size of a state transfer chunk, in cache entries. */ StateRetrievalConfig chunkSize(Integer chunkSize); } /** * Configures the L1 cache behavior in 'distributed' caches instances. * In any other cache modes, this element is ignored. */ @Deprecated public interface L1Config extends ClusteringConfig { /** * Maximum lifespan of an entry placed in the L1 cache. * * @param lifespan */ L1Config lifespan(Long lifespan); /** * If true, entries removed due to a rehash will be moved to L1 rather than being removed * altogether. * * @param onRehash */ L1Config onRehash(Boolean onRehash); L1Config disable(); /** *

* Determines whether a multicast or a web of unicasts are used when performing L1 invalidations. *

* *

* By default multicast will be used. *

* *

* If the threshold is set to -1, then unicasts will always be used. If the threshold is set to 0, then multicast * will be always be used. *

* * @param threshold the threshold over which to use a multicast * */ L1Config invalidationThreshold(Integer threshold); /** * Determines how often a cleanup thread runs to clean up an internal log of requestors for a specific key * @param frequencyMillis frequency in milliseconds */ L1Config cleanupTaskFrequency(Long frequencyMillis); } /** * Allows fine-tuning of rehashing characteristics. Only used with 'distributed' cache mode, and otherwise ignored. */ @Deprecated public interface HashConfig extends FluentTypes { /** * @deprecated No longer used since 5.2, use {@link org.infinispan.configuration.cache.HashConfigurationBuilder#consistentHashFactory(org.infinispan.distribution.ch.ConsistentHashFactory)} instead. */ @Deprecated HashConfig consistentHashClass(Class consistentHashClass); /** * A fully qualified name of the class providing a hash function, used as a bit spreader and a * general hash code generator. Typically used in conjunction with the many default * {@link org.infinispan.distribution.ch.ConsistentHash} implementations shipped. * * @param hashFunctionClass */ HashConfig hashFunctionClass(Class hashFunctionClass); /** * Number of cluster-wide replicas for each cache entry. * * @param numOwners */ HashConfig numOwners(Integer numOwners); HashConfig rehashWait(Long rehashWaitTime); /** * * @param rehashRpcTimeout */ HashConfig rehashRpcTimeout(Long rehashRpcTimeout); /** * If false, no rebalancing or rehashing will take place when a new node joins the cluster or * a node leaves * * @param rehashEnabled */ HashConfig rehashEnabled(Boolean rehashEnabled); /** * @deprecated No longer used since 5.2, use {@link org.infinispan.configuration.cache.HashConfigurationBuilder#numSegments(int)} instead. */ HashConfig numVirtualNodes(Integer numVirtualNodes); GroupsConfig groups(); @Override // Override definition so that Scala classes can see it. Configuration build(); } @Deprecated public interface GroupsConfig extends FluentTypes { /** * Enable grouping support, such that {@link Group} annotations are honoured and any configured * groupers will be invoked * * @param enabled * @return */ GroupsConfig enabled(Boolean enabled); Boolean isEnabled(); /** * Set the groupers currently in use */ GroupsConfig groupers(List> groupers); /** * Get's the current groupers in use */ List> getGroupers(); @Override // Override definition so that Scala classes can see it. Configuration build(); } /** * Configures indexing of entries in the cache for searching. */ @Deprecated public interface IndexingConfig extends FluentTypes { /** * If true, only index changes made locally, ignoring remote changes. This is useful if * indexes are shared across a cluster to prevent redundant indexing of updates. * * @param indexLocalOnly * @return this, for method chaining */ IndexingConfig indexLocalOnly(Boolean indexLocalOnly); /** * Indexing is disabled by default, but using the fluent API entering the {@link FluentTypes#indexing()} * method enables Indexing implicitly. If needed, this method can be used to disable it. * @return this, for method chaining */ IndexingConfig disable(); /** *

The Query engine relies on properties for configuration.

*

These properties are passed directly to the embedded Hibernate Search engine, so * for the complete and up to date documentation about available properties * refer to the Hibernate Search reference of the version you're using with Infinispan Query.

* @see Hibernate Search * @param properties * @return this, for method chaining */ IndexingConfig withProperties(Properties properties); /** *

Defines a single property. Can be used multiple times to define all needed properties, * but the full set is overridden by {@link #withProperties(Properties)}.

*

These properties are passed directly to the embedded Hibernate Search engine, so * for the complete and up to date documentation about available properties * refer to the Hibernate Search reference of the version you're using with Infinispan Query.

* @see Hibernate Search * @param key Property key * @param value Property value * @return this, for method chaining */ IndexingConfig addProperty(String key, String value); } @Deprecated public static interface VersioningConfig extends FluentTypes { VersioningConfig enable(); VersioningConfig disable(); VersioningConfig versioningScheme(VersioningScheme scheme); } @Deprecated public static interface DataContainerConfig extends FluentTypes { DataContainerConfig dataContainerClass(Class dataContainerClass); DataContainerConfig dataContainer(DataContainer dataContainer); DataContainerConfig withProperties(Properties properties); DataContainerConfig addProperty(String key, String value); } @Deprecated public static interface UnsafeConfig extends FluentTypes { UnsafeConfig unreliableReturnValues(Boolean unreliableReturnValues); } @Deprecated public static interface StoreAsBinaryConfig extends FluentTypes { StoreAsBinaryConfig storeKeysAsBinary(Boolean storeKeysAsBinary); StoreAsBinaryConfig storeValuesAsBinary(Boolean storeValuesAsBinary); StoreAsBinaryConfig disable(); @Override // Override definition so that Scala classes can see it. Configuration build(); } @Deprecated public static interface JmxStatisticsConfig extends FluentTypes {} @Deprecated public static interface InvocationBatchingConfig extends FluentTypes { InvocationBatchingConfig disable(); } } @Deprecated interface FluentTypes { FluentConfiguration.LockingConfig locking(); FluentConfiguration.LoadersConfig loaders(); FluentConfiguration.TransactionConfig transaction(); /** * This method allows configuration of the deadlock detection. When this * method is called, it automatically enables deadlock detection. So, if * you want it to be disabled, make sure you call * {@link org.infinispan.config.FluentConfiguration.DeadlockDetectionConfig#disable()} */ FluentConfiguration.DeadlockDetectionConfig deadlockDetection(); FluentConfiguration.CustomInterceptorsConfig customInterceptors(); FluentConfiguration.EvictionConfig eviction(); FluentConfiguration.ExpirationConfig expiration(); FluentConfiguration.ClusteringConfig clustering(); /** * This method allows configuration of the indexing subsystem. When * this method is called, it automatically enables indexing. So, if you * want it to be disabled, make sure you call * {@link org.infinispan.config.FluentConfiguration.IndexingConfig#disable()} */ FluentConfiguration.IndexingConfig indexing(); FluentConfiguration.DataContainerConfig dataContainer(); FluentConfiguration.UnsafeConfig unsafe(); /** * This method allows configuration of jmx statistics. When this method is * called, it automatically enables jmx statistics. */ FluentConfiguration.JmxStatisticsConfig jmxStatistics(); /** * This method allows configuration of lazy deserialization. When this * method is called, it automatically enables lazy deserialization. */ FluentConfiguration.StoreAsBinaryConfig storeAsBinary(); /** * This method allows configuration of invocation batching. When * this method is called, it automatically enables invocation batching. */ FluentConfiguration.InvocationBatchingConfig invocationBatching(); FluentConfiguration.VersioningConfig versioning(); Configuration build(); } @Deprecated abstract class AbstractFluentConfigurationBean extends AbstractNamedCacheConfigurationBean implements FluentTypes { Configuration config; @Override public FluentConfiguration.LockingConfig locking() { return config.locking; } @Override public FluentConfiguration.LoadersConfig loaders() { return config.loaders; } @Override public FluentConfiguration.TransactionConfig transaction() { return config.transaction; } @Override public FluentConfiguration.DeadlockDetectionConfig deadlockDetection() { config.deadlockDetection.setEnabled(true); return config.deadlockDetection; } @Override public FluentConfiguration.CustomInterceptorsConfig customInterceptors() { return config.customInterceptors; } @Override public FluentConfiguration.EvictionConfig eviction() { return config.eviction; } @Override public FluentConfiguration.ExpirationConfig expiration() { return config.expiration; } @Override public FluentConfiguration.ClusteringConfig clustering() { return config.clustering; } @Override public FluentConfiguration.IndexingConfig indexing() { config.indexing.setEnabled(true); return config.indexing; } @Override public FluentConfiguration.DataContainerConfig dataContainer() { return config.dataContainer; } @Override public FluentConfiguration.UnsafeConfig unsafe() { return config.unsafe; } @Override public FluentConfiguration.JmxStatisticsConfig jmxStatistics() { return config.jmxStatistics.enabled(true); } @Override public FluentConfiguration.StoreAsBinaryConfig storeAsBinary() { return config.storeAsBinary.enabled(true); } @Override public FluentConfiguration.VersioningConfig versioning() { return config.versioning.enable(); } @Override public FluentConfiguration.InvocationBatchingConfig invocationBatching() { return config.invocationBatching.enabled(true); } public FluentConfiguration.AsyncConfig async() { return clustering().async(); } public FluentConfiguration.SyncConfig sync() { return clustering().sync(); } public FluentConfiguration.StateRetrievalConfig stateRetrieval() { return clustering().stateRetrieval(); } public FluentConfiguration.L1Config l1() { return clustering().l1(); } public FluentConfiguration.HashConfig hash() { return clustering().hash(); } public FluentConfiguration.ClusteringConfig mode(Configuration.CacheMode mode) { return clustering().mode(mode); } public FluentConfiguration.TransactionConfig transactionManagerLookupClass(Class transactionManagerLookupClass) { return transaction().transactionManagerLookupClass(transactionManagerLookupClass); } public FluentConfiguration.TransactionConfig transactionManagerLookup(TransactionManagerLookup transactionManagerLookup) { return transaction().transactionManagerLookup(transactionManagerLookup); } public FluentConfiguration.TransactionConfig transactionSynchronizationRegistryLookup(TransactionSynchronizationRegistryLookup transactionSynchronizationRegistryLookup) { return transaction().transactionSynchronizationRegistryLookup(transactionSynchronizationRegistryLookup); } public FluentConfiguration.TransactionConfig syncCommitPhase(Boolean syncCommitPhase) { return transaction().syncCommitPhase(syncCommitPhase); } public FluentConfiguration.TransactionConfig syncRollbackPhase(Boolean syncRollbackPhase) { return transaction().syncRollbackPhase(syncRollbackPhase); } public FluentConfiguration.TransactionConfig useEagerLocking(Boolean useEagerLocking) { return transaction().useEagerLocking(useEagerLocking); } public FluentConfiguration.TransactionConfig eagerLockSingleNode(Boolean eagerLockSingleNode) { return transaction().eagerLockSingleNode(eagerLockSingleNode); } public FluentConfiguration.TransactionConfig cacheStopTimeout(Integer cacheStopTimeout) { return transaction().cacheStopTimeout(cacheStopTimeout); } public FluentConfiguration.TransactionConfig useSynchronization(Boolean useSynchronization) { return transaction().useSynchronization(useSynchronization); } public FluentConfiguration.RecoveryConfig recovery() { return transaction().recovery(); } @Override public Configuration build() { return config; } protected AbstractFluentConfigurationBean setConfiguration(Configuration config) { this.config = config; return this; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy