From f93a2402052826ed0b1ba04a3c64b81f90723167 Mon Sep 17 00:00:00 2001 From: costin Date: Tue, 31 Aug 2010 21:18:00 +0300 Subject: [PATCH] SGF-10 SGF-15 + add pool support in client FB + add attributes processing hooks in region fb --- .../data/gemfire/ClientRegionFactoryBean.java | 28 +++++++++++++++++++ .../data/gemfire/RegionFactoryBean.java | 13 +++++++++ 2 files changed, 41 insertions(+) diff --git a/src/main/java/org/springframework/data/gemfire/ClientRegionFactoryBean.java b/src/main/java/org/springframework/data/gemfire/ClientRegionFactoryBean.java index 9ccfef68..6ba69271 100644 --- a/src/main/java/org/springframework/data/gemfire/ClientRegionFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/ClientRegionFactoryBean.java @@ -16,9 +16,12 @@ package org.springframework.data.gemfire; +import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; +import com.gemstone.gemfire.cache.AttributesFactory; import com.gemstone.gemfire.cache.Region; +import com.gemstone.gemfire.cache.client.Pool; /** * Client extension for Gemfire regions. @@ -28,6 +31,7 @@ import com.gemstone.gemfire.cache.Region; public class ClientRegionFactoryBean extends RegionFactoryBean { private Interest[] interests; + private String poolName; @Override protected void postProcess(Region region) { @@ -44,6 +48,11 @@ public class ClientRegionFactoryBean extends RegionFactoryBean { } } + @Override + protected void postProcess(AttributesFactory attrFactory) { + attrFactory.setPoolName(poolName); + } + @Override public void destroy() throws Exception { Region region = getObject(); @@ -83,4 +92,23 @@ public class ClientRegionFactoryBean extends RegionFactoryBean { Interest[] getInterests() { return interests; } + + /** + * Sets the pool name used by this client. + * + * @param poolName + */ + public void setPoolName(String poolName) { + this.poolName = poolName; + } + + /** + * Sets the pool used by this client. + * + * @param poolName + */ + public void setPool(Pool pool) { + Assert.notNull(pool, "pool cannot be null"); + setPoolName(pool.getName()); + } } \ No newline at end of file diff --git a/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java b/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java index 55617632..7895cbe8 100644 --- a/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java @@ -103,6 +103,8 @@ public class RegionFactoryBean implements DisposableBean, FactoryBean implements DisposableBean, FactoryBean attrFactory) { + } + + /** * Post-process the region object for this factory bean during the initialization process. * The object is already initialized and configured by the factory bean before this method