diff --git a/pom.xml b/pom.xml
index 15de83c29e..8701ca2f73 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-2086-SNAPSHOT
pom
Spring Data MongoDB
diff --git a/spring-data-mongodb-benchmarks/pom.xml b/spring-data-mongodb-benchmarks/pom.xml
index 9baccaa905..6f574f5b1a 100644
--- a/spring-data-mongodb-benchmarks/pom.xml
+++ b/spring-data-mongodb-benchmarks/pom.xml
@@ -7,7 +7,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-2086-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb-cross-store/pom.xml b/spring-data-mongodb-cross-store/pom.xml
index 47a5b7aba7..dcaba18d6e 100644
--- a/spring-data-mongodb-cross-store/pom.xml
+++ b/spring-data-mongodb-cross-store/pom.xml
@@ -6,7 +6,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-2086-SNAPSHOT
../pom.xml
@@ -50,7 +50,7 @@
org.springframework.data
spring-data-mongodb
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-2086-SNAPSHOT
diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml
index e5c865ea08..295165d499 100644
--- a/spring-data-mongodb-distribution/pom.xml
+++ b/spring-data-mongodb-distribution/pom.xml
@@ -13,7 +13,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-2086-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml
index b86dc2808c..2d794ef62f 100644
--- a/spring-data-mongodb/pom.xml
+++ b/spring-data-mongodb/pom.xml
@@ -11,7 +11,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-2086-SNAPSHOT
../pom.xml
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 83585111fa..1892e8b434 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
@@ -1,5 +1,5 @@
/*
- * Copyright 2017 the original author or authors.
+ * Copyright 2017-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,7 +37,6 @@ fun ExecutableFindOperation.query(entityClass: KClass): ExecutableF
inline fun ExecutableFindOperation.query(): ExecutableFindOperation.ExecutableFind =
query(T::class.java)
-
/**
* Extension for [ExecutableFindOperation.FindWithProjection. as] providing a [KClass] based variant.
*
@@ -45,7 +44,7 @@ inline fun ExecutableFindOperation.query(): ExecutableFindOper
* @author Mark Paluch
* @since 2.0
*/
-fun ExecutableFindOperation.FindWithProjection.asType(resultType: KClass): ExecutableFindOperation.FindWithQuery =
+fun ExecutableFindOperation.FindWithProjection<*>.asType(resultType: KClass): ExecutableFindOperation.FindWithQuery =
`as`(resultType.java)
/**
@@ -55,7 +54,7 @@ fun ExecutableFindOperation.FindWithProjection.asType(resultType: K
* @author Mark Paluch
* @since 2.0
*/
-inline fun ExecutableFindOperation.FindWithProjection.asType(): ExecutableFindOperation.FindWithQuery =
+inline fun ExecutableFindOperation.FindWithProjection<*>.asType(): ExecutableFindOperation.FindWithQuery =
`as`(T::class.java)
/**
@@ -66,3 +65,12 @@ inline fun ExecutableFindOperation.FindWithProjection.asTyp
*/
fun ExecutableFindOperation.DistinctWithProjection.asType(resultType: KClass): ExecutableFindOperation.TerminatingDistinct =
`as`(resultType.java);
+
+/**
+ * Extension for [ExecutableFindOperation.DistinctWithProjection. as] leveraging reified type parameters.
+ *
+ * @author Christoph Strobl
+ * @since 2.1
+ */
+inline fun ExecutableFindOperation.DistinctWithProjection.asType(): ExecutableFindOperation.DistinctWithProjection =
+ `as`(T::class.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 9e5b4706c9..1ae83dac10 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
@@ -41,7 +41,7 @@ inline fun ExecutableMapReduceOperation.mapReduce(): Executabl
* @author Christoph Strobl
* @since 2.1
*/
-fun ExecutableMapReduceOperation.MapReduceWithProjection.asType(resultType: KClass): ExecutableMapReduceOperation.MapReduceWithQuery =
+fun ExecutableMapReduceOperation.MapReduceWithProjection<*>.asType(resultType: KClass): ExecutableMapReduceOperation.MapReduceWithQuery =
`as`(resultType.java)
/**
@@ -50,5 +50,5 @@ fun ExecutableMapReduceOperation.MapReduceWithProjection.asType(res
* @author Christoph Strobl
* @since 2.1
*/
-inline fun ExecutableMapReduceOperation.MapReduceWithProjection.asType(): ExecutableMapReduceOperation.MapReduceWithQuery =
+inline fun ExecutableMapReduceOperation.MapReduceWithProjection<*>.asType(): ExecutableMapReduceOperation.MapReduceWithQuery =
`as`(T::class.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 37531f4ae3..95949097f3 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
@@ -1,5 +1,5 @@
/*
- * Copyright 2017 the original author or authors.
+ * Copyright 2017-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -41,7 +41,7 @@ inline fun ReactiveFindOperation.query(): ReactiveFindOperatio
* @author Mark Paluch
* @since 2.0
*/
-fun ReactiveFindOperation.FindWithProjection.asType(resultType: KClass): ReactiveFindOperation.FindWithQuery =
+fun ReactiveFindOperation.FindWithProjection<*>.asType(resultType: KClass): ReactiveFindOperation.FindWithQuery =
`as`(resultType.java)
/**
@@ -50,7 +50,7 @@ fun ReactiveFindOperation.FindWithProjection.asType(resultType: KCl
* @author Mark Paluch
* @since 2.0
*/
-inline fun ReactiveFindOperation.FindWithProjection.asType(): ReactiveFindOperation.FindWithQuery =
+inline fun ReactiveFindOperation.FindWithProjection<*>.asType(): ReactiveFindOperation.FindWithQuery =
`as`(T::class.java)
/**
@@ -61,3 +61,12 @@ inline fun ReactiveFindOperation.FindWithProjection.asType(
*/
fun ReactiveFindOperation.DistinctWithProjection.asType(resultType: KClass): ReactiveFindOperation.TerminatingDistinct =
`as`(resultType.java);
+
+/**
+ * Extension for [ReactiveFindOperation.DistinctWithProjection. as] leveraging reified type parameters.
+ *
+ * @author Christoph Strobl
+ * @since 2.1
+ */
+inline fun ReactiveFindOperation.DistinctWithProjection.asType(): ReactiveFindOperation.DistinctWithProjection =
+ `as`(T::class.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 6524ef2666..4e4f8b575e 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
@@ -41,7 +41,7 @@ inline fun ReactiveMapReduceOperation.mapReduce(): ReactiveMap
* @author Christoph Strobl
* @since 2.1
*/
-fun ReactiveMapReduceOperation.MapReduceWithProjection.asType(resultType: KClass): ReactiveMapReduceOperation.MapReduceWithQuery =
+fun ReactiveMapReduceOperation.MapReduceWithProjection<*>.asType(resultType: KClass): ReactiveMapReduceOperation.MapReduceWithQuery =
`as`(resultType.java)
/**
@@ -50,5 +50,5 @@ fun ReactiveMapReduceOperation.MapReduceWithProjection.asType(resul
* @author Christoph Strobl
* @since 2.1
*/
-inline fun ReactiveMapReduceOperation.MapReduceWithProjection.asType(): ReactiveMapReduceOperation.MapReduceWithQuery =
+inline fun ReactiveMapReduceOperation.MapReduceWithProjection<*>.asType(): ReactiveMapReduceOperation.MapReduceWithQuery =
`as`(T::class.java)
diff --git a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensionsTests.kt b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensionsTests.kt
index 4f8a60d34a..bcecc1c980 100644
--- a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensionsTests.kt
+++ b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableFindOperationExtensionsTests.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2017 the original author or authors.
+ * Copyright 2017-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -53,24 +53,31 @@ class ExecutableFindOperationExtensionsTests {
verify(operation).query(First::class.java)
}
- @Test // DATAMONGO-1689
+ @Test // DATAMONGO-1689, DATAMONGO-2086
fun `ExecutableFindOperation#FindOperationWithProjection#asType(KClass) extension should call its Java counterpart`() {
- operationWithProjection.asType(First::class)
- verify(operationWithProjection).`as`(First::class.java)
+ operationWithProjection.asType(User::class)
+ verify(operationWithProjection).`as`(User::class.java)
}
- @Test // DATAMONGO-1689
+ @Test // DATAMONGO-1689, DATAMONGO-2086
fun `ExecutableFindOperation#FindOperationWithProjection#asType() with reified type parameter extension should call its Java counterpart`() {
- operationWithProjection.asType()
- verify(operationWithProjection).`as`(First::class.java)
+ operationWithProjection.asType()
+ verify(operationWithProjection).`as`(User::class.java)
}
- @Test // DATAMONGO-1761
+ @Test // DATAMONGO-1761, DATAMONGO-2086
fun `ExecutableFindOperation#DistinctWithProjection#asType(KClass) extension should call its Java counterpart`() {
- distinctWithProjection.asType(First::class)
- verify(distinctWithProjection).`as`(First::class.java)
+ distinctWithProjection.asType(User::class)
+ verify(distinctWithProjection).`as`(User::class.java)
+ }
+
+ @Test // DATAMONGO-2086
+ fun `ExecutableFindOperation#DistinctWithProjection#asType() with reified type parameter extension should call its Java counterpart`() {
+
+ distinctWithProjection.asType()
+ verify(distinctWithProjection).`as`(User::class.java)
}
}
diff --git a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableMapReduceOperationExtensionsTests.kt b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableMapReduceOperationExtensionsTests.kt
index 630e4d9530..0cddce0667 100644
--- a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableMapReduceOperationExtensionsTests.kt
+++ b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ExecutableMapReduceOperationExtensionsTests.kt
@@ -49,17 +49,17 @@ class ExecutableMapReduceOperationExtensionsTests {
verify(operation).mapReduce(First::class.java)
}
- @Test // DATAMONGO-1929
+ @Test // DATAMONGO-1929, DATAMONGO-2086
fun `ExecutableMapReduceOperation#MapReduceWithProjection#asType(KClass) extension should call its Java counterpart`() {
- operationWithProjection.asType(First::class)
- verify(operationWithProjection).`as`(First::class.java)
+ operationWithProjection.asType(User::class)
+ verify(operationWithProjection).`as`(User::class.java)
}
- @Test // DATAMONGO-1929
+ @Test // DATAMONGO-1929, DATAMONGO-2086
fun `ExecutableMapReduceOperation#MapReduceWithProjection#asType() with reified type parameter extension should call its Java counterpart`() {
- operationWithProjection.asType()
- verify(operationWithProjection).`as`(First::class.java)
+ operationWithProjection.asType()
+ verify(operationWithProjection).`as`(User::class.java)
}
}
diff --git a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensionsTests.kt b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensionsTests.kt
index 7e0ee6c97f..c0fa170776 100644
--- a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensionsTests.kt
+++ b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveFindOperationExtensionsTests.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2017 the original author or authors.
+ * Copyright 2017-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -52,24 +52,31 @@ class ReactiveFindOperationExtensionsTests {
verify(operation).query(First::class.java)
}
- @Test // DATAMONGO-1719
+ @Test // DATAMONGO-1719, DATAMONGO-2086
fun `ReactiveFind#FindOperatorWithProjection#asType(KClass) extension should call its Java counterpart`() {
- operationWithProjection.asType(First::class)
- verify(operationWithProjection).`as`(First::class.java)
+ operationWithProjection.asType(User::class)
+ verify(operationWithProjection).`as`(User::class.java)
}
- @Test // DATAMONGO-1719
+ @Test // DATAMONGO-1719, DATAMONGO-2086
fun `ReactiveFind#FindOperatorWithProjection#asType() with reified type parameter extension should call its Java counterpart`() {
- operationWithProjection.asType()
- verify(operationWithProjection).`as`(First::class.java)
+ operationWithProjection.asType()
+ verify(operationWithProjection).`as`(User::class.java)
}
- @Test // DATAMONGO-1761
+ @Test // DATAMONGO-1761, DATAMONGO-2086
fun `ReactiveFind#DistinctWithProjection#asType(KClass) extension should call its Java counterpart`() {
- distinctWithProjection.asType(First::class)
- verify(distinctWithProjection).`as`(First::class.java)
+ distinctWithProjection.asType(User::class)
+ verify(distinctWithProjection).`as`(User::class.java)
+ }
+
+ @Test // DATAMONGO-2086
+ fun `ReactiveFind#DistinctWithProjection#asType() with reified type parameter extension should call its Java counterpart`() {
+
+ distinctWithProjection.asType()
+ verify(distinctWithProjection).`as`(User::class.java)
}
}
diff --git a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMapReduceOperationExtensionsTests.kt b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMapReduceOperationExtensionsTests.kt
index 55a8dd8a66..ce1034124a 100644
--- a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMapReduceOperationExtensionsTests.kt
+++ b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMapReduceOperationExtensionsTests.kt
@@ -52,14 +52,14 @@ class ReactiveMapReduceOperationExtensionsTests {
@Test // DATAMONGO-1929
fun `ReactiveMapReduceOperation#MapReduceWithProjection#asType(KClass) extension should call its Java counterpart`() {
- operationWithProjection.asType(First::class)
- verify(operationWithProjection).`as`(First::class.java)
+ operationWithProjection.asType(User::class)
+ verify(operationWithProjection).`as`(User::class.java)
}
@Test // DATAMONGO-1929
fun `ReactiveMapReduceOperation#MapReduceWithProjection#asType() with reified type parameter extension should call its Java counterpart`() {
- operationWithProjection.asType()
- verify(operationWithProjection).`as`(First::class.java)
+ operationWithProjection.asType()
+ verify(operationWithProjection).`as`(User::class.java)
}
}