From f3b22622b1443bb00db1b95d69807db77f59a96e Mon Sep 17 00:00:00 2001 From: John Blum Date: Sat, 16 Nov 2013 14:01:59 -0800 Subject: [PATCH] Fixes JIRA issues SGF-230 and SGF-233 involving the persistence on a Async Event Queue or Gateway Sender when a logical Disk Store name has been specified, or the disk-synchronous attribute has been set, requiring persistence to be enabled when all the user wanted was overflow. --- .../wan/AsyncEventQueueFactoryBean.java | 35 +++---- .../gemfire/wan/GatewaySenderFactoryBean.java | 99 ++++++++++--------- .../wan/AsyncEventQueueFactoryBeanTest.java | 64 ++++++++++++ .../wan/GatewaySenderFactoryBeanTest.java | 65 ++++++++++++ 4 files changed, 195 insertions(+), 68 deletions(-) diff --git a/src/main/java/org/springframework/data/gemfire/wan/AsyncEventQueueFactoryBean.java b/src/main/java/org/springframework/data/gemfire/wan/AsyncEventQueueFactoryBean.java index 8c363be8..c8f4e891 100644 --- a/src/main/java/org/springframework/data/gemfire/wan/AsyncEventQueueFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/wan/AsyncEventQueueFactoryBean.java @@ -15,9 +15,6 @@ */ package org.springframework.data.gemfire.wan; -import java.util.Arrays; -import java.util.List; - import org.springframework.util.Assert; import com.gemstone.gemfire.cache.Cache; @@ -49,7 +46,7 @@ public class AsyncEventQueueFactoryBean extends AbstractWANComponentFactoryBean< private Integer dispatcherThreads; private Integer maximumQueueMemory; - private String diskStoreRef; + private String diskStoreReference; private String orderPolicy; /** @@ -90,22 +87,6 @@ public class AsyncEventQueueFactoryBean extends AbstractWANComponentFactoryBean< AsyncEventQueueFactory asyncEventQueueFactory = (this.factory != null ? (AsyncEventQueueFactory) factory : cache.createAsyncEventQueueFactory()); - if (diskStoreRef != null) { - persistent = (persistent == null || persistent); - Assert.isTrue(persistent, "Specifying a 'disk store' requires the persistent property to be true."); - asyncEventQueueFactory.setDiskStoreName(diskStoreRef); - } - - if (diskSynchronous != null) { - persistent = (persistent == null || persistent); - Assert.isTrue(persistent, "Specifying 'disk synchronous' requires the persistent property to be true."); - asyncEventQueueFactory.setDiskSynchronous(diskSynchronous); - } - - if (persistent != null) { - asyncEventQueueFactory.setPersistent(persistent); - } - if (batchSize != null) { asyncEventQueueFactory.setBatchSize(batchSize); } @@ -123,6 +104,14 @@ public class AsyncEventQueueFactoryBean extends AbstractWANComponentFactoryBean< asyncEventQueueFactory.setDispatcherThreads(dispatcherThreads); } + if (diskStoreReference != null) { + asyncEventQueueFactory.setDiskStoreName(diskStoreReference); + } + + if (diskSynchronous != null) { + asyncEventQueueFactory.setDiskSynchronous(diskSynchronous); + } + if (maximumQueueMemory != null) { asyncEventQueueFactory.setMaximumQueueMemory(maximumQueueMemory); } @@ -138,6 +127,10 @@ public class AsyncEventQueueFactoryBean extends AbstractWANComponentFactoryBean< asyncEventQueueFactory.setOrderPolicy(Gateway.OrderPolicy.valueOf(orderPolicy.toUpperCase())); } + if (persistent != null) { + asyncEventQueueFactory.setPersistent(persistent); + } + asyncEventQueue = asyncEventQueueFactory.create(getName(), this.asyncEventListener); } @@ -159,7 +152,7 @@ public class AsyncEventQueueFactoryBean extends AbstractWANComponentFactoryBean< } public void setDiskStoreRef(String diskStoreRef) { - this.diskStoreRef = diskStoreRef; + this.diskStoreReference = diskStoreRef; } public void setBatchSize(Integer batchSize) { diff --git a/src/main/java/org/springframework/data/gemfire/wan/GatewaySenderFactoryBean.java b/src/main/java/org/springframework/data/gemfire/wan/GatewaySenderFactoryBean.java index ca5442e7..3d0e95b3 100644 --- a/src/main/java/org/springframework/data/gemfire/wan/GatewaySenderFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/wan/GatewaySenderFactoryBean.java @@ -15,7 +15,6 @@ */ package org.springframework.data.gemfire.wan; -import java.util.Arrays; import java.util.List; import org.springframework.context.SmartLifecycle; @@ -61,7 +60,7 @@ public class GatewaySenderFactoryBean extends AbstractWANComponentFactoryBean