Browse Source

Polishing

pull/32158/head
Juergen Hoeller 2 years ago
parent
commit
e5f04e5ddf
  1. 12
      spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/AspectJBeanFactoryInitializationAotProcessor.java
  2. 3
      spring-core/src/main/java/org/springframework/aot/hint/support/FilePatternResourceHintsRegistrar.java
  3. 9
      spring-core/src/main/java/org/springframework/core/codec/CharSequenceEncoder.java
  4. 8
      spring-core/src/test/java/org/springframework/core/io/ClassPathResourceTests.java
  5. 6
      spring-core/src/test/java/org/springframework/core/io/ResourceTests.java
  6. 7
      spring-core/src/test/java/org/springframework/core/io/buffer/PooledDataBufferTests.java
  7. 9
      spring-core/src/test/java/org/springframework/core/io/support/PropertySourceProcessorTests.java
  8. 14
      spring-core/src/test/java/org/springframework/core/io/support/SpringFactoriesLoaderTests.java

12
spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/AspectJBeanFactoryInitializationAotProcessor.java

@ -40,11 +40,12 @@ import org.springframework.util.ClassUtils;
*/ */
class AspectJBeanFactoryInitializationAotProcessor implements BeanFactoryInitializationAotProcessor { class AspectJBeanFactoryInitializationAotProcessor implements BeanFactoryInitializationAotProcessor {
private static final boolean aspectJPresent = ClassUtils.isPresent( private static final boolean aspectJPresent = ClassUtils.isPresent("org.aspectj.lang.annotation.Pointcut",
"org.aspectj.lang.annotation.Pointcut", AspectJBeanFactoryInitializationAotProcessor.class.getClassLoader()); AspectJBeanFactoryInitializationAotProcessor.class.getClassLoader());
@Nullable
@Override @Override
@Nullable
public BeanFactoryInitializationAotContribution processAheadOfTime(ConfigurableListableBeanFactory beanFactory) { public BeanFactoryInitializationAotContribution processAheadOfTime(ConfigurableListableBeanFactory beanFactory) {
if (aspectJPresent) { if (aspectJPresent) {
return AspectDelegate.processAheadOfTime(beanFactory); return AspectDelegate.processAheadOfTime(beanFactory);
@ -52,6 +53,7 @@ class AspectJBeanFactoryInitializationAotProcessor implements BeanFactoryInitial
return null; return null;
} }
/** /**
* Inner class to avoid a hard dependency on AspectJ at runtime. * Inner class to avoid a hard dependency on AspectJ at runtime.
*/ */
@ -61,9 +63,8 @@ class AspectJBeanFactoryInitializationAotProcessor implements BeanFactoryInitial
private static AspectContribution processAheadOfTime(ConfigurableListableBeanFactory beanFactory) { private static AspectContribution processAheadOfTime(ConfigurableListableBeanFactory beanFactory) {
BeanFactoryAspectJAdvisorsBuilder builder = new BeanFactoryAspectJAdvisorsBuilder(beanFactory); BeanFactoryAspectJAdvisorsBuilder builder = new BeanFactoryAspectJAdvisorsBuilder(beanFactory);
List<Advisor> advisors = builder.buildAspectJAdvisors(); List<Advisor> advisors = builder.buildAspectJAdvisors();
return advisors.isEmpty() ? null : new AspectContribution(advisors); return (advisors.isEmpty() ? null : new AspectContribution(advisors));
} }
} }
@ -84,7 +85,6 @@ class AspectJBeanFactoryInitializationAotProcessor implements BeanFactoryInitial
} }
} }
} }
} }
} }

3
spring-core/src/main/java/org/springframework/aot/hint/support/FilePatternResourceHintsRegistrar.java

@ -156,12 +156,10 @@ public class FilePatternResourceHintsRegistrar {
private final List<String> fileExtensions = new ArrayList<>(); private final List<String> fileExtensions = new ArrayList<>();
private Builder() { private Builder() {
// no-op // no-op
} }
/** /**
* Consider the specified classpath locations. * Consider the specified classpath locations.
* <p>A location can either be a special {@value ResourceUtils#CLASSPATH_URL_PREFIX} * <p>A location can either be a special {@value ResourceUtils#CLASSPATH_URL_PREFIX}
@ -254,7 +252,6 @@ public class FilePatternResourceHintsRegistrar {
public void registerHints(ResourceHints hints, @Nullable ClassLoader classLoader) { public void registerHints(ResourceHints hints, @Nullable ClassLoader classLoader) {
build().registerHints(hints, classLoader); build().registerHints(hints, classLoader);
} }
} }
} }

9
spring-core/src/main/java/org/springframework/core/codec/CharSequenceEncoder.java

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2019 the original author or authors. * Copyright 2002-2023 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -51,8 +51,7 @@ public final class CharSequenceEncoder extends AbstractEncoder<CharSequence> {
*/ */
public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8; public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
private final ConcurrentMap<Charset, Float> charsetToMaxBytesPerChar = private final ConcurrentMap<Charset, Float> charsetToMaxBytesPerChar = new ConcurrentHashMap<>(3);
new ConcurrentHashMap<>(3);
private CharSequenceEncoder(MimeType... mimeTypes) { private CharSequenceEncoder(MimeType... mimeTypes) {
@ -105,8 +104,8 @@ public final class CharSequenceEncoder extends AbstractEncoder<CharSequence> {
} }
int calculateCapacity(CharSequence sequence, Charset charset) { int calculateCapacity(CharSequence sequence, Charset charset) {
float maxBytesPerChar = this.charsetToMaxBytesPerChar float maxBytesPerChar = this.charsetToMaxBytesPerChar.computeIfAbsent(charset,
.computeIfAbsent(charset, cs -> cs.newEncoder().maxBytesPerChar()); cs -> cs.newEncoder().maxBytesPerChar());
float maxBytesForSequence = sequence.length() * maxBytesPerChar; float maxBytesForSequence = sequence.length() * maxBytesPerChar;
return (int) Math.ceil(maxBytesForSequence); return (int) Math.ceil(maxBytesForSequence);
} }

8
spring-core/src/test/java/org/springframework/core/io/ClassPathResourceTests.java

@ -120,9 +120,9 @@ class ClassPathResourceTests {
Resource relative = resource.createRelative("subdir"); Resource relative = resource.createRelative("subdir");
assertThat(relative).isEqualTo(new ClassPathResource("dir/subdir")); assertThat(relative).isEqualTo(new ClassPathResource("dir/subdir"));
} }
} }
@Nested @Nested
class GetInputStream { class GetInputStream {
@ -151,9 +151,9 @@ class ClassPathResourceTests {
.isThrownBy(resource::getInputStream) .isThrownBy(resource::getInputStream)
.withMessageContaining(ABSOLUTE_PATH_TO_NONEXISTENT_RESOURCE); .withMessageContaining(ABSOLUTE_PATH_TO_NONEXISTENT_RESOURCE);
} }
} }
@Nested @Nested
class GetDescription { class GetDescription {
@ -190,9 +190,9 @@ class ClassPathResourceTests {
private static void assertDescription(ClassPathResource resource) { private static void assertDescription(ClassPathResource resource) {
assertThat(resource.getDescription()).isEqualTo("class path resource [%s]", ABSOLUTE_PATH_TO_NONEXISTENT_RESOURCE); assertThat(resource.getDescription()).isEqualTo("class path resource [%s]", ABSOLUTE_PATH_TO_NONEXISTENT_RESOURCE);
} }
} }
@Nested @Nested
class GetPath { class GetPath {
@ -209,9 +209,9 @@ class ClassPathResourceTests {
assertThat(((ClassPathResource) new ClassPathResource("", getClass()).createRelative("/test.html")).getPath()).isEqualTo("test.html"); assertThat(((ClassPathResource) new ClassPathResource("", getClass()).createRelative("/test.html")).getPath()).isEqualTo("test.html");
assertThat(((ClassPathResource) new ClassPathResource("", getClass()).createRelative("test.html")).getPath()).isEqualTo(PACKAGE_PATH + "/test.html"); assertThat(((ClassPathResource) new ClassPathResource("", getClass()).createRelative("test.html")).getPath()).isEqualTo(PACKAGE_PATH + "/test.html");
} }
} }
@Test @Test
void directoryNotReadable() throws Exception { void directoryNotReadable() throws Exception {
Resource fileDir = new ClassPathResource("org/springframework/core"); Resource fileDir = new ClassPathResource("org/springframework/core");

6
spring-core/src/test/java/org/springframework/core/io/ResourceTests.java

@ -173,9 +173,9 @@ class ResourceTests {
Resource resource = new ByteArrayResource("testString".getBytes(), "my description"); Resource resource = new ByteArrayResource("testString".getBytes(), "my description");
assertThat(resource.getDescription().contains("my description")).isTrue(); assertThat(resource.getDescription().contains("my description")).isTrue();
} }
} }
@Nested @Nested
class InputStreamResourceTests { class InputStreamResourceTests {
@ -215,6 +215,7 @@ class ResourceTests {
} }
} }
@Nested @Nested
class FileSystemResourceTests { class FileSystemResourceTests {
@ -286,6 +287,7 @@ class ResourceTests {
} }
} }
@Nested @Nested
class UrlResourceTests { class UrlResourceTests {
@ -421,6 +423,7 @@ class ResourceTests {
} }
} }
@Nested @Nested
class AbstractResourceTests { class AbstractResourceTests {
@ -467,7 +470,6 @@ class ResourceTests {
}; };
assertThat(resource.contentLength()).isEqualTo(3L); assertThat(resource.contentLength()).isEqualTo(3L);
} }
} }
} }

7
spring-core/src/test/java/org/springframework/core/io/buffer/PooledDataBufferTests.java

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2019 the original author or authors. * Copyright 2002-2023 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -39,6 +39,7 @@ class PooledDataBufferTests {
} }
} }
@Nested @Nested
class UnpooledByteBufAllocatorWithPreferDirectFalseTests implements PooledDataBufferTestingTrait { class UnpooledByteBufAllocatorWithPreferDirectFalseTests implements PooledDataBufferTestingTrait {
@ -48,6 +49,7 @@ class PooledDataBufferTests {
} }
} }
@Nested @Nested
class PooledByteBufAllocatorWithPreferDirectTrueTests implements PooledDataBufferTestingTrait { class PooledByteBufAllocatorWithPreferDirectTrueTests implements PooledDataBufferTestingTrait {
@ -57,6 +59,7 @@ class PooledDataBufferTests {
} }
} }
@Nested @Nested
class PooledByteBufAllocatorWithPreferDirectFalseTests implements PooledDataBufferTestingTrait { class PooledByteBufAllocatorWithPreferDirectFalseTests implements PooledDataBufferTestingTrait {
@ -66,6 +69,7 @@ class PooledDataBufferTests {
} }
} }
interface PooledDataBufferTestingTrait { interface PooledDataBufferTestingTrait {
DataBufferFactory createDataBufferFactory(); DataBufferFactory createDataBufferFactory();
@ -92,7 +96,6 @@ class PooledDataBufferTests {
buffer.release(); buffer.release();
assertThatIllegalStateException().isThrownBy(buffer::release); assertThatIllegalStateException().isThrownBy(buffer::release);
} }
} }
} }

9
spring-core/src/test/java/org/springframework/core/io/support/PropertySourceProcessorTests.java

@ -48,7 +48,9 @@ class PropertySourceProcessorTests {
private static final String PROPS_FILE = ClassUtils.classPackageAsResourcePath(PropertySourceProcessorTests.class) + "/test.properties"; private static final String PROPS_FILE = ClassUtils.classPackageAsResourcePath(PropertySourceProcessorTests.class) + "/test.properties";
private final StandardEnvironment environment = new StandardEnvironment(); private final StandardEnvironment environment = new StandardEnvironment();
private final ResourceLoader resourceLoader = new DefaultResourceLoader(); private final ResourceLoader resourceLoader = new DefaultResourceLoader();
private final PropertySourceProcessor processor = new PropertySourceProcessor(environment, resourceLoader); private final PropertySourceProcessor processor = new PropertySourceProcessor(environment, resourceLoader);
@ -59,12 +61,14 @@ class PropertySourceProcessorTests {
@Test @Test
void processorRegistersPropertySource() throws Exception { void processorRegistersPropertySource() throws Exception {
PropertySourceDescriptor descriptor = new PropertySourceDescriptor(List.of(PROPS_FILE), false, null, DefaultPropertySourceFactory.class, null); PropertySourceDescriptor descriptor = new PropertySourceDescriptor(
List.of(PROPS_FILE), false, null, DefaultPropertySourceFactory.class, null);
processor.processPropertySource(descriptor); processor.processPropertySource(descriptor);
assertThat(environment.getPropertySources()).hasSize(3); assertThat(environment.getPropertySources()).hasSize(3);
assertThat(environment.getProperty("enigma")).isEqualTo("42"); assertThat(environment.getProperty("enigma")).isEqualTo("42");
} }
@Nested @Nested
class FailOnErrorTests { class FailOnErrorTests {
@ -86,9 +90,9 @@ class PropertySourceProcessorTests {
assertThatExceptionOfType(exceptionType).isThrownBy(() -> processor.processPropertySource(descriptor)); assertThatExceptionOfType(exceptionType).isThrownBy(() -> processor.processPropertySource(descriptor));
assertThat(environment.getPropertySources()).hasSize(2); assertThat(environment.getPropertySources()).hasSize(2);
} }
} }
@Nested @Nested
class IgnoreResourceNotFoundTests { class IgnoreResourceNotFoundTests {
@ -127,7 +131,6 @@ class PropertySourceProcessorTests {
assertThatNoException().isThrownBy(() -> processor.processPropertySource(descriptor)); assertThatNoException().isThrownBy(() -> processor.processPropertySource(descriptor));
assertThat(environment.getPropertySources()).hasSize(2); assertThat(environment.getPropertySources()).hasSize(2);
} }
} }

14
spring-core/src/test/java/org/springframework/core/io/support/SpringFactoriesLoaderTests.java

@ -223,7 +223,6 @@ class SpringFactoriesLoaderTests {
assertThat(messages).hasSize(1); assertThat(messages).hasSize(1);
assertThat(messages.get(0)).startsWith("Unable to instantiate factory class"); assertThat(messages.get(0)).startsWith("Unable to instantiate factory class");
} }
} }
@ -292,9 +291,9 @@ class SpringFactoriesLoaderTests {
assertThat(resolver.resolve(Integer.class)).isEqualTo(123); assertThat(resolver.resolve(Integer.class)).isEqualTo(123);
assertThat(resolver.resolve(Long.class)).isEqualTo(234L); assertThat(resolver.resolve(Long.class)).isEqualTo(234L);
} }
} }
@Nested @Nested
class FactoryInstantiatorTests { class FactoryInstantiatorTests {
@ -350,14 +349,12 @@ class SpringFactoriesLoaderTests {
} }
static class DefaultConstructor { static class DefaultConstructor {
} }
static class SingleConstructor { static class SingleConstructor {
SingleConstructor(String arg) { SingleConstructor(String arg) {
} }
} }
static class MultiplePrivateAndSinglePublicConstructor { static class MultiplePrivateAndSinglePublicConstructor {
@ -368,7 +365,6 @@ class SpringFactoriesLoaderTests {
private MultiplePrivateAndSinglePublicConstructor(String arg, boolean extra) { private MultiplePrivateAndSinglePublicConstructor(String arg, boolean extra) {
} }
} }
static class MultiplePackagePrivateAndSinglePublicConstructor { static class MultiplePackagePrivateAndSinglePublicConstructor {
@ -379,22 +375,18 @@ class SpringFactoriesLoaderTests {
MultiplePackagePrivateAndSinglePublicConstructor(String arg, boolean extra) { MultiplePackagePrivateAndSinglePublicConstructor(String arg, boolean extra) {
} }
} }
static class SinglePackagePrivateConstructor { static class SinglePackagePrivateConstructor {
SinglePackagePrivateConstructor(String arg) { SinglePackagePrivateConstructor(String arg) {
} }
} }
static class SinglePrivateConstructor { static class SinglePrivateConstructor {
private SinglePrivateConstructor(String arg) { private SinglePrivateConstructor(String arg) {
} }
} }
static class MultiplePackagePrivateConstructors { static class MultiplePackagePrivateConstructors {
@ -405,11 +397,10 @@ class SpringFactoriesLoaderTests {
MultiplePackagePrivateConstructors(String arg, boolean extra) { MultiplePackagePrivateConstructors(String arg, boolean extra) {
} }
} }
} }
private static class LimitedClassLoader extends URLClassLoader { private static class LimitedClassLoader extends URLClassLoader {
private static final ClassLoader constructorArgumentFactories = new LimitedClassLoader("constructor-argument-factories"); private static final ClassLoader constructorArgumentFactories = new LimitedClassLoader("constructor-argument-factories");
@ -428,7 +419,6 @@ class SpringFactoriesLoaderTests {
throw new IllegalStateException(ex); throw new IllegalStateException(ex);
} }
} }
} }
} }

Loading…
Cancel
Save