diff --git a/spring-cloud/spring-cloud-kubernetes-project/client-service/pom.xml b/spring-cloud/spring-cloud-kubernetes-project/client-service/pom.xml deleted file mode 100644 index 6bba5512cd..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/client-service/pom.xml +++ /dev/null @@ -1,71 +0,0 @@ - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.0.6.RELEASE - - client-service - com.baeldung.spring.cloud - 1.0-SNAPSHOT - - - 1.8 - 2.0.1.RELEASE - Finchley.SR2 - 0.3.0.RELEASE - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud-dependencies.version} - pom - import - - - org.springframework.cloud - spring-cloud-kubernetes-dependencies - ${spring.cloud.k8s.version} - pom - import - - - - - - - org.springframework.cloud - spring-cloud-kubernetes-discovery - - - org.springframework.cloud - spring-cloud-starter-kubernetes-config - - - org.springframework.cloud - spring-cloud-starter-netflix-hystrix - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/ClientApplication.java b/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/ClientApplication.java deleted file mode 100644 index 9044de9574..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/ClientApplication.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.baeldung.spring.cloud.kubernetes.services.department; - -import com.baeldung.spring.cloud.kubernetes.services.client.config.ClientConfig; -import com.baeldung.spring.cloud.kubernetes.services.client.service.TravelAgencyClientService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; -import org.springframework.cloud.client.discovery.DiscoveryClient; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -import org.springframework.context.annotation.Bean; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.web.client.RestTemplate; - -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.List; -import java.util.Map; - -@SpringBootApplication -@EnableDiscoveryClient -@EnableCircuitBreaker -public class ClientApplication implements CommandLineRunner { - - private static final Log log = LogFactory.getLog(ClientApplication.class); - private static final String FIND_TRAVEL_DEALS_TASK = "Find new travel deals"; - - @Autowired - private DiscoveryClient discoveryClient; - - @Autowired - private TravelAgencyClientService travelAgencyClient; - - @Autowired - private ClientConfig clientConfig; - - private String task = FIND_TRAVEL_DEALS_TASK; - - @Bean - private RestTemplate restTemplate() { - return new RestTemplate(); - } - - @Value("${spring.application.name}") - private String appName; - - public static void main(String[] args) { - SpringApplication.run(ClientApplication.class, args); - } - - @Override - public void run(String... args) { - log.info("Client (" + appName + ":" + clientConfig.getType() + ")Started! "); - } - - /* - * Every 10 seconds look for new deals - */ - @Scheduled(fixedRate = 10000) - public void doSomeWork() throws UnknownHostException { - if (task.equals(FIND_TRAVEL_DEALS_TASK)) { - task = findNewDeals(); - if (task.equals(FIND_TRAVEL_DEALS_TASK)) { - log.info("NO DEAL FOUND, I will keep looking for one "); - } - } - log.info(">>> Working on " + task); - } - - - - - private String findNewDeals() throws UnknownHostException { - List services = this.discoveryClient.getServices(); - - for (String service : services) { - List instances = this.discoveryClient.getInstances(service); - for (ServiceInstance se : instances) { - Map metadata = se.getMetadata(); - String type = metadata.get("type"); - if ("deal".equals(type)) { - - String from = appName + "@" + InetAddress.getLocalHost().getHostName(); - String url = "http://" + se.getServiceId(); - return travelAgencyClient.requestDeals(url, from); - } - } - } - return FIND_TRAVEL_DEALS_TASK; - } -} diff --git a/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/config/ClientConfig.java b/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/config/ClientConfig.java deleted file mode 100644 index a4f43e2ddc..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/config/ClientConfig.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.spring.cloud.kubernetes.services.client.config; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -@Configuration -@ConfigurationProperties(prefix = "client") -public class ClientConfig { - - private String type = "generic-client"; - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } -} diff --git a/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/controller/ClientController.java b/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/controller/ClientController.java deleted file mode 100644 index dad736953e..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/controller/ClientController.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.baeldung.spring.cloud.kubernetes.services.client.controller; - -import java.io.UnsupportedEncodingException; -import java.net.InetAddress; -import java.net.UnknownHostException; - -import com.baeldung.spring.cloud.kubernetes.services.client.config.ClientConfig; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.context.config.annotation.RefreshScope; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import static org.springframework.web.bind.annotation.RequestMethod.GET; - -@RestController -@RefreshScope -public class ClientController { - - private static final Log log = LogFactory.getLog(ClientController.class); - - private enum ClientTravelType { - BUSINESS, - STUDENT, - COUPLE, - FRIENDS, - SINGLE, - FAMILY; - } - - @Autowired - private ClientConfig clientConfig; - - @RequestMapping(method = GET) - public String get() throws UnknownHostException, UnsupportedEncodingException { - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("Host: ").append(InetAddress.getLocalHost().getHostName()).append("
"); - stringBuilder.append("Client Type: ").append(clientConfig.getType()).append("
"); - stringBuilder.append("IP: ").append(InetAddress.getLocalHost().getHostAddress()).append("
"); - return stringBuilder.toString(); - } -} diff --git a/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/service/TravelAgencyClientService.java b/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/service/TravelAgencyClientService.java deleted file mode 100644 index ba86808cd5..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/client/service/TravelAgencyClientService.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.baeldung.spring.cloud.kubernetes.services.client.service; - -import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; -import com.netflix.hystrix.contrib.javanica.annotation.HystrixProperty; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; - -@Service -public class TravelAgencyClientService { - - private final RestTemplate restTemplate; - - private static final Log log = LogFactory.getLog(TravelAgencyClientService.class); - - public static final String FIND_NEW_TRAVEL_DEALS = "find new travel deals"; - - public TravelAgencyClientService(RestTemplate restTemplate) { - this.restTemplate = restTemplate; - } - - @HystrixCommand(fallbackMethod = "getFallbackName", commandProperties = { - @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "5000") - }) - public String requestDeals(String to, - String from) { - - String url = String.format("%s/deals/%s", - to, - from); - - log.info("--- Requesting travel deals to travel agency " + url); - - return restTemplate.getForObject(url, String.class); - } - - private String getFallbackName(String to, - String from) { - log.error("--- This travel agency (" + to + ") not available now, please come back later (Fallback) client:" + from); - return FIND_NEW_TRAVEL_DEALS; - } -} diff --git a/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/resources/bootstrap.yml b/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/resources/bootstrap.yml deleted file mode 100644 index 736a17b041..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/client-service/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,6 +0,0 @@ -spring: - application: - name: client-service - cloud: - config: - uri: http://localhost:8088 \ No newline at end of file diff --git a/spring-cloud/spring-cloud-kubernetes-project/gateway-service/Dockerfile b/spring-cloud/spring-cloud-kubernetes-project/gateway-service/Dockerfile deleted file mode 100644 index 93e75216db..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/gateway-service/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -# requires Docker version 17.05.0-ce-rc1, build 2878a85 -FROM maven:3.5-jdk-8 as BUILDAGENCY - -COPY src /usr/src/myapp/src -COPY pom.xml /usr/src/myapp -RUN mvn -f /usr/src/myapp/pom.xml clean package -DskipTests - -FROM openjdk:alpine - -COPY --from=BUILDAGENCY /usr/src/myapp/target/*.jar /maven/ - -CMD java $JAVA_OPTS -jar maven/*.jar \ No newline at end of file diff --git a/spring-cloud/spring-cloud-kubernetes-project/gateway-service/pom.xml b/spring-cloud/spring-cloud-kubernetes-project/gateway-service/pom.xml deleted file mode 100644 index 84eb353fb9..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/gateway-service/pom.xml +++ /dev/null @@ -1,76 +0,0 @@ - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.0.6.RELEASE - - gateway-service - com.baeldung.spring.cloud - 1.0-SNAPSHOT - - - 1.8 - 2.0.1.RELEASE - Finchley.SR2 - 0.3.0.RELEASE - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud-dependencies.version} - pom - import - - - org.springframework.cloud - spring-cloud-kubernetes-dependencies - ${spring.cloud.k8s.version} - pom - import - - - - - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-autoconfigure - - - org.springframework.cloud - spring-cloud-starter-netflix-hystrix - - - org.springframework.cloud - spring-cloud-starter-gateway - - - org.springframework.cloud - spring-cloud-kubernetes-discovery - - - org.springframework.cloud - spring-cloud-kubernetes-ribbon - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/spring-cloud/spring-cloud-kubernetes-project/gateway-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/gateway/GatewayApplication.java b/spring-cloud/spring-cloud-kubernetes-project/gateway-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/gateway/GatewayApplication.java deleted file mode 100644 index 7f11906aba..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/gateway-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/gateway/GatewayApplication.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.baeldung.spring.cloud.kubernetes.services.gateway; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.client.discovery.DiscoveryClient; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; -import org.springframework.cloud.gateway.discovery.DiscoveryClientRouteDefinitionLocator; -import org.springframework.cloud.gateway.discovery.DiscoveryLocatorProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.web.client.RestTemplate; - -@EnableScheduling -@EnableDiscoveryClient -@SpringBootApplication -public class GatewayApplication { - - private static final Log log = LogFactory.getLog(GatewayApplication.class); - - @Autowired - private DiscoveryClient discoveryClient; - - @Bean - public DiscoveryClientRouteDefinitionLocator discoveryClientRouteLocator(DiscoveryClient discoveryClient, - DiscoveryLocatorProperties properties) { - return new DiscoveryClientRouteDefinitionLocator(discoveryClient, - properties); - } - - public static void main(String[] args) { - SpringApplication.run(GatewayApplication.class, - args); - } - - @LoadBalanced - @Bean - RestTemplate restTemplate() { - return new RestTemplate(); - } -} diff --git a/spring-cloud/spring-cloud-kubernetes-project/gateway-service/src/main/resources/bootstrap.yml b/spring-cloud/spring-cloud-kubernetes-project/gateway-service/src/main/resources/bootstrap.yml deleted file mode 100644 index 5fd607d335..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/gateway-service/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,6 +0,0 @@ -spring: - application: - name: gateway-service - cloud: - config: - uri: http://localhost:8088 \ No newline at end of file diff --git a/spring-cloud/spring-cloud-kubernetes-project/pom.xml b/spring-cloud/spring-cloud-kubernetes-project/pom.xml deleted file mode 100644 index dc4e3bfe70..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - 4.0.0 - com.baeldung.spring.cloud - spring-cloud-kubernetes-project - 1.0.0-SNAPSHOT - spring-cloud-kubernetes-project - Spring Cloud Kubernetes - pom - - - travel-agency-service - client-service - gateway-service - - - - com.baeldung.spring.cloud - spring-cloud - 1.0.0-SNAPSHOT - .. - - - - - diff --git a/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/Dockerfile b/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/Dockerfile deleted file mode 100644 index 93e75216db..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -# requires Docker version 17.05.0-ce-rc1, build 2878a85 -FROM maven:3.5-jdk-8 as BUILDAGENCY - -COPY src /usr/src/myapp/src -COPY pom.xml /usr/src/myapp -RUN mvn -f /usr/src/myapp/pom.xml clean package -DskipTests - -FROM openjdk:alpine - -COPY --from=BUILDAGENCY /usr/src/myapp/target/*.jar /maven/ - -CMD java $JAVA_OPTS -jar maven/*.jar \ No newline at end of file diff --git a/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/pom.xml b/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/pom.xml deleted file mode 100644 index 69cd22ae52..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.0.6.RELEASE - - travel-agency-service - com.baeldung.spring.cloud - 1.0-SNAPSHOT - - - 1.8 - 2.0.1.RELEASE - Finchley.SR2 - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud-dependencies.version} - pom - import - - - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-actuator - - - org.springframework.boot - spring-boot-actuator-autoconfigure - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/travelagency/TravelAgencyApplication.java b/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/travelagency/TravelAgencyApplication.java deleted file mode 100644 index c96b547e18..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/travelagency/TravelAgencyApplication.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.baeldung.spring.cloud.kubernetes.services.department; - -import com.baeldung.spring.cloud.kubernetes.services.travelagency.controller.TravelAgencyController; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class TravelAgencyApplication implements CommandLineRunner { - - private static final Log log = LogFactory.getLog(TravelAgencyController.class); - - public static void main(String[] args) { - SpringApplication.run(TravelAgencyApplication.class, args); - } - - @Override - public void run(String... args) throws Exception { - log.info("Travel Agency Started! "); - } - -} diff --git a/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/travelagency/controller/TravelAgencyController.java b/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/travelagency/controller/TravelAgencyController.java deleted file mode 100644 index ec84debe83..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/src/main/java/com/baeldung/spring/cloud/kubernetes/services/travelagency/controller/TravelAgencyController.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.baeldung.spring.cloud.kubernetes.services.travelagency.controller; - -import org.springframework.web.bind.annotation.*; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.Random; -import static org.springframework.web.bind.annotation.RequestMethod.GET; -import static org.springframework.web.bind.annotation.RequestMethod.POST; - -@RestController -public class TravelAgencyController { - - private String[] deals = {"London - Paris : 25 Euro", "London - Frankfurt : 25 Euro"}; - private static final Log log = LogFactory.getLog(TravelAgencyController.class); - - - @RequestMapping(method = POST, path = "/deals/{client}") - public String deals(@PathVariable("client") String client) { - log.info("Client: " + client + " is requesting new deals!"); - int randomDeal = new Random().nextInt(deals.length); - return deals[randomDeal]; - } - - @RequestMapping(method = GET, path = "/") - @ResponseBody - public String get() throws UnknownHostException { - - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("Host: ").append(InetAddress.getLocalHost().getHostName()).append("
"); - stringBuilder.append("IP: ").append(InetAddress.getLocalHost().getHostAddress()).append("
"); - stringBuilder.append("Type: ").append("Travel Agency").append("
"); - return stringBuilder.toString(); - } -} diff --git a/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/src/main/resources/bootstrap.yml b/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/src/main/resources/bootstrap.yml deleted file mode 100644 index d9fd0c0e76..0000000000 --- a/spring-cloud/spring-cloud-kubernetes-project/travel-agency-service/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,6 +0,0 @@ -spring: - application: - name: travelagency-service - cloud: - config: - uri: http://localhost:8088 \ No newline at end of file