From fced306b123bd86488b67b4ce3315f27543c040a Mon Sep 17 00:00:00 2001 From: John Blum Date: Wed, 8 Sep 2021 12:48:50 -0700 Subject: [PATCH] Add null-safe static utility method used to close a given Spring ApplicationContext. --- .../tests/integration/IntegrationTestsSupport.java | 9 +++++++++ .../SpringApplicationContextIntegrationTestsSupport.java | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/integration/IntegrationTestsSupport.java b/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/integration/IntegrationTestsSupport.java index 6a17459..0877f50 100644 --- a/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/integration/IntegrationTestsSupport.java +++ b/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/integration/IntegrationTestsSupport.java @@ -54,6 +54,7 @@ import org.apache.geode.internal.net.SocketCreatorFactory; import org.apache.shiro.util.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; @@ -248,6 +249,14 @@ public abstract class IntegrationTestsSupport { .forEach(InternalDataSerializer::unregister); } + public static void closeApplicationContext(@Nullable ApplicationContext applicationContext) { + + Optional.ofNullable(applicationContext) + .filter(ConfigurableApplicationContext.class::isInstance) + .map(ConfigurableApplicationContext.class::cast) + .ifPresent(ConfigurableApplicationContext::close); + } + public static void closeGemFireCacheWaitOnCacheClosedEvent() { closeGemFireCacheWaitOnCacheClosedEvent(DEFAULT_WAIT_DURATION); } diff --git a/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/integration/SpringApplicationContextIntegrationTestsSupport.java b/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/integration/SpringApplicationContextIntegrationTestsSupport.java index d7e5110..1851b8a 100644 --- a/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/integration/SpringApplicationContextIntegrationTestsSupport.java +++ b/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/integration/SpringApplicationContextIntegrationTestsSupport.java @@ -55,7 +55,7 @@ public abstract class SpringApplicationContextIntegrationTestsSupport extends In @After public void closeApplicationContext() { - getOptionalApplicationContext().ifPresent(ConfigurableApplicationContext::close); + closeApplicationContext(this.applicationContext); } protected ConfigurableApplicationContext newApplicationContext(Class... annotatedClasses) {