diff --git a/feign/README.md b/feign/README.md index 3e733448fb..074ce1cbd2 100644 --- a/feign/README.md +++ b/feign/README.md @@ -6,10 +6,4 @@ 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) -- [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) +- [Setting Request Headers Using Feign](https://www.baeldung.com/java-feign-request-headers) \ No newline at end of file diff --git a/feign/pom.xml b/feign/pom.xml index f39adec607..7f71794e29 100644 --- a/feign/pom.xml +++ b/feign/pom.xml @@ -69,11 +69,6 @@ feign-form-spring ${feign.form.spring.version} - - org.springframework.cloud - spring-cloud-starter-openfeign - ${spring.cloud.openfeign.version} - com.github.tomakehurst wiremock-jre8 diff --git a/feign/src/main/java/com/baeldung/core/ExampleApplication.java b/feign/src/main/java/com/baeldung/core/ExampleApplication.java index 391e808ede..881265d5ba 100644 --- a/feign/src/main/java/com/baeldung/core/ExampleApplication.java +++ b/feign/src/main/java/com/baeldung/core/ExampleApplication.java @@ -2,10 +2,8 @@ package com.baeldung.core; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication -@EnableFeignClients public class ExampleApplication { public static void main(String[] args) { diff --git a/feign/src/main/java/com/baeldung/core/fileupload/config/ExceptionMessage.java b/feign/src/main/java/com/baeldung/core/fileupload/config/ExceptionMessage.java deleted file mode 100644 index 8301705ca6..0000000000 --- a/feign/src/main/java/com/baeldung/core/fileupload/config/ExceptionMessage.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.baeldung.core.fileupload.config; - -public class ExceptionMessage { - private String timestamp; - private int status; - private String error; - private String message; - private String path; - - public String getTimestamp() { - return timestamp; - } - - public void setTimestamp(String timestamp) { - this.timestamp = timestamp; - } - - public int getStatus() { - return status; - } - - public void setStatus(int status) { - this.status = status; - } - - public String getError() { - return error; - } - - public void setError(String error) { - this.error = error; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public String getPath() { - return path; - } - - public void setPath(String path) { - this.path = path; - } - - @Override - public String toString() { - return "ExceptionMessage [timestamp=" + timestamp + ", status=" + status + ", error=" + error + ", message=" + message + ", path=" + path + "]"; - } - -} diff --git a/feign/src/main/java/com/baeldung/core/fileupload/config/FeignSupportConfig.java b/feign/src/main/java/com/baeldung/core/fileupload/config/FeignSupportConfig.java deleted file mode 100644 index c8c9eb1acc..0000000000 --- a/feign/src/main/java/com/baeldung/core/fileupload/config/FeignSupportConfig.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.baeldung.core.fileupload.config; - -import org.springframework.boot.autoconfigure.http.HttpMessageConverters; -import org.springframework.cloud.openfeign.support.SpringEncoder; -import org.springframework.context.annotation.Bean; -import org.springframework.web.client.RestTemplate; - -import feign.codec.Encoder; -import feign.codec.ErrorDecoder; -import feign.form.spring.SpringFormEncoder; - -public class FeignSupportConfig { - @Bean - public Encoder multipartFormEncoder() { - return new SpringFormEncoder(new SpringEncoder(() -> new HttpMessageConverters(new RestTemplate().getMessageConverters()))); - } - - @Bean - public ErrorDecoder errorDecoder() { - return new RetreiveMessageErrorDecoder(); - } -} diff --git a/feign/src/main/java/com/baeldung/core/fileupload/config/RetreiveMessageErrorDecoder.java b/feign/src/main/java/com/baeldung/core/fileupload/config/RetreiveMessageErrorDecoder.java deleted file mode 100644 index fc2c8da0ed..0000000000 --- a/feign/src/main/java/com/baeldung/core/fileupload/config/RetreiveMessageErrorDecoder.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.baeldung.core.fileupload.config; - -import java.io.IOException; -import java.io.InputStream; - -import com.baeldung.core.exception.BadRequestException; -import com.baeldung.core.exception.NotFoundException; -import com.fasterxml.jackson.databind.ObjectMapper; - -import feign.Response; -import feign.codec.ErrorDecoder; - -public class RetreiveMessageErrorDecoder implements ErrorDecoder { - private final ErrorDecoder errorDecoder = new Default(); - - @Override - public Exception decode(String methodKey, Response response) { - ExceptionMessage message; - try (InputStream bodyIs = response.body() - .asInputStream()) { - ObjectMapper mapper = new ObjectMapper(); - message = mapper.readValue(bodyIs, ExceptionMessage.class); - } catch (IOException e) { - return new Exception(e.getMessage()); - } - switch (response.status()) { - case 400: - return new BadRequestException(message.getMessage() != null ? message.getMessage() : "Bad Request"); - case 404: - return new NotFoundException(message.getMessage() != null ? message.getMessage() : "Not found"); - default: - return errorDecoder.decode(methodKey, response); - } - } -} diff --git a/feign/src/main/java/com/baeldung/core/fileupload/service/UploadResource.java b/feign/src/main/java/com/baeldung/core/fileupload/service/UploadResource.java deleted file mode 100644 index 9d3d173cd4..0000000000 --- a/feign/src/main/java/com/baeldung/core/fileupload/service/UploadResource.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.baeldung.core.fileupload.service; - -import org.springframework.web.multipart.MultipartFile; - -import feign.Headers; -import feign.Param; -import feign.RequestLine; -import feign.Response; - -public interface UploadResource { - - @RequestLine("POST /upload-file") - @Headers("Content-Type: multipart/form-data") - Response uploadFile(@Param("file") MultipartFile file); - -} \ No newline at end of file diff --git a/feign/src/main/java/com/baeldung/core/fileupload/service/UploadService.java b/feign/src/main/java/com/baeldung/core/fileupload/service/UploadService.java deleted file mode 100644 index 5176ddf0fa..0000000000 --- a/feign/src/main/java/com/baeldung/core/fileupload/service/UploadService.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.baeldung.core.fileupload.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; - -import feign.Feign; -import feign.Response; -import feign.form.spring.SpringFormEncoder; - -@Service -public class UploadService { - private static final String HTTP_FILE_UPLOAD_URL = "http://localhost:8081"; - - @Autowired - private UploadClient client; - - public boolean uploadFileWithManualClient(MultipartFile file) { - UploadResource fileUploadResource = Feign.builder().encoder(new SpringFormEncoder()) - .target(UploadResource.class, HTTP_FILE_UPLOAD_URL); - Response response = fileUploadResource.uploadFile(file); - return response.status() == 200; - } - - public String uploadFile(MultipartFile file) { - return client.fileUpload(file); - } - - public String uploadFileError(MultipartFile file) { - return client.fileUpload(file); - } -} \ No newline at end of file diff --git a/feign/src/test/java/com/baeldung/core/OpenFeignFileUploadLiveTest.java b/feign/src/test/java/com/baeldung/core/OpenFeignFileUploadLiveTest.java deleted file mode 100644 index f9dc8b13ed..0000000000 --- a/feign/src/test/java/com/baeldung/core/OpenFeignFileUploadLiveTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.baeldung.core; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; - -import org.apache.commons.io.IOUtils; -import org.junit.Assert; -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.mock.web.MockMultipartFile; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.web.multipart.MultipartFile; - -import com.baeldung.core.fileupload.service.UploadService; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = ExampleApplication.class) -public class OpenFeignFileUploadLiveTest { - - @Autowired - private UploadService uploadService; - - private static String FILE_NAME = "fileupload.txt"; - - @Test - public void whenFeignBuilder_thenFileUploadSuccess() throws IOException { - ClassLoader classloader = Thread.currentThread().getContextClassLoader(); - File file = new File(classloader.getResource(FILE_NAME).getFile()); - Assert.assertTrue(file.exists()); - FileInputStream input = new FileInputStream(file); - MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "text/plain", - IOUtils.toByteArray(input)); - Assert.assertTrue(uploadService.uploadFileWithManualClient(multipartFile)); - } - - @Test - public void whenAnnotatedFeignClient_thenFileUploadSuccess() throws IOException { - ClassLoader classloader = Thread.currentThread().getContextClassLoader(); - File file = new File(classloader.getResource(FILE_NAME).getFile()); - Assert.assertTrue(file.exists()); - FileInputStream input = new FileInputStream(file); - MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "text/plain", - IOUtils.toByteArray(input)); - String uploadFile = uploadService.uploadFile(multipartFile); - Assert.assertNotNull(uploadFile); - } -} diff --git a/spring-cloud-modules/spring-cloud-openfeign/README.md b/spring-cloud-modules/spring-cloud-openfeign/README.md index d1e52eb415..edda9a8f80 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/README.md +++ b/spring-cloud-modules/spring-cloud-openfeign/README.md @@ -5,4 +5,10 @@ - [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/pom.xml b/spring-cloud-modules/spring-cloud-openfeign/pom.xml index 88ad38517b..465be6b74f 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/pom.xml +++ b/spring-cloud-modules/spring-cloud-openfeign/pom.xml @@ -61,10 +61,23 @@ spring-boot-starter-test test + + com.github.tomakehurst + wiremock-jre8 + ${wire.mock.version} + test + + + org.projectlombok + lombok + ${lombok.version} + provided + 2021.0.3 + 2.33.2 \ No newline at end of file diff --git a/feign/src/main/java/com/baeldung/core/client/FormClient.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/FormClient.java similarity index 91% rename from feign/src/main/java/com/baeldung/core/client/FormClient.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/FormClient.java index 074402aef3..f127ec3b8b 100644 --- a/feign/src/main/java/com/baeldung/core/client/FormClient.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/FormClient.java @@ -1,4 +1,4 @@ -package com.baeldung.core.client; +package com.baeldung.cloud.openfeign.client; import java.util.Map; @@ -11,7 +11,7 @@ import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import com.baeldung.core.defaulterrorhandling.model.FormData; +import com.baeldung.cloud.openfeign.defaulterrorhandling.model.FormData; import feign.codec.Encoder; import feign.form.spring.SpringFormEncoder; diff --git a/feign/src/main/java/com/baeldung/core/client/UserClient.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/UserClient.java similarity index 75% rename from feign/src/main/java/com/baeldung/core/client/UserClient.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/UserClient.java index a16f924ad5..a9b78e5db8 100644 --- a/feign/src/main/java/com/baeldung/core/client/UserClient.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/client/UserClient.java @@ -1,9 +1,9 @@ -package com.baeldung.core.client; +package com.baeldung.cloud.openfeign.client; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; -import com.baeldung.core.config.FeignConfig; +import com.baeldung.cloud.openfeign.config.FeignConfig; @FeignClient(name = "user-client", url="https://jsonplaceholder.typicode.com", configuration = FeignConfig.class) public interface UserClient { diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/config/FeignConfig.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/config/FeignConfig.java new file mode 100644 index 0000000000..005084899b --- /dev/null +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/config/FeignConfig.java @@ -0,0 +1,13 @@ +package com.baeldung.cloud.openfeign.config; + +import org.springframework.context.annotation.Bean; + +import feign.Logger; + +public class FeignConfig { + + @Bean + Logger.Level feignLoggerLevel() { + return Logger.Level.FULL; + } +} \ No newline at end of file diff --git a/feign/src/main/java/com/baeldung/core/customizederrorhandling/client/ProductClient.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/client/ProductClient.java similarity index 70% rename from feign/src/main/java/com/baeldung/core/customizederrorhandling/client/ProductClient.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/client/ProductClient.java index 113051722b..f668e8f2c8 100644 --- a/feign/src/main/java/com/baeldung/core/customizederrorhandling/client/ProductClient.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/client/ProductClient.java @@ -1,12 +1,12 @@ -package com.baeldung.core.customizederrorhandling.client; +package com.baeldung.cloud.openfeign.customizederrorhandling.client; 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 com.baeldung.core.customizederrorhandling.config.FeignConfig; -import com.baeldung.core.defaulterrorhandling.model.Product; +import com.baeldung.cloud.openfeign.customizederrorhandling.config.FeignConfig; +import com.baeldung.cloud.openfeign.defaulterrorhandling.model.Product; @FeignClient(name = "product-client-2", url = "http://localhost:8081/product/", configuration = FeignConfig.class) public interface ProductClient { diff --git a/feign/src/main/java/com/baeldung/core/customizederrorhandling/config/CustomErrorDecoder.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/config/CustomErrorDecoder.java similarity index 65% rename from feign/src/main/java/com/baeldung/core/customizederrorhandling/config/CustomErrorDecoder.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/config/CustomErrorDecoder.java index 5466b61b3a..13e3a55dd7 100644 --- a/feign/src/main/java/com/baeldung/core/customizederrorhandling/config/CustomErrorDecoder.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/config/CustomErrorDecoder.java @@ -1,8 +1,9 @@ -package com.baeldung.core.customizederrorhandling.config; +package com.baeldung.cloud.openfeign.customizederrorhandling.config; -import com.baeldung.core.customizederrorhandling.exception.ProductNotFoundException; -import com.baeldung.core.customizederrorhandling.exception.ProductServiceNotAvailableException; -import com.baeldung.core.exception.BadRequestException; + +import com.baeldung.cloud.openfeign.customizederrorhandling.exception.ProductNotFoundException; +import com.baeldung.cloud.openfeign.customizederrorhandling.exception.ProductServiceNotAvailableException; +import com.baeldung.cloud.openfeign.exception.BadRequestException; import feign.Response; import feign.codec.ErrorDecoder; diff --git a/feign/src/main/java/com/baeldung/core/customizederrorhandling/config/FeignConfig.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/config/FeignConfig.java similarity index 82% rename from feign/src/main/java/com/baeldung/core/customizederrorhandling/config/FeignConfig.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/config/FeignConfig.java index 980b8b5b38..f013f48b64 100644 --- a/feign/src/main/java/com/baeldung/core/customizederrorhandling/config/FeignConfig.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/config/FeignConfig.java @@ -1,4 +1,4 @@ -package com.baeldung.core.customizederrorhandling.config; +package com.baeldung.cloud.openfeign.customizederrorhandling.config; import org.springframework.context.annotation.Bean; diff --git a/feign/src/main/java/com/baeldung/core/customizederrorhandling/controller/ProductController.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/controller/ProductController.java similarity index 76% rename from feign/src/main/java/com/baeldung/core/customizederrorhandling/controller/ProductController.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/controller/ProductController.java index 6d6f784e66..53458151f8 100644 --- a/feign/src/main/java/com/baeldung/core/customizederrorhandling/controller/ProductController.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/controller/ProductController.java @@ -1,4 +1,4 @@ -package com.baeldung.core.customizederrorhandling.controller; +package com.baeldung.cloud.openfeign.customizederrorhandling.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -6,8 +6,8 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.baeldung.core.customizederrorhandling.client.ProductClient; -import com.baeldung.core.defaulterrorhandling.model.Product; +import com.baeldung.cloud.openfeign.customizederrorhandling.client.ProductClient; +import com.baeldung.cloud.openfeign.defaulterrorhandling.model.Product; @RestController("product_controller2") @RequestMapping(value = "myapp2") diff --git a/feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ErrorResponse.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ErrorResponse.java similarity index 94% rename from feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ErrorResponse.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ErrorResponse.java index 6e739e5e40..d7ec783a8b 100644 --- a/feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ErrorResponse.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ErrorResponse.java @@ -1,4 +1,4 @@ -package com.baeldung.core.customizederrorhandling.exception; +package com.baeldung.cloud.openfeign.customizederrorhandling.exception; import java.util.Date; diff --git a/feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ProductExceptionHandler.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ProductExceptionHandler.java similarity index 95% rename from feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ProductExceptionHandler.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ProductExceptionHandler.java index c83d917570..80191ce427 100644 --- a/feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ProductExceptionHandler.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ProductExceptionHandler.java @@ -1,4 +1,4 @@ -package com.baeldung.core.customizederrorhandling.exception; +package com.baeldung.cloud.openfeign.customizederrorhandling.exception; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ProductNotFoundException.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ProductNotFoundException.java similarity index 68% rename from feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ProductNotFoundException.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ProductNotFoundException.java index fa993ce700..337cb89f7b 100644 --- a/feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ProductNotFoundException.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ProductNotFoundException.java @@ -1,4 +1,4 @@ -package com.baeldung.core.customizederrorhandling.exception; +package com.baeldung.cloud.openfeign.customizederrorhandling.exception; public class ProductNotFoundException extends RuntimeException { diff --git a/feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ProductServiceNotAvailableException.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ProductServiceNotAvailableException.java similarity index 70% rename from feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ProductServiceNotAvailableException.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ProductServiceNotAvailableException.java index 887d2cd91d..ce30f8c310 100644 --- a/feign/src/main/java/com/baeldung/core/customizederrorhandling/exception/ProductServiceNotAvailableException.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/customizederrorhandling/exception/ProductServiceNotAvailableException.java @@ -1,4 +1,4 @@ -package com.baeldung.core.customizederrorhandling.exception; +package com.baeldung.cloud.openfeign.customizederrorhandling.exception; public class ProductServiceNotAvailableException extends RuntimeException { diff --git a/feign/src/main/java/com/baeldung/core/defaulterrorhandling/client/ProductClient.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClient.java similarity index 71% rename from feign/src/main/java/com/baeldung/core/defaulterrorhandling/client/ProductClient.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClient.java index 4eb435331d..2927024668 100644 --- a/feign/src/main/java/com/baeldung/core/defaulterrorhandling/client/ProductClient.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClient.java @@ -1,12 +1,12 @@ -package com.baeldung.core.defaulterrorhandling.client; +package com.baeldung.cloud.openfeign.defaulterrorhandling.client; 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 com.baeldung.core.defaulterrorhandling.config.FeignConfig; -import com.baeldung.core.defaulterrorhandling.model.Product; +import com.baeldung.cloud.openfeign.defaulterrorhandling.config.FeignConfig; +import com.baeldung.cloud.openfeign.defaulterrorhandling.model.Product; @FeignClient(name = "product-client", url = "http://localhost:8084/product/", configuration = FeignConfig.class) public interface ProductClient { diff --git a/feign/src/main/java/com/baeldung/core/defaulterrorhandling/config/FeignConfig.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/config/FeignConfig.java similarity index 74% rename from feign/src/main/java/com/baeldung/core/defaulterrorhandling/config/FeignConfig.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/config/FeignConfig.java index cef8cbb6d9..e10c33e311 100644 --- a/feign/src/main/java/com/baeldung/core/defaulterrorhandling/config/FeignConfig.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/config/FeignConfig.java @@ -1,4 +1,4 @@ -package com.baeldung.core.defaulterrorhandling.config; +package com.baeldung.cloud.openfeign.defaulterrorhandling.config; import org.springframework.context.annotation.Bean; diff --git a/feign/src/main/java/com/baeldung/core/defaulterrorhandling/controller/ProductController.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/controller/ProductController.java similarity index 76% rename from feign/src/main/java/com/baeldung/core/defaulterrorhandling/controller/ProductController.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/controller/ProductController.java index 80f571f29a..b9fe879fbd 100644 --- a/feign/src/main/java/com/baeldung/core/defaulterrorhandling/controller/ProductController.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/controller/ProductController.java @@ -1,4 +1,4 @@ -package com.baeldung.core.defaulterrorhandling.controller; +package com.baeldung.cloud.openfeign.defaulterrorhandling.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -6,8 +6,8 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.baeldung.core.defaulterrorhandling.client.ProductClient; -import com.baeldung.core.defaulterrorhandling.model.Product; +import com.baeldung.cloud.openfeign.defaulterrorhandling.client.ProductClient; +import com.baeldung.cloud.openfeign.defaulterrorhandling.model.Product; @RestController("product_controller1") @RequestMapping(value ="myapp1") diff --git a/feign/src/main/java/com/baeldung/core/defaulterrorhandling/model/FormData.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/model/FormData.java similarity index 67% rename from feign/src/main/java/com/baeldung/core/defaulterrorhandling/model/FormData.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/model/FormData.java index 6210451f2d..4b03a3e410 100644 --- a/feign/src/main/java/com/baeldung/core/defaulterrorhandling/model/FormData.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/model/FormData.java @@ -1,4 +1,4 @@ -package com.baeldung.core.defaulterrorhandling.model; +package com.baeldung.cloud.openfeign.defaulterrorhandling.model; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/feign/src/main/java/com/baeldung/core/defaulterrorhandling/model/Product.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/model/Product.java similarity index 82% rename from feign/src/main/java/com/baeldung/core/defaulterrorhandling/model/Product.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/model/Product.java index 35d860332e..25a1662c99 100644 --- a/feign/src/main/java/com/baeldung/core/defaulterrorhandling/model/Product.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/model/Product.java @@ -1,4 +1,4 @@ -package com.baeldung.core.defaulterrorhandling.model; +package com.baeldung.cloud.openfeign.defaulterrorhandling.model; public class Product { diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/config/FeignSupportConfig.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/config/FeignSupportConfig.java index 802077a3d7..bedcd32569 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/config/FeignSupportConfig.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/config/FeignSupportConfig.java @@ -1,6 +1,5 @@ package com.baeldung.cloud.openfeign.fileupload.config; -import org.springframework.beans.factory.ObjectFactory; import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import org.springframework.cloud.openfeign.support.SpringEncoder; import org.springframework.context.annotation.Bean; @@ -13,12 +12,7 @@ import feign.form.spring.SpringFormEncoder; public class FeignSupportConfig { @Bean public Encoder multipartFormEncoder() { - return new SpringFormEncoder(new SpringEncoder(new ObjectFactory() { - @Override - public HttpMessageConverters getObject() { - return new HttpMessageConverters(new RestTemplate().getMessageConverters()); - } - })); + return new SpringFormEncoder(new SpringEncoder(() -> new HttpMessageConverters(new RestTemplate().getMessageConverters()))); } @Bean diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/config/RetreiveMessageErrorDecoder.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/config/RetreiveMessageErrorDecoder.java index 5ebd7b6887..4324467712 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/config/RetreiveMessageErrorDecoder.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/config/RetreiveMessageErrorDecoder.java @@ -12,9 +12,10 @@ import feign.codec.ErrorDecoder; public class RetreiveMessageErrorDecoder implements ErrorDecoder { private final ErrorDecoder errorDecoder = new Default(); + @Override public Exception decode(String methodKey, Response response) { - ExceptionMessage message = null; + ExceptionMessage message; try (InputStream bodyIs = response.body() .asInputStream()) { ObjectMapper mapper = new ObjectMapper(); diff --git a/feign/src/main/java/com/baeldung/core/fileupload/controller/FileController.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/controller/FileController.java similarity index 78% rename from feign/src/main/java/com/baeldung/core/fileupload/controller/FileController.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/controller/FileController.java index 7ba4746979..5c6d6076b8 100644 --- a/feign/src/main/java/com/baeldung/core/fileupload/controller/FileController.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/controller/FileController.java @@ -1,4 +1,4 @@ -package com.baeldung.core.fileupload.controller; +package com.baeldung.cloud.openfeign.fileupload.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.baeldung.core.fileupload.service.UploadService; +import com.baeldung.cloud.openfeign.fileupload.service.UploadService; @RestController public class FileController { @@ -16,7 +16,7 @@ public class FileController { @PostMapping(value = "/upload") public String handleFileUpload(@RequestPart(value = "file") MultipartFile file) { - return service.uploadFile(file); + return service.uploadFileWithFallbackFactory(file); } @PostMapping(value = "/upload-mannual-client") @@ -27,7 +27,7 @@ public class FileController { @PostMapping(value = "/upload-error") public String handleFileUploadError(@RequestPart(value = "file") MultipartFile file) { - return service.uploadFile(file); + return service.uploadFileWithFallbackFactory(file); } } \ No newline at end of file diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/service/FileUploadClientFallbackFactory.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/service/FileUploadClientFallbackFactory.java index 105be15192..9b717d17f1 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/service/FileUploadClientFallbackFactory.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/service/FileUploadClientFallbackFactory.java @@ -11,20 +11,17 @@ import com.baeldung.cloud.openfeign.exception.NotFoundException; public class FileUploadClientFallbackFactory implements FallbackFactory { @Override public FileUploadClientWithFallbackFactory create(Throwable cause) { - return new FileUploadClientWithFallbackFactory() { - @Override - public String fileUpload(MultipartFile file) { - if (cause instanceof BadRequestException) { - return "Bad Request!!!"; - } - if (cause instanceof NotFoundException) { - return "Not Found!!!"; - } - if (cause instanceof Exception) { - return "Exception!!!"; - } - return "Successfully Uploaded file!!!"; + return file -> { + if (cause instanceof BadRequestException) { + return "Bad Request!!!"; } + if (cause instanceof NotFoundException) { + return "Not Found!!!"; + } + if (cause instanceof Exception) { + return "Exception!!!"; + } + return "Successfully Uploaded file!!!"; }; } } \ No newline at end of file diff --git a/feign/src/main/java/com/baeldung/core/fileupload/service/UploadClient.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/service/UploadClient.java similarity index 85% rename from feign/src/main/java/com/baeldung/core/fileupload/service/UploadClient.java rename to spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/service/UploadClient.java index 37b059d642..8f3ef7e421 100644 --- a/feign/src/main/java/com/baeldung/core/fileupload/service/UploadClient.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/service/UploadClient.java @@ -1,4 +1,4 @@ -package com.baeldung.core.fileupload.service; +package com.baeldung.cloud.openfeign.fileupload.service; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; @@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.multipart.MultipartFile; -import com.baeldung.core.fileupload.config.FeignSupportConfig; +import com.baeldung.cloud.openfeign.fileupload.config.FeignSupportConfig; @FeignClient(name = "file", url = "http://localhost:8081", configuration = FeignSupportConfig.class) public interface UploadClient { diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/service/UploadResource.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/service/UploadResource.java index 2d5090897d..26e658a7f0 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/service/UploadResource.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/fileupload/service/UploadResource.java @@ -9,7 +9,7 @@ import feign.Response; public interface UploadResource { - @RequestLine("POST /upload-error") + @RequestLine("POST /upload-file") @Headers("Content-Type: multipart/form-data") Response uploadFile(@Param("file") MultipartFile file); diff --git a/feign/src/test/java/com/baeldung/core/client/FormClientUnitTest.java b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/client/FormClientUnitTest.java similarity index 95% rename from feign/src/test/java/com/baeldung/core/client/FormClientUnitTest.java rename to spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/client/FormClientUnitTest.java index b9c263b60b..f374e8e0bd 100644 --- a/feign/src/test/java/com/baeldung/core/client/FormClientUnitTest.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/client/FormClientUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.core.client; +package com.baeldung.cloud.openfeign.client; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.configureFor; @@ -20,7 +20,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.HttpStatus; import org.springframework.test.context.junit.jupiter.SpringExtension; -import com.baeldung.core.defaulterrorhandling.model.FormData; +import com.baeldung.cloud.openfeign.defaulterrorhandling.model.FormData; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.WireMock; diff --git a/feign/src/test/java/com/baeldung/core/customizederrorhandling/client/ProductClientUnitTest.java b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/customizederrorhandling/client/ProductClientUnitTest.java similarity index 85% rename from feign/src/test/java/com/baeldung/core/customizederrorhandling/client/ProductClientUnitTest.java rename to spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/customizederrorhandling/client/ProductClientUnitTest.java index ed5f18eb3f..5e715265aa 100644 --- a/feign/src/test/java/com/baeldung/core/customizederrorhandling/client/ProductClientUnitTest.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/customizederrorhandling/client/ProductClientUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.core.customizederrorhandling.client; +package com.baeldung.cloud.openfeign.customizederrorhandling.client; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.configureFor; @@ -15,9 +15,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -import com.baeldung.core.ExampleApplication; -import com.baeldung.core.customizederrorhandling.exception.ProductNotFoundException; -import com.baeldung.core.customizederrorhandling.exception.ProductServiceNotAvailableException; +import com.baeldung.cloud.openfeign.ExampleApplication; +import com.baeldung.cloud.openfeign.customizederrorhandling.exception.ProductNotFoundException; +import com.baeldung.cloud.openfeign.customizederrorhandling.exception.ProductServiceNotAvailableException; import com.github.tomakehurst.wiremock.WireMockServer; @RunWith(SpringRunner.class) diff --git a/feign/src/test/java/com/baeldung/core/customizederrorhandling/controller/ProductControllerUnitTest.java b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/customizederrorhandling/controller/ProductControllerUnitTest.java similarity index 94% rename from feign/src/test/java/com/baeldung/core/customizederrorhandling/controller/ProductControllerUnitTest.java rename to spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/customizederrorhandling/controller/ProductControllerUnitTest.java index 04fd68d3e4..d46c6fd86f 100644 --- a/feign/src/test/java/com/baeldung/core/customizederrorhandling/controller/ProductControllerUnitTest.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/customizederrorhandling/controller/ProductControllerUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.core.customizederrorhandling.controller; +package com.baeldung.cloud.openfeign.customizederrorhandling.controller; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.configureFor; @@ -21,8 +21,8 @@ import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; -import com.baeldung.core.customizederrorhandling.client.ProductClient; -import com.baeldung.core.customizederrorhandling.exception.ErrorResponse; +import com.baeldung.cloud.openfeign.customizederrorhandling.client.ProductClient; +import com.baeldung.cloud.openfeign.customizederrorhandling.exception.ErrorResponse; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.WireMock; diff --git a/feign/src/test/java/com/baeldung/core/defaulterrorhandling/client/ProductClientUnitTest.java b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClientUnitTest.java similarity index 93% rename from feign/src/test/java/com/baeldung/core/defaulterrorhandling/client/ProductClientUnitTest.java rename to spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClientUnitTest.java index 8a9fa94074..efbe7a3771 100644 --- a/feign/src/test/java/com/baeldung/core/defaulterrorhandling/client/ProductClientUnitTest.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClientUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.core.defaulterrorhandling.client; +package com.baeldung.cloud.openfeign.defaulterrorhandling.client; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.configureFor; @@ -17,8 +17,8 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.HttpStatus; import org.springframework.test.context.junit4.SpringRunner; -import com.baeldung.core.ExampleApplication; -import com.baeldung.core.defaulterrorhandling.model.Product; +import com.baeldung.cloud.openfeign.ExampleApplication; +import com.baeldung.cloud.openfeign.defaulterrorhandling.model.Product; import com.github.tomakehurst.wiremock.WireMockServer; import feign.FeignException; diff --git a/feign/src/test/java/com/baeldung/core/defaulterrorhandling/controller/ProductControllerUnitTest.java b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/controller/ProductControllerUnitTest.java similarity index 95% rename from feign/src/test/java/com/baeldung/core/defaulterrorhandling/controller/ProductControllerUnitTest.java rename to spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/controller/ProductControllerUnitTest.java index 798ee9035c..7271aa2672 100644 --- a/feign/src/test/java/com/baeldung/core/defaulterrorhandling/controller/ProductControllerUnitTest.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/controller/ProductControllerUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.core.defaulterrorhandling.controller; +package com.baeldung.cloud.openfeign.defaulterrorhandling.controller; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.configureFor; @@ -21,7 +21,7 @@ import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import com.baeldung.core.defaulterrorhandling.client.ProductClient; +import com.baeldung.cloud.openfeign.defaulterrorhandling.client.ProductClient; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.WireMock; diff --git a/feign/src/test/java/com/baeldung/core/defaulterrorhandling/controller/TestControllerAdvice.java b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/controller/TestControllerAdvice.java similarity index 88% rename from feign/src/test/java/com/baeldung/core/defaulterrorhandling/controller/TestControllerAdvice.java rename to spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/controller/TestControllerAdvice.java index dfd82ed07d..4f06a82a35 100644 --- a/feign/src/test/java/com/baeldung/core/defaulterrorhandling/controller/TestControllerAdvice.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/controller/TestControllerAdvice.java @@ -1,4 +1,4 @@ -package com.baeldung.core.defaulterrorhandling.controller; +package com.baeldung.cloud.openfeign.defaulterrorhandling.controller; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity;