Skip to content

Releases: mongodb/mongo-java-driver

Java Driver 5.0.1 (Apr 3, 2024)

03 Apr 20:13
Compare
Choose a tag to compare

What's Changed

  • Fix ClusterFixture#hasEncryptionTestsEnabled to correctly detect env … by @jyemin in #1343
  • Use InetAddressResolverProvider and add tests by @stIncMale in #1354
  • A fix to expand the bounds for distinct and MongoIterable#map, allowing for nullable types in those scenarios in Kotlin by @rozza in #1352
  • A fix converting Bson to BsonDocument for hint by @jyemin in #1335
  • Don't gossip cluster time from monitoring connections by @jyemin in #1276
  • A fix to support discriminators not being the first field when decoding in Kotlin by @rozza in #1324

Full Changelog: r5.0.0...r5.0.1

Java Driver 4.11.2 (Apr 3, 2024)

03 Apr 20:04
Compare
Choose a tag to compare

What's Changed

  • Backport a fix of 'Add explicit automatic module name configuration' by @vbabanin in #1236
  • Backport of an improvement 'Update logger name to align with naming conventions' by @vbabanin in #1237
  • A fix to expand the bounds for distinct and MongoIterable#map, allowing for nullable types in those scenarios by @rozza in #1352
  • A fix converting Bson to BsonDocument for hint by @jyemin in #1335
  • A fix to support discriminators not being the first field when decoding in Kotlin by @rozza in #1324
  • A way to reclaim native memory quicker when using ZlibCompressor by @raelg in #1285
  • Don't gossip cluster time from monitoring connections by @jyemin in #1276

Full Changelog: r4.11.1...r4.11.2

Java Driver 5.0.0 (Mar 1, 2024)

01 Mar 16:57
Compare
Choose a tag to compare

The MongoDB JVM team is pleased to announce version 5.0.0 of the MongoDB Java Driver!

Release announcement: https://www.mongodb.com/community/forums/t/mongodb-java-driver-5-0-is-released/268913

What's Changed

  • [JAVA-5203] Support stored nulls for non-primitive fields in Java records by @bulbfreeman in #1223
  • Add explicit automatic module name configuration. by @vbabanin in #1232
  • Update logger name to align with naming conventions. by @vbabanin in #1233
  • Enable container and Kubernetes awareness for improved telemetry. by @vbabanin in #1235
  • Update DatabaseTestCase to Junit 5 by @rozza in #1238
  • Preserve error code, code name, and error labels when redacting command monitoring/logging by @stIncMale in #1225
  • Add server selection log messages by @stIncMale in #1221
  • Remove write and read concern from Atlas Search Index commands. by @vbabanin in #1241
  • BatchCursor refactorings by @rozza in #1246
  • Merge 5.0 breaking changes into the main line of development by @jyemin in #1268
  • ClusterSettings does not compute ClusterConnectionMode consistently by @stIncMale in #1273
  • Install legacy shell by @jyemin in #1272
  • Pull mongohouse image from ADL ECR repo by @jyemin in #1274
  • Remove deprecated methods in WriteConcernError class by @jyemin in #1275
  • Support authorizedCollections option for listCollections helpers by @stIncMale in #1270
  • Improve BsonNumber support for Decimal128 by @jyemin in #1283
  • Accept long instead of int in SocketSettings.Builder.connectTimeout/readTimeout by @stIncMale in #1279
  • Remove Filters.eqFull by @stIncMale in #1292
  • Don't gossip cluster time from monitoring connections by @jyemin in #1276
  • Expose Observable[Unit] instead of Observable[Void] by @stIncMale in #1282
  • Make ConnectionId.serverValue/localValue of the Long/long type by @stIncMale in #1280
  • Account the time to deliver connection pool events as part of the reported duration by @stIncMale in #1290
  • Fix onErrorDropped logged message (#1281) by @rozza in #1291
  • Reclaim native memory quicker when using ZlibCompressor by @raelg in #1285
  • Handle kotlin / JVM erasure of types by @rozza in #1295
  • Simplify customization of bson-kotlinx by @rozza in #1293
  • Refactor FaaS support in ClientMetadataHelper by @jyemin in #1300
  • Do minor improvements to method docs in ClusterSettings by @stIncMale in #1304
  • Add async API (2) by @katcharov in #1258
  • Update Atlas search spec tests by @jyemin in #1315
  • JAVA-5311 (take two) by @jyemin in #1314

New Contributors

Full Changelog: r4.11.0...r5.0.0

Java Driver 4.11.1 (Nov 7, 2023)

20 Feb 22:51
Compare
Choose a tag to compare

What's Changed

  • Backport a fix of 'Add explicit automatic module name configuration' by @vbabanin in #1236
  • Backport of an improvement 'Update logger name to align with naming conventions' by @vbabanin in #1237

Full Changelog: r4.11.0...r4.11.1

Java Driver 4.11.0 (Oct 11, 2023)

07 Nov 15:24
Compare
Choose a tag to compare

Release announcement: https://www.mongodb.com/community/forums/t/mongodb-java-driver-4-11-released/248657

What's Changed

  • Build: Ensure spotless checks are run by @rozza in #1146
  • Reorganize NettyBufferProvider, NettyByteBuf and improve docs by @stIncMale in #1149
  • Upgrade Netty from 4.1.84.Final to 4.1.87.Final by @stIncMale in #1150
  • Add path parameter to javadoc of median method. by @vbabanin in #1153
  • Collect FaaS info during handshake by @katcharov in #1156
  • Do various doc and other minor improvements by @stIncMale in #1157
  • InternalStreamConnection must release buffers obtained via ByteBufferBsonOutput.getByteBuffers by @stIncMale in #1160
  • Override Iterator#forEachRemaining in MongoCursor by @jyemin in #1161
  • Add support for managing Atlas search indexes. by @vbabanin in #1158
  • Allow tls=false override with mongodb+srv protocol by @jyemin in #1165
  • Support $changeStreamSplitLargeEvent by @katcharov in #1159
  • Reorganized Async & Sync OperationHelpers by @rozza in #1169
  • Evergreen: Updated static checks by @rozza in #1172
  • Add SplitEvent constructor docs by @katcharov in #1174
  • Deprecate currentOp/collStats commands by @stIncMale in #1175
  • Add Scala test methods to SyncMongoCollection. by @vbabanin in #1167
  • Revert "Add Scala test methods to SyncMongoCollection" by @vbabanin in #1176
  • Make the ClientSession close method thread-safe by @jyemin in #1179
  • Add TimePoint and use it in Timeout by @stIncMale in #1164
  • Add durations to connection pool events by @stIncMale in #1166
  • Get rid of all synchronized blocks and methods in production code by @stIncMale in #1178
  • Add end-to-end Search Index Management Helper Methods Tests by @vbabanin in #1184
  • Remove incorrect test-skipping logic by @jyemin in #1186
  • Deprecate SocketAddress-related methods by @jyemin in #1188
  • Handle Socket IO interruptibility by @stIncMale in #1189
  • Introduce SOCKS5 proxy support by @vbabanin in #1180
  • Change package import path. by @vbabanin in #1193
  • Improve performance monitoring by @vbabanin in #1190
  • Handle new explain output in tests by @jyemin in #1191
  • Fix how InterruptedExceptions are handled by @stIncMale in #1192
  • Scale double values to 4 decimal digits in geoNear test by @jyemin in #1197
  • Deprecate Stream-related API by @jyemin in #1195
  • Run changeStreamSplitLargeEvent test on >= 6.0.9 by @katcharov in #1196
  • Add FaaS (AWS Lambda) test app by @katcharov in #1183
  • Introduce builder for $vectorSearch aggregation stage by @stIncMale in #1200
  • Fixed JAVA-5183 by @dryabtse in #1207
  • Handle interrupts: Socket.connect is interruptible in a virtual thread by @stIncMale in #1203
  • Replace uninterruptible Lock.lock with Lock.lockInterruptibly by @stIncMale in #1206
  • Handle interrupts: synchronous KeyManagementService uses Socket IO (open, read, write), which is interruptible in a virtual thread by @stIncMale in #1204
  • fix: include Kotlin sources into the sources jar by @monosoul in #1210
  • Kotlin. Support stored nulls for nullable fields by @rozza in #1212
  • Refactor transaction server pinning by @jyemin in #1211
  • Fix the ClusterListener, ServerListener, ServerMonitorListener API docs relevant to thread-safety by @stIncMale in #1208
  • Add databaseName to command succeeded/failed events/logs by @jyemin in #1213
  • $lookup "from" must be null when using $documents pipeline by @katcharov in #1218
  • Update Javadoc for Projections. by @vbabanin in #1216
  • Use Lock.lockInterruptibly only where it may actually be needed by @stIncMale in #1220
  • Add server detection based on host names during MongoClient construct… by @vbabanin in #1214

New Contributors

Full Changelog: r4.10.0...r4.11.0

Java Driver 4.10.2 (July 11, 2023)

11 Jul 11:05
Compare
Choose a tag to compare

Java Driver 4.10.1 (June 23, 2023)

11 Jul 11:05
Compare
Choose a tag to compare

Release announcement: https://www.mongodb.com/community/forums/t/mongodb-java-driver-4-10-released/234658

What's Changed

  • Kotlinx codec provider limit to data, value or sealed classes. by @rozza in #1147
  • Scala: Fix tests by @rozza in #1151
  • Build: Make bson-kotlin and bson-kotlinx optional by @rozza in #1148
  • Kotlin: Improve KotlinSerializerCodec by @rozza in #1152

Full Changelog: r4.10.0...r4.10.1

Java Driver 4.10.0 (June 22, 2023)

11 Jul 11:04
Compare
Choose a tag to compare

Release announcement: https://www.mongodb.com/community/forums/t/mongodb-java-driver-4-10-released/234658

What's Changed

  • Add RewrapManyDataKeyProseTest by @katcharov in #1083
  • Introduce BsonUtil.mutableDeepCopy by @stIncMale in #1081
  • Run CSFLE unified and legacy tests with mongocryptd by @stIncMale in #1085
  • Update mongodb-driver-core POM description by @jyemin in #1088
  • Update README.md by @ashni-mongodb in #1089
  • Fix documentation of ClientEncryptionSettings#keyVaultMongoClientSett… by @jyemin in #1087
  • Do not perform server selection to determine sessions support by @jyemin in #1092
  • Work around create failure in unified tests with retry by @jyemin in #1094
  • Update README.md by @ashni-mongodb in #1095
  • Add OperationContext to sync path by @jyemin in #1097
  • Add operationId to command events by @jyemin in #1101
  • fix: ensure no NPE is thrown with SerializedFluxSink by @imclem in #1096
  • Initial driver-kotlin-coroutine implementation by @rozza in #1100
  • Reload expansions before deleting Azure resources by @kevinAlbs in #1106
  • Fix typo in javadocs for InsertOneResult by @GeorgiChochov in #1086
  • Support per-MongoClient DNS lookup configuration by @jyemin in #1104
  • Fix UnixServerAddress interaction with InetAddressResolver by @jyemin in #1109
  • Update payloads to new Queryable Encryption protocol by @jyemin in #1103
  • Fix duplicate retry log messages by @stIncMale in #1108
  • Add operation id and elapsed time to connection check out/in events by @jyemin in #1105
  • Stop creating the ECC collection in v2 of queryable encryption by @stIncMale in #1110
  • Add operation identifier to retry logs. by @vbabanin in #1112
  • JAVA-4965: upgrade to zstd-jni v1.5.5-2 by @ispringer in #1118
  • Implement prose tests checking that neither mongocryptd nor its client are created when they are not supposed to be by @stIncMale in #1113
  • Add structured log messages to CMAP. by @vbabanin in #1114
  • Ignore connection-logging tests. by @vbabanin in #1127
  • Refactor tests, credential cache by @katcharov in #1102
  • Test in CI against MongoDB 7.0 by @jyemin in #1124
  • Cleanup documentation referring to removed property by @kdombeck in #1125
  • Test against standalones with auth/ssl enabled by @jyemin in #1129
  • Remove IP literal check for InetAddressResolver by @jyemin in #1120
  • Refactoring in preparation for JAVA-4917 by @jyemin in #1123
  • Deprecate Parameterizable, introduce default CodecProvider.get(Class<T>, List<Type>, CodecRegistry) instead by @stIncMale in #1115
  • JAVA-4966 : Fix Macro for sealed trait by @kistria in #1122
  • Remove specialization-related conditional logic from PojoCodecImpl by introducing LazyPropertyModelCodec.NeedsSpecializationCodec by @stIncMale in #1136
  • Add second case for the RewrapManyDataKeyOpts prose test. by @vbabanin in #1138
  • Fix MongoClient leak in auto-encryption by @jyemin in #1142
  • Kotlin coroutine update. by @rozza in #1135
  • ByteBufBsonDocument remains a ByteBuf by @jyemin in #1119
  • Improve Time-Series Bucketing Scalability by @vbabanin in #1137
  • Replace @Evolving with @Sealed where appropriate by @stIncMale in #1141
  • Kotlinx serialization decoding optional ObjectId / BsonValues fails to hydrate properly by @rozza in #1143
  • Wrap string in literal if it contains $ by @katcharov in #1144
  • Update README.md by @ashni-mongodb in #1145
  • Add builders for percentile and median accumulators/window functions by @vbabanin in #1139

New Contributors

Full Changelog: r4.9.0...r4.10.0

Java Driver 4.9.0 (February 10, 2023)

13 Feb 15:14
Compare
Choose a tag to compare

Release announcement: https://www.mongodb.com/community/forums/t/mongodb-java-driver-4-9-0-released/213117

What's Changed

  • Do not retry a read operation when in a transaction by @jyemin in #982
  • Re-enable ClientSideEncryptionExplicitEncryptionTest for serverless by @jyemin in #983
  • Improve error message for invalid field names by @jyemin in #985
  • Replace synchronized with ReentrantLock by @jyemin in #984
  • Add AWS Lambda example by @jyemin in #986
  • Support attached service accounts for GCP KMS by @jyemin in #987
  • Replace existing SDAM integration spec tests with unified tests by @jyemin in #989
  • Update project dependencies to latest available by @jyemin in #990
  • Update netty dependencies to use the netty-bom by @rozza in #992
  • Fix double connection release on error for drop and create collection… by @jyemin in #993
  • Add disambiguatedPaths field to ChangeStreamDocument by @jyemin in #991
  • Support SuppressWarnings annotation for Checkstyle by @jyemin in #995
  • Write empty prepare_mongodb_aws so no auth environment variables are set by @jyemin in #994
  • Fix minor typos in java comments(javadoc) and all that minor typos by @heli-os in #996
  • change the log message from INFO to DEBUG by @heli-os in #999
  • Add $unset and $geoNear stages by @katcharov in #998
  • Remove support for pre-3.6 server releases by @jyemin in #988
  • fix typo in ConnectionCheckedOutEvent by @youzipi in #1001
  • Support List and Map<String, T> components in Java records by @jyemin in #1002
  • Add missing condition for whether to sleep in server monitor by @jyemin in #1006
  • Fix check for whether crypt shared lib is available by @jyemin in #1004
  • Support encoding/decoding of parameterized records by @jyemin in #1005
  • Add server address and cluster id to events' toString output by @jyemin in #1008
  • Update InitialDnsSeedlistDiscoveryTest by @jyemin in #1009
  • Make AbstractMapCodec package-access by @stIncMale in #1012
  • Annotate com.mongodb.reactivestreams.client package as NonNullApi by @jyemin in #1015
  • Prioritize electionId over setVersion on 6.0+ servers by @jyemin in #1010
  • Simplify OverridableUuidRepresentationCodecRegistry by @jyemin in #1014
  • Propagate the original error for write errors labeled NoWritesPerformed by @stIncMale in #1013
  • Support recursive types in parameterized records by @jyemin in #1007
  • Use wrapped CodecRegistry for MongoClient#watch by @jyemin in #1016
  • Simplify CodecCache by @stIncMale in #1018
  • Use AWS SDK v2/v1 if available for AWS credential fetching by @jyemin in #1017
  • JAVA-4789: Make bson.record.codec module optional for OSGi by @Joscorbe in #1024
  • Document that CodecRegistry instances configured by the application a… by @jyemin in #1020
  • Support decoding to Collection and Map subclasses by @jyemin in #1019
  • Clean up internal packages by @jyemin in #1026
  • Add AsyncOperations to match SyncOperations by @jyemin in #1027
  • Support the Azure VM-assigned managed identity for automatic KMS credentials by @jyemin in #1035
  • Cache Azure credential obtained from environment by @jyemin in #1038
  • Update project dependencies by @jyemin in #1041
  • Update encryption terminology by @jyemin in #1039
  • Update MongoQueryException to extend MongoCommandException by @jyemin in #1040
  • Encapsulate ChangeStreamOperation by @jyemin in #1029
  • Encapsulate operations used by MongoDatabase by @jyemin in #1028
  • Move legacy write operations into driver-legacy by @jyemin in #1030
  • Sync spec tests by @jyemin in #1046
  • Sync spec tests by @jyemin in #1048
  • Fix explicit decryption code in tour by @jyemin in #1047
  • Fix MixedBulkWriteOperation such that it does not leak MongoWriteConcernWithResponseException to users by @stIncMale in #1051
  • Make more packages NotNullApi by default by @jyemin in #1056
  • Move check for previous value of "closed" outside of lambda by @jyemin in #1058
  • Improve logging in server monitor by @jyemin in #1060
  • Add $documents stage by @katcharov in #1061
  • [JAVA-4816] perf: improving performance of ObjectId parseHexString() by @eonwhite in #1034
  • Add integration test for AWS web identity credential fetching by @jyemin in #1063
  • Sync spec tests by @jyemin in #1064
  • Add OSGi package imports for AWS SDK v1 and v2 by @jyemin in #1065
  • Allow null elements in Document#getList by @jyemin in #1066
  • PojoCodec BsonId error message by @rozza in #1071
  • Add noauth/nossl variants for replica sets and sharded clusters by @jyemin in #1074
  • Expressions by @katcharov in #1032
  • Added range index support for queryable encryption by @rozza in #1069
  • Support configuration of max document length for command logging by @jyemin in #1072
  • Update Javadoc of MongoCredential::getSource by @Thihup in #1077
  • Ensure BatchCursorFlux does not drop an error by @rozza in #1075
  • Initialize ObjectId, ClientMetadataHelper at runtime, GraalVM by @katcharov in #1078
  • Use default compression level for zstd by @katcharov in #1080
  • Add the ClientEncryption.createEncryptedCollection helper method by @stIncMale in #1079
  • Fix the "database name is too long" error that happens when running against Serverless by @stIncMale in #1082

New Contributors

Full Changelog: r4.8.0...r4.9.0

Java Driver 3.12.12 (February 7, 2023)

07 Feb 11:43
Compare
Choose a tag to compare

pom.xml description updates and clarification.

What's Changed

  • Update the legacy uber packages pom.xml by @rozza in #1076

Full Changelog: r3.12.11...r3.12.12