From bd581da50b95708f61371db6094fa48b7b0c0725 Mon Sep 17 00:00:00 2001 From: Florin Hriscu Date: Sun, 26 Jan 2020 17:43:33 +0200 Subject: [PATCH 01/44] BAEL-3502 Arrays.deepEquals examples. --- .../arrays/ArraysDeepEqualsUnitTest.java | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/ArraysDeepEqualsUnitTest.java diff --git a/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/ArraysDeepEqualsUnitTest.java b/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/ArraysDeepEqualsUnitTest.java new file mode 100644 index 0000000000..4998886215 --- /dev/null +++ b/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/ArraysDeepEqualsUnitTest.java @@ -0,0 +1,97 @@ +package com.baeldung.arrays; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; +import java.util.Objects; + +import org.junit.jupiter.api.Test; + +public class ArraysDeepEqualsUnitTest { + + class Person { + private int id; + private String name; + private int age; + + Person(int id, String name, int age) { + this.id = id; + this.name = name; + this.age = age; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (!(obj instanceof Person)) + return false; + Person person = (Person) obj; + return id == person.id && name.equals(person.name) && age == person.age; + } + + @Override + public int hashCode() { + return Objects.hash(id, name, age); + } + } + + @Test + void givenTwoUnidimensionalObjectTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnTrue() { + Object[] anArray = new Object[] { "string1", "string2", "string3" }; + Object[] anotherArray = new Object[] { "string1", "string2", "string3" }; + + assertTrue(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } + + @Test + void givenTwoUnidimensionalObjectTypeArraysWithNullElements_whenUsingEqualsAndDeepEquals_thenBothShouldReturnTrue() { + Object[] anArray = new Object[] { "string1", null, "string3" }; + Object[] anotherArray = new Object[] { "string1", null, "string3" }; + + assertTrue(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } + + @Test + void givenTwoUnidimensionalObjectTypeArraysWithNestedElements_whenUsingEqualsAndDeepEquals_thenShouldReturnDifferently() { + Object[] anArray = new Object[] { "string1", null, new String[] { "nestedString1", "nestedString2" } }; + Object[] anotherArray = new Object[] { "string1", null, new String[] { "nestedString1", "nestedString2" } }; + + assertFalse(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } + + @Test + void givenTwoMultidimensionalPrimitiveTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnDifferently() { + int[][] anArray = { { 1, 2, 3 }, { 4, 5, 6, 9 }, { 7 } }; + int[][] anotherArray = { { 1, 2, 3 }, { 4, 5, 6, 9 }, { 7 } }; + + assertFalse(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } + + @Test + void givenTwoMultidimensionalObjectTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnDifferently() { + Person personArray1[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + Person personArray2[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + + assertFalse(Arrays.equals(personArray1, personArray2)); + assertTrue(Arrays.deepEquals(personArray1, personArray2)); + } + + @Test + void givenTwoMultidimensionalObjectTypeArrays_whenUsingDeepEqualsFromObjectsAndArraysClasses_thenBothShouldReturnTrue() { + Person personArray1[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + Person personArray2[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + + assertTrue(Objects.deepEquals(personArray1, personArray2)); + assertTrue(Arrays.deepEquals(personArray1, personArray2)); + } +} From a1837550e83c26bbcf3ea754732404c2955ee8ef Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Mon, 27 Jan 2020 20:40:24 +0200 Subject: [PATCH 02/44] BAEL-3777: First setup --- ddd/pom.xml | 8 ++++++- .../configuration/CassandraConfiguration.java | 10 ++++++++ .../configuration/MongoDBConfiguration.java | 4 ++-- .../CassandraDbOrderRepository.java | 23 +++++++++++++++++++ .../repository/MongoDbOrderRepository.java | 4 ++-- .../SpringDataCassandraOrderRepository.java | 11 +++++++++ ...va => SpringDataMongoOrderRepository.java} | 2 +- ddd/src/main/resources/ddd-layers.properties | 8 ++++++- .../MongoDbOrderRepositoryUnitTest.java | 4 ++-- .../dddhexagonalspring/docker-compose.yml | 7 +++++- 10 files changed, 71 insertions(+), 10 deletions(-) create mode 100644 ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/CassandraConfiguration.java create mode 100644 ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java create mode 100644 ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java rename ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/{SpringDataOrderRepository.java => SpringDataMongoOrderRepository.java} (76%) diff --git a/ddd/pom.xml b/ddd/pom.xml index 9a0523a4c6..0893523c3b 100644 --- a/ddd/pom.xml +++ b/ddd/pom.xml @@ -20,14 +20,20 @@ org.springframework.boot spring-boot-starter-data-mongodb + + org.springframework.boot + spring-boot-starter-data-cassandra + org.junit.jupiter junit-jupiter-api + 5.6.0 test org.junit.jupiter junit-jupiter-engine + 5.6.0 test @@ -35,7 +41,7 @@ org.junit.platform junit-platform-launcher - ${junit-platform.version} + 1.6.0 test diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/CassandraConfiguration.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/CassandraConfiguration.java new file mode 100644 index 0000000000..76d7ad1aee --- /dev/null +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/CassandraConfiguration.java @@ -0,0 +1,10 @@ +package com.baeldung.dddhexagonalspring.infrastracture.configuration; + +import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories; + +import com.baeldung.dddhexagonalspring.infrastracture.repository.SpringDataCassandraOrderRepository; + +@EnableCassandraRepositories(basePackageClasses = SpringDataCassandraOrderRepository.class) +public class CassandraConfiguration { + +} diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/MongoDBConfiguration.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/MongoDBConfiguration.java index fd76b2eb0e..e0f5e77671 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/MongoDBConfiguration.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/MongoDBConfiguration.java @@ -1,8 +1,8 @@ package com.baeldung.dddhexagonalspring.infrastracture.configuration; -import com.baeldung.dddhexagonalspring.infrastracture.repository.SpringDataOrderRepository; +import com.baeldung.dddhexagonalspring.infrastracture.repository.SpringDataMongoOrderRepository; import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; -@EnableMongoRepositories(basePackageClasses = SpringDataOrderRepository.class) +@EnableMongoRepositories(basePackageClasses = SpringDataMongoOrderRepository.class) public class MongoDBConfiguration { } diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java new file mode 100644 index 0000000000..f16a546576 --- /dev/null +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java @@ -0,0 +1,23 @@ +package com.baeldung.dddhexagonalspring.infrastracture.repository; + +import java.util.Optional; +import java.util.UUID; + +import com.baeldung.dddhexagonalspring.domain.Order; +import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; + +public class CassandraDbOrderRepository implements OrderRepository { + + @Override + public Optional findById(UUID id) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void save(Order order) { + // TODO Auto-generated method stub + + } + +} diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java index 3123ef3e2f..bde0007ced 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java @@ -11,10 +11,10 @@ import java.util.UUID; @Component public class MongoDbOrderRepository implements OrderRepository { - private final SpringDataOrderRepository orderRepository; + private final SpringDataMongoOrderRepository orderRepository; @Autowired - public MongoDbOrderRepository(final SpringDataOrderRepository orderRepository) { + public MongoDbOrderRepository(final SpringDataMongoOrderRepository orderRepository) { this.orderRepository = orderRepository; } diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java new file mode 100644 index 0000000000..9df128f035 --- /dev/null +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java @@ -0,0 +1,11 @@ +package com.baeldung.dddhexagonalspring.infrastracture.repository; + +import java.util.UUID; + +import org.springframework.data.cassandra.repository.CassandraRepository; + +import com.baeldung.dddhexagonalspring.domain.Order; + +public interface SpringDataCassandraOrderRepository extends CassandraRepository{ + +} diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataMongoOrderRepository.java similarity index 76% rename from ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataOrderRepository.java rename to ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataMongoOrderRepository.java index 0279a5ce4a..620ecb34af 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataMongoOrderRepository.java @@ -7,5 +7,5 @@ import org.springframework.stereotype.Repository; import java.util.UUID; @Repository -public interface SpringDataOrderRepository extends MongoRepository { +public interface SpringDataMongoOrderRepository extends MongoRepository { } diff --git a/ddd/src/main/resources/ddd-layers.properties b/ddd/src/main/resources/ddd-layers.properties index 0479996b17..3b2aa35efe 100644 --- a/ddd/src/main/resources/ddd-layers.properties +++ b/ddd/src/main/resources/ddd-layers.properties @@ -2,4 +2,10 @@ spring.data.mongodb.host=localhost spring.data.mongodb.port=27017 spring.data.mongodb.database=order-database spring.data.mongodb.username=order -spring.data.mongodb.password=order \ No newline at end of file +spring.data.mongodb.password=order + +spring.data.cassandra.keyspaceName=order-database +spring.data.cassandra.username=cassandra +spring.data.cassandra.password=cassandra +spring.data.cassandra.contactPoints=localhost +spring.data.cassandra.port=9042 \ No newline at end of file diff --git a/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryUnitTest.java b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryUnitTest.java index 8f7e8260a3..8247d7c7bd 100644 --- a/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryUnitTest.java +++ b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryUnitTest.java @@ -14,12 +14,12 @@ import static org.mockito.Mockito.*; class MongoDbOrderRepositoryUnitTest { - private SpringDataOrderRepository springDataOrderRepository; + private SpringDataMongoOrderRepository springDataOrderRepository; private MongoDbOrderRepository tested; @BeforeEach void setUp(){ - springDataOrderRepository = mock(SpringDataOrderRepository.class); + springDataOrderRepository = mock(SpringDataMongoOrderRepository.class); tested = new MongoDbOrderRepository(springDataOrderRepository); } diff --git a/ddd/src/test/resources/com/baeldung/dddhexagonalspring/docker-compose.yml b/ddd/src/test/resources/com/baeldung/dddhexagonalspring/docker-compose.yml index d85ddf4a0e..dfad875a2b 100644 --- a/ddd/src/test/resources/com/baeldung/dddhexagonalspring/docker-compose.yml +++ b/ddd/src/test/resources/com/baeldung/dddhexagonalspring/docker-compose.yml @@ -11,4 +11,9 @@ services: MONGO_INITDB_ROOT_PASSWORD: admin MONGO_INITDB_DATABASE: order-database volumes: - - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro \ No newline at end of file + - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro + order-cassandra-database: + image: cassandra:3.11.5 + restart: always + ports: + - 9042:9042 \ No newline at end of file From 8144040512b45445879570c4ac2b7a331e24b287 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Mon, 27 Jan 2020 21:14:55 +0200 Subject: [PATCH 03/44] BAEL-3777: Fixed some spring init issues --- .../repository/CassandraDbOrderRepository.java | 11 +++++++++++ .../repository/MongoDbOrderRepository.java | 2 ++ .../SpringDataCassandraOrderRepository.java | 2 ++ ddd/src/main/resources/ddd-layers.properties | 2 +- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java index f16a546576..a648a1f041 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java @@ -3,11 +3,22 @@ package com.baeldung.dddhexagonalspring.infrastracture.repository; import java.util.Optional; import java.util.UUID; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + import com.baeldung.dddhexagonalspring.domain.Order; import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; +@Component public class CassandraDbOrderRepository implements OrderRepository { + private final SpringDataCassandraOrderRepository orderRepository; + + @Autowired + public CassandraDbOrderRepository(SpringDataCassandraOrderRepository orderRepository) { + this.orderRepository = orderRepository; + } + @Override public Optional findById(UUID id) { // TODO Auto-generated method stub diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java index bde0007ced..cf1d900821 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java @@ -3,12 +3,14 @@ package com.baeldung.dddhexagonalspring.infrastracture.repository; import com.baeldung.dddhexagonalspring.domain.Order; import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import java.util.Optional; import java.util.UUID; @Component +@Primary public class MongoDbOrderRepository implements OrderRepository { private final SpringDataMongoOrderRepository orderRepository; diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java index 9df128f035..dd7c7dbc81 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java @@ -3,9 +3,11 @@ package com.baeldung.dddhexagonalspring.infrastracture.repository; import java.util.UUID; import org.springframework.data.cassandra.repository.CassandraRepository; +import org.springframework.stereotype.Repository; import com.baeldung.dddhexagonalspring.domain.Order; +@Repository public interface SpringDataCassandraOrderRepository extends CassandraRepository{ } diff --git a/ddd/src/main/resources/ddd-layers.properties b/ddd/src/main/resources/ddd-layers.properties index 3b2aa35efe..d0ad343b66 100644 --- a/ddd/src/main/resources/ddd-layers.properties +++ b/ddd/src/main/resources/ddd-layers.properties @@ -4,7 +4,7 @@ spring.data.mongodb.database=order-database spring.data.mongodb.username=order spring.data.mongodb.password=order -spring.data.cassandra.keyspaceName=order-database +spring.data.cassandra.keyspaceName=order_database spring.data.cassandra.username=cassandra spring.data.cassandra.password=cassandra spring.data.cassandra.contactPoints=localhost From 226502b957dcedb2aadf19a3b253112afef662fc Mon Sep 17 00:00:00 2001 From: Justin Albano Date: Tue, 28 Jan 2020 19:44:21 -0500 Subject: [PATCH 04/44] BAEL-3744: Added examples of how design patterns are used in the Spring framework. --- spring-core-3/pom.xml | 144 ++++++++++-------- .../spring/patterns/factory/Application.java | 19 +++ .../patterns/factory/ApplicationConfig.java | 9 ++ .../baeldung/spring/patterns/factory/Bar.java | 20 +++ .../baeldung/spring/patterns/factory/Foo.java | 7 + .../spring/patterns/proxy/Application.java | 12 ++ .../baeldung/spring/patterns/proxy/Book.java | 18 +++ .../spring/patterns/proxy/BookController.java | 18 +++ .../spring/patterns/proxy/BookManager.java | 18 +++ .../spring/patterns/proxy/BookRepository.java | 11 ++ .../patterns/singleton/Application.java | 12 ++ .../spring/patterns/singleton/Book.java | 4 + .../patterns/singleton/BookController.java | 19 +++ .../patterns/singleton/BookRepository.java | 17 +++ .../patterns/singleton/LibraryController.java | 18 +++ .../spring/patterns/template/Book.java | 32 ++++ .../patterns/template/BookRowMapper.java | 21 +++ 17 files changed, 335 insertions(+), 64 deletions(-) create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Application.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Bar.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Foo.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Application.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Book.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookController.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookManager.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookRepository.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Application.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Book.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookController.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookRepository.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/LibraryController.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/template/Book.java create mode 100644 spring-core-3/src/main/java/com/baeldung/spring/patterns/template/BookRowMapper.java diff --git a/spring-core-3/pom.xml b/spring-core-3/pom.xml index cd82f23320..ac6d1b2b3b 100644 --- a/spring-core-3/pom.xml +++ b/spring-core-3/pom.xml @@ -1,72 +1,88 @@ - 4.0.0 - spring-core-3 - spring-core-3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + spring-core-3 + spring-core-3 - - com.baeldung - parent-spring-5 - 0.0.1-SNAPSHOT - ../parent-spring-5 - + + com.baeldung + parent-spring-5 + 0.0.1-SNAPSHOT + ../parent-spring-5 + - - - org.springframework - spring-beans - ${spring.version} - - - org.springframework - spring-context - ${spring.version} - - - org.springframework - spring-core - ${spring.version} - - - javax.annotation - javax.annotation-api - ${annotation-api.version} - - - org.springframework - spring-test - ${spring.version} - test - - - org.junit.jupiter - junit-jupiter-engine - ${junit-jupiter.version} - test - - - org.junit.jupiter - junit-jupiter-api - ${junit-jupiter.version} - test - - + + + org.springframework.boot + spring-boot-starter-web + ${spring.boot.version} + + + org.springframework + spring-tx + ${spring.version} + + + org.springframework + spring-jdbc + ${spring.version} + + + org.springframework + spring-beans + ${spring.version} + + + org.springframework + spring-context + ${spring.version} + + + org.springframework + spring-core + ${spring.version} + + + javax.annotation + javax.annotation-api + ${annotation-api.version} + + + org.springframework + spring-test + ${spring.version} + test + + + org.junit.jupiter + junit-jupiter-engine + ${junit-jupiter.version} + test + + + org.junit.jupiter + junit-jupiter-api + ${junit-jupiter.version} + test + + - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven.surefire.version} - - - + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven.surefire.version} + + + - - 2.22.1 - 1.3.2 - + + 2.22.1 + 1.3.2 + 2.2.2.RELEASE + \ No newline at end of file diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Application.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Application.java new file mode 100644 index 0000000000..8f0134d83c --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Application.java @@ -0,0 +1,19 @@ +package com.baeldung.spring.patterns.factory; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class Application { + + @SuppressWarnings("resource") + public static void main(String[] args) { + + ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); + + Foo foo = context.getBean(Foo.class); + Bar bar = context.getBean(Bar.class, "Some name"); + + System.out.println(foo); + System.out.println("Bar's name: " + bar.getName()); + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java new file mode 100644 index 0000000000..626947cfd5 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java @@ -0,0 +1,9 @@ +package com.baeldung.spring.patterns.factory; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan(basePackageClasses = ApplicationConfig.class) +public class ApplicationConfig { +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Bar.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Bar.java new file mode 100644 index 0000000000..8bd742c481 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Bar.java @@ -0,0 +1,20 @@ +package com.baeldung.spring.patterns.factory; + +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +@Component +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +public class Bar { + + private String name; + + public Bar(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Foo.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Foo.java new file mode 100644 index 0000000000..5edba6c50d --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Foo.java @@ -0,0 +1,7 @@ +package com.baeldung.spring.patterns.factory; + +import org.springframework.stereotype.Component; + +@Component +public class Foo { +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Application.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Application.java new file mode 100644 index 0000000000..d00f51ec96 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Application.java @@ -0,0 +1,12 @@ +package com.baeldung.spring.patterns.proxy; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Book.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Book.java new file mode 100644 index 0000000000..112396e232 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Book.java @@ -0,0 +1,18 @@ +package com.baeldung.spring.patterns.proxy; + +public class Book { + + private String author; + + public Book(String author) { + this.author = author; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookController.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookController.java new file mode 100644 index 0000000000..ab192826b8 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookController.java @@ -0,0 +1,18 @@ +package com.baeldung.spring.patterns.proxy; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class BookController { + + @Autowired + private BookManager manager; + + @PostMapping("/book") + public Book create(@RequestParam String author) { + return manager.create(author); + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookManager.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookManager.java new file mode 100644 index 0000000000..d82218e404 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookManager.java @@ -0,0 +1,18 @@ +package com.baeldung.spring.patterns.proxy; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class BookManager { + + @Autowired + private BookRepository repository; + + @Transactional + public Book create(String author) { + System.out.println(repository.getClass().getName()); + return repository.create(author); + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookRepository.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookRepository.java new file mode 100644 index 0000000000..b100bc0a61 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookRepository.java @@ -0,0 +1,11 @@ +package com.baeldung.spring.patterns.proxy; + +import org.springframework.stereotype.Repository; + +@Repository +public class BookRepository { + + public Book create(String author) { + return new Book(author); + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Application.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Application.java new file mode 100644 index 0000000000..5d7545790a --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Application.java @@ -0,0 +1,12 @@ +package com.baeldung.spring.patterns.singleton; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Book.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Book.java new file mode 100644 index 0000000000..31d9d83683 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Book.java @@ -0,0 +1,4 @@ +package com.baeldung.spring.patterns.singleton; + +public class Book { +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookController.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookController.java new file mode 100644 index 0000000000..aa4bdb8371 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookController.java @@ -0,0 +1,19 @@ +package com.baeldung.spring.patterns.singleton; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class BookController { + + @Autowired + private BookRepository repository; + + @GetMapping("/book/{id}") + public Book findById(@PathVariable long id) { + System.out.println(repository); + return repository.findById(id).get(); + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookRepository.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookRepository.java new file mode 100644 index 0000000000..3fde153f31 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookRepository.java @@ -0,0 +1,17 @@ +package com.baeldung.spring.patterns.singleton; + +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +@Repository +public class BookRepository { + + public long count() { + return 1; + } + + public Optional findById(long id) { + return Optional.of(new Book()); + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/LibraryController.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/LibraryController.java new file mode 100644 index 0000000000..76e273e2fb --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/LibraryController.java @@ -0,0 +1,18 @@ +package com.baeldung.spring.patterns.singleton; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class LibraryController { + + @Autowired + private BookRepository repository; + + @GetMapping("/count") + public Long findCount() { + System.out.println(repository); + return repository.count(); + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/Book.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/Book.java new file mode 100644 index 0000000000..d601f01c67 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/Book.java @@ -0,0 +1,32 @@ +package com.baeldung.spring.patterns.template; + +public class Book { + + private long id; + private String title; + private String author; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } +} diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/BookRowMapper.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/BookRowMapper.java new file mode 100644 index 0000000000..3fe7bb8e59 --- /dev/null +++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/BookRowMapper.java @@ -0,0 +1,21 @@ +package com.baeldung.spring.patterns.template; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import org.springframework.jdbc.core.RowMapper; + +public class BookRowMapper implements RowMapper { + + @Override + public Book mapRow(ResultSet rs, int rowNum) throws SQLException { + + Book book = new Book(); + + book.setId(rs.getLong("id")); + book.setTitle(rs.getString("title")); + book.setAuthor(rs.getString("author")); + + return book; + } +} From 1981d10ffdf1f6cf0c10547de0014274a437bdf3 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Thu, 30 Jan 2020 18:55:50 +0200 Subject: [PATCH 05/44] BAEL-3777: Bumped spring boot version --- ddd/pom.xml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ddd/pom.xml b/ddd/pom.xml index 0893523c3b..817e3b8899 100644 --- a/ddd/pom.xml +++ b/ddd/pom.xml @@ -27,13 +27,11 @@ org.junit.jupiter junit-jupiter-api - 5.6.0 test org.junit.jupiter junit-jupiter-engine - 5.6.0 test @@ -41,7 +39,6 @@ org.junit.platform junit-platform-launcher - 1.6.0 test @@ -96,7 +93,7 @@ 1.0.1 - 2.0.6.RELEASE + 2.2.4.RELEASE \ No newline at end of file From b05d42a6ea2246d803414d73a2d79dc46480bd4c Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Fri, 31 Jan 2020 23:32:37 +0200 Subject: [PATCH 06/44] BAEL-3777: Working version --- .../dddhexagonalspring/domain/Order.java | 17 +++++ .../CassandraDbOrderRepository.java | 15 ++-- .../repository/MongoDbOrderRepository.java | 1 - .../repository/OrderEntity.java | 75 +++++++++++++++++++ .../repository/OrderItemEntity.java | 44 +++++++++++ .../SpringDataCassandraOrderRepository.java | 2 +- ...andraDbOrderRepositoryIntegrationTest.java | 55 ++++++++++++++ ...MongoDbOrderRepositoryIntegrationTest.java | 54 +++++++++++++ .../baeldung/dddhexagonalspring/cassandra.cql | 12 +++ .../test/resources/ddd-layers-test.properties | 12 +++ 10 files changed, 280 insertions(+), 7 deletions(-) create mode 100644 ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderEntity.java create mode 100644 ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderItemEntity.java create mode 100644 ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepositoryIntegrationTest.java create mode 100644 ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryIntegrationTest.java create mode 100644 ddd/src/test/resources/com/baeldung/dddhexagonalspring/cassandra.cql create mode 100644 ddd/src/test/resources/ddd-layers-test.properties diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/domain/Order.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/domain/Order.java index 7d40007411..5ddc0f3500 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/domain/Order.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/domain/Order.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Objects; import java.util.UUID; public class Order { @@ -77,6 +78,22 @@ public class Order { return Collections.unmodifiableList(orderItems); } + + @Override + public int hashCode() { + return Objects.hash(id, orderItems, price, status); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!(obj instanceof Order)) + return false; + Order other = (Order) obj; + return Objects.equals(id, other.id) && Objects.equals(orderItems, other.orderItems) && Objects.equals(price, other.price) && status == other.status; + } + private Order() { } } diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java index a648a1f041..c0aff0e11f 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java @@ -4,16 +4,18 @@ import java.util.Optional; import java.util.UUID; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import com.baeldung.dddhexagonalspring.domain.Order; import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; @Component +@Primary public class CassandraDbOrderRepository implements OrderRepository { private final SpringDataCassandraOrderRepository orderRepository; - + @Autowired public CassandraDbOrderRepository(SpringDataCassandraOrderRepository orderRepository) { this.orderRepository = orderRepository; @@ -21,14 +23,17 @@ public class CassandraDbOrderRepository implements OrderRepository { @Override public Optional findById(UUID id) { - // TODO Auto-generated method stub - return null; + Optional orderEntity = orderRepository.findById(id); + if (orderEntity.isPresent()) { + return Optional.of(orderEntity.get().toOrder()); + } else { + return Optional.empty(); + } } @Override public void save(Order order) { - // TODO Auto-generated method stub - + orderRepository.save(new OrderEntity(order)); } } diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java index cf1d900821..61ab93b707 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java @@ -10,7 +10,6 @@ import java.util.Optional; import java.util.UUID; @Component -@Primary public class MongoDbOrderRepository implements OrderRepository { private final SpringDataMongoOrderRepository orderRepository; diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderEntity.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderEntity.java new file mode 100644 index 0000000000..30c162a8ab --- /dev/null +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderEntity.java @@ -0,0 +1,75 @@ +package com.baeldung.dddhexagonalspring.infrastracture.repository; + +import java.math.BigDecimal; +import java.util.List; +import java.util.UUID; +import java.util.stream.Collectors; + +import org.springframework.data.cassandra.core.mapping.PrimaryKey; + +import com.baeldung.dddhexagonalspring.domain.Order; +import com.baeldung.dddhexagonalspring.domain.OrderItem; +import com.baeldung.dddhexagonalspring.domain.OrderStatus; +import com.baeldung.dddhexagonalspring.domain.Product; + +public class OrderEntity { + + @PrimaryKey + private UUID id; + private OrderStatus status; + private List orderItemEntities; + private BigDecimal price; + + public OrderEntity(UUID id, OrderStatus status, List orderItemEntities, BigDecimal price) { + this.id = id; + this.status = status; + this.orderItemEntities = orderItemEntities; + this.price = price; + } + + public OrderEntity() { + } + + public OrderEntity(Order order) { + this.id = order.getId(); + this.price = order.getPrice(); + this.status = order.getStatus(); + this.orderItemEntities = order.getOrderItems() + .stream() + .map(OrderItemEntity::new) + .collect(Collectors.toList()); + + } + + public Order toOrder() { + List orderItems = orderItemEntities.stream() + .map(OrderItemEntity::toOrderItem) + .collect(Collectors.toList()); + List namelessProducts = orderItems.stream() + .map(orderItem -> new Product(orderItem.getProductId(), orderItem.getPrice(), "")) + .collect(Collectors.toList()); + Order order = new Order(id, namelessProducts.remove(0)); + namelessProducts.forEach(product -> order.addOrder(product)); + if (status == OrderStatus.COMPLETED) { + order.complete(); + } + return order; + } + + public UUID getId() { + return id; + } + + public OrderStatus getStatus() { + return status; + } + + public List getOrderItems() { + return orderItemEntities; + } + + public BigDecimal getPrice() { + return price; + } + +} diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderItemEntity.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderItemEntity.java new file mode 100644 index 0000000000..44af65b842 --- /dev/null +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderItemEntity.java @@ -0,0 +1,44 @@ +package com.baeldung.dddhexagonalspring.infrastracture.repository; + +import java.math.BigDecimal; +import java.util.UUID; + +import org.springframework.data.cassandra.core.mapping.UserDefinedType; + +import com.baeldung.dddhexagonalspring.domain.OrderItem; +import com.baeldung.dddhexagonalspring.domain.Product; + +@UserDefinedType +public class OrderItemEntity { + + private UUID productId; + private BigDecimal price; + + public OrderItemEntity() { + } + + public OrderItemEntity(final OrderItem orderItem) { + this.productId = orderItem.getProductId(); + this.price = orderItem.getPrice(); + } + + public OrderItem toOrderItem() { + return new OrderItem(new Product(productId, price, "")); + } + + public UUID getProductId() { + return productId; + } + + public void setProductId(UUID productId) { + this.productId = productId; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } +} diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java index dd7c7dbc81..eed265e877 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java @@ -8,6 +8,6 @@ import org.springframework.stereotype.Repository; import com.baeldung.dddhexagonalspring.domain.Order; @Repository -public interface SpringDataCassandraOrderRepository extends CassandraRepository{ +public interface SpringDataCassandraOrderRepository extends CassandraRepository{ } diff --git a/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepositoryIntegrationTest.java b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepositoryIntegrationTest.java new file mode 100644 index 0000000000..aa1c8af43d --- /dev/null +++ b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepositoryIntegrationTest.java @@ -0,0 +1,55 @@ +package com.baeldung.dddhexagonalspring.infrastracture.repository; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.math.BigDecimal; +import java.util.Optional; +import java.util.UUID; + +import org.junit.After; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; + +import com.baeldung.dddhexagonalspring.domain.Order; +import com.baeldung.dddhexagonalspring.domain.Product; +import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; + +@SpringJUnitConfig +@SpringBootTest +@TestPropertySource("classpath:ddd-layers-test.properties") +class CassandraDbOrderRepositoryIntegrationTest { + + @Autowired + private SpringDataCassandraOrderRepository cassandraOrderRepository; + + @Autowired + private OrderRepository orderRepository; + + @After + void cleanUp(){ + cassandraOrderRepository.deleteAll(); + } + + @Test + void shouldFindById_thenReturnOrder() { + + // given + final UUID id = UUID.randomUUID(); + final Order order = createOrder(id); + order.complete(); + + // when + orderRepository.save(order); + + final Optional result = orderRepository.findById(id); + + assertEquals(order, result.get()); + } + + private Order createOrder(UUID id) { + return new Order(id, new Product(UUID.randomUUID(), BigDecimal.TEN, "product")); + } +} \ No newline at end of file diff --git a/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryIntegrationTest.java b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryIntegrationTest.java new file mode 100644 index 0000000000..538fff0b51 --- /dev/null +++ b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryIntegrationTest.java @@ -0,0 +1,54 @@ +package com.baeldung.dddhexagonalspring.infrastracture.repository; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.math.BigDecimal; +import java.util.Optional; +import java.util.UUID; + +import org.junit.After; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; + +import com.baeldung.dddhexagonalspring.domain.Order; +import com.baeldung.dddhexagonalspring.domain.Product; +import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; + +@SpringJUnitConfig +@SpringBootTest +@TestPropertySource("classpath:ddd-layers-test.properties") +class MongoDbOrderRepositoryIntegrationTest { + + @Autowired + private SpringDataMongoOrderRepository mongoOrderRepository; + + @Autowired + private OrderRepository orderRepository; + + @After + void cleanUp(){ + mongoOrderRepository.deleteAll(); + } + + @Test + void shouldFindById_thenReturnOrder() { + + // given + final UUID id = UUID.randomUUID(); + final Order order = createOrder(id); + + // when + orderRepository.save(order); + + final Optional result = orderRepository.findById(id); + + assertEquals(order, result.get()); + } + + private Order createOrder(UUID id) { + return new Order(id, new Product(UUID.randomUUID(), BigDecimal.TEN, "product")); + } +} \ No newline at end of file diff --git a/ddd/src/test/resources/com/baeldung/dddhexagonalspring/cassandra.cql b/ddd/src/test/resources/com/baeldung/dddhexagonalspring/cassandra.cql new file mode 100644 index 0000000000..7adeda0a51 --- /dev/null +++ b/ddd/src/test/resources/com/baeldung/dddhexagonalspring/cassandra.cql @@ -0,0 +1,12 @@ +CREATE KEYSPACE IF NOT exists order_database +WITH replication = {'class':'SimpleStrategy', 'replication_factor':1}; + +CREATE TYPE order_database.orderitementity (productid uuid, price decimal); + +CREATE TABLE order_database.orderentity( + id uuid, + status text, + orderitementities list>, + price decimal, + primary key(id) +); diff --git a/ddd/src/test/resources/ddd-layers-test.properties b/ddd/src/test/resources/ddd-layers-test.properties new file mode 100644 index 0000000000..32307581aa --- /dev/null +++ b/ddd/src/test/resources/ddd-layers-test.properties @@ -0,0 +1,12 @@ +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration +spring.data.mongodb.host=127.0.0.1 +spring.data.mongodb.port=27017 +spring.data.mongodb.database=order-database +spring.data.mongodb.username=order +spring.data.mongodb.password=order + +spring.data.cassandra.keyspaceName=order_database +spring.data.cassandra.username=cassandra +spring.data.cassandra.password=cassandra +spring.data.cassandra.contactPoints=127.0.0.1 +spring.data.cassandra.port=9042 \ No newline at end of file From 8b49858bfe0de80b946a9666bb43f865f160cdc0 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Sat, 1 Feb 2020 11:47:00 +0200 Subject: [PATCH 07/44] BAEL-3777: Fixed formatting --- .../dddhexagonalspring/domain/Order.java | 15 ++++++--------- .../configuration/CassandraConfiguration.java | 2 +- .../configuration/MongoDBConfiguration.java | 3 ++- .../CassandraDbOrderRepository.java | 2 +- .../repository/{ => cassandra}/OrderEntity.java | 2 +- .../{ => cassandra}/OrderItemEntity.java | 2 +- .../SpringDataCassandraOrderRepository.java | 2 +- .../{ => mongo}/MongoDbOrderRepository.java | 2 +- .../SpringDataMongoOrderRepository.java | 2 +- ...assandraDbOrderRepositoryIntegrationTest.java | 16 +++++++++------- .../MongoDbOrderRepositoryIntegrationTest.java | 15 ++++++++------- .../MongoDbOrderRepositoryUnitTest.java | 5 ++++- 12 files changed, 36 insertions(+), 32 deletions(-) rename ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/{ => cassandra}/CassandraDbOrderRepository.java (98%) rename ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/{ => cassandra}/OrderEntity.java (99%) rename ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/{ => cassandra}/OrderItemEntity.java (98%) rename ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/{ => cassandra}/SpringDataCassandraOrderRepository.java (96%) rename ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/{ => mongo}/MongoDbOrderRepository.java (99%) rename ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/{ => mongo}/SpringDataMongoOrderRepository.java (97%) diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/domain/Order.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/domain/Order.java index 5ddc0f3500..a8745eadbe 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/domain/Order.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/domain/Order.java @@ -41,13 +41,11 @@ public class Order { } private OrderItem getOrderItem(final UUID id) { - return orderItems - .stream() - .filter(orderItem -> orderItem - .getProductId() - .equals(id)) - .findFirst() - .orElseThrow(() -> new DomainException("Product with " + id + " doesn't exist.")); + return orderItems.stream() + .filter(orderItem -> orderItem.getProductId() + .equals(id)) + .findFirst() + .orElseThrow(() -> new DomainException("Product with " + id + " doesn't exist.")); } private void validateState() { @@ -78,7 +76,6 @@ public class Order { return Collections.unmodifiableList(orderItems); } - @Override public int hashCode() { return Objects.hash(id, orderItems, price, status); @@ -93,7 +90,7 @@ public class Order { Order other = (Order) obj; return Objects.equals(id, other.id) && Objects.equals(orderItems, other.orderItems) && Objects.equals(price, other.price) && status == other.status; } - + private Order() { } } diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/CassandraConfiguration.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/CassandraConfiguration.java index 76d7ad1aee..3b5911979a 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/CassandraConfiguration.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/CassandraConfiguration.java @@ -2,7 +2,7 @@ package com.baeldung.dddhexagonalspring.infrastracture.configuration; import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories; -import com.baeldung.dddhexagonalspring.infrastracture.repository.SpringDataCassandraOrderRepository; +import com.baeldung.dddhexagonalspring.infrastracture.repository.cassandra.SpringDataCassandraOrderRepository; @EnableCassandraRepositories(basePackageClasses = SpringDataCassandraOrderRepository.class) public class CassandraConfiguration { diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/MongoDBConfiguration.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/MongoDBConfiguration.java index e0f5e77671..8ec6daf370 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/MongoDBConfiguration.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/configuration/MongoDBConfiguration.java @@ -1,8 +1,9 @@ package com.baeldung.dddhexagonalspring.infrastracture.configuration; -import com.baeldung.dddhexagonalspring.infrastracture.repository.SpringDataMongoOrderRepository; import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; +import com.baeldung.dddhexagonalspring.infrastracture.repository.mongo.SpringDataMongoOrderRepository; + @EnableMongoRepositories(basePackageClasses = SpringDataMongoOrderRepository.class) public class MongoDBConfiguration { } diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/CassandraDbOrderRepository.java similarity index 98% rename from ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java rename to ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/CassandraDbOrderRepository.java index c0aff0e11f..98a69cbc88 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/CassandraDbOrderRepository.java @@ -1,4 +1,4 @@ -package com.baeldung.dddhexagonalspring.infrastracture.repository; +package com.baeldung.dddhexagonalspring.infrastracture.repository.cassandra; import java.util.Optional; import java.util.UUID; diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderEntity.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/OrderEntity.java similarity index 99% rename from ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderEntity.java rename to ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/OrderEntity.java index 30c162a8ab..b9841a4433 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderEntity.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/OrderEntity.java @@ -1,4 +1,4 @@ -package com.baeldung.dddhexagonalspring.infrastracture.repository; +package com.baeldung.dddhexagonalspring.infrastracture.repository.cassandra; import java.math.BigDecimal; import java.util.List; diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderItemEntity.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/OrderItemEntity.java similarity index 98% rename from ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderItemEntity.java rename to ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/OrderItemEntity.java index 44af65b842..2cf8ac7845 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/OrderItemEntity.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/OrderItemEntity.java @@ -1,4 +1,4 @@ -package com.baeldung.dddhexagonalspring.infrastracture.repository; +package com.baeldung.dddhexagonalspring.infrastracture.repository.cassandra; import java.math.BigDecimal; import java.util.UUID; diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/SpringDataCassandraOrderRepository.java similarity index 96% rename from ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java rename to ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/SpringDataCassandraOrderRepository.java index eed265e877..ca460fb2c7 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataCassandraOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/SpringDataCassandraOrderRepository.java @@ -1,4 +1,4 @@ -package com.baeldung.dddhexagonalspring.infrastracture.repository; +package com.baeldung.dddhexagonalspring.infrastracture.repository.cassandra; import java.util.UUID; diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/MongoDbOrderRepository.java similarity index 99% rename from ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java rename to ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/MongoDbOrderRepository.java index 61ab93b707..f5d7b8f6c1 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/MongoDbOrderRepository.java @@ -1,4 +1,4 @@ -package com.baeldung.dddhexagonalspring.infrastracture.repository; +package com.baeldung.dddhexagonalspring.infrastracture.repository.mongo; import com.baeldung.dddhexagonalspring.domain.Order; import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataMongoOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/SpringDataMongoOrderRepository.java similarity index 97% rename from ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataMongoOrderRepository.java rename to ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/SpringDataMongoOrderRepository.java index 620ecb34af..73aa74e7d7 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/SpringDataMongoOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/SpringDataMongoOrderRepository.java @@ -1,4 +1,4 @@ -package com.baeldung.dddhexagonalspring.infrastracture.repository; +package com.baeldung.dddhexagonalspring.infrastracture.repository.mongo; import com.baeldung.dddhexagonalspring.domain.Order; import org.springframework.data.mongodb.repository.MongoRepository; diff --git a/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepositoryIntegrationTest.java b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepositoryIntegrationTest.java index aa1c8af43d..668d1e5e34 100644 --- a/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepositoryIntegrationTest.java +++ b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/CassandraDbOrderRepositoryIntegrationTest.java @@ -6,7 +6,7 @@ import java.math.BigDecimal; import java.util.Optional; import java.util.UUID; -import org.junit.After; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -16,6 +16,7 @@ import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; import com.baeldung.dddhexagonalspring.domain.Order; import com.baeldung.dddhexagonalspring.domain.Product; import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; +import com.baeldung.dddhexagonalspring.infrastracture.repository.cassandra.SpringDataCassandraOrderRepository; @SpringJUnitConfig @SpringBootTest @@ -24,23 +25,24 @@ class CassandraDbOrderRepositoryIntegrationTest { @Autowired private SpringDataCassandraOrderRepository cassandraOrderRepository; - + @Autowired private OrderRepository orderRepository; - - @After - void cleanUp(){ + + @AfterEach + void cleanUp() { cassandraOrderRepository.deleteAll(); } @Test void shouldFindById_thenReturnOrder() { - + // given final UUID id = UUID.randomUUID(); final Order order = createOrder(id); + order.addOrder(new Product(UUID.randomUUID(), BigDecimal.TEN, "second")); order.complete(); - + // when orderRepository.save(order); diff --git a/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryIntegrationTest.java b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryIntegrationTest.java index 538fff0b51..9a7736c419 100644 --- a/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryIntegrationTest.java +++ b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryIntegrationTest.java @@ -6,7 +6,7 @@ import java.math.BigDecimal; import java.util.Optional; import java.util.UUID; -import org.junit.After; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -16,6 +16,7 @@ import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; import com.baeldung.dddhexagonalspring.domain.Order; import com.baeldung.dddhexagonalspring.domain.Product; import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; +import com.baeldung.dddhexagonalspring.infrastracture.repository.mongo.SpringDataMongoOrderRepository; @SpringJUnitConfig @SpringBootTest @@ -24,22 +25,22 @@ class MongoDbOrderRepositoryIntegrationTest { @Autowired private SpringDataMongoOrderRepository mongoOrderRepository; - + @Autowired private OrderRepository orderRepository; - - @After - void cleanUp(){ + + @AfterEach + void cleanUp() { mongoOrderRepository.deleteAll(); } @Test void shouldFindById_thenReturnOrder() { - + // given final UUID id = UUID.randomUUID(); final Order order = createOrder(id); - + // when orderRepository.save(order); diff --git a/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryUnitTest.java b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryUnitTest.java index 8247d7c7bd..4c75daaa4d 100644 --- a/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryUnitTest.java +++ b/ddd/src/test/java/com/baeldung/dddhexagonalspring/infrastracture/repository/MongoDbOrderRepositoryUnitTest.java @@ -2,6 +2,9 @@ package com.baeldung.dddhexagonalspring.infrastracture.repository; import com.baeldung.dddhexagonalspring.domain.Order; import com.baeldung.dddhexagonalspring.domain.Product; +import com.baeldung.dddhexagonalspring.infrastracture.repository.mongo.MongoDbOrderRepository; +import com.baeldung.dddhexagonalspring.infrastracture.repository.mongo.SpringDataMongoOrderRepository; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -18,7 +21,7 @@ class MongoDbOrderRepositoryUnitTest { private MongoDbOrderRepository tested; @BeforeEach - void setUp(){ + void setUp() { springDataOrderRepository = mock(SpringDataMongoOrderRepository.class); tested = new MongoDbOrderRepository(springDataOrderRepository); From ef3570baaf9356a41867d353392caf6d37514009 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Sat, 1 Feb 2020 12:47:34 +0200 Subject: [PATCH 08/44] BAEL-3777: Fixed init of cassandra --- .../{cassandra.cql => cassandra-init.cql} | 4 ++-- .../baeldung/dddhexagonalspring/docker-compose.yml | 13 ++++++++++++- ddd/src/test/resources/ddd-layers-test.properties | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) rename ddd/src/test/resources/com/baeldung/dddhexagonalspring/{cassandra.cql => cassandra-init.cql} (61%) diff --git a/ddd/src/test/resources/com/baeldung/dddhexagonalspring/cassandra.cql b/ddd/src/test/resources/com/baeldung/dddhexagonalspring/cassandra-init.cql similarity index 61% rename from ddd/src/test/resources/com/baeldung/dddhexagonalspring/cassandra.cql rename to ddd/src/test/resources/com/baeldung/dddhexagonalspring/cassandra-init.cql index 7adeda0a51..cbb22d2525 100644 --- a/ddd/src/test/resources/com/baeldung/dddhexagonalspring/cassandra.cql +++ b/ddd/src/test/resources/com/baeldung/dddhexagonalspring/cassandra-init.cql @@ -1,9 +1,9 @@ CREATE KEYSPACE IF NOT exists order_database WITH replication = {'class':'SimpleStrategy', 'replication_factor':1}; -CREATE TYPE order_database.orderitementity (productid uuid, price decimal); +CREATE TYPE IF NOT EXISTS order_database.orderitementity (productid uuid, price decimal); -CREATE TABLE order_database.orderentity( +CREATE TABLE IF NOT EXISTS order_database.orderentity( id uuid, status text, orderitementities list>, diff --git a/ddd/src/test/resources/com/baeldung/dddhexagonalspring/docker-compose.yml b/ddd/src/test/resources/com/baeldung/dddhexagonalspring/docker-compose.yml index dfad875a2b..7de0d30d43 100644 --- a/ddd/src/test/resources/com/baeldung/dddhexagonalspring/docker-compose.yml +++ b/ddd/src/test/resources/com/baeldung/dddhexagonalspring/docker-compose.yml @@ -3,6 +3,7 @@ version: '3' services: order-mongo-database: image: mongo:3.4.13 + container_name: order-mongo-db restart: always ports: - 27017:27017 @@ -14,6 +15,16 @@ services: - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro order-cassandra-database: image: cassandra:3.11.5 + container_name: order-cassandra-db restart: always ports: - - 9042:9042 \ No newline at end of file + - 9042:9042 + order-cassandra-init: + image: cassandra:3.11.5 + container_name: order-cassandra-db-init + depends_on: + - order-cassandra-database + volumes: + - ./cassandra-init.cql:/cassandra-init.cql:ro + command: bin/bash -c "echo Initializing cassandra schema... && sleep 30 && cqlsh -u cassandra -p cassandra -f cassandra-init.cql order-cassandra-db" + \ No newline at end of file diff --git a/ddd/src/test/resources/ddd-layers-test.properties b/ddd/src/test/resources/ddd-layers-test.properties index 32307581aa..d41689d91b 100644 --- a/ddd/src/test/resources/ddd-layers-test.properties +++ b/ddd/src/test/resources/ddd-layers-test.properties @@ -1,4 +1,4 @@ -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration spring.data.mongodb.host=127.0.0.1 spring.data.mongodb.port=27017 spring.data.mongodb.database=order-database From 92640684d8e9d74f21d9b4c63cba895bbd7debd0 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Sat, 1 Feb 2020 13:02:43 +0200 Subject: [PATCH 09/44] BAEL-3777: Cleanup --- .../SpringDataCassandraOrderRepository.java | 2 -- .../repository/mongo/MongoDbOrderRepository.java | 12 ++++++------ ddd/src/main/resources/ddd-layers.properties | 1 + .../com/baeldung/dddhexagonalspring/README.md | 4 +++- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/SpringDataCassandraOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/SpringDataCassandraOrderRepository.java index ca460fb2c7..3c89bd1b23 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/SpringDataCassandraOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/SpringDataCassandraOrderRepository.java @@ -5,8 +5,6 @@ import java.util.UUID; import org.springframework.data.cassandra.repository.CassandraRepository; import org.springframework.stereotype.Repository; -import com.baeldung.dddhexagonalspring.domain.Order; - @Repository public interface SpringDataCassandraOrderRepository extends CassandraRepository{ diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/MongoDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/MongoDbOrderRepository.java index f5d7b8f6c1..e14cb88f5a 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/MongoDbOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/MongoDbOrderRepository.java @@ -1,14 +1,14 @@ package com.baeldung.dddhexagonalspring.infrastracture.repository.mongo; -import com.baeldung.dddhexagonalspring.domain.Order; -import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Component; - import java.util.Optional; import java.util.UUID; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.baeldung.dddhexagonalspring.domain.Order; +import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; + @Component public class MongoDbOrderRepository implements OrderRepository { diff --git a/ddd/src/main/resources/ddd-layers.properties b/ddd/src/main/resources/ddd-layers.properties index d0ad343b66..412c24eef7 100644 --- a/ddd/src/main/resources/ddd-layers.properties +++ b/ddd/src/main/resources/ddd-layers.properties @@ -1,3 +1,4 @@ +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration spring.data.mongodb.host=localhost spring.data.mongodb.port=27017 spring.data.mongodb.database=order-database diff --git a/ddd/src/test/resources/com/baeldung/dddhexagonalspring/README.md b/ddd/src/test/resources/com/baeldung/dddhexagonalspring/README.md index e0337498fc..1355514a3d 100644 --- a/ddd/src/test/resources/com/baeldung/dddhexagonalspring/README.md +++ b/ddd/src/test/resources/com/baeldung/dddhexagonalspring/README.md @@ -4,4 +4,6 @@ To run this project, follow these steps: * Run the application database by executing `docker-compose up` in this directory. * Launch the Spring Boot Application (DomainLayerApplication). -* By default, application will connect to this database (configuration in *ddd-layers.properties*) \ No newline at end of file +* By default, the application will connect to the one of the two databases (configuration in *ddd-layers.properties*) + * check `CassandraDbOrderRepository.java` and `MongoDbOrderRepository.java` + * switch between the databases by making one of the above beans primary using the `@Primary` annotation \ No newline at end of file From a8617b62fa2d6eec253a87ed23b2736fecbc2135 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Sat, 1 Feb 2020 15:50:49 +0200 Subject: [PATCH 10/44] BAEL-3777: Included CLI mode --- .../DomainLayerApplication.java | 40 ++++++++++++++++++- .../application/cli/CliOrderController.java | 38 ++++++++++++++++++ .../RestOrderController.java} | 6 +-- .../cassandra/CassandraDbOrderRepository.java | 1 - .../mongo/MongoDbOrderRepository.java | 2 + 5 files changed, 81 insertions(+), 6 deletions(-) create mode 100644 ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java rename ddd/src/main/java/com/baeldung/dddhexagonalspring/application/{controller/OrderController.java => rest/RestOrderController.java} (91%) diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/DomainLayerApplication.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/DomainLayerApplication.java index 988f96042b..10fbc9c2f5 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/DomainLayerApplication.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/DomainLayerApplication.java @@ -1,13 +1,49 @@ package com.baeldung.dddhexagonalspring; +import java.math.BigDecimal; +import java.util.UUID; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.PropertySource; +import com.baeldung.dddhexagonalspring.application.cli.CliOrderController; +import com.baeldung.dddhexagonalspring.domain.Product; + @SpringBootApplication @PropertySource(value = { "classpath:ddd-layers.properties" }) -public class DomainLayerApplication { +public class DomainLayerApplication implements CommandLineRunner { + private static final Logger LOG = LoggerFactory.getLogger(DomainLayerApplication.class); + public static void main(final String[] args) { - SpringApplication.run(DomainLayerApplication.class, args); + SpringApplication application = new SpringApplication(DomainLayerApplication.class); + // uncomment to run just the console application + // application.setWebApplicationType(WebApplicationType.NONE); + application.run(args); + } + + @Autowired + public CliOrderController orderController; + + @Autowired + public ConfigurableApplicationContext context; + + @Override + public void run(String... args) throws Exception { + LOG.info("Placing a new CLI order with two products"); + Product mobilePhone = new Product(UUID.randomUUID(), BigDecimal.valueOf(200), "mobile"); + Product razor = new Product(UUID.randomUUID(), BigDecimal.valueOf(50), "razor"); + LOG.info("Creating order with mobile phone"); + UUID orderId = orderController.createOrder(mobilePhone); + LOG.info("Adding a razor to the order"); + orderController.addProduct(orderId, razor); + LOG.info("Completing order"); + orderController.completeOrder(orderId); + LOG.info("Order placement complete"); } } diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java new file mode 100644 index 0000000000..cf073f61c8 --- /dev/null +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java @@ -0,0 +1,38 @@ +package com.baeldung.dddhexagonalspring.application.cli; + +import java.util.UUID; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.baeldung.dddhexagonalspring.domain.Product; +import com.baeldung.dddhexagonalspring.domain.service.OrderService; + +@Component +public class CliOrderController{ + + private final OrderService orderService; + + @Autowired + public CliOrderController(OrderService orderService) { + this.orderService = orderService; + } + + public UUID createOrder(Product product) { + return orderService.createOrder(product); + } + + public void addProduct(UUID orderId, Product product) { + orderService.addProduct(orderId, product); + } + + public void deleteProduct(UUID orderId, UUID productId) { + orderService.deleteProduct(orderId, productId); + + } + + public void completeOrder(UUID orderId) { + orderService.completeOrder(orderId); + } + +} diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/controller/OrderController.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/rest/RestOrderController.java similarity index 91% rename from ddd/src/main/java/com/baeldung/dddhexagonalspring/application/controller/OrderController.java rename to ddd/src/main/java/com/baeldung/dddhexagonalspring/application/rest/RestOrderController.java index 80ba36d01b..9fcec44a30 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/controller/OrderController.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/rest/RestOrderController.java @@ -1,4 +1,4 @@ -package com.baeldung.dddhexagonalspring.application.controller; +package com.baeldung.dddhexagonalspring.application.rest; import com.baeldung.dddhexagonalspring.application.request.AddProductRequest; import com.baeldung.dddhexagonalspring.application.request.CreateOrderRequest; @@ -12,12 +12,12 @@ import java.util.UUID; @RestController @RequestMapping("/orders") -public class OrderController { +public class RestOrderController { private final OrderService orderService; @Autowired - public OrderController(OrderService orderService) { + public RestOrderController(OrderService orderService) { this.orderService = orderService; } diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/CassandraDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/CassandraDbOrderRepository.java index 98a69cbc88..c14792ce75 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/CassandraDbOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/CassandraDbOrderRepository.java @@ -11,7 +11,6 @@ import com.baeldung.dddhexagonalspring.domain.Order; import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; @Component -@Primary public class CassandraDbOrderRepository implements OrderRepository { private final SpringDataCassandraOrderRepository orderRepository; diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/MongoDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/MongoDbOrderRepository.java index e14cb88f5a..b48b738cbd 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/MongoDbOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/mongo/MongoDbOrderRepository.java @@ -4,12 +4,14 @@ import java.util.Optional; import java.util.UUID; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import com.baeldung.dddhexagonalspring.domain.Order; import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository; @Component +@Primary public class MongoDbOrderRepository implements OrderRepository { private final SpringDataMongoOrderRepository orderRepository; From 783e5d9b72b44757620b1f391703abe0dab81605 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Sat, 1 Feb 2020 15:58:48 +0200 Subject: [PATCH 11/44] BAEL-3777: Fixed formatting --- .../repository/cassandra/CassandraDbOrderRepository.java | 4 ++-- .../cassandra/SpringDataCassandraOrderRepository.java | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/CassandraDbOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/CassandraDbOrderRepository.java index c14792ce75..686fc428e7 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/CassandraDbOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/CassandraDbOrderRepository.java @@ -4,7 +4,6 @@ import java.util.Optional; import java.util.UUID; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import com.baeldung.dddhexagonalspring.domain.Order; @@ -24,7 +23,8 @@ public class CassandraDbOrderRepository implements OrderRepository { public Optional findById(UUID id) { Optional orderEntity = orderRepository.findById(id); if (orderEntity.isPresent()) { - return Optional.of(orderEntity.get().toOrder()); + return Optional.of(orderEntity.get() + .toOrder()); } else { return Optional.empty(); } diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/SpringDataCassandraOrderRepository.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/SpringDataCassandraOrderRepository.java index 3c89bd1b23..93cd7ab83f 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/SpringDataCassandraOrderRepository.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/infrastracture/repository/cassandra/SpringDataCassandraOrderRepository.java @@ -6,6 +6,5 @@ import org.springframework.data.cassandra.repository.CassandraRepository; import org.springframework.stereotype.Repository; @Repository -public interface SpringDataCassandraOrderRepository extends CassandraRepository{ - +public interface SpringDataCassandraOrderRepository extends CassandraRepository { } From eec738467d66dd4af0fb5b3fe3ff0da08d1677d3 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Sat, 1 Feb 2020 16:00:10 +0200 Subject: [PATCH 12/44] BAEL-3777: Fixed formatting --- .../dddhexagonalspring/application/cli/CliOrderController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java index cf073f61c8..7f070a3415 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java @@ -28,7 +28,6 @@ public class CliOrderController{ public void deleteProduct(UUID orderId, UUID productId) { orderService.deleteProduct(orderId, productId); - } public void completeOrder(UUID orderId) { From cb72463256598c29b8d77373234960f8d4515a54 Mon Sep 17 00:00:00 2001 From: Justin Albano Date: Sat, 1 Feb 2020 13:21:44 -0500 Subject: [PATCH 13/44] BAEL-3744: Corrected whitespace in pom.xml --- spring-core-3/pom.xml | 174 +++++++++++++++++++++--------------------- 1 file changed, 87 insertions(+), 87 deletions(-) diff --git a/spring-core-3/pom.xml b/spring-core-3/pom.xml index ac6d1b2b3b..6bd4bf7e5d 100644 --- a/spring-core-3/pom.xml +++ b/spring-core-3/pom.xml @@ -1,88 +1,88 @@ - - - 4.0.0 - spring-core-3 - spring-core-3 - - - com.baeldung - parent-spring-5 - 0.0.1-SNAPSHOT - ../parent-spring-5 - - - - - org.springframework.boot - spring-boot-starter-web - ${spring.boot.version} - - - org.springframework - spring-tx - ${spring.version} - - - org.springframework - spring-jdbc - ${spring.version} - - - org.springframework - spring-beans - ${spring.version} - - - org.springframework - spring-context - ${spring.version} - - - org.springframework - spring-core - ${spring.version} - - - javax.annotation - javax.annotation-api - ${annotation-api.version} - - - org.springframework - spring-test - ${spring.version} - test - - - org.junit.jupiter - junit-jupiter-engine - ${junit-jupiter.version} - test - - - org.junit.jupiter - junit-jupiter-api - ${junit-jupiter.version} - test - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven.surefire.version} - - - - - - 2.22.1 - 1.3.2 - 2.2.2.RELEASE - - + + + 4.0.0 + spring-core-3 + spring-core-3 + + + com.baeldung + parent-spring-5 + 0.0.1-SNAPSHOT + ../parent-spring-5 + + + + + org.springframework.boot + spring-boot-starter-web + ${spring.boot.version} + + + org.springframework + spring-tx + ${spring.version} + + + org.springframework + spring-jdbc + ${spring.version} + + + org.springframework + spring-beans + ${spring.version} + + + org.springframework + spring-context + ${spring.version} + + + org.springframework + spring-core + ${spring.version} + + + javax.annotation + javax.annotation-api + ${annotation-api.version} + + + org.springframework + spring-test + ${spring.version} + test + + + org.junit.jupiter + junit-jupiter-engine + ${junit-jupiter.version} + test + + + org.junit.jupiter + junit-jupiter-api + ${junit-jupiter.version} + test + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven.surefire.version} + + + + + + 2.22.1 + 1.3.2 + 2.2.2.RELEASE + + \ No newline at end of file From 31abf680ee76078d171c9138b9db4a393891456c Mon Sep 17 00:00:00 2001 From: Justin Albano Date: Sat, 1 Feb 2020 13:28:33 -0500 Subject: [PATCH 14/44] BAEL-3744: Changed spacing back to original spacing --- spring-core-3/pom.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/spring-core-3/pom.xml b/spring-core-3/pom.xml index 6bd4bf7e5d..205259e8e4 100644 --- a/spring-core-3/pom.xml +++ b/spring-core-3/pom.xml @@ -1,7 +1,7 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 spring-core-3 spring-core-3 @@ -15,9 +15,9 @@ - org.springframework.boot - spring-boot-starter-web - ${spring.boot.version} + org.springframework + spring-beans + ${spring.version} org.springframework @@ -30,9 +30,9 @@ ${spring.version} - org.springframework - spring-beans - ${spring.version} + org.springframework.boot + spring-boot-starter-web + ${spring.boot.version} org.springframework From c0415f763975450ef60bb38510a5aa6df09fee71 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Sat, 1 Feb 2020 22:57:12 +0200 Subject: [PATCH 15/44] BAEL-3777: Improved CLI example --- .../DomainLayerApplication.java | 22 +++-------- .../application/cli/CliOrderController.java | 38 ++++++++++++------- 2 files changed, 29 insertions(+), 31 deletions(-) diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/DomainLayerApplication.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/DomainLayerApplication.java index 10fbc9c2f5..235021b03e 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/DomainLayerApplication.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/DomainLayerApplication.java @@ -1,24 +1,18 @@ package com.baeldung.dddhexagonalspring; -import java.math.BigDecimal; -import java.util.UUID; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; +import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.PropertySource; import com.baeldung.dddhexagonalspring.application.cli.CliOrderController; -import com.baeldung.dddhexagonalspring.domain.Product; @SpringBootApplication @PropertySource(value = { "classpath:ddd-layers.properties" }) public class DomainLayerApplication implements CommandLineRunner { - private static final Logger LOG = LoggerFactory.getLogger(DomainLayerApplication.class); public static void main(final String[] args) { SpringApplication application = new SpringApplication(DomainLayerApplication.class); @@ -35,15 +29,9 @@ public class DomainLayerApplication implements CommandLineRunner { @Override public void run(String... args) throws Exception { - LOG.info("Placing a new CLI order with two products"); - Product mobilePhone = new Product(UUID.randomUUID(), BigDecimal.valueOf(200), "mobile"); - Product razor = new Product(UUID.randomUUID(), BigDecimal.valueOf(50), "razor"); - LOG.info("Creating order with mobile phone"); - UUID orderId = orderController.createOrder(mobilePhone); - LOG.info("Adding a razor to the order"); - orderController.addProduct(orderId, razor); - LOG.info("Completing order"); - orderController.completeOrder(orderId); - LOG.info("Order placement complete"); + orderController.createCompleteOrder(); + orderController.createIncompleteOrder(); + // uncomment to stop the context when execution is done + // context.close(); } } diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java index 7f070a3415..3d595533f3 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/cli/CliOrderController.java @@ -1,7 +1,10 @@ package com.baeldung.dddhexagonalspring.application.cli; +import java.math.BigDecimal; import java.util.UUID; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -9,7 +12,9 @@ import com.baeldung.dddhexagonalspring.domain.Product; import com.baeldung.dddhexagonalspring.domain.service.OrderService; @Component -public class CliOrderController{ +public class CliOrderController { + + private static final Logger LOG = LoggerFactory.getLogger(CliOrderController.class); private final OrderService orderService; @@ -18,20 +23,25 @@ public class CliOrderController{ this.orderService = orderService; } - public UUID createOrder(Product product) { - return orderService.createOrder(product); - } - - public void addProduct(UUID orderId, Product product) { - orderService.addProduct(orderId, product); - } - - public void deleteProduct(UUID orderId, UUID productId) { - orderService.deleteProduct(orderId, productId); - } - - public void completeOrder(UUID orderId) { + public void createCompleteOrder() { + LOG.info("<>"); + UUID orderId = createOrder(); orderService.completeOrder(orderId); } + public void createIncompleteOrder() { + LOG.info("<>"); + UUID orderId = createOrder(); + } + + private UUID createOrder() { + LOG.info("Placing a new order with two products"); + Product mobilePhone = new Product(UUID.randomUUID(), BigDecimal.valueOf(200), "mobile"); + Product razor = new Product(UUID.randomUUID(), BigDecimal.valueOf(50), "razor"); + LOG.info("Creating order with mobile phone"); + UUID orderId = orderService.createOrder(mobilePhone); + LOG.info("Adding a razor to the order"); + orderService.addProduct(orderId, razor); + return orderId; + } } From f5f29086ba72da0cc85f4299898ff44baa234332 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Tue, 4 Feb 2020 21:27:35 +0200 Subject: [PATCH 16/44] BAEL-3777: Revert naming for REST OrderController --- .../rest/{RestOrderController.java => OrderController.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename ddd/src/main/java/com/baeldung/dddhexagonalspring/application/rest/{RestOrderController.java => OrderController.java} (94%) diff --git a/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/rest/RestOrderController.java b/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/rest/OrderController.java similarity index 94% rename from ddd/src/main/java/com/baeldung/dddhexagonalspring/application/rest/RestOrderController.java rename to ddd/src/main/java/com/baeldung/dddhexagonalspring/application/rest/OrderController.java index 9fcec44a30..12bb8ddea4 100644 --- a/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/rest/RestOrderController.java +++ b/ddd/src/main/java/com/baeldung/dddhexagonalspring/application/rest/OrderController.java @@ -12,12 +12,12 @@ import java.util.UUID; @RestController @RequestMapping("/orders") -public class RestOrderController { +public class OrderController { private final OrderService orderService; @Autowired - public RestOrderController(OrderService orderService) { + public OrderController(OrderService orderService) { this.orderService = orderService; } From 124cae5760baef28cc57ec36bfb053dd89fc93b2 Mon Sep 17 00:00:00 2001 From: Florin Hriscu Date: Sat, 8 Feb 2020 00:20:48 +0200 Subject: [PATCH 17/44] BAEL-3502 Change destination package for ArraysDeepEqualsUnitTest.java. --- .../arrays/{ => deepequals}/ArraysDeepEqualsUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/{ => deepequals}/ArraysDeepEqualsUnitTest.java (98%) diff --git a/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/ArraysDeepEqualsUnitTest.java b/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java similarity index 98% rename from core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/ArraysDeepEqualsUnitTest.java rename to core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java index 4998886215..5e01d3f9b5 100644 --- a/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/ArraysDeepEqualsUnitTest.java +++ b/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.arrays; +package com.baeldung.arrays.deepequals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; From 76df3d01175050c0d62be5c32e94a635436781e4 Mon Sep 17 00:00:00 2001 From: Justin Albano Date: Mon, 10 Feb 2020 20:36:52 -0500 Subject: [PATCH 18/44] BAEL-3744: Added unit tests for Spring Framework design patterns. --- ...nnotationConfigApplicationContextTest.java | 36 +++++++++++++++++++ .../patterns/factory/ApplicationConfig.java | 9 +++++ .../baeldung/spring/patterns/factory/Bar.java | 20 +++++++++++ .../baeldung/spring/patterns/factory/Foo.java | 7 ++++ 4 files changed, 72 insertions(+) create mode 100644 spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java create mode 100644 spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java create mode 100644 spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Bar.java create mode 100644 spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Foo.java diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java new file mode 100644 index 0000000000..57a8ece197 --- /dev/null +++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java @@ -0,0 +1,36 @@ +package com.baeldung.spring.patterns.factory; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.junit.jupiter.api.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class AnnotationConfigApplicationContextTest { + + @Test + @SuppressWarnings("resource") + public void whenGetSimpleBean_ThenReturnConstructedBean() { + + ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); + + Foo foo = context.getBean(Foo.class); + + assertNotNull(foo); + } + + @Test + @SuppressWarnings("resource") + public void whenGetPrototypeBean_ThenReturnConstructedBean() { + + String expectedName = "Some name"; + ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); + + Bar bar = context.getBean(Bar.class, expectedName); + + assertNotNull(bar); + assertThat(bar.getName(), is(expectedName)); + } +} diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java new file mode 100644 index 0000000000..626947cfd5 --- /dev/null +++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java @@ -0,0 +1,9 @@ +package com.baeldung.spring.patterns.factory; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan(basePackageClasses = ApplicationConfig.class) +public class ApplicationConfig { +} diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Bar.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Bar.java new file mode 100644 index 0000000000..e2f825aab3 --- /dev/null +++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Bar.java @@ -0,0 +1,20 @@ +package com.baeldung.spring.patterns.factory; + +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +@Component +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +public class Bar { + + private String name; + + public Bar(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} \ No newline at end of file diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Foo.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Foo.java new file mode 100644 index 0000000000..5edba6c50d --- /dev/null +++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Foo.java @@ -0,0 +1,7 @@ +package com.baeldung.spring.patterns.factory; + +import org.springframework.stereotype.Component; + +@Component +public class Foo { +} From 09830d27d1aac82943a101e6155572e473e36d8e Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 12 Feb 2020 19:42:38 +0100 Subject: [PATCH 19/44] JAVA-142: Migrate spring-data-solr to com.baeldung --- persistence-modules/spring-data-solr/README.md | 2 +- .../src/test/java/{org => com}/baeldung/SpringContextTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename persistence-modules/spring-data-solr/src/test/java/{org => com}/baeldung/SpringContextTest.java (95%) diff --git a/persistence-modules/spring-data-solr/README.md b/persistence-modules/spring-data-solr/README.md index c282fd2ce7..3d58d2d44c 100644 --- a/persistence-modules/spring-data-solr/README.md +++ b/persistence-modules/spring-data-solr/README.md @@ -3,4 +3,4 @@ This module contains articles about Spring Data with Solr. ### Relevant Articles: -- [Introduction to Spring Data Solr](http://www.baeldung.com/spring-data-solr) +- [Introduction to Spring Data Solr](https://www.baeldung.com/spring-data-solr) diff --git a/persistence-modules/spring-data-solr/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-solr/src/test/java/com/baeldung/SpringContextTest.java similarity index 95% rename from persistence-modules/spring-data-solr/src/test/java/org/baeldung/SpringContextTest.java rename to persistence-modules/spring-data-solr/src/test/java/com/baeldung/SpringContextTest.java index 09bf0255a0..f445a550a3 100644 --- a/persistence-modules/spring-data-solr/src/test/java/org/baeldung/SpringContextTest.java +++ b/persistence-modules/spring-data-solr/src/test/java/com/baeldung/SpringContextTest.java @@ -1,4 +1,4 @@ -package org.baeldung; +package com.baeldung; import org.junit.Test; import org.junit.runner.RunWith; From 9ce30c3e78c95cf133fc9f2f902a8fd413fc4812 Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 12 Feb 2020 19:55:28 +0100 Subject: [PATCH 20/44] JAVA-142: Migrate spring-data-redis to com.baeldung --- persistence-modules/spring-data-redis/README.md | 4 ++-- .../test/java/{org => com}/baeldung/SpringContextTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename persistence-modules/spring-data-redis/src/test/java/{org => com}/baeldung/SpringContextTest.java (95%) diff --git a/persistence-modules/spring-data-redis/README.md b/persistence-modules/spring-data-redis/README.md index a20f5052f0..e4a528ae91 100644 --- a/persistence-modules/spring-data-redis/README.md +++ b/persistence-modules/spring-data-redis/README.md @@ -1,8 +1,8 @@ ## Spring Data Redis ### Relevant Articles: -- [Introduction to Spring Data Redis](http://www.baeldung.com/spring-data-redis-tutorial) -- [PubSub Messaging with Spring Data Redis](http://www.baeldung.com/spring-data-redis-pub-sub) +- [Introduction to Spring Data Redis](https://www.baeldung.com/spring-data-redis-tutorial) +- [PubSub Messaging with Spring Data Redis](https://www.baeldung.com/spring-data-redis-pub-sub) - [An Introduction to Spring Data Redis Reactive](https://www.baeldung.com/spring-data-redis-reactive) ### Build the Project with Tests Running diff --git a/persistence-modules/spring-data-redis/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-redis/src/test/java/com/baeldung/SpringContextTest.java similarity index 95% rename from persistence-modules/spring-data-redis/src/test/java/org/baeldung/SpringContextTest.java rename to persistence-modules/spring-data-redis/src/test/java/com/baeldung/SpringContextTest.java index 6652345595..4df0cbd0ad 100644 --- a/persistence-modules/spring-data-redis/src/test/java/org/baeldung/SpringContextTest.java +++ b/persistence-modules/spring-data-redis/src/test/java/com/baeldung/SpringContextTest.java @@ -1,4 +1,4 @@ -package org.baeldung; +package com.baeldung; import org.junit.Test; import org.junit.runner.RunWith; From adc5675c617c17c7f93b31ac1a891f5891bf4e41 Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 12 Feb 2020 20:00:25 +0100 Subject: [PATCH 21/44] JAVA-142: Migrate spring-data-keyvalue to com.baeldung --- persistence-modules/spring-data-keyvalue/README.md | 2 +- .../src/test/java/{org => com}/baeldung/SpringContextTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename persistence-modules/spring-data-keyvalue/src/test/java/{org => com}/baeldung/SpringContextTest.java (95%) diff --git a/persistence-modules/spring-data-keyvalue/README.md b/persistence-modules/spring-data-keyvalue/README.md index 9f53a11b2c..93cde8ce93 100644 --- a/persistence-modules/spring-data-keyvalue/README.md +++ b/persistence-modules/spring-data-keyvalue/README.md @@ -3,4 +3,4 @@ This module contains articles about Spring Data Key-Value ### Relevant Articles: -- [A Guide to Spring Data Key Value](http://www.baeldung.com/spring-data-key-value) +- [A Guide to Spring Data Key Value](https://www.baeldung.com/spring-data-key-value) diff --git a/persistence-modules/spring-data-keyvalue/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-keyvalue/src/test/java/com/baeldung/SpringContextTest.java similarity index 95% rename from persistence-modules/spring-data-keyvalue/src/test/java/org/baeldung/SpringContextTest.java rename to persistence-modules/spring-data-keyvalue/src/test/java/com/baeldung/SpringContextTest.java index e6cc5c15af..aca177d1a7 100644 --- a/persistence-modules/spring-data-keyvalue/src/test/java/org/baeldung/SpringContextTest.java +++ b/persistence-modules/spring-data-keyvalue/src/test/java/com/baeldung/SpringContextTest.java @@ -1,4 +1,4 @@ -package org.baeldung; +package com.baeldung; import org.junit.Test; import org.junit.runner.RunWith; From e12be0bd59d22bd5ba056860e09ab8f22e665c77 Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 12 Feb 2020 20:08:11 +0100 Subject: [PATCH 22/44] JAVA-142: Migrate spring-data-neo4j to com.baeldung --- persistence-modules/spring-data-neo4j/README.md | 4 ++-- .../test/java/{org => com}/baeldung/SpringContextTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename persistence-modules/spring-data-neo4j/src/test/java/{org => com}/baeldung/SpringContextTest.java (96%) diff --git a/persistence-modules/spring-data-neo4j/README.md b/persistence-modules/spring-data-neo4j/README.md index 03c9ed333d..dc54de0e31 100644 --- a/persistence-modules/spring-data-neo4j/README.md +++ b/persistence-modules/spring-data-neo4j/README.md @@ -1,8 +1,8 @@ ## Spring Data Neo4j ### Relevant Articles: -- [Introduction to Spring Data Neo4j](http://www.baeldung.com/spring-data-neo4j-intro) -- [A Guide to Neo4J with Java](http://www.baeldung.com/java-neo4j) +- [Introduction to Spring Data Neo4j](https://www.baeldung.com/spring-data-neo4j-intro) +- [A Guide to Neo4J with Java](https://www.baeldung.com/java-neo4j) ### Build the Project with Tests Running ``` diff --git a/persistence-modules/spring-data-neo4j/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-neo4j/src/test/java/com/baeldung/SpringContextTest.java similarity index 96% rename from persistence-modules/spring-data-neo4j/src/test/java/org/baeldung/SpringContextTest.java rename to persistence-modules/spring-data-neo4j/src/test/java/com/baeldung/SpringContextTest.java index 5bf54fc0bd..7029905c49 100644 --- a/persistence-modules/spring-data-neo4j/src/test/java/org/baeldung/SpringContextTest.java +++ b/persistence-modules/spring-data-neo4j/src/test/java/com/baeldung/SpringContextTest.java @@ -1,4 +1,4 @@ -package org.baeldung; +package com.baeldung; import org.junit.Test; import org.junit.runner.RunWith; From 17f756e939a129785eb59f3627ecc4297a37f593 Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 12 Feb 2020 20:10:26 +0100 Subject: [PATCH 23/44] JAVA-142: Migrate spring-data-jpa to com.baeldung --- .../src/test/java/{org => com}/baeldung/SpringContextTest.java | 2 +- .../{org => com}/baeldung/SpringJpaContextIntegrationTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename persistence-modules/spring-data-jpa/src/test/java/{org => com}/baeldung/SpringContextTest.java (94%) rename persistence-modules/spring-data-jpa/src/test/java/{org => com}/baeldung/SpringJpaContextIntegrationTest.java (97%) diff --git a/persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringContextTest.java similarity index 94% rename from persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringContextTest.java rename to persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringContextTest.java index db7b156415..eaccf4acba 100644 --- a/persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringContextTest.java +++ b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringContextTest.java @@ -1,4 +1,4 @@ -package org.baeldung; +package com.baeldung; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringJpaContextIntegrationTest.java b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java similarity index 97% rename from persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringJpaContextIntegrationTest.java rename to persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java index 4a36407884..f3697bf39f 100644 --- a/persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringJpaContextIntegrationTest.java +++ b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java @@ -1,4 +1,4 @@ -package org.baeldung; +package com.baeldung; import org.junit.Test; import org.junit.runner.RunWith; From fe09718224dcdbb8505b0a2b35df9e1b3a34b35c Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 12 Feb 2020 20:13:10 +0100 Subject: [PATCH 24/44] JAVA-142: Migrate spring-data-gemfire to com.baeldung --- persistence-modules/spring-data-gemfire/README.md | 2 +- .../src/test/java/{org => com}/baeldung/SpringContextTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename persistence-modules/spring-data-gemfire/src/test/java/{org => com}/baeldung/SpringContextTest.java (96%) diff --git a/persistence-modules/spring-data-gemfire/README.md b/persistence-modules/spring-data-gemfire/README.md index 78199e90d0..4eb28c1678 100644 --- a/persistence-modules/spring-data-gemfire/README.md +++ b/persistence-modules/spring-data-gemfire/README.md @@ -1,3 +1,3 @@ ### Relevant articles -- [A Guide to GemFire with Spring Data](http://www.baeldung.com/spring-data-gemfire) +- [A Guide to GemFire with Spring Data](https://www.baeldung.com/spring-data-gemfire) diff --git a/persistence-modules/spring-data-gemfire/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-gemfire/src/test/java/com/baeldung/SpringContextTest.java similarity index 96% rename from persistence-modules/spring-data-gemfire/src/test/java/org/baeldung/SpringContextTest.java rename to persistence-modules/spring-data-gemfire/src/test/java/com/baeldung/SpringContextTest.java index 3772e22137..53ab8800d9 100644 --- a/persistence-modules/spring-data-gemfire/src/test/java/org/baeldung/SpringContextTest.java +++ b/persistence-modules/spring-data-gemfire/src/test/java/com/baeldung/SpringContextTest.java @@ -1,4 +1,4 @@ -package org.baeldung; +package com.baeldung; import org.junit.Test; import org.junit.runner.RunWith; From a372b7b2e6f5e80c963b3f809cff0b2c7bf146b3 Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 12 Feb 2020 20:15:43 +0100 Subject: [PATCH 25/44] JAVA-142: Migrate spring-data-elasticsearch to com.baeldung --- .../spring-data-elasticsearch/README.md | 10 +++++----- .../{org => com}/baeldung/SpringContextManualTest.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) rename persistence-modules/spring-data-elasticsearch/src/test/java/{org => com}/baeldung/SpringContextManualTest.java (96%) diff --git a/persistence-modules/spring-data-elasticsearch/README.md b/persistence-modules/spring-data-elasticsearch/README.md index 840db617f6..22126c2f00 100644 --- a/persistence-modules/spring-data-elasticsearch/README.md +++ b/persistence-modules/spring-data-elasticsearch/README.md @@ -1,11 +1,11 @@ ## Spring Data Elasticsearch ### Relevant Articles: -- [Introduction to Spring Data Elasticsearch](http://www.baeldung.com/spring-data-elasticsearch-tutorial) -- [Elasticsearch Queries with Spring Data](http://www.baeldung.com/spring-data-elasticsearch-queries) -- [Guide to Elasticsearch in Java](http://www.baeldung.com/elasticsearch-java) -- [Geospatial Support in ElasticSearch](http://www.baeldung.com/elasticsearch-geo-spatial) -- [A Simple Tagging Implementation with Elasticsearch](http://www.baeldung.com/elasticsearch-tagging) +- [Introduction to Spring Data Elasticsearch](https://www.baeldung.com/spring-data-elasticsearch-tutorial) +- [Elasticsearch Queries with Spring Data](https://www.baeldung.com/spring-data-elasticsearch-queries) +- [Guide to Elasticsearch in Java](https://www.baeldung.com/elasticsearch-java) +- [Geospatial Support in ElasticSearch](https://www.baeldung.com/elasticsearch-geo-spatial) +- [A Simple Tagging Implementation with Elasticsearch](https://www.baeldung.com/elasticsearch-tagging) ### Build the Project with Tests Running ``` diff --git a/persistence-modules/spring-data-elasticsearch/src/test/java/org/baeldung/SpringContextManualTest.java b/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/SpringContextManualTest.java similarity index 96% rename from persistence-modules/spring-data-elasticsearch/src/test/java/org/baeldung/SpringContextManualTest.java rename to persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/SpringContextManualTest.java index c6f095eae9..c69deeb77c 100644 --- a/persistence-modules/spring-data-elasticsearch/src/test/java/org/baeldung/SpringContextManualTest.java +++ b/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/SpringContextManualTest.java @@ -1,4 +1,4 @@ -package org.baeldung; +package com.baeldung; import org.junit.Test; import org.junit.runner.RunWith; From f2e0a7521cf68943f9be6168a1f83f3629a5a984 Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 12 Feb 2020 20:20:32 +0100 Subject: [PATCH 26/44] JAVA-142: Migrate spring-data-eclipselink to com.baeldung --- persistence-modules/spring-data-eclipselink/README.md | 2 +- .../src/test/java/{org => com}/baeldung/SpringContextTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename persistence-modules/spring-data-eclipselink/src/test/java/{org => com}/baeldung/SpringContextTest.java (95%) diff --git a/persistence-modules/spring-data-eclipselink/README.md b/persistence-modules/spring-data-eclipselink/README.md index 3bad63d7ef..2056031c45 100644 --- a/persistence-modules/spring-data-eclipselink/README.md +++ b/persistence-modules/spring-data-eclipselink/README.md @@ -4,5 +4,5 @@ This module contains articles about Spring Data with EclipseLink. ### Relevant articles -- [A Guide to EclipseLink with Spring](http://www.baeldung.com/spring-eclipselink) +- [A Guide to EclipseLink with Spring](https://www.baeldung.com/spring-eclipselink) - [Pessimistic Locking in JPA](https://www.baeldung.com/jpa-pessimistic-locking) diff --git a/persistence-modules/spring-data-eclipselink/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-eclipselink/src/test/java/com/baeldung/SpringContextTest.java similarity index 95% rename from persistence-modules/spring-data-eclipselink/src/test/java/org/baeldung/SpringContextTest.java rename to persistence-modules/spring-data-eclipselink/src/test/java/com/baeldung/SpringContextTest.java index 4c69245f65..842c61ffbd 100644 --- a/persistence-modules/spring-data-eclipselink/src/test/java/org/baeldung/SpringContextTest.java +++ b/persistence-modules/spring-data-eclipselink/src/test/java/com/baeldung/SpringContextTest.java @@ -1,4 +1,4 @@ -package org.baeldung; +package com.baeldung; import org.junit.Test; import org.junit.runner.RunWith; From f42ae77086ae1a8f2e34fd9d7fe71f4236d3ef7d Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 12 Feb 2020 20:43:47 +0100 Subject: [PATCH 27/44] JAVA-142: Migrate spring-data-couchbase-2 to com.baeldung --- .../spring-data-couchbase-2/README.md | 14 +++++++------- .../spring-data-couchbase-2/pom.xml | 2 +- .../spring/data/couchbase/model/Campus.java | 2 +- .../spring/data/couchbase/model/Person.java | 2 +- .../spring/data/couchbase/model/Student.java | 2 +- .../couchbase/repos/CustomStudentRepository.java | 4 ++-- .../repos/CustomStudentRepositoryImpl.java | 4 ++-- .../data/couchbase/repos/PersonRepository.java | 4 ++-- .../data/couchbase/repos/StudentRepository.java | 4 ++-- .../couchbase/service/PersonRepositoryService.java | 6 +++--- .../data/couchbase/service/PersonService.java | 4 ++-- .../couchbase/service/PersonTemplateService.java | 4 ++-- .../service/StudentRepositoryService.java | 6 +++--- .../data/couchbase/service/StudentService.java | 4 ++-- .../couchbase/service/StudentTemplateService.java | 4 ++-- .../data/couchbase2b/repos/CampusRepository.java | 4 ++-- .../data/couchbase2b/repos/PersonRepository.java | 4 ++-- .../data/couchbase2b/repos/StudentRepository.java | 4 ++-- .../data/couchbase2b/service/CampusService.java | 4 ++-- .../couchbase2b/service/CampusServiceImpl.java | 6 +++--- .../data/couchbase2b/service/PersonService.java | 4 ++-- .../couchbase2b/service/PersonServiceImpl.java | 6 +++--- .../data/couchbase2b/service/StudentService.java | 4 ++-- .../couchbase2b/service/StudentServiceImpl.java | 6 +++--- .../baeldung/SpringContextLiveTest.java | 12 ++++++------ .../couchbase/CustomTypeKeyCouchbaseConfig.java | 2 +- .../spring/data/couchbase/IntegrationTest.java | 2 +- .../data/couchbase/IntegrationTestConfig.java | 4 ++-- .../spring/data/couchbase/MyCouchbaseConfig.java | 4 ++-- .../ReadYourOwnWritesCouchbaseConfig.java | 2 +- .../service/PersonRepositoryServiceLiveTest.java | 2 +- .../couchbase/service/PersonServiceLiveTest.java | 8 ++++---- .../service/PersonTemplateServiceLiveTest.java | 2 +- .../service/StudentRepositoryServiceLiveTest.java | 2 +- .../couchbase/service/StudentServiceLiveTest.java | 8 ++++---- .../service/StudentTemplateServiceLiveTest.java | 2 +- .../couchbase2b/MultiBucketCouchbaseConfig.java | 6 +++--- .../MultiBucketIntegrationTestConfig.java | 4 ++-- .../data/couchbase2b/MultiBucketLiveTest.java | 2 +- .../service/CampusServiceImplLiveTest.java | 8 ++++---- .../service/PersonServiceImplLiveTest.java | 8 ++++---- .../service/StudentServiceImplLiveTest.java | 8 ++++---- 42 files changed, 97 insertions(+), 97 deletions(-) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/model/Campus.java (97%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/model/Person.java (97%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/model/Student.java (98%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java (54%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java (85%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/repos/PersonRepository.java (71%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/repos/StudentRepository.java (73%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/service/PersonRepositoryService.java (89%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/service/PersonService.java (75%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/service/PersonTemplateService.java (93%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/service/StudentRepositoryService.java (89%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/service/StudentService.java (75%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase/service/StudentTemplateService.java (93%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase2b/repos/CampusRepository.java (85%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase2b/repos/PersonRepository.java (71%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase2b/repos/StudentRepository.java (71%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase2b/service/CampusService.java (75%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java (87%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase2b/service/PersonService.java (74%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java (88%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase2b/service/StudentService.java (75%) rename persistence-modules/spring-data-couchbase-2/src/main/java/{org => com}/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java (88%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/SpringContextLiveTest.java (83%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java (86%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase/IntegrationTest.java (92%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase/IntegrationTestConfig.java (62%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase/MyCouchbaseConfig.java (93%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java (85%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java (87%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java (95%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java (87%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java (87%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java (96%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java (87%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java (93%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java (64%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java (92%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java (94%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java (95%) rename persistence-modules/spring-data-couchbase-2/src/test/java/{org => com}/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java (96%) diff --git a/persistence-modules/spring-data-couchbase-2/README.md b/persistence-modules/spring-data-couchbase-2/README.md index 3145fc653a..aa6f7375cb 100644 --- a/persistence-modules/spring-data-couchbase-2/README.md +++ b/persistence-modules/spring-data-couchbase-2/README.md @@ -1,9 +1,9 @@ ## Spring Data Couchbase Tutorial Project ### Relevant Articles: -- [Intro to Spring Data Couchbase](http://www.baeldung.com/spring-data-couchbase) -- [Entity Validation, Optimistic Locking, and Query Consistency in Spring Data Couchbase](http://www.baeldung.com/entity-validation-locking-and-query-consistency-in-spring-data-couchbase) -- [Multiple Buckets and Spatial View Queries in Spring Data Couchbase](http://www.baeldung.com/spring-data-couchbase-buckets-and-spatial-view-queries) +- [Intro to Spring Data Couchbase](https://www.baeldung.com/spring-data-couchbase) +- [Entity Validation, Optimistic Locking, and Query Consistency in Spring Data Couchbase](https://www.baeldung.com/entity-validation-locking-and-query-consistency-in-spring-data-couchbase) +- [Multiple Buckets and Spatial View Queries in Spring Data Couchbase](https://www.baeldung.com/spring-data-couchbase-buckets-and-spatial-view-queries) ### Overview This Maven project contains the Java code for Spring Data Couchbase @@ -25,14 +25,14 @@ mvn clean install ### Package Organization Java classes for the first two tutorials listed above are in src/main/java in the package hierarchy -org.baeldung.spring.data.couchbase +com.baeldung.spring.data.couchbase Java classes for the multiple-bucket tutorials are in src/main/java in the package hierarchy -org.baeldung.spring.data.couchbase2b +com.baeldung.spring.data.couchbase2b ### Running the tests The test classes for the single-bucket tutorials are in src/test/java in the package -org.baeldung.spring.data.couchbase.service: +com.baeldung.spring.data.couchbase.service: - PersonServiceTest (abstract) - PersonRepositoryTest (concrete) - PersonTemplateServiceTest (concrete) @@ -41,7 +41,7 @@ org.baeldung.spring.data.couchbase.service: - StudentTemplateServiceTest (concrete) The concrete test classes for the multiple-bucket tutorial are in src/test/java in the package -org.baeldung.spring.data.couchbase2b.service: +com.baeldung.spring.data.couchbase2b.service: - CampusRepositoryServiceImplTest - PersonRepositoryServiceImplTest - StudentRepositoryServiceImplTest diff --git a/persistence-modules/spring-data-couchbase-2/pom.xml b/persistence-modules/spring-data-couchbase-2/pom.xml index 484561ddaa..0a20a3ff0e 100644 --- a/persistence-modules/spring-data-couchbase-2/pom.xml +++ b/persistence-modules/spring-data-couchbase-2/pom.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.baeldung + com.baeldung spring-data-couchbase-2 0.1-SNAPSHOT spring-data-couchbase-2 diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Campus.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Campus.java similarity index 97% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Campus.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Campus.java index c357ab8596..d710a35796 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Campus.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Campus.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase.model; +package com.baeldung.spring.data.couchbase.model; import javax.validation.constraints.NotNull; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Person.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Person.java similarity index 97% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Person.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Person.java index fd41427d20..1e081f01da 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Person.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Person.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase.model; +package com.baeldung.spring.data.couchbase.model; import javax.validation.constraints.NotNull; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Student.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Student.java similarity index 98% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Student.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Student.java index 726ed2347e..e979eca864 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Student.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Student.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase.model; +package com.baeldung.spring.data.couchbase.model; import javax.validation.constraints.NotNull; import javax.validation.constraints.Past; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java similarity index 54% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java index 9a5bf21492..2aef524caf 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase.repos; +package com.baeldung.spring.data.couchbase.repos; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Student; +import com.baeldung.spring.data.couchbase.model.Student; public interface CustomStudentRepository { List findByFirstNameStartsWith(String s); diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java similarity index 85% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java index 751895502c..c4742ac44a 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase.repos; +package com.baeldung.spring.data.couchbase.repos; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Student; +import com.baeldung.spring.data.couchbase.model.Student; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.couchbase.core.CouchbaseTemplate; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/PersonRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/PersonRepository.java similarity index 71% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/PersonRepository.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/PersonRepository.java index 717feb858f..dc9a20ffa2 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/PersonRepository.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/PersonRepository.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase.repos; +package com.baeldung.spring.data.couchbase.repos; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Person; +import com.baeldung.spring.data.couchbase.model.Person; import org.springframework.data.repository.CrudRepository; public interface PersonRepository extends CrudRepository { diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/StudentRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/StudentRepository.java similarity index 73% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/StudentRepository.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/StudentRepository.java index 9bbdeec642..7ea9433f21 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/StudentRepository.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/StudentRepository.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase.repos; +package com.baeldung.spring.data.couchbase.repos; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Student; +import com.baeldung.spring.data.couchbase.model.Student; import org.springframework.data.repository.CrudRepository; public interface StudentRepository extends CrudRepository, CustomStudentRepository { diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryService.java similarity index 89% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryService.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryService.java index 49548bdbfb..4051585e31 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryService.java @@ -1,11 +1,11 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Person; -import org.baeldung.spring.data.couchbase.repos.PersonRepository; +import com.baeldung.spring.data.couchbase.model.Person; +import com.baeldung.spring.data.couchbase.repos.PersonRepository; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonService.java similarity index 75% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonService.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonService.java index a823908b01..f321eba94e 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonService.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Person; +import com.baeldung.spring.data.couchbase.model.Person; public interface PersonService { diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonTemplateService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonTemplateService.java similarity index 93% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonTemplateService.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonTemplateService.java index 8398847f65..5e49465a25 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonTemplateService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonTemplateService.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Person; +import com.baeldung.spring.data.couchbase.model.Person; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryService.java similarity index 89% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryService.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryService.java index 65f5a6e78e..ff9657260a 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryService.java @@ -1,11 +1,11 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Student; -import org.baeldung.spring.data.couchbase.repos.StudentRepository; +import com.baeldung.spring.data.couchbase.model.Student; +import com.baeldung.spring.data.couchbase.repos.StudentRepository; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentService.java similarity index 75% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentService.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentService.java index f483ef0fb6..aa99a770cd 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentService.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Student; +import com.baeldung.spring.data.couchbase.model.Student; public interface StudentService { diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentTemplateService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentTemplateService.java similarity index 93% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentTemplateService.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentTemplateService.java index 8d1292b5e4..9110f68276 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentTemplateService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentTemplateService.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Student; +import com.baeldung.spring.data.couchbase.model.Student; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/CampusRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/CampusRepository.java similarity index 85% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/CampusRepository.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/CampusRepository.java index b1857222c5..1120b7c55d 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/CampusRepository.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/CampusRepository.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase2b.repos; +package com.baeldung.spring.data.couchbase2b.repos; import java.util.Set; -import org.baeldung.spring.data.couchbase.model.Campus; +import com.baeldung.spring.data.couchbase.model.Campus; import org.springframework.data.couchbase.core.query.Dimensional; import org.springframework.data.couchbase.core.query.View; import org.springframework.data.geo.Distance; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/PersonRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/PersonRepository.java similarity index 71% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/PersonRepository.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/PersonRepository.java index ef37106c6d..ec50dec471 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/PersonRepository.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/PersonRepository.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase2b.repos; +package com.baeldung.spring.data.couchbase2b.repos; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Person; +import com.baeldung.spring.data.couchbase.model.Person; import org.springframework.data.repository.CrudRepository; public interface PersonRepository extends CrudRepository { diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/StudentRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/StudentRepository.java similarity index 71% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/StudentRepository.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/StudentRepository.java index 0d790d2f39..3fd4a717f9 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/StudentRepository.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/StudentRepository.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase2b.repos; +package com.baeldung.spring.data.couchbase2b.repos; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Student; +import com.baeldung.spring.data.couchbase.model.Student; import org.springframework.data.repository.CrudRepository; public interface StudentRepository extends CrudRepository { diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusService.java similarity index 75% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusService.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusService.java index 58f00dda25..567ffa2a7f 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusService.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase2b.service; +package com.baeldung.spring.data.couchbase2b.service; import java.util.Set; -import org.baeldung.spring.data.couchbase.model.Campus; +import com.baeldung.spring.data.couchbase.model.Campus; import org.springframework.data.geo.Distance; import org.springframework.data.geo.Point; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java similarity index 87% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java index 586f5f0dc1..03e2dced1b 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java @@ -1,11 +1,11 @@ -package org.baeldung.spring.data.couchbase2b.service; +package com.baeldung.spring.data.couchbase2b.service; import java.util.HashSet; import java.util.Iterator; import java.util.Set; -import org.baeldung.spring.data.couchbase.model.Campus; -import org.baeldung.spring.data.couchbase2b.repos.CampusRepository; +import com.baeldung.spring.data.couchbase2b.repos.CampusRepository; +import com.baeldung.spring.data.couchbase.model.Campus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.geo.Distance; import org.springframework.data.geo.Point; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonService.java similarity index 74% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonService.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonService.java index c2c96ffb9c..7dc30ead11 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonService.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase2b.service; +package com.baeldung.spring.data.couchbase2b.service; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Person; +import com.baeldung.spring.data.couchbase.model.Person; public interface PersonService { diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java similarity index 88% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java index fe0a9e48cd..af08bd4ca8 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java @@ -1,11 +1,11 @@ -package org.baeldung.spring.data.couchbase2b.service; +package com.baeldung.spring.data.couchbase2b.service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Person; -import org.baeldung.spring.data.couchbase2b.repos.PersonRepository; +import com.baeldung.spring.data.couchbase2b.repos.PersonRepository; +import com.baeldung.spring.data.couchbase.model.Person; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentService.java similarity index 75% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentService.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentService.java index 5b83b403bb..3f318e1af1 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentService.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.data.couchbase2b.service; +package com.baeldung.spring.data.couchbase2b.service; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Student; +import com.baeldung.spring.data.couchbase.model.Student; public interface StudentService { diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java similarity index 88% rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java index 248d824081..53feaead10 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java @@ -1,11 +1,11 @@ -package org.baeldung.spring.data.couchbase2b.service; +package com.baeldung.spring.data.couchbase2b.service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Student; -import org.baeldung.spring.data.couchbase2b.repos.StudentRepository; +import com.baeldung.spring.data.couchbase2b.repos.StudentRepository; +import com.baeldung.spring.data.couchbase.model.Student; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/SpringContextLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/SpringContextLiveTest.java similarity index 83% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/SpringContextLiveTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/SpringContextLiveTest.java index 5e20a98a1d..553520e6e6 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/SpringContextLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/SpringContextLiveTest.java @@ -1,7 +1,7 @@ -package org.baeldung; +package com.baeldung; -import org.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig; -import org.baeldung.spring.data.couchbase2b.MultiBucketIntegrationTestConfig; +import com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig; +import com.baeldung.spring.data.couchbase2b.MultiBucketIntegrationTestConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; @@ -25,7 +25,7 @@ import org.springframework.test.context.support.DependencyInjectionTestExecution * {@code * function (doc) { * if (doc.location && - * doc._class == "org.baeldung.spring.data.couchbase.model.Campus") { + * doc._class == "com.baeldung.spring.data.couchbase.model.Campus") { * emit([doc.location.x, doc.location.y], null); * } * }} @@ -34,7 +34,7 @@ import org.springframework.test.context.support.DependencyInjectionTestExecution * 2.4.1- view 'all' with function: * {@code * function (doc, meta) { - * if(doc._class == "org.baeldung.spring.data.couchbase.model.Campus") { + * if(doc._class == "com.baeldung.spring.data.couchbase.model.Campus") { * emit(meta.id, null); * } * }} @@ -42,7 +42,7 @@ import org.springframework.test.context.support.DependencyInjectionTestExecution * 2.4.2- view 'byName' with function: * {@code * function (doc, meta) { - * if(doc._class == "org.baeldung.spring.data.couchbase.model.Campus" && + * if(doc._class == "com.baeldung.spring.data.couchbase.model.Campus" && * doc.name) { * emit(doc.name, null); * } diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java similarity index 86% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java index 0e2e8d5dd3..403c012194 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase; +package com.baeldung.spring.data.couchbase; import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTest.java similarity index 92% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTest.java index ce2daa92cd..df2802a15c 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTest.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase; +package com.baeldung.spring.data.couchbase; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTestConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTestConfig.java similarity index 62% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTestConfig.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTestConfig.java index 6f040c34db..6abb879236 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTestConfig.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTestConfig.java @@ -1,9 +1,9 @@ -package org.baeldung.spring.data.couchbase; +package com.baeldung.spring.data.couchbase; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration -@ComponentScan(basePackages = "org.baeldung.spring.data.couchbase") +@ComponentScan(basePackages = "com.baeldung.spring.data.couchbase") public class IntegrationTestConfig { } diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/MyCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/MyCouchbaseConfig.java similarity index 93% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/MyCouchbaseConfig.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/MyCouchbaseConfig.java index a37e918101..5a2180f4b8 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/MyCouchbaseConfig.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/MyCouchbaseConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase; +package com.baeldung.spring.data.couchbase; import java.util.Arrays; import java.util.List; @@ -12,7 +12,7 @@ import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepos import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; @Configuration -@EnableCouchbaseRepositories(basePackages = { "org.baeldung.spring.data.couchbase" }) +@EnableCouchbaseRepositories(basePackages = { "com.baeldung.spring.data.couchbase" }) public class MyCouchbaseConfig extends AbstractCouchbaseConfiguration { public static final List NODE_LIST = Arrays.asList("localhost"); diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java similarity index 85% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java index b4a372487e..b989bb39d8 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase; +package com.baeldung.spring.data.couchbase; import org.springframework.data.couchbase.core.query.Consistency; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java similarity index 87% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java index 899c21691d..ee3716030f 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java similarity index 95% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java index 08d641dc2c..804bbdd2c8 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -7,9 +7,9 @@ import static org.junit.Assert.assertTrue; import java.util.List; -import org.baeldung.spring.data.couchbase.IntegrationTest; -import org.baeldung.spring.data.couchbase.MyCouchbaseConfig; -import org.baeldung.spring.data.couchbase.model.Person; +import com.baeldung.spring.data.couchbase.IntegrationTest; +import com.baeldung.spring.data.couchbase.MyCouchbaseConfig; +import com.baeldung.spring.data.couchbase.model.Person; import org.joda.time.DateTime; import org.junit.BeforeClass; import org.junit.Test; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java similarity index 87% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java index 3bc99d28df..a665fd756d 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java similarity index 87% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java index 162619db3e..9abf93b003 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java similarity index 96% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java index 6a18922007..c13b4930ca 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -9,9 +9,9 @@ import java.util.List; import javax.validation.ConstraintViolationException; -import org.baeldung.spring.data.couchbase.IntegrationTest; -import org.baeldung.spring.data.couchbase.MyCouchbaseConfig; -import org.baeldung.spring.data.couchbase.model.Student; +import com.baeldung.spring.data.couchbase.IntegrationTest; +import com.baeldung.spring.data.couchbase.MyCouchbaseConfig; +import com.baeldung.spring.data.couchbase.model.Student; import org.joda.time.DateTime; import org.junit.BeforeClass; import org.junit.Test; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java similarity index 87% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java index c666e004af..92a4a23baf 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase.service; +package com.baeldung.spring.data.couchbase.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java similarity index 93% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java index fe32305feb..488819aaf5 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java @@ -1,9 +1,9 @@ -package org.baeldung.spring.data.couchbase2b; +package com.baeldung.spring.data.couchbase2b; import java.util.Arrays; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Campus; +import com.baeldung.spring.data.couchbase.model.Campus; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration; @@ -17,7 +17,7 @@ import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; import com.couchbase.client.java.Bucket; @Configuration -@EnableCouchbaseRepositories(basePackages = { "org.baeldung.spring.data.couchbase2b" }) +@EnableCouchbaseRepositories(basePackages = { "com.baeldung.spring.data.couchbase2b" }) public class MultiBucketCouchbaseConfig extends AbstractCouchbaseConfiguration { public static final List NODE_LIST = Arrays.asList("localhost"); diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java similarity index 64% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java index 94a95b06bb..c082a0d77c 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java @@ -1,10 +1,10 @@ -package org.baeldung.spring.data.couchbase2b; +package com.baeldung.spring.data.couchbase2b; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration -@ComponentScan(basePackages = { "org.baeldung.spring.data.couchbase2b" }) +@ComponentScan(basePackages = { "com.baeldung.spring.data.couchbase2b" }) public class MultiBucketIntegrationTestConfig { } diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java similarity index 92% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java index 3b406a851e..334af40866 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase2b; +package com.baeldung.spring.data.couchbase2b; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java similarity index 94% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java index 5e7a12f292..e94c09e6cd 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase2b.service; +package com.baeldung.spring.data.couchbase2b.service; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -9,9 +9,9 @@ import java.util.Set; import javax.annotation.PostConstruct; -import org.baeldung.spring.data.couchbase.model.Campus; -import org.baeldung.spring.data.couchbase2b.MultiBucketLiveTest; -import org.baeldung.spring.data.couchbase2b.repos.CampusRepository; +import com.baeldung.spring.data.couchbase.model.Campus; +import com.baeldung.spring.data.couchbase2b.MultiBucketLiveTest; +import com.baeldung.spring.data.couchbase2b.repos.CampusRepository; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.geo.Distance; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java similarity index 95% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java index 9543d8fe12..3f98c1950a 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase2b.service; +package com.baeldung.spring.data.couchbase2b.service; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -7,9 +7,9 @@ import static org.junit.Assert.assertTrue; import java.util.List; -import org.baeldung.spring.data.couchbase.model.Person; -import org.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig; -import org.baeldung.spring.data.couchbase2b.MultiBucketLiveTest; +import com.baeldung.spring.data.couchbase.model.Person; +import com.baeldung.spring.data.couchbase2b.MultiBucketLiveTest; +import com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig; import org.joda.time.DateTime; import org.junit.BeforeClass; import org.junit.Test; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java similarity index 96% rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java index 52b9113e8f..004258a37e 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.data.couchbase2b.service; +package com.baeldung.spring.data.couchbase2b.service; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -9,9 +9,9 @@ import java.util.List; import javax.validation.ConstraintViolationException; -import org.baeldung.spring.data.couchbase.model.Student; -import org.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig; -import org.baeldung.spring.data.couchbase2b.MultiBucketLiveTest; +import com.baeldung.spring.data.couchbase.model.Student; +import com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig; +import com.baeldung.spring.data.couchbase2b.MultiBucketLiveTest; import org.joda.time.DateTime; import org.junit.BeforeClass; import org.junit.Test; From d7fd1e24933eae103697cc113b56a419dac68e16 Mon Sep 17 00:00:00 2001 From: mikr Date: Thu, 13 Feb 2020 08:50:05 +0100 Subject: [PATCH 28/44] Java-112 Merge duplicate Java read from file articles --- core-java-modules/core-java-io/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-io/README.md b/core-java-modules/core-java-io/README.md index 2c6c3363cb..b8bec7aa5e 100644 --- a/core-java-modules/core-java-io/README.md +++ b/core-java-modules/core-java-io/README.md @@ -3,7 +3,7 @@ This module contains articles about core Java input and output (IO) ### Relevant Articles: -- [How to Read a File in Java](https://www.baeldung.com/reading-file-in-java) +- [Java – Read from File](https://www.baeldung.com/java-read-file) - [Read a File into an ArrayList](https://www.baeldung.com/java-file-to-arraylist) - [Java – Directory Size](https://www.baeldung.com/java-folder-size) - [File Size in Java](https://www.baeldung.com/java-file-size) From b155b71c4b7df70993b9fbfc48bbe757339b178e Mon Sep 17 00:00:00 2001 From: mikr Date: Thu, 13 Feb 2020 09:16:08 +0100 Subject: [PATCH 29/44] Java-112 Merge duplicate Java read from file articles --- .../readfile/FileOperationsManualTest.java | 134 ------------------ .../readfile/JavaReadFromFileUnitTest.java | 125 ++++++++++++++-- .../src/test/resources/test_read9.in | 1 + 3 files changed, 118 insertions(+), 142 deletions(-) delete mode 100644 core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/FileOperationsManualTest.java create mode 100644 core-java-modules/core-java-io/src/test/resources/test_read9.in diff --git a/core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/FileOperationsManualTest.java b/core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/FileOperationsManualTest.java deleted file mode 100644 index b837c6b4dd..0000000000 --- a/core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/FileOperationsManualTest.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.baeldung.readfile; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.hamcrest.CoreMatchers; -import org.hamcrest.Matchers; -import org.junit.Test; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLConnection; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; - -public class FileOperationsManualTest { - - @Test - public void givenFileName_whenUsingClassloader_thenFileData() throws IOException { - String expectedData = "Hello World from fileTest.txt!!!"; - - ClassLoader classLoader = getClass().getClassLoader(); - File file = new File(classLoader.getResource("fileTest.txt").getFile()); - InputStream inputStream = new FileInputStream(file); - String data = readFromInputStream(inputStream); - - assertEquals(expectedData, data.trim()); - } - - @Test - public void givenFileNameAsAbsolutePath_whenUsingClasspath_thenFileData() throws IOException { - String expectedData = "Hello World from fileTest.txt!!!"; - - Class clazz = FileOperationsManualTest.class; - InputStream inputStream = clazz.getResourceAsStream("/fileTest.txt"); - String data = readFromInputStream(inputStream); - - assertEquals(expectedData, data.trim()); - } - - @Test - public void givenFileName_whenUsingJarFile_thenFileData() throws IOException { - String expectedData = "MIT License"; - - Class clazz = Matchers.class; - InputStream inputStream = clazz.getResourceAsStream("/LICENSE.txt"); - String data = readFromInputStream(inputStream); - - assertThat(data.trim(), CoreMatchers.containsString(expectedData)); - } - - @Test - public void givenURLName_whenUsingURL_thenFileData() throws IOException { - String expectedData = "Example Domain"; - - URL urlObject = new URL("http://www.example.com/"); - - URLConnection urlConnection = urlObject.openConnection(); - - InputStream inputStream = urlConnection.getInputStream(); - String data = readFromInputStream(inputStream); - - assertThat(data.trim(), CoreMatchers.containsString(expectedData)); - } - - @Test - public void givenFileName_whenUsingFileUtils_thenFileData() throws IOException { - String expectedData = "Hello World from fileTest.txt!!!"; - - ClassLoader classLoader = getClass().getClassLoader(); - File file = new File(classLoader.getResource("fileTest.txt").getFile()); - String data = FileUtils.readFileToString(file, "UTF-8"); - - assertEquals(expectedData, data.trim()); - } - - @Test - public void givenFilePath_whenUsingFilesReadAllBytes_thenFileData() throws IOException, URISyntaxException { - String expectedData = "Hello World from fileTest.txt!!!"; - - Path path = Paths.get(getClass().getClassLoader().getResource("fileTest.txt").toURI()); - - byte[] fileBytes = Files.readAllBytes(path); - String data = new String(fileBytes); - - assertEquals(expectedData, data.trim()); - } - - @Test - public void givenFilePath_whenUsingFilesLines_thenFileData() throws IOException, URISyntaxException { - String expectedData = "Hello World from fileTest.txt!!!"; - - Path path = Paths.get(getClass().getClassLoader().getResource("fileTest.txt").toURI()); - - Stream lines = Files.lines(path); - String data = lines.collect(Collectors.joining("\n")); - lines.close(); - - assertEquals(expectedData, data.trim()); - } - - private String readFromInputStream(InputStream inputStream) throws IOException { - StringBuilder resultStringBuilder = new StringBuilder(); - try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream))) { - String line; - while ((line = bufferedReader.readLine()) != null) { - resultStringBuilder.append(line).append("\n"); - } - } - - return resultStringBuilder.toString(); - } - - @Test - public void givenFileName_whenUsingIOUtils_thenFileData() throws IOException { - String expectedData = "This is a content of the file"; - - FileInputStream fis = new FileInputStream("src/test/resources/fileToRead.txt"); - String data = IOUtils.toString(fis, "UTF-8"); - - assertEquals(expectedData, data.trim()); - } -} \ No newline at end of file diff --git a/core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/JavaReadFromFileUnitTest.java b/core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/JavaReadFromFileUnitTest.java index a4ccaad594..4cacac91fb 100644 --- a/core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/JavaReadFromFileUnitTest.java +++ b/core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/JavaReadFromFileUnitTest.java @@ -1,11 +1,15 @@ package com.baeldung.readfile; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; +import org.hamcrest.CoreMatchers; +import org.hamcrest.Matchers; import org.junit.Test; -import org.junit.Ignore; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.*; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLConnection; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; @@ -13,14 +17,15 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Scanner; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class JavaReadFromFileUnitTest { - private static final Logger LOG = LoggerFactory.getLogger(JavaReadFromFileUnitTest.class); - @Test public void whenReadWithBufferedReader_thenCorrect() throws IOException { final String expected_value = "Hello world"; @@ -32,6 +37,100 @@ public class JavaReadFromFileUnitTest { assertEquals(expected_value, currentLine); } + @Test + public void givenFileName_whenUsingClassloader_thenFileData() throws IOException { + String expectedData = "Hello World from fileTest.txt!!!"; + + ClassLoader classLoader = getClass().getClassLoader(); + File file = new File(classLoader.getResource("fileTest.txt").getFile()); + InputStream inputStream = new FileInputStream(file); + String data = readFromInputStream(inputStream); + + assertEquals(expectedData, data.trim()); + } + + @Test + public void givenFileNameAsAbsolutePath_whenUsingClasspath_thenFileData() throws IOException { + String expectedData = "Hello World from fileTest.txt!!!"; + + Class clazz = JavaReadFromFileUnitTest.class; + InputStream inputStream = clazz.getResourceAsStream("/fileTest.txt"); + String data = readFromInputStream(inputStream); + + assertEquals(expectedData, data.trim()); + } + + @Test + public void givenFileName_whenUsingJarFile_thenFileData() throws IOException { + String expectedData = "BSD License"; + + Class clazz = Matchers.class; + InputStream inputStream = clazz.getResourceAsStream("/LICENSE.txt"); + String data = readFromInputStream(inputStream); + + assertThat(data.trim(), CoreMatchers.containsString(expectedData)); + } + + @Test + public void givenURLName_whenUsingURL_thenFileData() throws IOException { + String expectedData = "Example Domain"; + + URL urlObject = new URL("http://www.example.com/"); + + URLConnection urlConnection = urlObject.openConnection(); + + InputStream inputStream = urlConnection.getInputStream(); + String data = readFromInputStream(inputStream); + + assertThat(data.trim(), CoreMatchers.containsString(expectedData)); + } + + @Test + public void givenFileName_whenUsingFileUtils_thenFileData() throws IOException { + String expectedData = "Hello World from fileTest.txt!!!"; + + ClassLoader classLoader = getClass().getClassLoader(); + File file = new File(classLoader.getResource("fileTest.txt").getFile()); + String data = FileUtils.readFileToString(file, "UTF-8"); + + assertEquals(expectedData, data.trim()); + } + + @Test + public void givenFilePath_whenUsingFilesReadAllBytes_thenFileData() throws IOException, URISyntaxException { + String expectedData = "Hello World from fileTest.txt!!!"; + + Path path = Paths.get(getClass().getClassLoader().getResource("fileTest.txt").toURI()); + + byte[] fileBytes = Files.readAllBytes(path); + String data = new String(fileBytes); + + assertEquals(expectedData, data.trim()); + } + + @Test + public void givenFilePath_whenUsingFilesLines_thenFileData() throws IOException, URISyntaxException { + String expectedData = "Hello World from fileTest.txt!!!"; + + Path path = Paths.get(getClass().getClassLoader().getResource("fileTest.txt").toURI()); + + Stream lines = Files.lines(path); + String data = lines.collect(Collectors.joining("\n")); + lines.close(); + + assertEquals(expectedData, data.trim()); + } + + @Test + public void givenFileName_whenUsingIOUtils_thenFileData() throws IOException { + String expectedData = "This is a content of the file"; + + FileInputStream fis = new FileInputStream("src/test/resources/test_read9.in"); + String data = IOUtils.toString(fis, "UTF-8"); + + assertEquals(expectedData, data.trim()); + } + @Test public void whenReadWithScanner_thenCorrect() throws IOException { final Scanner scanner = new Scanner(new File("src/test/resources/test_read1.in")); @@ -106,14 +205,12 @@ public class JavaReadFromFileUnitTest { } @Test - @Ignore // TODO public void whenReadUTFEncodedFile_thenCorrect() throws IOException { final String expected_value = "青空"; final BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("src/test/resources/test_read7.in"), "UTF-8")); final String currentLine = reader.readLine(); reader.close(); - LOG.debug(currentLine); - + assertEquals(expected_value, currentLine); } @@ -171,4 +268,16 @@ public class JavaReadFromFileUnitTest { assertEquals(expected_value, line); } + private String readFromInputStream(InputStream inputStream) throws IOException { + StringBuilder resultStringBuilder = new StringBuilder(); + try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream))) { + String line; + while ((line = bufferedReader.readLine()) != null) { + resultStringBuilder.append(line).append("\n"); + } + } + + return resultStringBuilder.toString(); + } + } diff --git a/core-java-modules/core-java-io/src/test/resources/test_read9.in b/core-java-modules/core-java-io/src/test/resources/test_read9.in new file mode 100644 index 0000000000..7be79c9761 --- /dev/null +++ b/core-java-modules/core-java-io/src/test/resources/test_read9.in @@ -0,0 +1 @@ +This is a content of the file From fa07aedde73ec8e7e1689f70617a4e7fd6c8490e Mon Sep 17 00:00:00 2001 From: mikr Date: Fri, 14 Feb 2020 12:30:43 +0100 Subject: [PATCH 30/44] Java-64 Remove stray code --- .../baeldung/array/Find2ndLargestInArray.java | 20 ----------- .../baeldung/array/FindElementInArray.java | 22 ------------ .../array/Find2ndLargestInArrayUnitTest.java | 16 --------- .../array/FindElementInArrayUnitTest.java | 35 ------------------- 4 files changed, 93 deletions(-) delete mode 100644 core-java-modules/core-java-arrays/src/main/java/com/baeldung/array/Find2ndLargestInArray.java delete mode 100644 core-java-modules/core-java-arrays/src/main/java/com/baeldung/array/FindElementInArray.java delete mode 100644 core-java-modules/core-java-arrays/src/test/java/com/baeldung/array/Find2ndLargestInArrayUnitTest.java delete mode 100644 core-java-modules/core-java-arrays/src/test/java/com/baeldung/array/FindElementInArrayUnitTest.java diff --git a/core-java-modules/core-java-arrays/src/main/java/com/baeldung/array/Find2ndLargestInArray.java b/core-java-modules/core-java-arrays/src/main/java/com/baeldung/array/Find2ndLargestInArray.java deleted file mode 100644 index d424bd429f..0000000000 --- a/core-java-modules/core-java-arrays/src/main/java/com/baeldung/array/Find2ndLargestInArray.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.baeldung.array; - -public class Find2ndLargestInArray { - - public static int find2ndLargestElement(int[] array) { - int maxElement = array[0]; - int secondLargestElement = -1; - - for (int index = 0; index < array.length; index++) { - if (maxElement <= array[index]) { - secondLargestElement = maxElement; - maxElement = array[index]; - } else if (secondLargestElement < array[index]) { - secondLargestElement = array[index]; - } - } - return secondLargestElement; - } - -} diff --git a/core-java-modules/core-java-arrays/src/main/java/com/baeldung/array/FindElementInArray.java b/core-java-modules/core-java-arrays/src/main/java/com/baeldung/array/FindElementInArray.java deleted file mode 100644 index 6da889fe91..0000000000 --- a/core-java-modules/core-java-arrays/src/main/java/com/baeldung/array/FindElementInArray.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.baeldung.array; - -import java.util.Arrays; - -public class FindElementInArray { - - public static boolean findGivenElementInArrayWithoutUsingStream(int[] array, int element) { - boolean actualResult = false; - - for (int index = 0; index < array.length; index++) { - if (element == array[index]) { - actualResult = true; - break; - } - } - return actualResult; - } - - public static boolean findGivenElementInArrayUsingStream(int[] array, int element) { - return Arrays.stream(array).filter(x -> element == x).findFirst().isPresent(); - } -} diff --git a/core-java-modules/core-java-arrays/src/test/java/com/baeldung/array/Find2ndLargestInArrayUnitTest.java b/core-java-modules/core-java-arrays/src/test/java/com/baeldung/array/Find2ndLargestInArrayUnitTest.java deleted file mode 100644 index 4493f3fbf5..0000000000 --- a/core-java-modules/core-java-arrays/src/test/java/com/baeldung/array/Find2ndLargestInArrayUnitTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.baeldung.array; - -import org.junit.Assert; -import org.junit.Test; - -public class Find2ndLargestInArrayUnitTest { - @Test - public void givenAnIntArray_thenFind2ndLargestElement() { - int[] array = { 1, 3, 24, 16, 87, 20 }; - int expected2ndLargest = 24; - - int actualSecondLargestElement = Find2ndLargestInArray.find2ndLargestElement(array); - - Assert.assertEquals(expected2ndLargest, actualSecondLargestElement); - } -} diff --git a/core-java-modules/core-java-arrays/src/test/java/com/baeldung/array/FindElementInArrayUnitTest.java b/core-java-modules/core-java-arrays/src/test/java/com/baeldung/array/FindElementInArrayUnitTest.java deleted file mode 100644 index 887f50ebcc..0000000000 --- a/core-java-modules/core-java-arrays/src/test/java/com/baeldung/array/FindElementInArrayUnitTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.baeldung.array; - -import org.junit.Assert; -import org.junit.Test; - -public class FindElementInArrayUnitTest { - @Test - public void givenAnIntArray_whenNotUsingStream_thenFindAnElement() { - int[] array = { 1, 3, 4, 8, 19, 20 }; - int element = 19; - boolean expectedResult = true; - boolean actualResult = FindElementInArray.findGivenElementInArrayWithoutUsingStream(array, element); - Assert.assertEquals(expectedResult, actualResult); - - element = 78; - expectedResult = false; - actualResult = FindElementInArray.findGivenElementInArrayWithoutUsingStream(array, element); - Assert.assertEquals(expectedResult, actualResult); - } - - @Test - public void givenAnIntArray_whenUsingStream_thenFindAnElement() { - int[] array = { 15, 16, 12, 18 }; - int element = 16; - boolean expectedResult = true; - boolean actualResult = FindElementInArray.findGivenElementInArrayUsingStream(array, element); - Assert.assertEquals(expectedResult, actualResult); - - element = 20; - expectedResult = false; - actualResult = FindElementInArray.findGivenElementInArrayUsingStream(array, element); - Assert.assertEquals(expectedResult, actualResult); - } - -} From 53183ba16689ba7a33eefd02179e7f22c443ebaf Mon Sep 17 00:00:00 2001 From: Justin Albano Date: Fri, 14 Feb 2020 10:51:26 -0500 Subject: [PATCH 31/44] BAEL-3744: Corrected test method names and added XML-based tests. --- ...nnotationConfigApplicationContextTest.java | 97 ++++++++++++------- .../src/test/resources/patterns-context.xml | 9 ++ 2 files changed, 70 insertions(+), 36 deletions(-) create mode 100644 spring-core-3/src/test/resources/patterns-context.xml diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java index 57a8ece197..074818a639 100644 --- a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java +++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java @@ -1,36 +1,61 @@ -package com.baeldung.spring.patterns.factory; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.jupiter.api.Assertions.assertNotNull; - -import org.junit.jupiter.api.Test; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; - -public class AnnotationConfigApplicationContextTest { - - @Test - @SuppressWarnings("resource") - public void whenGetSimpleBean_ThenReturnConstructedBean() { - - ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); - - Foo foo = context.getBean(Foo.class); - - assertNotNull(foo); - } - - @Test - @SuppressWarnings("resource") - public void whenGetPrototypeBean_ThenReturnConstructedBean() { - - String expectedName = "Some name"; - ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); - - Bar bar = context.getBean(Bar.class, expectedName); - - assertNotNull(bar); - assertThat(bar.getName(), is(expectedName)); - } -} +package com.baeldung.spring.patterns.factory; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.junit.jupiter.api.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +public class AnnotationConfigApplicationContextTest { + + @Test + @SuppressWarnings("resource") + public void whenGetSimpleBean_thenReturnConstructedBean() { + + ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); + + Foo foo = context.getBean(Foo.class); + + assertNotNull(foo); + } + + @Test + @SuppressWarnings("resource") + public void whenGetPrototypeBean_thenReturnConstructedBean() { + + String expectedName = "Some name"; + ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); + + Bar bar = context.getBean(Bar.class, expectedName); + + assertNotNull(bar); + assertThat(bar.getName(), is(expectedName)); + } + + @Test + @SuppressWarnings("resource") + public void givenXmlConfiguration_whenGetSimpleBean_thenReturnConstructedBean() { + + ApplicationContext context = new ClassPathXmlApplicationContext("patterns-context.xml"); + + Foo foo = context.getBean(Foo.class); + + assertNotNull(foo); + } + + @Test + @SuppressWarnings("resource") + public void givenXmlConfiguration_whenGetPrototypeBean_thenReturnConstructedBean() { + + String expectedName = "Some name"; + ApplicationContext context = new ClassPathXmlApplicationContext("patterns-context.xml"); + + Bar bar = context.getBean(Bar.class, expectedName); + + assertNotNull(bar); + assertThat(bar.getName(), is(expectedName)); + } +} diff --git a/spring-core-3/src/test/resources/patterns-context.xml b/spring-core-3/src/test/resources/patterns-context.xml new file mode 100644 index 0000000000..106cde79a0 --- /dev/null +++ b/spring-core-3/src/test/resources/patterns-context.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file From 7b47b484e9feaed3a0c917fef89684562095b178 Mon Sep 17 00:00:00 2001 From: Justin Albano Date: Fri, 14 Feb 2020 15:02:48 -0500 Subject: [PATCH 32/44] BAEL-3744: Corrected unit test class names; split unit tests into two classes. --- ...ationConfigApplicationContextUnitTest.java | 36 +++++++++++++++++++ ...assPathXmlApplicationContextUnitTest.java} | 27 +------------- 2 files changed, 37 insertions(+), 26 deletions(-) create mode 100644 spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextUnitTest.java rename spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/{AnnotationConfigApplicationContextTest.java => ClassPathXmlApplicationContextUnitTest.java} (55%) diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextUnitTest.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextUnitTest.java new file mode 100644 index 0000000000..66e01f261f --- /dev/null +++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextUnitTest.java @@ -0,0 +1,36 @@ +package com.baeldung.spring.patterns.factory; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.junit.jupiter.api.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class AnnotationConfigApplicationContextUnitTest { + + @Test + @SuppressWarnings("resource") + public void whenGetSimpleBean_thenReturnConstructedBean() { + + ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); + + Foo foo = context.getBean(Foo.class); + + assertNotNull(foo); + } + + @Test + @SuppressWarnings("resource") + public void whenGetPrototypeBean_thenReturnConstructedBean() { + + String expectedName = "Some name"; + ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); + + Bar bar = context.getBean(Bar.class, expectedName); + + assertNotNull(bar); + assertThat(bar.getName(), is(expectedName)); + } +} diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ClassPathXmlApplicationContextUnitTest.java similarity index 55% rename from spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java rename to spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ClassPathXmlApplicationContextUnitTest.java index 074818a639..bb9988317e 100644 --- a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java +++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ClassPathXmlApplicationContextUnitTest.java @@ -6,34 +6,9 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import org.junit.jupiter.api.Test; import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; -public class AnnotationConfigApplicationContextTest { - - @Test - @SuppressWarnings("resource") - public void whenGetSimpleBean_thenReturnConstructedBean() { - - ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); - - Foo foo = context.getBean(Foo.class); - - assertNotNull(foo); - } - - @Test - @SuppressWarnings("resource") - public void whenGetPrototypeBean_thenReturnConstructedBean() { - - String expectedName = "Some name"; - ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); - - Bar bar = context.getBean(Bar.class, expectedName); - - assertNotNull(bar); - assertThat(bar.getName(), is(expectedName)); - } +public class ClassPathXmlApplicationContextUnitTest { @Test @SuppressWarnings("resource") From c4f9d44ef57a2a4984cc94cfcd3bebb25f7ca9fc Mon Sep 17 00:00:00 2001 From: Seun Matt Date: Sat, 15 Feb 2020 01:53:17 +0100 Subject: [PATCH 33/44] improved exception handling in response log filter (#8715) * example code for BAEL-3749 * added live test * added live test * improved exception handling in response log filter --- .../src/main/java/com/baeldung/filters/ResponseLogFilter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java b/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java index e589e27d46..1fdd89c7f7 100644 --- a/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java +++ b/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java @@ -49,8 +49,8 @@ public class ResponseLogFilter extends ZuulFilter { context.setResponseBody(responseData); } - catch (Throwable e) { - e.printStackTrace(); + catch (Exception e) { + logger.error("error occurred at response log filter", e); } return null; From 49cda16d69862c839ea38870496b33e2090ca18b Mon Sep 17 00:00:00 2001 From: dev-chirag <41482403+dev-chirag@users.noreply.github.com> Date: Sat, 15 Feb 2020 22:12:27 +0530 Subject: [PATCH 34/44] BAEL3771 Review Comments (#8726) * BAEL3771: Cache Headers in Spring MVC * BEAL3771: Cache Headers in Spring MVC * BEAL3771: Cache Headers in Spring MVC * BAEL:3771 Few review comments --- .../cache/CacheControlController.java | 21 +++++++++---------- .../java/com/baeldung/cache/WebConfig.java | 2 +- ...CacheControlControllerIntegrationTest.java | 7 ++++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/spring-mvc-java-2/src/main/java/com/baeldung/cache/CacheControlController.java b/spring-mvc-java-2/src/main/java/com/baeldung/cache/CacheControlController.java index 5bf095888e..7305f836cf 100644 --- a/spring-mvc-java-2/src/main/java/com/baeldung/cache/CacheControlController.java +++ b/spring-mvc-java-2/src/main/java/com/baeldung/cache/CacheControlController.java @@ -3,9 +3,8 @@ package com.baeldung.cache; import org.springframework.http.CacheControl; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.context.request.WebRequest; import javax.servlet.http.HttpServletResponse; @@ -16,28 +15,28 @@ import java.util.concurrent.TimeUnit; @Controller public class CacheControlController { - @RequestMapping(value = "/hello/{name}", method = RequestMethod.GET) - public ResponseEntity helloWorld(@PathVariable String name) { + @GetMapping(value = "/hello/{name}") + public ResponseEntity hello(@PathVariable String name) { CacheControl cacheControl = CacheControl.maxAge(60, TimeUnit.SECONDS) - .noTransform() - .mustRevalidate(); + .noTransform() + .mustRevalidate(); return ResponseEntity.ok() - .cacheControl(cacheControl) - .body("Hello " + name); + .cacheControl(cacheControl) + .body("Hello " + name); } - @RequestMapping(value = "/home/{name}", method = RequestMethod.GET) + @GetMapping(value = "/home/{name}") public String home(@PathVariable String name, final HttpServletResponse response) { response.addHeader("Cache-Control", "max-age=60, must-revalidate, no-transform"); return "home"; } - @RequestMapping(value = "/cache/{name}", method = RequestMethod.GET) + @GetMapping(value = "/login/{name}") public ResponseEntity intercept(@PathVariable String name) { return ResponseEntity.ok().body("Hello " + name); } - @RequestMapping(value = "/validate/{name}", method = RequestMethod.GET) + @GetMapping(value = "/productInfo/{name}") public ResponseEntity validate(@PathVariable String name, WebRequest request) { ZoneId zoneId = ZoneId.of("GMT"); diff --git a/spring-mvc-java-2/src/main/java/com/baeldung/cache/WebConfig.java b/spring-mvc-java-2/src/main/java/com/baeldung/cache/WebConfig.java index 728479979c..2f07912e80 100644 --- a/spring-mvc-java-2/src/main/java/com/baeldung/cache/WebConfig.java +++ b/spring-mvc-java-2/src/main/java/com/baeldung/cache/WebConfig.java @@ -35,7 +35,7 @@ public class WebConfig implements WebMvcConfigurer { WebContentInterceptor interceptor = new WebContentInterceptor(); interceptor.addCacheMapping(CacheControl.maxAge(60, TimeUnit.SECONDS) .noTransform() - .mustRevalidate(), "/cache/*"); + .mustRevalidate(), "/login/*"); registry.addInterceptor(interceptor); } } \ No newline at end of file diff --git a/spring-mvc-java-2/src/test/java/com/baeldung/cache/CacheControlControllerIntegrationTest.java b/spring-mvc-java-2/src/test/java/com/baeldung/cache/CacheControlControllerIntegrationTest.java index ef408038ae..7acfe5e480 100644 --- a/spring-mvc-java-2/src/test/java/com/baeldung/cache/CacheControlControllerIntegrationTest.java +++ b/spring-mvc-java-2/src/test/java/com/baeldung/cache/CacheControlControllerIntegrationTest.java @@ -37,7 +37,8 @@ public class CacheControlControllerIntegrationTest { this.mockMvc.perform(MockMvcRequestBuilders.get("/hello/baeldung")) .andDo(MockMvcResultHandlers.print()) .andExpect(MockMvcResultMatchers.status().isOk()) - .andExpect(MockMvcResultMatchers.header().string("Cache-Control","max-age=60, must-revalidate, no-transform")); + .andExpect(MockMvcResultMatchers.header() + .string("Cache-Control","max-age=60, must-revalidate, no-transform")); } @Test @@ -59,7 +60,7 @@ public class CacheControlControllerIntegrationTest { @Test void whenInterceptor_thenReturnCacheHeader() throws Exception { - this.mockMvc.perform(MockMvcRequestBuilders.get("/cache/baeldung")) + this.mockMvc.perform(MockMvcRequestBuilders.get("/login/baeldung")) .andDo(MockMvcResultHandlers.print()) .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.header().string("Cache-Control","max-age=60, must-revalidate, no-transform")); @@ -69,7 +70,7 @@ public class CacheControlControllerIntegrationTest { void whenValidate_thenReturnCacheHeader() throws Exception { HttpHeaders headers = new HttpHeaders(); headers.add(IF_UNMODIFIED_SINCE, "Tue, 04 Feb 2020 19:57:25 GMT"); - this.mockMvc.perform(MockMvcRequestBuilders.get("/validate/baeldung").headers(headers)) + this.mockMvc.perform(MockMvcRequestBuilders.get("/productInfo/baeldung").headers(headers)) .andDo(MockMvcResultHandlers.print()) .andExpect(MockMvcResultMatchers.status().is(304)); } From 9c505d2ac152d11a5e07acc0f522c70790cd7b60 Mon Sep 17 00:00:00 2001 From: Florin Hriscu Date: Sun, 16 Feb 2020 00:29:50 +0200 Subject: [PATCH 35/44] BAEL-3502 Remove ArraysDeepEqualsUnitTest file from core-java-arrays-2 module. --- .../deepequals/ArraysDeepEqualsUnitTest.java | 97 ------------------- 1 file changed, 97 deletions(-) delete mode 100644 core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java diff --git a/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java b/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java deleted file mode 100644 index 5e01d3f9b5..0000000000 --- a/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.baeldung.arrays.deepequals; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import java.util.Arrays; -import java.util.Objects; - -import org.junit.jupiter.api.Test; - -public class ArraysDeepEqualsUnitTest { - - class Person { - private int id; - private String name; - private int age; - - Person(int id, String name, int age) { - this.id = id; - this.name = name; - this.age = age; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (!(obj instanceof Person)) - return false; - Person person = (Person) obj; - return id == person.id && name.equals(person.name) && age == person.age; - } - - @Override - public int hashCode() { - return Objects.hash(id, name, age); - } - } - - @Test - void givenTwoUnidimensionalObjectTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnTrue() { - Object[] anArray = new Object[] { "string1", "string2", "string3" }; - Object[] anotherArray = new Object[] { "string1", "string2", "string3" }; - - assertTrue(Arrays.equals(anArray, anotherArray)); - assertTrue(Arrays.deepEquals(anArray, anotherArray)); - } - - @Test - void givenTwoUnidimensionalObjectTypeArraysWithNullElements_whenUsingEqualsAndDeepEquals_thenBothShouldReturnTrue() { - Object[] anArray = new Object[] { "string1", null, "string3" }; - Object[] anotherArray = new Object[] { "string1", null, "string3" }; - - assertTrue(Arrays.equals(anArray, anotherArray)); - assertTrue(Arrays.deepEquals(anArray, anotherArray)); - } - - @Test - void givenTwoUnidimensionalObjectTypeArraysWithNestedElements_whenUsingEqualsAndDeepEquals_thenShouldReturnDifferently() { - Object[] anArray = new Object[] { "string1", null, new String[] { "nestedString1", "nestedString2" } }; - Object[] anotherArray = new Object[] { "string1", null, new String[] { "nestedString1", "nestedString2" } }; - - assertFalse(Arrays.equals(anArray, anotherArray)); - assertTrue(Arrays.deepEquals(anArray, anotherArray)); - } - - @Test - void givenTwoMultidimensionalPrimitiveTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnDifferently() { - int[][] anArray = { { 1, 2, 3 }, { 4, 5, 6, 9 }, { 7 } }; - int[][] anotherArray = { { 1, 2, 3 }, { 4, 5, 6, 9 }, { 7 } }; - - assertFalse(Arrays.equals(anArray, anotherArray)); - assertTrue(Arrays.deepEquals(anArray, anotherArray)); - } - - @Test - void givenTwoMultidimensionalObjectTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnDifferently() { - Person personArray1[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; - Person personArray2[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; - - assertFalse(Arrays.equals(personArray1, personArray2)); - assertTrue(Arrays.deepEquals(personArray1, personArray2)); - } - - @Test - void givenTwoMultidimensionalObjectTypeArrays_whenUsingDeepEqualsFromObjectsAndArraysClasses_thenBothShouldReturnTrue() { - Person personArray1[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; - Person personArray2[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; - - assertTrue(Objects.deepEquals(personArray1, personArray2)); - assertTrue(Arrays.deepEquals(personArray1, personArray2)); - } -} From 319fbc12c57942f2c2141dd7ef77c5f8abfcb08c Mon Sep 17 00:00:00 2001 From: Florin Hriscu Date: Sun, 16 Feb 2020 00:33:19 +0200 Subject: [PATCH 36/44] BAEL-3502 Add ArraysDeepEqualsUnitTest.java inside new core-java-arrays-3 module. --- .../core-java-arrays-3/README.md | 5 + core-java-modules/core-java-arrays-3/pom.xml | 31 ++++++ .../deepequals/ArraysDeepEqualsUnitTest.java | 100 ++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 core-java-modules/core-java-arrays-3/README.md create mode 100644 core-java-modules/core-java-arrays-3/pom.xml create mode 100644 core-java-modules/core-java-arrays-3/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java diff --git a/core-java-modules/core-java-arrays-3/README.md b/core-java-modules/core-java-arrays-3/README.md new file mode 100644 index 0000000000..9f2885a2ce --- /dev/null +++ b/core-java-modules/core-java-arrays-3/README.md @@ -0,0 +1,5 @@ +## Core Java Arrays (Part 3) + +This module contains articles about Java arrays + +## Relevant Articles diff --git a/core-java-modules/core-java-arrays-3/pom.xml b/core-java-modules/core-java-arrays-3/pom.xml new file mode 100644 index 0000000000..b39a9af653 --- /dev/null +++ b/core-java-modules/core-java-arrays-3/pom.xml @@ -0,0 +1,31 @@ + + + 4.0.0 + core-java-arrays-3 + 0.1.0-SNAPSHOT + core-java-arrays-3 + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + org.assertj + assertj-core + ${assertj.version} + test + + + + + 3.14.0 + + + \ No newline at end of file diff --git a/core-java-modules/core-java-arrays-3/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java b/core-java-modules/core-java-arrays-3/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java new file mode 100644 index 0000000000..aa577ea7bd --- /dev/null +++ b/core-java-modules/core-java-arrays-3/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java @@ -0,0 +1,100 @@ +package com.baeldung.arrays.deepequals; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; +import java.util.Objects; +import org.junit.jupiter.api.Test; + +public class ArraysDeepEqualsUnitTest { + + class Person { + private int id; + private String name; + private int age; + + Person(int id, String name, int age) { + this.id = id; + this.name = name; + this.age = age; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (!(obj instanceof Person)) + return false; + Person person = (Person) obj; + return id == person.id && name.equals(person.name) && age == person.age; + } + + @Override + public int hashCode() { + return Objects.hash(id, name, age); + } + } + + @Test + void givenTwoUnidimensionalObjectTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnTrue() { + Object[] anArray = new Object[] { "string1", "string2", "string3" }; + Object[] anotherArray = new Object[] { "string1", "string2", "string3" }; + + assertTrue(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } + + @Test + void givenTwoUnidimensionalObjectTypeArraysWithNullElements_whenUsingEqualsAndDeepEquals_thenBothShouldReturnTrue() { + Object[] anArray = new Object[] { "string1", null, "string3" }; + Object[] anotherArray = new Object[] { "string1", null, "string3" }; + + assertTrue(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } + + @Test + void givenTwoUnidimensionalObjectTypeArraysWithNestedElements_whenUsingEqualsAndDeepEquals_thenShouldReturnDifferently() { + Object[] anArray = new Object[] { "string1", null, new String[] { "nestedString1", "nestedString2" } }; + Object[] anotherArray = new Object[] { "string1", null, new String[] { "nestedString1", "nestedString2" } }; + + assertFalse(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } + + @Test + void givenTwoMultidimensionalPrimitiveTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnDifferently() { + int[][] anArray = { { 1, 2, 3 }, { 4, 5, 6, 9 }, { 7 } }; + int[][] anotherArray = { { 1, 2, 3 }, { 4, 5, 6, 9 }, { 7 } }; + + assertFalse(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } + + @Test + void givenTwoMultidimensionalObjectTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnDifferently() { + Person personArray1[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, + { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + Person personArray2[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, + { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + + assertFalse(Arrays.equals(personArray1, personArray2)); + assertTrue(Arrays.deepEquals(personArray1, personArray2)); + } + + @Test + void givenTwoMultidimensionalObjectTypeArrays_whenUsingDeepEqualsFromObjectsAndArraysClasses_thenBothShouldReturnTrue() { + Person personArray1[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, + { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + Person personArray2[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, + { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + + assertTrue(Objects.deepEquals(personArray1, personArray2)); + assertTrue(Arrays.deepEquals(personArray1, personArray2)); + } +} From af1fd4e1b0df9085378aca2127721d1a554f7a8f Mon Sep 17 00:00:00 2001 From: Florin Hriscu Date: Sun, 16 Feb 2020 00:33:48 +0200 Subject: [PATCH 37/44] BAEL-3502 Bind core-java-arrays-3 module to parent module. --- core-java-modules/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 904cec2815..771d5a5d61 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -31,6 +31,7 @@ core-java-annotations core-java-arrays core-java-arrays-2 + core-java-arrays-3 core-java-collections core-java-collections-2 From 394711c03efcca7dd6ae7e896c4c9aa6737cab4f Mon Sep 17 00:00:00 2001 From: Priyesh Mashelkar Date: Sat, 15 Feb 2020 23:16:12 +0000 Subject: [PATCH 38/44] BAEL-3499 Fixed integration test --- .../spring-boot-properties/src/main/resources/build.properties | 3 ++- .../buildproperties/BuildInfoServiceIntegrationTest.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/spring-boot-modules/spring-boot-properties/src/main/resources/build.properties b/spring-boot-modules/spring-boot-properties/src/main/resources/build.properties index f3d2e9b15b..5bd0a50a17 100644 --- a/spring-boot-modules/spring-boot-properties/src/main/resources/build.properties +++ b/spring-boot-modules/spring-boot-properties/src/main/resources/build.properties @@ -1 +1,2 @@ -application-version=@project.version@ \ No newline at end of file +application-version=@project.version@ +application-description=@project.description@ \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-properties/src/test/java/com/baeldung/buildproperties/BuildInfoServiceIntegrationTest.java b/spring-boot-modules/spring-boot-properties/src/test/java/com/baeldung/buildproperties/BuildInfoServiceIntegrationTest.java index cb056fe56d..2cb27e1844 100644 --- a/spring-boot-modules/spring-boot-properties/src/test/java/com/baeldung/buildproperties/BuildInfoServiceIntegrationTest.java +++ b/spring-boot-modules/spring-boot-properties/src/test/java/com/baeldung/buildproperties/BuildInfoServiceIntegrationTest.java @@ -18,7 +18,7 @@ class BuildInfoServiceIntegrationTest { @Test void whenGetApplicationDescription_thenSuccess() { - assertThat(service.getApplicationDescription(), Matchers.is("This is simple boot application for Spring boot actuator test")); + assertThat(service.getApplicationDescription(), Matchers.is("Spring Boot Properties Module")); assertThat(service.getApplicationVersion(), Matchers.is("0.0.1-SNAPSHOT")); } } From dcccf21e0d2e08547d071817b9a109f3490fcd99 Mon Sep 17 00:00:00 2001 From: Florin Hriscu Date: Sun, 16 Feb 2020 17:34:31 +0200 Subject: [PATCH 39/44] BAEL-3502 Apply correct formatter. --- core-java-modules/core-java-arrays-3/pom.xml | 48 ++--- .../deepequals/ArraysDeepEqualsUnitTest.java | 142 ++++++------- core-java-modules/pom.xml | 199 +++++++++--------- 3 files changed, 191 insertions(+), 198 deletions(-) diff --git a/core-java-modules/core-java-arrays-3/pom.xml b/core-java-modules/core-java-arrays-3/pom.xml index b39a9af653..516d9b2b37 100644 --- a/core-java-modules/core-java-arrays-3/pom.xml +++ b/core-java-modules/core-java-arrays-3/pom.xml @@ -1,31 +1,31 @@ - 4.0.0 - core-java-arrays-3 - 0.1.0-SNAPSHOT - core-java-arrays-3 - jar + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + core-java-arrays-3 + 0.1.0-SNAPSHOT + core-java-arrays-3 + jar - - com.baeldung - parent-java - 0.0.1-SNAPSHOT - ../../parent-java - + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + - - - org.assertj - assertj-core - ${assertj.version} - test - - + + + org.assertj + assertj-core + ${assertj.version} + test + + - - 3.14.0 - + + 3.14.0 + \ No newline at end of file diff --git a/core-java-modules/core-java-arrays-3/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java b/core-java-modules/core-java-arrays-3/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java index aa577ea7bd..a9b8ed7e3f 100644 --- a/core-java-modules/core-java-arrays-3/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java +++ b/core-java-modules/core-java-arrays-3/src/test/java/com/baeldung/arrays/deepequals/ArraysDeepEqualsUnitTest.java @@ -9,92 +9,88 @@ import org.junit.jupiter.api.Test; public class ArraysDeepEqualsUnitTest { - class Person { - private int id; - private String name; - private int age; + class Person { + private int id; + private String name; + private int age; - Person(int id, String name, int age) { - this.id = id; - this.name = name; - this.age = age; - } + Person(int id, String name, int age) { + this.id = id; + this.name = name; + this.age = age; + } - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (!(obj instanceof Person)) - return false; - Person person = (Person) obj; - return id == person.id && name.equals(person.name) && age == person.age; - } + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (!(obj instanceof Person)) + return false; + Person person = (Person) obj; + return id == person.id && name.equals(person.name) && age == person.age; + } - @Override - public int hashCode() { - return Objects.hash(id, name, age); - } - } + @Override + public int hashCode() { + return Objects.hash(id, name, age); + } + } - @Test - void givenTwoUnidimensionalObjectTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnTrue() { - Object[] anArray = new Object[] { "string1", "string2", "string3" }; - Object[] anotherArray = new Object[] { "string1", "string2", "string3" }; + @Test + void givenTwoUnidimensionalObjectTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnTrue() { + Object[] anArray = new Object[] { "string1", "string2", "string3" }; + Object[] anotherArray = new Object[] { "string1", "string2", "string3" }; - assertTrue(Arrays.equals(anArray, anotherArray)); - assertTrue(Arrays.deepEquals(anArray, anotherArray)); - } + assertTrue(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } - @Test - void givenTwoUnidimensionalObjectTypeArraysWithNullElements_whenUsingEqualsAndDeepEquals_thenBothShouldReturnTrue() { - Object[] anArray = new Object[] { "string1", null, "string3" }; - Object[] anotherArray = new Object[] { "string1", null, "string3" }; + @Test + void givenTwoUnidimensionalObjectTypeArraysWithNullElements_whenUsingEqualsAndDeepEquals_thenBothShouldReturnTrue() { + Object[] anArray = new Object[] { "string1", null, "string3" }; + Object[] anotherArray = new Object[] { "string1", null, "string3" }; - assertTrue(Arrays.equals(anArray, anotherArray)); - assertTrue(Arrays.deepEquals(anArray, anotherArray)); - } + assertTrue(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } - @Test - void givenTwoUnidimensionalObjectTypeArraysWithNestedElements_whenUsingEqualsAndDeepEquals_thenShouldReturnDifferently() { - Object[] anArray = new Object[] { "string1", null, new String[] { "nestedString1", "nestedString2" } }; - Object[] anotherArray = new Object[] { "string1", null, new String[] { "nestedString1", "nestedString2" } }; + @Test + void givenTwoUnidimensionalObjectTypeArraysWithNestedElements_whenUsingEqualsAndDeepEquals_thenShouldReturnDifferently() { + Object[] anArray = new Object[] { "string1", null, new String[] { "nestedString1", "nestedString2" } }; + Object[] anotherArray = new Object[] { "string1", null, new String[] { "nestedString1", "nestedString2" } }; - assertFalse(Arrays.equals(anArray, anotherArray)); - assertTrue(Arrays.deepEquals(anArray, anotherArray)); - } + assertFalse(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } - @Test - void givenTwoMultidimensionalPrimitiveTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnDifferently() { - int[][] anArray = { { 1, 2, 3 }, { 4, 5, 6, 9 }, { 7 } }; - int[][] anotherArray = { { 1, 2, 3 }, { 4, 5, 6, 9 }, { 7 } }; + @Test + void givenTwoMultidimensionalPrimitiveTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnDifferently() { + int[][] anArray = { { 1, 2, 3 }, { 4, 5, 6, 9 }, { 7 } }; + int[][] anotherArray = { { 1, 2, 3 }, { 4, 5, 6, 9 }, { 7 } }; - assertFalse(Arrays.equals(anArray, anotherArray)); - assertTrue(Arrays.deepEquals(anArray, anotherArray)); - } + assertFalse(Arrays.equals(anArray, anotherArray)); + assertTrue(Arrays.deepEquals(anArray, anotherArray)); + } - @Test - void givenTwoMultidimensionalObjectTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnDifferently() { - Person personArray1[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, - { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; - Person personArray2[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, - { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + @Test + void givenTwoMultidimensionalObjectTypeArrays_whenUsingEqualsAndDeepEquals_thenBothShouldReturnDifferently() { + Person personArray1[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + Person personArray2[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; - assertFalse(Arrays.equals(personArray1, personArray2)); - assertTrue(Arrays.deepEquals(personArray1, personArray2)); - } + assertFalse(Arrays.equals(personArray1, personArray2)); + assertTrue(Arrays.deepEquals(personArray1, personArray2)); + } - @Test - void givenTwoMultidimensionalObjectTypeArrays_whenUsingDeepEqualsFromObjectsAndArraysClasses_thenBothShouldReturnTrue() { - Person personArray1[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, - { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; - Person personArray2[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, - { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + @Test + void givenTwoMultidimensionalObjectTypeArrays_whenUsingDeepEqualsFromObjectsAndArraysClasses_thenBothShouldReturnTrue() { + Person personArray1[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; + Person personArray2[][] = { { new Person(1, "John", 22), new Person(2, "Mike", 23) }, { new Person(3, "Steve", 27), new Person(4, "Gary", 28) } }; - assertTrue(Objects.deepEquals(personArray1, personArray2)); - assertTrue(Arrays.deepEquals(personArray1, personArray2)); - } + assertTrue(Objects.deepEquals(personArray1, personArray2)); + assertTrue(Arrays.deepEquals(personArray1, personArray2)); + } } diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 771d5a5d61..60e1dbf3ef 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -1,124 +1,121 @@ - - 4.0.0 - com.baeldung.core-java-modules - core-java-modules - core-java-modules - pom + + 4.0.0 + com.baeldung.core-java-modules + core-java-modules + core-java-modules + pom - - com.baeldung - parent-modules - 1.0.0-SNAPSHOT - + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + - - core-java - - - - - core-java-8 - core-java-8-2 + + core-java + + + + + core-java-8 + core-java-8-2 - - - - - + + + + + - core-java-annotations - core-java-arrays - core-java-arrays-2 + core-java-annotations + core-java-arrays + core-java-arrays-2 core-java-arrays-3 - core-java-collections - core-java-collections-2 - core-java-collections-3 - core-java-collections-array-list - core-java-collections-list - core-java-collections-list-2 - core-java-collections-list-3 - core-java-collections-set + core-java-collections + core-java-collections-2 + core-java-collections-3 + core-java-collections-array-list + core-java-collections-list + core-java-collections-list-2 + core-java-collections-list-3 + core-java-collections-set - core-java-concurrency-2 - core-java-concurrency-advanced - core-java-concurrency-advanced-2 - core-java-concurrency-advanced-3 - core-java-concurrency-basic - core-java-concurrency-basic-2 - core-java-concurrency-collections + core-java-concurrency-2 + core-java-concurrency-advanced + core-java-concurrency-advanced-2 + core-java-concurrency-advanced-3 + core-java-concurrency-basic + core-java-concurrency-basic-2 + core-java-concurrency-collections - - core-java-date-operations-2 - - + + core-java-date-operations-2 + + - core-java-exceptions - core-java-exceptions-2 + core-java-exceptions + core-java-exceptions-2 - core-java-function + core-java-function - core-java-io - core-java-io-2 - core-java-io-apis - core-java-io-conversions + core-java-io + core-java-io-2 + core-java-io-apis + core-java-io-conversions - core-java-jar - core-java-jndi - - core-java-jvm + core-java-jar + core-java-jndi + + core-java-jvm - core-java-lambdas - core-java-lang - core-java-lang-2 - core-java-lang-math - core-java-lang-oop - core-java-lang-oop-2 - core-java-lang-oop-3 - core-java-lang-oop-4 - core-java-lang-operators - core-java-lang-syntax - core-java-lang-syntax-2 + core-java-lambdas + core-java-lang + core-java-lang-2 + core-java-lang-math + core-java-lang-oop + core-java-lang-oop-2 + core-java-lang-oop-3 + core-java-lang-oop-4 + core-java-lang-operators + core-java-lang-syntax + core-java-lang-syntax-2 - core-java-networking - core-java-networking-2 - core-java-nio - core-java-nio-2 + core-java-networking + core-java-networking-2 + core-java-nio + core-java-nio-2 - core-java-optional - + core-java-optional + - core-java-perf + core-java-perf - core-java-reflection + core-java-reflection - core-java-security - core-java-streams - core-java-streams-2 - core-java-streams-3 - core-java-string-algorithms - core-java-string-algorithms-2 - core-java-string-algorithms-3 - core-java-string-apis - core-java-string-conversions - core-java-string-conversions-2 - core-java-string-operations - core-java-string-operations-2 - core-java-strings - core-java-sun + core-java-security + core-java-streams + core-java-streams-2 + core-java-streams-3 + core-java-string-algorithms + core-java-string-algorithms-2 + core-java-string-algorithms-3 + core-java-string-apis + core-java-string-conversions + core-java-string-conversions-2 + core-java-string-operations + core-java-string-operations-2 + core-java-strings + core-java-sun - core-java-text - + core-java-text + - - pre-jpms - + + pre-jpms + From 347a2b2b4f75e8ee32dc3fc65632d3c0967659f6 Mon Sep 17 00:00:00 2001 From: Florin Hriscu Date: Sun, 16 Feb 2020 17:43:28 +0200 Subject: [PATCH 40/44] BAEL-3502 - Format pom.xml file. --- core-java-modules/pom.xml | 199 +++++++++++++++++++------------------- 1 file changed, 101 insertions(+), 98 deletions(-) diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 60e1dbf3ef..771d5a5d61 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -1,121 +1,124 @@ - - 4.0.0 - com.baeldung.core-java-modules - core-java-modules - core-java-modules - pom + + 4.0.0 + com.baeldung.core-java-modules + core-java-modules + core-java-modules + pom - - com.baeldung - parent-modules - 1.0.0-SNAPSHOT - + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + - - core-java - - - - - core-java-8 - core-java-8-2 + + core-java + + + + + core-java-8 + core-java-8-2 - - - - - + + + + + - core-java-annotations - core-java-arrays - core-java-arrays-2 + core-java-annotations + core-java-arrays + core-java-arrays-2 core-java-arrays-3 - core-java-collections - core-java-collections-2 - core-java-collections-3 - core-java-collections-array-list - core-java-collections-list - core-java-collections-list-2 - core-java-collections-list-3 - core-java-collections-set + core-java-collections + core-java-collections-2 + core-java-collections-3 + core-java-collections-array-list + core-java-collections-list + core-java-collections-list-2 + core-java-collections-list-3 + core-java-collections-set - core-java-concurrency-2 - core-java-concurrency-advanced - core-java-concurrency-advanced-2 - core-java-concurrency-advanced-3 - core-java-concurrency-basic - core-java-concurrency-basic-2 - core-java-concurrency-collections + core-java-concurrency-2 + core-java-concurrency-advanced + core-java-concurrency-advanced-2 + core-java-concurrency-advanced-3 + core-java-concurrency-basic + core-java-concurrency-basic-2 + core-java-concurrency-collections - - core-java-date-operations-2 - - + + core-java-date-operations-2 + + - core-java-exceptions - core-java-exceptions-2 + core-java-exceptions + core-java-exceptions-2 - core-java-function + core-java-function - core-java-io - core-java-io-2 - core-java-io-apis - core-java-io-conversions + core-java-io + core-java-io-2 + core-java-io-apis + core-java-io-conversions - core-java-jar - core-java-jndi - - core-java-jvm + core-java-jar + core-java-jndi + + core-java-jvm - core-java-lambdas - core-java-lang - core-java-lang-2 - core-java-lang-math - core-java-lang-oop - core-java-lang-oop-2 - core-java-lang-oop-3 - core-java-lang-oop-4 - core-java-lang-operators - core-java-lang-syntax - core-java-lang-syntax-2 + core-java-lambdas + core-java-lang + core-java-lang-2 + core-java-lang-math + core-java-lang-oop + core-java-lang-oop-2 + core-java-lang-oop-3 + core-java-lang-oop-4 + core-java-lang-operators + core-java-lang-syntax + core-java-lang-syntax-2 - core-java-networking - core-java-networking-2 - core-java-nio - core-java-nio-2 + core-java-networking + core-java-networking-2 + core-java-nio + core-java-nio-2 - core-java-optional - + core-java-optional + - core-java-perf + core-java-perf - core-java-reflection + core-java-reflection - core-java-security - core-java-streams - core-java-streams-2 - core-java-streams-3 - core-java-string-algorithms - core-java-string-algorithms-2 - core-java-string-algorithms-3 - core-java-string-apis - core-java-string-conversions - core-java-string-conversions-2 - core-java-string-operations - core-java-string-operations-2 - core-java-strings - core-java-sun + core-java-security + core-java-streams + core-java-streams-2 + core-java-streams-3 + core-java-string-algorithms + core-java-string-algorithms-2 + core-java-string-algorithms-3 + core-java-string-apis + core-java-string-conversions + core-java-string-conversions-2 + core-java-string-operations + core-java-string-operations-2 + core-java-strings + core-java-sun - core-java-text - + core-java-text + - - pre-jpms - + + pre-jpms + From 70799d694fc50e6dc941130665d94fc888754ff2 Mon Sep 17 00:00:00 2001 From: Florin Hriscu Date: Sun, 16 Feb 2020 17:45:08 +0200 Subject: [PATCH 41/44] BAEL-3502 - Format core-java-modules pom.xml file. --- core-java-modules/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 771d5a5d61..2850983028 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -31,7 +31,7 @@ core-java-annotations core-java-arrays core-java-arrays-2 - core-java-arrays-3 + core-java-arrays-3 core-java-collections core-java-collections-2 From 46d322855101ada2497f3b42c8196c231481c8cf Mon Sep 17 00:00:00 2001 From: mikr Date: Sun, 16 Feb 2020 18:32:53 +0100 Subject: [PATCH 42/44] Java-112 Update unit tests for article merge --- .../readfile/JavaReadFromFileUnitTest.java | 91 ++++++++---------- .../src/test/resources/fileTest.txt | 2 +- .../{test_read3.in => fileTestTokenizer.txt} | 0 .../{test_read7.in => fileTestUtf8.txt} | 0 .../src/test/resources/test_read1.in | 1 - .../src/test/resources/test_read2.in | 1 - .../src/test/resources/test_read4.in | Bin 7 -> 0 bytes .../src/test/resources/test_read8.in | 2 - .../src/test/resources/test_read9.in | 1 - 9 files changed, 40 insertions(+), 58 deletions(-) rename core-java-modules/core-java-io/src/test/resources/{test_read3.in => fileTestTokenizer.txt} (100%) rename core-java-modules/core-java-io/src/test/resources/{test_read7.in => fileTestUtf8.txt} (100%) delete mode 100644 core-java-modules/core-java-io/src/test/resources/test_read1.in delete mode 100644 core-java-modules/core-java-io/src/test/resources/test_read2.in delete mode 100644 core-java-modules/core-java-io/src/test/resources/test_read4.in delete mode 100644 core-java-modules/core-java-io/src/test/resources/test_read8.in delete mode 100644 core-java-modules/core-java-io/src/test/resources/test_read9.in diff --git a/core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/JavaReadFromFileUnitTest.java b/core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/JavaReadFromFileUnitTest.java index 4cacac91fb..aa37a22e1f 100644 --- a/core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/JavaReadFromFileUnitTest.java +++ b/core-java-modules/core-java-io/src/test/java/com/baeldung/readfile/JavaReadFromFileUnitTest.java @@ -28,9 +28,9 @@ public class JavaReadFromFileUnitTest { @Test public void whenReadWithBufferedReader_thenCorrect() throws IOException { - final String expected_value = "Hello world"; + final String expected_value = "Hello, world!"; - final BufferedReader reader = new BufferedReader(new FileReader("src/test/resources/test_read.in")); + final BufferedReader reader = new BufferedReader(new FileReader("src/test/resources/fileTest.txt")); final String currentLine = reader.readLine(); reader.close(); @@ -39,7 +39,7 @@ public class JavaReadFromFileUnitTest { @Test public void givenFileName_whenUsingClassloader_thenFileData() throws IOException { - String expectedData = "Hello World from fileTest.txt!!!"; + String expectedData = "Hello, world!"; ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("fileTest.txt").getFile()); @@ -51,7 +51,7 @@ public class JavaReadFromFileUnitTest { @Test public void givenFileNameAsAbsolutePath_whenUsingClasspath_thenFileData() throws IOException { - String expectedData = "Hello World from fileTest.txt!!!"; + String expectedData = "Hello, world!"; Class clazz = JavaReadFromFileUnitTest.class; InputStream inputStream = clazz.getResourceAsStream("/fileTest.txt"); @@ -87,7 +87,7 @@ public class JavaReadFromFileUnitTest { @Test public void givenFileName_whenUsingFileUtils_thenFileData() throws IOException { - String expectedData = "Hello World from fileTest.txt!!!"; + String expectedData = "Hello, world!"; ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("fileTest.txt").getFile()); @@ -98,7 +98,7 @@ public class JavaReadFromFileUnitTest { @Test public void givenFilePath_whenUsingFilesReadAllBytes_thenFileData() throws IOException, URISyntaxException { - String expectedData = "Hello World from fileTest.txt!!!"; + String expectedData = "Hello, world!"; Path path = Paths.get(getClass().getClassLoader().getResource("fileTest.txt").toURI()); @@ -110,7 +110,7 @@ public class JavaReadFromFileUnitTest { @Test public void givenFilePath_whenUsingFilesLines_thenFileData() throws IOException, URISyntaxException { - String expectedData = "Hello World from fileTest.txt!!!"; + String expectedData = "Hello, world!"; Path path = Paths.get(getClass().getClassLoader().getResource("fileTest.txt").toURI()); @@ -123,9 +123,9 @@ public class JavaReadFromFileUnitTest { @Test public void givenFileName_whenUsingIOUtils_thenFileData() throws IOException { - String expectedData = "This is a content of the file"; + String expectedData = "Hello, world!"; - FileInputStream fis = new FileInputStream("src/test/resources/test_read9.in"); + FileInputStream fis = new FileInputStream("src/test/resources/fileTest.txt"); String data = IOUtils.toString(fis, "UTF-8"); assertEquals(expectedData, data.trim()); @@ -133,34 +133,32 @@ public class JavaReadFromFileUnitTest { @Test public void whenReadWithScanner_thenCorrect() throws IOException { - final Scanner scanner = new Scanner(new File("src/test/resources/test_read1.in")); + final Scanner scanner = new Scanner(new File("src/test/resources/fileTest.txt")); scanner.useDelimiter(" "); assertTrue(scanner.hasNext()); - assertEquals("Hello", scanner.next()); - assertEquals("world", scanner.next()); - assertEquals(1, scanner.nextInt()); + assertEquals("Hello,", scanner.next()); + assertEquals("world!", scanner.next()); scanner.close(); - } @Test public void whenReadWithScannerTwoDelimiters_thenCorrect() throws IOException { - final Scanner scanner = new Scanner(new File("src/test/resources/test_read2.in")); - scanner.useDelimiter(",| "); + final Scanner scanner = new Scanner(new File("src/test/resources/fileTest.txt")); + scanner.useDelimiter("\\s|,"); - assertTrue(scanner.hasNextInt()); - assertEquals(2, scanner.nextInt()); - assertEquals(3, scanner.nextInt()); - assertEquals(4, scanner.nextInt()); + assertTrue(scanner.hasNext()); + assertEquals("Hello", scanner.next()); + assertEquals("", scanner.next()); + assertEquals("world!", scanner.next()); scanner.close(); } @Test public void whenReadWithStreamTokenizer_thenCorrectTokens() throws IOException { - final FileReader reader = new FileReader("src/test/resources/test_read3.in"); + final FileReader reader = new FileReader("src/test/resources/fileTestTokenizer.txt"); final StreamTokenizer tokenizer = new StreamTokenizer(reader); tokenizer.nextToken(); @@ -177,37 +175,26 @@ public class JavaReadFromFileUnitTest { @Test public void whenReadWithDataInputStream_thenCorrect() throws IOException { - final String expected_value = "Hello"; + String expectedValue = "Hello, world!"; + String file ="src/test/resources/fileTest.txt"; - String result; - final DataInputStream reader = new DataInputStream(new FileInputStream("src/test/resources/test_read4.in")); - result = reader.readUTF(); - reader.close(); + String result = null; - assertEquals(expected_value, result); - } + DataInputStream reader = new DataInputStream(new FileInputStream(file)); + int nBytesToRead = reader.available(); + if(nBytesToRead > 0) { + byte[] bytes = new byte[nBytesToRead]; + reader.read(bytes); + result = new String(bytes); + } - public void whenReadTwoFilesWithSequenceInputStream_thenCorrect() throws IOException { - final int expected_value1 = 2000; - final int expected_value2 = 5000; - - final FileInputStream stream1 = new FileInputStream("src/test/resources/test_read5.in"); - final FileInputStream stream2 = new FileInputStream("src/test/resources/test_read6.in"); - - final SequenceInputStream sequence = new SequenceInputStream(stream1, stream2); - final DataInputStream reader = new DataInputStream(sequence); - - assertEquals(expected_value1, reader.readInt()); - assertEquals(expected_value2, reader.readInt()); - - reader.close(); - stream2.close(); + assertEquals(expectedValue, result); } @Test public void whenReadUTFEncodedFile_thenCorrect() throws IOException { final String expected_value = "青空"; - final BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("src/test/resources/test_read7.in"), "UTF-8")); + final BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("src/test/resources/fileTestUtf8.txt"), "UTF-8")); final String currentLine = reader.readLine(); reader.close(); @@ -216,8 +203,8 @@ public class JavaReadFromFileUnitTest { @Test public void whenReadFileContentsIntoString_thenCorrect() throws IOException { - final String expected_value = "Hello world \n Test line \n"; - final BufferedReader reader = new BufferedReader(new FileReader("src/test/resources/test_read8.in")); + final String expected_value = "Hello, world!\n"; + final BufferedReader reader = new BufferedReader(new FileReader("src/test/resources/fileTest.txt")); final StringBuilder builder = new StringBuilder(); String currentLine = reader.readLine(); while (currentLine != null) { @@ -233,8 +220,8 @@ public class JavaReadFromFileUnitTest { @Test public void whenReadWithFileChannel_thenCorrect() throws IOException { - final String expected_value = "Hello world"; - final RandomAccessFile reader = new RandomAccessFile("src/test/resources/test_read.in", "r"); + final String expected_value = "Hello, world!"; + final RandomAccessFile reader = new RandomAccessFile("src/test/resources/fileTest.txt", "r"); final FileChannel channel = reader.getChannel(); int bufferSize = 1024; @@ -251,8 +238,8 @@ public class JavaReadFromFileUnitTest { @Test public void whenReadSmallFileJava7_thenCorrect() throws IOException { - final String expected_value = "Hello world"; - final Path path = Paths.get("src/test/resources/test_read.in"); + final String expected_value = "Hello, world!"; + final Path path = Paths.get("src/test/resources/fileTest.txt"); final String read = Files.readAllLines(path, Charset.defaultCharset()).get(0); assertEquals(expected_value, read); @@ -260,9 +247,9 @@ public class JavaReadFromFileUnitTest { @Test public void whenReadLargeFileJava7_thenCorrect() throws IOException { - final String expected_value = "Hello world"; + final String expected_value = "Hello, world!"; - final Path path = Paths.get("src/test/resources/test_read.in"); + final Path path = Paths.get("src/test/resources/fileTest.txt"); final BufferedReader reader = Files.newBufferedReader(path, Charset.defaultCharset()); final String line = reader.readLine(); assertEquals(expected_value, line); diff --git a/core-java-modules/core-java-io/src/test/resources/fileTest.txt b/core-java-modules/core-java-io/src/test/resources/fileTest.txt index ce4bea208b..5dd01c177f 100644 --- a/core-java-modules/core-java-io/src/test/resources/fileTest.txt +++ b/core-java-modules/core-java-io/src/test/resources/fileTest.txt @@ -1 +1 @@ -Hello World from fileTest.txt!!! \ No newline at end of file +Hello, world! \ No newline at end of file diff --git a/core-java-modules/core-java-io/src/test/resources/test_read3.in b/core-java-modules/core-java-io/src/test/resources/fileTestTokenizer.txt similarity index 100% rename from core-java-modules/core-java-io/src/test/resources/test_read3.in rename to core-java-modules/core-java-io/src/test/resources/fileTestTokenizer.txt diff --git a/core-java-modules/core-java-io/src/test/resources/test_read7.in b/core-java-modules/core-java-io/src/test/resources/fileTestUtf8.txt similarity index 100% rename from core-java-modules/core-java-io/src/test/resources/test_read7.in rename to core-java-modules/core-java-io/src/test/resources/fileTestUtf8.txt diff --git a/core-java-modules/core-java-io/src/test/resources/test_read1.in b/core-java-modules/core-java-io/src/test/resources/test_read1.in deleted file mode 100644 index 1e46242993..0000000000 --- a/core-java-modules/core-java-io/src/test/resources/test_read1.in +++ /dev/null @@ -1 +0,0 @@ -Hello world 1 \ No newline at end of file diff --git a/core-java-modules/core-java-io/src/test/resources/test_read2.in b/core-java-modules/core-java-io/src/test/resources/test_read2.in deleted file mode 100644 index fe47dc003b..0000000000 --- a/core-java-modules/core-java-io/src/test/resources/test_read2.in +++ /dev/null @@ -1 +0,0 @@ -2,3 4 \ No newline at end of file diff --git a/core-java-modules/core-java-io/src/test/resources/test_read4.in b/core-java-modules/core-java-io/src/test/resources/test_read4.in deleted file mode 100644 index 5727d54bfcb2046f4989fd13cf5dcf408201fa2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7 OcmZQz^+?Uh$p-)htO5D} diff --git a/core-java-modules/core-java-io/src/test/resources/test_read8.in b/core-java-modules/core-java-io/src/test/resources/test_read8.in deleted file mode 100644 index 10fc1aac8a..0000000000 --- a/core-java-modules/core-java-io/src/test/resources/test_read8.in +++ /dev/null @@ -1,2 +0,0 @@ -Hello world - Test line diff --git a/core-java-modules/core-java-io/src/test/resources/test_read9.in b/core-java-modules/core-java-io/src/test/resources/test_read9.in deleted file mode 100644 index 7be79c9761..0000000000 --- a/core-java-modules/core-java-io/src/test/resources/test_read9.in +++ /dev/null @@ -1 +0,0 @@ -This is a content of the file From d1814a27112ba4f58f05c5d40e5241925bee00d7 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Sun, 16 Feb 2020 21:49:31 +0200 Subject: [PATCH 43/44] BAEL-3777: Revert spring boot to previous version --- ddd/pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ddd/pom.xml b/ddd/pom.xml index 817e3b8899..f27f1d24a9 100644 --- a/ddd/pom.xml +++ b/ddd/pom.xml @@ -39,6 +39,7 @@ org.junit.platform junit-platform-launcher + ${junit-platform.version} test @@ -93,7 +94,7 @@ 1.0.1 - 2.2.4.RELEASE + 2.0.6.RELEASE \ No newline at end of file From f33e9961a15d89669ed33dba6575d08098de8b24 Mon Sep 17 00:00:00 2001 From: Seun Matt Date: Sun, 16 Feb 2020 23:07:46 +0100 Subject: [PATCH 44/44] propage exception in example code (#8738) * example code for BAEL-3749 * added live test * added live test * improved exception handling in response log filter * propage exception in example code * updated repo with upstream --- .../src/main/java/com/baeldung/filters/ResponseLogFilter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java b/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java index 1fdd89c7f7..b0e4f7e313 100644 --- a/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java +++ b/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java @@ -12,6 +12,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.POST_TYPE; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; @Component public class ResponseLogFilter extends ZuulFilter { @@ -50,7 +51,7 @@ public class ResponseLogFilter extends ZuulFilter { context.setResponseBody(responseData); } catch (Exception e) { - logger.error("error occurred at response log filter", e); + throw new ZuulException(e, INTERNAL_SERVER_ERROR.value(), e.getMessage()); } return null;