From 42eefab61cc48e59bbf82ad63c35e51fb0039b87 Mon Sep 17 00:00:00 2001 From: John Blum Date: Fri, 13 Mar 2015 11:58:14 -0700 Subject: [PATCH] SGF-383 - Refactor and make RegionFactoryBean and RegionLookupFactoryBean abstract. --- .../data/gemfire/LookupRegionFactoryBean.java | 30 +++++++++++++++++ .../data/gemfire/RegionFactoryBean.java | 2 +- .../data/gemfire/RegionLookupFactoryBean.java | 2 +- .../gemfire/config/LookupRegionParser.java | 4 +-- .../data/gemfire/RegionFactoryBeanTest.java | 33 ++++++++++--------- .../data/gemfire/SubRegionTest.java | 2 +- ...gionDefinitionUsingBeansNamespaceTest.java | 5 +++ ...gionDefinitionUsingBeansNamespaceTest.java | 3 ++ .../data/gemfire/basic-region.xml | 2 +- ...entAttributeSettingsBeansNamespaceTest.xml | 4 +-- ...initionUsingBeansNamespaceTest-context.xml | 7 ++-- 11 files changed, 67 insertions(+), 27 deletions(-) create mode 100644 src/main/java/org/springframework/data/gemfire/LookupRegionFactoryBean.java diff --git a/src/main/java/org/springframework/data/gemfire/LookupRegionFactoryBean.java b/src/main/java/org/springframework/data/gemfire/LookupRegionFactoryBean.java new file mode 100644 index 00000000..9d4e091b --- /dev/null +++ b/src/main/java/org/springframework/data/gemfire/LookupRegionFactoryBean.java @@ -0,0 +1,30 @@ +/* + * Copyright 2010-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. + */ + +package org.springframework.data.gemfire; + +/** + * The LookupRegionFactoryBean class is a concrete implementation of RegionLookupFactoryBean for handling & + * gt;gfe:lookup-region/< SDG XML namespace (XSD) elements. + * + * @author John Blum + * @see org.springframework.data.gemfire.RegionLookupFactoryBean + * @since 1.6.0 + */ +@SuppressWarnings("unused") +public class LookupRegionFactoryBean extends RegionLookupFactoryBean { + +} diff --git a/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java b/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java index baa18677..afd222ba 100644 --- a/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/RegionFactoryBean.java @@ -63,7 +63,7 @@ import com.gemstone.gemfire.internal.cache.UserSpecifiedRegionAttributes; * @author John Blum */ @SuppressWarnings("unused") -public class RegionFactoryBean extends RegionLookupFactoryBean implements DisposableBean, SmartLifecycle { +public abstract class RegionFactoryBean extends RegionLookupFactoryBean implements DisposableBean, SmartLifecycle { protected final Log log = LogFactory.getLog(getClass()); diff --git a/src/main/java/org/springframework/data/gemfire/RegionLookupFactoryBean.java b/src/main/java/org/springframework/data/gemfire/RegionLookupFactoryBean.java index fe0bed9a..55ef5dc7 100644 --- a/src/main/java/org/springframework/data/gemfire/RegionLookupFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/RegionLookupFactoryBean.java @@ -36,7 +36,7 @@ import com.gemstone.gemfire.cache.Region; * @author John Blum */ @SuppressWarnings("unused") -public class RegionLookupFactoryBean implements FactoryBean>, InitializingBean, BeanNameAware { +public abstract class RegionLookupFactoryBean implements FactoryBean>, InitializingBean, BeanNameAware { protected final Log log = LogFactory.getLog(getClass()); diff --git a/src/main/java/org/springframework/data/gemfire/config/LookupRegionParser.java b/src/main/java/org/springframework/data/gemfire/config/LookupRegionParser.java index dd7af158..db901e28 100644 --- a/src/main/java/org/springframework/data/gemfire/config/LookupRegionParser.java +++ b/src/main/java/org/springframework/data/gemfire/config/LookupRegionParser.java @@ -18,7 +18,7 @@ package org.springframework.data.gemfire.config; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.data.gemfire.RegionLookupFactoryBean; +import org.springframework.data.gemfire.LookupRegionFactoryBean; import org.w3c.dom.Element; /** @@ -32,7 +32,7 @@ class LookupRegionParser extends AbstractRegionParser { @Override protected Class getRegionFactoryClass() { - return RegionLookupFactoryBean.class; + return LookupRegionFactoryBean.class; } @Override diff --git a/src/test/java/org/springframework/data/gemfire/RegionFactoryBeanTest.java b/src/test/java/org/springframework/data/gemfire/RegionFactoryBeanTest.java index 517ef3d5..d052d784 100644 --- a/src/test/java/org/springframework/data/gemfire/RegionFactoryBeanTest.java +++ b/src/test/java/org/springframework/data/gemfire/RegionFactoryBeanTest.java @@ -72,7 +72,7 @@ import com.gemstone.gemfire.internal.cache.GemFireCacheImpl; @SuppressWarnings("unchecked") public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { - private final RegionFactoryBean factoryBean = new RegionFactoryBean(); + private final RegionFactoryBean factoryBean = new TestRegionFactoryBean(); @After public void tearDown() { @@ -82,7 +82,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { @SuppressWarnings("rawtypes") private RegionFactoryBeanConfig defaultConfig() { - return new RegionFactoryBeanConfig(new RegionFactoryBean(), "default") { + return new RegionFactoryBeanConfig(new TestRegionFactoryBean(), "default") { @Override public void configureRegionFactoryBean() { } @@ -97,7 +97,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { @SuppressWarnings("rawtypes") private RegionFactoryBeanConfig persistentConfig() { - return new RegionFactoryBeanConfig(new RegionFactoryBean(), "persistent") { + return new RegionFactoryBeanConfig(new TestRegionFactoryBean(), "persistent") { @Override public void configureRegionFactoryBean() { regionFactoryBean.setPersistent(true); @@ -113,7 +113,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { @SuppressWarnings({ "deprecation", "rawtypes" }) private RegionFactoryBeanConfig invalidPersistentConfig() { - return new RegionFactoryBeanConfig(new RegionFactoryBean(), "invalid-persistence") { + return new RegionFactoryBeanConfig(new TestRegionFactoryBean(), "invalid-persistence") { @Override public void configureRegionFactoryBean() { regionFactoryBean.setDataPolicy("persistent_replicate"); @@ -169,7 +169,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { } @Test public void testAssertDataPolicyAndPersistentAttributesAreCompatible() { - RegionFactoryBean factoryBean = new RegionFactoryBean(); + RegionFactoryBean factoryBean = new TestRegionFactoryBean(); factoryBean.setPersistent(null); factoryBean.assertDataPolicyAndPersistentAttributesAreCompatible(DataPolicy.PARTITION); @@ -187,7 +187,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { @Test(expected = IllegalArgumentException.class) public void testAssertNonPersistentDataPolicyWithPersistentAttribute() { try { - RegionFactoryBean factoryBean = new RegionFactoryBean(); + RegionFactoryBean factoryBean = new TestRegionFactoryBean(); factoryBean.setPersistent(true); factoryBean.assertDataPolicyAndPersistentAttributesAreCompatible(DataPolicy.REPLICATE); } @@ -200,7 +200,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { @Test(expected = IllegalArgumentException.class) public void testAssertPersistentDataPolicyWithNonPersistentAttribute() { try { - RegionFactoryBean factoryBean = new RegionFactoryBean(); + RegionFactoryBean factoryBean = new TestRegionFactoryBean(); factoryBean.setPersistent(false); factoryBean.assertDataPolicyAndPersistentAttributesAreCompatible(DataPolicy.PERSISTENT_PARTITION); } @@ -213,7 +213,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { @Test public void testIsPersistent() { - RegionFactoryBean factoryBean = new RegionFactoryBean(); + RegionFactoryBean factoryBean = new TestRegionFactoryBean(); assertFalse(factoryBean.isPersistent()); @@ -228,7 +228,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { @Test public void testIsPersistentUnspecified() { - RegionFactoryBean factoryBean = new RegionFactoryBean(); + RegionFactoryBean factoryBean = new TestRegionFactoryBean(); assertTrue(factoryBean.isPersistentUnspecified()); @@ -247,7 +247,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { @Test public void testIsNotPersistent() { - RegionFactoryBean factoryBean = new RegionFactoryBean(); + RegionFactoryBean factoryBean = new TestRegionFactoryBean(); assertFalse(factoryBean.isNotPersistent()); @@ -306,12 +306,11 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { Cache mockCache = mock(Cache.class); RegionAttributes mockRegionAttributes = mock(RegionAttributes.class); - - final RegionFactory mockRegionFactory = createMockRegionFactory(); + RegionFactory mockRegionFactory = createMockRegionFactory(); when(mockCache.createRegionFactory(eq(mockRegionAttributes))).thenReturn(mockRegionFactory); - RegionFactoryBean factoryBean = new RegionFactoryBean(); + RegionFactoryBean factoryBean = new TestRegionFactoryBean(); factoryBean.setAttributes(mockRegionAttributes); factoryBean.setShortcut(null); @@ -324,12 +323,11 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { @Test public void testCreateRegionFactory() { Cache mockCache = mock(Cache.class); - - final RegionFactory mockRegionFactory = createMockRegionFactory(); + RegionFactory mockRegionFactory = createMockRegionFactory(); when(mockCache.createRegionFactory()).thenReturn(mockRegionFactory); - RegionFactoryBean factoryBean = new RegionFactoryBean(); + RegionFactoryBean factoryBean = new TestRegionFactoryBean(); factoryBean.setAttributes(null); factoryBean.setShortcut(null); @@ -1054,4 +1052,7 @@ public class RegionFactoryBeanTest extends AbstractRegionFactoryBeanTest { } } + protected static class TestRegionFactoryBean extends RegionFactoryBean { + } + } diff --git a/src/test/java/org/springframework/data/gemfire/SubRegionTest.java b/src/test/java/org/springframework/data/gemfire/SubRegionTest.java index 2a28a255..58e4be7d 100644 --- a/src/test/java/org/springframework/data/gemfire/SubRegionTest.java +++ b/src/test/java/org/springframework/data/gemfire/SubRegionTest.java @@ -66,7 +66,7 @@ public class SubRegionTest extends RecreatingContextTest { assertEquals("/Outer", outer.getFullPath()); assertSame(outer, cache.getRegion("/Outer")); - RegionFactoryBean subRegionFactory = new RegionFactoryBean(); + RegionFactoryBean subRegionFactory = new RegionFactoryBean() { }; subRegionFactory.setCache(cache); subRegionFactory.setParent(outer); diff --git a/src/test/java/org/springframework/data/gemfire/config/InvalidRegionDefinitionUsingBeansNamespaceTest.java b/src/test/java/org/springframework/data/gemfire/config/InvalidRegionDefinitionUsingBeansNamespaceTest.java index 25f9f07f..bf5fdf3e 100644 --- a/src/test/java/org/springframework/data/gemfire/config/InvalidRegionDefinitionUsingBeansNamespaceTest.java +++ b/src/test/java/org/springframework/data/gemfire/config/InvalidRegionDefinitionUsingBeansNamespaceTest.java @@ -22,6 +22,7 @@ import static org.junit.Assert.assertTrue; import org.junit.Test; import org.springframework.beans.factory.BeanCreationException; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.data.gemfire.RegionFactoryBean; /** * The InvalidRegionDefinitionUsingBeansNamespaceTest class is a test suite of test cases testing the definition of @@ -48,4 +49,8 @@ public class InvalidRegionDefinitionUsingBeansNamespaceTest { } } + @SuppressWarnings("unused") + public static final class TestRegionFactoryBean extends RegionFactoryBean { + } + } diff --git a/src/test/java/org/springframework/data/gemfire/config/RegionDefinitionUsingBeansNamespaceTest.java b/src/test/java/org/springframework/data/gemfire/config/RegionDefinitionUsingBeansNamespaceTest.java index 4a393f30..5ca14fb0 100644 --- a/src/test/java/org/springframework/data/gemfire/config/RegionDefinitionUsingBeansNamespaceTest.java +++ b/src/test/java/org/springframework/data/gemfire/config/RegionDefinitionUsingBeansNamespaceTest.java @@ -113,4 +113,7 @@ public class RegionDefinitionUsingBeansNamespaceTest { assertEquals(2, anotherExample.getAttributes().getPartitionAttributes().getRedundantCopies()); } + public static final class TestRegionFactoryBean extends RegionFactoryBean { + } + } diff --git a/src/test/resources/org/springframework/data/gemfire/basic-region.xml b/src/test/resources/org/springframework/data/gemfire/basic-region.xml index 46579e5f..0ec7f2e6 100644 --- a/src/test/resources/org/springframework/data/gemfire/basic-region.xml +++ b/src/test/resources/org/springframework/data/gemfire/basic-region.xml @@ -17,7 +17,7 @@ - + diff --git a/src/test/resources/org/springframework/data/gemfire/config/InvalidDataPolicyPersistentAttributeSettingsBeansNamespaceTest.xml b/src/test/resources/org/springframework/data/gemfire/config/InvalidDataPolicyPersistentAttributeSettingsBeansNamespaceTest.xml index 72baa65f..2681cff5 100644 --- a/src/test/resources/org/springframework/data/gemfire/config/InvalidDataPolicyPersistentAttributeSettingsBeansNamespaceTest.xml +++ b/src/test/resources/org/springframework/data/gemfire/config/InvalidDataPolicyPersistentAttributeSettingsBeansNamespaceTest.xml @@ -20,8 +20,8 @@ - + diff --git a/src/test/resources/org/springframework/data/gemfire/config/RegionDefinitionUsingBeansNamespaceTest-context.xml b/src/test/resources/org/springframework/data/gemfire/config/RegionDefinitionUsingBeansNamespaceTest-context.xml index 3e35faa2..397fe20e 100644 --- a/src/test/resources/org/springframework/data/gemfire/config/RegionDefinitionUsingBeansNamespaceTest-context.xml +++ b/src/test/resources/org/springframework/data/gemfire/config/RegionDefinitionUsingBeansNamespaceTest-context.xml @@ -18,7 +18,8 @@ - + - +