Gradle version from 1.6-rc-1 > 1.6. Some cosmetic changes in build file.
First pass at objectifying operations
First pass at objectifying operations
First pass at objectifying operations
First pass at objectifying the async operations
Refactored MongoConnection to create two sub-interfaces: MongoSyncConnection and MongoAsyncConnection.  And using those everywhere else.
Collapsed synchronous and asynchronous gateway classes into synchronous and asynchronous connection classes,
Adding execute methods in synchronous operations that take a MongoServerBinding
MongoConnector is dead, long live MongoServerBinding
Closing pinned binding when unpinned
Fixed variable names to reflect new class names.
Refactored code so that buffer pool is required in less places
Removed DBCursor.testLargeBatch test, as DBCursor is not responsible for batching any more (MongoCursor handles it all).
Shorten sleep time
Completed MongoQueryCursorTest, removed redundant slow DBCursor test.
Combined  DefaultMongoGateway with DefaultMongoSyncConnection.
Introduced Pool interface, of which there are now two implementations: SimplePool and DefaultMongoConnectionPool.  Moved responsibility for connection pool management out of MongoSyncConnection and into a private inner class of DefaultMongoConnectionPool.  This class, called PooledMongoSyncConnection, implements MongoSyncConnection and wraps the underlying connection.  An instance is created every time a real connection is taken from the pool, and it wraps that instance.  When it's closed, it returns the real connection pack to the pool.  It also marks itself as closed, which ensures that it can no longer be used after it's returned to the pool.  Nice and safe.
checkstyle!
Introduced AuthenticationMongoSyncConnection, which is responsible for authenticating a wrapped connection.  So the raw connection no longer needs to worry about it.
Made field volatile for thread safety.