DefaultAsyncConnection now report an exception if reply message length exceeds maximum.
DefaultAsyncConnectionPool now discards closed connections from the pool
Starting to fix the package structure.
org.mongodb.connection has the following public abstractions: Connection, Server, Cluster, Session, and package-scoped implementations
org.mongodb.operations has concrete classes for each operation: Insert, Update, Remove, Replace, Query, GetMore, Command, beans to represent the operation contents and their responses, and messages that encode and decode each type of operation
Introduced ServerPreference interface for use by Cluster.getServer(ServerPreference), replacing Cluster.getServer(ReadPreference), to avoid having the core depend on ReadPreference (which now implements ServerPreference).