From 8ab157de7676d02e97ba5e06cd3fd6d848fecd2d Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 30 Aug 2023 14:52:48 +0200 Subject: [PATCH] GH-1066 Add class caching for FunctionClassUtils in serverless-web Resolves #1066 --- .../function/serverless/web/FunctionClassUtils.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/FunctionClassUtils.java b/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/FunctionClassUtils.java index 544d350de..44d6ef454 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/FunctionClassUtils.java +++ b/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/FunctionClassUtils.java @@ -46,6 +46,8 @@ public final class FunctionClassUtils { private static Log logger = LogFactory.getLog(FunctionClassUtils.class); + private static Class MAIN_CLASS; + private FunctionClassUtils() { } @@ -59,8 +61,11 @@ public final class FunctionClassUtils { * @return instance of Class which represent the start class of the application. */ public static Class getStartClass() { - ClassLoader classLoader = FunctionClassUtils.class.getClassLoader(); - return getStartClass(classLoader); + if (MAIN_CLASS == null) { + ClassLoader classLoader = FunctionClassUtils.class.getClassLoader(); + MAIN_CLASS = getStartClass(classLoader); + } + return MAIN_CLASS; } static Class getStartClass(ClassLoader classLoader) {