From 73af581e18c1a374a19a0601cc384156e605aaa2 Mon Sep 17 00:00:00 2001 From: Sallo Szrajbman Date: Wed, 2 Dec 2020 13:40:38 +0000 Subject: [PATCH 1/8] BAEL-4071 - Get advised method info in Spring AOP --- .../com/baeldung/method/info/Account.java | 31 +++++++++++ .../method/info/AccountOperation.java | 12 +++++ .../method/info/BankAccountAspect.java | 53 +++++++++++++++++++ .../method/info/BankAccountService.java | 30 +++++++++++ .../method/info/WithdrawLimitException.java | 7 +++ .../BankAccountServiceIntegrationTest.java | 48 +++++++++++++++++ 6 files changed, 181 insertions(+) create mode 100644 spring-aop/src/main/java/com/baeldung/method/info/Account.java create mode 100644 spring-aop/src/main/java/com/baeldung/method/info/AccountOperation.java create mode 100644 spring-aop/src/main/java/com/baeldung/method/info/BankAccountAspect.java create mode 100644 spring-aop/src/main/java/com/baeldung/method/info/BankAccountService.java create mode 100644 spring-aop/src/main/java/com/baeldung/method/info/WithdrawLimitException.java create mode 100644 spring-aop/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java diff --git a/spring-aop/src/main/java/com/baeldung/method/info/Account.java b/spring-aop/src/main/java/com/baeldung/method/info/Account.java new file mode 100644 index 0000000000..1c946501fd --- /dev/null +++ b/spring-aop/src/main/java/com/baeldung/method/info/Account.java @@ -0,0 +1,31 @@ +package com.baeldung.method.info; + +public class Account { + + private String accountNumber; + private double balance; + + public String getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber; + } + + public double getBalance() { + return balance; + } + + public void setBalance(double balance) { + this.balance = balance; + } + + @Override + public String toString() { + return "Account{" + + "accountNumber='" + accountNumber + '\'' + + ", balance=" + balance + + '}'; + } +} diff --git a/spring-aop/src/main/java/com/baeldung/method/info/AccountOperation.java b/spring-aop/src/main/java/com/baeldung/method/info/AccountOperation.java new file mode 100644 index 0000000000..db725a724f --- /dev/null +++ b/spring-aop/src/main/java/com/baeldung/method/info/AccountOperation.java @@ -0,0 +1,12 @@ +package com.baeldung.method.info; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AccountOperation { + String operation(); +} diff --git a/spring-aop/src/main/java/com/baeldung/method/info/BankAccountAspect.java b/spring-aop/src/main/java/com/baeldung/method/info/BankAccountAspect.java new file mode 100644 index 0000000000..6c8ef9d8d6 --- /dev/null +++ b/spring-aop/src/main/java/com/baeldung/method/info/BankAccountAspect.java @@ -0,0 +1,53 @@ +package com.baeldung.method.info; + +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.Arrays; + +@Aspect +@Component +public class BankAccountAspect { + + @Before(value="@annotation(com.baeldung.method.info.AccountOperation)") + public void getAccountOperationInfo(JoinPoint joinPoint) { + + //Method Information + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + + System.out.println("full method description: " + signature.getMethod()); + + System.out.println("method name: " + signature.getMethod().getName()); + + System.out.println("declaring type: " + signature.getDeclaringType()); + + //Method args + System.out.println("Method args names:"); + Arrays.stream(signature.getParameterNames()).forEach(s -> System.out.println("arg name: " + s)); + + System.out.println("Method args types:"); + Arrays.stream(signature.getParameterTypes()).forEach(s -> System.out.println("arg type: " + s)); + + System.out.println("Method args values:"); + Arrays.stream(joinPoint.getArgs()).forEach(o -> System.out.println("arg value: " + o.toString())); + + //Additional Information + System.out.println("returning type: " + signature.getReturnType()); + System.out.println("method modifier: " + Modifier.toString(signature.getModifiers())); + Arrays.stream(signature.getExceptionTypes()) + .forEach(aClass -> System.out.println("exception type: " + aClass)); + + //Method annotation + Method method = signature.getMethod(); + AccountOperation accountOperation = method.getAnnotation(AccountOperation.class); + System.out.println("Account operation annotation: " + accountOperation); + System.out.println("Account operation value: " + accountOperation.operation()); + + } +} + diff --git a/spring-aop/src/main/java/com/baeldung/method/info/BankAccountService.java b/spring-aop/src/main/java/com/baeldung/method/info/BankAccountService.java new file mode 100644 index 0000000000..4c7d0e3cac --- /dev/null +++ b/spring-aop/src/main/java/com/baeldung/method/info/BankAccountService.java @@ -0,0 +1,30 @@ +package com.baeldung.method.info; + +import org.apache.commons.lang3.RandomUtils; +import org.springframework.stereotype.Component; + +@Component +public class BankAccountService { + + @AccountOperation(operation = "deposit") + public void deposit(Account account, Double amount) { + account.setBalance(account.getBalance() + amount); + } + + @AccountOperation(operation = "withdraw") + public void withdraw(Account account, Double amount) throws WithdrawLimitException { + + if(amount > 500.0) { + throw new WithdrawLimitException("Withdraw limit exceeded."); + } + + account.setBalance(account.getBalance() - amount); + + } + + public double getBalance() { + return RandomUtils.nextDouble(); + } + + +} diff --git a/spring-aop/src/main/java/com/baeldung/method/info/WithdrawLimitException.java b/spring-aop/src/main/java/com/baeldung/method/info/WithdrawLimitException.java new file mode 100644 index 0000000000..85b0b4acfb --- /dev/null +++ b/spring-aop/src/main/java/com/baeldung/method/info/WithdrawLimitException.java @@ -0,0 +1,7 @@ +package com.baeldung.method.info; + +public class WithdrawLimitException extends RuntimeException { + public WithdrawLimitException(String message) { + super(message); + } +} diff --git a/spring-aop/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java b/spring-aop/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java new file mode 100644 index 0000000000..9e0ebfa903 --- /dev/null +++ b/spring-aop/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java @@ -0,0 +1,48 @@ +package com.baeldung.method.info; + +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +@SpringBootTest +class BankAccountServiceIntegrationTest { + + private Account account; + + @BeforeEach + public void setup() { + account = new Account(); + account.setAccountNumber("12345"); + account.setBalance(2000.0); + } + + @Autowired + BankAccountService bankAccountService; + + @Test + void withdraw() { + bankAccountService.withdraw(account, 500.0); + assertTrue(account.getBalance() == 1500.0); + } + + @Test + void withdrawWhenLimitReached() { + Assertions.assertThatExceptionOfType(WithdrawLimitException.class).isThrownBy(() -> bankAccountService.withdraw(account, 600.0)); + assertTrue(account.getBalance() == 2000.0); + } + + @Test + void deposit() { + bankAccountService.deposit(account, 500.0); + assertTrue(account.getBalance() == 2500.0); + } + + @Test + void getBalance() { + bankAccountService.getBalance(); + } +} From 0c926e74413c8e2b011358b4db1e32deb1730717 Mon Sep 17 00:00:00 2001 From: Sallo Szrajbman Date: Sat, 19 Dec 2020 12:58:00 +0000 Subject: [PATCH 2/8] BAEL-4071 - Get advised method info in Spring AOP Fixing identation --- .../com/baeldung/method/info/Account.java | 39 ++++++------- .../method/info/AccountOperation.java | 2 +- .../method/info/BankAccountAspect.java | 54 +++++++++--------- .../method/info/BankAccountService.java | 29 +++++----- .../method/info/WithdrawLimitException.java | 8 +-- .../BankAccountServiceIntegrationTest.java | 57 ++++++++++--------- 6 files changed, 94 insertions(+), 95 deletions(-) diff --git a/spring-aop/src/main/java/com/baeldung/method/info/Account.java b/spring-aop/src/main/java/com/baeldung/method/info/Account.java index 1c946501fd..646e403f1e 100644 --- a/spring-aop/src/main/java/com/baeldung/method/info/Account.java +++ b/spring-aop/src/main/java/com/baeldung/method/info/Account.java @@ -2,30 +2,27 @@ package com.baeldung.method.info; public class Account { - private String accountNumber; - private double balance; + private String accountNumber; + private double balance; - public String getAccountNumber() { - return accountNumber; - } + public String getAccountNumber() { + return accountNumber; + } - public void setAccountNumber(String accountNumber) { - this.accountNumber = accountNumber; - } + public void setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber; + } - public double getBalance() { - return balance; - } + public double getBalance() { + return balance; + } - public void setBalance(double balance) { - this.balance = balance; - } + public void setBalance(double balance) { + this.balance = balance; + } - @Override - public String toString() { - return "Account{" + - "accountNumber='" + accountNumber + '\'' + - ", balance=" + balance + - '}'; - } + @Override + public String toString() { + return "Account{" + "accountNumber='" + accountNumber + '\'' + ", balance=" + balance + '}'; + } } diff --git a/spring-aop/src/main/java/com/baeldung/method/info/AccountOperation.java b/spring-aop/src/main/java/com/baeldung/method/info/AccountOperation.java index db725a724f..74bc60a6db 100644 --- a/spring-aop/src/main/java/com/baeldung/method/info/AccountOperation.java +++ b/spring-aop/src/main/java/com/baeldung/method/info/AccountOperation.java @@ -8,5 +8,5 @@ import java.lang.annotation.Target; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface AccountOperation { - String operation(); + String operation(); } diff --git a/spring-aop/src/main/java/com/baeldung/method/info/BankAccountAspect.java b/spring-aop/src/main/java/com/baeldung/method/info/BankAccountAspect.java index 6c8ef9d8d6..f743758cd7 100644 --- a/spring-aop/src/main/java/com/baeldung/method/info/BankAccountAspect.java +++ b/spring-aop/src/main/java/com/baeldung/method/info/BankAccountAspect.java @@ -14,40 +14,42 @@ import java.util.Arrays; @Component public class BankAccountAspect { - @Before(value="@annotation(com.baeldung.method.info.AccountOperation)") - public void getAccountOperationInfo(JoinPoint joinPoint) { + @Before(value = "@annotation(com.baeldung.method.info.AccountOperation)") + public void getAccountOperationInfo(JoinPoint joinPoint) { - //Method Information - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + // Method Information + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - System.out.println("full method description: " + signature.getMethod()); + System.out.println("full method description: " + signature.getMethod()); - System.out.println("method name: " + signature.getMethod().getName()); + System.out.println("method name: " + signature.getMethod().getName()); - System.out.println("declaring type: " + signature.getDeclaringType()); + System.out.println("declaring type: " + signature.getDeclaringType()); - //Method args - System.out.println("Method args names:"); - Arrays.stream(signature.getParameterNames()).forEach(s -> System.out.println("arg name: " + s)); + // Method args + System.out.println("Method args names:"); + Arrays.stream(signature.getParameterNames()) + .forEach(s -> System.out.println("arg name: " + s)); - System.out.println("Method args types:"); - Arrays.stream(signature.getParameterTypes()).forEach(s -> System.out.println("arg type: " + s)); + System.out.println("Method args types:"); + Arrays.stream(signature.getParameterTypes()) + .forEach(s -> System.out.println("arg type: " + s)); - System.out.println("Method args values:"); - Arrays.stream(joinPoint.getArgs()).forEach(o -> System.out.println("arg value: " + o.toString())); + System.out.println("Method args values:"); + Arrays.stream(joinPoint.getArgs()) + .forEach(o -> System.out.println("arg value: " + o.toString())); - //Additional Information - System.out.println("returning type: " + signature.getReturnType()); - System.out.println("method modifier: " + Modifier.toString(signature.getModifiers())); - Arrays.stream(signature.getExceptionTypes()) - .forEach(aClass -> System.out.println("exception type: " + aClass)); + // Additional Information + System.out.println("returning type: " + signature.getReturnType()); + System.out.println("method modifier: " + Modifier.toString(signature.getModifiers())); + Arrays.stream(signature.getExceptionTypes()) + .forEach(aClass -> System.out.println("exception type: " + aClass)); - //Method annotation - Method method = signature.getMethod(); - AccountOperation accountOperation = method.getAnnotation(AccountOperation.class); - System.out.println("Account operation annotation: " + accountOperation); - System.out.println("Account operation value: " + accountOperation.operation()); + // Method annotation + Method method = signature.getMethod(); + AccountOperation accountOperation = method.getAnnotation(AccountOperation.class); + System.out.println("Account operation annotation: " + accountOperation); + System.out.println("Account operation value: " + accountOperation.operation()); - } + } } - diff --git a/spring-aop/src/main/java/com/baeldung/method/info/BankAccountService.java b/spring-aop/src/main/java/com/baeldung/method/info/BankAccountService.java index 4c7d0e3cac..6ebab37d9e 100644 --- a/spring-aop/src/main/java/com/baeldung/method/info/BankAccountService.java +++ b/spring-aop/src/main/java/com/baeldung/method/info/BankAccountService.java @@ -6,25 +6,24 @@ import org.springframework.stereotype.Component; @Component public class BankAccountService { - @AccountOperation(operation = "deposit") - public void deposit(Account account, Double amount) { - account.setBalance(account.getBalance() + amount); - } - - @AccountOperation(operation = "withdraw") - public void withdraw(Account account, Double amount) throws WithdrawLimitException { - - if(amount > 500.0) { - throw new WithdrawLimitException("Withdraw limit exceeded."); + @AccountOperation(operation = "deposit") + public void deposit(Account account, Double amount) { + account.setBalance(account.getBalance() + amount); } - account.setBalance(account.getBalance() - amount); + @AccountOperation(operation = "withdraw") + public void withdraw(Account account, Double amount) throws WithdrawLimitException { - } + if (amount > 500.0) { + throw new WithdrawLimitException("Withdraw limit exceeded."); + } - public double getBalance() { - return RandomUtils.nextDouble(); - } + account.setBalance(account.getBalance() - amount); + } + + public double getBalance() { + return RandomUtils.nextDouble(); + } } diff --git a/spring-aop/src/main/java/com/baeldung/method/info/WithdrawLimitException.java b/spring-aop/src/main/java/com/baeldung/method/info/WithdrawLimitException.java index 85b0b4acfb..b29a27c94f 100644 --- a/spring-aop/src/main/java/com/baeldung/method/info/WithdrawLimitException.java +++ b/spring-aop/src/main/java/com/baeldung/method/info/WithdrawLimitException.java @@ -1,7 +1,7 @@ package com.baeldung.method.info; -public class WithdrawLimitException extends RuntimeException { - public WithdrawLimitException(String message) { - super(message); - } +public class WithdrawLimitException extends RuntimeException { + public WithdrawLimitException(String message) { + super(message); + } } diff --git a/spring-aop/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java b/spring-aop/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java index 9e0ebfa903..b1ba97654e 100644 --- a/spring-aop/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java +++ b/spring-aop/src/test/java/com/baeldung/method/info/BankAccountServiceIntegrationTest.java @@ -11,38 +11,39 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @SpringBootTest class BankAccountServiceIntegrationTest { - private Account account; + private Account account; - @BeforeEach - public void setup() { - account = new Account(); - account.setAccountNumber("12345"); - account.setBalance(2000.0); - } + @BeforeEach + public void setup() { + account = new Account(); + account.setAccountNumber("12345"); + account.setBalance(2000.0); + } - @Autowired - BankAccountService bankAccountService; + @Autowired + BankAccountService bankAccountService; - @Test - void withdraw() { - bankAccountService.withdraw(account, 500.0); - assertTrue(account.getBalance() == 1500.0); - } + @Test + void withdraw() { + bankAccountService.withdraw(account, 500.0); + assertTrue(account.getBalance() == 1500.0); + } - @Test - void withdrawWhenLimitReached() { - Assertions.assertThatExceptionOfType(WithdrawLimitException.class).isThrownBy(() -> bankAccountService.withdraw(account, 600.0)); - assertTrue(account.getBalance() == 2000.0); - } + @Test + void withdrawWhenLimitReached() { + Assertions.assertThatExceptionOfType(WithdrawLimitException.class) + .isThrownBy(() -> bankAccountService.withdraw(account, 600.0)); + assertTrue(account.getBalance() == 2000.0); + } - @Test - void deposit() { - bankAccountService.deposit(account, 500.0); - assertTrue(account.getBalance() == 2500.0); - } + @Test + void deposit() { + bankAccountService.deposit(account, 500.0); + assertTrue(account.getBalance() == 2500.0); + } - @Test - void getBalance() { - bankAccountService.getBalance(); - } + @Test + void getBalance() { + bankAccountService.getBalance(); + } } From 981ca0b5068b3b4fdb73af3304fa7c792ad2990e Mon Sep 17 00:00:00 2001 From: Krzysztof Woyke Date: Wed, 23 Dec 2020 11:05:24 +0100 Subject: [PATCH 3/8] JAVA-3496: Add integration tests for UserRepository --- .../data/jpa/query/UserApplication.java | 13 ++ .../src/main/resources/insert_users.sql | 8 + .../query/UserRepositoryIntegrationTest.java | 162 ++++++++++++++++++ 3 files changed, 183 insertions(+) create mode 100644 persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/UserApplication.java create mode 100644 persistence-modules/spring-data-jpa-query-2/src/main/resources/insert_users.sql create mode 100644 persistence-modules/spring-data-jpa-query-2/src/test/java/com/baeldung/spring/data/jpa/query/UserRepositoryIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/UserApplication.java b/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/UserApplication.java new file mode 100644 index 0000000000..0f7b19ec47 --- /dev/null +++ b/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/UserApplication.java @@ -0,0 +1,13 @@ +package com.baeldung.spring.data.jpa.query; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class UserApplication { + + public static void main(String[] args) { + SpringApplication.run(UserApplication.class, args); + } + +} diff --git a/persistence-modules/spring-data-jpa-query-2/src/main/resources/insert_users.sql b/persistence-modules/spring-data-jpa-query-2/src/main/resources/insert_users.sql new file mode 100644 index 0000000000..330b2e36b0 --- /dev/null +++ b/persistence-modules/spring-data-jpa-query-2/src/main/resources/insert_users.sql @@ -0,0 +1,8 @@ +insert into Users(id, name, creation_date, last_login_date, active, age, email, status) +values(1, 'John', TO_DATE('01/01/2018', 'DD/MM/YYYY'), TO_DATE('01/01/2020', 'DD/MM/YYYY'), 1, 23, 'john@email.com', 1); + +insert into Users(id, name, creation_date, last_login_date, active, age, email, status) +values(2, 'Bob', TO_DATE('02/02/2019', 'DD/MM/YYYY'), TO_DATE('02/02/2020', 'DD/MM/YYYY'), 1, 56, 'bob@email.com', 1); + +insert into Users(id, name, creation_date, last_login_date, active, age, email, status) +values(3, 'Cindy', TO_DATE('02/02/2019', 'DD/MM/YYYY'), TO_DATE('02/02/2020', 'DD/MM/YYYY'), 1, 18, 'cindy@email.com', 0); \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-query-2/src/test/java/com/baeldung/spring/data/jpa/query/UserRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-query-2/src/test/java/com/baeldung/spring/data/jpa/query/UserRepositoryIntegrationTest.java new file mode 100644 index 0000000000..0ede418acd --- /dev/null +++ b/persistence-modules/spring-data-jpa-query-2/src/test/java/com/baeldung/spring/data/jpa/query/UserRepositoryIntegrationTest.java @@ -0,0 +1,162 @@ +package com.baeldung.spring.data.jpa.query; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.JpaSort; +import org.springframework.data.mapping.PropertyReferenceException; +import org.springframework.test.context.junit4.SpringRunner; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +@RunWith(SpringRunner.class) +@DataJpaTest(properties = "spring.datasource.data=classpath:insert_users.sql") +public class UserRepositoryIntegrationTest { + + @Autowired + private UserRepository userRepository; + + @Test + public void whenFindAllActiveUsersThenAllActiveFound() { + Collection allActiveUsers = userRepository.findAllActiveUsers(); + assertThat(allActiveUsers).hasSize(2); + } + + @Test + public void whenFindAllActiveUsersNativeThenAllActiveFound() { + Collection allActiveUsers = userRepository.findAllActiveUsersNative(); + assertThat(allActiveUsers).hasSize(2); + } + + @Test + public void whenFindAllSortedByNameThenAllSorted() { + List allUsersSortedByName = userRepository.findAll(Sort.by(Sort.Direction.ASC, "name")); + assertThat(allUsersSortedByName) + .extracting("name") + .containsSequence("Bob", "Cindy", "John"); + } + + @Test + public void whenFindAllSortedByNameLengthThenException() { + assertThatThrownBy(() -> userRepository.findAll(Sort.by("LENGTH(name)"))) + .isInstanceOf(PropertyReferenceException.class); + } + + @Test + public void whenFindAllUsersSortedByNameThenAllSorted() { + List allUsersSortedByName = userRepository.findAllUsers(Sort.by(Sort.Direction.ASC, "name")); + assertThat(allUsersSortedByName) + .extracting("name") + .containsSequence("Bob", "Cindy", "John"); + } + + @Test + public void whenFindAllUsersSortedByNameLengthThenAllSorted() { + List allUsersSortedByName = userRepository.findAllUsers(JpaSort.unsafe("LENGTH(name)")); + assertThat(allUsersSortedByName) + .extracting("name") + .containsSequence("Bob", "John", "Cindy"); + } + + @Test + public void whenFindAllUsersWithPaginationThenPaginated() { + Page page = userRepository.findAllUsersWithPagination(PageRequest.of(0, 1)); + assertThat(page.stream().map(User::getId)) + .hasSize(1) + .containsOnly(1); + } + + @Test + public void whenFindAllUsersWithPaginationNativeThenPaginated() { + Page page = userRepository.findAllUsersWithPaginationNative(PageRequest.of(1, 1)); + assertThat(page.stream().map(User::getId)) + .hasSize(1) + .containsOnly(2); + } + + @Test + public void whenFindUserByStatusThenFound() { + User user = userRepository.findUserByStatus(0); + assertThat(user.getStatus()).isZero(); + } + + @Test + public void whenFindUserByStatusAndNameThenFound() { + User user = userRepository.findUserByStatusAndName(1, "John"); + assertThat(user.getStatus()).isOne(); + assertThat(user.getName()).isEqualTo("John"); + } + + @Test + public void whenFindUserByStatusNativeThenFound() { + User user = userRepository.findUserByStatusNative(0); + assertThat(user.getStatus()).isZero(); + } + + @Test + public void whenFindUserByStatusAndNameNamedParamsThenFound() { + User user = userRepository.findUserByStatusAndNameNamedParams(1, "John"); + assertThat(user.getStatus()).isOne(); + assertThat(user.getName()).isEqualTo("John"); + } + + @Test + public void whenFindUserByUserStatusAndUserNameThenFound() { + User user = userRepository.findUserByUserStatusAndUserName(1, "John"); + assertThat(user.getStatus()).isOne(); + assertThat(user.getName()).isEqualTo("John"); + } + + @Test + public void whenFindUserByStatusAndNameNamedParamsNativeThenFound() { + User user = userRepository.findUserByStatusAndNameNamedParamsNative(1, "Bob"); + assertThat(user.getStatus()).isOne(); + assertThat(user.getName()).isEqualTo("Bob"); + } + + @Test + public void whenFindUserByNameListThenAllFound() { + List users = userRepository.findUserByNameList(Arrays.asList("Bob", "Cindy")); + assertThat(users) + .extracting("name") + .containsOnly("Bob", "Cindy"); + } + + @Test + public void whenUpdateUserSetStatusForNameThenUpdated() { + int updated = userRepository.updateUserSetStatusForName(0, "John"); + assertThat(updated).isOne(); + + User john = userRepository.findUserByStatusAndName(0, "John"); + assertThat(john).isNotNull(); + } + + @Test + public void whenUpdateUserSetStatusForNameNativeThenUpdated() { + int updated = userRepository.updateUserSetStatusForNameNative(0, "John"); + assertThat(updated).isOne(); + + User john = userRepository.findUserByStatusAndName(0, "John"); + assertThat(john).isNotNull(); + } + + @Test + public void whenInsertUserThenInserted() { + User beforeInsert = userRepository.findUserByStatusAndName(0, "Mandy"); + assertThat(beforeInsert).isNull(); + + userRepository.insertUser("Mandy", 20, "mandy@email.com", 0, true); + + User afterInsert = userRepository.findUserByStatusAndName(0, "Mandy"); + assertThat(afterInsert).isNotNull(); + } +} From 061cf1a1ed4d1e654c46dca6c02562e38ef3e5c8 Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Tue, 29 Dec 2020 00:22:02 +0100 Subject: [PATCH 4/8] JAVA-3496: Use a single common QueryApplication --- .../{UserApplication.java => QueryApplication.java} | 4 ++-- .../spring/data/jpa/query/datetime/Application.java | 13 ------------- 2 files changed, 2 insertions(+), 15 deletions(-) rename persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/{UserApplication.java => QueryApplication.java} (72%) delete mode 100644 persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/datetime/Application.java diff --git a/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/UserApplication.java b/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/QueryApplication.java similarity index 72% rename from persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/UserApplication.java rename to persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/QueryApplication.java index 0f7b19ec47..48c29eda23 100644 --- a/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/UserApplication.java +++ b/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/QueryApplication.java @@ -4,10 +4,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication -public class UserApplication { +public class QueryApplication { public static void main(String[] args) { - SpringApplication.run(UserApplication.class, args); + SpringApplication.run(QueryApplication.class, args); } } diff --git a/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/datetime/Application.java b/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/datetime/Application.java deleted file mode 100644 index 81e5a2f790..0000000000 --- a/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/spring/data/jpa/query/datetime/Application.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.baeldung.spring.data.jpa.query.datetime; - -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); - } - -} From 1a63c83f55f5141b3247f005352b8e3e8433f5b3 Mon Sep 17 00:00:00 2001 From: Adrian Maghear Date: Tue, 29 Dec 2020 16:42:52 +0100 Subject: [PATCH 5/8] [BAEL-4015] fix integration tests --- .../spring-cloud-eureka-feign-client-integration-test/pom.xml | 2 +- ...rationTest.java => ServiceDiscoveryBooksClientLiveTest.java} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename spring-cloud/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/{ServiceDiscoveryBooksClientIntegrationTest.java => ServiceDiscoveryBooksClientLiveTest.java} (97%) diff --git a/spring-cloud/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/pom.xml b/spring-cloud/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/pom.xml index 3348dbb24f..95b1275e2c 100644 --- a/spring-cloud/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/pom.xml +++ b/spring-cloud/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/pom.xml @@ -88,7 +88,7 @@ maven-surefire-plugin 1 - true + false diff --git a/spring-cloud/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/ServiceDiscoveryBooksClientIntegrationTest.java b/spring-cloud/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/ServiceDiscoveryBooksClientLiveTest.java similarity index 97% rename from spring-cloud/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/ServiceDiscoveryBooksClientIntegrationTest.java rename to spring-cloud/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/ServiceDiscoveryBooksClientLiveTest.java index 027579d20d..3ac067b8f8 100644 --- a/spring-cloud/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/ServiceDiscoveryBooksClientIntegrationTest.java +++ b/spring-cloud/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/ServiceDiscoveryBooksClientLiveTest.java @@ -25,7 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @ExtendWith(SpringExtension.class) @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @ContextConfiguration(classes = { MockBookServiceConfig.class }, initializers = { EurekaContainerConfig.Initializer.class }) -class ServiceDiscoveryBooksClientIntegrationTest { +class ServiceDiscoveryBooksClientLiveTest { @Autowired private BooksClient booksClient; From 469e5c5c861fdefbbaf83afd9bb601a553d259f6 Mon Sep 17 00:00:00 2001 From: mikr Date: Tue, 29 Dec 2020 18:52:31 +0100 Subject: [PATCH 6/8] JAVA-3539 Move spring-resttemplate-2 module --- pom.xml | 2 -- spring-web-modules/pom.xml | 1 + .../spring-resttemplate-2}/README.md | 0 .../spring-resttemplate-2}/pom.xml | 2 +- .../compress/CompressingClientHttpRequestInterceptor.java | 0 .../src/main/java/com/baeldung/compress/GzipUtils.java | 0 .../java/com/baeldung/compress/JettyWebServerConfiguration.java | 0 .../src/main/java/com/baeldung/compress/Message.java | 0 .../src/main/java/com/baeldung/compress/MessageController.java | 0 .../java/com/baeldung/compress/RestTemplateConfiguration.java | 0 .../com/baeldung/compress/SpringCompressRequestApplication.java | 0 .../resttemplate/RestTemplateConfigurationApplication.java | 0 .../resttemplate/json/consumer/service/UserConsumerService.java | 0 .../json/consumer/service/UserConsumerServiceImpl.java | 0 .../main/java/com/baeldung/resttemplate/json/model/Address.java | 0 .../main/java/com/baeldung/resttemplate/json/model/User.java | 0 .../resttemplate/logging/web/controller/PersonController.java | 0 .../com/baeldung/resttemplate/web/controller/PersonAPI.java | 0 .../src/main/java/com/baeldung/resttemplate/web/dto/Person.java | 0 .../com/baeldung/resttemplate/web/service/PersonService.java | 0 .../baeldung/resttemplate/web/service/PersonServiceImpl.java | 0 .../src/main/java/com/baeldung/sampleapp/config/WebConfig.java | 0 .../web/controller/mediatypes/CustomMediaTypeController.java | 0 .../main/java/com/baeldung/sampleapp/web/dto/BaeldungItem.java | 0 .../java/com/baeldung/sampleapp/web/dto/BaeldungItemV2.java | 0 .../src/main/resources/application.properties | 0 .../src/test/java/com/baeldung/compress/GzipUtilsUnitTest.java | 0 .../java/com/baeldung/compress/MessageControllerUnitTest.java | 0 .../json/consumer/service/UserConsumerServiceImplUnitTest.java | 0 .../com/baeldung/resttemplate/logging/LoggingInterceptor.java | 0 .../resttemplate/logging/RestTemplateLoggingLiveTest.java | 0 .../com/baeldung/resttemplate/postjson/PersonAPILiveTest.java | 0 .../com/baeldung/resttemplate/proxy/RequestFactoryLiveTest.java | 0 .../resttemplate/proxy/RestTemplateCustomizerLiveTest.java | 0 .../mediatypes/CustomMediaTypeControllerIntegrationTest.java | 0 .../mediatypes/CustomMediaTypeControllerLiveTest.java | 0 .../java/com/baeldung/web/controller/mediatypes/TestConfig.java | 0 .../src/test/resources/application.properties | 0 38 files changed, 2 insertions(+), 3 deletions(-) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/README.md (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/pom.xml (97%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/compress/CompressingClientHttpRequestInterceptor.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/compress/GzipUtils.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/compress/JettyWebServerConfiguration.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/compress/Message.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/compress/MessageController.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/compress/RestTemplateConfiguration.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/compress/SpringCompressRequestApplication.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/resttemplate/RestTemplateConfigurationApplication.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerService.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerServiceImpl.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/resttemplate/json/model/Address.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/resttemplate/json/model/User.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/resttemplate/logging/web/controller/PersonController.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/resttemplate/web/controller/PersonAPI.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/resttemplate/web/dto/Person.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/resttemplate/web/service/PersonService.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/resttemplate/web/service/PersonServiceImpl.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/sampleapp/config/WebConfig.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/sampleapp/web/controller/mediatypes/CustomMediaTypeController.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItem.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItemV2.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/main/resources/application.properties (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/java/com/baeldung/compress/GzipUtilsUnitTest.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/java/com/baeldung/compress/MessageControllerUnitTest.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerServiceImplUnitTest.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/java/com/baeldung/resttemplate/logging/LoggingInterceptor.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/java/com/baeldung/resttemplate/logging/RestTemplateLoggingLiveTest.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/java/com/baeldung/resttemplate/postjson/PersonAPILiveTest.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/java/com/baeldung/resttemplate/proxy/RequestFactoryLiveTest.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/java/com/baeldung/resttemplate/proxy/RestTemplateCustomizerLiveTest.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerIntegrationTest.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerLiveTest.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/java/com/baeldung/web/controller/mediatypes/TestConfig.java (100%) rename {spring-resttemplate-2 => spring-web-modules/spring-resttemplate-2}/src/test/resources/application.properties (100%) diff --git a/pom.xml b/pom.xml index f8e84c09e1..14de77891b 100644 --- a/pom.xml +++ b/pom.xml @@ -678,7 +678,6 @@ spring-rest-shell spring-rest-simple spring-resttemplate - spring-resttemplate-2 spring-rest-testing spring-roo @@ -1147,7 +1146,6 @@ spring-rest-shell spring-rest-simple spring-resttemplate - spring-resttemplate-2 spring-rest-testing spring-roo diff --git a/spring-web-modules/pom.xml b/spring-web-modules/pom.xml index 3dea8fc36e..67580e9b91 100644 --- a/spring-web-modules/pom.xml +++ b/spring-web-modules/pom.xml @@ -21,6 +21,7 @@ spring-mvc-crash spring-mvc-forms-jsp spring-rest-http + spring-resttemplate-2 spring-thymeleaf spring-thymeleaf-2 spring-thymeleaf-3 diff --git a/spring-resttemplate-2/README.md b/spring-web-modules/spring-resttemplate-2/README.md similarity index 100% rename from spring-resttemplate-2/README.md rename to spring-web-modules/spring-resttemplate-2/README.md diff --git a/spring-resttemplate-2/pom.xml b/spring-web-modules/spring-resttemplate-2/pom.xml similarity index 97% rename from spring-resttemplate-2/pom.xml rename to spring-web-modules/spring-resttemplate-2/pom.xml index 1404a35f33..04be058638 100644 --- a/spring-resttemplate-2/pom.xml +++ b/spring-web-modules/spring-resttemplate-2/pom.xml @@ -11,7 +11,7 @@ com.baeldung parent-boot-2 0.0.1-SNAPSHOT - ../parent-boot-2 + parent-boot-2/pom.xml diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/compress/CompressingClientHttpRequestInterceptor.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/CompressingClientHttpRequestInterceptor.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/compress/CompressingClientHttpRequestInterceptor.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/CompressingClientHttpRequestInterceptor.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/compress/GzipUtils.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/GzipUtils.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/compress/GzipUtils.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/GzipUtils.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/compress/JettyWebServerConfiguration.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/JettyWebServerConfiguration.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/compress/JettyWebServerConfiguration.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/JettyWebServerConfiguration.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/compress/Message.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/Message.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/compress/Message.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/Message.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/compress/MessageController.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/MessageController.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/compress/MessageController.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/MessageController.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/compress/RestTemplateConfiguration.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/RestTemplateConfiguration.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/compress/RestTemplateConfiguration.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/RestTemplateConfiguration.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/compress/SpringCompressRequestApplication.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/SpringCompressRequestApplication.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/compress/SpringCompressRequestApplication.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/compress/SpringCompressRequestApplication.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/RestTemplateConfigurationApplication.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/RestTemplateConfigurationApplication.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/RestTemplateConfigurationApplication.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/RestTemplateConfigurationApplication.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerService.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerService.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerService.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerService.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerServiceImpl.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerServiceImpl.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerServiceImpl.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerServiceImpl.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/model/Address.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/model/Address.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/model/Address.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/model/Address.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/model/User.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/model/User.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/model/User.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/json/model/User.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/logging/web/controller/PersonController.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/logging/web/controller/PersonController.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/logging/web/controller/PersonController.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/logging/web/controller/PersonController.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/controller/PersonAPI.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/controller/PersonAPI.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/controller/PersonAPI.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/controller/PersonAPI.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/dto/Person.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/dto/Person.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/dto/Person.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/dto/Person.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonService.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonService.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonService.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonService.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonServiceImpl.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonServiceImpl.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonServiceImpl.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/resttemplate/web/service/PersonServiceImpl.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/config/WebConfig.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/config/WebConfig.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/config/WebConfig.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/config/WebConfig.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/controller/mediatypes/CustomMediaTypeController.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/controller/mediatypes/CustomMediaTypeController.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/controller/mediatypes/CustomMediaTypeController.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/controller/mediatypes/CustomMediaTypeController.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItem.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItem.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItem.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItem.java diff --git a/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItemV2.java b/spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItemV2.java similarity index 100% rename from spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItemV2.java rename to spring-web-modules/spring-resttemplate-2/src/main/java/com/baeldung/sampleapp/web/dto/BaeldungItemV2.java diff --git a/spring-resttemplate-2/src/main/resources/application.properties b/spring-web-modules/spring-resttemplate-2/src/main/resources/application.properties similarity index 100% rename from spring-resttemplate-2/src/main/resources/application.properties rename to spring-web-modules/spring-resttemplate-2/src/main/resources/application.properties diff --git a/spring-resttemplate-2/src/test/java/com/baeldung/compress/GzipUtilsUnitTest.java b/spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/compress/GzipUtilsUnitTest.java similarity index 100% rename from spring-resttemplate-2/src/test/java/com/baeldung/compress/GzipUtilsUnitTest.java rename to spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/compress/GzipUtilsUnitTest.java diff --git a/spring-resttemplate-2/src/test/java/com/baeldung/compress/MessageControllerUnitTest.java b/spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/compress/MessageControllerUnitTest.java similarity index 100% rename from spring-resttemplate-2/src/test/java/com/baeldung/compress/MessageControllerUnitTest.java rename to spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/compress/MessageControllerUnitTest.java diff --git a/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerServiceImplUnitTest.java b/spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerServiceImplUnitTest.java similarity index 100% rename from spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerServiceImplUnitTest.java rename to spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/json/consumer/service/UserConsumerServiceImplUnitTest.java diff --git a/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/logging/LoggingInterceptor.java b/spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/logging/LoggingInterceptor.java similarity index 100% rename from spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/logging/LoggingInterceptor.java rename to spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/logging/LoggingInterceptor.java diff --git a/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/logging/RestTemplateLoggingLiveTest.java b/spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/logging/RestTemplateLoggingLiveTest.java similarity index 100% rename from spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/logging/RestTemplateLoggingLiveTest.java rename to spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/logging/RestTemplateLoggingLiveTest.java diff --git a/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/postjson/PersonAPILiveTest.java b/spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/postjson/PersonAPILiveTest.java similarity index 100% rename from spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/postjson/PersonAPILiveTest.java rename to spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/postjson/PersonAPILiveTest.java diff --git a/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RequestFactoryLiveTest.java b/spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RequestFactoryLiveTest.java similarity index 100% rename from spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RequestFactoryLiveTest.java rename to spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RequestFactoryLiveTest.java diff --git a/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RestTemplateCustomizerLiveTest.java b/spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RestTemplateCustomizerLiveTest.java similarity index 100% rename from spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RestTemplateCustomizerLiveTest.java rename to spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/resttemplate/proxy/RestTemplateCustomizerLiveTest.java diff --git a/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerIntegrationTest.java b/spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerIntegrationTest.java similarity index 100% rename from spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerIntegrationTest.java rename to spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerIntegrationTest.java diff --git a/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerLiveTest.java b/spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerLiveTest.java similarity index 100% rename from spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerLiveTest.java rename to spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/CustomMediaTypeControllerLiveTest.java diff --git a/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/TestConfig.java b/spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/TestConfig.java similarity index 100% rename from spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/TestConfig.java rename to spring-web-modules/spring-resttemplate-2/src/test/java/com/baeldung/web/controller/mediatypes/TestConfig.java diff --git a/spring-resttemplate-2/src/test/resources/application.properties b/spring-web-modules/spring-resttemplate-2/src/test/resources/application.properties similarity index 100% rename from spring-resttemplate-2/src/test/resources/application.properties rename to spring-web-modules/spring-resttemplate-2/src/test/resources/application.properties From 1c07f40727bac7e91007cd4e46b62459ad24f1b1 Mon Sep 17 00:00:00 2001 From: mikr Date: Tue, 29 Dec 2020 20:31:13 +0100 Subject: [PATCH 7/8] JAVA-3523 Move spring-rest-angular module --- pom.xml | 2 -- spring-web-modules/pom.xml | 1 + .../spring-rest-angular}/README.md | 0 .../spring-rest-angular}/pom.xml | 2 +- .../src/main/java/com/baeldung/web/dao/StudentRepository.java | 0 .../src/main/java/com/baeldung/web/entity/Student.java | 0 .../com/baeldung/web/exception/MyResourceNotFoundException.java | 0 .../src/main/java/com/baeldung/web/main/Application.java | 0 .../src/main/java/com/baeldung/web/main/PersistenceConfig.java | 0 .../com/baeldung/web/rest/StudentDirectoryRestController.java | 0 .../src/main/java/com/baeldung/web/service/IOperations.java | 0 .../src/main/java/com/baeldung/web/service/StudentService.java | 0 .../main/java/com/baeldung/web/service/StudentServiceImpl.java | 0 .../src/main/resources/application.properties | 0 .../spring-rest-angular}/src/main/resources/data.sql | 0 .../spring-rest-angular}/src/main/resources/logback.xml | 0 .../spring-rest-angular}/src/main/webapp/WEB-INF/web.xml | 0 .../spring-rest-angular}/src/main/webapp/index.html | 0 .../spring-rest-angular}/src/main/webapp/view/app.js | 0 .../src/test/java/com/baeldung/SpringContextTest.java | 0 .../com/baeldung/web/service/StudentServiceIntegrationTest.java | 0 21 files changed, 2 insertions(+), 3 deletions(-) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/README.md (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/pom.xml (97%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/java/com/baeldung/web/dao/StudentRepository.java (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/java/com/baeldung/web/entity/Student.java (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/java/com/baeldung/web/main/Application.java (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/java/com/baeldung/web/main/PersistenceConfig.java (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/java/com/baeldung/web/rest/StudentDirectoryRestController.java (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/java/com/baeldung/web/service/IOperations.java (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/java/com/baeldung/web/service/StudentService.java (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/java/com/baeldung/web/service/StudentServiceImpl.java (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/resources/application.properties (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/resources/data.sql (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/resources/logback.xml (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/webapp/WEB-INF/web.xml (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/webapp/index.html (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/main/webapp/view/app.js (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/test/java/com/baeldung/SpringContextTest.java (100%) rename {spring-rest-angular => spring-web-modules/spring-rest-angular}/src/test/java/com/baeldung/web/service/StudentServiceIntegrationTest.java (100%) diff --git a/pom.xml b/pom.xml index f8e84c09e1..dbada3d4dd 100644 --- a/pom.xml +++ b/pom.xml @@ -672,7 +672,6 @@ spring-reactor spring-remoting - spring-rest-angular spring-rest-http-2 spring-rest-query-language spring-rest-shell @@ -1142,7 +1141,6 @@ spring-reactor spring-remoting - spring-rest-angular spring-rest-query-language spring-rest-shell spring-rest-simple diff --git a/spring-web-modules/pom.xml b/spring-web-modules/pom.xml index 3dea8fc36e..3fc89f7717 100644 --- a/spring-web-modules/pom.xml +++ b/spring-web-modules/pom.xml @@ -20,6 +20,7 @@ spring-mvc-basics-4 spring-mvc-crash spring-mvc-forms-jsp + spring-rest-angular spring-rest-http spring-thymeleaf spring-thymeleaf-2 diff --git a/spring-rest-angular/README.md b/spring-web-modules/spring-rest-angular/README.md similarity index 100% rename from spring-rest-angular/README.md rename to spring-web-modules/spring-rest-angular/README.md diff --git a/spring-rest-angular/pom.xml b/spring-web-modules/spring-rest-angular/pom.xml similarity index 97% rename from spring-rest-angular/pom.xml rename to spring-web-modules/spring-rest-angular/pom.xml index 1d50b4c76c..eb1ec8696c 100644 --- a/spring-rest-angular/pom.xml +++ b/spring-web-modules/spring-rest-angular/pom.xml @@ -11,7 +11,7 @@ com.baeldung parent-boot-2 0.0.1-SNAPSHOT - ../parent-boot-2 + ../../parent-boot-2 diff --git a/spring-rest-angular/src/main/java/com/baeldung/web/dao/StudentRepository.java b/spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/dao/StudentRepository.java similarity index 100% rename from spring-rest-angular/src/main/java/com/baeldung/web/dao/StudentRepository.java rename to spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/dao/StudentRepository.java diff --git a/spring-rest-angular/src/main/java/com/baeldung/web/entity/Student.java b/spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/entity/Student.java similarity index 100% rename from spring-rest-angular/src/main/java/com/baeldung/web/entity/Student.java rename to spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/entity/Student.java diff --git a/spring-rest-angular/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java b/spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java similarity index 100% rename from spring-rest-angular/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java rename to spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java diff --git a/spring-rest-angular/src/main/java/com/baeldung/web/main/Application.java b/spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/main/Application.java similarity index 100% rename from spring-rest-angular/src/main/java/com/baeldung/web/main/Application.java rename to spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/main/Application.java diff --git a/spring-rest-angular/src/main/java/com/baeldung/web/main/PersistenceConfig.java b/spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/main/PersistenceConfig.java similarity index 100% rename from spring-rest-angular/src/main/java/com/baeldung/web/main/PersistenceConfig.java rename to spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/main/PersistenceConfig.java diff --git a/spring-rest-angular/src/main/java/com/baeldung/web/rest/StudentDirectoryRestController.java b/spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/rest/StudentDirectoryRestController.java similarity index 100% rename from spring-rest-angular/src/main/java/com/baeldung/web/rest/StudentDirectoryRestController.java rename to spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/rest/StudentDirectoryRestController.java diff --git a/spring-rest-angular/src/main/java/com/baeldung/web/service/IOperations.java b/spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/service/IOperations.java similarity index 100% rename from spring-rest-angular/src/main/java/com/baeldung/web/service/IOperations.java rename to spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/service/IOperations.java diff --git a/spring-rest-angular/src/main/java/com/baeldung/web/service/StudentService.java b/spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/service/StudentService.java similarity index 100% rename from spring-rest-angular/src/main/java/com/baeldung/web/service/StudentService.java rename to spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/service/StudentService.java diff --git a/spring-rest-angular/src/main/java/com/baeldung/web/service/StudentServiceImpl.java b/spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/service/StudentServiceImpl.java similarity index 100% rename from spring-rest-angular/src/main/java/com/baeldung/web/service/StudentServiceImpl.java rename to spring-web-modules/spring-rest-angular/src/main/java/com/baeldung/web/service/StudentServiceImpl.java diff --git a/spring-rest-angular/src/main/resources/application.properties b/spring-web-modules/spring-rest-angular/src/main/resources/application.properties similarity index 100% rename from spring-rest-angular/src/main/resources/application.properties rename to spring-web-modules/spring-rest-angular/src/main/resources/application.properties diff --git a/spring-rest-angular/src/main/resources/data.sql b/spring-web-modules/spring-rest-angular/src/main/resources/data.sql similarity index 100% rename from spring-rest-angular/src/main/resources/data.sql rename to spring-web-modules/spring-rest-angular/src/main/resources/data.sql diff --git a/spring-rest-angular/src/main/resources/logback.xml b/spring-web-modules/spring-rest-angular/src/main/resources/logback.xml similarity index 100% rename from spring-rest-angular/src/main/resources/logback.xml rename to spring-web-modules/spring-rest-angular/src/main/resources/logback.xml diff --git a/spring-rest-angular/src/main/webapp/WEB-INF/web.xml b/spring-web-modules/spring-rest-angular/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-rest-angular/src/main/webapp/WEB-INF/web.xml rename to spring-web-modules/spring-rest-angular/src/main/webapp/WEB-INF/web.xml diff --git a/spring-rest-angular/src/main/webapp/index.html b/spring-web-modules/spring-rest-angular/src/main/webapp/index.html similarity index 100% rename from spring-rest-angular/src/main/webapp/index.html rename to spring-web-modules/spring-rest-angular/src/main/webapp/index.html diff --git a/spring-rest-angular/src/main/webapp/view/app.js b/spring-web-modules/spring-rest-angular/src/main/webapp/view/app.js similarity index 100% rename from spring-rest-angular/src/main/webapp/view/app.js rename to spring-web-modules/spring-rest-angular/src/main/webapp/view/app.js diff --git a/spring-rest-angular/src/test/java/com/baeldung/SpringContextTest.java b/spring-web-modules/spring-rest-angular/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-rest-angular/src/test/java/com/baeldung/SpringContextTest.java rename to spring-web-modules/spring-rest-angular/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-rest-angular/src/test/java/com/baeldung/web/service/StudentServiceIntegrationTest.java b/spring-web-modules/spring-rest-angular/src/test/java/com/baeldung/web/service/StudentServiceIntegrationTest.java similarity index 100% rename from spring-rest-angular/src/test/java/com/baeldung/web/service/StudentServiceIntegrationTest.java rename to spring-web-modules/spring-rest-angular/src/test/java/com/baeldung/web/service/StudentServiceIntegrationTest.java From 9b808b2fde14d6be5e7fd95254936ff09e824181 Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Wed, 30 Dec 2020 16:34:08 +0800 Subject: [PATCH 8/8] Update README.md --- spring-cloud/spring-cloud-eureka/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-cloud/spring-cloud-eureka/README.md b/spring-cloud/spring-cloud-eureka/README.md index badf4c8d50..5fc96256f4 100644 --- a/spring-cloud/spring-cloud-eureka/README.md +++ b/spring-cloud/spring-cloud-eureka/README.md @@ -1,2 +1,3 @@ ### Relevant Articles: - [Introduction to Spring Cloud Netflix – Eureka](http://www.baeldung.com/spring-cloud-netflix-eureka) +- [Integration Tests With Spring Cloud Netflix and Feign](https://www.baeldung.com/spring-cloud-feign-integration-tests)