Polishing

This commit is contained in:
Juergen Hoeller
2020-11-27 21:58:55 +01:00
parent 81c1b60f19
commit 7c33c70742
3 changed files with 23 additions and 19 deletions

View File

@@ -29,12 +29,11 @@ eclipse.classpath.file.whenMerged { classpath ->
classpath.entries.removeAll { entry -> (entry.path =~ /(?!.*?repack.*\.jar).*?\/([^\/]+)\/build\/libs\/[^\/]+\.jar/) } classpath.entries.removeAll { entry -> (entry.path =~ /(?!.*?repack.*\.jar).*?\/([^\/]+)\/build\/libs\/[^\/]+\.jar/) }
} }
// Use separate main/test outputs (prevents WTP from packaging test classes) // Use separate main/test outputs (prevents WTP from packaging test classes)
eclipse.classpath.defaultOutputDir = file(project.name+"/bin/eclipse") eclipse.classpath.defaultOutputDir = file(project.name+"/bin/eclipse")
eclipse.classpath.file.beforeMerged { classpath -> eclipse.classpath.file.beforeMerged { classpath ->
classpath.entries.findAll{ it instanceof SourceFolder }.each { classpath.entries.findAll{ it instanceof SourceFolder }.each {
if(it.output.startsWith("bin/")) { if (it.output.startsWith("bin/")) {
it.output = null it.output = null
} }
} }

View File

@@ -63,9 +63,8 @@ public class BeanFactoryUtilsTests {
@BeforeEach @BeforeEach
public void setUp() { public void setup() {
// Interesting hierarchical factory to test counts. // Interesting hierarchical factory to test counts.
// Slow to read so we cache it.
DefaultListableBeanFactory grandParent = new DefaultListableBeanFactory(); DefaultListableBeanFactory grandParent = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(grandParent).loadBeanDefinitions(ROOT_CONTEXT); new XmlBeanDefinitionReader(grandParent).loadBeanDefinitions(ROOT_CONTEXT);
@@ -93,7 +92,7 @@ public class BeanFactoryUtilsTests {
* Check that override doesn't count as two separate beans. * Check that override doesn't count as two separate beans.
*/ */
@Test @Test
public void testHierarchicalCountBeansWithOverride() throws Exception { public void testHierarchicalCountBeansWithOverride() {
// Leaf count // Leaf count
assertThat(this.listableBeanFactory.getBeanDefinitionCount() == 1).isTrue(); assertThat(this.listableBeanFactory.getBeanDefinitionCount() == 1).isTrue();
// Count minus duplicate // Count minus duplicate
@@ -101,14 +100,14 @@ public class BeanFactoryUtilsTests {
} }
@Test @Test
public void testHierarchicalNamesWithNoMatch() throws Exception { public void testHierarchicalNamesWithNoMatch() {
List<String> names = Arrays.asList( List<String> names = Arrays.asList(
BeanFactoryUtils.beanNamesForTypeIncludingAncestors(this.listableBeanFactory, NoOp.class)); BeanFactoryUtils.beanNamesForTypeIncludingAncestors(this.listableBeanFactory, NoOp.class));
assertThat(names.size()).isEqualTo(0); assertThat(names.size()).isEqualTo(0);
} }
@Test @Test
public void testHierarchicalNamesWithMatchOnlyInRoot() throws Exception { public void testHierarchicalNamesWithMatchOnlyInRoot() {
List<String> names = Arrays.asList( List<String> names = Arrays.asList(
BeanFactoryUtils.beanNamesForTypeIncludingAncestors(this.listableBeanFactory, IndexedTestBean.class)); BeanFactoryUtils.beanNamesForTypeIncludingAncestors(this.listableBeanFactory, IndexedTestBean.class));
assertThat(names.size()).isEqualTo(1); assertThat(names.size()).isEqualTo(1);
@@ -118,7 +117,7 @@ public class BeanFactoryUtilsTests {
} }
@Test @Test
public void testGetBeanNamesForTypeWithOverride() throws Exception { public void testGetBeanNamesForTypeWithOverride() {
List<String> names = Arrays.asList( List<String> names = Arrays.asList(
BeanFactoryUtils.beanNamesForTypeIncludingAncestors(this.listableBeanFactory, ITestBean.class)); BeanFactoryUtils.beanNamesForTypeIncludingAncestors(this.listableBeanFactory, ITestBean.class));
// includes 2 TestBeans from FactoryBeans (DummyFactory definitions) // includes 2 TestBeans from FactoryBeans (DummyFactory definitions)
@@ -236,7 +235,7 @@ public class BeanFactoryUtilsTests {
} }
@Test @Test
public void testHierarchicalResolutionWithOverride() throws Exception { public void testHierarchicalResolutionWithOverride() {
Object test3 = this.listableBeanFactory.getBean("test3"); Object test3 = this.listableBeanFactory.getBean("test3");
Object test = this.listableBeanFactory.getBean("test"); Object test = this.listableBeanFactory.getBean("test");
@@ -276,14 +275,14 @@ public class BeanFactoryUtilsTests {
} }
@Test @Test
public void testHierarchicalNamesForAnnotationWithNoMatch() throws Exception { public void testHierarchicalNamesForAnnotationWithNoMatch() {
List<String> names = Arrays.asList( List<String> names = Arrays.asList(
BeanFactoryUtils.beanNamesForAnnotationIncludingAncestors(this.listableBeanFactory, Override.class)); BeanFactoryUtils.beanNamesForAnnotationIncludingAncestors(this.listableBeanFactory, Override.class));
assertThat(names.size()).isEqualTo(0); assertThat(names.size()).isEqualTo(0);
} }
@Test @Test
public void testHierarchicalNamesForAnnotationWithMatchOnlyInRoot() throws Exception { public void testHierarchicalNamesForAnnotationWithMatchOnlyInRoot() {
List<String> names = Arrays.asList( List<String> names = Arrays.asList(
BeanFactoryUtils.beanNamesForAnnotationIncludingAncestors(this.listableBeanFactory, TestAnnotation.class)); BeanFactoryUtils.beanNamesForAnnotationIncludingAncestors(this.listableBeanFactory, TestAnnotation.class));
assertThat(names.size()).isEqualTo(1); assertThat(names.size()).isEqualTo(1);
@@ -293,7 +292,7 @@ public class BeanFactoryUtilsTests {
} }
@Test @Test
public void testGetBeanNamesForAnnotationWithOverride() throws Exception { public void testGetBeanNamesForAnnotationWithOverride() {
AnnotatedBean annotatedBean = new AnnotatedBean(); AnnotatedBean annotatedBean = new AnnotatedBean();
this.listableBeanFactory.registerSingleton("anotherAnnotatedBean", annotatedBean); this.listableBeanFactory.registerSingleton("anotherAnnotatedBean", annotatedBean);
List<String> names = Arrays.asList( List<String> names = Arrays.asList(
@@ -433,6 +432,7 @@ public class BeanFactoryUtilsTests {
String basePackage() default ""; String basePackage() default "";
} }
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@ControllerAdvice @ControllerAdvice
@interface RestControllerAdvice { @interface RestControllerAdvice {
@@ -444,18 +444,23 @@ public class BeanFactoryUtilsTests {
String basePackage() default ""; String basePackage() default "";
} }
@ControllerAdvice("com.example") @ControllerAdvice("com.example")
static class ControllerAdviceClass { static class ControllerAdviceClass {
} }
@RestControllerAdvice("com.example") @RestControllerAdvice("com.example")
static class RestControllerAdviceClass { static class RestControllerAdviceClass {
} }
static class TestBeanSmartFactoryBean implements SmartFactoryBean<TestBean> { static class TestBeanSmartFactoryBean implements SmartFactoryBean<TestBean> {
private final TestBean testBean = new TestBean("enigma", 42); private final TestBean testBean = new TestBean("enigma", 42);
private final boolean singleton; private final boolean singleton;
private final boolean prototype; private final boolean prototype;
TestBeanSmartFactoryBean(boolean singleton, boolean prototype) { TestBeanSmartFactoryBean(boolean singleton, boolean prototype) {
@@ -478,7 +483,7 @@ public class BeanFactoryUtilsTests {
return TestBean.class; return TestBean.class;
} }
public TestBean getObject() throws Exception { public TestBean getObject() {
// We don't really care if the actual instance is a singleton or prototype // We don't really care if the actual instance is a singleton or prototype
// for the tests that use this factory. // for the tests that use this factory.
return this.testBean; return this.testBean;

View File

@@ -67,7 +67,7 @@ The following example defines a class that has a dependency on the `Messenger` i
The following example implements the `Messenger` interface in Groovy: The following example implements the `Messenger` interface in Groovy:
[source,java,indent=0] [source,groovy,indent=0]
[subs="verbatim,quotes"] [subs="verbatim,quotes"]
---- ----
// from the file 'Messenger.groovy' // from the file 'Messenger.groovy'
@@ -282,7 +282,7 @@ surrounded by quotation marks. The following listing shows the changes that you
(the developer) should make to the `Messenger.groovy` source file when the (the developer) should make to the `Messenger.groovy` source file when the
execution of the program is paused: execution of the program is paused:
[source,java,indent=0] [source,groovy,indent=0]
[subs="verbatim,quotes"] [subs="verbatim,quotes"]
---- ----
package org.springframework.scripting package org.springframework.scripting
@@ -371,7 +371,7 @@ constructors and properties 100% clear, the following mixture of code and config
does not work: does not work:
.An approach that cannot work .An approach that cannot work
[source,java,indent=0] [source,groovy,indent=0]
[subs="verbatim,quotes"] [subs="verbatim,quotes"]
---- ----
// from the file 'Messenger.groovy' // from the file 'Messenger.groovy'
@@ -480,9 +480,9 @@ Finally, the following small application exercises the preceding configuration:
public class Main { public class Main {
public static void Main(String[] args) { public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
Calculator calc = (Calculator) ctx.getBean("calculator"); Calculator calc = ctx.getBean("calculator", Calculator.class);
System.out.println(calc.add(2, 8)); System.out.println(calc.add(2, 8));
} }
} }
@@ -697,7 +697,7 @@ beans, you have to enable the "`refreshable beans`" functionality. See
The following example shows an `org.springframework.web.servlet.mvc.Controller` implemented The following example shows an `org.springframework.web.servlet.mvc.Controller` implemented
by using the Groovy dynamic language: by using the Groovy dynamic language:
[source,java,indent=0] [source,groovy,indent=0]
[subs="verbatim,quotes"] [subs="verbatim,quotes"]
---- ----
// from the file '/WEB-INF/groovy/FortuneController.groovy' // from the file '/WEB-INF/groovy/FortuneController.groovy'