From e3715e2ee26d0b5f7877b546b845231dbaae3cad Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Thu, 22 Oct 2020 08:39:55 +0300 Subject: [PATCH 01/14] Lombok integration --- echo-service/pom.xml | 9 +++- .../docker/echo/domain/HostInfo.java | 41 ++++--------------- 2 files changed, 17 insertions(+), 33 deletions(-) diff --git a/echo-service/pom.xml b/echo-service/pom.xml index 448e9ff..2e4f2eb 100644 --- a/echo-service/pom.xml +++ b/echo-service/pom.xml @@ -39,6 +39,11 @@ org.springframework.boot spring-boot-devtools + + org.projectlombok + lombok + 1.18.12 + @@ -81,7 +86,9 @@ ${project.artifactId} java:8 - ["java", "-jar", "/${project.build.finalName}.jar", "-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n"] + ["java", "-jar", "/${project.build.finalName}.jar", "-Xdebug + -Xrunjdwp:server=y,transport=dt_socket,suspend=n"] + diff --git a/echo-service/src/main/java/org/exampledriven/docker/echo/domain/HostInfo.java b/echo-service/src/main/java/org/exampledriven/docker/echo/domain/HostInfo.java index 3a2008d..014d2cd 100644 --- a/echo-service/src/main/java/org/exampledriven/docker/echo/domain/HostInfo.java +++ b/echo-service/src/main/java/org/exampledriven/docker/echo/domain/HostInfo.java @@ -1,44 +1,21 @@ package org.exampledriven.docker.echo.domain; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + /** * Created by Peter_Szanto on 6/16/2016. */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ToString public class HostInfo { private String address; private int port; private String hostName; - public HostInfo() { - } - - public HostInfo(String address, int port, String hostName) { - this.address = address; - this.port = port; - this.hostName = hostName; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - - public int getPort() { - return port; - } - - public void setPort(int port) { - this.port = port; - } - - public String getHostName() { - return hostName; - } - - public void setHostName(String hostName) { - this.hostName = hostName; - } } From 4a8b8dc7c59fc9109ad2a38b44babf44640c09aa Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Thu, 22 Oct 2020 09:43:49 +0300 Subject: [PATCH 02/14] sonarLint issues fixed & small refactorings --- ...ation.java => EchoServiceApplication.java} | 5 ++--- .../docker/echo/{ => config}/Config.java | 2 +- .../docker/echo/domain/HostFactory.java | 3 +++ .../docker/echo/rest/EchoController.java | 16 +++++--------- .../echo/rest/RemoteEchoController.java | 22 ++++++++----------- .../echo/rest/RemoteHostInfoClient.java | 11 ++++------ ...tion.java => EurekaServerApplication.java} | 8 +++---- 7 files changed, 28 insertions(+), 39 deletions(-) rename echo-service/src/main/java/org/exampledriven/docker/echo/{Application.java => EchoServiceApplication.java} (73%) rename echo-service/src/main/java/org/exampledriven/docker/echo/{ => config}/Config.java (97%) rename eureka-server/src/main/java/org/exampledriven/eureka/{Application.java => EurekaServerApplication.java} (70%) diff --git a/echo-service/src/main/java/org/exampledriven/docker/echo/Application.java b/echo-service/src/main/java/org/exampledriven/docker/echo/EchoServiceApplication.java similarity index 73% rename from echo-service/src/main/java/org/exampledriven/docker/echo/Application.java rename to echo-service/src/main/java/org/exampledriven/docker/echo/EchoServiceApplication.java index 3881c7c..4f3188a 100644 --- a/echo-service/src/main/java/org/exampledriven/docker/echo/Application.java +++ b/echo-service/src/main/java/org/exampledriven/docker/echo/EchoServiceApplication.java @@ -3,16 +3,15 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.web.servlet.config.annotation.EnableWebMvc; @EnableWebMvc @SpringBootApplication @EnableDiscoveryClient -public class Application { +public class EchoServiceApplication { public static void main(String[] args) { - SpringApplication.run(Application.class, args); + SpringApplication.run(EchoServiceApplication.class, args); } } diff --git a/echo-service/src/main/java/org/exampledriven/docker/echo/Config.java b/echo-service/src/main/java/org/exampledriven/docker/echo/config/Config.java similarity index 97% rename from echo-service/src/main/java/org/exampledriven/docker/echo/Config.java rename to echo-service/src/main/java/org/exampledriven/docker/echo/config/Config.java index 8733b2e..f97d350 100644 --- a/echo-service/src/main/java/org/exampledriven/docker/echo/Config.java +++ b/echo-service/src/main/java/org/exampledriven/docker/echo/config/Config.java @@ -1,4 +1,4 @@ -package org.exampledriven.docker.echo; +package org.exampledriven.docker.echo.config; import com.netflix.appinfo.AmazonInfo; import org.springframework.beans.factory.annotation.Qualifier; diff --git a/echo-service/src/main/java/org/exampledriven/docker/echo/domain/HostFactory.java b/echo-service/src/main/java/org/exampledriven/docker/echo/domain/HostFactory.java index fb53426..7fe5c25 100644 --- a/echo-service/src/main/java/org/exampledriven/docker/echo/domain/HostFactory.java +++ b/echo-service/src/main/java/org/exampledriven/docker/echo/domain/HostFactory.java @@ -10,6 +10,9 @@ */ public class HostFactory { + private HostFactory(){ + } + public static HostInfo create(HttpServletRequest request) { return new HostInfo(request.getLocalAddr(), request.getLocalPort(), getHostName()); } diff --git a/echo-service/src/main/java/org/exampledriven/docker/echo/rest/EchoController.java b/echo-service/src/main/java/org/exampledriven/docker/echo/rest/EchoController.java index 307d140..ed1f140 100644 --- a/echo-service/src/main/java/org/exampledriven/docker/echo/rest/EchoController.java +++ b/echo-service/src/main/java/org/exampledriven/docker/echo/rest/EchoController.java @@ -1,10 +1,10 @@ package org.exampledriven.docker.echo.rest; -import org.exampledriven.docker.echo.domain.HostInfo; import org.exampledriven.docker.echo.domain.HostFactory; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; +import org.exampledriven.docker.echo.domain.HostInfo; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; + import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; @@ -12,25 +12,19 @@ @RestController public class EchoController { - @RequestMapping(value = "/echo", method = RequestMethod.GET, produces = "application/json") + @GetMapping(value = "/echo", produces = "application/json") public HostInfo getHost(HttpServletRequest request) { - return HostFactory.create(request); - } - @RequestMapping(value = "/", method = RequestMethod.GET, produces = "application/json") + @GetMapping(value = "/", produces = "application/json") public Map getFullInfo(HttpServletRequest request) { HashMap result = new HashMap<>(); - result.put("host", HostFactory.create(request)); - result.put("env", System.getenv()); return result; - } - } \ No newline at end of file diff --git a/echo-service/src/main/java/org/exampledriven/docker/echo/rest/RemoteEchoController.java b/echo-service/src/main/java/org/exampledriven/docker/echo/rest/RemoteEchoController.java index 2b39e05..67cbcfc 100644 --- a/echo-service/src/main/java/org/exampledriven/docker/echo/rest/RemoteEchoController.java +++ b/echo-service/src/main/java/org/exampledriven/docker/echo/rest/RemoteEchoController.java @@ -1,39 +1,36 @@ package org.exampledriven.docker.echo.rest; -import org.exampledriven.docker.echo.Config; +import lombok.RequiredArgsConstructor; +import org.exampledriven.docker.echo.config.Config; import org.exampledriven.docker.echo.domain.HostFactory; import org.exampledriven.docker.echo.domain.HostInfo; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; +import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; -import javax.servlet.http.HttpServletRequest; - @RestController @RequestMapping(value = "/echo") +@RequiredArgsConstructor public class RemoteEchoController { - @Autowired @Qualifier(Config.LOADBALANCED) - RestTemplate loadBalancedRestTemplate; + private final RestTemplate loadBalancedRestTemplate; - @Autowired @Qualifier(Config.STANDARD) - RestTemplate restTemplate; + private final RestTemplate restTemplate; - @Autowired - RemoteHostInfoClient remoteHostInfoClient; + private final RemoteHostInfoClient remoteHostInfoClient; @GetMapping(value = "/remote-echo", produces = "application/json") public Map getHost(HttpServletRequest request) { - Map result = new HashMap(); + Map result = new HashMap<>(); result.put("local", HostFactory.create(request)); getRemoteHostInfo(result, "http://example_echo-service:9098/echo (Docker swarm service)", restTemplate, "http://example_echo-service:9098/echo"); @@ -41,10 +38,9 @@ public Map getHost(HttpServletRequest request) { getRemoteHostInfo(result, "http://echo-service/echo (Ribbon+Eureka)", loadBalancedRestTemplate, "http://echo-service/echo"); return result; - } - private void getRemoteHostInfo(Map result, String key, RestTemplate loadBalancedRestTemplate, String url) { + private void getRemoteHostInfo(Map result, String key, RestTemplate loadBalancedRestTemplate, String url) { HostInfo remoteHostInfo = null; try { remoteHostInfo = remoteHostInfoClient.getRemoteHostInfo(loadBalancedRestTemplate, url); diff --git a/echo-service/src/main/java/org/exampledriven/docker/echo/rest/RemoteHostInfoClient.java b/echo-service/src/main/java/org/exampledriven/docker/echo/rest/RemoteHostInfoClient.java index a72b1b5..d857343 100644 --- a/echo-service/src/main/java/org/exampledriven/docker/echo/rest/RemoteHostInfoClient.java +++ b/echo-service/src/main/java/org/exampledriven/docker/echo/rest/RemoteHostInfoClient.java @@ -10,16 +10,13 @@ public class RemoteHostInfoClient { public HostInfo getRemoteHostInfo(RestTemplate restTemplate, String url) { - - HostInfo hostInfo = restTemplate.exchange( + return restTemplate.exchange( url, HttpMethod.GET, null, - new ParameterizedTypeReference() {}) - .getBody(); - - return hostInfo; - + new ParameterizedTypeReference() { + }) + .getBody(); } } \ No newline at end of file diff --git a/eureka-server/src/main/java/org/exampledriven/eureka/Application.java b/eureka-server/src/main/java/org/exampledriven/eureka/EurekaServerApplication.java similarity index 70% rename from eureka-server/src/main/java/org/exampledriven/eureka/Application.java rename to eureka-server/src/main/java/org/exampledriven/eureka/EurekaServerApplication.java index 6ee5bc2..00c818c 100644 --- a/eureka-server/src/main/java/org/exampledriven/eureka/Application.java +++ b/eureka-server/src/main/java/org/exampledriven/eureka/EurekaServerApplication.java @@ -8,10 +8,10 @@ @SpringBootApplication @EnableEurekaServer @EnableDiscoveryClient -public class Application { +public class EurekaServerApplication { - public static void main(String[] args) throws Exception { - SpringApplication.run(Application.class, args); - } + public static void main(String[] args) { + SpringApplication.run(EurekaServerApplication.class, args); + } } From 2f1457384276e4d1492902679eb2e9737a79efd6 Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Thu, 22 Oct 2020 09:46:55 +0300 Subject: [PATCH 03/14] Update README.md up --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 32e2018..988d075 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![Build Status](https://travis-ci.org/ExampleDriven/spring-boot-docker-example.svg?branch=master)](https://travis-ci.org/ExampleDriven/spring-boot-docker-example) # spring-boot-docker-example -This is the source code for the blog post +This is the source code for the blog post : https://exampledriven.wordpress.com/2016/06/24/spring-boot-docker-example/ @@ -28,6 +28,7 @@ docker-compose scale echo-service=2 ``` ## Useful docker commands + ```sh ##Starting multiple echo services docker-compose scale echo-service=3 @@ -38,14 +39,12 @@ docker-compose stop echo-service docker-compose up -d echo-service ``` -Once all the services are up, the following URLs will be available +Once all the services are up, the following URLs will be available: Address | Description --- | --- -http://<\\>:8761 | Eureka service. +http://<\\>:8761 | Eureka service http://<\\>:9090/routes | Zuul route definitions http://<\\>:9090/api/echo-service/echo | Echo service through Zuul api gateway, looked up from Eureka registry http://<\\>:9090/api/echo-service/echo/remote-echo | Echo service calling remote echo services -http://<\\>:9090/api/echo-service-by-dns/echo/remote-echo | Echo service through Zuul api gateway, located by DNS entry http://echo-service:9098 - - +http://<\\>:9090/api/echo-service-by-dns/echo/remote-echo | Echo service through Zuul api gateway, located by DNS entry http://echo-service:9098 From be9b62afc009d45b96d328f1597f88ea6b58fdaf Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Sun, 21 Feb 2021 22:56:01 +0300 Subject: [PATCH 04/14] Update .travis.yml --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9b9bd6e..4132cf6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ language: java -jdk: oraclejdk8 +jdk: openjdk8 services: - - docker \ No newline at end of file + - docker From 9a664e39121e352e31332c267c638a0dc5901323 Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Sun, 21 Feb 2021 23:14:28 +0300 Subject: [PATCH 05/14] Update .travis.yml --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4132cf6..b7b73d1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: java -jdk: openjdk8 +jdk: + - openjdk8 services: - docker From 045155ae917e397031e4ef68b54030a239b23fca Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Sun, 21 Feb 2021 23:19:36 +0300 Subject: [PATCH 06/14] Update .travis.yml --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b7b73d1..570b99a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,4 @@ language: java -jdk: - - openjdk8 +jdk: openjdk10 services: - docker From ee789c987386bc58bddd76e40e3066fa676b45de Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Mon, 22 Feb 2021 16:38:17 +0300 Subject: [PATCH 07/14] Update .travis.yml jdk build version up --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 570b99a..1eda1dc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: java -jdk: openjdk10 +jdk: + - openjdk11 services: - docker From 32ea38d258df006f2f3a21427d4fecd13c2f387f Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Mon, 22 Feb 2021 16:43:46 +0300 Subject: [PATCH 08/14] Update .travis.yml up --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1eda1dc..379922f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: java -jdk: - - openjdk11 +jdk: + - openjdk8 services: - docker From 725a881e3dc317ab4eec3a4b7994ed04250260c0 Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Mon, 22 Feb 2021 16:44:28 +0300 Subject: [PATCH 09/14] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 379922f..48d2b94 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,4 +2,4 @@ language: java jdk: - openjdk8 services: - - docker + - docker From 7eae9a4198eecbae93172922b1effa2199f3b25d Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Mon, 22 Feb 2021 17:02:34 +0300 Subject: [PATCH 10/14] Update .travis.yml --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 48d2b94..e559285 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: java jdk: - - openjdk8 + - openjdk8 services: - - docker + - docker From def0859b213eff67ebd2efe819ea5375873ae6e5 Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Mon, 22 Feb 2021 17:30:25 +0300 Subject: [PATCH 11/14] Update .travis.yml up --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e559285..b179f30 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,3 @@ language: java jdk: - openjdk8 -services: - - docker From 733fc730440aa7e0a18264b240aef86420f263fc Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Mon, 22 Feb 2021 20:27:32 +0300 Subject: [PATCH 12/14] Update .travis.yml --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b179f30..570b99a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ language: java -jdk: - - openjdk8 +jdk: openjdk10 +services: + - docker From 58acd8a9127088ce5188dcc1f4e1a17fa3ca2096 Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Wed, 3 Mar 2021 09:13:08 +0300 Subject: [PATCH 13/14] up --- .travis.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 570b99a..7fc394c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,10 @@ language: java -jdk: openjdk10 +jdk: +- openjdk8 + +sudo: true + services: - docker + +script: mvn clean install From dcd9758809ede277044ec3cf0cdd70cdcce26454 Mon Sep 17 00:00:00 2001 From: Ramazan Sakin Date: Wed, 3 Mar 2021 13:19:23 +0300 Subject: [PATCH 14/14] Update .travis.yml --- .travis.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7fc394c..d4f921f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,8 @@ language: java jdk: -- openjdk8 - -sudo: true + - openjdk8 services: - - docker + - docker script: mvn clean install