From 94cc312bbf045f286102e7855216e1394bd973e5 Mon Sep 17 00:00:00 2001 From: timis1 <12120641+timis1@users.noreply.github.com> Date: Sat, 22 Jul 2023 21:05:37 +0300 Subject: [PATCH] JAVA-23235 Split or move spring-cloud-openfeign module (conti-4) (moved-8) (#14450) Co-authored-by: timis1 --- feign/README.md | 3 ++- .../spring-cloud-openfeign-2/README.md | 3 +++ .../cloud/openfeign/client/AlbumClient.java | 3 ++- .../client/JSONPlaceHolderClient.java | 9 ++++--- .../cloud/openfeign/client/PostClient.java | 3 ++- .../cloud/openfeign/client/TodoClient.java | 8 +++--- .../openfeign/config/ClientConfiguration.java | 0 .../openfeign/config/CustomErrorDecoder.java | 1 + .../config/DynamicUrlInterceptor.java | 4 +-- .../ConfigureFeignUrlController.java | 26 ++++++++++--------- .../exception/BadRequestException.java | 21 +++++++++++++++ .../exception/NotFoundException.java | 18 +++++++++++++ .../hystrix/JSONPlaceHolderFallback.java | 9 ++++--- .../baeldung/cloud/openfeign/model/Album.java | 0 .../baeldung/cloud/openfeign/model/Post.java | 0 .../baeldung/cloud/openfeign/model/Todo.java | 0 .../service/JSONPlaceHolderService.java | 4 +-- .../impl/JSONPlaceHolderServiceImpl.java | 9 ++++--- .../src/main/resources/application.properties | 9 ++++++- .../cloud/openfeign/OpenFeignManualTest.java | 13 +++++----- .../spring-cloud-openfeign/README.md | 7 +---- .../src/main/resources/application.properties | 4 +-- 22 files changed, 104 insertions(+), 50 deletions(-) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/client/AlbumClient.java (99%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/client/JSONPlaceHolderClient.java (99%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/client/PostClient.java (99%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/client/TodoClient.java (99%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/config/ClientConfiguration.java (100%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/config/CustomErrorDecoder.java (99%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/config/DynamicUrlInterceptor.java (100%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/controller/ConfigureFeignUrlController.java (99%) create mode 100644 spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/exception/BadRequestException.java create mode 100644 spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/exception/NotFoundException.java rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/hystrix/JSONPlaceHolderFallback.java (99%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/model/Album.java (100%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/model/Post.java (100%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/model/Todo.java (100%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/service/JSONPlaceHolderService.java (100%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/main/java/com/baeldung/cloud/openfeign/service/impl/JSONPlaceHolderServiceImpl.java (99%) rename spring-cloud-modules/{spring-cloud-openfeign => spring-cloud-openfeign-2}/src/test/java/com/baeldung/cloud/openfeign/OpenFeignManualTest.java (99%) diff --git a/feign/README.md b/feign/README.md index 074ce1cbd2..7c5e648bef 100644 --- a/feign/README.md +++ b/feign/README.md @@ -6,4 +6,5 @@ This module contains articles about Feign - [Intro to Feign](https://www.baeldung.com/intro-to-feign) - [Retrying Feign Calls](https://www.baeldung.com/feign-retry) -- [Setting Request Headers Using Feign](https://www.baeldung.com/java-feign-request-headers) \ No newline at end of file +- [Setting Request Headers Using Feign](https://www.baeldung.com/java-feign-request-headers) +- [RequestLine with Feign Client](https://www.baeldung.com/feign-requestline) \ No newline at end of file diff --git a/spring-cloud-modules/spring-cloud-openfeign-2/README.md b/spring-cloud-modules/spring-cloud-openfeign-2/README.md index d537907403..ead5dd75fd 100644 --- a/spring-cloud-modules/spring-cloud-openfeign-2/README.md +++ b/spring-cloud-modules/spring-cloud-openfeign-2/README.md @@ -1,2 +1,5 @@ ## Relevant Articles - [Setup Http Patch Request With OpenFeign](https://www.baeldung.com/openfeign-http-patch-request) +- [Introduction to Spring Cloud OpenFeign](https://www.baeldung.com/spring-cloud-openfeign) +- [Feign Logging Configuration](https://www.baeldung.com/java-feign-logging) +- [Configuring Spring Cloud FeignClient URL](https://www.baeldung.com/spring-cloud-feignclient-url) diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/AlbumClient.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/AlbumClient.java similarity index 99% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/AlbumClient.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/AlbumClient.java index b1db2dbcab..f7c74b0944 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/AlbumClient.java +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/AlbumClient.java @@ -1,10 +1,11 @@ package com.baeldung.cloud.openfeign.client; -import com.baeldung.cloud.openfeign.model.Album; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import com.baeldung.cloud.openfeign.model.Album; + @FeignClient(name = "albumClient", url = "https://jsonplaceholder.typicode.com/albums/") public interface AlbumClient { @GetMapping(value = "/{id}") diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/JSONPlaceHolderClient.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/JSONPlaceHolderClient.java similarity index 99% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/JSONPlaceHolderClient.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/JSONPlaceHolderClient.java index bdbe6efeeb..06ce26fc06 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/JSONPlaceHolderClient.java +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/JSONPlaceHolderClient.java @@ -1,14 +1,15 @@ package com.baeldung.cloud.openfeign.client; -import com.baeldung.cloud.openfeign.config.ClientConfiguration; -import com.baeldung.cloud.openfeign.hystrix.JSONPlaceHolderFallback; -import com.baeldung.cloud.openfeign.model.Post; +import java.util.List; + import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import java.util.List; +import com.baeldung.cloud.openfeign.config.ClientConfiguration; +import com.baeldung.cloud.openfeign.hystrix.JSONPlaceHolderFallback; +import com.baeldung.cloud.openfeign.model.Post; @FeignClient(value = "jplaceholder", url = "https://jsonplaceholder.typicode.com/", diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/PostClient.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/PostClient.java similarity index 99% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/PostClient.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/PostClient.java index e8e773b6a1..ba90830bb2 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/PostClient.java +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/PostClient.java @@ -1,10 +1,11 @@ package com.baeldung.cloud.openfeign.client; -import com.baeldung.cloud.openfeign.model.Post; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import com.baeldung.cloud.openfeign.model.Post; + @FeignClient(name = "postClient", url = "${spring.cloud.openfeign.client.config.postClient.url}") public interface PostClient { @GetMapping(value = "/{id}") diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/TodoClient.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/TodoClient.java similarity index 99% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/TodoClient.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/TodoClient.java index c768ef6b5f..a3be43de3e 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/TodoClient.java +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/client/TodoClient.java @@ -1,10 +1,12 @@ package com.baeldung.cloud.openfeign.client; -import com.baeldung.cloud.openfeign.model.Todo; -import feign.RequestLine; +import java.net.URI; + import org.springframework.cloud.openfeign.FeignClient; -import java.net.URI; +import com.baeldung.cloud.openfeign.model.Todo; + +import feign.RequestLine; @FeignClient(name = "todoClient") public interface TodoClient { diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/config/ClientConfiguration.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/config/ClientConfiguration.java similarity index 100% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/config/ClientConfiguration.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/config/ClientConfiguration.java diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/config/CustomErrorDecoder.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/config/CustomErrorDecoder.java similarity index 99% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/config/CustomErrorDecoder.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/config/CustomErrorDecoder.java index 303a5db526..4b264e0eda 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/config/CustomErrorDecoder.java +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/config/CustomErrorDecoder.java @@ -2,6 +2,7 @@ package com.baeldung.cloud.openfeign.config; import com.baeldung.cloud.openfeign.exception.BadRequestException; import com.baeldung.cloud.openfeign.exception.NotFoundException; + import feign.Response; import feign.codec.ErrorDecoder; diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/config/DynamicUrlInterceptor.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/config/DynamicUrlInterceptor.java similarity index 100% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/config/DynamicUrlInterceptor.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/config/DynamicUrlInterceptor.java index 286426edb3..0fb12855b2 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/config/DynamicUrlInterceptor.java +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/config/DynamicUrlInterceptor.java @@ -1,10 +1,10 @@ package com.baeldung.cloud.openfeign.config; +import java.util.function.Supplier; + import feign.RequestInterceptor; import feign.RequestTemplate; -import java.util.function.Supplier; - public class DynamicUrlInterceptor implements RequestInterceptor { private final Supplier urlSupplier; diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/controller/ConfigureFeignUrlController.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/controller/ConfigureFeignUrlController.java similarity index 99% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/controller/ConfigureFeignUrlController.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/controller/ConfigureFeignUrlController.java index ca49bca605..5358ec1a60 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/controller/ConfigureFeignUrlController.java +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/controller/ConfigureFeignUrlController.java @@ -1,16 +1,7 @@ package com.baeldung.cloud.openfeign.controller; -import com.baeldung.cloud.openfeign.config.DynamicUrlInterceptor; -import com.baeldung.cloud.openfeign.client.AlbumClient; -import com.baeldung.cloud.openfeign.client.PostClient; -import com.baeldung.cloud.openfeign.client.TodoClient; -import com.baeldung.cloud.openfeign.model.Album; -import com.baeldung.cloud.openfeign.model.Post; -import com.baeldung.cloud.openfeign.model.Todo; -import feign.Feign; -import feign.Target; -import feign.codec.Decoder; -import feign.codec.Encoder; +import java.net.URI; + import org.springframework.beans.factory.ObjectFactory; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.http.HttpMessageConverters; @@ -24,7 +15,18 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; -import java.net.URI; +import com.baeldung.cloud.openfeign.client.AlbumClient; +import com.baeldung.cloud.openfeign.client.PostClient; +import com.baeldung.cloud.openfeign.client.TodoClient; +import com.baeldung.cloud.openfeign.config.DynamicUrlInterceptor; +import com.baeldung.cloud.openfeign.model.Album; +import com.baeldung.cloud.openfeign.model.Post; +import com.baeldung.cloud.openfeign.model.Todo; + +import feign.Feign; +import feign.Target; +import feign.codec.Decoder; +import feign.codec.Encoder; @RestController @Import(FeignClientsConfiguration.class) diff --git a/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/exception/BadRequestException.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/exception/BadRequestException.java new file mode 100644 index 0000000000..50200957ad --- /dev/null +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/exception/BadRequestException.java @@ -0,0 +1,21 @@ +package com.baeldung.cloud.openfeign.exception; + +public class BadRequestException extends Exception { + + public BadRequestException() { + } + + public BadRequestException(String message) { + super(message); + } + + public BadRequestException(Throwable cause) { + super(cause); + } + + @Override + public String toString() { + return "BadRequestException: "+getMessage(); + } + +} diff --git a/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/exception/NotFoundException.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/exception/NotFoundException.java new file mode 100644 index 0000000000..19f6204b86 --- /dev/null +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/exception/NotFoundException.java @@ -0,0 +1,18 @@ +package com.baeldung.cloud.openfeign.exception; + +public class NotFoundException extends Exception { + + public NotFoundException(String message) { + super(message); + } + + public NotFoundException(Throwable cause) { + super(cause); + } + + @Override + public String toString() { + return "NotFoundException: " + getMessage(); + } + +} diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/hystrix/JSONPlaceHolderFallback.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/hystrix/JSONPlaceHolderFallback.java similarity index 99% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/hystrix/JSONPlaceHolderFallback.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/hystrix/JSONPlaceHolderFallback.java index 1aa3112320..dc23844a00 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/hystrix/JSONPlaceHolderFallback.java +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/hystrix/JSONPlaceHolderFallback.java @@ -1,12 +1,13 @@ package com.baeldung.cloud.openfeign.hystrix; -import com.baeldung.cloud.openfeign.client.JSONPlaceHolderClient; -import com.baeldung.cloud.openfeign.model.Post; -import org.springframework.stereotype.Component; - import java.util.Collections; import java.util.List; +import org.springframework.stereotype.Component; + +import com.baeldung.cloud.openfeign.client.JSONPlaceHolderClient; +import com.baeldung.cloud.openfeign.model.Post; + @Component public class JSONPlaceHolderFallback implements JSONPlaceHolderClient { diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/model/Album.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/model/Album.java similarity index 100% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/model/Album.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/model/Album.java diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/model/Post.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/model/Post.java similarity index 100% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/model/Post.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/model/Post.java diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/model/Todo.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/model/Todo.java similarity index 100% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/model/Todo.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/model/Todo.java diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/service/JSONPlaceHolderService.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/service/JSONPlaceHolderService.java similarity index 100% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/service/JSONPlaceHolderService.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/service/JSONPlaceHolderService.java index 16e9b1dbde..9a3602df5b 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/service/JSONPlaceHolderService.java +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/service/JSONPlaceHolderService.java @@ -1,9 +1,9 @@ package com.baeldung.cloud.openfeign.service; -import com.baeldung.cloud.openfeign.model.Post; - import java.util.List; +import com.baeldung.cloud.openfeign.model.Post; + public interface JSONPlaceHolderService { List getPosts(); diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/service/impl/JSONPlaceHolderServiceImpl.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/service/impl/JSONPlaceHolderServiceImpl.java similarity index 99% rename from spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/service/impl/JSONPlaceHolderServiceImpl.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/service/impl/JSONPlaceHolderServiceImpl.java index 30348db3c2..4070396991 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/service/impl/JSONPlaceHolderServiceImpl.java +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/java/com/baeldung/cloud/openfeign/service/impl/JSONPlaceHolderServiceImpl.java @@ -1,12 +1,13 @@ package com.baeldung.cloud.openfeign.service.impl; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import com.baeldung.cloud.openfeign.client.JSONPlaceHolderClient; import com.baeldung.cloud.openfeign.model.Post; import com.baeldung.cloud.openfeign.service.JSONPlaceHolderService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; @Service public class JSONPlaceHolderServiceImpl implements JSONPlaceHolderService { diff --git a/spring-cloud-modules/spring-cloud-openfeign-2/src/main/resources/application.properties b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/resources/application.properties index 50d9740975..aa0dc6a382 100644 --- a/spring-cloud-modules/spring-cloud-openfeign-2/src/main/resources/application.properties +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/main/resources/application.properties @@ -1,3 +1,10 @@ spring.application.name=openfeign user.api.url=http://localhost:8082/api/user -feign.okhttp.enabled=true \ No newline at end of file +feign.okhttp.enabled=true + +server.port=8085 +spring.main.allow-bean-definition-overriding=true +logging.level.com.baeldung.cloud.openfeign.client=DEBUG +feign.hystrix.enabled=true + +spring.cloud.openfeign.client.config.postClient.url=https://jsonplaceholder.typicode.com/posts/ \ No newline at end of file diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/OpenFeignManualTest.java b/spring-cloud-modules/spring-cloud-openfeign-2/src/test/java/com/baeldung/cloud/openfeign/OpenFeignManualTest.java similarity index 99% rename from spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/OpenFeignManualTest.java rename to spring-cloud-modules/spring-cloud-openfeign-2/src/test/java/com/baeldung/cloud/openfeign/OpenFeignManualTest.java index 4eb014de96..b491d621ee 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/OpenFeignManualTest.java +++ b/spring-cloud-modules/spring-cloud-openfeign-2/src/test/java/com/baeldung/cloud/openfeign/OpenFeignManualTest.java @@ -1,17 +1,18 @@ package com.baeldung.cloud.openfeign; -import com.baeldung.cloud.openfeign.model.Post; -import com.baeldung.cloud.openfeign.service.JSONPlaceHolderService; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; + +import java.util.List; + import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -import java.util.List; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; +import com.baeldung.cloud.openfeign.model.Post; +import com.baeldung.cloud.openfeign.service.JSONPlaceHolderService; @RunWith(SpringRunner.class) @SpringBootTest diff --git a/spring-cloud-modules/spring-cloud-openfeign/README.md b/spring-cloud-modules/spring-cloud-openfeign/README.md index edda9a8f80..3e055f2ec5 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/README.md +++ b/spring-cloud-modules/spring-cloud-openfeign/README.md @@ -1,14 +1,9 @@ ### Relevant Articles: -- [Introduction to Spring Cloud OpenFeign](https://www.baeldung.com/spring-cloud-openfeign) -- [Differences Between Netflix Feign and OpenFeign](https://www.baeldung.com/netflix-feign-vs-openfeign) +- [Differences Between Netflix Feign and Open.Feign](https://www.baeldung.com/netflix-feign-vs-openfeign) - [Provide an OAuth2 Token to a Feign Client](https://www.baeldung.com/spring-cloud-feign-oauth-token) -- [Propagating Exceptions With OpenFeign and Spring](https://www.baeldung.com/spring-openfeign-propagate-exception) - [Feign Client Exception Handling](https://www.baeldung.com/java-feign-client-exception-handling) - [File Upload With Open Feign](https://www.baeldung.com/java-feign-file-upload) -- [Feign Logging Configuration](https://www.baeldung.com/java-feign-logging) - [Retrieve Original Message From Feign ErrorDecoder](https://www.baeldung.com/feign-retrieve-original-message) -- [RequestLine with Feign Client](https://www.baeldung.com/feign-requestline) - [Propagating Exceptions With OpenFeign and Spring](https://www.baeldung.com/spring-openfeign-propagate-exception) - [Post form-url-encoded Data with Spring Cloud Feign](https://www.baeldung.com/spring-cloud-post-form-url-encoded-data) -- [Configuring Spring Cloud FeignClient URL](https://www.baeldung.com/spring-cloud-feignclient-url) diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/resources/application.properties b/spring-cloud-modules/spring-cloud-openfeign/src/main/resources/application.properties index f4ea32483d..f370752438 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/resources/application.properties +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/resources/application.properties @@ -7,6 +7,4 @@ feign.hystrix.enabled=true spring.security.oauth2.client.registration.keycloak.authorization-grant-type=client_credentials spring.security.oauth2.client.registration.keycloak.client-id=payment-app spring.security.oauth2.client.registration.keycloak.client-secret=863e9de4-33d4-4471-b35e-f8d2434385bb -spring.security.oauth2.client.provider.keycloak.token-uri=http://localhost:8083/auth/realms/master/protocol/openid-connect/token - -spring.cloud.openfeign.client.config.postClient.url=https://jsonplaceholder.typicode.com/posts/ \ No newline at end of file +spring.security.oauth2.client.provider.keycloak.token-uri=http://localhost:8083/auth/realms/master/protocol/openid-connect/token \ No newline at end of file