Skip to content

Commit fce49df

Browse files
committed
Disable tests of legacy wire protocol on 5.1+ servers
In 5.1+, the legacy wire protocol is no longer supported. This includes * OP_QUERY * OP_INSERT * OP_UPDATE * OP_DELETE * OP_KILL_CURSORS Although none of these wire protocol messsage will be used in 5.1+ under normal usage, there are integration tests in driver-core that test them directly, and those have been disabled or modified so that they will work. JAVA-4228
1 parent 043a9c6 commit fce49df

7 files changed

+45
-12
lines changed

driver-core/src/test/functional/com/mongodb/internal/connection/GetMoreProtocolCommandEventSpecification.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,18 @@ import org.bson.BsonInt64
3333
import org.bson.BsonString
3434
import org.bson.Document
3535
import org.bson.codecs.BsonDocumentCodec
36+
import spock.lang.IgnoreIf
3637
import spock.lang.Shared
3738

3839
import static com.mongodb.ClusterFixture.getCredentialWithCache
3940
import static com.mongodb.ClusterFixture.getPrimary
4041
import static com.mongodb.ClusterFixture.getServerApi
4142
import static com.mongodb.ClusterFixture.getSslSettings
43+
import static com.mongodb.ClusterFixture.serverVersionGreaterThan
4244
import static com.mongodb.connection.ClusterConnectionMode.SINGLE
4345
import static com.mongodb.internal.connection.ProtocolTestHelper.execute
4446

47+
@IgnoreIf({ serverVersionGreaterThan('5.0') })
4548
class GetMoreProtocolCommandEventSpecification extends OperationFunctionalSpecification {
4649
@Shared
4750
InternalStreamConnection connection

driver-core/src/test/functional/com/mongodb/internal/connection/KillCursorProtocolCommandEventSpecification.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,18 @@ import org.bson.BsonInt64
3030
import org.bson.BsonString
3131
import org.bson.Document
3232
import org.bson.codecs.BsonDocumentCodec
33+
import spock.lang.IgnoreIf
3334
import spock.lang.Shared
3435

3536
import static com.mongodb.ClusterFixture.getCredentialWithCache
3637
import static com.mongodb.ClusterFixture.getPrimary
3738
import static com.mongodb.ClusterFixture.getServerApi
3839
import static com.mongodb.ClusterFixture.getSslSettings
40+
import static com.mongodb.ClusterFixture.serverVersionGreaterThan
3941
import static com.mongodb.connection.ClusterConnectionMode.SINGLE
4042
import static com.mongodb.internal.connection.ProtocolTestHelper.execute
4143

44+
@IgnoreIf({ serverVersionGreaterThan('5.0') })
4245
class KillCursorProtocolCommandEventSpecification extends OperationFunctionalSpecification {
4346
@Shared
4447
InternalStreamConnection connection;

driver-core/src/test/functional/com/mongodb/internal/connection/QueryProtocolCommandEventSpecification.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,12 @@ import static com.mongodb.ClusterFixture.getCredentialWithCache
4343
import static com.mongodb.ClusterFixture.getPrimary
4444
import static com.mongodb.ClusterFixture.getServerApi
4545
import static com.mongodb.ClusterFixture.getSslSettings
46+
import static com.mongodb.ClusterFixture.serverVersionGreaterThan
4647
import static com.mongodb.connection.ClusterConnectionMode.SINGLE
4748
import static com.mongodb.internal.connection.ProtocolTestHelper.execute
4849
import static org.bson.BsonDocument.parse
4950

50-
@IgnoreIf({ getSslSettings().isEnabled() })
51+
@IgnoreIf({ getSslSettings().isEnabled() || serverVersionGreaterThan('5.0') })
5152
class QueryProtocolCommandEventSpecification extends OperationFunctionalSpecification {
5253
@Shared
5354
InternalStreamConnection nettyConnection

driver-core/src/test/functional/com/mongodb/internal/connection/WriteProtocolCommandEventSpecification.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,20 @@ import org.bson.BsonDocument
3333
import org.bson.BsonInt32
3434
import org.bson.BsonString
3535
import org.bson.codecs.BsonDocumentCodec
36+
import spock.lang.IgnoreIf
3637
import spock.lang.Shared
3738

3839
import static com.mongodb.ClusterFixture.getCredentialWithCache
3940
import static com.mongodb.ClusterFixture.getPrimary
4041
import static com.mongodb.ClusterFixture.getServerApi
4142
import static com.mongodb.ClusterFixture.getSslSettings
43+
import static com.mongodb.ClusterFixture.serverVersionGreaterThan
4244
import static com.mongodb.connection.ClusterConnectionMode.SINGLE
4345
import static com.mongodb.internal.bulk.WriteRequest.Type.REPLACE
4446
import static com.mongodb.internal.bulk.WriteRequest.Type.UPDATE
4547
import static com.mongodb.internal.connection.ProtocolTestHelper.execute
4648

49+
@IgnoreIf({ serverVersionGreaterThan('5.0') })
4750
class WriteProtocolCommandEventSpecification extends OperationFunctionalSpecification {
4851
@Shared
4952
InternalStreamConnection connection

driver-core/src/test/functional/com/mongodb/internal/connection/WriteProtocolSpecification.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,18 @@ import org.bson.BsonDocument
2727
import org.bson.BsonInt32
2828
import org.bson.BsonString
2929
import org.bson.codecs.BsonDocumentCodec
30+
import spock.lang.IgnoreIf
3031
import spock.lang.Shared
3132

3233
import static com.mongodb.ClusterFixture.getCredentialWithCache
3334
import static com.mongodb.ClusterFixture.getPrimary
3435
import static com.mongodb.ClusterFixture.getServerApi
3536
import static com.mongodb.ClusterFixture.getSslSettings
37+
import static com.mongodb.ClusterFixture.serverVersionGreaterThan
3638
import static com.mongodb.connection.ClusterConnectionMode.SINGLE
3739
import static com.mongodb.internal.connection.ProtocolTestHelper.execute
3840

41+
@IgnoreIf({ serverVersionGreaterThan('5.0') })
3942
class WriteProtocolSpecification extends OperationFunctionalSpecification {
4043
@Shared
4144
InternalStreamConnection connection;

driver-core/src/test/functional/com/mongodb/internal/operation/AsyncQueryBatchCursorFunctionalSpecification.groovy

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package com.mongodb.internal.operation
1818

19-
2019
import com.mongodb.MongoCursorNotFoundException
2120
import com.mongodb.MongoException
2221
import com.mongodb.MongoTimeoutException
@@ -26,19 +25,23 @@ import com.mongodb.ServerCursor
2625
import com.mongodb.WriteConcern
2726
import com.mongodb.async.FutureResultCallback
2827
import com.mongodb.client.model.CreateCollectionOptions
29-
import com.mongodb.internal.async.SingleResultCallback
3028
import com.mongodb.internal.binding.AsyncConnectionSource
3129
import com.mongodb.internal.binding.AsyncReadBinding
3230
import com.mongodb.internal.connection.AsyncConnection
3331
import com.mongodb.internal.connection.Connection
32+
import com.mongodb.internal.connection.NoOpSessionContext
3433
import com.mongodb.internal.connection.QueryResult
34+
import com.mongodb.internal.validator.NoOpFieldNameValidator
35+
import org.bson.BsonArray
3536
import org.bson.BsonBoolean
3637
import org.bson.BsonDocument
3738
import org.bson.BsonInt32
39+
import org.bson.BsonInt64
3840
import org.bson.BsonNull
3941
import org.bson.BsonString
4042
import org.bson.BsonTimestamp
4143
import org.bson.Document
44+
import org.bson.codecs.BsonDocumentCodec
4245
import org.bson.codecs.DocumentCodec
4346
import spock.lang.IgnoreIf
4447
import util.spock.annotations.Slow
@@ -59,6 +62,7 @@ import static com.mongodb.internal.connection.ServerHelper.waitForRelease
5962
import static com.mongodb.internal.operation.OperationHelper.cursorDocumentToQueryResult
6063
import static com.mongodb.internal.operation.ServerVersionHelper.serverIsAtLeastVersionThreeDotTwo
6164
import static java.util.Arrays.asList
65+
import static java.util.Collections.singletonList
6266
import static java.util.concurrent.TimeUnit.SECONDS
6367
import static org.junit.Assert.assertEquals
6468
import static org.junit.Assert.fail
@@ -367,16 +371,17 @@ class AsyncQueryBatchCursorFunctionalSpecification extends OperationFunctionalSp
367371
when:
368372
cursor = new AsyncQueryBatchCursor<Document>(firstBatch, 0, 2, 0, new DocumentCodec(), connectionSource, connection)
369373

370-
def latch = new CountDownLatch(1)
371374
def connection = getConnection(connectionSource)
372375
def serverCursor = cursor.cursor.get()
373-
connection.killCursorAsync(getNamespace(), asList(serverCursor.id), new SingleResultCallback<Void>() {
374-
@Override
375-
void onResult(final Void result, final Throwable t) {
376-
latch.countDown()
377-
}
378-
})
379-
latch.await()
376+
if (serverVersionLessThan(3, 6)) {
377+
connection.killCursor(getNamespace(), asList(cursor.getServerCursor().id))
378+
} else {
379+
connection.command(getNamespace().databaseName,
380+
new BsonDocument('killCursors', new BsonString(namespace.getCollectionName()))
381+
.append('cursors', new BsonArray(singletonList(new BsonInt64(serverCursor.getId())))),
382+
new NoOpFieldNameValidator(), ReadPreference.primary(),
383+
new BsonDocumentCodec(), new NoOpSessionContext(), null)
384+
}
380385
connection.release()
381386
nextBatch()
382387

driver-core/src/test/functional/com/mongodb/internal/operation/QueryBatchCursorFunctionalSpecification.groovy

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,18 @@ import com.mongodb.WriteConcern
2525
import com.mongodb.client.model.CreateCollectionOptions
2626
import com.mongodb.internal.binding.ConnectionSource
2727
import com.mongodb.internal.connection.Connection
28+
import com.mongodb.internal.connection.NoOpSessionContext
2829
import com.mongodb.internal.connection.QueryResult
30+
import com.mongodb.internal.validator.NoOpFieldNameValidator
31+
import org.bson.BsonArray
2932
import org.bson.BsonBoolean
3033
import org.bson.BsonDocument
3134
import org.bson.BsonInt32
35+
import org.bson.BsonInt64
3236
import org.bson.BsonString
3337
import org.bson.BsonTimestamp
3438
import org.bson.Document
39+
import org.bson.codecs.BsonDocumentCodec
3540
import org.bson.codecs.DocumentCodec
3641
import spock.lang.IgnoreIf
3742
import util.spock.annotations.Slow
@@ -44,9 +49,11 @@ import static com.mongodb.ClusterFixture.getBinding
4449
import static com.mongodb.ClusterFixture.isDiscoverableReplicaSet
4550
import static com.mongodb.ClusterFixture.isSharded
4651
import static com.mongodb.ClusterFixture.serverVersionAtLeast
52+
import static com.mongodb.ClusterFixture.serverVersionLessThan
4753
import static com.mongodb.internal.operation.OperationHelper.cursorDocumentToQueryResult
4854
import static com.mongodb.internal.operation.ServerVersionHelper.serverIsAtLeastVersionThreeDotTwo
4955
import static java.util.Arrays.asList
56+
import static java.util.Collections.singletonList
5057
import static org.junit.Assert.assertEquals
5158
import static org.junit.Assert.fail
5259

@@ -519,7 +526,15 @@ class QueryBatchCursorFunctionalSpecification extends OperationFunctionalSpecifi
519526
cursor = new QueryBatchCursor<Document>(firstBatch, 0, 2, new DocumentCodec(), connectionSource)
520527
def serverCursor = cursor.getServerCursor()
521528
def connection = connectionSource.getConnection()
522-
connection.killCursor(getNamespace(), asList(cursor.getServerCursor().id))
529+
if (serverVersionLessThan(3, 6)) {
530+
connection.killCursor(getNamespace(), asList(cursor.getServerCursor().id))
531+
} else {
532+
connection.command(getNamespace().databaseName,
533+
new BsonDocument('killCursors', new BsonString(namespace.getCollectionName()))
534+
.append('cursors', new BsonArray(singletonList(new BsonInt64(serverCursor.getId())))),
535+
new NoOpFieldNameValidator(), ReadPreference.primary(),
536+
new BsonDocumentCodec(), new NoOpSessionContext(), null)
537+
}
523538
connection.release()
524539
cursor.next()
525540

0 commit comments

Comments
 (0)