diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableAggregationOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableAggregationOperationExtensions.kt index 25f85a412..91bcecfd0 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableAggregationOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableAggregationOperationExtensions.kt @@ -24,8 +24,9 @@ import kotlin.reflect.KClass * @author Mark Paluch * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("aggregateAndReturn()")) fun ExecutableAggregationOperation.aggregateAndReturn(entityClass: KClass): ExecutableAggregationOperation.ExecutableAggregation = - aggregateAndReturn(entityClass.java) + aggregateAndReturn(entityClass.java) /** * Extension for [ExecutableAggregationOperation.aggregateAndReturn] leveraging reified type parameters. @@ -35,4 +36,4 @@ fun ExecutableAggregationOperation.aggregateAndReturn(entityClass: KCl * @since 2.0 */ inline fun ExecutableAggregationOperation.aggregateAndReturn(): ExecutableAggregationOperation.ExecutableAggregation = - aggregateAndReturn(T::class.java) + aggregateAndReturn(T::class.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt index b173b4c75..d2cdd7152 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensions.kt @@ -24,6 +24,7 @@ import kotlin.reflect.KClass * @author Mark Paluch * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("query()")) fun ExecutableFindOperation.query(entityClass: KClass): ExecutableFindOperation.ExecutableFind = query(entityClass.java) @@ -44,6 +45,7 @@ inline fun ExecutableFindOperation.query(): ExecutableFindOper * @author Mark Paluch * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("asType()")) fun ExecutableFindOperation.FindWithProjection<*>.asType(resultType: KClass): ExecutableFindOperation.FindWithQuery = `as`(resultType.java) @@ -63,6 +65,7 @@ inline fun ExecutableFindOperation.FindWithProjection<*>.asTyp * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("asType()")) fun ExecutableFindOperation.DistinctWithProjection.asType(resultType: KClass): ExecutableFindOperation.TerminatingDistinct = `as`(resultType.java); diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableInsertOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableInsertOperationExtensions.kt index 794f1382f..78afd3ace 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableInsertOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableInsertOperationExtensions.kt @@ -24,6 +24,7 @@ import kotlin.reflect.KClass * @author Mark Paluch * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("insert()")) fun ExecutableInsertOperation.insert(entityClass: KClass): ExecutableInsertOperation.ExecutableInsert = insert(entityClass.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableMapReduceOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableMapReduceOperationExtensions.kt index e109a1935..8a3cc6056 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableMapReduceOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableMapReduceOperationExtensions.kt @@ -23,6 +23,7 @@ import kotlin.reflect.KClass * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("mapReduce()")) fun ExecutableMapReduceOperation.mapReduce(entityClass: KClass): ExecutableMapReduceOperation.MapReduceWithMapFunction = mapReduce(entityClass.java) @@ -41,6 +42,7 @@ inline fun ExecutableMapReduceOperation.mapReduce(): Executabl * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("asType()")) fun ExecutableMapReduceOperation.MapReduceWithProjection<*>.asType(resultType: KClass): ExecutableMapReduceOperation.MapReduceWithQuery = `as`(resultType.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableRemoveOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableRemoveOperationExtensions.kt index d1836caab..19ecfa6ae 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableRemoveOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableRemoveOperationExtensions.kt @@ -24,6 +24,7 @@ import kotlin.reflect.KClass * @author Mark Paluch * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("remove()")) fun ExecutableRemoveOperation.remove(entityClass: KClass): ExecutableRemoveOperation.ExecutableRemove = remove(entityClass.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableUpdateOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableUpdateOperationExtensions.kt index b0c7d9f1c..c50ab3879 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableUpdateOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ExecutableUpdateOperationExtensions.kt @@ -23,6 +23,7 @@ import kotlin.reflect.KClass * @author Christoph Strobl * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("update()")) fun ExecutableUpdateOperation.update(entityClass: KClass): ExecutableUpdateOperation.ExecutableUpdate = update(entityClass.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/MongoOperationsExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/MongoOperationsExtensions.kt index 1b0d2e33a..a3cdc17df 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/MongoOperationsExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/MongoOperationsExtensions.kt @@ -41,6 +41,7 @@ import kotlin.reflect.KClass * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("getCollectionName()")) fun MongoOperations.getCollectionName(entityClass: KClass): String = getCollectionName(entityClass.java) @@ -87,6 +88,7 @@ inline fun MongoOperations.stream(query: Query, collectionName * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("createCollection(collectionOptions)")) fun MongoOperations.createCollection(entityClass: KClass, collectionOptions: CollectionOptions? = null): MongoCollection = if (collectionOptions != null) createCollection(entityClass.java, collectionOptions) else createCollection(entityClass.java) @@ -108,6 +110,7 @@ inline fun MongoOperations.createCollection( * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("collectionExists()")) fun MongoOperations.collectionExists(entityClass: KClass): Boolean = collectionExists(entityClass.java) @@ -126,6 +129,7 @@ inline fun MongoOperations.collectionExists(): Boolean = * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("dropCollection()")) fun MongoOperations.dropCollection(entityClass: KClass) { dropCollection(entityClass.java) } @@ -146,6 +150,7 @@ inline fun MongoOperations.dropCollection() { * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("indexOps()")) fun MongoOperations.indexOps(entityClass: KClass): IndexOperations = indexOps(entityClass.java) @@ -164,6 +169,7 @@ inline fun MongoOperations.indexOps(): IndexOperations = * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("bulkOps(bulkMode, collectionName)")) fun MongoOperations.bulkOps(bulkMode: BulkMode, entityClass: KClass, collectionName: String? = null): BulkOperations = if (collectionName != null) bulkOps(bulkMode, entityClass.java, collectionName) else bulkOps(bulkMode, entityClass.java) @@ -212,6 +218,7 @@ inline fun MongoOperations.group(criteria: Criteria, inputColl * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("aggregate(aggregation)")) inline fun MongoOperations.aggregate(aggregation: Aggregation, inputType: KClass<*>): AggregationResults = aggregate(aggregation, inputType.java, O::class.java) @@ -230,6 +237,7 @@ inline fun MongoOperations.aggregate(aggregation: Aggregation, * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("aggregateStream(aggregation)")) inline fun MongoOperations.aggregateStream(aggregation: Aggregation, inputType: KClass<*>): CloseableIterator = aggregateStream(aggregation, inputType.java, O::class.java) @@ -287,6 +295,7 @@ inline fun MongoOperations.findOne(query: Query, collectionNam * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("exists(query, collectionName)")) fun MongoOperations.exists(query: Query, entityClass: KClass, collectionName: String? = null): Boolean = if (collectionName != null) exists(query, entityClass.java, collectionName) else exists(query, entityClass.java) @@ -328,6 +337,7 @@ inline fun MongoOperations.findById(id: Any, collectionName: S * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("findDistinct(field)")) inline fun MongoOperations.findDistinct(field: String, entityClass: KClass<*>): List = findDistinct(field, entityClass.java, T::class.java); @@ -337,6 +347,7 @@ inline fun MongoOperations.findDistinct(field: String, entityC * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("findDistinct(query, field)")) inline fun MongoOperations.findDistinct(query: Query, field: String, entityClass: KClass<*>): List = findDistinct(query, field, entityClass.java, T::class.java) @@ -346,6 +357,7 @@ inline fun MongoOperations.findDistinct(query: Query, field: S * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("findDistinct(query, field, collectionName)")) inline fun MongoOperations.findDistinct(query: Query, field: String, collectionName: String, entityClass: KClass<*>): List = findDistinct(query, field, collectionName, entityClass.java, T::class.java) @@ -386,6 +398,7 @@ inline fun MongoOperations.findAndRemove(query: Query, collect * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("count(query, collectionName)")) fun MongoOperations.count(query: Query = Query(), entityClass: KClass, collectionName: String? = null): Long = if (collectionName != null) count(query, entityClass.java, collectionName) else count(query, entityClass.java) @@ -406,16 +419,27 @@ inline fun MongoOperations.count(query: Query = Query(), colle * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("insert(batchToSave)")) fun MongoOperations.insert(batchToSave: Collection, entityClass: KClass) { insert(batchToSave, entityClass.java) } +/** + * Extension for [MongoOperations.insert] leveraging reified type parameters. + * + * @author Mark Paluch + * @since 2.2 + */ +@Suppress("EXTENSION_SHADOWED_BY_MEMBER") +inline fun MongoOperations.insert(batchToSave: Collection): Collection = insert(batchToSave, T::class.java) + /** * Extension for [MongoOperations.upsert] providing a [KClass] based variant. * * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("upsert(query, update, collectionName)")) fun MongoOperations.upsert(query: Query, update: Update, entityClass: KClass, collectionName: String? = null): UpdateResult = if (collectionName != null) upsert(query, update, entityClass.java, collectionName) else upsert(query, update, entityClass.java) @@ -437,6 +461,7 @@ inline fun MongoOperations.upsert(query: Query, update: Update * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("updateFirst(query, update, collectionName)")) fun MongoOperations.updateFirst(query: Query, update: Update, entityClass: KClass, collectionName: String? = null): UpdateResult = if (collectionName != null) updateFirst(query, update, entityClass.java, collectionName) else updateFirst(query, update, entityClass.java) @@ -458,6 +483,7 @@ inline fun MongoOperations.updateFirst(query: Query, update: U * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("updateMulti(query, update, collectionName)")) fun MongoOperations.updateMulti(query: Query, update: Update, entityClass: KClass, collectionName: String? = null): UpdateResult = if (collectionName != null) updateMulti(query, update, entityClass.java, collectionName) else updateMulti(query, update, entityClass.java) @@ -479,6 +505,7 @@ inline fun MongoOperations.updateMulti(query: Query, update: U * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("remove(query, collectionName)")) fun MongoOperations.remove(query: Query, entityClass: KClass, collectionName: String? = null): DeleteResult = if (collectionName != null) remove(query, entityClass.java, collectionName) else remove(query, entityClass.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveAggregationOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveAggregationOperationExtensions.kt index 4045303ff..18913c3ec 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveAggregationOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveAggregationOperationExtensions.kt @@ -23,6 +23,7 @@ import kotlin.reflect.KClass * @author Mark Paluch * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("aggregateAndReturn()")) fun ReactiveAggregationOperation.aggregateAndReturn(entityClass: KClass): ReactiveAggregationOperation.ReactiveAggregation = aggregateAndReturn(entityClass.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensions.kt index de6545f15..57104af0f 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensions.kt @@ -25,6 +25,7 @@ import kotlin.reflect.KClass * @author Mark Paluch * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("query()")) fun ReactiveFindOperation.query(entityClass: KClass): ReactiveFindOperation.ReactiveFind = query(entityClass.java) @@ -43,6 +44,7 @@ inline fun ReactiveFindOperation.query(): ReactiveFindOperatio * @author Mark Paluch * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("asType()")) fun ReactiveFindOperation.FindWithProjection<*>.asType(resultType: KClass): ReactiveFindOperation.FindWithQuery = `as`(resultType.java) @@ -61,6 +63,7 @@ inline fun ReactiveFindOperation.FindWithProjection<*>.asType( * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("asType()")) fun ReactiveFindOperation.DistinctWithProjection.asType(resultType: KClass): ReactiveFindOperation.TerminatingDistinct = `as`(resultType.java); diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveInsertOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveInsertOperationExtensions.kt index 7c6a40df4..c1fbc6a7f 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveInsertOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveInsertOperationExtensions.kt @@ -24,6 +24,7 @@ import kotlin.reflect.KClass * @author Mark Paluch * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("insert()")) fun ReactiveInsertOperation.insert(entityClass: KClass): ReactiveInsertOperation.ReactiveInsert = insert(entityClass.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMapReduceOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMapReduceOperationExtensions.kt index 7ac435edf..724e95ae5 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMapReduceOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMapReduceOperationExtensions.kt @@ -23,6 +23,7 @@ import kotlin.reflect.KClass * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("mapReduce()")) fun ReactiveMapReduceOperation.mapReduce(entityClass: KClass): ReactiveMapReduceOperation.MapReduceWithMapFunction = mapReduce(entityClass.java) @@ -41,6 +42,7 @@ inline fun ReactiveMapReduceOperation.mapReduce(): ReactiveMap * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("asType()")) fun ReactiveMapReduceOperation.MapReduceWithProjection<*>.asType(resultType: KClass): ReactiveMapReduceOperation.MapReduceWithQuery = `as`(resultType.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensions.kt index ddc7103dc..714900748 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensions.kt @@ -34,6 +34,7 @@ import kotlin.reflect.KClass * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("indexOps()")) fun ReactiveMongoOperations.indexOps(entityClass: KClass): ReactiveIndexOperations = indexOps(entityClass.java) @@ -61,6 +62,7 @@ inline fun ReactiveMongoOperations.execute(action: ReactiveCol * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("createCollection(collectionOptions)")) fun ReactiveMongoOperations.createCollection(entityClass: KClass, collectionOptions: CollectionOptions? = null): Mono> = if (collectionOptions != null) createCollection(entityClass.java, collectionOptions) else createCollection(entityClass.java) @@ -79,6 +81,7 @@ inline fun ReactiveMongoOperations.createCollection(collection * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("collectionExists()")) fun ReactiveMongoOperations.collectionExists(entityClass: KClass): Mono = collectionExists(entityClass.java) @@ -97,6 +100,7 @@ inline fun ReactiveMongoOperations.collectionExists(): Mono()")) fun ReactiveMongoOperations.dropCollection(entityClass: KClass): Mono = dropCollection(entityClass.java) @@ -133,6 +137,7 @@ inline fun ReactiveMongoOperations.findOne(query: Query, colle * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("exists(query, collectionName)")) fun ReactiveMongoOperations.exists(query: Query, entityClass: KClass, collectionName: String? = null): Mono = if (collectionName != null) exists(query, entityClass.java, collectionName) else exists(query, entityClass.java) @@ -170,6 +175,7 @@ inline fun ReactiveMongoOperations.findById(id: Any, collectio * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("findDistinct(field)")) inline fun ReactiveMongoOperations.findDistinct(field: String, entityClass: KClass<*>): Flux = findDistinct(field, entityClass.java, T::class.java); @@ -179,6 +185,7 @@ inline fun ReactiveMongoOperations.findDistinct(field: String, * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("findDistinct(query, field)")) inline fun ReactiveMongoOperations.findDistinct(query: Query, field: String, entityClass: KClass<*>): Flux = findDistinct(query, field, entityClass.java, T::class.java) @@ -188,6 +195,7 @@ inline fun ReactiveMongoOperations.findDistinct(query: Query, * @author Christoph Strobl * @since 2.1 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("findDistinct(query, field, collectionName)")) inline fun ReactiveMongoOperations.findDistinct(query: Query, field: String, collectionName: String, entityClass: KClass<*>): Flux = findDistinct(query, field, collectionName, entityClass.java, T::class.java) @@ -236,6 +244,7 @@ inline fun ReactiveMongoOperations.findAndRemove(query: Query, * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("count(query, collectionName)")) fun ReactiveMongoOperations.count(query: Query = Query(), entityClass: KClass, collectionName: String? = null): Mono = if (collectionName != null) count(query, entityClass.java, collectionName) else count(query, entityClass.java) @@ -257,15 +266,26 @@ inline fun ReactiveMongoOperations.count(query: Query = Query( * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("insert(batchToSave)")) fun ReactiveMongoOperations.insert(batchToSave: Collection, entityClass: KClass): Flux = insert(batchToSave, entityClass.java) +/** + * Extension for [ReactiveMongoOperations.insert] leveraging reified type parameters. + * + * @author Mark Paluch + * @since 2.2 + */ +@Suppress("EXTENSION_SHADOWED_BY_MEMBER") +inline fun ReactiveMongoOperations.insert(batchToSave: Collection): Flux = insert(batchToSave, T::class.java) + /** * Extension for [ReactiveMongoOperations.insertAll] providing a [KClass] based variant. * * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("insertAll(batchToSave)")) fun ReactiveMongoOperations.insertAll(batchToSave: Mono>, entityClass: KClass): Flux = insertAll(batchToSave, entityClass.java) @@ -275,6 +295,7 @@ fun ReactiveMongoOperations.insertAll(batchToSave: Mono(query, update, collectionName)")) fun ReactiveMongoOperations.upsert(query: Query, update: Update, entityClass: KClass, collectionName: String? = null): Mono = if (collectionName != null) upsert(query, update, entityClass.java, collectionName) else upsert(query, update, entityClass.java) @@ -295,6 +316,7 @@ inline fun ReactiveMongoOperations.upsert(query: Query, update * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("updateFirst(query, update, collectionName)")) fun ReactiveMongoOperations.updateFirst(query: Query, update: Update, entityClass: KClass, collectionName: String? = null): Mono = if (collectionName != null) updateFirst(query, update, entityClass.java, collectionName) else updateFirst(query, update, entityClass.java) @@ -316,6 +338,7 @@ inline fun ReactiveMongoOperations.updateFirst(query: Query, u * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("updateMulti(query, update, collectionName)")) fun ReactiveMongoOperations.updateMulti(query: Query, update: Update, entityClass: KClass, collectionName: String? = null): Mono = if (collectionName != null) updateMulti(query, update, entityClass.java, collectionName) else updateMulti(query, update, entityClass.java) @@ -337,6 +360,7 @@ inline fun ReactiveMongoOperations.updateMulti(query: Query, u * @author Sebastien Deleuze * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("remove(query, collectionName)")) fun ReactiveMongoOperations.remove(query: Query, entityClass: KClass, collectionName: String? = null): Mono = if (collectionName != null) remove(query, entityClass.java, collectionName) else remove(query, entityClass.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveRemoveOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveRemoveOperationExtensions.kt index 79585166a..ec820a157 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveRemoveOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveRemoveOperationExtensions.kt @@ -25,6 +25,7 @@ import kotlin.reflect.KClass * @author Mark Paluch * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("remove()")) fun ReactiveRemoveOperation.remove(entityClass: KClass): ReactiveRemoveOperation.ReactiveRemove = remove(entityClass.java) diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveUpdateOperationExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveUpdateOperationExtensions.kt index 72e5db8de..0127bcccb 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveUpdateOperationExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveUpdateOperationExtensions.kt @@ -26,6 +26,7 @@ import kotlin.reflect.KClass * @author Mark Paluch * @since 2.0 */ +@Deprecated("Since 2.2, use the reified variant", replaceWith = ReplaceWith("update()")) fun ReactiveUpdateOperation.update(entityClass: KClass): ReactiveUpdateOperation.ReactiveUpdate = update(entityClass.java) diff --git a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/MongoOperationsExtensionsTests.kt b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/MongoOperationsExtensionsTests.kt index a86145dd7..ed162d413 100644 --- a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/MongoOperationsExtensionsTests.kt +++ b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/MongoOperationsExtensionsTests.kt @@ -501,6 +501,15 @@ class MongoOperationsExtensionsTests { verify { operations.insert(collection, First::class.java) } } + @Test // DATAMONGO-2208 + fun `insert(Collection) with reified type parameter extension should call its Java counterpart`() { + + val collection = listOf(First(), First()) + + operations.insert(collection) + verify { operations.insert(collection, First::class.java) } + } + @Test // DATAMONGO-1689 fun `upsert(Query, Update, KClass) extension should call its Java counterpart`() { diff --git a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensionsTests.kt b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensionsTests.kt index b3b7c15df..c78193bcb 100644 --- a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensionsTests.kt +++ b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensionsTests.kt @@ -322,6 +322,15 @@ class ReactiveMongoOperationsExtensionsTests { verify { operations.insert(collection, First::class.java) } } + @Test // DATAMONGO-2208 + fun `insert(Collection) with reified type parameter extension should call its Java counterpart`() { + + val collection = listOf(First(), First()) + + operations.insert(collection) + verify { operations.insert(collection, First::class.java) } + } + @Test // DATAMONGO-1689 fun `insertAll(Mono, KClass) extension should call its Java counterpart`() { diff --git a/src/main/asciidoc/new-features.adoc b/src/main/asciidoc/new-features.adoc index 27b07678e..c4965642e 100644 --- a/src/main/asciidoc/new-features.adoc +++ b/src/main/asciidoc/new-features.adoc @@ -10,6 +10,7 @@ * Template API delete by entity considers the version property in delete queries. * Repository deletes now throw `OptimisticLockingFailureException` when a versioned entity cannot be deleted. * Support `Range` in repository between queries. +* Kotlin extension methods accepting `KClass` are deprecated now in favor of `reified` methods. [[new-features.2-1-0]] == What's New in Spring Data MongoDB 2.1