diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogInitializer.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogInitializer.java index 56b11ade0..43b2b9514 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogInitializer.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogInitializer.java @@ -40,7 +40,6 @@ import org.springframework.context.support.GenericApplicationContext; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.format.support.DefaultFormattingConversionService; import org.springframework.util.Assert; -import org.springframework.util.ClassUtils; /** * @author Dave Syer @@ -122,7 +121,7 @@ public class ContextFunctionCatalogInitializer } if (ClassUtils.isPresent("com.google.gson.Gson", null) - && !"gson".equals(context.getEnvironment().getProperty( + && "gson".equals(context.getEnvironment().getProperty( ContextFunctionCatalogAutoConfiguration.PREFERRED_MAPPER_PROPERTY, "gson"))) { if (context.getBeanFactory().getBeanNamesForType(Gson.class, false, false).length == 0) { @@ -213,4 +212,26 @@ public class ContextFunctionCatalogInitializer } } + + // https://jira.spring.io/browse/SPR-17333 + static class ClassUtils { + + public static boolean isPresent(String string, ClassLoader classLoader) { + if (classLoader==null) { + classLoader = ClassUtils.class.getClassLoader(); + } + try { + return Class.forName(string, false, classLoader) != null; + } + catch (Throwable e) { + try { + return Class.forName(string) != null; + } + catch (Throwable t) { + return false; + } + } + } + + } }