|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2012-2020 the original author or authors. |
|
|
|
|
* Copyright 2012-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. |
|
|
|
|
@ -28,6 +28,7 @@ import org.springframework.boot.BootstrapRegistry;
@@ -28,6 +28,7 @@ import org.springframework.boot.BootstrapRegistry;
|
|
|
|
|
import org.springframework.boot.DefaultBootstrapContext; |
|
|
|
|
import org.springframework.boot.SpringApplication; |
|
|
|
|
import org.springframework.boot.logging.DeferredLogFactory; |
|
|
|
|
import org.springframework.core.OverridingClassLoader; |
|
|
|
|
import org.springframework.core.env.ConfigurableEnvironment; |
|
|
|
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
|
|
@ -53,49 +54,65 @@ class ReflectionEnvironmentPostProcessorsFactoryTests {
@@ -53,49 +54,65 @@ class ReflectionEnvironmentPostProcessorsFactoryTests {
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void createWithClassNamesArrayCreatesFactory() { |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory( |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null, |
|
|
|
|
TestEnvironmentPostProcessor.class.getName()); |
|
|
|
|
assertThatFactory(factory).createsSinglePostProcessor(TestEnvironmentPostProcessor.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void createWithClassNamesListCreatesFactory() { |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory( |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null, |
|
|
|
|
Arrays.asList(TestEnvironmentPostProcessor.class.getName())); |
|
|
|
|
assertThatFactory(factory).createsSinglePostProcessor(TestEnvironmentPostProcessor.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void createWithClassNamesAndClassLoaderListCreatesFactory() { |
|
|
|
|
OverridingClassLoader classLoader = new OverridingClassLoader(getClass().getClassLoader()) { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
protected boolean isEligibleForOverriding(String className) { |
|
|
|
|
return super.isEligibleForOverriding(className) |
|
|
|
|
&& className.equals(TestEnvironmentPostProcessor.class.getName()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}; |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(classLoader, |
|
|
|
|
Arrays.asList(TestEnvironmentPostProcessor.class.getName())); |
|
|
|
|
assertThatFactory(factory).createsSinglePostProcessorWithClassLoader(classLoader); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void getEnvironmentPostProcessorsWhenHasDefaultConstructorCreatesPostProcessors() { |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory( |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null, |
|
|
|
|
TestEnvironmentPostProcessor.class.getName()); |
|
|
|
|
assertThatFactory(factory).createsSinglePostProcessor(TestEnvironmentPostProcessor.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void getEnvironmentPostProcessorsWhenHasLogFactoryConstructorCreatesPostProcessors() { |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory( |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null, |
|
|
|
|
TestLogFactoryEnvironmentPostProcessor.class.getName()); |
|
|
|
|
assertThatFactory(factory).createsSinglePostProcessor(TestLogFactoryEnvironmentPostProcessor.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void getEnvironmentPostProcessorsWhenHasLogConstructorCreatesPostProcessors() { |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory( |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null, |
|
|
|
|
TestLogEnvironmentPostProcessor.class.getName()); |
|
|
|
|
assertThatFactory(factory).createsSinglePostProcessor(TestLogEnvironmentPostProcessor.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void getEnvironmentPostProcessorsWhenHasBootstrapRegistryConstructorCreatesPostProcessors() { |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory( |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null, |
|
|
|
|
TestBootstrapRegistryEnvironmentPostProcessor.class.getName()); |
|
|
|
|
assertThatFactory(factory).createsSinglePostProcessor(TestBootstrapRegistryEnvironmentPostProcessor.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void getEnvironmentPostProcessorsWhenHasNoSuitableConstructorThrowsException() { |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory( |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null, |
|
|
|
|
BadEnvironmentPostProcessor.class.getName()); |
|
|
|
|
assertThatIllegalArgumentException() |
|
|
|
|
.isThrownBy(() -> factory.getEnvironmentPostProcessors(this.logFactory, this.bootstrapContext)) |
|
|
|
|
@ -115,11 +132,21 @@ class ReflectionEnvironmentPostProcessorsFactoryTests {
@@ -115,11 +132,21 @@ class ReflectionEnvironmentPostProcessorsFactoryTests {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void createsSinglePostProcessor(Class<?> expectedType) { |
|
|
|
|
EnvironmentPostProcessor processor = getSingleProcessor(); |
|
|
|
|
assertThat(processor).isInstanceOf(expectedType); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void createsSinglePostProcessorWithClassLoader(OverridingClassLoader classLoader) { |
|
|
|
|
EnvironmentPostProcessor processor = getSingleProcessor(); |
|
|
|
|
assertThat(processor.getClass().getClassLoader()).isSameAs(classLoader); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private EnvironmentPostProcessor getSingleProcessor() { |
|
|
|
|
List<EnvironmentPostProcessor> processors = this.factory.getEnvironmentPostProcessors( |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactoryTests.this.logFactory, |
|
|
|
|
ReflectionEnvironmentPostProcessorsFactoryTests.this.bootstrapContext); |
|
|
|
|
assertThat(processors).hasSize(1); |
|
|
|
|
assertThat(processors.get(0)).isInstanceOf(expectedType); |
|
|
|
|
return processors.get(0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|