Merge pull request #12715 from Wenwei Liao
* gh-12715: Polish "Use modifiable set for @ServletComponentScan with no packages" Use modifiable set for @ServletComponentScan with no packages
This commit is contained in:
commit
399455f65a
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2016 the original author or authors.
|
||||
* Copyright 2012-2018 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.
|
||||
|
@ -17,7 +17,6 @@
|
|||
package org.springframework.boot.web.servlet;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
|
@ -84,8 +83,7 @@ class ServletComponentScanRegistrar implements ImportBeanDefinitionRegistrar {
|
|||
packagesToScan.add(ClassUtils.getPackageName(basePackageClass));
|
||||
}
|
||||
if (packagesToScan.isEmpty()) {
|
||||
return Collections
|
||||
.singleton(ClassUtils.getPackageName(metadata.getClassName()));
|
||||
packagesToScan.add(ClassUtils.getPackageName(metadata.getClassName()));
|
||||
}
|
||||
return packagesToScan;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2016 the original author or authors.
|
||||
* Copyright 2012-2018 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.
|
||||
|
@ -107,6 +107,37 @@ public class ServletComponentScanRegistrarTests {
|
|||
"com.example.bar", "com.example.baz");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void withNoBasePackagesScanningUsesBasePackageOfAnnotatedClass() {
|
||||
this.context = new AnnotationConfigApplicationContext(NoBasePackages.class);
|
||||
ServletComponentRegisteringPostProcessor postProcessor = this.context
|
||||
.getBean(ServletComponentRegisteringPostProcessor.class);
|
||||
assertThat(postProcessor.getPackagesToScan())
|
||||
.containsExactly("org.springframework.boot.web.servlet");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noBasePackageAndBasePackageAreCombinedCorrectly() {
|
||||
this.context = new AnnotationConfigApplicationContext(NoBasePackages.class,
|
||||
BasePackages.class);
|
||||
ServletComponentRegisteringPostProcessor postProcessor = this.context
|
||||
.getBean(ServletComponentRegisteringPostProcessor.class);
|
||||
assertThat(postProcessor.getPackagesToScan()).containsExactlyInAnyOrder(
|
||||
"org.springframework.boot.web.servlet", "com.example.foo",
|
||||
"com.example.bar");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void basePackageAndNoBasePackageAreCombinedCorrectly() {
|
||||
this.context = new AnnotationConfigApplicationContext(BasePackages.class,
|
||||
NoBasePackages.class);
|
||||
ServletComponentRegisteringPostProcessor postProcessor = this.context
|
||||
.getBean(ServletComponentRegisteringPostProcessor.class);
|
||||
assertThat(postProcessor.getPackagesToScan()).containsExactlyInAnyOrder(
|
||||
"org.springframework.boot.web.servlet", "com.example.foo",
|
||||
"com.example.bar");
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@ServletComponentScan({ "com.example.foo", "com.example.bar" })
|
||||
static class ValuePackages {
|
||||
|
@ -137,4 +168,10 @@ public class ServletComponentScanRegistrarTests {
|
|||
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@ServletComponentScan
|
||||
static class NoBasePackages {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue