ConfigurationWarningsApplicationContextInitializerTests Class — spring-boot Architecture
Architecture documentation for the ConfigurationWarningsApplicationContextInitializerTests class in ConfigurationWarningsApplicationContextInitializerTests.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot/src/test/java/org/springframework/boot/context/ConfigurationWarningsApplicationContextInitializerTests.java lines 47–159
@ExtendWith(OutputCaptureExtension.class)
class ConfigurationWarningsApplicationContextInitializerTests {
private static final String DEFAULT_SCAN_WARNING = "Your ApplicationContext is unlikely to "
+ "start due to a @ComponentScan of the default package.";
private static final String ORGSPRING_SCAN_WARNING = "Your ApplicationContext is unlikely to "
+ "start due to a @ComponentScan of 'org.springframework'.";
@Test
void logWarningInDefaultPackage(CapturedOutput output) {
load(InDefaultPackageConfiguration.class);
assertThat(output).contains(DEFAULT_SCAN_WARNING);
}
@Test
void logWarningInDefaultPackageAndMetaAnnotation(CapturedOutput output) {
load(InDefaultPackageWithMetaAnnotationConfiguration.class);
assertThat(output).contains(DEFAULT_SCAN_WARNING);
}
@Test
void noLogIfInRealPackage(CapturedOutput output) {
load(InRealPackageConfiguration.class);
assertThat(output).doesNotContain(DEFAULT_SCAN_WARNING);
}
@Test
void noLogWithoutComponentScanAnnotation(CapturedOutput output) {
load(InDefaultPackageWithoutScanConfiguration.class);
assertThat(output).doesNotContain(DEFAULT_SCAN_WARNING);
}
@Test
void noLogIfHasValue(CapturedOutput output) {
load(InDefaultPackageWithValueConfiguration.class);
assertThat(output).doesNotContain(DEFAULT_SCAN_WARNING);
}
@Test
void noLogIfHasBasePackages(CapturedOutput output) {
load(InDefaultPackageWithBasePackagesConfiguration.class);
assertThat(output).doesNotContain(DEFAULT_SCAN_WARNING);
}
@Test
void noLogIfHasBasePackageClasses(CapturedOutput output) {
load(InDefaultPackageWithBasePackageClassesConfiguration.class);
assertThat(output).doesNotContain(DEFAULT_SCAN_WARNING);
}
@Test
void logWarningInOrgSpringPackage(CapturedOutput output) {
load(InOrgSpringPackageConfiguration.class);
assertThat(output).contains(ORGSPRING_SCAN_WARNING);
}
@Test
void logWarningIfScanningProblemPackages(CapturedOutput output) {
load(InRealButScanningProblemPackages.class);
assertThat(output).contains("Your ApplicationContext is unlikely to start due to a "
+ "@ComponentScan of the default package, 'org.springframework'.");
}
private void load(Class<?> configClass) {
try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext()) {
new TestConfigurationWarningsApplicationContextInitializer().initialize(context);
context.register(configClass);
context.refresh();
}
}
/**
* Testable version of {@link ConfigurationWarningsApplicationContextInitializer}.
*/
static class TestConfigurationWarningsApplicationContextInitializer
extends ConfigurationWarningsApplicationContextInitializer {
@Override
protected Check[] getChecks() {
return new Check[] { new TestComponentScanPackageCheck() };
}
}
/**
* Testable ComponentScanPackageCheck that doesn't need to use the default or
* {@code org.springframework} package.
*/
static class TestComponentScanPackageCheck extends ComponentScanPackageCheck {
@Override
protected Set<String> getComponentScanningPackages(BeanDefinitionRegistry registry) {
Set<String> scannedPackages = super.getComponentScanningPackages(registry);
Set<String> result = new LinkedHashSet<>();
for (String scannedPackage : scannedPackages) {
if (scannedPackage.endsWith("dflt")) {
result.add("");
}
else if (scannedPackage.endsWith("orgspring")) {
result.add("org.springframework");
}
else {
result.add(scannedPackage);
}
}
return result;
}
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free