├── .gitignore ├── Chapter02 ├── sample-spring-boot-web-master │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── boot │ │ │ ├── Application.java │ │ │ ├── controller │ │ │ └── PersonController.java │ │ │ ├── model │ │ │ ├── Gender.java │ │ │ └── Person.java │ │ │ └── service │ │ │ └── PersonCounterService.java │ │ └── resources │ │ └── application.yml └── sample-spring-boot-web-mongo │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── pl │ │ └── piomin │ │ └── services │ │ └── boot │ │ ├── Application.java │ │ ├── controller │ │ └── PersonController.java │ │ ├── data │ │ └── PersonRepository.java │ │ ├── model │ │ ├── Gender.java │ │ └── Person.java │ │ └── service │ │ └── PersonCounterService.java │ └── resources │ └── application.yml ├── Chapter04 ├── sample-spring-cloud-netflix-cluster │ ├── pom.xml │ ├── sample-client-service │ │ ├── .classpath │ │ ├── .gitignore │ │ ├── .project │ │ ├── .settings │ │ │ ├── org.eclipse.core.resources.prefs │ │ │ ├── org.eclipse.jdt.core.prefs │ │ │ └── org.eclipse.m2e.core.prefs │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── client │ │ │ │ ├── ClientApplication.java │ │ │ │ └── controller │ │ │ │ └── ClientController.java │ │ │ └── resources │ │ │ └── application.yml │ ├── sample-discovery-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── discovery │ │ │ │ └── DiscoveryApplication.java │ │ │ └── resources │ │ │ └── application.yml │ └── sample-gateway-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── gateway │ │ │ └── GatewayApplication.java │ │ └── resources │ │ └── application.yml ├── sample-spring-cloud-netflix-master │ ├── pom.xml │ ├── sample-client-service │ │ ├── .classpath │ │ ├── .gitignore │ │ ├── .project │ │ ├── .settings │ │ │ ├── org.eclipse.core.resources.prefs │ │ │ ├── org.eclipse.jdt.core.prefs │ │ │ └── org.eclipse.m2e.core.prefs │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── client │ │ │ │ ├── ClientApplication.java │ │ │ │ └── controller │ │ │ │ └── ClientController.java │ │ │ └── resources │ │ │ └── application.yml │ └── sample-discovery-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── discovery │ │ │ └── DiscoveryApplication.java │ │ └── resources │ │ └── application.yml └── sample-spring-cloud-netflix-security │ ├── pom.xml │ ├── sample-client-service │ ├── .classpath │ ├── .gitignore │ ├── .project │ ├── .settings │ │ ├── org.eclipse.core.resources.prefs │ │ ├── org.eclipse.jdt.core.prefs │ │ └── org.eclipse.m2e.core.prefs │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── client │ │ │ ├── ClientApplication.java │ │ │ └── controller │ │ │ └── ClientController.java │ │ └── resources │ │ └── application.yml │ ├── sample-discovery-service │ ├── .gitignore │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── discovery │ │ │ └── DiscoveryApplication.java │ │ └── resources │ │ └── application.yml │ └── sample-gateway-service │ ├── .gitignore │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── pl │ │ └── piomin │ │ └── service │ │ └── sample │ │ └── gateway │ │ └── GatewayApplication.java │ └── resources │ └── application.yml ├── Chapter05 ├── sample-spring-cloud-config-bus-amqp │ ├── pom.xml │ ├── sample-client-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── client │ │ │ │ ├── ClientApplication.java │ │ │ │ ├── config │ │ │ │ └── ClientConfiguration.java │ │ │ │ └── controller │ │ │ │ └── ClientController.java │ │ │ └── resources │ │ │ └── bootstrap.yml │ ├── sample-config-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── config │ │ │ │ └── ConfigApplication.java │ │ │ └── resources │ │ │ └── application.yml │ └── sample-discovery-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── discovery │ │ │ └── DiscoveryApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── sample-spring-cloud-config-bus │ ├── pom.xml │ ├── sample-client-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── client │ │ │ │ ├── ClientApplication.java │ │ │ │ ├── config │ │ │ │ └── ClientConfiguration.java │ │ │ │ └── controller │ │ │ │ └── ClientController.java │ │ │ └── resources │ │ │ └── bootstrap.yml │ ├── sample-config-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── config │ │ │ │ └── ConfigApplication.java │ │ │ └── resources │ │ │ └── application.yml │ └── sample-discovery-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── discovery │ │ │ └── DiscoveryApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── sample-spring-cloud-config-discovery │ ├── pom.xml │ ├── sample-client-service │ │ ├── .gitignore │ │ ├── .settings │ │ │ ├── org.eclipse.core.resources.prefs │ │ │ ├── org.eclipse.jdt.core.prefs │ │ │ └── org.eclipse.m2e.core.prefs │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── client │ │ │ │ ├── ClientApplication.java │ │ │ │ └── controller │ │ │ │ └── ClientController.java │ │ │ └── resources │ │ │ └── bootstrap.yml │ ├── sample-config-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── config │ │ │ │ └── ConfigApplication.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── config │ │ │ ├── client-service-zone1.yml │ │ │ ├── client-service-zone2.yml │ │ │ ├── client-service-zone3.yml │ │ │ ├── discovery-service-zone1.yml │ │ │ ├── discovery-service-zone2.yml │ │ │ └── discovery-service-zone3.yml │ └── sample-discovery-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── discovery │ │ │ └── DiscoveryApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── sample-spring-cloud-config-git │ ├── pom.xml │ ├── sample-client-service │ │ ├── .gitignore │ │ ├── .settings │ │ │ ├── org.eclipse.core.resources.prefs │ │ │ ├── org.eclipse.jdt.core.prefs │ │ │ └── org.eclipse.m2e.core.prefs │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── client │ │ │ │ ├── ClientApplication.java │ │ │ │ └── controller │ │ │ │ └── ClientController.java │ │ │ └── resources │ │ │ └── bootstrap.yml │ ├── sample-config-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── config │ │ │ │ └── ConfigApplication.java │ │ │ └── resources │ │ │ └── application.yml │ └── sample-discovery-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── discovery │ │ │ └── DiscoveryApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── sample-spring-cloud-config-gitlab │ ├── pom.xml │ ├── sample-client-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── client │ │ │ │ ├── ClientApplication.java │ │ │ │ ├── config │ │ │ │ └── ClientConfiguration.java │ │ │ │ └── controller │ │ │ │ └── ClientController.java │ │ │ └── resources │ │ │ └── bootstrap.yml │ ├── sample-config-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── config │ │ │ │ └── ConfigApplication.java │ │ │ └── resources │ │ │ └── application.yml │ └── sample-discovery-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── discovery │ │ │ └── DiscoveryApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── sample-spring-cloud-config-master │ ├── pom.xml │ ├── sample-client-service │ │ ├── .gitignore │ │ ├── .settings │ │ │ ├── org.eclipse.core.resources.prefs │ │ │ ├── org.eclipse.jdt.core.prefs │ │ │ └── org.eclipse.m2e.core.prefs │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── client │ │ │ │ ├── ClientApplication.java │ │ │ │ └── controller │ │ │ │ └── ClientController.java │ │ │ └── resources │ │ │ └── bootstrap.yml │ ├── sample-config-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── service │ │ │ │ └── sample │ │ │ │ └── config │ │ │ │ └── ConfigApplication.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── config │ │ │ ├── client-service-zone1.yml │ │ │ ├── client-service-zone2.yml │ │ │ ├── client-service-zone3.yml │ │ │ ├── discovery-service-zone1.yml │ │ │ ├── discovery-service-zone2.yml │ │ │ └── discovery-service-zone3.yml │ └── sample-discovery-service │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── discovery │ │ │ └── DiscoveryApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── sample-spring-cloud-config-repo-discovery │ ├── client-service-zone1.yml │ ├── client-service-zone2.yml │ ├── client-service-zone3.yml │ ├── discovery-service-zone1.yml │ ├── discovery-service-zone2.yml │ └── discovery-service-zone3.yml ├── sample-spring-cloud-config-repo-master │ ├── client-service-zone1.yml │ ├── client-service-zone2.yml │ ├── client-service-zone3.yml │ ├── discovery-service-zone1.yml │ ├── discovery-service-zone2.yml │ └── discovery-service-zone3.yml └── sample-spring-cloud-config-vault │ ├── pom.xml │ ├── sample-client-service │ ├── .gitignore │ ├── .settings │ │ ├── org.eclipse.core.resources.prefs │ │ ├── org.eclipse.jdt.core.prefs │ │ └── org.eclipse.m2e.core.prefs │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── client │ │ │ ├── ClientApplication.java │ │ │ └── controller │ │ │ └── ClientController.java │ │ └── resources │ │ └── bootstrap.yml │ ├── sample-config-service │ ├── .gitignore │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── service │ │ │ └── sample │ │ │ └── config │ │ │ └── ConfigApplication.java │ │ └── resources │ │ └── application.yml │ └── sample-discovery-service │ ├── .gitignore │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── pl │ │ └── piomin │ │ └── service │ │ └── sample │ │ └── discovery │ │ └── DiscoveryApplication.java │ └── resources │ └── bootstrap.yml ├── Chapter06 ├── sample-spring-cloud-comm-feign-inheritance │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── contract │ │ │ │ └── AccountService.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── customer-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── client │ │ │ │ └── AccountClient.java │ │ │ │ ├── contract │ │ │ │ └── CustomerService.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── discovery-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── discovery │ │ │ │ └── DiscoveryApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── order │ │ │ │ ├── OrderApplication.java │ │ │ │ ├── client │ │ │ │ ├── AccountClient.java │ │ │ │ ├── CustomerClient.java │ │ │ │ └── ProductClient.java │ │ │ │ ├── controller │ │ │ │ └── OrderController.java │ │ │ │ ├── model │ │ │ │ ├── Order.java │ │ │ │ └── OrderStatus.java │ │ │ │ └── repository │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── contract │ │ │ └── ProductService.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ └── application.yml ├── sample-spring-cloud-comm-feign │ ├── account-service │ │ ├── Dockerfile │ │ ├── Jenkinsfile │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-spring.xml │ ├── customer-service │ │ ├── Dockerfile │ │ ├── Jenkinsfile │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── client │ │ │ │ └── AccountClient.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-spring.xml │ ├── discovery-service │ │ ├── Dockerfile │ │ ├── Jenkinsfile │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── discovery │ │ │ │ └── DiscoveryApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── gateway-service │ │ ├── Jenkinsfile │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── gateway │ │ │ │ │ ├── GatewayApplication.java │ │ │ │ │ ├── fallback │ │ │ │ │ ├── AccountFallbackProvider.java │ │ │ │ │ └── response │ │ │ │ │ │ └── AccountFallbackResponse.java │ │ │ │ │ └── filter │ │ │ │ │ └── AddResponseIDHeaderFilter.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── gateway │ │ │ ├── GatewayControllerTest.java │ │ │ └── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ ├── CustomerType.java │ │ │ ├── Order.java │ │ │ ├── OrderStatus.java │ │ │ └── Product.java │ ├── order-service │ │ ├── Dockerfile │ │ ├── Jenkinsfile │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── order │ │ │ │ │ ├── OrderApplication.java │ │ │ │ │ ├── client │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ ├── CustomerClient.java │ │ │ │ │ └── ProductClient.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ ├── Order.java │ │ │ │ │ ├── OrderStatus.java │ │ │ │ │ └── Product.java │ │ │ │ │ └── repository │ │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── logback-spring.xml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ └── OrderControllerTest.java │ ├── pom.xml │ ├── product-service │ │ ├── Dockerfile │ │ ├── Jenkinsfile │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── product │ │ │ │ ├── ProductApplication.java │ │ │ │ ├── controller │ │ │ │ └── ProductController.java │ │ │ │ ├── model │ │ │ │ └── Product.java │ │ │ │ └── repository │ │ │ │ └── ProductRepository.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-spring.xml │ └── zipkin-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── zipkin │ │ │ └── ZipkinApplication.java │ │ └── resources │ │ └── application.yml ├── sample-spring-cloud-comm-master │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── customer-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── gateway-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── gateway │ │ │ │ └── GatewayApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── order │ │ │ │ ├── OrderApplication.java │ │ │ │ ├── controller │ │ │ │ └── OrderController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ ├── CustomerType.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderStatus.java │ │ │ │ └── Product.java │ │ │ │ └── repository │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ └── application.yml └── sample-spring-cloud-comm-ribbon-discovery │ ├── account-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── account │ │ │ ├── AccountApplication.java │ │ │ ├── controller │ │ │ └── AccountController.java │ │ │ ├── model │ │ │ └── Account.java │ │ │ └── repository │ │ │ └── AccountRepository.java │ │ └── resources │ │ └── application.yml │ ├── customer-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── customer │ │ │ ├── CustomerApplication.java │ │ │ ├── controller │ │ │ └── CustomerController.java │ │ │ ├── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ └── CustomerType.java │ │ │ └── repository │ │ │ └── CustomerRepository.java │ │ └── resources │ │ └── application.yml │ ├── discovery-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── discovery │ │ │ └── DiscoveryApplication.java │ │ └── resources │ │ └── application.yml │ ├── order-service │ ├── .settings │ │ ├── org.eclipse.core.resources.prefs │ │ ├── org.eclipse.jdt.core.prefs │ │ └── org.eclipse.m2e.core.prefs │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ ├── OrderApplication.java │ │ │ ├── controller │ │ │ └── OrderController.java │ │ │ ├── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ ├── CustomerType.java │ │ │ ├── Order.java │ │ │ ├── OrderStatus.java │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── OrderRepository.java │ │ └── resources │ │ └── application.yml │ ├── pom.xml │ └── product-service │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── pl │ │ └── piomin │ │ └── services │ │ └── product │ │ ├── ProductApplication.java │ │ ├── controller │ │ └── ProductController.java │ │ ├── model │ │ └── Product.java │ │ └── repository │ │ └── ProductRepository.java │ └── resources │ └── application.yml ├── Chapter07 ├── sample-spring-cloud-comm-hystrix │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── customer-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── customer │ │ │ │ │ ├── CustomerApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── CustomerController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ └── CustomerType.java │ │ │ │ │ ├── repository │ │ │ │ │ └── CustomerRepository.java │ │ │ │ │ └── service │ │ │ │ │ └── CustomerService.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ └── CustomerControllerTest.java │ │ │ └── resources │ │ │ └── application.yml │ ├── hystrix-dashboard │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── hystrix │ │ │ │ └── HystrixApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── order │ │ │ │ │ ├── OrderApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ ├── Order.java │ │ │ │ │ ├── OrderStatus.java │ │ │ │ │ └── Product.java │ │ │ │ │ ├── repository │ │ │ │ │ └── OrderRepository.java │ │ │ │ │ └── service │ │ │ │ │ ├── AccountService.java │ │ │ │ │ ├── CustomerService.java │ │ │ │ │ └── ProductService.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ └── application.yml ├── sample-spring-cloud-comm-turbine │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── customer-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── customer │ │ │ │ │ ├── CustomerApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── CustomerController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ └── CustomerType.java │ │ │ │ │ ├── repository │ │ │ │ │ └── CustomerRepository.java │ │ │ │ │ └── service │ │ │ │ │ └── CustomerService.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ └── CustomerControllerTest.java │ │ │ └── resources │ │ │ └── application.yml │ ├── discovery-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── discovery │ │ │ │ └── DiscoveryApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── hystrix-dashboard │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── hystrix │ │ │ │ └── HystrixApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── order │ │ │ │ │ ├── OrderApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ ├── Order.java │ │ │ │ │ ├── OrderStatus.java │ │ │ │ │ └── Product.java │ │ │ │ │ ├── repository │ │ │ │ │ └── OrderRepository.java │ │ │ │ │ └── service │ │ │ │ │ ├── AccountService.java │ │ │ │ │ ├── CustomerService.java │ │ │ │ │ └── ProductService.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ └── application.yml └── sample-spring-cloud-comm-weighted-lb │ ├── account-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── account │ │ │ ├── AccountApplication.java │ │ │ ├── controller │ │ │ └── AccountController.java │ │ │ ├── model │ │ │ └── Account.java │ │ │ └── repository │ │ │ └── AccountRepository.java │ │ └── resources │ │ └── application.yml │ ├── customer-service │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── config │ │ │ │ └── RibbonConfiguration.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── pl │ │ └── piomin │ │ └── services │ │ └── customer │ │ └── CustomerControllerTest.java │ ├── order-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ ├── OrderApplication.java │ │ │ ├── controller │ │ │ └── OrderController.java │ │ │ ├── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ ├── CustomerType.java │ │ │ ├── Order.java │ │ │ ├── OrderStatus.java │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── OrderRepository.java │ │ └── resources │ │ └── application.yml │ ├── pom.xml │ └── product-service │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── pl │ │ └── piomin │ │ └── services │ │ └── product │ │ ├── ProductApplication.java │ │ ├── controller │ │ └── ProductController.java │ │ ├── model │ │ └── Product.java │ │ └── repository │ │ └── ProductRepository.java │ └── resources │ └── application.yml ├── Chapter08 ├── sample-spring-cloud-comm-master │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── customer-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── gateway-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── gateway │ │ │ │ └── GatewayApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── order │ │ │ │ ├── OrderApplication.java │ │ │ │ ├── controller │ │ │ │ └── OrderController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ ├── CustomerType.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderStatus.java │ │ │ │ └── Product.java │ │ │ │ └── repository │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ └── application.yml ├── sample-spring-cloud-gateway-discovery │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── gateway │ │ │ └── GatewayApplication.java │ │ └── resources │ │ └── application.yml └── sample-spring-cloud-gateway-master │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── pl │ │ └── piomin │ │ └── services │ │ └── gateway │ │ └── GatewayApplication.java │ └── resources │ └── application.yml ├── Chapter10 ├── sample-spring-cloud-consul-config │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── logback-spring.xml │ ├── customer-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── client │ │ │ │ └── AccountClient.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── logback-spring.xml │ ├── gateway-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── gateway │ │ │ │ │ ├── GatewayApplication.java │ │ │ │ │ ├── fallback │ │ │ │ │ ├── AccountFallbackProvider.java │ │ │ │ │ └── response │ │ │ │ │ │ └── AccountFallbackResponse.java │ │ │ │ │ └── filter │ │ │ │ │ └── AddResponseIDHeaderFilter.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── bootstrap.yml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── gateway │ │ │ ├── GatewayControllerTest.java │ │ │ └── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ ├── CustomerType.java │ │ │ ├── Order.java │ │ │ ├── OrderStatus.java │ │ │ └── Product.java │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── order │ │ │ │ │ ├── OrderApplication.java │ │ │ │ │ ├── client │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ ├── CustomerClient.java │ │ │ │ │ └── ProductClient.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ ├── Order.java │ │ │ │ │ ├── OrderStatus.java │ │ │ │ │ └── Product.java │ │ │ │ │ └── repository │ │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ │ ├── bootstrap.yml │ │ │ │ └── logback-spring.xml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback-spring.xml ├── sample-spring-cloud-consul-master │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── bootstrap.yml │ │ │ └── logback-spring.xml │ ├── customer-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── client │ │ │ │ └── AccountClient.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── bootstrap.yml │ │ │ └── logback-spring.xml │ ├── gateway-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── gateway │ │ │ │ │ ├── GatewayApplication.java │ │ │ │ │ ├── fallback │ │ │ │ │ ├── AccountFallbackProvider.java │ │ │ │ │ └── response │ │ │ │ │ │ └── AccountFallbackResponse.java │ │ │ │ │ └── filter │ │ │ │ │ └── AddResponseIDHeaderFilter.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── bootstrap.yml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── gateway │ │ │ ├── GatewayControllerTest.java │ │ │ └── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ ├── CustomerType.java │ │ │ ├── Order.java │ │ │ ├── OrderStatus.java │ │ │ └── Product.java │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── order │ │ │ │ │ ├── OrderApplication.java │ │ │ │ │ ├── client │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ ├── CustomerClient.java │ │ │ │ │ └── ProductClient.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ ├── Order.java │ │ │ │ │ ├── OrderStatus.java │ │ │ │ │ └── Product.java │ │ │ │ │ └── repository │ │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── bootstrap.yml │ │ │ │ └── logback-spring.xml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ ├── application.yml │ │ ├── bootstrap.yml │ │ └── logback-spring.xml ├── sample-spring-cloud-zookeeper-config │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── logback-spring.xml │ ├── customer-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── client │ │ │ │ └── AccountClient.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── logback-spring.xml │ ├── gateway-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── gateway │ │ │ │ │ ├── GatewayApplication.java │ │ │ │ │ ├── fallback │ │ │ │ │ ├── AccountFallbackProvider.java │ │ │ │ │ └── response │ │ │ │ │ │ └── AccountFallbackResponse.java │ │ │ │ │ └── filter │ │ │ │ │ └── AddResponseIDHeaderFilter.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── bootstrap.yml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── gateway │ │ │ ├── GatewayControllerTest.java │ │ │ └── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ ├── CustomerType.java │ │ │ ├── Order.java │ │ │ ├── OrderStatus.java │ │ │ └── Product.java │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── order │ │ │ │ │ ├── OrderApplication.java │ │ │ │ │ ├── client │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ ├── CustomerClient.java │ │ │ │ │ └── ProductClient.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ ├── Order.java │ │ │ │ │ ├── OrderStatus.java │ │ │ │ │ └── Product.java │ │ │ │ │ └── repository │ │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ │ ├── bootstrap.yml │ │ │ │ └── logback-spring.xml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback-spring.xml ├── sample-spring-cloud-zookeeper-dependencies │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── logback-spring.xml │ ├── customer-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── client │ │ │ │ └── AccountClient.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── logback-spring.xml │ ├── gateway-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── gateway │ │ │ │ │ ├── GatewayApplication.java │ │ │ │ │ ├── fallback │ │ │ │ │ ├── AccountFallbackProvider.java │ │ │ │ │ └── response │ │ │ │ │ │ └── AccountFallbackResponse.java │ │ │ │ │ └── filter │ │ │ │ │ └── AddResponseIDHeaderFilter.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── bootstrap.yml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── gateway │ │ │ ├── GatewayControllerTest.java │ │ │ └── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ ├── CustomerType.java │ │ │ ├── Order.java │ │ │ ├── OrderStatus.java │ │ │ └── Product.java │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── order │ │ │ │ │ ├── OrderApplication.java │ │ │ │ │ ├── client │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ ├── CustomerClient.java │ │ │ │ │ └── ProductClient.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ ├── Order.java │ │ │ │ │ ├── OrderStatus.java │ │ │ │ │ └── Product.java │ │ │ │ │ └── repository │ │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ │ ├── bootstrap.yml │ │ │ │ └── logback-spring.xml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback-spring.xml └── sample-spring-cloud-zookeeper-master │ ├── account-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── account │ │ │ ├── AccountApplication.java │ │ │ ├── controller │ │ │ └── AccountController.java │ │ │ ├── model │ │ │ └── Account.java │ │ │ └── repository │ │ │ └── AccountRepository.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback-spring.xml │ ├── customer-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── customer │ │ │ ├── CustomerApplication.java │ │ │ ├── client │ │ │ └── AccountClient.java │ │ │ ├── controller │ │ │ └── CustomerController.java │ │ │ ├── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ └── CustomerType.java │ │ │ └── repository │ │ │ └── CustomerRepository.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── logback-spring.xml │ ├── gateway-service │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── fallback │ │ │ │ ├── AccountFallbackProvider.java │ │ │ │ └── response │ │ │ │ │ └── AccountFallbackResponse.java │ │ │ │ └── filter │ │ │ │ └── AddResponseIDHeaderFilter.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── bootstrap.yml │ │ └── test │ │ └── java │ │ └── pl │ │ └── piomin │ │ └── services │ │ └── gateway │ │ ├── GatewayControllerTest.java │ │ └── model │ │ ├── Account.java │ │ ├── Customer.java │ │ ├── CustomerType.java │ │ ├── Order.java │ │ ├── OrderStatus.java │ │ └── Product.java │ ├── order-service │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── order │ │ │ │ ├── OrderApplication.java │ │ │ │ ├── client │ │ │ │ ├── AccountClient.java │ │ │ │ ├── CustomerClient.java │ │ │ │ └── ProductClient.java │ │ │ │ ├── controller │ │ │ │ └── OrderController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ ├── CustomerType.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderStatus.java │ │ │ │ └── Product.java │ │ │ │ └── repository │ │ │ │ └── OrderRepository.java │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── logback-spring.xml │ │ └── test │ │ └── java │ │ └── pl │ │ └── piomin │ │ └── services │ │ └── order │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── pl │ │ └── piomin │ │ └── services │ │ └── product │ │ ├── ProductApplication.java │ │ ├── controller │ │ └── ProductController.java │ │ ├── model │ │ └── Product.java │ │ └── repository │ │ └── ProductRepository.java │ └── resources │ ├── bootstrap.yml │ └── logback-spring.xml ├── Chapter11 ├── sample-spring-cloud-messaging-advanced │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── client │ │ │ │ └── ProductClient.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── messaging │ │ │ │ └── OrderSender.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ └── Product.java │ │ │ │ ├── repository │ │ │ │ └── AccountRepository.java │ │ │ │ └── service │ │ │ │ └── AccountService.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-spring.xml │ ├── discovery-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── discovery │ │ │ │ └── DiscoveryApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── gateway-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── gateway │ │ │ │ └── GatewayApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── messaging-common │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── messaging │ │ │ ├── Order.java │ │ │ └── OrderStatus.java │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── order │ │ │ │ │ ├── OrderApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── messaging │ │ │ │ │ └── OrderSender.java │ │ │ │ │ ├── repository │ │ │ │ │ └── OrderRepository.java │ │ │ │ │ └── service │ │ │ │ │ └── OrderService.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── logback-spring.xml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── messaging │ │ │ └── OrderSender.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ ├── repository │ │ │ └── ProductRepository.java │ │ │ └── service │ │ │ └── ProductService.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-spring.xml ├── sample-spring-cloud-messaging-master │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── client │ │ │ │ └── ProductClient.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── messaging │ │ │ │ └── OrderSender.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ └── Product.java │ │ │ │ ├── repository │ │ │ │ └── AccountRepository.java │ │ │ │ └── service │ │ │ │ └── AccountService.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-spring.xml │ ├── discovery-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── discovery │ │ │ │ └── DiscoveryApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── gateway-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── gateway │ │ │ │ └── GatewayApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── messaging-common │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── messaging │ │ │ ├── Order.java │ │ │ └── OrderStatus.java │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── order │ │ │ │ │ ├── OrderApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── messaging │ │ │ │ │ └── OrderSender.java │ │ │ │ │ └── repository │ │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── logback-spring.xml │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-spring.xml └── sample-spring-cloud-messaging-publish-subscribe │ ├── account-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── account │ │ │ ├── AccountApplication.java │ │ │ ├── client │ │ │ └── ProductClient.java │ │ │ ├── controller │ │ │ └── AccountController.java │ │ │ ├── messaging │ │ │ └── OrderSender.java │ │ │ ├── model │ │ │ ├── Account.java │ │ │ └── Product.java │ │ │ ├── repository │ │ │ └── AccountRepository.java │ │ │ └── service │ │ │ └── AccountService.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-spring.xml │ ├── discovery-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── discovery │ │ │ └── DiscoveryApplication.java │ │ └── resources │ │ └── application.yml │ ├── gateway-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── gateway │ │ │ └── GatewayApplication.java │ │ └── resources │ │ └── application.yml │ ├── messaging-common │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── pl │ │ └── piomin │ │ └── services │ │ └── messaging │ │ ├── Order.java │ │ └── OrderStatus.java │ ├── order-service │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── order │ │ │ │ ├── OrderApplication.java │ │ │ │ ├── controller │ │ │ │ └── OrderController.java │ │ │ │ ├── messaging │ │ │ │ └── OrderSender.java │ │ │ │ ├── repository │ │ │ │ └── OrderRepository.java │ │ │ │ └── service │ │ │ │ └── OrderService.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-spring.xml │ │ └── test │ │ └── java │ │ └── pl │ │ └── piomin │ │ └── services │ │ └── order │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── pl │ │ └── piomin │ │ └── services │ │ └── product │ │ ├── ProductApplication.java │ │ ├── controller │ │ └── ProductController.java │ │ ├── messaging │ │ └── OrderSender.java │ │ ├── model │ │ └── Product.java │ │ ├── repository │ │ └── ProductRepository.java │ │ └── service │ │ └── ProductService.java │ └── resources │ ├── application.yml │ └── logback-spring.xml ├── Chapter12 ├── sample-spring-cloud-security-master │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ ├── account-key.p12 │ │ │ ├── account.jks │ │ │ └── application.yml │ ├── config-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── config │ │ │ │ └── ConfigApplication.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── discovery.jks │ ├── customer-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── client │ │ │ │ └── AccountClient.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── customer.jks │ ├── discovery-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── discovery │ │ │ │ └── DiscoveryApplication.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── discovery.jks │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── order │ │ │ │ │ ├── OrderApplication.java │ │ │ │ │ ├── client │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ ├── CustomerClient.java │ │ │ │ │ └── ProductClient.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ ├── Order.java │ │ │ │ │ ├── OrderStatus.java │ │ │ │ │ └── Product.java │ │ │ │ │ └── repository │ │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── order.jks │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ ├── application.yml │ │ └── product.jks ├── sample-spring-cloud-security-oauth2 │ ├── account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── WebSecurityConfig.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ ├── account-key.p12 │ │ │ ├── account.jks │ │ │ └── application.yml │ ├── auth-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── auth │ │ │ │ ├── AuthApplication.java │ │ │ │ ├── AuthServerConfig.java │ │ │ │ ├── ResourceServerConfig.java │ │ │ │ ├── SecurityConfig.java │ │ │ │ └── UserController.java │ │ │ └── resources │ │ │ └── application.yml │ ├── config-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── config │ │ │ │ └── ConfigApplication.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── discovery.jks │ ├── customer-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── client │ │ │ │ └── AccountClient.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── customer.jks │ ├── discovery-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── discovery │ │ │ │ └── DiscoveryApplication.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── discovery.jks │ ├── order-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── pl │ │ │ │ │ └── piomin │ │ │ │ │ └── services │ │ │ │ │ └── order │ │ │ │ │ ├── OrderApplication.java │ │ │ │ │ ├── client │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ ├── CustomerClient.java │ │ │ │ │ └── ProductClient.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── Customer.java │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ ├── Order.java │ │ │ │ │ ├── OrderStatus.java │ │ │ │ │ └── Product.java │ │ │ │ │ └── repository │ │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── order.jks │ │ │ └── test │ │ │ └── java │ │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ ├── application.yml │ │ └── product.jks └── sample-spring-cloud-security-secureconfig │ ├── account-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── account │ │ │ ├── AccountApplication.java │ │ │ ├── SSLConfigServiceBootstrapConfiguration.java │ │ │ ├── controller │ │ │ └── AccountController.java │ │ │ ├── model │ │ │ └── Account.java │ │ │ └── repository │ │ │ └── AccountRepository.java │ │ └── resources │ │ ├── META-INF │ │ └── spring.factories │ │ ├── account-key.p12 │ │ ├── account.jks │ │ └── bootstrap.yml │ ├── config-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── config │ │ │ └── ConfigApplication.java │ │ └── resources │ │ ├── bootstrap.yml │ │ ├── config │ │ └── account-service.yml │ │ └── discovery.jks │ ├── customer-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── customer │ │ │ ├── CustomerApplication.java │ │ │ ├── client │ │ │ └── AccountClient.java │ │ │ ├── controller │ │ │ └── CustomerController.java │ │ │ ├── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ └── CustomerType.java │ │ │ └── repository │ │ │ └── CustomerRepository.java │ │ └── resources │ │ ├── application.yml │ │ └── customer.jks │ ├── discovery-service │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── discovery │ │ │ └── DiscoveryApplication.java │ │ └── resources │ │ ├── application.yml │ │ └── discovery.jks │ ├── order-service │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── order │ │ │ │ ├── OrderApplication.java │ │ │ │ ├── client │ │ │ │ ├── AccountClient.java │ │ │ │ ├── CustomerClient.java │ │ │ │ └── ProductClient.java │ │ │ │ ├── controller │ │ │ │ └── OrderController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ ├── CustomerType.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderStatus.java │ │ │ │ └── Product.java │ │ │ │ └── repository │ │ │ │ └── OrderRepository.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── order.jks │ │ └── test │ │ └── java │ │ └── pl │ │ └── piomin │ │ └── services │ │ └── order │ │ └── OrderControllerTest.java │ ├── pom.xml │ └── product-service │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── pl │ │ └── piomin │ │ └── services │ │ └── product │ │ ├── ProductApplication.java │ │ ├── controller │ │ └── ProductController.java │ │ ├── model │ │ └── Product.java │ │ └── repository │ │ └── ProductRepository.java │ └── resources │ ├── application.yml │ └── product.jks ├── Chapter15 ├── sample-spring-cloud-heroku │ ├── sample-heroku-account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── account │ │ │ │ ├── AccountApplication.java │ │ │ │ ├── controller │ │ │ │ └── AccountController.java │ │ │ │ ├── model │ │ │ │ └── Account.java │ │ │ │ └── repository │ │ │ │ └── AccountRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── sample-heroku-customer-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── customer │ │ │ │ ├── CustomerApplication.java │ │ │ │ ├── client │ │ │ │ └── AccountClient.java │ │ │ │ ├── controller │ │ │ │ └── CustomerController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ └── CustomerType.java │ │ │ │ └── repository │ │ │ │ └── CustomerRepository.java │ │ │ └── resources │ │ │ └── application.yml │ ├── sample-heroku-discovery-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── discovery │ │ │ │ └── DiscoveryApplication.java │ │ │ └── resources │ │ │ └── application.yml │ ├── sample-heroku-order-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── pl │ │ │ │ └── piomin │ │ │ │ └── services │ │ │ │ └── order │ │ │ │ ├── OrderApplication.java │ │ │ │ ├── client │ │ │ │ ├── AccountClient.java │ │ │ │ ├── CustomerClient.java │ │ │ │ └── ProductClient.java │ │ │ │ ├── controller │ │ │ │ └── OrderController.java │ │ │ │ ├── model │ │ │ │ ├── Account.java │ │ │ │ ├── Customer.java │ │ │ │ ├── CustomerType.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderStatus.java │ │ │ │ └── Product.java │ │ │ │ └── repository │ │ │ │ └── OrderRepository.java │ │ │ └── resources │ │ │ └── application.yml │ └── sample-heroku-product-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── product │ │ │ ├── ProductApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── model │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── ProductRepository.java │ │ └── resources │ │ └── application.yml └── sample-spring-cloud-pcf │ ├── account-service │ ├── manifest.yml │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── account │ │ │ ├── AccountApplication.java │ │ │ ├── controller │ │ │ └── AccountController.java │ │ │ ├── model │ │ │ └── Account.java │ │ │ └── repository │ │ │ └── AccountRepository.java │ │ └── resources │ │ └── application.yml │ ├── customer-service │ ├── manifest.yml │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── customer │ │ │ ├── CustomerApplication.java │ │ │ ├── client │ │ │ └── AccountClient.java │ │ │ ├── controller │ │ │ └── CustomerController.java │ │ │ ├── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ └── CustomerType.java │ │ │ └── repository │ │ │ └── CustomerRepository.java │ │ └── resources │ │ └── application.yml │ ├── order-service │ ├── manifest.yml │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── pl │ │ │ └── piomin │ │ │ └── services │ │ │ └── order │ │ │ ├── OrderApplication.java │ │ │ ├── client │ │ │ ├── AccountClient.java │ │ │ ├── CustomerClient.java │ │ │ └── ProductClient.java │ │ │ ├── controller │ │ │ └── OrderController.java │ │ │ ├── model │ │ │ ├── Account.java │ │ │ ├── Customer.java │ │ │ ├── CustomerType.java │ │ │ ├── Order.java │ │ │ ├── OrderStatus.java │ │ │ └── Product.java │ │ │ └── repository │ │ │ └── OrderRepository.java │ │ └── resources │ │ └── bootstrap.yml │ ├── pom.xml │ └── product-service │ ├── manifest.yml │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── pl │ │ └── piomin │ │ └── services │ │ └── product │ │ ├── ProductApplication.java │ │ ├── controller │ │ └── ProductController.java │ │ ├── model │ │ └── Product.java │ │ └── repository │ │ └── ProductRepository.java │ └── resources │ └── application.yml ├── LICENSE └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /.project 2 | -------------------------------------------------------------------------------- /Chapter02/sample-spring-boot-web-master/src/main/java/pl/piomin/services/boot/model/Gender.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.boot.model; 2 | 3 | public enum Gender { 4 | 5 | MALE, FEMALE; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter02/sample-spring-boot-web-master/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${port:2222} 3 | 4 | spring: 5 | application: 6 | name: first-service 7 | 8 | logging: 9 | pattern: 10 | console: "%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n" 11 | file: "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" 12 | # level: 13 | # org.springframework.web: DEBUG 14 | file: app.log 15 | 16 | management: 17 | security: 18 | enabled: false -------------------------------------------------------------------------------- /Chapter02/sample-spring-boot-web-mongo/src/main/java/pl/piomin/services/boot/data/PersonRepository.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.boot.data; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.mongodb.repository.MongoRepository; 6 | 7 | import pl.piomin.services.boot.model.Person; 8 | 9 | public interface PersonRepository extends MongoRepository { 10 | 11 | public List findByLastName(String lastName); 12 | public List findByAgeGreaterThan(int age); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Chapter02/sample-spring-boot-web-mongo/src/main/java/pl/piomin/services/boot/model/Gender.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.boot.model; 2 | 3 | public enum Gender { 4 | 5 | MALE, FEMALE; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-cluster/sample-client-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-cluster/sample-client-service/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding//src/test/java=UTF-8 5 | encoding//src/test/resources=UTF-8 6 | encoding/=UTF-8 7 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-cluster/sample-client-service/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.8 6 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-cluster/sample-client-service/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-cluster/sample-client-service/src/main/java/pl/piomin/service/sample/client/ClientApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ClientApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(ClientApplication.class, args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-cluster/sample-client-service/src/main/java/pl/piomin/service/sample/client/controller/ClientController.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client.controller; 2 | 3 | import org.springframework.beans.factory.annotation.Value; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | @RestController 8 | public class ClientController { 9 | 10 | @Value("${spring.profiles}") 11 | private String zone; 12 | 13 | @GetMapping("/ping") 14 | public String ping() { 15 | return "I'm in zone " + zone; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-cluster/sample-discovery-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-cluster/sample-discovery-service/src/main/java/pl/piomin/service/sample/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.discovery; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(DiscoveryApplication.class, args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-cluster/sample-gateway-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-cluster/sample-gateway-service/src/main/java/pl/piomin/service/sample/gateway/GatewayApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.gateway; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | import org.springframework.cloud.netflix.zuul.EnableZuulProxy; 7 | 8 | @SpringBootApplication 9 | @EnableZuulProxy 10 | @EnableDiscoveryClient 11 | public class GatewayApplication { 12 | 13 | public static void main(String[] args) { 14 | SpringApplication.run(GatewayApplication.class, args); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-master/sample-client-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-master/sample-client-service/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding//src/test/java=UTF-8 5 | encoding//src/test/resources=UTF-8 6 | encoding/=UTF-8 7 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-master/sample-client-service/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.8 6 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-master/sample-client-service/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-master/sample-client-service/src/main/java/pl/piomin/service/sample/client/ClientApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ClientApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ClientApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-master/sample-client-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: client-service 4 | 5 | server: 6 | port: ${PORT:8081} 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: ${EUREKA_URL:http://localhost:8761/eureka/} 12 | 13 | endpoints: 14 | shutdown: 15 | enabled: true 16 | sensitive: false -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-master/sample-discovery-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-master/sample-discovery-service/src/main/java/pl/piomin/service/sample/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-master/sample-discovery-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | 5 | server: 6 | port: ${PORT:8761} 7 | 8 | eureka: 9 | client: 10 | registerWithEureka: false 11 | fetchRegistry: false -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-client-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-client-service/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding//src/test/java=UTF-8 5 | encoding//src/test/resources=UTF-8 6 | encoding/=UTF-8 7 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-client-service/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.8 6 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-client-service/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-client-service/src/main/java/pl/piomin/service/sample/client/ClientApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ClientApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(ClientApplication.class, args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-client-service/src/main/java/pl/piomin/service/sample/client/controller/ClientController.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client.controller; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | @RestController 7 | public class ClientController { 8 | 9 | @GetMapping("/ping") 10 | public String ping() { 11 | return "I'm alive"; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-client-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: client-service 4 | 5 | server: 6 | port: ${PORT:8081} 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: http://admin:admin123@localhost:8761/eureka/ -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-discovery-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-discovery-service/src/main/java/pl/piomin/service/sample/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-discovery-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | 5 | server: 6 | port: ${PORT:8761} 7 | 8 | eureka: 9 | client: 10 | registerWithEureka: false 11 | fetchRegistry: false 12 | serviceUrl: 13 | defaultZone: http://localhost:8761/eureka/ 14 | 15 | security: 16 | basic: 17 | enabled: true 18 | user: 19 | name: admin 20 | password: admin123 -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-gateway-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter04/sample-spring-cloud-netflix-security/sample-gateway-service/src/main/java/pl/piomin/service/sample/gateway/GatewayApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.gateway; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | import org.springframework.cloud.netflix.zuul.EnableZuulProxy; 7 | 8 | @SpringBootApplication 9 | @EnableZuulProxy 10 | @EnableDiscoveryClient 11 | public class GatewayApplication { 12 | 13 | public static void main(String[] args) { 14 | SpringApplication.run(GatewayApplication.class, args); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus-amqp/sample-client-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus-amqp/sample-client-service/src/main/java/pl/piomin/service/sample/client/ClientApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ClientApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ClientApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus-amqp/sample-client-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: client-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus-amqp/sample-config-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus-amqp/sample-discovery-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus-amqp/sample-discovery-service/src/main/java/pl/piomin/service/sample/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus-amqp/sample-discovery-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus/sample-client-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus/sample-client-service/src/main/java/pl/piomin/service/sample/client/ClientApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ClientApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ClientApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus/sample-client-service/src/main/java/pl/piomin/service/sample/client/controller/ClientController.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client.controller; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | import pl.piomin.service.sample.client.config.ClientConfiguration; 8 | 9 | @RestController 10 | public class ClientController { 11 | 12 | @Autowired 13 | private ClientConfiguration conf; 14 | 15 | @GetMapping("/ping") 16 | public String ping() { 17 | return conf.showProperties(); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus/sample-client-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: client-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus/sample-config-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus/sample-config-service/src/main/java/pl/piomin/service/sample/config/ConfigApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.config; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.config.server.EnableConfigServer; 6 | 7 | @SpringBootApplication 8 | @EnableConfigServer 9 | public class ConfigApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ConfigApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus/sample-config-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8889} 3 | 4 | spring: 5 | application: 6 | name: config-server 7 | cloud: 8 | config: 9 | server: 10 | git: 11 | uri: https://github.com/piomin/sample-spring-cloud-config-repo.git 12 | username: ${github.username} 13 | password: ${github.password} 14 | cloneOnStart: true -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus/sample-discovery-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus/sample-discovery-service/src/main/java/pl/piomin/service/sample/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-bus/sample-discovery-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-client-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.classpath 3 | /.project 4 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-client-service/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding//src/test/java=UTF-8 5 | encoding//src/test/resources=UTF-8 6 | encoding/=UTF-8 7 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-client-service/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.8 6 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-client-service/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-client-service/src/main/java/pl/piomin/service/sample/client/ClientApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ClientApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ClientApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-client-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: client-service 4 | cloud: 5 | config: 6 | discovery: 7 | enabled: true 8 | serviceId: config-server -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-config-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-config-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8889} 3 | 4 | spring: 5 | application: 6 | name: config-server 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-config-service/src/main/resources/config/client-service-zone1.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | metadataMap: 4 | zone: zone1 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8761/eureka/ 8 | server: 9 | port: ${PORT:8081} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-config-service/src/main/resources/config/client-service-zone2.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | metadataMap: 4 | zone: zone2 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8761/eureka/ 8 | server: 9 | port: ${PORT:8082} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-config-service/src/main/resources/config/client-service-zone3.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | metadataMap: 4 | zone: zone3 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8761/eureka/ 8 | server: 9 | port: ${PORT:8083} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-config-service/src/main/resources/config/discovery-service-zone1.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone1 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8762/eureka/,http://localhost:8763/eureka/ 9 | server: 10 | port: ${PORT:8761} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-config-service/src/main/resources/config/discovery-service-zone2.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone2 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8761/eureka/,http://localhost:8763/eureka/ 9 | server: 10 | port: ${PORT:8762} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-config-service/src/main/resources/config/discovery-service-zone3.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone3 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/ 9 | server: 10 | port: ${PORT:8763} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-discovery-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-discovery-service/src/main/java/pl/piomin/service/sample/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-discovery/sample-discovery-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | 5 | server: 6 | port: ${PORT:8761} 7 | 8 | eureka: 9 | client: 10 | registerWithEureka: false 11 | fetchRegistry: false -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-client-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.classpath 3 | /.project 4 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-client-service/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding//src/test/java=UTF-8 5 | encoding//src/test/resources=UTF-8 6 | encoding/=UTF-8 7 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-client-service/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.8 6 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-client-service/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-client-service/src/main/java/pl/piomin/service/sample/client/ClientApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ClientApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ClientApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-client-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: client-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 7 | profile: zone1 8 | label: discovery 9 | # label: e546dd6 // uncomment for rollback -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-config-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-config-service/src/main/java/pl/piomin/service/sample/config/ConfigApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.config; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.config.server.EnableConfigServer; 6 | 7 | @SpringBootApplication 8 | @EnableConfigServer 9 | public class ConfigApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ConfigApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-config-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8889} 3 | 4 | spring: 5 | application: 6 | name: config-server 7 | cloud: 8 | config: 9 | server: 10 | git: 11 | uri: https://github.com/piomin/sample-spring-cloud-config-repo.git 12 | username: ${github.username} 13 | password: ${github.password} 14 | cloneOnStart: true -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-discovery-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-discovery-service/src/main/java/pl/piomin/service/sample/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-git/sample-discovery-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-gitlab/sample-client-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-gitlab/sample-client-service/src/main/java/pl/piomin/service/sample/client/ClientApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ClientApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ClientApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-gitlab/sample-client-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: client-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-gitlab/sample-config-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-gitlab/sample-discovery-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-gitlab/sample-discovery-service/src/main/java/pl/piomin/service/sample/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-gitlab/sample-discovery-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-client-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.classpath 3 | /.project 4 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-client-service/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding//src/test/java=UTF-8 5 | encoding//src/test/resources=UTF-8 6 | encoding/=UTF-8 7 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-client-service/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.8 6 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-client-service/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-client-service/src/main/java/pl/piomin/service/sample/client/ClientApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ClientApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ClientApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-client-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: client-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-config-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-config-service/src/main/java/pl/piomin/service/sample/config/ConfigApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.config; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.config.server.EnableConfigServer; 6 | 7 | @SpringBootApplication 8 | @EnableConfigServer 9 | public class ConfigApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ConfigApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-config-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8889} 3 | 4 | spring: 5 | application: 6 | name: config-server 7 | # cloud: 8 | # config: 9 | # server: 10 | # native: 11 | # searchLocations: -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-config-service/src/main/resources/config/client-service-zone1.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | metadataMap: 4 | zone: zone1 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8761/eureka/ 8 | server: 9 | port: ${PORT:8081} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-config-service/src/main/resources/config/client-service-zone2.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | metadataMap: 4 | zone: zone2 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8762/eureka/ 8 | server: 9 | port: ${PORT:8082} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-config-service/src/main/resources/config/client-service-zone3.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | metadataMap: 4 | zone: zone3 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8763/eureka/ 8 | server: 9 | port: ${PORT:8083} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-config-service/src/main/resources/config/discovery-service-zone1.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone1 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8762/eureka/,http://localhost:8763/eureka/ 9 | server: 10 | port: ${PORT:8761} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-config-service/src/main/resources/config/discovery-service-zone2.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone2 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8761/eureka/,http://localhost:8763/eureka/ 9 | server: 10 | port: ${PORT:8762} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-config-service/src/main/resources/config/discovery-service-zone3.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone3 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/ 9 | server: 10 | port: ${PORT:8763} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-discovery-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-discovery-service/src/main/java/pl/piomin/service/sample/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-master/sample-discovery-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-discovery/client-service-zone1.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | metadataMap: 4 | zone: zone1 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8761/eureka/ 8 | server: 9 | port: ${PORT:8081} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-discovery/client-service-zone2.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | metadataMap: 4 | zone: zone2 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8761/eureka/ 8 | server: 9 | port: ${PORT:8082} 10 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-discovery/client-service-zone3.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | metadataMap: 4 | zone: zone3 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8761/eureka/ 8 | server: 9 | port: ${PORT:8084} 10 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-discovery/discovery-service-zone1.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone1 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8762/eureka/,http://localhost:8763/eureka/ 9 | server: 10 | port: ${PORT:8761} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-discovery/discovery-service-zone2.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone2 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8761/eureka/,http://localhost:8763/eureka/ 9 | server: 10 | port: ${PORT:8762} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-discovery/discovery-service-zone3.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone3 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/ 9 | server: 10 | port: ${PORT:8763} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-master/client-service-zone1.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | rabbitmq: 3 | host: 192.168.99.100 4 | port: 5672 5 | username: guest 6 | password: guest 7 | 8 | eureka: 9 | instance: 10 | metadataMap: 11 | zone: zone1 12 | client: 13 | serviceUrl: 14 | defaultZone: http://localhost:8761/eureka/ 15 | server: 16 | port: ${PORT:8081} 17 | 18 | management: 19 | security: 20 | enabled: false 21 | 22 | sample: 23 | string: 24 | property: Client Application 25 | int: 26 | property: 3 27 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-master/client-service-zone2.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | metadataMap: 4 | zone: zone2 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8762/eureka/ 8 | server: 9 | port: ${PORT:8082} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-master/client-service-zone3.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | metadataMap: 4 | zone: zone3 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8763/eureka/ 8 | server: 9 | port: ${PORT:8083} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-master/discovery-service-zone1.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone1 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8762/eureka/,http://localhost:8763/eureka/ 9 | server: 10 | port: ${PORT:8761} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-master/discovery-service-zone2.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone2 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8761/eureka/,http://localhost:8763/eureka/ 9 | server: 10 | port: ${PORT:8762} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-repo-master/discovery-service-zone3.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | hostname: localhost 4 | metadataMap: 5 | zone: zone3 6 | client: 7 | serviceUrl: 8 | defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/ 9 | server: 10 | port: ${PORT:8763} -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-client-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.classpath 3 | /.project 4 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-client-service/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding//src/test/java=UTF-8 5 | encoding//src/test/resources=UTF-8 6 | encoding/=UTF-8 7 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-client-service/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.8 6 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-client-service/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-client-service/src/main/java/pl/piomin/service/sample/client/ClientApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.client; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ClientApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ClientApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-client-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: client-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 7 | token: client -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-config-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-config-service/src/main/java/pl/piomin/service/sample/config/ConfigApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.config; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.config.server.EnableConfigServer; 6 | 7 | @SpringBootApplication 8 | @EnableConfigServer 9 | public class ConfigApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ConfigApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-config-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8889} 3 | 4 | spring: 5 | application: 6 | name: config-server 7 | cloud: 8 | config: 9 | server: 10 | vault: 11 | host: 192.168.99.100 12 | port: 8200 -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-discovery-service/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.settings/ 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-discovery-service/src/main/java/pl/piomin/service/sample/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.service.sample.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter05/sample-spring-cloud-config-vault/sample-discovery-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | cloud: 5 | config: 6 | uri: http://localhost:8889 -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign-inheritance/customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | 5 | import pl.piomin.services.account.contract.AccountService; 6 | 7 | @FeignClient(name = "account-service") 8 | public interface AccountClient extends AccountService { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign-inheritance/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign-inheritance/discovery-service/src/main/java/pl/piomin/services/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign-inheritance/discovery-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | 5 | server: 6 | port: ${PORT:8761} 7 | 8 | eureka: 9 | client: 10 | registerWithEureka: false 11 | fetchRegistry: false -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign-inheritance/order-service/src/main/java/pl/piomin/services/order/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | 5 | import pl.piomin.services.account.contract.AccountService; 6 | 7 | @FeignClient(name = "account-service") 8 | public interface AccountClient extends AccountService { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign-inheritance/order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | 5 | import pl.piomin.services.customer.contract.CustomerService; 6 | 7 | @FeignClient(name = "customer-service") 8 | public interface CustomerClient extends CustomerService { 9 | 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign-inheritance/order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | 5 | import pl.piomin.services.product.contract.ProductService; 6 | 7 | @FeignClient(name = "product-service") 8 | public interface ProductClient extends ProductService { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign-inheritance/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/account-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8u151-jdk-slim-stretch 2 | MAINTAINER Piotr Minkowski 3 | ENV SPRING_PROFILES_ACTIVE zone1 4 | ENV EUREKA_DEFAULT_ZONE http://localhost:8761/eureka/ 5 | ADD target/account-service-1.0-SNAPSHOT.jar app.jar 6 | ENTRYPOINT ["java", "-Xmx160m", "-jar", "-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}", "-Deureka.client.serviceUrl.defaultZone=${EUREKA_DEFAULT_ZONE}", "/app.jar"] 7 | EXPOSE 8091 -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/customer-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8u151-jdk-slim-stretch 2 | MAINTAINER Piotr Minkowski 3 | ENV SPRING_PROFILES_ACTIVE zone1 4 | ENV EUREKA_DEFAULT_ZONE http://localhost:8761/eureka/ 5 | ADD target/customer-service-1.0-SNAPSHOT.jar app.jar 6 | ENTRYPOINT ["java", "-Xmx160m", "-jar", "-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}", "-Deureka.client.serviceUrl.defaultZone=${EUREKA_DEFAULT_ZONE}", "/app.jar"] 7 | EXPOSE 8092 -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import pl.piomin.services.customer.model.Account; 10 | 11 | @FeignClient(name = "account-service") 12 | public interface AccountClient { 13 | 14 | @GetMapping("/customer/{customerId}") 15 | List findByCustomer(@PathVariable("customerId") Long customerId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/discovery-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8u151-jdk-slim-stretch 2 | MAINTAINER Piotr Minkowski 3 | ADD target/discovery-service-1.0-SNAPSHOT.jar app.jar 4 | ENTRYPOINT ["java", "-Xmx144m", "-jar", "/app.jar"] 5 | EXPOSE 8761 -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/discovery-service/src/main/java/pl/piomin/services/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/discovery-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | 5 | server: 6 | port: ${PORT:8761} 7 | 8 | eureka: 9 | client: 10 | registerWithEureka: false 11 | fetchRegistry: false 12 | 13 | logging: 14 | path: /tmp/discovery/logs -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/gateway-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8080} 3 | 4 | spring: 5 | application: 6 | name: gateway-service 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: http://localhost:8761/eureka/ 12 | registerWithEureka: false 13 | 14 | zuul: 15 | prefix: /api 16 | routes: 17 | account-service: 18 | path: /account/** 19 | customer-service: 20 | path: /customer/** 21 | order-service: 22 | path: /order/** 23 | product-service: 24 | path: /product/** 25 | 26 | management: 27 | security: 28 | enabled: false -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/gateway-service/src/test/java/pl/piomin/services/gateway/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/gateway-service/src/test/java/pl/piomin/services/gateway/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/gateway-service/src/test/java/pl/piomin/services/gateway/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/order-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8u151-jdk-slim-stretch 2 | MAINTAINER Piotr Minkowski 3 | ENV SPRING_PROFILES_ACTIVE zone1 4 | ENV EUREKA_DEFAULT_ZONE http://localhost:8761/eureka/ 5 | ADD target/order-service-1.0-SNAPSHOT.jar app.jar 6 | ENTRYPOINT ["java", "-Xmx160m", "-jar", "-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}", "-Deureka.client.serviceUrl.defaultZone=${EUREKA_DEFAULT_ZONE}", "/app.jar"] 7 | EXPOSE 8090 -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/order-service/src/main/java/pl/piomin/services/order/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.PathVariable; 5 | import org.springframework.web.bind.annotation.PutMapping; 6 | 7 | import pl.piomin.services.order.model.Account; 8 | 9 | @FeignClient(name = "account-service") 10 | public interface AccountClient { 11 | 12 | @PutMapping("/withdraw/{accountId}/{amount}") 13 | Account withdraw(@PathVariable("accountId") Long id, @PathVariable("amount") int amount); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.PathVariable; 6 | 7 | import pl.piomin.services.order.model.Customer; 8 | 9 | @FeignClient(name = "customer-service") 10 | public interface CustomerClient { 11 | 12 | @GetMapping("/withAccounts/{customerId}") 13 | Customer findByIdWithAccounts(@PathVariable("customerId") Long customerId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | 8 | import pl.piomin.services.order.model.Product; 9 | 10 | @FeignClient(name = "product-service") 11 | public interface ProductClient { 12 | 13 | @PostMapping("/ids") 14 | List findByIds(List ids); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/product-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8u151-jdk-slim-stretch 2 | MAINTAINER Piotr Minkowski 3 | ENV SPRING_PROFILES_ACTIVE zone1 4 | ENV EUREKA_DEFAULT_ZONE http://localhost:8761/eureka/ 5 | ADD target/product-service-1.0-SNAPSHOT.jar app.jar 6 | ENTRYPOINT ["java", "-Xmx160m", "-jar", "-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}", "-Deureka.client.serviceUrl.defaultZone=${EUREKA_DEFAULT_ZONE}", "/app.jar"] 7 | EXPOSE 8093 -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/zipkin-service/src/main/java/pl/piomin/services/zipkin/ZipkinApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.zipkin; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | import zipkin.server.EnableZipkinServer; 8 | 9 | @SpringBootApplication 10 | @EnableZipkinServer 11 | @EnableDiscoveryClient 12 | public class ZipkinApplication { 13 | 14 | public static void main(String[] args) { 15 | new SpringApplicationBuilder(ZipkinApplication.class).web(true).run(args); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-feign/zipkin-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: zipkin-service 4 | 5 | server: 6 | port: ${PORT:9411} -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-master/account-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8091 3 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-master/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-master/customer-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8092 3 | 4 | account-service: 5 | ribbon: 6 | eureka: 7 | enabled: false 8 | listOfServers: localhost:8091 9 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-master/gateway-service/src/main/java/pl/piomin/services/gateway/GatewayApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.zuul.EnableZuulProxy; 6 | 7 | @SpringBootApplication 8 | @EnableZuulProxy 9 | public class GatewayApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(GatewayApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-master/gateway-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8080} 3 | 4 | zuul: 5 | ignoredServices: '*' 6 | routes: 7 | account: 8 | path: /account/** 9 | url: http://localhost:8091 10 | customer: 11 | path: /customer/** 12 | url: http://localhost:8092 13 | order: 14 | path: /order/** 15 | url: http://localhost:8090 16 | product: 17 | path: /product/** 18 | url: http://localhost:8093 -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-master/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-master/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-master/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-master/order-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8090 3 | 4 | account-service: 5 | ribbon: 6 | eureka: 7 | enabled: false 8 | listOfServers: localhost:8091 9 | customer-service: 10 | ribbon: 11 | eureka: 12 | enabled: false 13 | listOfServers: localhost:8092 14 | product-service: 15 | ribbon: 16 | eureka: 17 | enabled: false 18 | listOfServers: localhost:8093 19 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-master/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8093 3 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/account-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: account-service 4 | 5 | server: 6 | port: ${PORT:8091} 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: ${EUREKA_URL:http://localhost:8761/eureka/} -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/customer-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: customer-service 4 | 5 | server: 6 | port: ${PORT:8092} 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: ${EUREKA_URL:http://localhost:8761/eureka/} -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/discovery-service/src/main/java/pl/piomin/services/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/discovery-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | 5 | server: 6 | port: ${PORT:8761} 7 | 8 | eureka: 9 | client: 10 | registerWithEureka: false 11 | fetchRegistry: false -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/order-service/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding//src/test/java=UTF-8 5 | encoding//src/test/resources=UTF-8 6 | encoding/=UTF-8 7 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/order-service/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.8 6 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/order-service/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/order-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: order-service 4 | 5 | server: 6 | port: ${PORT:8090} 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: ${EUREKA_URL:http://localhost:8761/eureka/} -------------------------------------------------------------------------------- /Chapter06/sample-spring-cloud-comm-ribbon-discovery/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: product-service 4 | 5 | server: 6 | port: ${PORT:8093} 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: ${EUREKA_URL:http://localhost:8761/eureka/} -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-hystrix/account-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8091 3 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-hystrix/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-hystrix/customer-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8092 3 | 4 | account-service: 5 | ribbon: 6 | eureka: 7 | enabled: false 8 | listOfServers: localhost:8091, localhost:9091 9 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-hystrix/customer-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8092 3 | 4 | account-service: 5 | ribbon: 6 | eureka: 7 | enabled: false 8 | listOfServers: account-service:8091, account-service:9091 9 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-hystrix/hystrix-dashboard/src/main/java/pl/piomin/services/hystrix/HystrixApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.hystrix; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard; 6 | 7 | @SpringBootApplication 8 | @EnableHystrixDashboard 9 | public class HystrixApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(HystrixApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-hystrix/hystrix-dashboard/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9000 -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-hystrix/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-hystrix/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-hystrix/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-hystrix/order-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8090 3 | 4 | account-service: 5 | ribbon: 6 | eureka: 7 | enabled: false 8 | listOfServers: localhost:8091,localhost:9091 9 | customer-service: 10 | ribbon: 11 | eureka: 12 | enabled: false 13 | listOfServers: localhost:8092 14 | product-service: 15 | ribbon: 16 | eureka: 17 | enabled: false 18 | listOfServers: localhost:8093,localhost:9093 19 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-hystrix/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8093 3 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/account-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: account-service 4 | 5 | server: 6 | port: ${PORT:8091} 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: ${EUREKA_URL:http://localhost:8761/eureka/} -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/customer-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: customer-service 4 | 5 | server: 6 | port: ${PORT:8092} 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: ${EUREKA_URL:http://localhost:8761/eureka/} 12 | 13 | management: 14 | security: 15 | enabled: false 16 | port: 8092 -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/customer-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8092 3 | 4 | account-service: 5 | ribbon: 6 | eureka: 7 | enabled: false 8 | listOfServers: account-service:8091, account-service:9091 9 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/discovery-service/src/main/java/pl/piomin/services/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/discovery-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | 5 | server: 6 | port: ${PORT:8761} 7 | 8 | eureka: 9 | client: 10 | registerWithEureka: false 11 | fetchRegistry: false -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/hystrix-dashboard/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: hystrix-dashboard 4 | 5 | server: 6 | port: ${PORT:9000} 7 | 8 | turbine: 9 | # aggregator: 10 | # clusterConfig: ORDER-SERVICE,CUSTOMER-SERVICE 11 | appConfig: order-service,customer-service 12 | clusterNameExpression: "'default'" -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/order-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: order-service 4 | 5 | server: 6 | port: ${PORT:8090} 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: ${EUREKA_URL:http://localhost:8761/eureka/} 12 | 13 | management: 14 | security: 15 | enabled: false 16 | port: 8090 -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-turbine/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: product-service 4 | 5 | server: 6 | port: ${PORT:8093} 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: ${EUREKA_URL:http://localhost:8761/eureka/} -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-weighted-lb/account-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8091 3 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-weighted-lb/customer-service/src/main/java/pl/piomin/services/customer/config/RibbonConfiguration.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | import com.netflix.loadbalancer.IRule; 7 | import com.netflix.loadbalancer.WeightedResponseTimeRule; 8 | 9 | @Configuration 10 | public class RibbonConfiguration { 11 | 12 | @Bean 13 | public IRule ribbonRule() { 14 | return new WeightedResponseTimeRule(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-weighted-lb/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-weighted-lb/customer-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8092 3 | 4 | account-service: 5 | ribbon: 6 | eureka: 7 | enabled: false 8 | listOfServers: account-service:8091, account-service:9091 9 | # NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule 10 | 11 | 12 | logging: 13 | level: 14 | com.netflix: DEBUG 15 | org.springframework.cloud: DEBUG -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-weighted-lb/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-weighted-lb/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-weighted-lb/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-weighted-lb/order-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8090 3 | 4 | account-service: 5 | ribbon: 6 | eureka: 7 | enabled: false 8 | listOfServers: localhost:8091 9 | customer-service: 10 | ribbon: 11 | eureka: 12 | enabled: false 13 | listOfServers: localhost:8092 14 | product-service: 15 | ribbon: 16 | eureka: 17 | enabled: false 18 | listOfServers: localhost:8093 19 | -------------------------------------------------------------------------------- /Chapter07/sample-spring-cloud-comm-weighted-lb/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8093 3 | -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-comm-master/account-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8091 3 | -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-comm-master/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-comm-master/customer-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8092 3 | 4 | account-service: 5 | ribbon: 6 | eureka: 7 | enabled: false 8 | listOfServers: localhost:8091 9 | -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-comm-master/gateway-service/src/main/java/pl/piomin/services/gateway/GatewayApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.zuul.EnableZuulProxy; 6 | 7 | @SpringBootApplication 8 | @EnableZuulProxy 9 | public class GatewayApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(GatewayApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-comm-master/gateway-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8080} 3 | 4 | zuul: 5 | ignoredServices: '*' 6 | routes: 7 | account: 8 | path: /account/** 9 | url: http://localhost:8091 10 | customer: 11 | path: /customer/** 12 | url: http://localhost:8092 13 | order: 14 | path: /order/** 15 | url: http://localhost:8090 16 | product: 17 | path: /product/** 18 | url: http://localhost:8093 -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-comm-master/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-comm-master/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-comm-master/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-comm-master/order-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8090 3 | 4 | account-service: 5 | ribbon: 6 | eureka: 7 | enabled: false 8 | listOfServers: localhost:8091 9 | customer-service: 10 | ribbon: 11 | eureka: 12 | enabled: false 13 | listOfServers: localhost:8092 14 | product-service: 15 | ribbon: 16 | eureka: 17 | enabled: false 18 | listOfServers: localhost:8093 19 | -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-comm-master/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8093 3 | -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-gateway-discovery/src/main/java/pl/piomin/services/gateway/GatewayApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class GatewayApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(GatewayApplication.class, args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter08/sample-spring-cloud-gateway-master/src/main/java/pl/piomin/services/gateway/GatewayApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class GatewayApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(GatewayApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/account-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: account-service 4 | cloud: 5 | consul: 6 | host: 192.168.99.100 7 | port: 8500 -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import pl.piomin.services.customer.model.Account; 10 | 11 | @FeignClient(name = "account-service") 12 | public interface AccountClient { 13 | 14 | @GetMapping("/customer/{customerId}") 15 | List findByCustomer(@PathVariable("customerId") Long customerId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/customer-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: customer-service 4 | cloud: 5 | consul: 6 | host: 192.168.99.100 7 | port: 8500 -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/gateway-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: gateway-service 4 | 5 | zuul: 6 | prefix: /api 7 | routes: 8 | account-service: 9 | path: /account/** 10 | customer-service: 11 | path: /customer/** 12 | order-service: 13 | path: /order/** 14 | product-service: 15 | path: /product/** 16 | 17 | logging: 18 | level: 19 | com.netflix: DEBUG 20 | 21 | management: 22 | security: 23 | enabled: false -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/gateway-service/src/test/java/pl/piomin/services/gateway/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/gateway-service/src/test/java/pl/piomin/services/gateway/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/order-service/src/main/java/pl/piomin/services/order/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.PathVariable; 5 | import org.springframework.web.bind.annotation.PutMapping; 6 | 7 | import pl.piomin.services.order.model.Account; 8 | 9 | @FeignClient(name = "account-service") 10 | public interface AccountClient { 11 | 12 | @PutMapping("/withdraw/{accountId}/{amount}") 13 | Account withdraw(@PathVariable("accountId") Long id, @PathVariable("amount") int amount); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.PathVariable; 6 | 7 | import pl.piomin.services.order.model.Customer; 8 | 9 | @FeignClient(name = "customer-service") 10 | public interface CustomerClient { 11 | 12 | @GetMapping("/withAccounts/{customerId}") 13 | Customer findByIdWithAccounts(@PathVariable("customerId") Long customerId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | 8 | import pl.piomin.services.order.model.Product; 9 | 10 | @FeignClient(name = "product-service") 11 | public interface ProductClient { 12 | 13 | @PostMapping("/ids") 14 | List findByIds(List ids); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/order-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: order-service 4 | cloud: 5 | consul: 6 | host: 192.168.99.100 7 | port: 8500 -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-config/product-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: product-service 4 | cloud: 5 | consul: 6 | host: 192.168.99.100 7 | port: 8500 -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/account-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: account-service 4 | cloud: 5 | consul: 6 | host: 192.168.99.100 7 | port: 8500 8 | 9 | logging: 10 | level: 11 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 12 | 13 | --- 14 | spring: 15 | profiles: zone1 16 | server: 17 | port: ${PORT:8091} 18 | 19 | --- 20 | spring: 21 | profiles: zone2 22 | server: 23 | port: ${PORT:9091} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/account-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: account-service 4 | cloud: 5 | consul: 6 | host: 192.168.99.100 7 | port: 8500 8 | 9 | logging: 10 | level: 11 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 12 | 13 | --- 14 | spring: 15 | profiles: zone1 16 | cloud: 17 | consul: 18 | discovery: 19 | instanceZone: zone1 20 | server: 21 | port: ${PORT:8091} 22 | 23 | --- 24 | spring: 25 | profiles: zone2 26 | cloud: 27 | consul: 28 | discovery: 29 | instanceZone: zone2 30 | server: 31 | port: ${PORT:9091} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import pl.piomin.services.customer.model.Account; 10 | 11 | @FeignClient(name = "account-service") 12 | public interface AccountClient { 13 | 14 | @GetMapping("/customer/{customerId}") 15 | List findByCustomer(@PathVariable("customerId") Long customerId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/customer-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: customer-service 4 | cloud: 5 | consul: 6 | host: 192.168.99.100 7 | port: 8500 8 | 9 | logging: 10 | level: 11 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 12 | 13 | --- 14 | spring: 15 | profiles: zone1 16 | server: 17 | port: ${PORT:8092} 18 | 19 | --- 20 | spring: 21 | profiles: zone2 22 | server: 23 | port: ${PORT:9092} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/customer-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: customer-service 4 | cloud: 5 | consul: 6 | host: 192.168.99.100 7 | port: 8500 8 | 9 | logging: 10 | level: 11 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 12 | 13 | --- 14 | spring: 15 | profiles: zone1 16 | cloud: 17 | consul: 18 | discovery: 19 | instanceZone: zone1 20 | server: 21 | port: ${PORT:8092} 22 | 23 | --- 24 | spring: 25 | profiles: zone2 26 | cloud: 27 | consul: 28 | discovery: 29 | instanceZone: zone2 30 | server: 31 | port: ${PORT:9092} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/gateway-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: gateway-service 4 | 5 | zuul: 6 | prefix: /api 7 | routes: 8 | account-service: 9 | path: /account/** 10 | customer-service: 11 | path: /customer/** 12 | order-service: 13 | path: /order/** 14 | product-service: 15 | path: /product/** 16 | 17 | logging: 18 | level: 19 | com.netflix: DEBUG 20 | 21 | management: 22 | security: 23 | enabled: false -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/gateway-service/src/test/java/pl/piomin/services/gateway/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/gateway-service/src/test/java/pl/piomin/services/gateway/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/order-service/src/main/java/pl/piomin/services/order/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.PathVariable; 5 | import org.springframework.web.bind.annotation.PutMapping; 6 | 7 | import pl.piomin.services.order.model.Account; 8 | 9 | @FeignClient(name = "account-service") 10 | public interface AccountClient { 11 | 12 | @PutMapping("/withdraw/{accountId}/{amount}") 13 | Account withdraw(@PathVariable("accountId") Long id, @PathVariable("amount") int amount); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.PathVariable; 6 | 7 | import pl.piomin.services.order.model.Customer; 8 | 9 | @FeignClient(name = "customer-service") 10 | public interface CustomerClient { 11 | 12 | @GetMapping("/withAccounts/{customerId}") 13 | Customer findByIdWithAccounts(@PathVariable("customerId") Long customerId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | 8 | import pl.piomin.services.order.model.Product; 9 | 10 | @FeignClient(name = "product-service") 11 | public interface ProductClient { 12 | 13 | @PostMapping("/ids") 14 | List findByIds(List ids); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/order-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: order-service 4 | 5 | logging: 6 | file: logs/order.log 7 | level: 8 | # com.netflix: DEBUG 9 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 10 | pattern: 11 | # console: "%d{HH:mm:ss.SSS} %-5level %msg%n" 12 | file: "%d{HH:mm:ss.SSS} %-5level %msg%n" 13 | 14 | --- 15 | spring: 16 | profiles: zone1 17 | server: 18 | port: ${PORT:8090} 19 | 20 | --- 21 | spring: 22 | profiles: zone2 23 | server: 24 | port: ${PORT:9090} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/order-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: order-service 4 | cloud: 5 | consul: 6 | host: 192.168.99.100 7 | port: 8500 8 | 9 | logging: 10 | level: 11 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 12 | 13 | --- 14 | spring: 15 | profiles: zone1 16 | cloud: 17 | consul: 18 | discovery: 19 | instanceZone: zone1 20 | server: 21 | port: ${PORT:8090} 22 | 23 | --- 24 | spring: 25 | profiles: zone2 26 | cloud: 27 | consul: 28 | discovery: 29 | instanceZone: zone2 30 | server: 31 | port: ${PORT:9090} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: product-service 4 | 5 | logging: 6 | level: 7 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 8 | 9 | --- 10 | spring: 11 | profiles: zone1 12 | server: 13 | port: ${PORT:8093} 14 | 15 | --- 16 | spring: 17 | profiles: zone2 18 | server: 19 | port: ${PORT:9093} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-consul-master/product-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: product-service 4 | cloud: 5 | consul: 6 | host: 192.168.99.100 7 | port: 8500 8 | 9 | logging: 10 | level: 11 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 12 | 13 | --- 14 | spring: 15 | profiles: zone1 16 | cloud: 17 | consul: 18 | discovery: 19 | instanceZone: zone1 20 | server: 21 | port: ${PORT:8092} 22 | 23 | --- 24 | spring: 25 | profiles: zone2 26 | cloud: 27 | consul: 28 | discovery: 29 | instanceZone: zone2 30 | server: 31 | port: ${PORT:9092} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/account-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: account-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import pl.piomin.services.customer.model.Account; 10 | 11 | @FeignClient(name = "account-service") 12 | public interface AccountClient { 13 | 14 | @GetMapping("/customer/{customerId}") 15 | List findByCustomer(@PathVariable("customerId") Long customerId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/customer-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: customer-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/gateway-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: gateway-service 4 | 5 | zuul: 6 | prefix: /api 7 | routes: 8 | account-service: 9 | path: /account/** 10 | customer-service: 11 | path: /customer/** 12 | order-service: 13 | path: /order/** 14 | product-service: 15 | path: /product/** 16 | 17 | logging: 18 | level: 19 | com.netflix: DEBUG 20 | 21 | management: 22 | security: 23 | enabled: false -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/gateway-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: gateway-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 7 | 8 | logging: 9 | level: 10 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 11 | 12 | --- 13 | spring: 14 | profiles: zone1 15 | server: 16 | port: ${PORT:8080} 17 | 18 | --- 19 | spring: 20 | profiles: zone2 21 | server: 22 | port: ${PORT:9080} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/gateway-service/src/test/java/pl/piomin/services/gateway/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/gateway-service/src/test/java/pl/piomin/services/gateway/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/order-service/src/main/java/pl/piomin/services/order/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.PathVariable; 5 | import org.springframework.web.bind.annotation.PutMapping; 6 | 7 | import pl.piomin.services.order.model.Account; 8 | 9 | @FeignClient(name = "account-service") 10 | public interface AccountClient { 11 | 12 | @PutMapping("/withdraw/{accountId}/{amount}") 13 | Account withdraw(@PathVariable("accountId") Long id, @PathVariable("amount") int amount); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.PathVariable; 6 | 7 | import pl.piomin.services.order.model.Customer; 8 | 9 | @FeignClient(name = "customer-service") 10 | public interface CustomerClient { 11 | 12 | @GetMapping("/withAccounts/{customerId}") 13 | Customer findByIdWithAccounts(@PathVariable("customerId") Long customerId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | 8 | import pl.piomin.services.order.model.Product; 9 | 10 | @FeignClient(name = "product-service") 11 | public interface ProductClient { 12 | 13 | @PostMapping("/ids") 14 | List findByIds(List ids); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/order-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: order-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-config/product-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: product-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/account-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: account-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 7 | 8 | logging: 9 | level: 10 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 11 | 12 | --- 13 | spring: 14 | profiles: zone1 15 | cloud: 16 | consul: 17 | discovery: 18 | instanceZone: zone1 19 | server: 20 | port: ${PORT:8091} 21 | 22 | --- 23 | spring: 24 | profiles: zone2 25 | cloud: 26 | consul: 27 | discovery: 28 | instanceZone: zone2 29 | server: 30 | port: ${PORT:9091} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import pl.piomin.services.customer.model.Account; 10 | 11 | @FeignClient(name = "account-service") 12 | public interface AccountClient { 13 | 14 | @GetMapping("/customer/{customerId}") 15 | List findByCustomer(@PathVariable("customerId") Long customerId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/customer-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: customer-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 7 | 8 | logging: 9 | level: 10 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 11 | 12 | --- 13 | spring: 14 | profiles: zone1 15 | server: 16 | port: ${PORT:8092} 17 | 18 | --- 19 | spring: 20 | profiles: zone2 21 | server: 22 | port: ${PORT:9092} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/gateway-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: gateway-service 4 | 5 | zuul: 6 | prefix: /api 7 | routes: 8 | account-service: 9 | path: /account/** 10 | customer-service: 11 | path: /customer/** 12 | order-service: 13 | path: /order/** 14 | product-service: 15 | path: /product/** 16 | 17 | logging: 18 | level: 19 | com.netflix: DEBUG 20 | 21 | management: 22 | security: 23 | enabled: false -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/gateway-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: gateway-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 7 | 8 | logging: 9 | level: 10 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 11 | 12 | --- 13 | spring: 14 | profiles: zone1 15 | server: 16 | port: ${PORT:8080} 17 | 18 | --- 19 | spring: 20 | profiles: zone2 21 | server: 22 | port: ${PORT:9080} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/gateway-service/src/test/java/pl/piomin/services/gateway/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/gateway-service/src/test/java/pl/piomin/services/gateway/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/order-service/src/main/java/pl/piomin/services/order/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.PathVariable; 5 | import org.springframework.web.bind.annotation.PutMapping; 6 | 7 | import pl.piomin.services.order.model.Account; 8 | 9 | @FeignClient(name = "account") 10 | public interface AccountClient { 11 | 12 | @PutMapping("/withdraw/{accountId}/{amount}") 13 | Account withdraw(@PathVariable("accountId") Long id, @PathVariable("amount") int amount); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.PathVariable; 6 | 7 | import pl.piomin.services.order.model.Customer; 8 | 9 | @FeignClient(name = "customer") 10 | public interface CustomerClient { 11 | 12 | @GetMapping("/withAccounts/{customerId}") 13 | Customer findByIdWithAccounts(@PathVariable("customerId") Long customerId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | 8 | import pl.piomin.services.order.model.Product; 9 | 10 | @FeignClient(name = "product") 11 | public interface ProductClient { 12 | 13 | @PostMapping("/ids") 14 | List findByIds(List ids); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-dependencies/product-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: product-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 7 | 8 | logging: 9 | level: 10 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 11 | 12 | --- 13 | spring: 14 | profiles: zone1 15 | server: 16 | port: ${PORT:8093} 17 | 18 | --- 19 | spring: 20 | profiles: zone2 21 | server: 22 | port: ${PORT:9093} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/account-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: account-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 7 | 8 | logging: 9 | level: 10 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 11 | 12 | --- 13 | spring: 14 | profiles: zone1 15 | cloud: 16 | consul: 17 | discovery: 18 | instanceZone: zone1 19 | server: 20 | port: ${PORT:8091} 21 | 22 | --- 23 | spring: 24 | profiles: zone2 25 | cloud: 26 | consul: 27 | discovery: 28 | instanceZone: zone2 29 | server: 30 | port: ${PORT:9091} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import pl.piomin.services.customer.model.Account; 10 | 11 | @FeignClient(name = "account-service") 12 | public interface AccountClient { 13 | 14 | @GetMapping("/customer/{customerId}") 15 | List findByCustomer(@PathVariable("customerId") Long customerId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/customer-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: customer-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 7 | 8 | logging: 9 | level: 10 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 11 | 12 | --- 13 | spring: 14 | profiles: zone1 15 | server: 16 | port: ${PORT:8092} 17 | 18 | --- 19 | spring: 20 | profiles: zone2 21 | server: 22 | port: ${PORT:9092} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/gateway-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: gateway-service 4 | 5 | zuul: 6 | prefix: /api 7 | routes: 8 | account-service: 9 | path: /account/** 10 | customer-service: 11 | path: /customer/** 12 | order-service: 13 | path: /order/** 14 | product-service: 15 | path: /product/** 16 | 17 | logging: 18 | level: 19 | com.netflix: DEBUG 20 | 21 | management: 22 | security: 23 | enabled: false -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/gateway-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: gateway-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 7 | 8 | logging: 9 | level: 10 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 11 | 12 | --- 13 | spring: 14 | profiles: zone1 15 | server: 16 | port: ${PORT:8080} 17 | 18 | --- 19 | spring: 20 | profiles: zone2 21 | server: 22 | port: ${PORT:9080} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/gateway-service/src/test/java/pl/piomin/services/gateway/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/gateway-service/src/test/java/pl/piomin/services/gateway/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.gateway.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/order-service/src/main/java/pl/piomin/services/order/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.PathVariable; 5 | import org.springframework.web.bind.annotation.PutMapping; 6 | 7 | import pl.piomin.services.order.model.Account; 8 | 9 | @FeignClient(name = "account-service") 10 | public interface AccountClient { 11 | 12 | @PutMapping("/withdraw/{accountId}/{amount}") 13 | Account withdraw(@PathVariable("accountId") Long id, @PathVariable("amount") int amount); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.PathVariable; 6 | 7 | import pl.piomin.services.order.model.Customer; 8 | 9 | @FeignClient(name = "customer-service") 10 | public interface CustomerClient { 11 | 12 | @GetMapping("/withAccounts/{customerId}") 13 | Customer findByIdWithAccounts(@PathVariable("customerId") Long customerId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | 8 | import pl.piomin.services.order.model.Product; 9 | 10 | @FeignClient(name = "product-service") 11 | public interface ProductClient { 12 | 13 | @PostMapping("/ids") 14 | List findByIds(List ids); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/order-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: order-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 7 | 8 | logging: 9 | level: 10 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 11 | 12 | --- 13 | spring: 14 | profiles: zone1 15 | server: 16 | port: ${PORT:8090} 17 | 18 | --- 19 | spring: 20 | profiles: zone2 21 | server: 22 | port: ${PORT:9090} -------------------------------------------------------------------------------- /Chapter10/sample-spring-cloud-zookeeper-master/product-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: product-service 4 | cloud: 5 | zookeeper: 6 | connect-string: 192.168.99.100:2181 7 | 8 | logging: 9 | level: 10 | org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG 11 | 12 | --- 13 | spring: 14 | profiles: zone1 15 | server: 16 | port: ${PORT:8093} 17 | 18 | --- 19 | spring: 20 | profiles: zone2 21 | server: 22 | port: ${PORT:9093} -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-advanced/account-service/src/main/java/pl/piomin/services/account/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.account.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | import org.springframework.web.bind.annotation.RequestBody; 8 | 9 | import pl.piomin.services.account.model.Product; 10 | 11 | @FeignClient(name = "product-service") 12 | public interface ProductClient { 13 | 14 | @PostMapping("/ids") 15 | List findByIds(@RequestBody List ids); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-advanced/discovery-service/src/main/java/pl/piomin/services/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-advanced/discovery-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | 5 | server: 6 | port: ${PORT:8761} 7 | 8 | eureka: 9 | client: 10 | registerWithEureka: false 11 | fetchRegistry: false -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-advanced/gateway-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8080} 3 | 4 | spring: 5 | application: 6 | name: gateway-service 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: http://localhost:8761/eureka/ 12 | registerWithEureka: false 13 | 14 | zuul: 15 | prefix: /api 16 | routes: 17 | order-service: 18 | path: /order/** 19 | 20 | management: 21 | security: 22 | enabled: false -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-advanced/messaging-common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | 4 | pl.piomin.services 5 | sample-spring-cloud-messaging 6 | 1.0-SNAPSHOT 7 | 8 | messaging-common 9 | -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-advanced/messaging-common/src/main/java/pl/piomin/services/messaging/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.messaging; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-master/account-service/src/main/java/pl/piomin/services/account/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.account.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | import org.springframework.web.bind.annotation.RequestBody; 8 | 9 | import pl.piomin.services.account.model.Product; 10 | 11 | @FeignClient(name = "product-service") 12 | public interface ProductClient { 13 | 14 | @PostMapping("/ids") 15 | List findByIds(@RequestBody List ids); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-master/discovery-service/src/main/java/pl/piomin/services/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-master/discovery-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | 5 | server: 6 | port: ${PORT:8761} 7 | 8 | eureka: 9 | client: 10 | registerWithEureka: false 11 | fetchRegistry: false -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-master/gateway-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8080} 3 | 4 | spring: 5 | application: 6 | name: gateway-service 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: http://localhost:8761/eureka/ 12 | registerWithEureka: false 13 | 14 | zuul: 15 | prefix: /api 16 | routes: 17 | order-service: 18 | path: /order/** 19 | 20 | management: 21 | security: 22 | enabled: false -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-master/messaging-common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | 4 | pl.piomin.services 5 | sample-spring-cloud-messaging 6 | 1.0-SNAPSHOT 7 | 8 | messaging-common 9 | -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-master/messaging-common/src/main/java/pl/piomin/services/messaging/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.messaging; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-master/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: product-service 4 | 5 | server: 6 | port: ${PORT:8093} 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-publish-subscribe/account-service/src/main/java/pl/piomin/services/account/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.account.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | import org.springframework.web.bind.annotation.RequestBody; 8 | 9 | import pl.piomin.services.account.model.Product; 10 | 11 | @FeignClient(name = "product-service") 12 | public interface ProductClient { 13 | 14 | @PostMapping("/ids") 15 | List findByIds(@RequestBody List ids); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-publish-subscribe/discovery-service/src/main/java/pl/piomin/services/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-publish-subscribe/discovery-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | 5 | server: 6 | port: ${PORT:8761} 7 | 8 | eureka: 9 | client: 10 | registerWithEureka: false 11 | fetchRegistry: false -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-publish-subscribe/gateway-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8080} 3 | 4 | spring: 5 | application: 6 | name: gateway-service 7 | 8 | eureka: 9 | client: 10 | serviceUrl: 11 | defaultZone: http://localhost:8761/eureka/ 12 | registerWithEureka: false 13 | 14 | zuul: 15 | prefix: /api 16 | routes: 17 | order-service: 18 | path: /order/** 19 | 20 | management: 21 | security: 22 | enabled: false -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-publish-subscribe/messaging-common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | 4 | pl.piomin.services 5 | sample-spring-cloud-messaging 6 | 1.0-SNAPSHOT 7 | 8 | messaging-common 9 | -------------------------------------------------------------------------------- /Chapter11/sample-spring-cloud-messaging-publish-subscribe/messaging-common/src/main/java/pl/piomin/services/messaging/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.messaging; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/account-service/src/main/resources/account-key.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-master/account-service/src/main/resources/account-key.p12 -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/account-service/src/main/resources/account.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-master/account-service/src/main/resources/account.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/config-service/src/main/java/pl/piomin/services/config/ConfigApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.config; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.config.server.EnableConfigServer; 6 | 7 | @SpringBootApplication 8 | @EnableConfigServer 9 | public class ConfigApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ConfigApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/config-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8888} 3 | 4 | spring: 5 | application: 6 | name: config-service 7 | cloud: 8 | config: 9 | server: 10 | encrypt: 11 | enabled: false 12 | 13 | encrypt: 14 | keyStore: 15 | location: classpath:/discovery.jks 16 | password: 123456 17 | alias: discovery 18 | secret: 123456 -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/config-service/src/main/resources/discovery.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-master/config-service/src/main/resources/discovery.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import pl.piomin.services.customer.model.Account; 10 | 11 | @FeignClient(name = "account-service") 12 | public interface AccountClient { 13 | 14 | @GetMapping("/customer/{customerId}") 15 | List findByCustomer(@PathVariable("customerId") Long customerId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/customer-service/src/main/resources/customer.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-master/customer-service/src/main/resources/customer.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/discovery-service/src/main/java/pl/piomin/services/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/discovery-service/src/main/resources/discovery.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-master/discovery-service/src/main/resources/discovery.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/order-service/src/main/java/pl/piomin/services/order/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.PathVariable; 5 | import org.springframework.web.bind.annotation.PutMapping; 6 | 7 | import pl.piomin.services.order.model.Account; 8 | 9 | @FeignClient(name = "account-service") 10 | public interface AccountClient { 11 | 12 | @PutMapping("/withdraw/{accountId}/{amount}") 13 | Account withdraw(@PathVariable("accountId") Long id, @PathVariable("amount") int amount); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.PathVariable; 6 | 7 | import pl.piomin.services.order.model.Customer; 8 | 9 | @FeignClient(name = "customer-service") 10 | public interface CustomerClient { 11 | 12 | @GetMapping("/withAccounts/{customerId}") 13 | Customer findByIdWithAccounts(@PathVariable("customerId") Long customerId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | 8 | import pl.piomin.services.order.model.Product; 9 | 10 | @FeignClient(name = "product-service") 11 | public interface ProductClient { 12 | 13 | @PostMapping("/ids") 14 | List findByIds(List ids); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/order-service/src/main/resources/order.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-master/order-service/src/main/resources/order.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-master/product-service/src/main/resources/product.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-master/product-service/src/main/resources/product.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/account-service/src/main/resources/account-key.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-oauth2/account-service/src/main/resources/account-key.p12 -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/account-service/src/main/resources/account.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-oauth2/account-service/src/main/resources/account.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/auth-service/src/main/java/pl/piomin/services/auth/AuthApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.auth; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; 6 | 7 | @SpringBootApplication 8 | @EnableResourceServer 9 | //@EnableAuthorizationServer 10 | public class AuthApplication { 11 | 12 | public static void main(String[] args) { 13 | new SpringApplicationBuilder(AuthApplication.class).web(true).run(args); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/auth-service/src/main/java/pl/piomin/services/auth/UserController.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.auth; 2 | 3 | import java.security.Principal; 4 | 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | import org.springframework.web.bind.annotation.RestController; 7 | 8 | @RestController 9 | public class UserController { 10 | 11 | @RequestMapping("/user") 12 | public Principal user(Principal user) { 13 | return user; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/auth-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: auth-service 4 | 5 | server: 6 | port: ${PORT:9999} 7 | 8 | security: 9 | basic: 10 | enabled: false 11 | # user: 12 | # name: root 13 | # password: password 14 | # oauth2: 15 | # client: 16 | # client-id: piotr.minkowski 17 | # client-secret: 123456 18 | # scope: read 19 | 20 | logging: 21 | level: 22 | org.springframework.security: debug 23 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/config-service/src/main/java/pl/piomin/services/config/ConfigApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.config; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.config.server.EnableConfigServer; 6 | 7 | @SpringBootApplication 8 | @EnableConfigServer 9 | public class ConfigApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ConfigApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/config-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${PORT:8888} 3 | 4 | spring: 5 | application: 6 | name: config-service 7 | cloud: 8 | config: 9 | server: 10 | encrypt: 11 | enabled: false 12 | 13 | encrypt: 14 | keyStore: 15 | location: classpath:/discovery.jks 16 | password: 123456 17 | alias: discovery 18 | secret: 123456 -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/config-service/src/main/resources/discovery.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-oauth2/config-service/src/main/resources/discovery.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import pl.piomin.services.customer.model.Account; 10 | 11 | @FeignClient(name = "account-service") 12 | public interface AccountClient { 13 | 14 | @GetMapping("/customer/{customerId}") 15 | List findByCustomer(@PathVariable("customerId") Long customerId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/customer-service/src/main/resources/customer.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-oauth2/customer-service/src/main/resources/customer.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/discovery-service/src/main/java/pl/piomin/services/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/discovery-service/src/main/resources/discovery.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-oauth2/discovery-service/src/main/resources/discovery.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/order-service/src/main/java/pl/piomin/services/order/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.PathVariable; 5 | import org.springframework.web.bind.annotation.PutMapping; 6 | 7 | import pl.piomin.services.order.model.Account; 8 | 9 | @FeignClient(name = "account-service") 10 | public interface AccountClient { 11 | 12 | @PutMapping("/withdraw/{accountId}/{amount}") 13 | Account withdraw(@PathVariable("accountId") Long id, @PathVariable("amount") int amount); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.PathVariable; 6 | 7 | import pl.piomin.services.order.model.Customer; 8 | 9 | @FeignClient(name = "customer-service") 10 | public interface CustomerClient { 11 | 12 | @GetMapping("/withAccounts/{customerId}") 13 | Customer findByIdWithAccounts(@PathVariable("customerId") Long customerId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | 8 | import pl.piomin.services.order.model.Product; 9 | 10 | @FeignClient(name = "product-service") 11 | public interface ProductClient { 12 | 13 | @PostMapping("/ids") 14 | List findByIds(List ids); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/order-service/src/main/java/pl/piomin/services/order/model/Product.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public class Product { 4 | 5 | private Long id; 6 | private String name; 7 | private int price; 8 | 9 | public Long getId() { 10 | return id; 11 | } 12 | 13 | public void setId(Long id) { 14 | this.id = id; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public int getPrice() { 26 | return price; 27 | } 28 | 29 | public void setPrice(int price) { 30 | this.price = price; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/order-service/src/main/resources/order.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-oauth2/order-service/src/main/resources/order.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-oauth2/product-service/src/main/resources/product.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-oauth2/product-service/src/main/resources/product.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/account-service/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration = com.my.config.client.CustomConfigServiceBootstrapConfiguration -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/account-service/src/main/resources/account-key.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-secureconfig/account-service/src/main/resources/account-key.p12 -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/account-service/src/main/resources/account.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-secureconfig/account-service/src/main/resources/account.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/account-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: account-service 4 | cloud: 5 | config: 6 | failFast: true 7 | uri: https://localhost:8888 -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/config-service/src/main/java/pl/piomin/services/config/ConfigApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.config; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.config.server.EnableConfigServer; 6 | 7 | @SpringBootApplication 8 | @EnableConfigServer 9 | public class ConfigApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ConfigApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/config-service/src/main/resources/discovery.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-secureconfig/config-service/src/main/resources/discovery.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import pl.piomin.services.customer.model.Account; 10 | 11 | @FeignClient(name = "account-service") 12 | public interface AccountClient { 13 | 14 | @GetMapping("/customer/{customerId}") 15 | List findByCustomer(@PathVariable("customerId") Long customerId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/customer-service/src/main/resources/customer.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-secureconfig/customer-service/src/main/resources/customer.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/discovery-service/src/main/java/pl/piomin/services/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/discovery-service/src/main/resources/discovery.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-secureconfig/discovery-service/src/main/resources/discovery.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/order-service/src/main/java/pl/piomin/services/order/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.PathVariable; 5 | import org.springframework.web.bind.annotation.PutMapping; 6 | 7 | import pl.piomin.services.order.model.Account; 8 | 9 | @FeignClient(name = "account-service") 10 | public interface AccountClient { 11 | 12 | @PutMapping("/withdraw/{accountId}/{amount}") 13 | Account withdraw(@PathVariable("accountId") Long id, @PathVariable("amount") int amount); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.PathVariable; 6 | 7 | import pl.piomin.services.order.model.Customer; 8 | 9 | @FeignClient(name = "customer-service") 10 | public interface CustomerClient { 11 | 12 | @GetMapping("/withAccounts/{customerId}") 13 | Customer findByIdWithAccounts(@PathVariable("customerId") Long customerId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | 8 | import pl.piomin.services.order.model.Product; 9 | 10 | @FeignClient(name = "product-service") 11 | public interface ProductClient { 12 | 13 | @PostMapping("/ids") 14 | List findByIds(List ids); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/order-service/src/main/resources/order.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-secureconfig/order-service/src/main/resources/order.jks -------------------------------------------------------------------------------- /Chapter12/sample-spring-cloud-security-secureconfig/product-service/src/main/resources/product.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Mastering-Spring-Cloud/4a9954b42c709f2604433ac215517272706911b3/Chapter12/sample-spring-cloud-security-secureconfig/product-service/src/main/resources/product.jks -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-account-service/src/main/java/pl/piomin/services/account/repository/AccountRepository.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.account.repository; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.mongodb.repository.MongoRepository; 6 | 7 | import pl.piomin.services.account.model.Account; 8 | 9 | public interface AccountRepository extends MongoRepository { 10 | 11 | List findByIdIn(List ids); 12 | List findByCustomerId(String customerId); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-account-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: account-service 4 | data: 5 | mongodb: 6 | uri: ${MONGODB_URI} 7 | 8 | eureka: 9 | instance: 10 | hostname: ${HEROKU_APP_NAME}.herokuapp.com 11 | nonSecurePort: 80 12 | client: 13 | serviceUrl: 14 | defaultZone: http://piomin-discovery-service.herokuapp.com/eureka -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import pl.piomin.services.customer.model.Account; 10 | 11 | @FeignClient(name = "account-service") 12 | public interface AccountClient { 13 | 14 | @GetMapping("account/customer/{customerId}") 15 | List findByCustomer(@PathVariable("customerId") String customerId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-customer-service/src/main/java/pl/piomin/services/customer/repository/CustomerRepository.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.repository; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.mongodb.repository.MongoRepository; 6 | 7 | import pl.piomin.services.customer.model.Customer; 8 | 9 | public interface CustomerRepository extends MongoRepository { 10 | 11 | public List findByIdIn(List ids); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-customer-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: customer-service 4 | data: 5 | mongodb: 6 | uri: ${MONGODB_URI} 7 | 8 | eureka: 9 | instance: 10 | hostname: ${HEROKU_APP_NAME}.herokuapp.com 11 | nonSecurePort: 80 12 | client: 13 | fetchRegistry: true 14 | serviceUrl: 15 | defaultZone: http://piomin-discovery-service.herokuapp.com/eureka -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-discovery-service/src/main/java/pl/piomin/services/discovery/DiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.discovery; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class DiscoveryApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-discovery-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: discovery-service 4 | 5 | eureka: 6 | instance: 7 | hostname: piomin-discovery-service.herokuapp.com 8 | client: 9 | registerWithEureka: false 10 | fetchRegistry: false -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.PathVariable; 6 | 7 | import pl.piomin.services.order.model.Customer; 8 | 9 | @FeignClient(name = "customer-service") 10 | public interface CustomerClient { 11 | 12 | @GetMapping("/customer/withAccounts/{customerId}") 13 | Customer findByIdWithAccounts(@PathVariable("customerId") String customerId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | 8 | import pl.piomin.services.order.model.Product; 9 | 10 | @FeignClient(name = "product-service") 11 | public interface ProductClient { 12 | 13 | @PostMapping("/product/ids") 14 | List findByIds(List ids); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-order-service/src/main/java/pl/piomin/services/order/repository/OrderRepository.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.repository; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.mongodb.repository.MongoRepository; 6 | 7 | import pl.piomin.services.order.model.Order; 8 | 9 | public interface OrderRepository extends MongoRepository { 10 | 11 | List findByIdIn(List ids); 12 | int countByCustomerId(String customerId); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-order-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: order-service 4 | data: 5 | mongodb: 6 | uri: ${MONGODB_URI} 7 | 8 | eureka: 9 | instance: 10 | hostname: ${HEROKU_APP_NAME}.herokuapp.com 11 | nonSecurePort: 80 12 | client: 13 | fetchRegistry: true 14 | serviceUrl: 15 | defaultZone: http://piomin-discovery-service.herokuapp.com/eureka -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-product-service/src/main/java/pl/piomin/services/product/repository/ProductRepository.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.product.repository; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.mongodb.repository.MongoRepository; 6 | 7 | import pl.piomin.services.product.model.Product; 8 | 9 | public interface ProductRepository extends MongoRepository { 10 | 11 | List findByIdIn(List ids); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-heroku/sample-heroku-product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: product-service 4 | data: 5 | mongodb: 6 | uri: ${MONGODB_URI} 7 | 8 | eureka: 9 | instance: 10 | hostname: ${HEROKU_APP_NAME}.herokuapp.com 11 | nonSecurePort: 80 12 | client: 13 | serviceUrl: 14 | defaultZone: http://piomin-discovery-service.herokuapp.com/eureka -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/account-service/manifest.yml: -------------------------------------------------------------------------------- 1 | --- 2 | applications: 3 | - name: account-service 4 | memory: 300M 5 | random-route: true 6 | path: target/account-service-1.0-SNAPSHOT.jar -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/account-service/src/main/java/pl/piomin/services/account/AccountApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.account; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class AccountApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(AccountApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/account-service/src/main/java/pl/piomin/services/account/repository/AccountRepository.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.account.repository; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.mongodb.repository.MongoRepository; 6 | 7 | import pl.piomin.services.account.model.Account; 8 | 9 | public interface AccountRepository extends MongoRepository { 10 | 11 | List findByIdIn(List ids); 12 | List findByCustomerId(String customerId); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/account-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: account-service 4 | data: 5 | mongodb: 6 | uri: ${vcap.services.mlab.credentials.uri} 7 | security: 8 | user: 9 | name: piomin 10 | password: 123456 11 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/customer-service/manifest.yml: -------------------------------------------------------------------------------- 1 | --- 2 | applications: 3 | - name: customer-service 4 | memory: 350M 5 | random-route: true 6 | path: target/customer-service-1.0-SNAPSHOT.jar -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/customer-service/src/main/java/pl/piomin/services/customer/client/AccountClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import pl.piomin.services.customer.model.Account; 10 | 11 | @FeignClient(name = "account-service") 12 | public interface AccountClient { 13 | 14 | @GetMapping("/customer/{customerId}") 15 | List findByCustomer(@PathVariable("customerId") String customerId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/customer-service/src/main/java/pl/piomin/services/customer/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/customer-service/src/main/java/pl/piomin/services/customer/repository/CustomerRepository.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.customer.repository; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.mongodb.repository.MongoRepository; 6 | 7 | import pl.piomin.services.customer.model.Customer; 8 | 9 | public interface CustomerRepository extends MongoRepository { 10 | 11 | public List findByIdIn(List ids); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/customer-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: customer-service 4 | data: 5 | mongodb: 6 | uri: ${vcap.services.mlab.credentials.uri} 7 | security: 8 | user: 9 | name: piomin 10 | password: 123456 -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/order-service/manifest.yml: -------------------------------------------------------------------------------- 1 | --- 2 | applications: 3 | - name: order-service 4 | memory: 350M 5 | random-route: true 6 | path: target/order-service-1.0-SNAPSHOT.jar -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/order-service/src/main/java/pl/piomin/services/order/OrderApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | import org.springframework.cloud.netflix.feign.EnableFeignClients; 7 | 8 | @SpringBootApplication 9 | @EnableDiscoveryClient 10 | @EnableFeignClients 11 | public class OrderApplication { 12 | 13 | public static void main(String[] args) { 14 | new SpringApplicationBuilder(OrderApplication.class).web(true).run(args); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/order-service/src/main/java/pl/piomin/services/order/client/CustomerClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import org.springframework.cloud.netflix.feign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.PathVariable; 6 | 7 | import pl.piomin.services.order.model.Customer; 8 | 9 | @FeignClient(name = "customer-service") 10 | public interface CustomerClient { 11 | 12 | @GetMapping("/withAccounts/{customerId}") 13 | Customer findByIdWithAccounts(@PathVariable("customerId") String customerId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/order-service/src/main/java/pl/piomin/services/order/client/ProductClient.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.client; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.cloud.netflix.feign.FeignClient; 6 | import org.springframework.web.bind.annotation.PostMapping; 7 | 8 | import pl.piomin.services.order.model.Product; 9 | 10 | @FeignClient(name = "product-service") 11 | public interface ProductClient { 12 | 13 | @PostMapping("/ids") 14 | List findByIds(List ids); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/order-service/src/main/java/pl/piomin/services/order/model/CustomerType.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum CustomerType { 4 | 5 | NEW, REGULAR, VIP; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/order-service/src/main/java/pl/piomin/services/order/model/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.model; 2 | 3 | public enum OrderStatus { 4 | 5 | NEW, PROCESSING, ACCEPTED, DONE, REJECTED; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/order-service/src/main/java/pl/piomin/services/order/repository/OrderRepository.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.order.repository; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.mongodb.repository.MongoRepository; 6 | 7 | import pl.piomin.services.order.model.Order; 8 | 9 | public interface OrderRepository extends MongoRepository { 10 | 11 | List findByIdIn(List ids); 12 | int countByCustomerId(String customerId); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/order-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: order-service -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/product-service/manifest.yml: -------------------------------------------------------------------------------- 1 | --- 2 | applications: 3 | - name: product-service 4 | memory: 300M 5 | random-route: true 6 | path: target/product-service-1.0-SNAPSHOT.jar -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/product-service/src/main/java/pl/piomin/services/product/ProductApplication.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.product; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | import org.springframework.boot.builder.SpringApplicationBuilder; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ProductApplication { 10 | 11 | public static void main(String[] args) { 12 | new SpringApplicationBuilder(ProductApplication.class).web(true).run(args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/product-service/src/main/java/pl/piomin/services/product/repository/ProductRepository.java: -------------------------------------------------------------------------------- 1 | package pl.piomin.services.product.repository; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.mongodb.repository.MongoRepository; 6 | 7 | import pl.piomin.services.product.model.Product; 8 | 9 | public interface ProductRepository extends MongoRepository { 10 | 11 | List findByIdIn(List ids); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Chapter15/sample-spring-cloud-pcf/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: product-service 4 | data: 5 | mongodb: 6 | uri: ${vcap.services.mlab.credentials.uri} 7 | security: 8 | user: 9 | name: piomin 10 | password: 123456 --------------------------------------------------------------------------------