From a5d5026b67c5cd69235be811ba6dfe790d5b866d Mon Sep 17 00:00:00 2001 From: Yavuz Tas Date: Sat, 11 Jan 2020 14:14:04 +0100 Subject: [PATCH 1/2] source code for BAEL-3303 --- ...itionOverrideExceptionIntegrationTest.java | 27 +++++++++++++++++++ .../TestConfiguration1.java | 26 ++++++++++++++++++ .../TestConfiguration2.java | 25 +++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java create mode 100644 spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java create mode 100644 spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java diff --git a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java new file mode 100644 index 0000000000..17787a86a8 --- /dev/null +++ b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java @@ -0,0 +1,27 @@ +package com.baeldung.beandefinitionoverrideexception; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.ApplicationContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.assertj.core.api.Assertions.assertThat; + + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = {TestConfiguration1.class, TestConfiguration2.class}, properties = {"spring.main.allow-bean-definition-overriding=true"}) +public class SpringBootBeanDefinitionOverrideExceptionIntegrationTest { + + @Autowired + private ApplicationContext applicationContext; + + @Test + public void whenBeanOverridingAllowed_thenTestBean2OverridesTestBean1() { + Object testBean = applicationContext.getBean("testBean"); + + assertThat(testBean.getClass()).isEqualTo(TestConfiguration2.TestBean2.class); + } +} diff --git a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java new file mode 100644 index 0000000000..d22c4388ae --- /dev/null +++ b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java @@ -0,0 +1,26 @@ +package com.baeldung.beandefinitionoverrideexception; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan() +public class TestConfiguration1 { + + class TestBean1 { + + private String name; + + public String getName() { + return name; + } + + } + + @Bean + public TestBean1 testBean(){ + return new TestBean1(); + } + +} diff --git a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java new file mode 100644 index 0000000000..1a96240002 --- /dev/null +++ b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java @@ -0,0 +1,25 @@ +package com.baeldung.beandefinitionoverrideexception; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +public class TestConfiguration2 { + + class TestBean2 { + + private String name; + + public String getName() { + return name; + } + + } + + @Bean + public TestBean2 testBean(){ + return new TestBean2(); + } + +} From ad182a80afcb16e3ee7b9e4c977a9e689abaa4b3 Mon Sep 17 00:00:00 2001 From: Yavuz Tas Date: Sat, 11 Jan 2020 15:51:34 +0100 Subject: [PATCH 2/2] source code for BAEL-3303 --- ...BootBeanDefinitionOverrideExceptionIntegrationTest.java | 1 - .../TestConfiguration1.java | 7 ++++--- .../TestConfiguration2.java | 7 +++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java index 17787a86a8..c900bab26c 100644 --- a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java +++ b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java @@ -5,7 +5,6 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.ApplicationContext; -import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java index d22c4388ae..a0e8ea3028 100644 --- a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java +++ b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java @@ -1,11 +1,9 @@ package com.baeldung.beandefinitionoverrideexception; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration -@ComponentScan() public class TestConfiguration1 { class TestBean1 { @@ -16,10 +14,13 @@ public class TestConfiguration1 { return name; } + public void setName(String name) { + this.name = name; + } } @Bean - public TestBean1 testBean(){ + public TestBean1 testBean() { return new TestBean1(); } diff --git a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java index 1a96240002..842b84c866 100644 --- a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java +++ b/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java @@ -2,7 +2,6 @@ package com.baeldung.beandefinitionoverrideexception; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.stereotype.Component; @Configuration public class TestConfiguration2 { @@ -15,10 +14,14 @@ public class TestConfiguration2 { return name; } + public void setName(String name) { + this.name = name; + } + } @Bean - public TestBean2 testBean(){ + public TestBean2 testBean() { return new TestBean2(); }