- What's New
- Upgrading to 3.0
Upgrading to 3.0
The 3.0 release is incompatible with the 2.x release series. However, where possible, the 2.13.0 driver has deprecated classes or methods that have been removed in 3.0.
Before upgrading to 3.0, compile against 2.13.0 with deprecation warnings enabled and remove use of any deprecated methods or classes.
System Requirements
The minimum JVM is now Java 6: however, specific features require Java 7:
- SSL support requires Java 7 in order to perform host name verification, which is enabled by default. See below and on SSL for details on how to disable host name verification.
- The asynchronous API requires Java 7, as by default it relies on
AsynchronousSocketChannelfor its implementation. See Async for details on configuring the driver to use Netty instead.
Incompatibilities
The following lists the most significant backwards-breaking changes, along with the recommended solutions.
General
The driver now enables host name verification by default for SSL connections. If you are knowingly using an invalid certificate, or are
using Java 6 (see above), set the
sslInvalidHostNameAllowed
property to true.
MongoClientOptions
Providing little practical value,
the autoConnectRetry and
maxAutoConnectRetryTime
properties in
MongoClientOptions have been removed from the Java driver to be consistent with other
MongoDB-supported drivers .
MongoClient
The MongoClient (and
ServerAddress) constructors no longer throw
UnknownHostException: This breaks source but not binary
compatibility, so re-compilation with 3.0 will only succeed after removing any reference to this exception in catch blocks or method
throws declarations.
DB
The requestStart and
requestDone methods in
DB have been removed: These methods have been removed in accordance with the
server selection specification.
The authenticate method in
DB has been replaced with
MongoClient constructors that
take MongoCredential instances.
DBCollection
The ensureIndex methods in
DBCollection have been removed:
replace with the corresponding
createIndex method.
WriteResult
The getLastError method in
WriteResult has been removed: this method does not work reliably in
the 2.x series and there is no way to make work reliably, so it has been removed. Replace with use of an acknowledged
WriteConcern when executing the write operation.
DBRef
The fetch method in
DBRef has been removed: use the
findOne method instead.