diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/util/MongoClientVersion.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/util/MongoClientVersion.java index 991a7292fd..8d45dcaea6 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/util/MongoClientVersion.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/util/MongoClientVersion.java @@ -27,6 +27,7 @@ * * @author Christoph Strobl * @author Mark Paluch + * @author Vladimir Vishnevskii * @since 1.7 */ public class MongoClientVersion { @@ -96,7 +97,7 @@ private static Version getVersionFromPackage(ClassLoader classLoader) { if (ClassUtils.isPresent("com.mongodb.internal.build.MongoDriverVersion", classLoader)) { try { - return Version.parse(MongoDriverVersion.VERSION); + return Version.parse(loadVersionFromMongoDriverVersion()); } catch (IllegalArgumentException exception) { // well not much we can do, right? } @@ -104,6 +105,12 @@ private static Version getVersionFromPackage(ClassLoader classLoader) { return null; } + @Nullable + private static String loadVersionFromMongoDriverVersion() { + Field versionField = ReflectionUtils.findField(MongoDriverVersion.class, "VERSION"); + return (String) ReflectionUtils.getField(versionField, null); + } + private static Version guessDriverVersionFromClassPath(ClassLoader classLoader) { if (ClassUtils.isPresent("com.mongodb.internal.connection.StreamFactoryFactory", classLoader)) {