From 3e3b52fc3a87543588664994789e9d7f500d3a3d Mon Sep 17 00:00:00 2001 From: "slav.babanin" Date: Wed, 2 Aug 2023 12:20:58 -0700 Subject: [PATCH 1/3] Add Scala test methods to SyncMongoCollection. JAVA-4983 --- .../syncadapter/SyncMongoCollection.scala | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala b/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala index ffc73b2bd7..49e37b8773 100644 --- a/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala +++ b/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala @@ -19,14 +19,21 @@ package org.mongodb.scala.syncadapter import com.mongodb.bulk.BulkWriteResult import com.mongodb.client.model._ import com.mongodb.client.result.{ DeleteResult, UpdateResult } -import com.mongodb.client.{ ChangeStreamIterable, ClientSession, MongoCollection => JMongoCollection } +import com.mongodb.client.{ + ChangeStreamIterable, + ClientSession, + ListSearchIndexesIterable, + MongoCollection => JMongoCollection +} import com.mongodb.{ MongoNamespace, ReadConcern, ReadPreference, WriteConcern } +import org.bson.Document import org.bson.codecs.configuration.CodecRegistry import org.bson.conversions.Bson import org.mongodb.scala.MongoCollection import org.mongodb.scala.bson.DefaultHelper.DefaultsTo import org.mongodb.scala.result.{ InsertManyResult, InsertOneResult } +import java.util import scala.collection.JavaConverters._ import scala.reflect.ClassTag @@ -473,6 +480,31 @@ case class SyncMongoCollection[T](wrapped: MongoCollection[T]) extends JMongoCol override def drop(clientSession: ClientSession, dropCollectionOptions: DropCollectionOptions): Unit = wrapped.drop(unwrap(clientSession), dropCollectionOptions).toFuture().get() + override def createSearchIndex(indexName: String, definition: Bson) = + wrapped.createSearchIndex(indexName, definition).toFuture().get() + + override def createSearchIndex(definition: Bson) = + wrapped.createSearchIndex(definition).toFuture().get() + + override def createSearchIndexes(searchIndexModels: util.List[SearchIndexModel]) = + throw new UnsupportedOperationException() + + def updateSearchIndex(indexName: String, definition: Bson) = + wrapped.updateSearchIndex(indexName, definition).toFuture().get() + + def dropSearchIndex(indexName: String) = wrapped.dropSearchIndex(indexName).toFuture().get() + + override def listSearchIndexes(): ListSearchIndexesIterable[Document] = throw new UnsupportedOperationException() + + override def listSearchIndexes[TResult](resultClass: Class[TResult]) = + SyncListSearchIndexesIterable[TResult]( + wrapped + .listSearchIndexes[TResult]()( + DefaultsTo.overrideDefault[TResult, org.mongodb.scala.Document], + ClassTag(resultClass) + ) + ) + override def createIndex(keys: Bson): String = wrapped.createIndex(keys).toFuture().get() override def createIndex(keys: Bson, indexOptions: IndexOptions) = From 37d275c65d53d7aa102e8db7d82b9f88c894c157 Mon Sep 17 00:00:00 2001 From: "slav.babanin" Date: Wed, 2 Aug 2023 12:28:03 -0700 Subject: [PATCH 2/3] Remove redundant imports. JAVA-4983 --- .../scala/syncadapter/SyncMongoCollection.scala | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala b/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala index 49e37b8773..6e3ba2e51d 100644 --- a/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala +++ b/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala @@ -19,21 +19,14 @@ package org.mongodb.scala.syncadapter import com.mongodb.bulk.BulkWriteResult import com.mongodb.client.model._ import com.mongodb.client.result.{ DeleteResult, UpdateResult } -import com.mongodb.client.{ - ChangeStreamIterable, - ClientSession, - ListSearchIndexesIterable, - MongoCollection => JMongoCollection -} +import com.mongodb.client.{ ChangeStreamIterable, ClientSession, MongoCollection => JMongoCollection } import com.mongodb.{ MongoNamespace, ReadConcern, ReadPreference, WriteConcern } -import org.bson.Document import org.bson.codecs.configuration.CodecRegistry import org.bson.conversions.Bson import org.mongodb.scala.MongoCollection import org.mongodb.scala.bson.DefaultHelper.DefaultsTo import org.mongodb.scala.result.{ InsertManyResult, InsertOneResult } -import java.util import scala.collection.JavaConverters._ import scala.reflect.ClassTag @@ -486,7 +479,7 @@ case class SyncMongoCollection[T](wrapped: MongoCollection[T]) extends JMongoCol override def createSearchIndex(definition: Bson) = wrapped.createSearchIndex(definition).toFuture().get() - override def createSearchIndexes(searchIndexModels: util.List[SearchIndexModel]) = + override def createSearchIndexes(searchIndexModels: java.util.List[SearchIndexModel]) = throw new UnsupportedOperationException() def updateSearchIndex(indexName: String, definition: Bson) = @@ -494,7 +487,7 @@ case class SyncMongoCollection[T](wrapped: MongoCollection[T]) extends JMongoCol def dropSearchIndex(indexName: String) = wrapped.dropSearchIndex(indexName).toFuture().get() - override def listSearchIndexes(): ListSearchIndexesIterable[Document] = throw new UnsupportedOperationException() + override def listSearchIndexes() = throw new UnsupportedOperationException() override def listSearchIndexes[TResult](resultClass: Class[TResult]) = SyncListSearchIndexesIterable[TResult]( From 10bcd1b59b9ffdd142ab9f76b72dc1c85dae509f Mon Sep 17 00:00:00 2001 From: "slav.babanin" Date: Thu, 10 Aug 2023 12:01:49 -0700 Subject: [PATCH 3/3] Override search index helper method in Scala tests. JAVA-4347 --- .../mongodb/scala/syncadapter/SyncMongoCollection.scala | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala b/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala index 6e3ba2e51d..cdfbb44cdb 100644 --- a/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala +++ b/driver-scala/src/integration/scala/org/mongodb/scala/syncadapter/SyncMongoCollection.scala @@ -480,14 +480,17 @@ case class SyncMongoCollection[T](wrapped: MongoCollection[T]) extends JMongoCol wrapped.createSearchIndex(definition).toFuture().get() override def createSearchIndexes(searchIndexModels: java.util.List[SearchIndexModel]) = - throw new UnsupportedOperationException() + wrapped.createSearchIndexes(searchIndexModels.asScala.toList).toFuture().get().asJava def updateSearchIndex(indexName: String, definition: Bson) = wrapped.updateSearchIndex(indexName, definition).toFuture().get() def dropSearchIndex(indexName: String) = wrapped.dropSearchIndex(indexName).toFuture().get() - override def listSearchIndexes() = throw new UnsupportedOperationException() + override def listSearchIndexes() = SyncListSearchIndexesIterable( + wrapped + .listSearchIndexes() + ) override def listSearchIndexes[TResult](resultClass: Class[TResult]) = SyncListSearchIndexesIterable[TResult](