diff --git a/aws-app-sync/pom.xml b/aws-app-sync/pom.xml
index 1f915978ab..4c55d38d77 100644
--- a/aws-app-sync/pom.xml
+++ b/aws-app-sync/pom.xml
@@ -2,19 +2,16 @@
4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.2.6.RELEASE
-
-
-
- com.baeldung
aws-app-sync
- 0.0.1-SNAPSHOT
aws-app-sync
-
Spring Boot using AWS App Sync
+
+
+ com.baeldung
+ parent-boot-2
+ 0.0.1-SNAPSHOT
+ ../parent-boot-2
+
1.8
diff --git a/aws-app-sync/src/test/java/com/baeldung/awsappsync/AwsAppSyncApplicationTests.java b/aws-app-sync/src/test/java/com/baeldung/awsappsync/AwsAppSyncApplicationUnitTest.java
similarity index 98%
rename from aws-app-sync/src/test/java/com/baeldung/awsappsync/AwsAppSyncApplicationTests.java
rename to aws-app-sync/src/test/java/com/baeldung/awsappsync/AwsAppSyncApplicationUnitTest.java
index 2338cc29a1..8d83dd5b4b 100644
--- a/aws-app-sync/src/test/java/com/baeldung/awsappsync/AwsAppSyncApplicationTests.java
+++ b/aws-app-sync/src/test/java/com/baeldung/awsappsync/AwsAppSyncApplicationUnitTest.java
@@ -12,7 +12,7 @@ import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
@Disabled
-class AwsAppSyncApplicationTests {
+class AwsAppSyncApplicationUnitTest {
@Test
void givenGraphQuery_whenListEvents_thenReturnAllEvents() {
diff --git a/mapstruct/pom.xml b/mapstruct/pom.xml
index 11c8d9b41e..9fe6ab6485 100644
--- a/mapstruct/pom.xml
+++ b/mapstruct/pom.xml
@@ -16,7 +16,7 @@
org.mapstruct
- mapstruct-jdk8
+ mapstruct
${org.mapstruct.version}
@@ -71,12 +71,12 @@
- 1.3.0.Final
+ 1.4.0.Beta1
4.3.4.RELEASE
1.8
1.8
1.18.4
- 3.11.1
+ 3.16.1
diff --git a/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/dto/CompanyDTO.java b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/dto/CompanyDTO.java
new file mode 100644
index 0000000000..de3571e676
--- /dev/null
+++ b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/dto/CompanyDTO.java
@@ -0,0 +1,25 @@
+package com.baeldung.mapstruct.mappingCollections.dto;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CompanyDTO {
+
+ private List employees;
+
+ public List getEmployees() {
+ return employees;
+ }
+
+ public void setEmployees(List employees) {
+ this.employees = employees;
+ }
+
+ public void addEmployee(EmployeeDTO employeeDTO) {
+ if (employees == null) {
+ employees = new ArrayList<>();
+ }
+
+ employees.add(employeeDTO);
+ }
+}
diff --git a/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/dto/EmployeeDTO.java b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/dto/EmployeeDTO.java
new file mode 100644
index 0000000000..04e5a1f180
--- /dev/null
+++ b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/dto/EmployeeDTO.java
@@ -0,0 +1,23 @@
+package com.baeldung.mapstruct.mappingCollections.dto;
+
+public class EmployeeDTO {
+
+ private String firstName;
+ private String lastName;
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+}
diff --git a/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/dto/EmployeeFullNameDTO.java b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/dto/EmployeeFullNameDTO.java
new file mode 100644
index 0000000000..10b97bfce4
--- /dev/null
+++ b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/dto/EmployeeFullNameDTO.java
@@ -0,0 +1,14 @@
+package com.baeldung.mapstruct.mappingCollections.dto;
+
+public class EmployeeFullNameDTO {
+
+ private String fullName;
+
+ public String getFullName() {
+ return fullName;
+ }
+
+ public void setFullName(String fullName) {
+ this.fullName = fullName;
+ }
+}
diff --git a/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapper.java b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapper.java
new file mode 100644
index 0000000000..5310c0454e
--- /dev/null
+++ b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapper.java
@@ -0,0 +1,11 @@
+package com.baeldung.mapstruct.mappingCollections.mapper;
+
+import com.baeldung.mapstruct.mappingCollections.dto.CompanyDTO;
+import com.baeldung.mapstruct.mappingCollections.model.Company;
+import org.mapstruct.Mapper;
+
+@Mapper(uses = EmployeeMapper.class)
+public interface CompanyMapper {
+
+ CompanyDTO map(Company company);
+}
diff --git a/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapperAdderPreferred.java b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapperAdderPreferred.java
new file mode 100644
index 0000000000..e5cc43074e
--- /dev/null
+++ b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapperAdderPreferred.java
@@ -0,0 +1,12 @@
+package com.baeldung.mapstruct.mappingCollections.mapper;
+
+import com.baeldung.mapstruct.mappingCollections.dto.CompanyDTO;
+import com.baeldung.mapstruct.mappingCollections.model.Company;
+import org.mapstruct.CollectionMappingStrategy;
+import org.mapstruct.Mapper;
+
+@Mapper(collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED)
+public interface CompanyMapperAdderPreferred {
+
+ CompanyDTO map(Company company);
+}
diff --git a/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeFullNameMapper.java b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeFullNameMapper.java
new file mode 100644
index 0000000000..44d3961f2b
--- /dev/null
+++ b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeFullNameMapper.java
@@ -0,0 +1,20 @@
+package com.baeldung.mapstruct.mappingCollections.mapper;
+
+import com.baeldung.mapstruct.mappingCollections.dto.EmployeeFullNameDTO;
+import com.baeldung.mapstruct.mappingCollections.model.Employee;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface EmployeeFullNameMapper {
+
+ List map(List employees);
+
+ default EmployeeFullNameDTO map(Employee employee) {
+ EmployeeFullNameDTO employeeInfoDTO = new EmployeeFullNameDTO();
+ employeeInfoDTO.setFullName(employee.getFirstName() + " " + employee.getLastName());
+
+ return employeeInfoDTO;
+ }
+}
diff --git a/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeMapper.java b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeMapper.java
new file mode 100644
index 0000000000..45bf76c5a4
--- /dev/null
+++ b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeMapper.java
@@ -0,0 +1,19 @@
+package com.baeldung.mapstruct.mappingCollections.mapper;
+
+import com.baeldung.mapstruct.mappingCollections.dto.EmployeeDTO;
+import com.baeldung.mapstruct.mappingCollections.model.Employee;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+@Mapper
+public interface EmployeeMapper {
+
+ List map(List employees);
+
+ Set map(Set employees);
+
+ Map map(Map idEmployeeMap);
+}
diff --git a/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/model/Company.java b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/model/Company.java
new file mode 100644
index 0000000000..f96e0b7aea
--- /dev/null
+++ b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/model/Company.java
@@ -0,0 +1,16 @@
+package com.baeldung.mapstruct.mappingCollections.model;
+
+import java.util.List;
+
+public class Company {
+
+ private List employees;
+
+ public List getEmployees() {
+ return employees;
+ }
+
+ public void setEmployees(List employees) {
+ this.employees = employees;
+ }
+}
diff --git a/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/model/Employee.java b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/model/Employee.java
new file mode 100644
index 0000000000..db6809d53f
--- /dev/null
+++ b/mapstruct/src/main/java/com/baeldung/mapstruct/mappingCollections/model/Employee.java
@@ -0,0 +1,28 @@
+package com.baeldung.mapstruct.mappingCollections.model;
+
+public class Employee {
+
+ private String firstName;
+ private String lastName;
+
+ public Employee(String firstName, String lastName) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+}
diff --git a/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapperAdderPreferredUnitTest.java b/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapperAdderPreferredUnitTest.java
new file mode 100644
index 0000000000..ad0096f189
--- /dev/null
+++ b/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapperAdderPreferredUnitTest.java
@@ -0,0 +1,32 @@
+package com.baeldung.mapstruct.mappingCollections.mapper;
+
+import com.baeldung.mapstruct.mappingCollections.dto.CompanyDTO;
+import com.baeldung.mapstruct.mappingCollections.dto.EmployeeDTO;
+import com.baeldung.mapstruct.mappingCollections.model.Company;
+import com.baeldung.mapstruct.mappingCollections.model.Employee;
+import org.junit.jupiter.api.Test;
+import org.mapstruct.factory.Mappers;
+
+import java.util.Collections;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class CompanyMapperAdderPreferredUnitTest {
+
+ private CompanyMapperAdderPreferred companyMapper = Mappers.getMapper(CompanyMapperAdderPreferred.class);
+
+ @Test
+ void whenMappingToCompanyDTO_thenExpectCorrectMappingResult() {
+ Employee employee = new Employee("John", "Doe");
+ Company company = new Company();
+ company.setEmployees(Collections.singletonList(employee));
+
+ CompanyDTO result = companyMapper.map(company);
+
+ List employees = result.getEmployees();
+ assertThat(employees).hasSize(1);
+ assertThat(employees.get(0).getFirstName()).isEqualTo("John");
+ assertThat(employees.get(0).getLastName()).isEqualTo("Doe");
+ }
+}
\ No newline at end of file
diff --git a/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapperUnitTest.java b/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapperUnitTest.java
new file mode 100644
index 0000000000..a556c88ce5
--- /dev/null
+++ b/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/CompanyMapperUnitTest.java
@@ -0,0 +1,32 @@
+package com.baeldung.mapstruct.mappingCollections.mapper;
+
+import com.baeldung.mapstruct.mappingCollections.dto.CompanyDTO;
+import com.baeldung.mapstruct.mappingCollections.dto.EmployeeDTO;
+import com.baeldung.mapstruct.mappingCollections.model.Company;
+import com.baeldung.mapstruct.mappingCollections.model.Employee;
+import org.junit.jupiter.api.Test;
+import org.mapstruct.factory.Mappers;
+
+import java.util.Collections;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class CompanyMapperUnitTest {
+
+ private CompanyMapper companyMapper = Mappers.getMapper(CompanyMapper.class);
+
+ @Test
+ void whenMappingToCompanyDTO_thenExpectCorrectMappingResult() {
+ Employee employee = new Employee("John", "Doe");
+ Company company = new Company();
+ company.setEmployees(Collections.singletonList(employee));
+
+ CompanyDTO result = companyMapper.map(company);
+
+ List employees = result.getEmployees();
+ assertThat(employees).hasSize(1);
+ assertThat(employees.get(0).getFirstName()).isEqualTo("John");
+ assertThat(employees.get(0).getLastName()).isEqualTo("Doe");
+ }
+}
\ No newline at end of file
diff --git a/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeFullNameMapperUnitTest.java b/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeFullNameMapperUnitTest.java
new file mode 100644
index 0000000000..ba010a2bca
--- /dev/null
+++ b/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeFullNameMapperUnitTest.java
@@ -0,0 +1,26 @@
+package com.baeldung.mapstruct.mappingCollections.mapper;
+
+import com.baeldung.mapstruct.mappingCollections.dto.EmployeeFullNameDTO;
+import com.baeldung.mapstruct.mappingCollections.model.Employee;
+import org.junit.jupiter.api.Test;
+import org.mapstruct.factory.Mappers;
+
+import java.util.Collections;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class EmployeeFullNameMapperUnitTest {
+
+ private EmployeeFullNameMapper employeeMapper = Mappers.getMapper(EmployeeFullNameMapper.class);
+
+ @Test
+ void whenMappingToEmployeeFullNameDTOList_thenExpectCorrectMappingResult() {
+ Employee employee = new Employee("John", "Doe");
+
+ List result = employeeMapper.map(Collections.singletonList(employee));
+
+ assertThat(result).hasSize(1);
+ assertThat(result.get(0).getFullName()).isEqualTo("John Doe");
+ }
+}
\ No newline at end of file
diff --git a/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeMapperUnitTest.java b/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeMapperUnitTest.java
new file mode 100644
index 0000000000..dfb58252dc
--- /dev/null
+++ b/mapstruct/src/test/java/com/baeldung/mapstruct/mappingCollections/mapper/EmployeeMapperUnitTest.java
@@ -0,0 +1,51 @@
+package com.baeldung.mapstruct.mappingCollections.mapper;
+
+import com.baeldung.mapstruct.mappingCollections.dto.EmployeeDTO;
+import com.baeldung.mapstruct.mappingCollections.model.Employee;
+import org.junit.jupiter.api.Test;
+import org.mapstruct.factory.Mappers;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class EmployeeMapperUnitTest {
+
+ private EmployeeMapper employeeMapper = Mappers.getMapper(EmployeeMapper.class);
+
+ @Test
+ void whenMappingToEmployeeDTOList_thenExpectCorrectMappingResult() {
+ Employee employee = new Employee("John", "Doe");
+
+ List result = employeeMapper.map(Collections.singletonList(employee));
+
+ assertThat(result).hasSize(1);
+ assertThat(result.get(0).getFirstName()).isEqualTo("John");
+ assertThat(result.get(0).getLastName()).isEqualTo("Doe");
+ }
+
+ @Test
+ void whenMappingToEmployeeDTOSet_thenExpectCorrectMappingResult() {
+ Employee employee = new Employee("John", "Doe");
+
+ Set result = employeeMapper.map(Collections.singleton(employee));
+
+ assertThat(result).hasSize(1);
+ assertThat(result.iterator().next().getFirstName()).isEqualTo("John");
+ assertThat(result.iterator().next().getLastName()).isEqualTo("Doe");
+ }
+
+ @Test
+ void whenMappingToEmployeeDTOMap_thenExpectCorrectMappingResult() {
+ Employee employee = new Employee("John", "Doe");
+
+ Map result = employeeMapper.map(Collections.singletonMap("1", employee));
+
+ assertThat(result).hasSize(1);
+ assertThat(result.get("1").getFirstName()).isEqualTo("John");
+ assertThat(result.get("1").getLastName()).isEqualTo("Doe");
+ }
+}
\ No newline at end of file
diff --git a/persistence-modules/r2dbc/pom.xml b/persistence-modules/r2dbc/pom.xml
index b1de88e9ea..d0f53ba37c 100644
--- a/persistence-modules/r2dbc/pom.xml
+++ b/persistence-modules/r2dbc/pom.xml
@@ -10,11 +10,11 @@
Sample R2DBC Project
- org.springframework.boot
- spring-boot-starter-parent
- 2.1.6.RELEASE
-
-
+ com.baeldung
+ parent-boot-2
+ 0.0.1-SNAPSHOT
+ ../../parent-boot-2
+
diff --git a/persistence-modules/r2dbc/src/test/java/com/baeldung/examples/r2dbc/R2dbcExampleApplicationTests.java b/persistence-modules/r2dbc/src/test/java/com/baeldung/examples/r2dbc/R2dbcExampleApplicationIntegrationTest.java
similarity index 98%
rename from persistence-modules/r2dbc/src/test/java/com/baeldung/examples/r2dbc/R2dbcExampleApplicationTests.java
rename to persistence-modules/r2dbc/src/test/java/com/baeldung/examples/r2dbc/R2dbcExampleApplicationIntegrationTest.java
index 3fb9e24a8e..7c3badc976 100644
--- a/persistence-modules/r2dbc/src/test/java/com/baeldung/examples/r2dbc/R2dbcExampleApplicationTests.java
+++ b/persistence-modules/r2dbc/src/test/java/com/baeldung/examples/r2dbc/R2dbcExampleApplicationIntegrationTest.java
@@ -19,7 +19,7 @@ import reactor.core.publisher.Flux;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
-public class R2dbcExampleApplicationTests {
+public class R2dbcExampleApplicationIntegrationTest {
@Autowired
diff --git a/spring-boot-modules/spring-boot-properties-2/src/main/java/com/baeldung/properties/yamlmap/factory/YamlPropertySourceFactory.java b/spring-boot-modules/spring-boot-properties-2/src/main/java/com/baeldung/properties/yamlmap/factory/YamlPropertySourceFactory.java
deleted file mode 100644
index e46f7c9cba..0000000000
--- a/spring-boot-modules/spring-boot-properties-2/src/main/java/com/baeldung/properties/yamlmap/factory/YamlPropertySourceFactory.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.baeldung.properties.yamlmap.factory;
-
-import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
-import org.springframework.core.env.PropertiesPropertySource;
-import org.springframework.core.env.PropertySource;
-import org.springframework.core.io.support.EncodedResource;
-import org.springframework.core.io.support.PropertySourceFactory;
-
-import java.io.IOException;
-import java.util.Properties;
-
-public class YamlPropertySourceFactory implements PropertySourceFactory {
-
- @Override
- public PropertySource> createPropertySource(String name, EncodedResource encodedResource) throws IOException {
- YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean();
- factory.setResources(encodedResource.getResource());
-
- Properties properties = factory.getObject();
-
- return new PropertiesPropertySource(encodedResource.getResource()
- .getFilename(), properties);
- }
-
-}
diff --git a/spring-boot-modules/spring-boot-properties-2/src/main/java/com/baeldung/properties/yamlmap/pojo/ServerProperties.java b/spring-boot-modules/spring-boot-properties-2/src/main/java/com/baeldung/properties/yamlmap/pojo/ServerProperties.java
index 38b44fddc7..9d54daf070 100644
--- a/spring-boot-modules/spring-boot-properties-2/src/main/java/com/baeldung/properties/yamlmap/pojo/ServerProperties.java
+++ b/spring-boot-modules/spring-boot-properties-2/src/main/java/com/baeldung/properties/yamlmap/pojo/ServerProperties.java
@@ -4,13 +4,9 @@ import java.util.List;
import java.util.Map;
import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
-import com.baeldung.properties.yamlmap.factory.YamlPropertySourceFactory;
-
@Component
-@PropertySource(value = "classpath:server.yml", factory = YamlPropertySourceFactory.class)
@ConfigurationProperties(prefix = "server")
public class ServerProperties {
diff --git a/spring-boot-modules/spring-boot-properties-2/src/main/resources/server.yml b/spring-boot-modules/spring-boot-properties-2/src/main/resources/application.yml
similarity index 100%
rename from spring-boot-modules/spring-boot-properties-2/src/main/resources/server.yml
rename to spring-boot-modules/spring-boot-properties-2/src/main/resources/application.yml
diff --git a/spring-cloud/spring-cloud-circuit-breaker/pom.xml b/spring-cloud/spring-cloud-circuit-breaker/pom.xml
index a179f3c831..ae44fa8199 100644
--- a/spring-cloud/spring-cloud-circuit-breaker/pom.xml
+++ b/spring-cloud/spring-cloud-circuit-breaker/pom.xml
@@ -16,14 +16,14 @@
- spring-snapshots
- Spring Snapshots
- https://repo.spring.io/libs-snapshot
+ spring-release
+ Spring Release
+ https://repo.spring.io/release
- true
+ false
- false
+ true
diff --git a/spring-cloud/spring-cloud-stream/spring-cloud-stream-kafka/pom.xml b/spring-cloud/spring-cloud-stream/spring-cloud-stream-kafka/pom.xml
index 3a4cf6c56e..669499efb7 100644
--- a/spring-cloud/spring-cloud-stream/spring-cloud-stream-kafka/pom.xml
+++ b/spring-cloud/spring-cloud-stream/spring-cloud-stream-kafka/pom.xml
@@ -8,9 +8,10 @@
Simple Spring Cloud Stream
- org.springframework.boot
- spring-boot-starter-parent
- 2.1.5.RELEASE
+ com.baeldung
+ parent-boot-2
+ 0.0.1-SNAPSHOT
+ ../../../parent-boot-2
diff --git a/spring-cloud/spring-cloud-stream/spring-cloud-stream-kinesis/pom.xml b/spring-cloud/spring-cloud-stream/spring-cloud-stream-kinesis/pom.xml
index 3817f2747a..bb515fcb36 100644
--- a/spring-cloud/spring-cloud-stream/spring-cloud-stream-kinesis/pom.xml
+++ b/spring-cloud/spring-cloud-stream/spring-cloud-stream-kinesis/pom.xml
@@ -7,10 +7,10 @@
spring-cloud-stream-kinesis
- org.springframework.boot
- spring-boot-starter-parent
- 2.1.8.RELEASE
-
+ com.baeldung
+ parent-boot-2
+ 0.0.1-SNAPSHOT
+ ../../../parent-boot-2
diff --git a/structurizr/pom.xml b/structurizr/pom.xml
index f1b4355dcf..b8efba0937 100644
--- a/structurizr/pom.xml
+++ b/structurizr/pom.xml
@@ -42,7 +42,7 @@
1.8
1.8
- 1.0.0-RC5
+ 1.0.0
\ No newline at end of file
diff --git a/structurizr/src/main/java/com/baeldung/structurizr/StructurizrSimple.java b/structurizr/src/main/java/com/baeldung/structurizr/StructurizrSimple.java
index b33a1d9a77..3f52ea657f 100644
--- a/structurizr/src/main/java/com/baeldung/structurizr/StructurizrSimple.java
+++ b/structurizr/src/main/java/com/baeldung/structurizr/StructurizrSimple.java
@@ -2,6 +2,8 @@ package com.baeldung.structurizr;
import java.io.File;
import java.io.StringWriter;
+import java.util.HashSet;
+import java.util.Set;
import com.structurizr.Workspace;
import com.structurizr.analysis.ComponentFinder;
@@ -40,15 +42,31 @@ public class StructurizrSimple {
addContainers(workspace);
addComponents(workspace);
addSpringComponents(workspace);
- exportToPlantUml(workspace.getViews().getViewWithKey(SOFTWARE_SYSTEM_VIEW));
- exportToPlantUml(workspace.getViews().getViewWithKey(CONTAINER_VIEW));
- exportToPlantUml(workspace.getViews().getViewWithKey(COMPONENT_VIEW));
+ exportToPlantUml(findViewWithKey(workspace.getViews(), SOFTWARE_SYSTEM_VIEW));
+ exportToPlantUml(findViewWithKey(workspace.getViews(), CONTAINER_VIEW));
+ exportToPlantUml(findViewWithKey(workspace.getViews(), COMPONENT_VIEW));
- exportToPlantUml(workspace.getViews().getViewWithKey(JVM2_COMPONENT_VIEW));
+ exportToPlantUml(findViewWithKey(workspace.getViews(), JVM2_COMPONENT_VIEW));
addStyles(workspace.getViews());
//uploadToExternal(workspace);
}
+
+ private static View findViewWithKey(ViewSet viewSet, String key) {
+ if (key == null) {
+ throw new IllegalArgumentException("A key must be specified.");
+ }
+
+ Set views = new HashSet<>();
+ views.addAll(viewSet.getSystemLandscapeViews());
+ views.addAll(viewSet.getSystemContextViews());
+ views.addAll(viewSet.getContainerViews());
+ views.addAll(viewSet.getComponentViews());
+ views.addAll(viewSet.getDynamicViews());
+ views.addAll(viewSet.getDeploymentViews());
+
+ return views.stream().filter(v -> key.equals(v.getKey())).findFirst().orElse(null);
+ }
private static void addSpringComponents(Workspace workspace) throws Exception {
Container jvm2 = workspace.getModel().getSoftwareSystemWithName(PAYMENT_TERMINAL).getContainerWithName("JVM-2");