Polishing
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
Reference in New Issue
Block a user