diff --git a/gradle.properties b/gradle.properties index 3ec4b447..b4a38207 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ antlrVersion=2.7.7 aspectjVersion=1.8.10 assertjVersion=3.8.0 cdiVersion=1.0 -gemfireVersion=9.2.2 +gemfireVersion=9.3.0 hamcrestVersion=1.3 jacksonVersion=2.9.1 junitVersion=4.12 diff --git a/pom.xml b/pom.xml index b84b2a3d..4f63c585 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ 2.7.7 1.3.2 1.0.0 - 9.2.2 + 9.3.0 2.0.2 1.01 0.4 diff --git a/src/main/java/org/springframework/data/gemfire/eviction/EvictionAttributesFactoryBean.java b/src/main/java/org/springframework/data/gemfire/eviction/EvictionAttributesFactoryBean.java index 3146deb9..77f6c552 100644 --- a/src/main/java/org/springframework/data/gemfire/eviction/EvictionAttributesFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/eviction/EvictionAttributesFactoryBean.java @@ -19,8 +19,6 @@ package org.springframework.data.gemfire.eviction; import org.apache.geode.cache.EvictionAction; import org.apache.geode.cache.EvictionAttributes; import org.apache.geode.cache.util.ObjectSizer; -import org.apache.geode.internal.cache.lru.LRUCapacityController; -import org.apache.geode.internal.cache.lru.MemLRUCapacityController; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; @@ -37,10 +35,9 @@ import org.springframework.beans.factory.InitializingBean; @SuppressWarnings("unused") public class EvictionAttributesFactoryBean implements FactoryBean, InitializingBean { - // TODO remove this reference to the GemFire internal class when the Gem team fixes the EvictionAttributes bug!!! - protected static final int DEFAULT_LRU_MAXIMUM_ENTRIES = LRUCapacityController.DEFAULT_MAXIMUM_ENTRIES; + protected static final int DEFAULT_LRU_MAXIMUM_ENTRIES = EvictionAttributes.DEFAULT_ENTRIES_MAXIMUM; - protected static final int DEFAULT_MEMORY_MAXIMUM_SIZE = MemLRUCapacityController.DEFAULT_MAXIMUM_MEGABYTES; + protected static final int DEFAULT_MEMORY_MAXIMUM_SIZE = EvictionAttributes.DEFAULT_MEMORY_MAXIMUM; private EvictionAction action = null; diff --git a/src/test/java/org/springframework/data/gemfire/GemfireTemplateUnitTests.java b/src/test/java/org/springframework/data/gemfire/GemfireTemplateUnitTests.java index c79cd0ab..0639a02c 100644 --- a/src/test/java/org/springframework/data/gemfire/GemfireTemplateUnitTests.java +++ b/src/test/java/org/springframework/data/gemfire/GemfireTemplateUnitTests.java @@ -16,11 +16,17 @@ package org.springframework.data.gemfire; -import static org.assertj.core.api.Assertions.*; -import static org.hamcrest.Matchers.*; -import static org.mockito.ArgumentMatchers.*; +import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.*; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.atLeastOnce; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; import java.util.Arrays; import java.util.Collections; @@ -37,9 +43,7 @@ import org.apache.geode.cache.query.Query; import org.apache.geode.cache.query.QueryService; import org.apache.geode.cache.query.SelectResults; import org.junit.Before; -import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; @@ -55,19 +59,16 @@ import org.springframework.data.gemfire.test.support.AbstractUnitAndIntegrationT * @see org.junit.Test * @see org.mockito.Mock * @see org.mockito.Mockito - * @see org.mockito.runners.MockitoJUnitRunner + * @see org.mockito.junit.MockitoJUnitRunner * @see org.springframework.data.gemfire.GemfireTemplate * @see AbstractUnitAndIntegrationTestsWithMockSupport * @see org.springframework.data.gemfire.test.GemfireTestApplicationContextInitializer * @see org.springframework.test.context.ContextConfiguration */ -@RunWith(MockitoJUnitRunner.class) @SuppressWarnings("unused") +@RunWith(MockitoJUnitRunner.class) public class GemfireTemplateUnitTests extends AbstractUnitAndIntegrationTestsWithMockSupport { - @Rule - public ExpectedException exception = ExpectedException.none(); - private GemfireTemplate template; @Mock @@ -100,13 +101,19 @@ public class GemfireTemplateUnitTests extends AbstractUnitAndIntegrationTestsWit assertThat(localTemplate.isExposeNativeRegion()).isFalse(); } - @Test + @Test(expected = IllegalArgumentException.class) public void constructWithNullRegionThrowsIllegalArgumentException() { - exception.expect(IllegalArgumentException.class); - exception.expectCause(is(nullValue(Throwable.class))); - exception.expectMessage("Region is required"); - new GemfireTemplate(null); + try { + new GemfireTemplate(null); + } + catch (IllegalArgumentException expected) { + + assertThat(expected).hasMessage("Region is required"); + assertThat(expected).hasNoCause(); + + throw expected; + } } @Test @@ -159,28 +166,32 @@ public class GemfireTemplateUnitTests extends AbstractUnitAndIntegrationTestsWit @Test public void findIsSuccessful() throws Exception { + Object[] expectedParams = { "arg" }; + String expectedQuery = "SELECT * FROM /Example"; SelectResults mockSelectResults = mock(SelectResults.class); - when(mockQuery.execute(any(Object[].class))).thenReturn(mockSelectResults); + when(mockQuery.execute(any(Object.class))).thenReturn(mockSelectResults); assertThat(template.find(expectedQuery, expectedParams)).isEqualTo(mockSelectResults); verify(mockRegion, atLeastOnce()).getRegionService(); verify(mockRegionService, times(1)).getQueryService(); verify(mockQueryService, times(1)).newQuery(eq(expectedQuery)); - verify(mockQuery, times(1)).execute(eq(expectedParams)); + verify(mockQuery, times(1)).execute(eq("arg")); verifyZeroInteractions(mockSelectResults); } @Test(expected = InvalidDataAccessApiUsageException.class) public void findWithSingleResultQueryThrowsInvalidDataAccessApiUsageException() throws Exception { + Object[] expectedParams = { "arg" }; + String expectedQuery = "SELECT 1 FROM /Example"; - when(mockQuery.execute(any(Object[].class))).thenReturn(1); + when(mockQuery.execute(any(Object.class))).thenReturn(1); try { template.find(expectedQuery, expectedParams); @@ -189,62 +200,68 @@ public class GemfireTemplateUnitTests extends AbstractUnitAndIntegrationTestsWit verify(mockRegion, atLeastOnce()).getRegionService(); verify(mockRegionService, times(1)).getQueryService(); verify(mockQueryService, times(1)).newQuery(eq(expectedQuery)); - verify(mockQuery, times(1)).execute(eq(expectedParams)); + verify(mockQuery, times(1)).execute(eq("arg")); } } @Test public void findUniqueReturnsSelectResultsIsSuccessful() throws Exception { + Object[] expectedParams = { "arg" }; + String expectedQuery = "SELECT 1 FROM /Example"; SelectResults mockSelectResults = mock(SelectResults.class); - when(mockQuery.execute(eq(expectedParams))).thenReturn(mockSelectResults); + when(mockQuery.execute(any(Object.class))).thenReturn(mockSelectResults); when(mockSelectResults.asList()).thenReturn(Collections.singletonList(1)); - assertThat(template.findUnique(expectedQuery, expectedParams)).isEqualTo(1); + assertThat((Object) template.findUnique(expectedQuery, expectedParams)).isEqualTo(1); verify(mockRegion, atLeastOnce()).getRegionService(); verify(mockRegionService, times(1)).getQueryService(); verify(mockQueryService, times(1)).newQuery(eq(expectedQuery)); - verify(mockQuery, times(1)).execute(eq(expectedParams)); + verify(mockQuery, times(1)).execute(eq("arg")); verify(mockSelectResults, times(1)).asList(); } @Test public void findUniqueReturnsObjectIsSuccessful() throws Exception { + Object[] expectedParams = { "arg" }; + String expectedQuery = "SELECT 1 FROM /Example"; - when(mockQuery.execute(eq(expectedParams))).thenReturn("test"); + when(mockQuery.execute(any(Object.class))).thenReturn("test"); - assertThat(template.findUnique(expectedQuery, expectedParams)).isEqualTo("test"); + assertThat((Object) template.findUnique(expectedQuery, expectedParams)).isEqualTo("test"); verify(mockRegion, atLeastOnce()).getRegionService(); verify(mockRegionService, times(1)).getQueryService(); verify(mockQueryService, times(1)).newQuery(eq(expectedQuery)); - verify(mockQuery, times(1)).execute(eq(expectedParams)); + verify(mockQuery, times(1)).execute(eq("arg")); } @Test(expected = InvalidDataAccessApiUsageException.class) public void findUniqueWithMultiResultQueryThrowsInvalidDataAccessApiUsageException() throws Exception { + Object[] expectedParams = { "arg" }; + String expectedQuery = "SELECT 1 FROM /Example"; SelectResults mockSelectResults = mock(SelectResults.class); - when(mockQuery.execute(eq(expectedParams))).thenReturn(mockSelectResults); + when(mockQuery.execute(any(Object.class))).thenReturn(mockSelectResults); when(mockSelectResults.asList()).thenReturn(Arrays.asList(1, 2)); try { - assertThat(template.findUnique(expectedQuery, expectedParams)).isEqualTo(1); + assertThat((Object) template.findUnique(expectedQuery, expectedParams)).isEqualTo(1); } finally { verify(mockRegion, atLeastOnce()).getRegionService(); verify(mockRegionService, times(1)).getQueryService(); verify(mockQueryService, times(1)).newQuery(eq(expectedQuery)); - verify(mockQuery, times(1)).execute(eq(expectedParams)); + verify(mockQuery, times(1)).execute(eq("arg")); verify(mockSelectResults, times(1)).asList(); } } diff --git a/src/test/java/org/springframework/data/gemfire/config/xml/RegionEvictionAttributesNamespaceTest.java b/src/test/java/org/springframework/data/gemfire/config/xml/RegionEvictionAttributesNamespaceTest.java index 88b737d6..647a9fb3 100644 --- a/src/test/java/org/springframework/data/gemfire/config/xml/RegionEvictionAttributesNamespaceTest.java +++ b/src/test/java/org/springframework/data/gemfire/config/xml/RegionEvictionAttributesNamespaceTest.java @@ -24,8 +24,8 @@ import javax.annotation.Resource; import org.apache.geode.cache.DataPolicy; import org.apache.geode.cache.EvictionAction; import org.apache.geode.cache.EvictionAlgorithm; +import org.apache.geode.cache.EvictionAttributes; import org.apache.geode.cache.Region; -import org.apache.geode.internal.cache.lru.LRUCapacityController; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.data.gemfire.test.GemfireTestApplicationContextInitializer; @@ -84,7 +84,7 @@ public class RegionEvictionAttributesNamespaceTest { assertEquals(EvictionAction.LOCAL_DESTROY, two.getAttributes().getEvictionAttributes().getAction()); assertEquals(EvictionAlgorithm.LRU_ENTRY, two.getAttributes().getEvictionAttributes().getAlgorithm()); - assertEquals(LRUCapacityController.DEFAULT_MAXIMUM_ENTRIES, + assertEquals(EvictionAttributes.DEFAULT_ENTRIES_MAXIMUM, two.getAttributes().getEvictionAttributes().getMaximum()); } @@ -135,5 +135,4 @@ public class RegionEvictionAttributesNamespaceTest { assertEquals(expectedMaximum, six.getAttributes().getEvictionAttributes().getMaximum()); } - } diff --git a/src/test/java/org/springframework/data/gemfire/fork/LocatorProcess.java b/src/test/java/org/springframework/data/gemfire/fork/LocatorProcess.java index 632cfa47..d2d2bb4a 100644 --- a/src/test/java/org/springframework/data/gemfire/fork/LocatorProcess.java +++ b/src/test/java/org/springframework/data/gemfire/fork/LocatorProcess.java @@ -90,8 +90,8 @@ public class LocatorProcess { distributedSystemProperties.setProperty(DistributionConfig.LOG_LEVEL_NAME, System.getProperty("spring.data.gemfire.log-level", GEMFIRE_LOG_LEVEL)); - return InternalLocator.startLocator(locatorPort, null, null, null, null, null, distributedSystemProperties, - true, true, hostnameForClients, loadClusterConfigurationFromDirectory); + return InternalLocator.startLocator(locatorPort, null, null, null, null, + true, distributedSystemProperties, hostnameForClients); } @SuppressWarnings("unused")