public abstract class RegionFactoryBean<K,V> extends RegionLookupFactoryBean<K,V> implements EvictingRegionFactoryBean, ExpiringRegionFactoryBean<K,V>, DisposableBean, SmartLifecycle
FactoryBean
base class extended by other SDG FactoryBeans
used to
construct, configure and initialize peer Regions
.
This FactoryBean
allows for very easy and flexible creation of peer Region
.
For client Regions
, however, see the ClientRegionFactoryBean
.Cache
,
CacheListener
,
CacheLoader
,
CacheWriter
,
DataPolicy
,
EvictionAttributes
,
GemFireCache
,
PartitionAttributes
,
Region
,
RegionAttributes
,
RegionFactory
,
RegionShortcut
,
Scope
,
AsyncEventQueue
,
DisposableBean
,
SmartLifecycle
,
RegionLookupFactoryBean
,
ClientRegionFactoryBean
,
RegionConfigurer
Modifier and Type | Field and Description |
---|---|
protected Log |
log |
DEFAULT_SINGLETON
Constructor and Description |
---|
RegionFactoryBean() |
Modifier and Type | Method and Description |
---|---|
protected void |
applyRegionConfigurers(String regionName,
Iterable<RegionConfigurer> regionConfigurers)
|
protected void |
applyRegionConfigurers(String regionName,
RegionConfigurer... regionConfigurers)
Null-safe operation to apply the given array of
RegionConfigurers
to this RegionFactoryBean . |
protected void |
assertDataPolicyAndPersistentAttributesAreCompatible(org.apache.geode.cache.DataPolicy resolvedDataPolicy)
Validates that the settings for Data Policy and the 'persistent' attribute in <gfe:*-region> elements
are compatible.
|
protected org.apache.geode.cache.RegionFactory<K,V> |
configure(org.apache.geode.cache.RegionFactory<K,V> regionFactory)
Configures the
RegionFactory based on the configuration settings of this RegionFactoryBean . |
protected org.apache.geode.cache.Region<K,V> |
createRegion(org.apache.geode.cache.GemFireCache gemfireCache,
String regionName)
Creates a new
Region with the given name . |
protected org.apache.geode.cache.RegionFactory<K,V> |
createRegionFactory(org.apache.geode.cache.Cache cache)
Creates an instance of
RegionFactory with the given Cache which is then used to construct,
configure and initialize the Region specified by this RegionFactoryBean . |
void |
destroy()
Closes and destroys the
Region . |
org.apache.geode.cache.RegionAttributes<K,V> |
getAttributes()
Returns the
RegionAttributes used to configure this Region . |
protected RegionConfigurer |
getCompositeRegionConfigurer()
Returns a reference to the Composite
RegionConfigurer used to apply additional configuration
to this RegionFactoryBean on Spring container initialization. |
org.apache.geode.cache.DataPolicy |
getDataPolicy()
Returns resolved
DataPolicy as configured with the RegionFactory
when creating this Region . |
Boolean |
getOffHeap()
Returns a
Boolean value indicating whether off-heap memory was enabled for this Region . |
int |
getPhase() |
org.apache.geode.cache.Scope |
getScope()
Returns the configured
Scope of the Region affecting data distribution
and acknowledgement strategy (useful in consistency) for the Region . |
org.apache.geode.cache.RegionShortcut |
getShortcut()
Returns the configured
RegionShortcut . |
Boolean |
getStatisticsEnabled() |
boolean |
isAutoStartup() |
protected boolean |
isNotPersistent()
Returns true when the user explicitly specified a value for the persistent attribute and it is false.
|
boolean |
isOffHeap()
Returns a boolean value indicating whether off-heap memory has been enabled for this
Region . |
protected boolean |
isPersistent()
Returns true when the user explicitly specified a value for the persistent attribute and it is true.
|
protected boolean |
isPersistentUnspecified()
Determines whether the user explicitly set the 'persistent' attribute or not.
|
boolean |
isRunning() |
boolean |
isStatisticsEnabled() |
protected <K,V> void |
mergePartitionAttributes(org.apache.geode.cache.RegionFactory<K,V> regionFactory,
org.apache.geode.cache.RegionAttributes<K,V> regionAttributes)
Merges the
RegionAttributes into the RegionFactory . |
protected <K,V> org.apache.geode.cache.RegionFactory<K,V> |
mergeRegionAttributes(org.apache.geode.cache.RegionFactory<K,V> regionFactory,
org.apache.geode.cache.RegionAttributes<K,V> regionAttributes)
Intelligently merges the given RegionAttributes with the configuration setting of the RegionFactory.
|
protected org.apache.geode.cache.RegionFactory<K,V> |
postProcess(org.apache.geode.cache.RegionFactory<K,V> regionFactory)
Post-process the
RegionFactory used to create the Region specified by
this RegionFactoryBean during initialization. |
protected void |
resolveDataPolicy(org.apache.geode.cache.RegionFactory<K,V> regionFactory,
Boolean persistent,
org.apache.geode.cache.DataPolicy dataPolicy)
Validates and sets the Data Policy on the RegionFactory used to create and configure the Region from this
FactoryBean.
|
protected void |
resolveDataPolicy(org.apache.geode.cache.RegionFactory<K,V> regionFactory,
Boolean persistent,
String dataPolicy)
Validates the configured Data Policy and may override it, taking into account the 'persistent' attribute
and constraints for the Region type.
|
protected boolean |
resolveStatisticsEnabled() |
void |
setAsyncEventQueues(org.apache.geode.cache.asyncqueue.AsyncEventQueue[] asyncEventQueues)
Configures an array of
AsyncEventQueues for this Region used to perform
asynchronous data access operations, e.g. |
void |
setAttributes(org.apache.geode.cache.RegionAttributes<K,V> attributes)
Sets the
RegionAttributes used to configure this Region . |
void |
setCacheListeners(org.apache.geode.cache.CacheListener<K,V>[] cacheListeners)
Configures
CacheListeners used to listen for entry events on this Region . |
void |
setCacheLoader(org.apache.geode.cache.CacheLoader<K,V> cacheLoader)
Configures the
CacheLoader used by this Region to perform synchronous read-through
data access operations to an underlying, external data source. |
void |
setCacheWriter(org.apache.geode.cache.CacheWriter<K,V> cacheWriter)
Configures the
CacheWriter used by this Region to perform synchronous write-through
data access operations to an underlying, external data source. |
void |
setClose(boolean close)
Configure whether to close this Region during shutdown.
|
void |
setCompressor(org.apache.geode.compression.Compressor compressor)
Configures the
Compressor used to compress this Region's data. |
void |
setCustomEntryIdleTimeout(org.apache.geode.cache.CustomExpiry<K,V> customEntryIdleTimeout) |
void |
setCustomEntryTimeToLive(org.apache.geode.cache.CustomExpiry<K,V> customEntryTimeToLive) |
void |
setDataPolicy(org.apache.geode.cache.DataPolicy dataPolicy)
Configure the
DataPolicy for this Region . |
void |
setDataPolicy(String dataPolicyName)
Deprecated.
as of 1.4.0; use setDataPolicy(:DataPolicy) instead.
|
void |
setDestroy(boolean destroy)
Configure whether to destroy this
Region during shutdown. |
void |
setDiskStoreName(String diskStoreName)
|
void |
setEntryIdleTimeout(org.apache.geode.cache.ExpirationAttributes entryIdleTimeout) |
void |
setEntryTimeToLive(org.apache.geode.cache.ExpirationAttributes entryTimeToLive) |
void |
setEvictionAttributes(org.apache.geode.cache.EvictionAttributes evictionAttributes) |
void |
setGatewaySenders(org.apache.geode.cache.wan.GatewaySender[] gatewaySenders)
Configures the
GatewaySenders used to send data and events from this Region
to a corresponding Region in a remote cluster/site. |
void |
setKeyConstraint(Class<K> keyConstraint)
|
void |
setOffHeap(Boolean offHeap)
Configures whether to enable this
Region with the ability to store data in off-heap memory. |
void |
setPersistent(Boolean persistent)
Configures whether to enable persistence for this
Region . |
void |
setRegionConfigurers(List<RegionConfigurer> regionConfigurers)
Null-safe operation to set an
Iterable of RegionConfigurers used to apply
additional configuration to this RegionFactoryBean when using Annotation-based configuration. |
void |
setRegionConfigurers(RegionConfigurer... regionConfigurers)
Null-safe operation to set an array of
RegionConfigurers used to apply
additional configuration to this RegionFactoryBean when using Annotation-based configuration. |
void |
setRegionIdleTimeout(org.apache.geode.cache.ExpirationAttributes regionIdleTimeout) |
void |
setRegionTimeToLive(org.apache.geode.cache.ExpirationAttributes regionTimeToLive) |
void |
setScope(org.apache.geode.cache.Scope scope)
Configures the
Region's Scope , which affects data distribution
and acknowledgement strategy (useful in consistency) for the Region . |
void |
setShortcut(org.apache.geode.cache.RegionShortcut shortcut)
Configures the
Region with the given RegionShortcut . |
void |
setStatisticsEnabled(Boolean statisticsEnabled) |
void |
setValueConstraint(Class<V> valueConstraint)
|
void |
start() |
void |
stop() |
void |
stop(Runnable callback) |
afterPropertiesSet, getCache, getLookupEnabled, getObject, getObjectType, getParent, getRegion, loadSnapshot, postProcess, resolveRegionName, setCache, setLookupEnabled, setName, setParent, setRegion, setRegionName, setSnapshot
getBeanClassLoader, getBeanFactory, getBeanName, getLog, isSingleton, logDebug, logDebug, logError, logError, logInfo, logInfo, logWarning, logWarning, newLog, setBeanClassLoader, setBeanFactory, setBeanName
protected final Log log
protected org.apache.geode.cache.Region<K,V> createRegion(org.apache.geode.cache.GemFireCache gemfireCache, String regionName) throws Exception
Region
with the given name
.createRegion
in class RegionLookupFactoryBean<K,V>
gemfireCache
- reference to the GemFireCache
.regionName
- name
of the new Region
.Region
with the given name
.BeanInitializationException
- by default unless a subclass
overrides this method.Exception
GemFireCache
,
Region
protected void applyRegionConfigurers(String regionName, RegionConfigurer... regionConfigurers)
RegionConfigurers
to this RegionFactoryBean
.regionName
- String
containing the name of the Region
.regionConfigurers
- array of RegionConfigurers
applied
to this RegionFactoryBean
.RegionConfigurer
,
applyRegionConfigurers(String, Iterable)
protected void applyRegionConfigurers(String regionName, Iterable<RegionConfigurer> regionConfigurers)
regionName
- String
containing the name of the Region
.regionConfigurers
- Iterable
of RegionConfigurers
applied
to this RegionFactoryBean
.RegionConfigurer
protected org.apache.geode.cache.RegionFactory<K,V> createRegionFactory(org.apache.geode.cache.Cache cache)
RegionFactory
with the given Cache
which is then used to construct,
configure and initialize the Region
specified by this RegionFactoryBean
.cache
- reference to the Cache
.RegionFactory
used to construct, configure and initialized the Region
specified by
this RegionFactoryBean
.Cache.createRegionFactory(org.apache.geode.cache.RegionShortcut)
,
Cache.createRegionFactory(org.apache.geode.cache.RegionAttributes)
,
Cache.createRegionFactory()
,
RegionFactory
protected org.apache.geode.cache.RegionFactory<K,V> configure(org.apache.geode.cache.RegionFactory<K,V> regionFactory)
RegionFactory
based on the configuration settings of this RegionFactoryBean
.regionFactory
- RegionFactory
to configureRegionFactory
.RegionFactory
protected org.apache.geode.cache.RegionFactory<K,V> postProcess(org.apache.geode.cache.RegionFactory<K,V> regionFactory)
RegionFactory
used to create the Region
specified by
this RegionFactoryBean
during initialization.
The RegionFactory
has been already constructed, configured and initialized by
this RegionFactoryBean
before this method gets invoked.regionFactory
- RegionFactory
used to create the Region
.RegionFactory
.RegionFactory
protected RegionConfigurer getCompositeRegionConfigurer()
RegionConfigurer
used to apply additional configuration
to this RegionFactoryBean
on Spring container initialization.RegionConfigurer
.RegionConfigurer
protected <K,V> org.apache.geode.cache.RegionFactory<K,V> mergeRegionAttributes(org.apache.geode.cache.RegionFactory<K,V> regionFactory, org.apache.geode.cache.RegionAttributes<K,V> regionAttributes)
K
- the Class type fo the Region key.V
- the Class type of the Region value.regionFactory
- the GemFire RegionFactory used to configure and create the Region that is the product
of this RegionFactoryBean.regionAttributes
- the RegionAttributes containing the Region configuration settings to merge to the
RegionFactory.isUserSpecifiedEvictionAttributes(org.apache.geode.cache.RegionAttributes)
,
validateRegionAttributes(org.apache.geode.cache.RegionAttributes)
,
RegionAttributes
,
RegionFactory
protected <K,V> void mergePartitionAttributes(org.apache.geode.cache.RegionFactory<K,V> regionFactory, org.apache.geode.cache.RegionAttributes<K,V> regionAttributes)
RegionAttributes
into the RegionFactory
.regionFactory
- RegionFactory
to configure.regionAttributes
- RegionAttributes
used to configure the RegionFactory
if not null.RegionAttributes
,
RegionFactory
protected boolean isPersistent()
isNotPersistent()
,
isPersistentUnspecified()
protected boolean isPersistentUnspecified()
isPersistent()
,
isNotPersistent()
protected boolean isNotPersistent()
isPersistent()
,
isPersistentUnspecified()
protected void assertDataPolicyAndPersistentAttributesAreCompatible(org.apache.geode.cache.DataPolicy resolvedDataPolicy)
resolvedDataPolicy
- the GemFire Data Policy resolved form the Spring GemFire XML namespace configuration
meta-data.isPersistent()
,
isNotPersistent()
,
DataPolicy
protected void resolveDataPolicy(org.apache.geode.cache.RegionFactory<K,V> regionFactory, Boolean persistent, org.apache.geode.cache.DataPolicy dataPolicy)
regionFactory
- the RegionFactory used by this FactoryBean to create and configure the Region.persistent
- a boolean value indicating whether the Region should be persistent and persist it's
data to disk.dataPolicy
- the configured Data Policy for the Region.resolveDataPolicy(org.apache.geode.cache.RegionFactory, Boolean, String)
,
DataPolicy
,
RegionFactory
protected void resolveDataPolicy(org.apache.geode.cache.RegionFactory<K,V> regionFactory, Boolean persistent, String dataPolicy)
regionFactory
- the GemFire RegionFactory used to create the desired Region.persistent
- a boolean value indicating whether the Region should persist it's data to disk.dataPolicy
- requested Data Policy as set by the user in the Spring GemFire configuration meta-data.DataPolicy
,
RegionFactory
public void destroy() throws Exception
Region
.destroy
in interface DisposableBean
Exception
- if destroy()
fails.DisposableBean
,
Region.close()
,
Region.destroyRegion()
public void setAsyncEventQueues(org.apache.geode.cache.asyncqueue.AsyncEventQueue[] asyncEventQueues)
AsyncEventQueues
for this Region
used to perform
asynchronous data access operations, e.g. asynchronous write-behind.asyncEventQueues
- array of AsyncEventQueues
used by this Region
to perform asynchronous data access operations.AsyncEventQueue
public void setAttributes(org.apache.geode.cache.RegionAttributes<K,V> attributes)
RegionAttributes
used to configure this Region
.
Specifying RegionAttributes
allows maximum control in specifying various Region
settings.
Used only when the Region
is created and not when the Region
is looked up.attributes
- RegionAttributes
used to configure this Region
.RegionAttributes
public org.apache.geode.cache.RegionAttributes<K,V> getAttributes()
RegionAttributes
used to configure this Region
.RegionAttributes
used to configure this Region
.RegionAttributes
public void setCacheListeners(org.apache.geode.cache.CacheListener<K,V>[] cacheListeners)
CacheListeners
used to listen for entry events on this Region
.
Used only when a new Region
is created and not looked up
.
Overrides the Region
settings specified in RegionAttributes
set with setAttributes(RegionAttributes)
.cacheListeners
- array CacheListeners
to register with this Region
.CacheListener
public void setCacheLoader(org.apache.geode.cache.CacheLoader<K,V> cacheLoader)
CacheLoader
used by this Region
to perform synchronous read-through
data access operations to an underlying, external data source.
Used only when a new Region
is created and not looked up
.
Overrides the Region
settings specified in RegionAttributes
set with setAttributes(RegionAttributes)
.cacheLoader
- CacheLoader
to register for this Region
.CacheLoader
public void setCacheWriter(org.apache.geode.cache.CacheWriter<K,V> cacheWriter)
CacheWriter
used by this Region
to perform synchronous write-through
data access operations to an underlying, external data source.
Used only when a new Region
is created and not looked up
.
Overrides the Region
settings specified in RegionAttributes
set with setAttributes(RegionAttributes)
.cacheWriter
- CacheWriter
to register for this Region
.CacheWriter
public void setClose(boolean close)
close
- boolean value indicating whether this Region
should be closed during shutdown.setDestroy(boolean)
public void setCompressor(org.apache.geode.compression.Compressor compressor)
Compressor
used to compress this Region's
data.compressor
- Compressor
used to compress this Region's
data.Compressor
public void setCustomEntryIdleTimeout(org.apache.geode.cache.CustomExpiry<K,V> customEntryIdleTimeout)
setCustomEntryIdleTimeout
in interface ExpiringRegionFactoryBean<K,V>
public void setCustomEntryTimeToLive(org.apache.geode.cache.CustomExpiry<K,V> customEntryTimeToLive)
setCustomEntryTimeToLive
in interface ExpiringRegionFactoryBean<K,V>
public void setDestroy(boolean destroy)
Region
during shutdown.
Defaults to false.destroy
- value indicating whether this Region
should be destroyed during shutdown.setClose(boolean)
public void setDataPolicy(org.apache.geode.cache.DataPolicy dataPolicy)
DataPolicy
for this Region
.dataPolicy
- DataPolicy
used when configuring this Region
.DataPolicy
@Deprecated public void setDataPolicy(String dataPolicyName)
dataPolicyName
- String
containing the name of the DataPolicy
,
(e.g. PARTITION or REPLICATE, etc).setDataPolicy(org.apache.geode.cache.DataPolicy)
public org.apache.geode.cache.DataPolicy getDataPolicy()
DataPolicy
as configured with the RegionFactory
when creating this Region
.DataPolicy
used by this Region
.IllegalStateException
- if the DataPolicy
has not been configured
or is not resolvable.DataPolicy
public void setDiskStoreName(String diskStoreName)
diskStoreName
- String
containing the name of the DiskStore
bean
configured for this Region
.public void setEntryIdleTimeout(org.apache.geode.cache.ExpirationAttributes entryIdleTimeout)
setEntryIdleTimeout
in interface ExpiringRegionFactoryBean<K,V>
public void setEntryTimeToLive(org.apache.geode.cache.ExpirationAttributes entryTimeToLive)
setEntryTimeToLive
in interface ExpiringRegionFactoryBean<K,V>
public void setEvictionAttributes(org.apache.geode.cache.EvictionAttributes evictionAttributes)
setEvictionAttributes
in interface EvictingRegionFactoryBean
public void setGatewaySenders(org.apache.geode.cache.wan.GatewaySender[] gatewaySenders)
GatewaySenders
used to send data and events from this Region
to a corresponding Region
in a remote cluster/site.gatewaySenders
- GatewaySenders
used to send data and events from this Region
to a corresponding Region
in a remote cluster/site.GatewaySender
public void setOffHeap(Boolean offHeap)
Region
with the ability to store data in off-heap memory.offHeap
- Boolean
value indicating whether to enable off-heap memory
for this Region
.RegionFactory.setOffHeap(boolean)
public Boolean getOffHeap()
Boolean
value indicating whether off-heap memory was enabled for this Region
.
Off-heap memory will be enabled if this method returns a non-null Boolean
value
evaluating to true.Boolean
value indicating whether off-heap memory is enabled for this Region
.public boolean isOffHeap()
Region
.Region
.getOffHeap()
public void setPersistent(Boolean persistent)
Region
.
When persistence is enable, then data in the Region
is persisted to disk
using the configured, specified DiskStore
, or the DEFAULT DiskStore
if a DiskStore
was not explicitly configured.persistent
- Boolean
value indicating whether to enaable persistence
for this Region
.public void setRegionConfigurers(RegionConfigurer... regionConfigurers)
RegionConfigurers
used to apply
additional configuration to this RegionFactoryBean
when using Annotation-based configuration.regionConfigurers
- array of RegionConfigurers
used to apply
additional configuration to this RegionFactoryBean
.RegionConfigurer
,
setRegionConfigurers(List)
public void setRegionConfigurers(List<RegionConfigurer> regionConfigurers)
Iterable
of RegionConfigurers
used to apply
additional configuration to this RegionFactoryBean
when using Annotation-based configuration.regionConfigurers
- Iterable
of RegionConfigurers
used to apply
additional configuration to this RegionFactoryBean
.RegionConfigurer
public void setRegionIdleTimeout(org.apache.geode.cache.ExpirationAttributes regionIdleTimeout)
setRegionIdleTimeout
in interface ExpiringRegionFactoryBean<K,V>
public void setRegionTimeToLive(org.apache.geode.cache.ExpirationAttributes regionTimeToLive)
setRegionTimeToLive
in interface ExpiringRegionFactoryBean<K,V>
public void setScope(org.apache.geode.cache.Scope scope)
Region's
Scope
, which affects data distribution
and acknowledgement strategy (useful in consistency) for the Region
.scope
- Scope
used to configure the Region's
data distribution
and acknowledgement strategy.Scope
public org.apache.geode.cache.Scope getScope()
Scope
of the Region
affecting data distribution
and acknowledgement strategy (useful in consistency) for the Region
.Scope
of the Region
.Scope
public void setShortcut(org.apache.geode.cache.RegionShortcut shortcut)
Region
with the given RegionShortcut
.shortcut
- RegionShortcut
used to configure pre-defined defaults for the Region
.RegionShortcut
public org.apache.geode.cache.RegionShortcut getShortcut()
RegionShortcut
.RegionShortcut
.RegionShortcut
public void setStatisticsEnabled(Boolean statisticsEnabled)
public Boolean getStatisticsEnabled()
public boolean isStatisticsEnabled()
protected boolean resolveStatisticsEnabled()
public void stop(Runnable callback)
stop
in interface SmartLifecycle
public boolean isAutoStartup()
isAutoStartup
in interface SmartLifecycle
Copyright © 2011–2018 Pivotal Software, Inc.. All rights reserved.