From a8e29f7065c59b2c72549cc155be7f8d6c9d0e72 Mon Sep 17 00:00:00 2001 From: John Blum Date: Fri, 30 Aug 2019 17:41:21 -0700 Subject: [PATCH] Provide ability to reset Cluster-Aware Configuration Condition state. --- .../annotation/ClusterAwareConfiguration.java | 4 ++++ ...terAvailableConfigurationIntegrationTests.java | 3 +++ ...NotAvailableConfigurationIntegrationTests.java | 15 ++++++++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/spring-geode/src/main/java/org/springframework/geode/config/annotation/ClusterAwareConfiguration.java b/spring-geode/src/main/java/org/springframework/geode/config/annotation/ClusterAwareConfiguration.java index 51b06e3a..a7f5aea0 100644 --- a/spring-geode/src/main/java/org/springframework/geode/config/annotation/ClusterAwareConfiguration.java +++ b/spring-geode/src/main/java/org/springframework/geode/config/annotation/ClusterAwareConfiguration.java @@ -96,6 +96,10 @@ public class ClusterAwareConfiguration extends AbstractAnnotationConfigSupport { private static final AtomicReference clusterAvailable = new AtomicReference<>(null); + static void reset() { + clusterAvailable.set(null); + } + @Override public synchronized boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { diff --git a/spring-geode/src/test/java/org/springframework/geode/config/annotation/ClusterAvailableConfigurationIntegrationTests.java b/spring-geode/src/test/java/org/springframework/geode/config/annotation/ClusterAvailableConfigurationIntegrationTests.java index 7fe5c6ed..8e3e0893 100644 --- a/spring-geode/src/test/java/org/springframework/geode/config/annotation/ClusterAvailableConfigurationIntegrationTests.java +++ b/spring-geode/src/test/java/org/springframework/geode/config/annotation/ClusterAvailableConfigurationIntegrationTests.java @@ -85,6 +85,9 @@ public class ClusterAvailableConfigurationIntegrationTests extends ForkingClient @BeforeClass public static void runGemFireServer() throws IOException { + + ClusterAwareConfiguration.ClusterAwareCondition.reset(); + startGemFireServer(GeodeServerApplication.class); } diff --git a/spring-geode/src/test/java/org/springframework/geode/config/annotation/ClusterNotAvailableConfigurationIntegrationTests.java b/spring-geode/src/test/java/org/springframework/geode/config/annotation/ClusterNotAvailableConfigurationIntegrationTests.java index d76ecaaf..fc019dc5 100644 --- a/spring-geode/src/test/java/org/springframework/geode/config/annotation/ClusterNotAvailableConfigurationIntegrationTests.java +++ b/spring-geode/src/test/java/org/springframework/geode/config/annotation/ClusterNotAvailableConfigurationIntegrationTests.java @@ -25,6 +25,7 @@ import org.apache.geode.cache.Region; import org.apache.geode.cache.client.ClientRegionShortcut; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @@ -61,12 +62,20 @@ import example.app.crm.service.CustomerService; * @since 1.2.0 */ @RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE) +@SpringBootTest( + classes = ClusterNotAvailableConfigurationIntegrationTests.GeodeClientApplication.class, + webEnvironment = SpringBootTest.WebEnvironment.NONE +) @SuppressWarnings("unused") public class ClusterNotAvailableConfigurationIntegrationTests extends IntegrationTestsSupport { private static final String LOG_LEVEL = "error"; + @BeforeClass + public static void setup() { + ClusterAwareConfiguration.ClusterAwareCondition.reset(); + } + @Resource(name = "Customers") private Region customers; @@ -77,7 +86,7 @@ public class ClusterNotAvailableConfigurationIntegrationTests extends Integratio private Region example; @Before - public void setup() { + public void assertRegionConfiguration() { assertRegion(this.example, "Example", DataPolicy.NORMAL, null); assertRegion(this.customers, "Customers", DataPolicy.NORMAL, null); @@ -121,7 +130,7 @@ public class ClusterNotAvailableConfigurationIntegrationTests extends Integratio @EnableClusterAware @EnableCachingDefinedRegions @EnableEntityDefinedRegions(basePackageClasses = Customer.class) - @ClientCacheApplication(name = "ClusterAvailableConfigurationIntegrationTests", logLevel = LOG_LEVEL) + @ClientCacheApplication(name = "ClusterNotAvailableConfigurationIntegrationTests", logLevel = LOG_LEVEL) static class GeodeClientApplication { @Bean("Example")