Skip to content

Commit 04d5a29

Browse files
committed
Remove KClass based Kotlin extensions
Issue: SPR-15660
1 parent 223315f commit 04d5a29

File tree

18 files changed

+11
-441
lines changed

18 files changed

+11
-441
lines changed

spring-beans/src/main/kotlin/org/springframework/beans/factory/BeanFactoryExtensions.kt

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
11
package org.springframework.beans.factory
22

3-
import kotlin.reflect.KClass
4-
5-
6-
/**
7-
* Extension for [BeanFactory.getBean] providing a [KClass] based variant.
8-
*
9-
* @author Sebastien Deleuze
10-
* @since 5.0
11-
*/
12-
fun <T : Any> BeanFactory.getBean(requiredType: KClass<T>): T = getBean(requiredType.java)
133

144
/**
155
* Extension for [BeanFactory.getBean] providing a `getBean<Foo>()` variant.
@@ -30,16 +20,6 @@ inline fun <reified T : Any> BeanFactory.getBean(): T = getBean(T::class.java)
3020
inline fun <reified T : Any> BeanFactory.getBean(name: String): T =
3121
getBean(name, T::class.java)
3222

33-
/**
34-
* Extension for [BeanFactory.getBean] providing a [KClass] based variant.
35-
*
36-
* @see BeanFactory.getBean(Class<T>, Object...)
37-
* @author Sebastien Deleuze
38-
* @since 5.0
39-
*/
40-
fun <T : Any> BeanFactory.getBean(requiredType: KClass<T>, vararg args:Any): T =
41-
getBean(requiredType.java, *args)
42-
4323
/**
4424
* Extension for [BeanFactory.getBean] providing a `getBean<Foo>(arg1, arg2)` variant.
4525
*

spring-beans/src/main/kotlin/org/springframework/beans/factory/ListableBeanFactoryExtensions.kt

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,5 @@
11
package org.springframework.beans.factory
22

3-
import kotlin.reflect.KClass
4-
5-
6-
/**
7-
* Extension for [ListableBeanFactory.getBeanNamesForType] providing a [KClass] based variant.
8-
*
9-
* @author Sebastien Deleuze
10-
* @since 5.0
11-
*/
12-
fun <T : Any> ListableBeanFactory.getBeanNamesForType(type: KClass<T>,
13-
includeNonSingletons: Boolean = true, allowEagerInit: Boolean = true): Array<out String> =
14-
getBeanNamesForType(type.java, includeNonSingletons, allowEagerInit)
15-
163
/**
174
* Extension for [ListableBeanFactory.getBeanNamesForType] providing a `getBeanNamesForType<Foo>()` variant.
185
*
@@ -22,15 +9,6 @@ fun <T : Any> ListableBeanFactory.getBeanNamesForType(type: KClass<T>,
229
inline fun <reified T : Any> ListableBeanFactory.getBeanNamesForType(includeNonSingletons: Boolean = true, allowEagerInit: Boolean = true): Array<out String> =
2310
getBeanNamesForType(T::class.java, includeNonSingletons, allowEagerInit)
2411

25-
/**
26-
* Extension for [ListableBeanFactory.getBeansOfType] providing a [KClass] based variant.
27-
*
28-
* @author Sebastien Deleuze
29-
* @since 5.0
30-
*/
31-
fun <T : Any> ListableBeanFactory.getBeansOfType(type: KClass<T>, includeNonSingletons: Boolean = true, allowEagerInit: Boolean = true): Map<String, Any> =
32-
getBeansOfType(type.java, includeNonSingletons, allowEagerInit)
33-
3412
/**
3513
* Extension for [ListableBeanFactory.getBeansOfType] providing a `getBeansOfType<Foo>()` variant.
3614
*
@@ -40,15 +18,6 @@ fun <T : Any> ListableBeanFactory.getBeansOfType(type: KClass<T>, includeNonSing
4018
inline fun <reified T : Any> ListableBeanFactory.getBeansOfType(includeNonSingletons: Boolean = true, allowEagerInit: Boolean = true): Map<String, Any> =
4119
getBeansOfType(T::class.java, includeNonSingletons, allowEagerInit)
4220

43-
/**
44-
* Extension for [ListableBeanFactory.getBeanNamesForAnnotation] providing a [KClass] based variant.
45-
*
46-
* @author Sebastien Deleuze
47-
* @since 5.0
48-
*/
49-
fun <T : Annotation> ListableBeanFactory.getBeanNamesForAnnotation(type: KClass<T>): Array<out String> =
50-
getBeanNamesForAnnotation(type.java)
51-
5221
/**
5322
* Extension for [ListableBeanFactory.getBeanNamesForAnnotation] providing a `getBeansOfType<Foo>()` variant.
5423
*
@@ -58,15 +27,6 @@ fun <T : Annotation> ListableBeanFactory.getBeanNamesForAnnotation(type: KClass<
5827
inline fun <reified T : Annotation> ListableBeanFactory.getBeanNamesForAnnotation(): Array<out String> =
5928
getBeanNamesForAnnotation(T::class.java)
6029

61-
/**
62-
* Extension for [ListableBeanFactory.getBeansWithAnnotation] providing a [KClass] based variant.
63-
*
64-
* @author Sebastien Deleuze
65-
* @since 5.0
66-
*/
67-
fun <T : Annotation> ListableBeanFactory.getBeansWithAnnotation(type: KClass<T>): MutableMap<String, Any> =
68-
getBeansWithAnnotation(type.java)
69-
7030
/**
7131
* Extension for [ListableBeanFactory.getBeansWithAnnotation] providing a `getBeansWithAnnotation<Foo>()` variant.
7232
*
@@ -76,15 +36,6 @@ fun <T : Annotation> ListableBeanFactory.getBeansWithAnnotation(type: KClass<T>)
7636
inline fun <reified T : Annotation> ListableBeanFactory.getBeansWithAnnotation(): MutableMap<String, Any> =
7737
getBeansWithAnnotation(T::class.java)
7838

79-
/**
80-
* Extension for [ListableBeanFactory.findAnnotationOnBean] providing a [KClass] based variant.
81-
*
82-
* @author Sebastien Deleuze
83-
* @since 5.0
84-
*/
85-
fun <T : Annotation> ListableBeanFactory.findAnnotationOnBean(beanName:String, type: KClass<T>): Annotation? =
86-
findAnnotationOnBean(beanName, type.java)
87-
8839
/**
8940
* Extension for [ListableBeanFactory.findAnnotationOnBean] providing a `findAnnotationOnBean<Foo>("foo")` variant.
9041
*

spring-beans/src/test/kotlin/org/springframework/beans/factory/BeanFactoryExtensionsTests.kt

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ class BeanFactoryExtensionsTests {
1818
@Mock(answer = Answers.RETURNS_MOCKS)
1919
lateinit var bf: BeanFactory
2020

21-
@Test
22-
fun `getBean with KClass`() {
23-
bf.getBean(Foo::class)
24-
verify(bf, times(1)).getBean(Foo::class.java)
25-
}
26-
2721
@Test
2822
fun `getBean with reified type parameters`() {
2923
bf.getBean<Foo>()
@@ -37,14 +31,6 @@ class BeanFactoryExtensionsTests {
3731
verify(bf, times(1)).getBean(name, Foo::class.java)
3832
}
3933

40-
@Test
41-
fun `getBean with KClass and varargs`() {
42-
val arg1 = "arg1"
43-
val arg2 = "arg2"
44-
bf.getBean(Foo::class, arg1, arg2)
45-
verify(bf, times(1)).getBean(Foo::class.java, arg1, arg2)
46-
}
47-
4834
@Test
4935
fun `getBean with reified type parameters and varargs`() {
5036
val arg1 = "arg1"

spring-beans/src/test/kotlin/org/springframework/beans/factory/ListableBeanFactoryExtensionsTests.kt

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,6 @@ class ListableBeanFactoryExtensionsTests {
1818
@Mock(answer = Answers.RETURNS_MOCKS)
1919
lateinit var lbf: ListableBeanFactory
2020

21-
@Test
22-
fun `getBeanNamesForType with KClass`() {
23-
lbf.getBeanNamesForType(Foo::class)
24-
verify(lbf, times(1)).getBeanNamesForType(Foo::class.java, true , true)
25-
}
26-
27-
@Test
28-
fun `getBeanNamesForType with KClass and Boolean`() {
29-
lbf.getBeanNamesForType(Foo::class, false)
30-
verify(lbf, times(1)).getBeanNamesForType(Foo::class.java, false , true)
31-
}
32-
33-
@Test
34-
fun `getBeanNamesForType with KClass, Boolean and Boolean`() {
35-
lbf.getBeanNamesForType(Foo::class, false, false)
36-
verify(lbf, times(1)).getBeanNamesForType(Foo::class.java, false , false)
37-
}
38-
3921
@Test
4022
fun `getBeanNamesForType with reified type parameters`() {
4123
lbf.getBeanNamesForType<Foo>()
@@ -54,24 +36,6 @@ class ListableBeanFactoryExtensionsTests {
5436
verify(lbf, times(1)).getBeanNamesForType(Foo::class.java, false , false)
5537
}
5638

57-
@Test
58-
fun `getBeansOfType with KClass`() {
59-
lbf.getBeansOfType(Foo::class)
60-
verify(lbf, times(1)).getBeansOfType(Foo::class.java, true , true)
61-
}
62-
63-
@Test
64-
fun `getBeansOfType with KClass and Boolean`() {
65-
lbf.getBeansOfType(Foo::class, false)
66-
verify(lbf, times(1)).getBeansOfType(Foo::class.java, false , true)
67-
}
68-
69-
@Test
70-
fun `getBeansOfType with KClass, Boolean and Boolean`() {
71-
lbf.getBeansOfType(Foo::class, false, false)
72-
verify(lbf, times(1)).getBeansOfType(Foo::class.java, false , false)
73-
}
74-
7539
@Test
7640
fun `getBeansOfType with reified type parameters`() {
7741
lbf.getBeansOfType<Foo>()
@@ -90,37 +54,18 @@ class ListableBeanFactoryExtensionsTests {
9054
verify(lbf, times(1)).getBeansOfType(Foo::class.java, false , false)
9155
}
9256

93-
@Test
94-
fun `getBeanNamesForAnnotation with KClass`() {
95-
lbf.getBeanNamesForAnnotation(Bar::class)
96-
verify(lbf, times(1)).getBeanNamesForAnnotation(Bar::class.java)
97-
}
98-
9957
@Test
10058
fun `getBeanNamesForAnnotation with reified type parameters`() {
10159
lbf.getBeanNamesForAnnotation<Bar>()
10260
verify(lbf, times(1)).getBeanNamesForAnnotation(Bar::class.java)
10361
}
10462

105-
@Test
106-
fun `getBeansWithAnnotation with KClass`() {
107-
lbf.getBeansWithAnnotation(Bar::class)
108-
verify(lbf, times(1)).getBeansWithAnnotation(Bar::class.java)
109-
}
110-
11163
@Test
11264
fun `getBeansWithAnnotation with reified type parameters`() {
11365
lbf.getBeansWithAnnotation<Bar>()
11466
verify(lbf, times(1)).getBeansWithAnnotation(Bar::class.java)
11567
}
11668

117-
@Test
118-
fun `findAnnotationOnBean with String and KClass`() {
119-
val name = "bar"
120-
lbf.findAnnotationOnBean(name, Bar::class)
121-
verify(lbf, times(1)).findAnnotationOnBean(name, Bar::class.java)
122-
}
123-
12469
@Test
12570
fun `findAnnotationOnBean with String and reified type parameters`() {
12671
val name = "bar"

spring-context/src/main/kotlin/org/springframework/context/support/GenericApplicationContextExtensions.kt

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,8 @@ package org.springframework.context.support
33
import org.springframework.beans.factory.config.BeanDefinitionCustomizer
44
import org.springframework.context.ApplicationContext
55
import java.util.function.Supplier
6-
import kotlin.reflect.KClass
76

87

9-
/**
10-
* Extension for [GenericApplicationContext.registerBean] providing a [KClass] based variant.
11-
*
12-
* @author Sebastien Deleuze
13-
* @since 5.0
14-
*/
15-
fun <T : Any> GenericApplicationContext.registerBean(beanClass: KClass<T>, vararg customizers: BeanDefinitionCustomizer) {
16-
registerBean(beanClass.java, *customizers)
17-
}
18-
198
/**
209
* Extension for [GenericApplicationContext.registerBean] providing a `registerBean<Foo>()` variant.
2110
*
@@ -26,16 +15,6 @@ inline fun <reified T : Any> GenericApplicationContext.registerBean(vararg custo
2615
registerBean(T::class.java, *customizers)
2716
}
2817

29-
/**
30-
* Extension for [GenericApplicationContext.registerBean] providing a [KClass] based variant.
31-
*
32-
* @author Sebastien Deleuze
33-
* @since 5.0
34-
*/
35-
fun <T : Any> GenericApplicationContext.registerBean(beanName: String, beanClass: KClass<T>, vararg customizers: BeanDefinitionCustomizer) {
36-
registerBean(beanName, beanClass.java, *customizers)
37-
}
38-
3918
/**
4019
* Extension for [GenericApplicationContext.registerBean] providing a `registerBean<Foo>("foo")` variant.
4120
*

spring-context/src/test/kotlin/org/springframework/context/support/GenericApplicationContextExtensionsTests.kt

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ class GenericApplicationContextExtensionsTests {
1414
@Test
1515
fun registerBeanWithClass() {
1616
val context = GenericApplicationContext()
17-
context.registerBean(BeanA::class)
17+
context.registerBean<BeanA>()
1818
context.refresh()
19-
assertNotNull(context.getBean(BeanA::class))
19+
assertNotNull(context.getBean<BeanA>())
2020
}
2121

2222
@Test
2323
fun registerBeanWithNameAndClass() {
2424
val context = GenericApplicationContext()
25-
context.registerBean("a", BeanA::class)
25+
context.registerBean<BeanA>("a")
2626
context.refresh()
2727
assertNotNull(context.getBean("a"))
2828
}
@@ -32,7 +32,7 @@ class GenericApplicationContextExtensionsTests {
3232
val context = GenericApplicationContext()
3333
context.registerBean { BeanA() }
3434
context.refresh()
35-
assertNotNull(context.getBean(BeanA::class))
35+
assertNotNull(context.getBean<BeanA>())
3636
}
3737

3838
@Test
@@ -46,34 +46,23 @@ class GenericApplicationContextExtensionsTests {
4646
@Test
4747
fun registerBeanWithFunction() {
4848
val context = GenericApplicationContext()
49-
context.registerBean(BeanA::class)
50-
context.registerBean { BeanB(it.getBean(BeanA::class)) }
49+
context.registerBean<BeanA>()
50+
context.registerBean { BeanB(it.getBean<BeanA>()) }
5151
context.refresh()
52-
assertNotNull(context.getBean(BeanA::class))
53-
assertNotNull(context.getBean(BeanB::class))
52+
assertNotNull(context.getBean<BeanA>())
53+
assertNotNull(context.getBean<BeanB>())
5454
}
5555

5656
@Test
5757
fun registerBeanWithNameAndFunction() {
5858
val context = GenericApplicationContext()
59-
context.registerBean("a", BeanA::class)
60-
context.registerBean("b") { BeanB(it.getBean(BeanA::class)) }
59+
context.registerBean<BeanA>("a")
60+
context.registerBean("b") { BeanB(it.getBean<BeanA>()) }
6161
context.refresh()
6262
assertNotNull(context.getBean("a"))
6363
assertNotNull(context.getBean("b"))
6464
}
6565

66-
@Test
67-
fun registerBeanWithGradleStyleApi() {
68-
val context = GenericApplicationContext {
69-
registerBean<BeanA>()
70-
registerBean { BeanB(it.getBean<BeanA>()) }
71-
}
72-
context.refresh()
73-
assertNotNull(context.getBean<BeanA>())
74-
assertNotNull(context.getBean<BeanB>())
75-
}
76-
7766
class BeanA
7867

7968
class BeanB(val a: BeanA)

0 commit comments

Comments
 (0)