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)) {