SGF-505 - Add support for forwardExpirationDestroy in the AsyncEventQueueFactoryBean API and XML namespace.
This commit is contained in:
@@ -67,7 +67,7 @@ public class AsyncEventQueueNamespaceTest {
|
||||
assertThat(asyncEventQueue.getDiskStoreName(), is(equalTo("TestDiskStore")));
|
||||
assertThat(asyncEventQueue.isDiskSynchronous(), is(true));
|
||||
assertThat(asyncEventQueue.getDispatcherThreads(), is(equalTo(4)));
|
||||
assertThat(asyncEventQueue.isIgnoreEvictionAndExpiration(), is(false));
|
||||
assertThat(asyncEventQueue.isForwardExpirationDestroy(), is(false));
|
||||
assertThat(asyncEventQueue.getMaximumQueueMemory(), is(equalTo(50)));
|
||||
assertThat(asyncEventQueue.getOrderPolicy(), is(equalTo(GatewaySender.OrderPolicy.KEY)));
|
||||
assertThat(asyncEventQueue.isParallel(), is(false));
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/*
|
||||
* Copyright 2002-2013 the original author or authors.
|
||||
*
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
||||
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations under the License.
|
||||
@@ -38,7 +38,7 @@ public class StubAsyncEventQueueFactory implements AsyncEventQueueFactory {
|
||||
|
||||
private boolean batchConflationEnabled;
|
||||
private boolean diskSynchronous;
|
||||
private boolean ignoreEvictionAndExpiration;
|
||||
private boolean forwardExpirationDestroy;
|
||||
private boolean parallel;
|
||||
private boolean persistent;
|
||||
|
||||
@@ -67,7 +67,7 @@ public class StubAsyncEventQueueFactory implements AsyncEventQueueFactory {
|
||||
when(asyncEventQueue.getGatewayEventFilters()).thenReturn(Collections.unmodifiableList(gatewayEventFilters));
|
||||
when(asyncEventQueue.getGatewayEventSubstitutionFilter()).thenReturn(this.gatewayEventSubstitutionFilter);
|
||||
when(asyncEventQueue.getId()).thenReturn(name);
|
||||
when(asyncEventQueue.isIgnoreEvictionAndExpiration()).thenReturn(this.ignoreEvictionAndExpiration);
|
||||
when(asyncEventQueue.isForwardExpirationDestroy()).thenReturn(this.forwardExpirationDestroy);
|
||||
when(asyncEventQueue.getMaximumQueueMemory()).thenReturn(this.maxQueueMemory);
|
||||
when(asyncEventQueue.getOrderPolicy()).thenReturn(this.orderPolicy);
|
||||
when(asyncEventQueue.isParallel()).thenReturn(this.parallel);
|
||||
@@ -108,8 +108,8 @@ public class StubAsyncEventQueueFactory implements AsyncEventQueueFactory {
|
||||
return this;
|
||||
}
|
||||
|
||||
public AsyncEventQueueFactory setIgnoreEvictionAndExpiration(boolean ignoreEvictionAndExpiration) {
|
||||
this.ignoreEvictionAndExpiration = ignoreEvictionAndExpiration;
|
||||
public AsyncEventQueueFactory setForwardExpirationDestroy(boolean forwardExpirationDestroy) {
|
||||
this.forwardExpirationDestroy = forwardExpirationDestroy;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -53,14 +53,13 @@ import com.gemstone.gemfire.cache.wan.GatewaySender;
|
||||
*/
|
||||
public class AsyncEventQueueFactoryBeanTest {
|
||||
|
||||
protected Cache createMockCacheWithAsyncEventQueueInfrastructure(
|
||||
final AsyncEventQueueFactory mockAsynEventQueueFactory) {
|
||||
protected Cache createMockCacheWithAsyncEventQueueInfrastructure(AsyncEventQueueFactory mockAsyncEventQueueFactory) {
|
||||
Cache mockCache = mock(Cache.class);
|
||||
when((mockCache.createAsyncEventQueueFactory())).thenReturn(mockAsynEventQueueFactory);
|
||||
when((mockCache.createAsyncEventQueueFactory())).thenReturn(mockAsyncEventQueueFactory);
|
||||
return mockCache;
|
||||
}
|
||||
|
||||
protected AsyncEventQueueFactory createMockAsyncEventQueueFactory(final String asyncEventQueueId) {
|
||||
protected AsyncEventQueueFactory createMockAsyncEventQueueFactory(String asyncEventQueueId) {
|
||||
AsyncEventQueueFactory mockAsyncEventQueueFactory = mock(AsyncEventQueueFactory.class);
|
||||
AsyncEventQueue mockAsyncEventQueue = mock(AsyncEventQueue.class);
|
||||
|
||||
@@ -71,48 +70,49 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
return mockAsyncEventQueueFactory;
|
||||
}
|
||||
|
||||
protected AsyncEventListener createMockAsyncEventListener() {
|
||||
protected AsyncEventListener mockAsyncEventListener() {
|
||||
return mock(AsyncEventListener.class);
|
||||
}
|
||||
|
||||
protected void verifyExpectations(final AsyncEventQueueFactory mockAsyncEventQueueFactory,
|
||||
final AsyncEventQueueFactoryBean factoryBean) throws Exception {
|
||||
Boolean parallel = TestUtils.readField("parallel", factoryBean);
|
||||
protected void verifyExpectations(AsyncEventQueueFactory asyncEventQueueFactory,
|
||||
AsyncEventQueueFactoryBean asyncEventQueueFactoryBean) throws Exception {
|
||||
|
||||
verify(mockAsyncEventQueueFactory).setParallel(eq(Boolean.TRUE.equals(parallel)));
|
||||
Boolean parallel = TestUtils.readField("parallel", asyncEventQueueFactoryBean);
|
||||
|
||||
String orderPolicy = TestUtils.readField("orderPolicy", factoryBean);
|
||||
verify(asyncEventQueueFactory).setParallel(eq(Boolean.TRUE.equals(parallel)));
|
||||
|
||||
String orderPolicy = TestUtils.readField("orderPolicy", asyncEventQueueFactoryBean);
|
||||
|
||||
if (orderPolicy != null) {
|
||||
verify(mockAsyncEventQueueFactory).setOrderPolicy(eq(GatewaySender.OrderPolicy.valueOf(
|
||||
verify(asyncEventQueueFactory).setOrderPolicy(eq(GatewaySender.OrderPolicy.valueOf(
|
||||
orderPolicy.toUpperCase())));
|
||||
}
|
||||
|
||||
Integer dispatcherThreads = TestUtils.readField("dispatcherThreads", factoryBean);
|
||||
Integer dispatcherThreads = TestUtils.readField("dispatcherThreads", asyncEventQueueFactoryBean);
|
||||
|
||||
if (dispatcherThreads != null) {
|
||||
verify(mockAsyncEventQueueFactory).setDispatcherThreads(eq(dispatcherThreads));
|
||||
verify(asyncEventQueueFactory).setDispatcherThreads(eq(dispatcherThreads));
|
||||
}
|
||||
|
||||
String diskStoreReference = TestUtils.readField("diskStoreReference", factoryBean);
|
||||
String diskStoreReference = TestUtils.readField("diskStoreReference", asyncEventQueueFactoryBean);
|
||||
|
||||
if (diskStoreReference != null) {
|
||||
verify(mockAsyncEventQueueFactory).setDiskStoreName(eq(diskStoreReference));
|
||||
verify(asyncEventQueueFactory).setDiskStoreName(eq(diskStoreReference));
|
||||
}
|
||||
|
||||
Boolean diskSynchronous = TestUtils.readField("diskSynchronous", factoryBean);
|
||||
Boolean diskSynchronous = TestUtils.readField("diskSynchronous", asyncEventQueueFactoryBean);
|
||||
|
||||
if (diskSynchronous != null) {
|
||||
verify(mockAsyncEventQueueFactory).setDiskSynchronous(eq(diskSynchronous));
|
||||
verify(asyncEventQueueFactory).setDiskSynchronous(eq(diskSynchronous));
|
||||
}
|
||||
|
||||
Boolean persistent = TestUtils.readField("persistent", factoryBean);
|
||||
Boolean persistent = TestUtils.readField("persistent", asyncEventQueueFactoryBean);
|
||||
|
||||
if (persistent != null) {
|
||||
verify(mockAsyncEventQueueFactory).setPersistent(eq(persistent));
|
||||
verify(asyncEventQueueFactory).setPersistent(eq(persistent));
|
||||
}
|
||||
else {
|
||||
verify(mockAsyncEventQueueFactory, never()).setPersistent(true);
|
||||
verify(asyncEventQueueFactory, never()).setPersistent(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,13 +121,13 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
AsyncEventQueueFactoryBean factoryBean = new AsyncEventQueueFactoryBean(
|
||||
createMockCacheWithAsyncEventQueueInfrastructure(createMockAsyncEventQueueFactory("testEventQueue")));
|
||||
|
||||
AsyncEventListener listenerOne = createMockAsyncEventListener();
|
||||
AsyncEventListener listenerOne = mockAsyncEventListener();
|
||||
|
||||
factoryBean.setAsyncEventListener(listenerOne);
|
||||
|
||||
assertSame(listenerOne, TestUtils.readField("asyncEventListener", factoryBean));
|
||||
|
||||
AsyncEventListener listenerTwo = createMockAsyncEventListener();
|
||||
AsyncEventListener listenerTwo = mockAsyncEventListener();
|
||||
|
||||
factoryBean.setAsyncEventListener(listenerTwo);
|
||||
|
||||
@@ -143,7 +143,7 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
|
||||
factoryBean.setName(asyncEventQueueId);
|
||||
|
||||
AsyncEventListener listenerOne = createMockAsyncEventListener();
|
||||
AsyncEventListener listenerOne = mockAsyncEventListener();
|
||||
|
||||
factoryBean.setAsyncEventListener(listenerOne);
|
||||
|
||||
@@ -154,10 +154,10 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
assertNotNull(TestUtils.readField("asyncEventQueue", factoryBean));
|
||||
|
||||
try {
|
||||
factoryBean.setAsyncEventListener(createMockAsyncEventListener());
|
||||
factoryBean.setAsyncEventListener(mockAsyncEventListener());
|
||||
}
|
||||
catch (IllegalStateException expected) {
|
||||
assertEquals("Setting an AsyncEventListener is not allowed once the AsyncEventQueue has been created.",
|
||||
assertEquals("Setting an AsyncEventListener is not allowed once the AsyncEventQueue has been created",
|
||||
expected.getMessage());
|
||||
assertSame(listenerOne, TestUtils.readField("asyncEventListener", factoryBean));
|
||||
throw expected;
|
||||
@@ -175,7 +175,7 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
factoryBean.doInit();
|
||||
}
|
||||
catch (Exception e) {
|
||||
assertEquals("The AsyncEventListener cannot be null.", e.getMessage());
|
||||
assertEquals("AsyncEventListener must not be null", e.getMessage());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
@@ -188,7 +188,7 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
createMockCacheWithAsyncEventQueueInfrastructure(mockAsyncEventQueueFactory));
|
||||
|
||||
factoryBean.setName("000");
|
||||
factoryBean.setAsyncEventListener(createMockAsyncEventListener());
|
||||
factoryBean.setAsyncEventListener(mockAsyncEventListener());
|
||||
factoryBean.setDispatcherThreads(8);
|
||||
factoryBean.setParallel(true);
|
||||
factoryBean.doInit();
|
||||
@@ -209,7 +209,7 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
createMockCacheWithAsyncEventQueueInfrastructure(mockAsyncEventQueueFactory));
|
||||
|
||||
factoryBean.setName("123");
|
||||
factoryBean.setAsyncEventListener(createMockAsyncEventListener());
|
||||
factoryBean.setAsyncEventListener(mockAsyncEventListener());
|
||||
factoryBean.setParallel(true);
|
||||
factoryBean.doInit();
|
||||
|
||||
@@ -229,7 +229,7 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
createMockCacheWithAsyncEventQueueInfrastructure(mockAsyncEventQueueFactory));
|
||||
|
||||
factoryBean.setName("456");
|
||||
factoryBean.setAsyncEventListener(createMockAsyncEventListener());
|
||||
factoryBean.setAsyncEventListener(mockAsyncEventListener());
|
||||
factoryBean.setOrderPolicy("Key");
|
||||
factoryBean.setParallel(true);
|
||||
|
||||
@@ -237,7 +237,7 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
factoryBean.doInit();
|
||||
}
|
||||
catch (IllegalArgumentException expected) {
|
||||
assertEquals("Order Policy cannot be used with a Parallel Event Queue.",
|
||||
assertEquals("Order Policy cannot be used with a Parallel Event Queue",
|
||||
expected.getMessage());
|
||||
throw expected;
|
||||
}
|
||||
@@ -251,7 +251,7 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
createMockCacheWithAsyncEventQueueInfrastructure(mockAsyncEventQueueFatory));
|
||||
|
||||
factoryBean.setName("789");
|
||||
factoryBean.setAsyncEventListener(createMockAsyncEventListener());
|
||||
factoryBean.setAsyncEventListener(mockAsyncEventListener());
|
||||
factoryBean.setOrderPolicy("THREAD");
|
||||
factoryBean.setParallel(false);
|
||||
factoryBean.doInit();
|
||||
@@ -272,7 +272,7 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
createMockCacheWithAsyncEventQueueInfrastructure(mockAsyncEventQueueFatory));
|
||||
|
||||
factoryBean.setName("abc");
|
||||
factoryBean.setAsyncEventListener(createMockAsyncEventListener());
|
||||
factoryBean.setAsyncEventListener(mockAsyncEventListener());
|
||||
factoryBean.setDispatcherThreads(2);
|
||||
factoryBean.setOrderPolicy("THREAD");
|
||||
factoryBean.doInit();
|
||||
@@ -293,7 +293,7 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
createMockCacheWithAsyncEventQueueInfrastructure(mockAsyncEventQueueFactory));
|
||||
|
||||
factoryBean.setName("123abc");
|
||||
factoryBean.setAsyncEventListener(createMockAsyncEventListener());
|
||||
factoryBean.setAsyncEventListener(mockAsyncEventListener());
|
||||
factoryBean.setDiskStoreRef("queueOverflowDiskStore");
|
||||
factoryBean.setPersistent(false);
|
||||
factoryBean.doInit();
|
||||
@@ -314,7 +314,7 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
createMockCacheWithAsyncEventQueueInfrastructure(mockAsyncEventQueueFactory));
|
||||
|
||||
factoryBean.setName("12345");
|
||||
factoryBean.setAsyncEventListener(createMockAsyncEventListener());
|
||||
factoryBean.setAsyncEventListener(mockAsyncEventListener());
|
||||
factoryBean.setDiskSynchronous(true);
|
||||
factoryBean.doInit();
|
||||
|
||||
@@ -325,5 +325,4 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
assertNotNull(evenQueue);
|
||||
assertEquals("12345", evenQueue.getId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user