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