From f67bb83d2c3e5507b001abfa4a546e5a78125549 Mon Sep 17 00:00:00 2001 From: John Blum Date: Wed, 30 May 2018 13:58:47 -0700 Subject: [PATCH] Add after test class clean up to clear all Spring, Pivotal GemFire and Apache Geode System properties. --- .../integration/IntegrationTestsSupport.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/spring-test-data-geode/src/main/java/org/springframework/data/gemfire/tests/integration/IntegrationTestsSupport.java b/spring-test-data-geode/src/main/java/org/springframework/data/gemfire/tests/integration/IntegrationTestsSupport.java index c7982cb..cd9cd8a 100644 --- a/spring-test-data-geode/src/main/java/org/springframework/data/gemfire/tests/integration/IntegrationTestsSupport.java +++ b/spring-test-data-geode/src/main/java/org/springframework/data/gemfire/tests/integration/IntegrationTestsSupport.java @@ -20,6 +20,7 @@ import java.util.List; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Predicate; import java.util.stream.Collectors; import org.apache.geode.cache.CacheClosedException; @@ -48,11 +49,25 @@ public abstract class IntegrationTestsSupport { protected static final String GEMFIRE_LOG_LEVEL_PROPERTY = "spring.data.gemfire.log.level"; protected static final String TEST_GEMFIRE_LOG_LEVEL = "error"; + private static final Predicate GEMFIRE_DOT_SYSTEM_PROPERTY_NAME_PREDICATE = + propertyName -> String.valueOf(propertyName).toLowerCase().startsWith("gemfire"); + + private static final Predicate GEODE_DOT_SYSTEM_PROPERTY_NAME_PREDICATE = + propertyName -> String.valueOf(propertyName).toLowerCase().startsWith("geode"); + + private static final Predicate SPRING_DOT_SYSTEM_PROPERTY_NAME_PREDICATE = + propertyName -> String.valueOf(propertyName).toLowerCase().startsWith("spring"); + + private static final Predicate ALL_SYSTEM_PROPERTIES_NAME_PREDICATE = + GEMFIRE_DOT_SYSTEM_PROPERTY_NAME_PREDICATE + .or(GEODE_DOT_SYSTEM_PROPERTY_NAME_PREDICATE) + .or(SPRING_DOT_SYSTEM_PROPERTY_NAME_PREDICATE); + @BeforeClass - public static void clearAllSpringDotPrefixedSystemProperties() { + public static void clearAllSpringGeodeGemFireDotPrefixedSystemProperties() { List springSystemProperties = System.getProperties().stringPropertyNames().stream() - .filter(it -> it.toLowerCase().startsWith("spring")) + .filter(ALL_SYSTEM_PROPERTIES_NAME_PREDICATE) .collect(Collectors.toList()); springSystemProperties.forEach(System::clearProperty);