diff --git a/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java b/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java index 80e6ce34..957c4ef6 100644 --- a/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java @@ -48,7 +48,6 @@ import com.gemstone.gemfire.cache.DynamicRegionFactory; import com.gemstone.gemfire.cache.GemFireCache; import com.gemstone.gemfire.cache.TransactionListener; import com.gemstone.gemfire.cache.TransactionWriter; -import com.gemstone.gemfire.cache.util.GatewayConflictResolver; import com.gemstone.gemfire.distributed.DistributedMember; import com.gemstone.gemfire.distributed.DistributedSystem; import com.gemstone.gemfire.internal.cache.GemFireCacheImpl; @@ -131,10 +130,6 @@ public class CacheFactoryBean implements BeanNameAware, BeanFactoryAware, BeanCl if (messageSyncInterval != null) { cacheImpl.setMessageSyncInterval(messageSyncInterval); } - - if (gatewayConflictResolver != null) { - cacheImpl.setGatewayConflictResolver((GatewayConflictResolver) gatewayConflictResolver); - } } } @@ -264,9 +259,6 @@ public class CacheFactoryBean implements BeanNameAware, BeanFactoryAware, BeanCl protected List jndiDataSources; - // Defined this way for backward compatibility - protected Object gatewayConflictResolver; - @Override public void afterPropertiesSet() throws Exception { // initialize locator @@ -655,15 +647,6 @@ public class CacheFactoryBean implements BeanNameAware, BeanFactoryAware, BeanCl public void setTransactionWriter(TransactionWriter transactionWriter) { this.transactionWriter = transactionWriter; } - /** - * Requires GemFire 7.0 or higher - * @param gatewayConflictResolver defined as Object in the signature for backward - * compatibility with Gemfire 6 compatibility. This must be an instance of - * {@link com.gemstone.gemfire.cache.util.GatewayConflictResolver} - */ - public void setGatewayConflictResolver(Object gatewayConflictResolver) { - this.gatewayConflictResolver = gatewayConflictResolver; - } /** * diff --git a/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java b/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java index 86f45d3f..4439d416 100644 --- a/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java @@ -27,7 +27,6 @@ import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; import org.springframework.util.ReflectionUtils; -import com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueue; import com.gemstone.gemfire.cache.AttributesFactory; import com.gemstone.gemfire.cache.Cache; import com.gemstone.gemfire.cache.CacheClosedException; @@ -40,7 +39,6 @@ import com.gemstone.gemfire.cache.Region; import com.gemstone.gemfire.cache.RegionAttributes; import com.gemstone.gemfire.cache.RegionFactory; import com.gemstone.gemfire.cache.Scope; -import com.gemstone.gemfire.cache.wan.GatewaySender; /** * Base class for FactoryBeans used to create GemFire {@link Region}s. Will try @@ -71,10 +69,6 @@ public class RegionFactoryBean extends RegionLookupFactoryBean imple private CacheWriter cacheWriter; - private Object gatewaySenders[]; - - private Object asyncEventQueues[]; - private RegionAttributes attributes; private Scope scope; @@ -128,21 +122,6 @@ public class RegionFactoryBean extends RegionLookupFactoryBean imple } } - if (!ObjectUtils.isEmpty(gatewaySenders)) { - Assert.isTrue( - hubId == null, - "It is invalid to configure a region with both a hubId and gatewaySenders. Note that the enableGateway and hubId properties are deprecated since Gemfire 7.0"); - for (Object gatewaySender : gatewaySenders) { - regionFactory.addGatewaySenderId(((GatewaySender) gatewaySender).getId()); - } - } - - if (!ObjectUtils.isEmpty(asyncEventQueues)) { - for (Object asyncEventQueue : asyncEventQueues) { - regionFactory.addAsyncEventQueueId(((AsyncEventQueue) asyncEventQueue).getId()); - } - } - if (cacheLoader != null) { regionFactory.setCacheLoader(cacheLoader); } @@ -368,24 +347,6 @@ public class RegionFactoryBean extends RegionLookupFactoryBean imple this.diskStoreName = diskStoreName; } - /** - * - * @param gatewaySenders defined as Object for backward compatibility with - * Gemfire 6 - */ - public void setGatewaySenders(Object[] gatewaySenders) { - this.gatewaySenders = gatewaySenders; - } - - /** - * - * @param asyncEventQueues defined as Object for backward compatibility with - * Gemfire 6 - */ - public void setAsyncEventQueues(Object[] asyncEventQueues) { - this.asyncEventQueues = asyncEventQueues; - } - public void setEnableGateway(boolean enableGateway) { this.enableGateway = enableGateway; } diff --git a/src/test/java/org/springframework/data/gemfire/config/CacheNamespaceTest.java b/src/test/java/org/springframework/data/gemfire/config/CacheNamespaceTest.java index 37a60ca5..ae9e67e1 100644 --- a/src/test/java/org/springframework/data/gemfire/config/CacheNamespaceTest.java +++ b/src/test/java/org/springframework/data/gemfire/config/CacheNamespaceTest.java @@ -33,11 +33,6 @@ import org.springframework.data.gemfire.TestUtils; import org.springframework.data.gemfire.client.ClientCacheFactoryBean; import org.springframework.test.util.ReflectionTestUtils; -import com.gemstone.gemfire.cache.Cache; -import com.gemstone.gemfire.cache.util.GatewayConflictHelper; -import com.gemstone.gemfire.cache.util.GatewayConflictResolver; -import com.gemstone.gemfire.cache.util.TimestampedEntryEvent; - /** * @author Costin Leau */ @@ -54,7 +49,6 @@ public class CacheNamespaceTest extends RecreatingContextTest { testNamedCache(); testCacheWithXml(); testHeapTunedCache(); - testCacheWithGatewayConflictResolver(); } private void testBasicCache() throws Exception { @@ -86,12 +80,6 @@ public class CacheNamespaceTest extends RecreatingContextTest { } - private void testCacheWithGatewayConflictResolver() { - Cache cache = ctx.getBean("cache-with-conflict-resolver", Cache.class); - assertNotNull(cache.getGatewayConflictResolver()); - assertTrue(cache.getGatewayConflictResolver() instanceof TestConflictResolver); - } - @Test(expected = IllegalArgumentException.class) public void testNoBeanFactory() throws Exception { assertTrue(ctx.containsBean("no-bl")); @@ -134,12 +122,4 @@ public class CacheNamespaceTest extends RecreatingContextTest { assertEquals(70, chp, 0.0001); assertEquals(60, ehp, 0.0001); } - - public static class TestConflictResolver implements GatewayConflictResolver { - @Override - public void onEvent(TimestampedEntryEvent arg0, GatewayConflictHelper arg1) { - // TODO Auto-generated method stub - - } - } } \ No newline at end of file diff --git a/src/test/java/org/springframework/data/gemfire/config/GemfireV7GatewayNamespaceTest.java b/src/test/java/org/springframework/data/gemfire/config/GemfireV7GatewayNamespaceTest.java deleted file mode 100644 index 57f4f745..00000000 --- a/src/test/java/org/springframework/data/gemfire/config/GemfireV7GatewayNamespaceTest.java +++ /dev/null @@ -1,494 +0,0 @@ -/* - * Copyright 2010-2012 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. - */ -package org.springframework.data.gemfire.config; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import java.io.File; -import java.io.FilenameFilter; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.List; - -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.Test; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.data.gemfire.RecreatingContextTest; -import org.springframework.data.gemfire.RegionFactoryBean; -import org.springframework.data.gemfire.TestUtils; -import org.springframework.data.gemfire.wan.AsyncEventQueueFactoryBean; -import org.springframework.data.gemfire.wan.GatewaySenderFactoryBean; - -import com.gemstone.gemfire.cache.Cache; -import com.gemstone.gemfire.cache.Region; -import com.gemstone.gemfire.cache.asyncqueue.AsyncEvent; -import com.gemstone.gemfire.cache.asyncqueue.AsyncEventListener; -import com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueue; -import com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueueFactory; -import com.gemstone.gemfire.cache.util.Gateway.OrderPolicy; -import com.gemstone.gemfire.cache.wan.GatewayEventFilter; -import com.gemstone.gemfire.cache.wan.GatewayQueueEvent; -import com.gemstone.gemfire.cache.wan.GatewayReceiver; -import com.gemstone.gemfire.cache.wan.GatewaySender; -import com.gemstone.gemfire.cache.wan.GatewaySenderFactory; -import com.gemstone.gemfire.cache.wan.GatewayTransportFilter; - -/** - * This test is only valid for GF 7.0 and above - * - * @author David Turanski - * - */ -public class GemfireV7GatewayNamespaceTest extends RecreatingContextTest implements BeanPostProcessor { - - @Override - protected String location() { - return "/org/springframework/data/gemfire/config/gateway-v7-ns.xml"; - } - - @Override - protected void configureContext() { - ctx.getBeanFactory().addBeanPostProcessor(this); - } - - @Before - @Override - public void createCtx() { - if (ParsingUtils.GEMFIRE_VERSION.startsWith("7")) { - super.createCtx(); - } - } - - /* - * Faster this way - */ - @Test - public void test() throws Exception { - if (ctx != null) { - testGatewaySender(); - testInnerGatewaySender(); - testInnerGatewayReceiver(); - testAsyncEventQueue(); - } - } - - @AfterClass - public static void tearDown() { - for (String name : new File(".").list(new FilenameFilter() { - - @Override - public boolean accept(File dir, String name) { - return name.startsWith("BACKUP"); - } - })) { - new File(name).delete(); - } - } - - /** - * - */ - private void testAsyncEventQueue() { - AsyncEventQueue aseq = ctx.getBean("async-event-queue", AsyncEventQueue.class); - assertEquals(10, aseq.getBatchSize()); - assertTrue(aseq.isPersistent()); - assertEquals("diskstore", aseq.getDiskStoreName()); - assertEquals(50, aseq.getMaximumQueueMemory()); - } - - private void testGatewaySender() throws Exception { - GatewaySenderFactoryBean gwsfb = ctx.getBean("&gateway-sender", GatewaySenderFactoryBean.class); - Cache cache = TestUtils.readField("cache", gwsfb); - assertNotNull(cache); - List eventFilters = TestUtils.readField("eventFilters", gwsfb); - assertNotNull(eventFilters); - assertEquals(2, eventFilters.size()); - assertTrue(eventFilters.get(0) instanceof TestEventFilter); - - List transportFilters = TestUtils.readField("transportFilters", gwsfb); - assertNotNull(transportFilters); - assertEquals(2, transportFilters.size()); - assertTrue(transportFilters.get(0) instanceof TestTransportFilter); - - assertEquals(2, TestUtils.readField("remoteDistributedSystemId", gwsfb)); - assertEquals(10, TestUtils.readField("alertThreshold", gwsfb)); - assertEquals(11, TestUtils.readField("batchSize", gwsfb)); - assertEquals(12, TestUtils.readField("dispatcherThreads", gwsfb)); - assertEquals(true, TestUtils.readField("manualStart", gwsfb)); - } - - @SuppressWarnings("rawtypes") - private void testInnerGatewaySender() throws Exception { - Region region = ctx.getBean("region-inner-gateway-sender", Region.class); - GatewaySender gws = ctx.getBean("gateway-sender", GatewaySender.class); - assertNotNull(region.getAttributes().getGatewaySenderIds()); - assertEquals(2, region.getAttributes().getGatewaySenderIds().size()); - -// // Isolate the inner gateway -// Set gatewaySenders = region.getAttributes().getGatewaySenderIds(); -// assertTrue(gatewaySenders.remove(gws)); -// gatewaySenders.remove(gws); - - RegionFactoryBean rfb = ctx.getBean("®ion-inner-gateway-sender", RegionFactoryBean.class); - Object[] gwsenders = TestUtils.readField("gatewaySenders", rfb); - gws = (GatewaySender)gwsenders[0]; - List eventFilters = gws.getGatewayEventFilters(); - assertNotNull(eventFilters); - assertEquals(1, eventFilters.size()); - assertTrue(eventFilters.get(0) instanceof TestEventFilter); - - List transportFilters = gws.getGatewayTransportFilters(); - - assertNotNull(transportFilters); - assertEquals(1, transportFilters.size()); - assertTrue(transportFilters.get(0) instanceof TestTransportFilter); - - assertEquals(1, gws.getRemoteDSId()); - assertEquals(true, gws.isManualStart()); - assertEquals(10, gws.getAlertThreshold()); - assertEquals(11, gws.getBatchSize()); - assertEquals(3000, gws.getBatchTimeInterval()); - assertEquals(2, gws.getDispatcherThreads()); - assertEquals("diskstore", gws.getDiskStoreName()); - assertTrue(gws.isBatchConflationEnabled()); - assertEquals(50, gws.getMaximumQueueMemory()); - assertEquals(OrderPolicy.THREAD, gws.getOrderPolicy()); - assertTrue(gws.isPersistenceEnabled()); - assertTrue(gws.isParallel()); - assertEquals(16536, gws.getSocketBufferSize()); - assertEquals(3000, gws.getSocketReadTimeout()); - } - - private void testInnerGatewayReceiver() { - GatewayReceiver gwr = ctx.getBean("gateway-receiver", GatewayReceiver.class); - assertEquals(12345, gwr.getStartPort()); - assertEquals(23456, gwr.getEndPort()); - assertEquals("192.168.0.1", gwr.getBindAddress()); - assertEquals(3000, gwr.getMaximumTimeBetweenPings()); - assertEquals(16536, gwr.getSocketBufferSize()); - } - - @SuppressWarnings("rawtypes") - public static class TestEventFilter implements GatewayEventFilter { - - @Override - public void close() { - // TODO Auto-generated method stub - } - - @Override - public void afterAcknowledgement(GatewayQueueEvent arg0) { - // TODO Auto-generated method stub - - } - - @Override - public boolean beforeEnqueue(GatewayQueueEvent arg0) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean beforeTransmit(GatewayQueueEvent arg0) { - // TODO Auto-generated method stub - return false; - } - - } - - public static class TestTransportFilter implements GatewayTransportFilter { - - @Override - public void close() { - // TODO Auto-generated method stub - - } - - @Override - public InputStream getInputStream(InputStream arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public OutputStream getOutputStream(OutputStream arg0) { - // TODO Auto-generated method stub - return null; - } - - } - - @SuppressWarnings("rawtypes") - public static class TestAsyncEventListener implements AsyncEventListener { - - @Override - public void close() { - // TODO Auto-generated method stub - } - - @Override - public boolean processEvents(List arg0) { - // TODO Auto-generated method stub - return false; - } - - } - - - public static class StubAsyncEventQueueFactory implements AsyncEventQueueFactory { - - private AsyncEventListener listener; - - private AsyncEventQueue asyncEventQueue = mock(AsyncEventQueue.class); - - private boolean persistent; - private int maxQueueMemory; - private String diskStoreName; - private int batchSize; - - private String name; - - @Override - public AsyncEventQueue create(String name, AsyncEventListener listener) { - this.name = name; - this.listener = listener; - - when(asyncEventQueue.getAsyncEventListener()).thenReturn(this.listener); - when(asyncEventQueue.getBatchSize()).thenReturn(this.batchSize); - when(asyncEventQueue.getDiskStoreName()).thenReturn(this.diskStoreName); - when(asyncEventQueue.isPersistent()).thenReturn(this.persistent); - when(asyncEventQueue.getId()).thenReturn(this.name); - when(asyncEventQueue.getMaximumQueueMemory()).thenReturn(this.maxQueueMemory); - return this.asyncEventQueue; - } - - @Override - public AsyncEventQueueFactory setBatchSize(int batchSize) { - this.batchSize = batchSize; - return this; - } - - @Override - public AsyncEventQueueFactory setDiskStoreName(String diskStoreName) { - this.diskStoreName = diskStoreName; - return this; - } - - @Override - public AsyncEventQueueFactory setMaximumQueueMemory(int maxQueueMemory) { - this.maxQueueMemory = maxQueueMemory; - return this; - } - - @Override - public AsyncEventQueueFactory setPersistent(boolean persistent) { - this.persistent = persistent; - return this; - } - } - - public static class StubGWSenderFactory implements GatewaySenderFactory { - - private GatewaySender gatewaySender = mock(GatewaySender.class); - - private int alertThreshold; - private boolean batchConflationEnabled; - private int batchSize; - private int batchTimeInterval; - private String diskStoreName; - private boolean diskSynchronous; - private int dispatcherThreads; - private boolean manualStart; - private int maxQueueMemory; - private OrderPolicy orderPolicy; - private boolean parallel; - private boolean persistenceEnabled; - private int socketBufferSize; - private int socketReadTimeout; - private List eventFilters; - private List transportFilters; - - private String name; - - private int remoteSystemId; - - public StubGWSenderFactory() { - this.eventFilters = new ArrayList(); - this.transportFilters = new ArrayList(); - - } - - @Override - public GatewaySenderFactory addGatewayEventFilter(GatewayEventFilter filter) { - eventFilters.add(filter); - return this; - } - - @Override - public GatewaySenderFactory addGatewayTransportFilter(GatewayTransportFilter filter) { - transportFilters.add(filter); - return this; - } - - @Override - public GatewaySender create(String name, int remoteSystemId) { - this.name = name; - this.remoteSystemId = remoteSystemId; - when(gatewaySender.getId()).thenReturn(this.name); - when(gatewaySender.getRemoteDSId()).thenReturn(this.remoteSystemId); - when(gatewaySender.getAlertThreshold()).thenReturn(this.alertThreshold); - when(gatewaySender.getBatchSize()).thenReturn(this.batchSize); - when(gatewaySender.getBatchTimeInterval()).thenReturn(this.batchTimeInterval); - when(gatewaySender.getDiskStoreName()).thenReturn(this.diskStoreName); - when(gatewaySender.getDispatcherThreads()).thenReturn(this.dispatcherThreads); - when(gatewaySender.getGatewayEventFilters()).thenReturn(this.eventFilters); - when(gatewaySender.getGatewayTransportFilters()).thenReturn(this.transportFilters); - when(gatewaySender.getMaximumQueueMemory()).thenReturn(this.maxQueueMemory); - when(gatewaySender.getOrderPolicy()).thenReturn(this.orderPolicy); - when(gatewaySender.getSocketBufferSize()).thenReturn(this.socketBufferSize); - when(gatewaySender.getSocketReadTimeout()).thenReturn(this.socketReadTimeout); - when(gatewaySender.isManualStart()).thenReturn(this.manualStart); - when(gatewaySender.isBatchConflationEnabled()).thenReturn(this.batchConflationEnabled); - when(gatewaySender.isDiskSynchronous()).thenReturn(this.diskSynchronous); - when(gatewaySender.isParallel()).thenReturn(this.parallel); - when(gatewaySender.isPersistenceEnabled()).thenReturn(this.persistenceEnabled); - return gatewaySender; - } - - @Override - public GatewaySenderFactory removeGatewayEventFilter(GatewayEventFilter filter) { - gatewaySender.removeGatewayEventFilter(filter); - return this; - } - - @Override - public GatewaySenderFactory removeGatewayTransportFilter(GatewayTransportFilter filter) { - gatewaySender.removeGatewayTransportFilter(filter); - return this; - } - - @Override - public GatewaySenderFactory setAlertThreshold(int alertThreshold) { - this.alertThreshold = alertThreshold; - return this; - } - - @Override - public GatewaySenderFactory setBatchConflationEnabled(boolean batchConflationEnabled) { - this.batchConflationEnabled = batchConflationEnabled; - return this; - } - - @Override - public GatewaySenderFactory setBatchSize(int batchSize) { - this.batchSize = batchSize; - return this; - } - - @Override - public GatewaySenderFactory setBatchTimeInterval(int batchTimeInterval) { - this.batchTimeInterval = batchTimeInterval; - return this; - } - - @Override - public GatewaySenderFactory setDiskStoreName(String diskStoreName) { - this.diskStoreName = diskStoreName; - return this; - } - - @Override - public GatewaySenderFactory setDiskSynchronous(boolean diskSynchronous) { - this.diskSynchronous = diskSynchronous; - return this; - } - - @Override - public GatewaySenderFactory setDispatcherThreads(int dispatcherThreads) { - this.dispatcherThreads = dispatcherThreads; - return this; - } - - @Override - public GatewaySenderFactory setManualStart(boolean manualStart) { - this.manualStart = manualStart; - return this; - } - - @Override - public GatewaySenderFactory setMaximumQueueMemory(int maxQueueMemory) { - this.maxQueueMemory = maxQueueMemory; - return this; - } - - @Override - public GatewaySenderFactory setOrderPolicy(OrderPolicy orderPolicy) { - this.orderPolicy = orderPolicy; - return this; - } - - @Override - public GatewaySenderFactory setParallel(boolean parallel) { - this.parallel = parallel; - return this; - } - - @Override - public GatewaySenderFactory setPersistenceEnabled(boolean persistenceEnabled) { - this.persistenceEnabled = persistenceEnabled; - return this; - } - - @Override - public GatewaySenderFactory setSocketBufferSize(int socketBufferSize) { - this.socketBufferSize = socketBufferSize; - return this; - } - - @Override - public GatewaySenderFactory setSocketReadTimeout(int socketReadTimeout) { - this.socketReadTimeout = socketReadTimeout; - return this; - } - } - - - /* - * This mocks out the WAN components which are disabled in the developer edition - */ - @Override - public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof GatewaySenderFactoryBean) { - ((GatewaySenderFactoryBean)bean).setFactory(new StubGWSenderFactory()); - } - if (bean instanceof AsyncEventQueueFactoryBean) { - ((AsyncEventQueueFactoryBean)bean).setFactory(new StubAsyncEventQueueFactory()); - } - return bean; - } - - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - return bean; - } -} diff --git a/src/test/resources/org/springframework/data/gemfire/config/cache-ns.xml b/src/test/resources/org/springframework/data/gemfire/config/cache-ns.xml index 321244f2..2083b55f 100644 --- a/src/test/resources/org/springframework/data/gemfire/config/cache-ns.xml +++ b/src/test/resources/org/springframework/data/gemfire/config/cache-ns.xml @@ -29,11 +29,5 @@ - - - - - - \ No newline at end of file diff --git a/src/test/resources/org/springframework/data/gemfire/config/gateway-v7-ns.xml b/src/test/resources/org/springframework/data/gemfire/config/gateway-v7-ns.xml deleted file mode 100644 index fbdddb1a..00000000 --- a/src/test/resources/org/springframework/data/gemfire/config/gateway-v7-ns.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file