3535import com .mongodb .bulk .WriteRequest ;
3636import com .mongodb .client .model .BulkWriteOptions ;
3737import com .mongodb .client .model .CountOptions ;
38+ import com .mongodb .client .model .CreateIndexOptions ;
3839import com .mongodb .client .model .DeleteManyModel ;
3940import com .mongodb .client .model .DeleteOneModel ;
4041import com .mongodb .client .model .DeleteOptions ;
42+ import com .mongodb .client .model .DropIndexOptions ;
4143import com .mongodb .client .model .FindOneAndDeleteOptions ;
4244import com .mongodb .client .model .FindOneAndReplaceOptions ;
4345import com .mongodb .client .model .FindOneAndUpdateOptions ;
@@ -908,19 +910,32 @@ public void onResult(final List<String> result, final Throwable t) {
908910
909911 @ Override
910912 public void createIndexes (final List <IndexModel > indexes , final SingleResultCallback <List <String >> callback ) {
911- executeCreateIndexes (null , indexes , callback );
913+ createIndexes (indexes , new CreateIndexOptions (), callback );
914+ }
915+
916+ @ Override
917+ public void createIndexes (final List <IndexModel > indexes , final CreateIndexOptions createIndexOptions ,
918+ final SingleResultCallback <List <String >> callback ) {
919+ executeCreateIndexes (null , indexes , createIndexOptions , callback );
912920 }
913921
914922 @ Override
915923 public void createIndexes (final ClientSession clientSession , final List <IndexModel > indexes ,
916924 final SingleResultCallback <List <String >> callback ) {
925+ createIndexes (clientSession , indexes , new CreateIndexOptions (), callback );
926+ }
927+
928+ @ Override
929+ public void createIndexes (final ClientSession clientSession , final List <IndexModel > indexes ,
930+ final CreateIndexOptions createIndexOptions , final SingleResultCallback <List <String >> callback ) {
917931 notNull ("clientSession" , clientSession );
918- executeCreateIndexes (clientSession , indexes , callback );
932+ executeCreateIndexes (clientSession , indexes , createIndexOptions , callback );
919933 }
920934
921935 private void executeCreateIndexes (final ClientSession clientSession , final List <IndexModel > indexes ,
922- final SingleResultCallback <List <String >> callback ) {
936+ final CreateIndexOptions createIndexOptions , final SingleResultCallback <List <String >> callback ) {
923937 notNull ("indexes" , indexes );
938+ notNull ("createIndexOptions" , createIndexOptions );
924939
925940 List <IndexRequest > indexRequests = new ArrayList <IndexRequest >(indexes .size ());
926941 for (IndexModel model : indexes ) {
@@ -947,7 +962,8 @@ private void executeCreateIndexes(final ClientSession clientSession, final List<
947962 .partialFilterExpression (toBsonDocument (model .getOptions ().getPartialFilterExpression ()))
948963 .collation (model .getOptions ().getCollation ()));
949964 }
950- final CreateIndexesOperation createIndexesOperation = new CreateIndexesOperation (getNamespace (), indexRequests , writeConcern );
965+ final CreateIndexesOperation createIndexesOperation = new CreateIndexesOperation (getNamespace (), indexRequests , writeConcern )
966+ .maxTime (createIndexOptions .getMaxTime (MILLISECONDS ), MILLISECONDS );
951967 executor .execute (createIndexesOperation , clientSession , new SingleResultCallback <Void >() {
952968 @ Override
953969 public void onResult (final Void result , final Throwable t ) {
@@ -988,43 +1004,79 @@ private <TResult> ListIndexesIterable<TResult> createListIndexesIterable(final C
9881004
9891005 @ Override
9901006 public void dropIndex (final String indexName , final SingleResultCallback <Void > callback ) {
991- executeDropIndex (null , indexName , callback );
1007+ dropIndex (indexName , new DropIndexOptions (), callback );
1008+ }
1009+
1010+ @ Override
1011+ public void dropIndex (final String indexName , final DropIndexOptions dropIndexOptions , final SingleResultCallback <Void > callback ) {
1012+ executeDropIndex (null , indexName , dropIndexOptions , callback );
9921013 }
9931014
9941015 @ Override
9951016 public void dropIndex (final Bson keys , final SingleResultCallback <Void > callback ) {
996- executeDropIndex (null , keys , callback );
1017+ dropIndex (keys , new DropIndexOptions (), callback );
1018+ }
1019+
1020+ @ Override
1021+ public void dropIndex (final Bson keys , final DropIndexOptions dropIndexOptions , final SingleResultCallback <Void > callback ) {
1022+ executeDropIndex (null , keys , dropIndexOptions , callback );
9971023 }
9981024
9991025 @ Override
10001026 public void dropIndex (final ClientSession clientSession , final String indexName , final SingleResultCallback <Void > callback ) {
1027+ dropIndex (clientSession , indexName , new DropIndexOptions (), callback );
1028+ }
1029+
1030+ @ Override
1031+ public void dropIndex (final ClientSession clientSession , final String indexName , final DropIndexOptions dropIndexOptions ,
1032+ final SingleResultCallback <Void > callback ) {
10011033 notNull ("clientSession" , clientSession );
1002- executeDropIndex (clientSession , indexName , callback );
1034+ executeDropIndex (clientSession , indexName , dropIndexOptions , callback );
10031035 }
10041036
10051037 @ Override
10061038 public void dropIndex (final ClientSession clientSession , final Bson keys , final SingleResultCallback <Void > callback ) {
1039+ dropIndex (clientSession , keys , new DropIndexOptions (), callback );
1040+ }
1041+
1042+ @ Override
1043+ public void dropIndex (final ClientSession clientSession , final Bson keys , final DropIndexOptions dropIndexOptions ,
1044+ final SingleResultCallback <Void > callback ) {
10071045 notNull ("clientSession" , clientSession );
1008- executeDropIndex (clientSession , keys , callback );
1046+ executeDropIndex (clientSession , keys , dropIndexOptions , callback );
10091047 }
10101048
10111049 @ Override
10121050 public void dropIndexes (final SingleResultCallback <Void > callback ) {
1013- dropIndex ("*" , callback );
1051+ dropIndexes (new DropIndexOptions (), callback );
1052+ }
1053+
1054+ @ Override
1055+ public void dropIndexes (final DropIndexOptions dropIndexOptions , final SingleResultCallback <Void > callback ) {
1056+ dropIndex ("*" , dropIndexOptions , callback );
10141057 }
10151058
10161059 @ Override
10171060 public void dropIndexes (final ClientSession clientSession , final SingleResultCallback <Void > callback ) {
1018- dropIndex (clientSession , "*" , callback );
1061+ dropIndexes (clientSession , new DropIndexOptions (), callback );
1062+ }
1063+
1064+ @ Override
1065+ public void dropIndexes (final ClientSession clientSession , final DropIndexOptions dropIndexOptions ,
1066+ final SingleResultCallback <Void > callback ) {
1067+ dropIndex (clientSession , "*" , dropIndexOptions , callback );
10191068 }
10201069
1021- private void executeDropIndex (final ClientSession clientSession , final Bson keys , final SingleResultCallback <Void > callback ) {
1022- executor .execute (new DropIndexOperation (namespace , keys .toBsonDocument (BsonDocument .class , codecRegistry ), writeConcern ),
1023- clientSession , callback );
1070+ private void executeDropIndex (final ClientSession clientSession , final Bson keys ,
1071+ final DropIndexOptions dropIndexOptions , final SingleResultCallback <Void > callback ) {
1072+ executor .execute (new DropIndexOperation (namespace , keys .toBsonDocument (BsonDocument .class , codecRegistry ), writeConcern )
1073+ .maxTime (dropIndexOptions .getMaxTime (MILLISECONDS ), MILLISECONDS ), clientSession , callback );
10241074 }
10251075
1026- private void executeDropIndex (final ClientSession clientSession , final String indexName , final SingleResultCallback <Void > callback ) {
1027- executor .execute (new DropIndexOperation (namespace , indexName , writeConcern ), clientSession , callback );
1076+ private void executeDropIndex (final ClientSession clientSession , final String indexName ,
1077+ final DropIndexOptions dropIndexOptions , final SingleResultCallback <Void > callback ) {
1078+ executor .execute (new DropIndexOperation (namespace , indexName , writeConcern )
1079+ .maxTime (dropIndexOptions .getMaxTime (MILLISECONDS ), MILLISECONDS ), clientSession , callback );
10281080 }
10291081
10301082 @ Override
0 commit comments