diff --git a/spring-boot-modules/spring-boot-environment/pom.xml b/spring-boot-modules/spring-boot-environment/pom.xml
index d34bbd18c0..e3a8186cbf 100644
--- a/spring-boot-modules/spring-boot-environment/pom.xml
+++ b/spring-boot-modules/spring-boot-environment/pom.xml
@@ -33,6 +33,17 @@
spring-boot-starter-test
test
+
+ org.junit.vintage
+ junit-vintage-engine
+ test
+
+
+ org.hamcrest
+ hamcrest-core
+
+
+
org.springframework.boot
diff --git a/spring-boot-modules/spring-boot-properties-3/pom.xml b/spring-boot-modules/spring-boot-properties-3/pom.xml
index 44e2ef52ac..809fd6e2d4 100644
--- a/spring-boot-modules/spring-boot-properties-3/pom.xml
+++ b/spring-boot-modules/spring-boot-properties-3/pom.xml
@@ -26,12 +26,6 @@
org.springframework.boot
spring-boot-starter-test
test
-
-
- org.junit.vintage
- junit-vintage-engine
-
-
org.springframework.boot
diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/resources/application-multidocument-integration.properties b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application-multidocument-integration.properties
new file mode 100644
index 0000000000..c4eeba2589
--- /dev/null
+++ b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application-multidocument-integration.properties
@@ -0,0 +1,4 @@
+spring.datasource.password: 'password'
+spring.datasource.url: jdbc:mysql://localhost:3306/db_integration
+spring.datasource.username: user
+bael.property=integrationValue
\ No newline at end of file
diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.properties b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.properties
index eace1f0e46..c2bb5deb45 100644
--- a/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.properties
+++ b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.properties
@@ -8,4 +8,18 @@ spring.datasource.url=jdbc:h2:dev
spring.datasource.username=SA
spring.datasource.password=password
app.name=MyApp
-app.description=${app.name} is a Spring Boot application
\ No newline at end of file
+app.description=${app.name} is a Spring Boot application
+logging.file.name=myapplication.log
+bael.property=defaultValue
+#---
+spring.config.activate.on-profile=multidocument-dev
+spring.datasource.password=password
+spring.datasource.url=jdbc:h2:dev
+spring.datasource.username=SA
+bael.property=devValue
+#---
+spring.config.activate.on-profile=multidocument-prod
+spring.datasource.password=password
+spring.datasource.url=jdbc:h2:prod
+spring.datasource.username=prodUser
+bael.property=prodValue
\ No newline at end of file
diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml
index 00baeade9c..33aabb2459 100644
--- a/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml
+++ b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml
@@ -1,17 +1,17 @@
-logging:
- file:
- name: myapplication.log
-spring:
- datasource:
- password: 'password'
- url: jdbc:h2:dev
- username: SA
+bael:
+ root-level-property: defaultRootLevelValue
---
spring:
+ config:
+ activate:
+ on-profile: multidocument-staging
datasource:
password: 'password'
- url: jdbc:mysql://localhost:3306/db_production
- username: user
+ url: jdbc:h2:staging
+ username: SA
+bael:
+ property: stagingValue
+---
application:
servers:
- ip: '127.0.0.1'
diff --git a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/DefaultMultidocumentFilesIntegrationTest.java b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/DefaultMultidocumentFilesIntegrationTest.java
new file mode 100644
index 0000000000..af1f7f705f
--- /dev/null
+++ b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/DefaultMultidocumentFilesIntegrationTest.java
@@ -0,0 +1,26 @@
+package com.baeldung.boot.properties.multidocument;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+
+import com.baeldung.boot.properties.DemoApplication;
+
+@SpringBootTest(classes = { DemoApplication.class }, webEnvironment = WebEnvironment.MOCK)
+public class DefaultMultidocumentFilesIntegrationTest {
+
+ @Value("${bael.property}")
+ private String baelCustomProperty;
+
+ @Value("${bael.root-level-property}")
+ private String baelRootProperty;
+
+ @Test
+ public void givenDefaultProfileActive_whenApplicationStarts_thenDefaultPropertiesUser() {
+ assertThat(baelCustomProperty).isEqualTo("defaultValue");
+ assertThat(baelRootProperty).isEqualTo("defaultRootLevelValue");
+ }
+}
diff --git a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/DevMultidocumentFilesIntegrationTest.java b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/DevMultidocumentFilesIntegrationTest.java
new file mode 100644
index 0000000000..54188595c0
--- /dev/null
+++ b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/DevMultidocumentFilesIntegrationTest.java
@@ -0,0 +1,28 @@
+package com.baeldung.boot.properties.multidocument;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.ActiveProfiles;
+
+import com.baeldung.boot.properties.DemoApplication;
+
+@SpringBootTest(classes = { DemoApplication.class }, webEnvironment = WebEnvironment.MOCK)
+@ActiveProfiles("multidocument-dev")
+public class DevMultidocumentFilesIntegrationTest {
+
+ @Value("${bael.property}")
+ private String baelCustomProperty;
+
+ @Value("${bael.root-level-property}")
+ private String baelRootProperty;
+
+ @Test
+ public void givenDefaultProfileActive_whenApplicationStarts_thenDefaultPropertiesUser() {
+ assertThat(baelCustomProperty).isEqualTo("devValue");
+ assertThat(baelRootProperty).isEqualTo("defaultRootLevelValue");
+ }
+}
diff --git a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/IntegrationMultidocumentFilesIntegrationTest.java b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/IntegrationMultidocumentFilesIntegrationTest.java
new file mode 100644
index 0000000000..f7968f51ad
--- /dev/null
+++ b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/IntegrationMultidocumentFilesIntegrationTest.java
@@ -0,0 +1,28 @@
+package com.baeldung.boot.properties.multidocument;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.ActiveProfiles;
+
+import com.baeldung.boot.properties.DemoApplication;
+
+@SpringBootTest(classes = { DemoApplication.class }, webEnvironment = WebEnvironment.MOCK)
+@ActiveProfiles("multidocument-integration")
+public class IntegrationMultidocumentFilesIntegrationTest {
+
+ @Value("${bael.property}")
+ private String baelCustomProperty;
+
+ @Value("${bael.root-level-property}")
+ private String baelRootProperty;
+
+ @Test
+ public void givenProductionProfileActive_whenApplicationStarts_thenDefaultPropertiesUser() {
+ assertThat(baelCustomProperty).isEqualTo("integrationValue");
+ assertThat(baelRootProperty).isEqualTo("defaultRootLevelValue");
+ }
+}
diff --git a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/ProdMultidocumentFilesIntegrationTest.java b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/ProdMultidocumentFilesIntegrationTest.java
new file mode 100644
index 0000000000..9270995da0
--- /dev/null
+++ b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/ProdMultidocumentFilesIntegrationTest.java
@@ -0,0 +1,28 @@
+package com.baeldung.boot.properties.multidocument;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.ActiveProfiles;
+
+import com.baeldung.boot.properties.DemoApplication;
+
+@SpringBootTest(classes = { DemoApplication.class }, webEnvironment = WebEnvironment.MOCK)
+@ActiveProfiles("multidocument-prod")
+public class ProdMultidocumentFilesIntegrationTest {
+
+ @Value("${bael.property}")
+ private String baelCustomProperty;
+
+ @Value("${bael.root-level-property}")
+ private String baelRootProperty;
+
+ @Test
+ public void givenProductionProfileActive_whenApplicationStarts_thenDefaultPropertiesUser() {
+ assertThat(baelCustomProperty).isEqualTo("prodValue");
+ assertThat(baelRootProperty).isEqualTo("defaultRootLevelValue");
+ }
+}
diff --git a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/StagingMultidocumentFilesIntegrationTest.java b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/StagingMultidocumentFilesIntegrationTest.java
new file mode 100644
index 0000000000..8040c93ee0
--- /dev/null
+++ b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/multidocument/StagingMultidocumentFilesIntegrationTest.java
@@ -0,0 +1,28 @@
+package com.baeldung.boot.properties.multidocument;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.ActiveProfiles;
+
+import com.baeldung.boot.properties.DemoApplication;
+
+@SpringBootTest(classes = { DemoApplication.class }, webEnvironment = WebEnvironment.MOCK)
+@ActiveProfiles("multidocument-staging")
+public class StagingMultidocumentFilesIntegrationTest {
+
+ @Value("${bael.property}")
+ private String baelCustomProperty;
+
+ @Value("${bael.root-level-property}")
+ private String baelRootProperty;
+
+ @Test
+ public void givenProductionProfileActive_whenApplicationStarts_thenDefaultPropertiesUser() {
+ assertThat(baelCustomProperty).isEqualTo("stagingValue");
+ assertThat(baelRootProperty).isEqualTo("defaultRootLevelValue");
+ }
+}
diff --git a/spring-boot-modules/spring-boot-testing/pom.xml b/spring-boot-modules/spring-boot-testing/pom.xml
index 5bf626f165..50a1ace2fa 100644
--- a/spring-boot-modules/spring-boot-testing/pom.xml
+++ b/spring-boot-modules/spring-boot-testing/pom.xml
@@ -51,6 +51,17 @@
spring-boot-starter-test
test
+
+ org.junit.vintage
+ junit-vintage-engine
+ test
+
+
+ org.hamcrest
+ hamcrest-core
+
+
+
diff --git a/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/boot/configurationproperties/BindingYMLPropertiesUnitTest.java b/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/boot/configurationproperties/BindingYMLPropertiesUnitTest.java
index 5543f5e9e8..99c128997e 100644
--- a/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/boot/configurationproperties/BindingYMLPropertiesUnitTest.java
+++ b/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/boot/configurationproperties/BindingYMLPropertiesUnitTest.java
@@ -7,13 +7,13 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer;
+import org.springframework.boot.test.context.ConfigDataApplicationContextInitializer;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ExtendWith(SpringExtension.class)
-@ContextConfiguration(initializers = ConfigFileApplicationContextInitializer.class)
+@ContextConfiguration(initializers = ConfigDataApplicationContextInitializer.class)
@EnableConfigurationProperties(value = ServerConfig.class)
@ActiveProfiles("test")
public class BindingYMLPropertiesUnitTest {
diff --git a/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/prevent/commandline/application/runner/execution/LoadSpringContextIntegrationTest.java b/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/prevent/commandline/application/runner/execution/LoadSpringContextIntegrationTest.java
index 6698094550..483c67b7a2 100644
--- a/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/prevent/commandline/application/runner/execution/LoadSpringContextIntegrationTest.java
+++ b/spring-boot-modules/spring-boot-testing/src/test/java/com/baeldung/prevent/commandline/application/runner/execution/LoadSpringContextIntegrationTest.java
@@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.CommandLineRunner;
-import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer;
+import org.springframework.boot.test.context.ConfigDataApplicationContextInitializer;
import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@@ -19,7 +19,7 @@ import static org.mockito.Mockito.verify;
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = { ApplicationCommandLineRunnerApp.class },
- initializers = ConfigFileApplicationContextInitializer.class)
+ initializers = ConfigDataApplicationContextInitializer.class)
public class LoadSpringContextIntegrationTest {
@SpyBean
TaskService taskService;
diff --git a/spring-boot-modules/spring-boot-testing/src/test/resources/application.yml b/spring-boot-modules/spring-boot-testing/src/test/resources/application.yml
index 1b46b0f1ff..056b5baffc 100644
--- a/spring-boot-modules/spring-boot-testing/src/test/resources/application.yml
+++ b/spring-boot-modules/spring-boot-testing/src/test/resources/application.yml
@@ -1,5 +1,7 @@
spring:
- profiles: test
+ config:
+ activate:
+ on-profile: test
server:
address:
ip: 192.168.0.4
@@ -7,7 +9,9 @@ server:
imgs: /etc/test/imgs
---
spring:
- profiles: dev
+ config:
+ activate:
+ on-profile: dev
server:
address:
ip: 192.168.0.5
diff --git a/testing-modules/spring-testing/pom.xml b/testing-modules/spring-testing/pom.xml
index 9fe0fd8895..9e0c986bb2 100644
--- a/testing-modules/spring-testing/pom.xml
+++ b/testing-modules/spring-testing/pom.xml
@@ -39,6 +39,17 @@
spring-boot-starter-test
test
+
+ org.junit.vintage
+ junit-vintage-engine
+ test
+
+
+ org.hamcrest
+ hamcrest-core
+
+
+
org.springframework
spring-core