diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver.java index 0c238f4d56..8cf27dfc83 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver.java @@ -82,8 +82,8 @@ public class QualifierAnnotationAutowireCandidateResolver extends GenericTypeAwa } /** - * Create a new QualifierAnnotationAutowireCandidateResolver - * for the given qualifier annotation type. + * Create a new {@code QualifierAnnotationAutowireCandidateResolver} for the given + * qualifier annotation type. * @param qualifierType the qualifier annotation to look for */ public QualifierAnnotationAutowireCandidateResolver(Class qualifierType) { @@ -92,8 +92,8 @@ public class QualifierAnnotationAutowireCandidateResolver extends GenericTypeAwa } /** - * Create a new QualifierAnnotationAutowireCandidateResolver - * for the given qualifier annotation types. + * Create a new {@code QualifierAnnotationAutowireCandidateResolver} for the given + * qualifier annotation types. * @param qualifierTypes the qualifier annotations to look for */ public QualifierAnnotationAutowireCandidateResolver(Set> qualifierTypes) { diff --git a/spring-context/src/test/java/org/springframework/beans/factory/support/InjectAnnotationAutowireContextTests.java b/spring-context/src/test/java/org/springframework/beans/factory/support/InjectAnnotationAutowireContextTests.java index 54dc5370f2..b4353ea40a 100644 --- a/spring-context/src/test/java/org/springframework/beans/factory/support/InjectAnnotationAutowireContextTests.java +++ b/spring-context/src/test/java/org/springframework/beans/factory/support/InjectAnnotationAutowireContextTests.java @@ -46,70 +46,71 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; */ class InjectAnnotationAutowireContextTests { + private static final String PERSON1 = "person1"; + + private static final String PERSON2 = "person2"; + private static final String JUERGEN = "juergen"; private static final String MARK = "mark"; @Test - void testAutowiredFieldWithSingleNonQualifiedCandidate() { + void autowiredFieldWithSingleNonQualifiedCandidate() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs = new ConstructorArgumentValues(); cavs.addGenericArgumentValue(JUERGEN); RootBeanDefinition person = new RootBeanDefinition(Person.class, cavs, null); - context.registerBeanDefinition(JUERGEN, person); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedFieldTestBean.class)); + context.registerBeanDefinition(PERSON1, person); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedFieldTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); - assertThatExceptionOfType(BeanCreationException.class).isThrownBy( - context::refresh) - .satisfies(ex -> { - assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); - assertThat(ex.getBeanName()).isEqualTo("autowired"); - }); + assertThatExceptionOfType(BeanCreationException.class) + .isThrownBy(context::refresh) + .satisfies(ex -> { + assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); + assertThat(ex.getBeanName()).isEqualTo("autowired"); + }); } @Test - void testAutowiredMethodParameterWithSingleNonQualifiedCandidate() { + void autowiredMethodParameterWithSingleNonQualifiedCandidate() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs = new ConstructorArgumentValues(); cavs.addGenericArgumentValue(JUERGEN); RootBeanDefinition person = new RootBeanDefinition(Person.class, cavs, null); - context.registerBeanDefinition(JUERGEN, person); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); + context.registerBeanDefinition(PERSON1, person); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); - assertThatExceptionOfType(BeanCreationException.class).isThrownBy( - context::refresh) - .satisfies(ex -> { - assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); - assertThat(ex.getBeanName()).isEqualTo("autowired"); - }); + assertThatExceptionOfType(BeanCreationException.class) + .isThrownBy(context::refresh) + .satisfies(ex -> { + assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); + assertThat(ex.getBeanName()).isEqualTo("autowired"); + }); } @Test - void testAutowiredConstructorArgumentWithSingleNonQualifiedCandidate() { + void autowiredConstructorArgumentWithSingleNonQualifiedCandidate() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs = new ConstructorArgumentValues(); cavs.addGenericArgumentValue(JUERGEN); RootBeanDefinition person = new RootBeanDefinition(Person.class, cavs, null); - context.registerBeanDefinition(JUERGEN, person); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedConstructorArgumentTestBean.class)); + context.registerBeanDefinition(PERSON1, person); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedConstructorArgumentTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); - assertThatExceptionOfType(UnsatisfiedDependencyException.class).isThrownBy( - context::refresh) - .satisfies(ex -> assertThat(ex.getBeanName()).isEqualTo("autowired")); + assertThatExceptionOfType(UnsatisfiedDependencyException.class) + .isThrownBy(context::refresh) + .satisfies(ex -> assertThat(ex.getBeanName()).isEqualTo("autowired")); } @Test - void testAutowiredFieldWithSingleQualifiedCandidate() { + void autowiredFieldWithSingleQualifiedCandidate() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs = new ConstructorArgumentValues(); cavs.addGenericArgumentValue(JUERGEN); RootBeanDefinition person = new RootBeanDefinition(Person.class, cavs, null); person.addQualifier(new AutowireCandidateQualifier(TestQualifier.class)); - context.registerBeanDefinition(JUERGEN, person); + context.registerBeanDefinition(PERSON1, person); context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedFieldTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); @@ -118,15 +119,14 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredMethodParameterWithSingleQualifiedCandidate() { + void autowiredMethodParameterWithSingleQualifiedCandidate() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs = new ConstructorArgumentValues(); cavs.addGenericArgumentValue(JUERGEN); RootBeanDefinition person = new RootBeanDefinition(Person.class, cavs, null); person.addQualifier(new AutowireCandidateQualifier(TestQualifier.class)); - context.registerBeanDefinition(JUERGEN, person); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); + context.registerBeanDefinition(PERSON1, person); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); QualifiedMethodParameterTestBean bean = @@ -135,15 +135,14 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredMethodParameterWithStaticallyQualifiedCandidate() { + void autowiredMethodParameterWithStaticallyQualifiedCandidate() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs = new ConstructorArgumentValues(); cavs.addGenericArgumentValue(JUERGEN); RootBeanDefinition person = new RootBeanDefinition(QualifiedPerson.class, cavs, null); - context.registerBeanDefinition(JUERGEN, + context.registerBeanDefinition(PERSON1, ScopedProxyUtils.createScopedProxy(new BeanDefinitionHolder(person, JUERGEN), context, true).getBeanDefinition()); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); QualifiedMethodParameterTestBean bean = @@ -152,18 +151,17 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredMethodParameterWithStaticallyQualifiedCandidateAmongOthers() { + void autowiredMethodParameterWithStaticallyQualifiedCandidateAmongOthers() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs = new ConstructorArgumentValues(); cavs.addGenericArgumentValue(JUERGEN); - RootBeanDefinition person = new RootBeanDefinition(QualifiedPerson.class, cavs, null); + RootBeanDefinition person1 = new RootBeanDefinition(QualifiedPerson.class, cavs, null); ConstructorArgumentValues cavs2 = new ConstructorArgumentValues(); cavs2.addGenericArgumentValue(MARK); RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null); - context.registerBeanDefinition(JUERGEN, person); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); QualifiedMethodParameterTestBean bean = @@ -172,15 +170,14 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredConstructorArgumentWithSingleQualifiedCandidate() { + void autowiredConstructorArgumentWithSingleQualifiedCandidate() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs = new ConstructorArgumentValues(); cavs.addGenericArgumentValue(JUERGEN); RootBeanDefinition person = new RootBeanDefinition(Person.class, cavs, null); person.addQualifier(new AutowireCandidateQualifier(TestQualifier.class)); - context.registerBeanDefinition(JUERGEN, person); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedConstructorArgumentTestBean.class)); + context.registerBeanDefinition(PERSON1, person); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedConstructorArgumentTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); QualifiedConstructorArgumentTestBean bean = @@ -189,7 +186,7 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredFieldWithMultipleNonQualifiedCandidates() { + void autowiredFieldWithMultipleNonQualifiedCandidates() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -197,21 +194,20 @@ class InjectAnnotationAutowireContextTests { ConstructorArgumentValues cavs2 = new ConstructorArgumentValues(); cavs2.addGenericArgumentValue(MARK); RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedFieldTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedFieldTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); - assertThatExceptionOfType(BeanCreationException.class).isThrownBy( - context::refresh) - .satisfies(ex -> { - assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); - assertThat(ex.getBeanName()).isEqualTo("autowired"); - }); + assertThatExceptionOfType(BeanCreationException.class) + .isThrownBy(context::refresh) + .satisfies(ex -> { + assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); + assertThat(ex.getBeanName()).isEqualTo("autowired"); + }); } @Test - void testAutowiredMethodParameterWithMultipleNonQualifiedCandidates() { + void autowiredMethodParameterWithMultipleNonQualifiedCandidates() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -219,21 +215,20 @@ class InjectAnnotationAutowireContextTests { ConstructorArgumentValues cavs2 = new ConstructorArgumentValues(); cavs2.addGenericArgumentValue(MARK); RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); - assertThatExceptionOfType(BeanCreationException.class).isThrownBy( - context::refresh) - .satisfies(ex -> { - assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); - assertThat(ex.getBeanName()).isEqualTo("autowired"); - }); + assertThatExceptionOfType(BeanCreationException.class) + .isThrownBy(context::refresh) + .satisfies(ex -> { + assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); + assertThat(ex.getBeanName()).isEqualTo("autowired"); + }); } @Test - void testAutowiredConstructorArgumentWithMultipleNonQualifiedCandidates() { + void autowiredConstructorArgumentWithMultipleNonQualifiedCandidates() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -241,18 +236,17 @@ class InjectAnnotationAutowireContextTests { ConstructorArgumentValues cavs2 = new ConstructorArgumentValues(); cavs2.addGenericArgumentValue(MARK); RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedConstructorArgumentTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedConstructorArgumentTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); - assertThatExceptionOfType(UnsatisfiedDependencyException.class).isThrownBy( - context::refresh) - .satisfies(ex -> assertThat(ex.getBeanName()).isEqualTo("autowired")); + assertThatExceptionOfType(UnsatisfiedDependencyException.class) + .isThrownBy(context::refresh) + .satisfies(ex -> assertThat(ex.getBeanName()).isEqualTo("autowired")); } @Test - void testAutowiredFieldResolvesQualifiedCandidate() { + void autowiredFieldResolvesQualifiedCandidate() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -261,10 +255,9 @@ class InjectAnnotationAutowireContextTests { ConstructorArgumentValues cavs2 = new ConstructorArgumentValues(); cavs2.addGenericArgumentValue(MARK); RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedFieldTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedFieldTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); QualifiedFieldTestBean bean = (QualifiedFieldTestBean) context.getBean("autowired"); @@ -272,7 +265,7 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredMethodParameterResolvesQualifiedCandidate() { + void autowiredMethodParameterResolvesQualifiedCandidate() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -281,10 +274,9 @@ class InjectAnnotationAutowireContextTests { ConstructorArgumentValues cavs2 = new ConstructorArgumentValues(); cavs2.addGenericArgumentValue(MARK); RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedMethodParameterTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); QualifiedMethodParameterTestBean bean = @@ -293,7 +285,7 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredConstructorArgumentResolvesQualifiedCandidate() { + void autowiredConstructorArgumentResolvesQualifiedCandidate() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -302,10 +294,9 @@ class InjectAnnotationAutowireContextTests { ConstructorArgumentValues cavs2 = new ConstructorArgumentValues(); cavs2.addGenericArgumentValue(MARK); RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedConstructorArgumentTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedConstructorArgumentTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); QualifiedConstructorArgumentTestBean bean = @@ -314,7 +305,7 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredFieldResolvesQualifiedCandidateWithDefaultValueAndNoValueOnBeanDefinition() { + void autowiredFieldResolvesQualifiedCandidateWithDefaultValueAndNoValueOnBeanDefinition() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -324,10 +315,9 @@ class InjectAnnotationAutowireContextTests { ConstructorArgumentValues cavs2 = new ConstructorArgumentValues(); cavs2.addGenericArgumentValue(MARK); RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedFieldWithDefaultValueTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedFieldWithDefaultValueTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); QualifiedFieldWithDefaultValueTestBean bean = @@ -336,7 +326,7 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredFieldDoesNotResolveCandidateWithDefaultValueAndConflictingValueOnBeanDefinition() { + void autowiredFieldDoesNotResolveCandidateWithDefaultValueAndConflictingValueOnBeanDefinition() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -346,21 +336,20 @@ class InjectAnnotationAutowireContextTests { ConstructorArgumentValues cavs2 = new ConstructorArgumentValues(); cavs2.addGenericArgumentValue(MARK); RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedFieldWithDefaultValueTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedFieldWithDefaultValueTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); - assertThatExceptionOfType(BeanCreationException.class).isThrownBy( - context::refresh) - .satisfies(ex -> { - assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); - assertThat(ex.getBeanName()).isEqualTo("autowired"); - }); + assertThatExceptionOfType(BeanCreationException.class) + .isThrownBy(context::refresh) + .satisfies(ex -> { + assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); + assertThat(ex.getBeanName()).isEqualTo("autowired"); + }); } @Test - void testAutowiredFieldResolvesWithDefaultValueAndExplicitDefaultValueOnBeanDefinition() { + void autowiredFieldResolvesWithDefaultValueAndExplicitDefaultValueOnBeanDefinition() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -370,10 +359,9 @@ class InjectAnnotationAutowireContextTests { ConstructorArgumentValues cavs2 = new ConstructorArgumentValues(); cavs2.addGenericArgumentValue(MARK); RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedFieldWithDefaultValueTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedFieldWithDefaultValueTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); QualifiedFieldWithDefaultValueTestBean bean = @@ -382,7 +370,7 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredFieldResolvesWithMultipleQualifierValues() { + void autowiredFieldResolvesWithMultipleQualifierValues() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -396,10 +384,9 @@ class InjectAnnotationAutowireContextTests { AutowireCandidateQualifier qualifier2 = new AutowireCandidateQualifier(TestQualifierWithMultipleAttributes.class); qualifier2.setAttribute("number", 123); person2.addQualifier(qualifier2); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedFieldWithMultipleAttributesTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedFieldWithMultipleAttributesTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); QualifiedFieldWithMultipleAttributesTestBean bean = @@ -408,7 +395,7 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredFieldDoesNotResolveWithMultipleQualifierValuesAndConflictingDefaultValue() { + void autowiredFieldDoesNotResolveWithMultipleQualifierValuesAndConflictingDefaultValue() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -423,21 +410,20 @@ class InjectAnnotationAutowireContextTests { qualifier2.setAttribute("number", 123); qualifier2.setAttribute("value", "not the default"); person2.addQualifier(qualifier2); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedFieldWithMultipleAttributesTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedFieldWithMultipleAttributesTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); - assertThatExceptionOfType(BeanCreationException.class).isThrownBy( - context::refresh) - .satisfies(ex -> { - assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); - assertThat(ex.getBeanName()).isEqualTo("autowired"); - }); + assertThatExceptionOfType(BeanCreationException.class) + .isThrownBy(context::refresh) + .satisfies(ex -> { + assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); + assertThat(ex.getBeanName()).isEqualTo("autowired"); + }); } @Test - void testAutowiredFieldResolvesWithMultipleQualifierValuesAndExplicitDefaultValue() { + void autowiredFieldResolvesWithMultipleQualifierValuesAndExplicitDefaultValue() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -452,10 +438,9 @@ class InjectAnnotationAutowireContextTests { qualifier2.setAttribute("number", 123); qualifier2.setAttribute("value", "default"); person2.addQualifier(qualifier2); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedFieldWithMultipleAttributesTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedFieldWithMultipleAttributesTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); context.refresh(); QualifiedFieldWithMultipleAttributesTestBean bean = @@ -464,7 +449,7 @@ class InjectAnnotationAutowireContextTests { } @Test - void testAutowiredFieldDoesNotResolveWithMultipleQualifierValuesAndMultipleMatchingCandidates() { + void autowiredFieldDoesNotResolveWithMultipleQualifierValuesAndMultipleMatchingCandidates() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue(JUERGEN); @@ -479,38 +464,37 @@ class InjectAnnotationAutowireContextTests { qualifier2.setAttribute("number", 123); qualifier2.setAttribute("value", "default"); person2.addQualifier(qualifier2); - context.registerBeanDefinition(JUERGEN, person1); - context.registerBeanDefinition(MARK, person2); - context.registerBeanDefinition("autowired", - new RootBeanDefinition(QualifiedFieldWithMultipleAttributesTestBean.class)); + context.registerBeanDefinition(PERSON1, person1); + context.registerBeanDefinition(PERSON2, person2); + context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedFieldWithMultipleAttributesTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); - assertThatExceptionOfType(BeanCreationException.class).isThrownBy( - context::refresh) - .satisfies(ex -> { - assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); - assertThat(ex.getBeanName()).isEqualTo("autowired"); - }); + assertThatExceptionOfType(BeanCreationException.class) + .isThrownBy(context::refresh) + .satisfies(ex -> { + assertThat(ex.getRootCause()).isInstanceOf(NoSuchBeanDefinitionException.class); + assertThat(ex.getBeanName()).isEqualTo("autowired"); + }); } @Test - void testAutowiredFieldDoesNotResolveWithBaseQualifierAndNonDefaultValueAndMultipleMatchingCandidates() { + void autowiredConstructorArgumentDoesNotResolveWithBaseQualifierAndNonDefaultValueAndMultipleMatchingCandidates() { GenericApplicationContext context = new GenericApplicationContext(); ConstructorArgumentValues cavs1 = new ConstructorArgumentValues(); cavs1.addGenericArgumentValue("the real juergen"); RootBeanDefinition person1 = new RootBeanDefinition(Person.class, cavs1, null); - person1.addQualifier(new AutowireCandidateQualifier(Qualifier.class, "juergen")); + person1.addQualifier(new AutowireCandidateQualifier(Qualifier.class, JUERGEN)); ConstructorArgumentValues cavs2 = new ConstructorArgumentValues(); cavs2.addGenericArgumentValue("juergen imposter"); RootBeanDefinition person2 = new RootBeanDefinition(Person.class, cavs2, null); - person2.addQualifier(new AutowireCandidateQualifier(Qualifier.class, "juergen")); + person2.addQualifier(new AutowireCandidateQualifier(Qualifier.class, JUERGEN)); context.registerBeanDefinition("juergen1", person1); context.registerBeanDefinition("juergen2", person2); context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedConstructorArgumentWithBaseQualifierNonDefaultValueTestBean.class)); AnnotationConfigUtils.registerAnnotationConfigProcessors(context); - assertThatExceptionOfType(UnsatisfiedDependencyException.class).isThrownBy( - context::refresh) - .satisfies(ex -> assertThat(ex.getBeanName()).isEqualTo("autowired")); + assertThatExceptionOfType(UnsatisfiedDependencyException.class) + .isThrownBy(context::refresh) + .satisfies(ex -> assertThat(ex.getBeanName()).isEqualTo("autowired")); } @@ -543,7 +527,7 @@ class InjectAnnotationAutowireContextTests { private static class QualifiedConstructorArgumentTestBean { - private Person person; + private final Person person; @Inject public QualifiedConstructorArgumentTestBean(@TestQualifier Person person) { @@ -593,13 +577,13 @@ class InjectAnnotationAutowireContextTests { } - public static class QualifiedConstructorArgumentWithBaseQualifierNonDefaultValueTestBean { + static class QualifiedConstructorArgumentWithBaseQualifierNonDefaultValueTestBean { private Person person; @Inject public QualifiedConstructorArgumentWithBaseQualifierNonDefaultValueTestBean( - @Named("juergen") Person person) { + @Named(JUERGEN) Person person) { this.person = person; }