From 84442946bd23c3825074f61dab77e7551229b5d9 Mon Sep 17 00:00:00 2001 From: John Blum Date: Thu, 16 Sep 2021 22:52:42 -0700 Subject: [PATCH] Unregister all Functions from Apache Geode's FunctionService after test class/suite execution. --- .../integration/IntegrationTestsSupport.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 96692aa..f018bff 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 @@ -34,6 +34,7 @@ import java.util.WeakHashMap; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -43,6 +44,7 @@ import org.junit.Before; import org.apache.geode.DataSerializer; import org.apache.geode.cache.CacheClosedException; import org.apache.geode.cache.GemFireCache; +import org.apache.geode.cache.execute.FunctionService; import org.apache.geode.distributed.Locator; import org.apache.geode.internal.InternalDataSerializer; import org.apache.geode.internal.cache.CacheLifecycleListener; @@ -365,6 +367,20 @@ public abstract class IntegrationTestsSupport { .forEach(InternalDataSerializer::unregister); } + /** + * Unregisters all Apache Geode {@link Function Functions} from Apache Geode's {@link FunctionService} + * after test (class/suite) execution. + * + * @see org.apache.geode.cache.execute.Function + * @see org.apache.geode.cache.execute.FunctionService + */ + @AfterClass + public static void unregisterFunctions() { + + CollectionUtils.nullSafeMap(FunctionService.getRegisteredFunctions()) + .forEach((functionId, function) -> FunctionService.unregisterFunction(functionId)); + } + /** * Configures (eanbles) Apache Geode {@literal OQL} query debugging before test (case/method) execution. */