SGF-404 - Enable Expiration settings and policies to be specified per application domain object using an @Expiration annotation and a custom, SDG-provided CustomExpiry instance.

Added support for SpEL expressions in the @Expiration annotation attributes to offer even more flexibility when configuring Region Entry values, application domain object Expiration policies and settings.
(cherry picked from commit 6e73f52025509d9bf89a3baf25d21201b49728de)

Signed-off-by: John Blum <jblum@pivotal.io>
This commit is contained in:
John Blum
2015-07-29 16:02:43 -07:00
parent cab84cc2ab
commit f07c6990a4
7 changed files with 171 additions and 53 deletions

View File

@@ -11,6 +11,15 @@
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
">
<util:properties id="expirationProperties">
<prop key="gemfire.region.entry.expiration.timeout">60</prop>
<prop key="gemfire.region.entry.expiration.action.string">LOCAL_INVALIDATE</prop>
<prop key="gemfire.region.entry.expiration.action.gemfire.type">#{T(com.gemstone.gemfire.cache.ExpirationAction).INVALIDATE}</prop>
<prop key="gemfire.region.entry.expiration.action.spring.type">#{T(org.springframework.data.gemfire.ExpirationActionType).DESTROY}</prop>
</util:properties>
<context:property-placeholder properties-ref="expirationProperties"/>
<util:properties id="gemfireProperties">
<prop key="name">AnnotationBasedExpirationConfigurationIntegrationTest</prop>
<prop key="mcast-port">0</prop>
@@ -24,6 +33,8 @@
<constructor-arg value="#{T(com.gemstone.gemfire.cache.ExpirationAction).DESTROY}"/>
</bean>
<bean id="genericExpiration" class="org.springframework.data.gemfire.support.AnnotationBasedExpiration"/>
<bean id="ttiExpiration" class="org.springframework.data.gemfire.support.AnnotationBasedExpiration"
factory-method="forIdleTimeout"/>