Browse Source

Polishing

pull/27100/head
Sam Brannen 3 years ago
parent
commit
1bc236785c
  1. 4
      spring-context/src/main/java/org/springframework/context/annotation/BeanMethod.java
  2. 42
      spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java
  3. 6
      spring-context/src/test/java/org/springframework/context/annotation/BeanMethodPolymorphismTests.java
  4. 6
      spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java
  5. 38
      spring-core/src/test/java/org/springframework/core/type/AbstractClassMetadataMemberClassTests.java
  6. 4
      spring-core/src/test/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitorTests.java

4
spring-context/src/main/java/org/springframework/context/annotation/BeanMethod.java

@ -33,7 +33,7 @@ import org.springframework.core.type.MethodMetadata; @@ -33,7 +33,7 @@ import org.springframework.core.type.MethodMetadata;
*/
final class BeanMethod extends ConfigurationMethod {
public BeanMethod(MethodMetadata metadata, ConfigurationClass configurationClass) {
BeanMethod(MethodMetadata metadata, ConfigurationClass configurationClass) {
super(metadata, configurationClass);
}
@ -55,7 +55,7 @@ final class BeanMethod extends ConfigurationMethod { @@ -55,7 +55,7 @@ final class BeanMethod extends ConfigurationMethod {
private class NonOverridableMethodError extends Problem {
public NonOverridableMethodError() {
NonOverridableMethodError() {
super(String.format("@Bean method '%s' must not be private or final; change the method's modifiers to continue",
getMetadata().getMethodName()), getResourceLocation());
}

42
spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2021 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.
@ -36,7 +36,7 @@ import org.springframework.util.ClassUtils; @@ -36,7 +36,7 @@ import org.springframework.util.ClassUtils;
/**
* Represents a user-defined {@link Configuration @Configuration} class.
* Includes a set of {@link Bean} methods, including all such methods
* <p>Includes a set of {@link Bean} methods, including all such methods
* defined in the ancestry of the class, in a 'flattened-out' manner.
*
* @author Chris Beams
@ -74,7 +74,7 @@ final class ConfigurationClass { @@ -74,7 +74,7 @@ final class ConfigurationClass {
* @param beanName must not be {@code null}
* @see ConfigurationClass#ConfigurationClass(Class, ConfigurationClass)
*/
public ConfigurationClass(MetadataReader metadataReader, String beanName) {
ConfigurationClass(MetadataReader metadataReader, String beanName) {
Assert.notNull(beanName, "Bean name must not be null");
this.metadata = metadataReader.getAnnotationMetadata();
this.resource = metadataReader.getResource();
@ -89,7 +89,7 @@ final class ConfigurationClass { @@ -89,7 +89,7 @@ final class ConfigurationClass {
* @param importedBy the configuration class importing this one or {@code null}
* @since 3.1.1
*/
public ConfigurationClass(MetadataReader metadataReader, @Nullable ConfigurationClass importedBy) {
ConfigurationClass(MetadataReader metadataReader, @Nullable ConfigurationClass importedBy) {
this.metadata = metadataReader.getAnnotationMetadata();
this.resource = metadataReader.getResource();
this.importedBy.add(importedBy);
@ -101,7 +101,7 @@ final class ConfigurationClass { @@ -101,7 +101,7 @@ final class ConfigurationClass {
* @param beanName name of the {@code @Configuration} class bean
* @see ConfigurationClass#ConfigurationClass(Class, ConfigurationClass)
*/
public ConfigurationClass(Class<?> clazz, String beanName) {
ConfigurationClass(Class<?> clazz, String beanName) {
Assert.notNull(beanName, "Bean name must not be null");
this.metadata = AnnotationMetadata.introspect(clazz);
this.resource = new DescriptiveResource(clazz.getName());
@ -116,7 +116,7 @@ final class ConfigurationClass { @@ -116,7 +116,7 @@ final class ConfigurationClass {
* @param importedBy the configuration class importing this one (or {@code null})
* @since 3.1.1
*/
public ConfigurationClass(Class<?> clazz, @Nullable ConfigurationClass importedBy) {
ConfigurationClass(Class<?> clazz, @Nullable ConfigurationClass importedBy) {
this.metadata = AnnotationMetadata.introspect(clazz);
this.resource = new DescriptiveResource(clazz.getName());
this.importedBy.add(importedBy);
@ -128,7 +128,7 @@ final class ConfigurationClass { @@ -128,7 +128,7 @@ final class ConfigurationClass {
* @param beanName name of the {@code @Configuration} class bean
* @see ConfigurationClass#ConfigurationClass(Class, ConfigurationClass)
*/
public ConfigurationClass(AnnotationMetadata metadata, String beanName) {
ConfigurationClass(AnnotationMetadata metadata, String beanName) {
Assert.notNull(beanName, "Bean name must not be null");
this.metadata = metadata;
this.resource = new DescriptiveResource(metadata.getClassName());
@ -136,19 +136,19 @@ final class ConfigurationClass { @@ -136,19 +136,19 @@ final class ConfigurationClass {
}
public AnnotationMetadata getMetadata() {
AnnotationMetadata getMetadata() {
return this.metadata;
}
public Resource getResource() {
Resource getResource() {
return this.resource;
}
public String getSimpleName() {
String getSimpleName() {
return ClassUtils.getShortName(getMetadata().getClassName());
}
public void setBeanName(String beanName) {
void setBeanName(String beanName) {
this.beanName = beanName;
}
@ -171,7 +171,7 @@ final class ConfigurationClass { @@ -171,7 +171,7 @@ final class ConfigurationClass {
* Merge the imported-by declarations from the given configuration class into this one.
* @since 4.0.5
*/
public void mergeImportedBy(ConfigurationClass otherConfigClass) {
void mergeImportedBy(ConfigurationClass otherConfigClass) {
this.importedBy.addAll(otherConfigClass.importedBy);
}
@ -181,35 +181,35 @@ final class ConfigurationClass { @@ -181,35 +181,35 @@ final class ConfigurationClass {
* @since 4.0.5
* @see #isImported()
*/
public Set<ConfigurationClass> getImportedBy() {
Set<ConfigurationClass> getImportedBy() {
return this.importedBy;
}
public void addBeanMethod(BeanMethod method) {
void addBeanMethod(BeanMethod method) {
this.beanMethods.add(method);
}
public Set<BeanMethod> getBeanMethods() {
Set<BeanMethod> getBeanMethods() {
return this.beanMethods;
}
public void addImportedResource(String importedResource, Class<? extends BeanDefinitionReader> readerClass) {
void addImportedResource(String importedResource, Class<? extends BeanDefinitionReader> readerClass) {
this.importedResources.put(importedResource, readerClass);
}
public void addImportBeanDefinitionRegistrar(ImportBeanDefinitionRegistrar registrar, AnnotationMetadata importingClassMetadata) {
void addImportBeanDefinitionRegistrar(ImportBeanDefinitionRegistrar registrar, AnnotationMetadata importingClassMetadata) {
this.importBeanDefinitionRegistrars.put(registrar, importingClassMetadata);
}
public Map<ImportBeanDefinitionRegistrar, AnnotationMetadata> getImportBeanDefinitionRegistrars() {
Map<ImportBeanDefinitionRegistrar, AnnotationMetadata> getImportBeanDefinitionRegistrars() {
return this.importBeanDefinitionRegistrars;
}
public Map<String, Class<? extends BeanDefinitionReader>> getImportedResources() {
Map<String, Class<? extends BeanDefinitionReader>> getImportedResources() {
return this.importedResources;
}
public void validate(ProblemReporter problemReporter) {
void validate(ProblemReporter problemReporter) {
// A configuration class may not be final (CGLIB limitation) unless it declares proxyBeanMethods=false
Map<String, Object> attributes = this.metadata.getAnnotationAttributes(Configuration.class.getName());
if (attributes != null && (Boolean) attributes.get("proxyBeanMethods")) {
@ -244,7 +244,7 @@ final class ConfigurationClass { @@ -244,7 +244,7 @@ final class ConfigurationClass {
*/
private class FinalConfigurationProblem extends Problem {
public FinalConfigurationProblem() {
FinalConfigurationProblem() {
super(String.format("@Configuration class '%s' may not be final. Remove the final modifier to continue.",
getSimpleName()), new Location(getResource(), getMetadata()));
}

6
spring-context/src/test/java/org/springframework/context/annotation/BeanMethodPolymorphismTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2021 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.
@ -29,7 +29,7 @@ import static org.assertj.core.api.Assertions.assertThat; @@ -29,7 +29,7 @@ import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests regarding overloading and overriding of bean methods.
* Related to SPR-6618.
* <p>Related to SPR-6618.
*
* @author Chris Beams
* @author Phillip Webb
@ -41,7 +41,7 @@ public class BeanMethodPolymorphismTests { @@ -41,7 +41,7 @@ public class BeanMethodPolymorphismTests {
@Test
public void beanMethodDetectedOnSuperClass() {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(Config.class);
ctx.getBean("testBean", TestBean.class);
assertThat(ctx.getBean("testBean", TestBean.class)).isNotNull();
}
@Test

6
spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2020 the original author or authors.
* Copyright 2002-2021 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.
@ -165,12 +165,12 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements @@ -165,12 +165,12 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements
return annotatedMethods != null ? annotatedMethods : Collections.emptySet();
}
private boolean isAnnotatedMethod(Method method, String annotationName) {
private static boolean isAnnotatedMethod(Method method, String annotationName) {
return !method.isBridge() && method.getAnnotations().length > 0 &&
AnnotatedElementUtils.isAnnotated(method, annotationName);
}
static AnnotationMetadata from(Class<?> introspectedClass) {
return new StandardAnnotationMetadata(introspectedClass, true);
}

38
spring-core/src/test/java/org/springframework/core/type/AbstractClassMetadataMemberClassTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2021 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.
@ -20,7 +20,6 @@ import org.junit.jupiter.api.Test; @@ -20,7 +20,6 @@ import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Abstract base class for testing implementations of
* {@link ClassMetadata#getMemberClassNames()}.
@ -30,48 +29,45 @@ import static org.assertj.core.api.Assertions.assertThat; @@ -30,48 +29,45 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
public abstract class AbstractClassMetadataMemberClassTests {
public abstract ClassMetadata getClassMetadataFor(Class<?> clazz);
protected abstract ClassMetadata getClassMetadataFor(Class<?> clazz);
@Test
void withNoMemberClasses() {
ClassMetadata metadata = getClassMetadataFor(L0_a.class);
String[] nestedClasses = metadata.getMemberClassNames();
assertThat(nestedClasses).isEqualTo(new String[]{});
}
public static class L0_a {
assertThat(nestedClasses).isEmpty();
}
@Test
void withPublicMemberClasses() {
ClassMetadata metadata = getClassMetadataFor(L0_b.class);
String[] nestedClasses = metadata.getMemberClassNames();
assertThat(nestedClasses).isEqualTo(new String[]{L0_b.L1.class.getName()});
assertThat(nestedClasses).containsOnly(L0_b.L1.class.getName());
}
public static class L0_b {
public static class L1 { }
}
@Test
void withNonPublicMemberClasses() {
ClassMetadata metadata = getClassMetadataFor(L0_c.class);
String[] nestedClasses = metadata.getMemberClassNames();
assertThat(nestedClasses).isEqualTo(new String[]{L0_c.L1.class.getName()});
}
public static class L0_c {
private static class L1 { }
assertThat(nestedClasses).containsOnly(L0_c.L1.class.getName());
}
@Test
void againstMemberClass() {
ClassMetadata metadata = getClassMetadataFor(L0_b.L1.class);
String[] nestedClasses = metadata.getMemberClassNames();
assertThat(nestedClasses).isEqualTo(new String[]{});
assertThat(nestedClasses).isEmpty();
}
public static class L0_a {
}
public static class L0_b {
public static class L1 { }
}
public static class L0_c {
private static class L1 { }
}
}

4
spring-core/src/test/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitorTests.java

@ -65,8 +65,8 @@ class AnnotationMetadataReadingVisitorTests extends AbstractAnnotationMetadataTe @@ -65,8 +65,8 @@ class AnnotationMetadataReadingVisitorTests extends AbstractAnnotationMetadataTe
@Override
@Test
public void getAnnotationsReturnsDirectAnnotations() {
assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(
super::getAnnotationsReturnsDirectAnnotations);
assertThatExceptionOfType(UnsupportedOperationException.class)
.isThrownBy(super::getAnnotationsReturnsDirectAnnotations);
}
}

Loading…
Cancel
Save