From 7b791d282565e6eabb9cf49c652a3499ce1e100a Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Sat, 8 Aug 2015 10:51:09 +0200 Subject: [PATCH] DATACMNS-748 - Fixed Spring 4.2 detection in QueryExecutionConverters. Replaced the unreliable usage of SpringVersion.getVersion() with a dedicated lookup for a type only present in Spring 4.2. --- .../data/repository/util/QueryExecutionConverters.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java b/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java index 2691c8ece..664429995 100644 --- a/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java +++ b/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java @@ -21,13 +21,11 @@ import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Future; -import org.springframework.core.SpringVersion; import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.TypeDescriptor; import org.springframework.core.convert.converter.Converter; import org.springframework.core.convert.converter.GenericConverter; import org.springframework.core.convert.support.ConfigurableConversionService; -import org.springframework.data.util.Version; import org.springframework.scheduling.annotation.AsyncResult; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; @@ -44,8 +42,9 @@ import com.google.common.base.Optional; */ public abstract class QueryExecutionConverters { - private static final Version SPRING_VERSION = Version.parse(SpringVersion.getVersion()); - private static final Version FOUR_DOT_TWO = new Version(4, 2); + private static final boolean SPRING_4_2_PRESENT = ClassUtils.isPresent( + "org.springframework.core.annotation.AnnotationConfigurationException", + QueryExecutionConverters.class.getClassLoader()); private static final boolean GUAVA_PRESENT = ClassUtils.isPresent("com.google.common.base.Optional", QueryExecutionConverters.class.getClassLoader()); @@ -67,7 +66,7 @@ public abstract class QueryExecutionConverters { WRAPPER_TYPES.add(NullableWrapperToJdk8OptionalConverter.getWrapperType()); } - if (JDK_8_PRESENT && SPRING_VERSION.isGreaterThanOrEqualTo(FOUR_DOT_TWO)) { + if (JDK_8_PRESENT && SPRING_4_2_PRESENT) { WRAPPER_TYPES.add(NullableWrapperToCompletableFutureConverter.getWrapperType()); } }