public class CacheFactoryBean extends Object implements BeanClassLoaderAware, BeanFactoryAware, BeanNameAware, FactoryBean<org.apache.geode.cache.Cache>, InitializingBean, DisposableBean, PersistenceExceptionTranslator, Phased
FactoryBean
used to configure a GemFire peer Cache. This class either looks up an existing, open
Cache
instance already or creates a new Cache
instance.
This class implements the PersistenceExceptionTranslator
interface,
as auto-detected by Spring's PersistenceExceptionTranslationPostProcessor
, for AOP-based translation
of native GemFire Exceptions to Spring DataAccessException
. Hence, the presence of this class
automatically enables a PersistenceExceptionTranslationPostProcessor
to translate GemFire Exceptions
appropriately.BeanClassLoaderAware
,
BeanFactoryAware
,
BeanNameAware
,
FactoryBean
,
InitializingBean
,
DisposableBean
,
Phased
,
PersistenceExceptionTranslator
,
Cache
,
CacheFactory
,
GemFireCache
,
DistributedMember
,
DistributedSystem
Modifier and Type | Class and Description |
---|---|
static class |
CacheFactoryBean.DynamicRegionSupport |
static class |
CacheFactoryBean.JndiDataSource |
Modifier and Type | Field and Description |
---|---|
protected GemfireBeanFactoryLocator |
beanFactoryLocator |
protected org.apache.commons.logging.Log |
log |
Constructor and Description |
---|
CacheFactoryBean() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
protected void |
close(org.apache.geode.cache.GemFireCache cache) |
protected <T extends org.apache.geode.cache.GemFireCache> |
createCache(Object factory)
Creates a new GemFire cache instance using the provided factory.
|
protected Object |
createFactory(Properties gemfireProperties)
Creates an instance of GemFire factory initialized with the given GemFire System Properties
to create an instance of a GemFire cache.
|
void |
destroy() |
protected <T extends org.apache.geode.cache.GemFireCache> |
fetchCache()
Fetches an existing GemFire Cache instance from the CacheFactory.
|
ClassLoader |
getBeanClassLoader()
Gets a reference to the
ClassLoader used to load and create bean classes in the Spring container. |
BeanFactory |
getBeanFactory()
Gets a reference to the Spring BeanFactory containing this GemFire
Cache FactoryBean . |
GemfireBeanFactoryLocator |
getBeanFactoryLocator() |
String |
getBeanName()
Gets the Spring bean name for this GemFire
Cache . |
protected <T extends org.apache.geode.cache.GemFireCache> |
getCache() |
Resource |
getCacheXml()
Gets a reference to the GemFire native cache.xml file as a Spring
Resource . |
Boolean |
getClose() |
Boolean |
getCopyOnRead() |
Float |
getCriticalHeapPercentage() |
CacheFactoryBean.DynamicRegionSupport |
getDynamicRegionSupport() |
Boolean |
getEnableAutoReconnect()
Gets the value for the auto-reconnect setting.
|
Float |
getEvictionHeapPercentage() |
Object |
getGatewayConflictResolver() |
List<CacheFactoryBean.JndiDataSource> |
getJndiDataSources() |
Integer |
getLockLease() |
Integer |
getLockTimeout() |
Integer |
getMessageSyncInterval() |
org.apache.geode.cache.Cache |
getObject() |
Class<? extends org.apache.geode.cache.GemFireCache> |
getObjectType() |
String |
getPdxDiskStoreName() |
Boolean |
getPdxIgnoreUnreadFields() |
Boolean |
getPdxPersistent() |
Boolean |
getPdxReadSerialized() |
Object |
getPdxSerializer() |
int |
getPhase() |
Properties |
getProperties()
Gets a reference to the GemFire System Properties.
|
Integer |
getSearchTimeout() |
List<org.apache.geode.cache.TransactionListener> |
getTransactionListeners() |
org.apache.geode.cache.TransactionWriter |
getTransactionWriter() |
Boolean |
getUseClusterConfiguration()
Gets the value of the use-shared-configuration GemFire configuration setting.
|
protected boolean |
isPdxOptionsSpecified()
Determines whether the user specified PDX options.
|
boolean |
isSingleton() |
boolean |
isUseBeanFactoryLocator() |
protected <T extends org.apache.geode.cache.GemFireCache> |
postProcess(T cache)
Post processes the GemFire Cache instance by loading any cache.xml, applying settings specified in SDG XML
configuration meta-data, and registering the appropriate Transaction Listeners, Writer and JNDI settings.
|
protected void |
postProcessBeforeCacheInitialization(Properties gemfireProperties) |
protected Object |
prepareFactory(Object factory)
Initializes the GemFire factory used to create the GemFire cache instance.
|
protected org.apache.geode.cache.Cache |
resolveCache()
Resolves the GemFire Cache by first attempting to lookup and find an existing Cache instance in the VM;
if an existing Cache could not be found, then this method proceeds in attempting to create a new Cache instance.
|
protected Properties |
resolveProperties()
Resolves the GemFire System properties used to configure the GemFire Cache instance.
|
void |
setBeanClassLoader(ClassLoader classLoader)
Sets a reference to the
ClassLoader used to load and create bean classes in the Spring container. |
void |
setBeanFactory(BeanFactory beanFactory)
|
void |
setBeanName(String name)
Sets the Spring bean name for this GemFire
Cache . |
protected void |
setCache(org.apache.geode.cache.Cache cache) |
void |
setCacheXml(Resource cacheXml)
Sets the
Cache configuration meta-data. |
void |
setClose(boolean close)
Set whether the Cache should be closed.
|
void |
setCopyOnRead(Boolean copyOnRead)
Set the copyOnRead attribute of the Cache.
|
void |
setCriticalHeapPercentage(Float criticalHeapPercentage)
Set the Cache's critical heap percentage attribute.
|
void |
setDynamicRegionSupport(CacheFactoryBean.DynamicRegionSupport dynamicRegionSupport)
Sets an instance of the DynamicRegionSupport to support Dynamic Regions in this GemFire Cache.
|
void |
setEnableAutoReconnect(Boolean enableAutoReconnect)
Controls whether auto-reconnect functionality introduced in GemFire 8 is enabled or not.
|
void |
setEvictionHeapPercentage(Float evictionHeapPercentage)
Set the Cache's eviction heap percentage attribute.
|
void |
setGatewayConflictResolver(Object gatewayConflictResolver)
Requires GemFire 7.0 or higher
|
void |
setJndiDataSources(List<CacheFactoryBean.JndiDataSource> jndiDataSources) |
void |
setLockLease(Integer lockLease)
Sets the number of seconds for implicit and explicit object lock leases to timeout.
|
void |
setLockTimeout(Integer lockTimeout)
Sets the number of seconds in which the implicit object lock request will timeout.
|
void |
setMessageSyncInterval(Integer messageSyncInterval)
Set for client subscription queue synchronization when this member acts as a server to clients
and server redundancy is used.
|
void |
setPdxDiskStoreName(String pdxDiskStoreName)
Set the disk store that is used for PDX meta data.
|
void |
setPdxIgnoreUnreadFields(Boolean pdxIgnoreUnreadFields)
Controls whether pdx ignores fields that were unread during
deserialization.
|
void |
setPdxPersistent(Boolean pdxPersistent)
Controls whether type metadata for PDX objects is persisted to disk.
|
void |
setPdxReadSerialized(Boolean pdxReadSerialized)
Sets the object preference to PdxInstance.
|
void |
setPdxSerializer(Object serializer)
Sets the
PdxSerializable for this cache. |
protected void |
setPhase(int phase) |
void |
setProperties(Properties properties)
Sets the cache properties.
|
void |
setSearchTimeout(Integer searchTimeout)
Set the number of seconds a netSearch operation can wait for data before timing out.
|
void |
setTransactionListeners(List<org.apache.geode.cache.TransactionListener> transactionListeners)
Sets the list of TransactionListeners used to configure the Cache to receive transaction events after
the transaction is processed (committed, rolled back).
|
void |
setTransactionWriter(org.apache.geode.cache.TransactionWriter transactionWriter)
Sets the TransactionWriter used to configure the Cache for handling transaction events, such as to veto
the transaction or update an external DB before the commit.
|
void |
setUseBeanFactoryLocator(boolean usage)
Indicates whether a bean factory locator is enabled for this cache definition or not.
|
void |
setUseClusterConfiguration(Boolean useSharedConfiguration)
Sets the state of the use-shared-configuration GemFire distribution config setting.
|
DataAccessException |
translateExceptionIfPossible(RuntimeException e) |
protected final org.apache.commons.logging.Log log
protected GemfireBeanFactoryLocator beanFactoryLocator
public void afterPropertiesSet() throws Exception
afterPropertiesSet
in interface InitializingBean
Exception
InitializingBean.afterPropertiesSet()
protected void postProcessBeforeCacheInitialization(Properties gemfireProperties)
protected void setCache(org.apache.geode.cache.Cache cache)
protected <T extends org.apache.geode.cache.GemFireCache> T getCache()
public org.apache.geode.cache.Cache getObject() throws Exception
getObject
in interface FactoryBean<org.apache.geode.cache.Cache>
Exception
protected org.apache.geode.cache.Cache resolveCache()
Cache
,
fetchCache()
,
createFactory(java.util.Properties)
,
prepareFactory(Object)
,
createCache(Object)
protected <T extends org.apache.geode.cache.GemFireCache> T fetchCache()
T
- parameterized Class type extension of GemFireCache.org.apache.geode.cache.CacheClosedException
- if an existing GemFire Cache instance does not exist.GemFireCache
,
CacheFactory.getAnyInstance()
protected Properties resolveProperties()
getProperties()
protected Object createFactory(Properties gemfireProperties)
gemfireProperties
- a Properties object containing GemFire System properties.Properties
,
CacheFactory
protected Object prepareFactory(Object factory)
factory
- the GemFire factory used to create an instance of the GemFire cache.isPdxOptionsSpecified()
protected boolean isPdxOptionsSpecified()
protected <T extends org.apache.geode.cache.GemFireCache> T createCache(Object factory)
T
- parameterized Class type extension of GemFireCache.factory
- the appropriate GemFire factory used to create a cache instance.GemFireCache
,
CacheFactory.create()
protected <T extends org.apache.geode.cache.GemFireCache> T postProcess(T cache) throws IOException
T
- parameterized Class type extension of GemFireCache.cache
- the GemFire Cache instance to process.IOException
- if the cache.xml Resource could not be loaded and applied to the Cache instance.GemFireCache.loadCacheXml(java.io.InputStream)
,
getCacheXml()
,
setHeapPercentages(org.apache.geode.cache.GemFireCache)
,
registerTransactionListeners(org.apache.geode.cache.GemFireCache)
,
registerTransactionWriter(org.apache.geode.cache.GemFireCache)
,
registerJndiDataSources()
public void destroy() throws Exception
destroy
in interface DisposableBean
Exception
protected void close(org.apache.geode.cache.GemFireCache cache)
public Class<? extends org.apache.geode.cache.GemFireCache> getObjectType()
getObjectType
in interface FactoryBean<org.apache.geode.cache.Cache>
protected void setPhase(int phase)
public boolean isSingleton()
isSingleton
in interface FactoryBean<org.apache.geode.cache.Cache>
public DataAccessException translateExceptionIfPossible(RuntimeException e)
translateExceptionIfPossible
in interface PersistenceExceptionTranslator
public void setBeanClassLoader(ClassLoader classLoader)
ClassLoader
used to load and create bean classes in the Spring container.setBeanClassLoader
in interface BeanClassLoaderAware
classLoader
- the ClassLoader
used to load and create beans in the Spring container.ClassLoader
public ClassLoader getBeanClassLoader()
ClassLoader
used to load and create bean classes in the Spring container.ClassLoader
used to load and create beans in the Spring container.ClassLoader
public void setBeanFactory(BeanFactory beanFactory) throws BeansException
setBeanFactory
in interface BeanFactoryAware
beanFactory
- a reference to the Spring BeanFactory
.BeansException
BeanFactory
,
getBeanFactory()
public BeanFactory getBeanFactory()
Cache
FactoryBean
.BeanFactory
.BeanFactory
,
setBeanFactory(BeanFactory)
public GemfireBeanFactoryLocator getBeanFactoryLocator()
public void setBeanName(String name)
Cache
.setBeanName
in interface BeanNameAware
name
- a String value indicating the Spring container bean name for the GemFire Cache
object.public String getBeanName()
Cache
.Cache
object.public void setCacheXml(Resource cacheXml)
Cache
configuration meta-data.public Resource getCacheXml()
Resource
.public void setProperties(Properties properties)
properties
- the properties to setpublic Properties getProperties()
Properties
public void setClose(boolean close)
close
- set to false if destroy() should not close the cachepublic Boolean getClose()
public void setCopyOnRead(Boolean copyOnRead)
copyOnRead
- a boolean value indicating whether the object stored in the Cache is copied on gets.public Boolean getCopyOnRead()
public void setCriticalHeapPercentage(Float criticalHeapPercentage)
criticalHeapPercentage
- floating point value indicating the critical heap percentage.public Float getCriticalHeapPercentage()
public void setDynamicRegionSupport(CacheFactoryBean.DynamicRegionSupport dynamicRegionSupport)
dynamicRegionSupport
- the DynamicRegionSupport class to setup Dynamic Regions in this Cache.public CacheFactoryBean.DynamicRegionSupport getDynamicRegionSupport()
public void setEnableAutoReconnect(Boolean enableAutoReconnect)
enableAutoReconnect
- a boolean value to enable/disable auto-reconnect functionality.public Boolean getEnableAutoReconnect()
public void setEvictionHeapPercentage(Float evictionHeapPercentage)
evictionHeapPercentage
- float-point value indicating the Cache's heap use percentage to trigger eviction.public Float getEvictionHeapPercentage()
public void setGatewayConflictResolver(Object gatewayConflictResolver)
gatewayConflictResolver
- defined as Object in the signature for backward
compatibility with Gemfire 6 compatibility. This must be an instance of
GatewayConflictResolver
public Object getGatewayConflictResolver()
public void setJndiDataSources(List<CacheFactoryBean.JndiDataSource> jndiDataSources)
jndiDataSources
- the list of configured JndiDataSources to use with this Cache.public List<CacheFactoryBean.JndiDataSource> getJndiDataSources()
public void setLockLease(Integer lockLease)
lockLease
- an integer value indicating the object lock lease timeout.public Integer getLockLease()
public void setLockTimeout(Integer lockTimeout)
lockTimeout
- an integer value specifying the object lock request timeout.public Integer getLockTimeout()
public void setMessageSyncInterval(Integer messageSyncInterval)
messageSyncInterval
- an integer value specifying the number of seconds in which the primary server
sends messages to secondary servers.public Integer getMessageSyncInterval()
public void setPdxDiskStoreName(String pdxDiskStoreName)
pdxDiskStoreName
- the pdxDiskStoreName to setpublic String getPdxDiskStoreName()
public void setPdxIgnoreUnreadFields(Boolean pdxIgnoreUnreadFields)
pdxIgnoreUnreadFields
- the pdxIgnoreUnreadFields to setpublic Boolean getPdxIgnoreUnreadFields()
public void setPdxPersistent(Boolean pdxPersistent)
pdxPersistent
- a boolean value indicating that PDX type meta-data should be persisted to disk.public Boolean getPdxPersistent()
public void setPdxReadSerialized(Boolean pdxReadSerialized)
pdxReadSerialized
- a boolean value indicating the PDX instance should be returned from Region.get(key)
when available.public Boolean getPdxReadSerialized()
public void setPdxSerializer(Object serializer)
PdxSerializable
for this cache. Applicable on GemFire
6.6 or higher. The argument is of type object for compatibility with
GemFire 6.5.serializer
- pdx serializer configured for this cache.public Object getPdxSerializer()
public void setSearchTimeout(Integer searchTimeout)
searchTimeout
- an integer value indicating the netSearch timeout value.public Integer getSearchTimeout()
public void setTransactionListeners(List<org.apache.geode.cache.TransactionListener> transactionListeners)
transactionListeners
- the list of GemFire TransactionListeners listening for transaction events.TransactionListener
public List<org.apache.geode.cache.TransactionListener> getTransactionListeners()
public void setTransactionWriter(org.apache.geode.cache.TransactionWriter transactionWriter)
transactionWriter
- the GemFire TransactionWriter callback receiving transaction events.TransactionWriter
public org.apache.geode.cache.TransactionWriter getTransactionWriter()
public void setUseBeanFactoryLocator(boolean usage)
usage
- true if the bean factory locator is to be used underneath the hood.public boolean isUseBeanFactoryLocator()
public void setUseClusterConfiguration(Boolean useSharedConfiguration)
useSharedConfiguration
- a boolean value to set the use-shared-configuration GemFire distribution property.public Boolean getUseClusterConfiguration()
Copyright © 2011-2016–2017 Pivotal Software, Inc.. All rights reserved.