├── Chapter03 ├── .gitignore ├── 1-spring-init │ ├── .gitignore │ ├── create-projects.bash │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── microservices │ │ ├── product-composite-service │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── settings.gradle │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── se │ │ │ │ │ │ └── magnus │ │ │ │ │ │ └── microservices │ │ │ │ │ │ └── composite │ │ │ │ │ │ └── product │ │ │ │ │ │ └── ProductCompositeServiceApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ └── ProductCompositeServiceApplicationTests.java │ │ ├── product-service │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── settings.gradle │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── se │ │ │ │ │ │ └── magnus │ │ │ │ │ │ └── microservices │ │ │ │ │ │ └── core │ │ │ │ │ │ └── product │ │ │ │ │ │ └── ProductServiceApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ └── ProductServiceApplicationTests.java │ │ ├── recommendation-service │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── settings.gradle │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── se │ │ │ │ │ │ └── magnus │ │ │ │ │ │ └── microservices │ │ │ │ │ │ └── core │ │ │ │ │ │ └── recommendation │ │ │ │ │ │ └── RecommendationServiceApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ └── review-service │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── settings.gradle │ │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── review │ │ │ │ │ └── ReviewServiceApplication.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ └── ReviewServiceApplicationTests.java │ └── settings.gradle └── 2-basic-rest-services │ ├── .gitignore │ ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ └── exceptions │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java │ ├── create-projects.bash │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ └── ProductCompositeServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── composite │ │ │ └── product │ │ │ └── ProductCompositeServiceApplicationTests.java │ ├── product-service │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── product │ │ │ └── ProductServiceApplicationTests.java │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── recommendation │ │ │ └── RecommendationServiceApplicationTests.java │ └── review-service │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ └── services │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── se │ │ └── magnus │ │ └── microservices │ │ └── core │ │ └── review │ │ └── ReviewServiceApplicationTests.java │ ├── settings.gradle │ ├── test-em-all.bash │ └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ └── main │ └── java │ └── se │ └── magnus │ └── util │ └── http │ ├── GlobalControllerExceptionHandler.java │ ├── HttpErrorInfo.java │ └── ServiceUtil.java ├── Chapter04 ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ └── exceptions │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── create-projects.bash ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ └── ProductCompositeServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── composite │ │ │ └── product │ │ │ └── ProductCompositeServiceApplicationTests.java │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── product │ │ │ └── ProductServiceApplicationTests.java │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── recommendation │ │ │ └── RecommendationServiceApplicationTests.java │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ └── services │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── se │ │ └── magnus │ │ └── microservices │ │ └── core │ │ └── review │ │ └── ReviewServiceApplicationTests.java ├── settings.gradle ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ └── main │ └── java │ └── se │ └── magnus │ └── util │ └── http │ ├── GlobalControllerExceptionHandler.java │ ├── HttpErrorInfo.java │ └── ServiceUtil.java ├── Chapter05 ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── create-projects.bash ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ └── ProductCompositeServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── composite │ │ │ └── product │ │ │ └── ProductCompositeServiceApplicationTests.java │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── product │ │ │ └── ProductServiceApplicationTests.java │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── recommendation │ │ │ └── RecommendationServiceApplicationTests.java │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ └── services │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── se │ │ └── magnus │ │ └── microservices │ │ └── core │ │ └── review │ │ └── ReviewServiceApplicationTests.java ├── settings.gradle ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ └── main │ └── java │ └── se │ └── magnus │ └── util │ └── http │ ├── GlobalControllerExceptionHandler.java │ ├── HttpErrorInfo.java │ └── ServiceUtil.java ├── Chapter06 ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── create-projects.bash ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ └── ProductCompositeServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── composite │ │ │ └── product │ │ │ └── ProductCompositeServiceApplicationTests.java │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── ProductEntity.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductMapper.java │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── RecommendationEntity.java │ │ │ │ │ └── RecommendationRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── RecommendationMapper.java │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ReviewEntity.java │ │ │ │ └── ReviewRepository.java │ │ │ │ └── services │ │ │ │ ├── ReviewMapper.java │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ └── logback-test.xml ├── settings.gradle ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ └── main │ └── java │ └── se │ └── magnus │ └── util │ └── http │ ├── GlobalControllerExceptionHandler.java │ ├── HttpErrorInfo.java │ └── ServiceUtil.java ├── Chapter07 ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ └── ProductCompositeServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── composite │ │ │ └── product │ │ │ ├── IsSameEvent.java │ │ │ ├── IsSameEventTests.java │ │ │ ├── MessagingTests.java │ │ │ └── ProductCompositeServiceApplicationTests.java │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── ProductEntity.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── ProductMapper.java │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── RecommendationEntity.java │ │ │ │ │ └── RecommendationRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── RecommendationMapper.java │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ReviewEntity.java │ │ │ │ └── ReviewRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ReviewMapper.java │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ └── logback-test.xml ├── settings.gradle ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter09 ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ └── ProductCompositeServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── composite │ │ │ └── product │ │ │ ├── IsSameEvent.java │ │ │ ├── IsSameEventTests.java │ │ │ ├── MessagingTests.java │ │ │ └── ProductCompositeServiceApplicationTests.java │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── ProductEntity.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── ProductMapper.java │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── RecommendationEntity.java │ │ │ │ │ └── RecommendationRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── RecommendationMapper.java │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ReviewEntity.java │ │ │ │ └── ReviewRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ReviewMapper.java │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ └── eureka-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── eurekaserver │ │ │ │ └── EurekaServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── se │ │ └── magnus │ │ └── springcloud │ │ └── eurekaserver │ │ └── EurekaServerApplicationTests.java ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter10 ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ └── ProductCompositeServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── composite │ │ │ └── product │ │ │ ├── IsSameEvent.java │ │ │ ├── IsSameEventTests.java │ │ │ ├── MessagingTests.java │ │ │ └── ProductCompositeServiceApplicationTests.java │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── ProductEntity.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── ProductMapper.java │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── RecommendationEntity.java │ │ │ │ │ └── RecommendationRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── RecommendationMapper.java │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ReviewEntity.java │ │ │ │ └── ReviewRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ReviewMapper.java │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── eureka-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── springcloud │ │ │ │ │ └── eurekaserver │ │ │ │ │ └── EurekaServerApplication.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── eurekaserver │ │ │ └── EurekaServerApplicationTests.java │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ └── HealthCheckConfiguration.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── se │ │ └── magnus │ │ └── springcloud │ │ └── gateway │ │ └── GatewayApplicationTests.java ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter11 ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── auth0 │ ├── .gitignore │ ├── env.bash │ ├── reset-tenant.bash │ └── setup-tenant.bash ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── OpenApiConfig.java │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ └── ProductCompositeServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── composite │ │ │ └── product │ │ │ ├── IsSameEvent.java │ │ │ ├── IsSameEventTests.java │ │ │ ├── MessagingTests.java │ │ │ ├── ProductCompositeServiceApplicationTests.java │ │ │ └── TestSecurityConfig.java │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── ProductEntity.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── ProductMapper.java │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── RecommendationEntity.java │ │ │ │ │ └── RecommendationRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── RecommendationMapper.java │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ReviewEntity.java │ │ │ │ └── ReviewRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ReviewMapper.java │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── authorization-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── sample │ │ │ │ │ ├── OAuth2AuthorizationServerApplication.java │ │ │ │ │ ├── config │ │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ │ └── DefaultSecurityConfig.java │ │ │ │ │ └── jose │ │ │ │ │ ├── Jwks.java │ │ │ │ │ └── KeyGeneratorUtils.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── sample │ │ │ └── OAuth2AuthorizationServerApplicationTests.java │ ├── eureka-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── springcloud │ │ │ │ │ └── eurekaserver │ │ │ │ │ ├── EurekaServerApplication.java │ │ │ │ │ └── SecurityConfig.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── eurekaserver │ │ │ └── EurekaServerApplicationTests.java │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── keystore │ │ │ └── edge.p12 │ │ └── test │ │ └── java │ │ └── se │ │ └── magnus │ │ └── springcloud │ │ └── gateway │ │ └── GatewayApplicationTests.java ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter12 ├── .env ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── auth0 │ ├── .gitignore │ ├── env.bash │ ├── reset-tenant.bash │ └── setup-tenant.bash ├── config-repo │ ├── application.yml │ ├── auth-server.yml │ ├── eureka-server.yml │ ├── gateway.yml │ ├── product-composite.yml │ ├── product.yml │ ├── recommendation.yml │ └── review.yml ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── OpenApiConfig.java │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ └── ProductCompositeServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── IsSameEvent.java │ │ │ │ ├── IsSameEventTests.java │ │ │ │ ├── MessagingTests.java │ │ │ │ ├── ProductCompositeServiceApplicationTests.java │ │ │ │ └── TestSecurityConfig.java │ │ │ └── resources │ │ │ └── application.yml │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── ProductEntity.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── ProductMapper.java │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── RecommendationEntity.java │ │ │ │ │ └── RecommendationRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── RecommendationMapper.java │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ReviewEntity.java │ │ │ │ └── ReviewRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ReviewMapper.java │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── authorization-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── sample │ │ │ │ │ ├── OAuth2AuthorizationServerApplication.java │ │ │ │ │ ├── config │ │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ │ └── DefaultSecurityConfig.java │ │ │ │ │ └── jose │ │ │ │ │ ├── Jwks.java │ │ │ │ │ └── KeyGeneratorUtils.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── sample │ │ │ │ └── OAuth2AuthorizationServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ ├── config-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── springcloud │ │ │ │ │ └── configserver │ │ │ │ │ ├── ConfigServerApplication.java │ │ │ │ │ └── SecurityConfig.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── configserver │ │ │ └── ConfigServerApplicationTests.java │ ├── eureka-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── springcloud │ │ │ │ │ └── eurekaserver │ │ │ │ │ ├── EurekaServerApplication.java │ │ │ │ │ └── SecurityConfig.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── eurekaserver │ │ │ │ └── EurekaServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── keystore │ │ │ └── edge.p12 │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── gateway │ │ │ └── GatewayApplicationTests.java │ │ └── resources │ │ └── application.yml ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter13 ├── .env ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── auth0 │ ├── .gitignore │ ├── env.bash │ ├── reset-tenant.bash │ └── setup-tenant.bash ├── config-repo │ ├── application.yml │ ├── auth-server.yml │ ├── eureka-server.yml │ ├── gateway.yml │ ├── product-composite.yml │ ├── product.yml │ ├── recommendation.yml │ └── review.yml ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── OpenApiConfig.java │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ └── ProductCompositeServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── IsSameEvent.java │ │ │ │ ├── IsSameEventTests.java │ │ │ │ ├── MessagingTests.java │ │ │ │ ├── ProductCompositeServiceApplicationTests.java │ │ │ │ └── TestSecurityConfig.java │ │ │ └── resources │ │ │ └── application.yml │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── ProductEntity.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── ProductMapper.java │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── RecommendationEntity.java │ │ │ │ │ └── RecommendationRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── RecommendationMapper.java │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ReviewEntity.java │ │ │ │ └── ReviewRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ReviewMapper.java │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── authorization-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── sample │ │ │ │ │ ├── OAuth2AuthorizationServerApplication.java │ │ │ │ │ ├── config │ │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ │ └── DefaultSecurityConfig.java │ │ │ │ │ └── jose │ │ │ │ │ ├── Jwks.java │ │ │ │ │ └── KeyGeneratorUtils.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── sample │ │ │ │ └── OAuth2AuthorizationServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ ├── config-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── springcloud │ │ │ │ │ └── configserver │ │ │ │ │ ├── ConfigServerApplication.java │ │ │ │ │ └── SecurityConfig.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── configserver │ │ │ └── ConfigServerApplicationTests.java │ ├── eureka-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── springcloud │ │ │ │ │ └── eurekaserver │ │ │ │ │ ├── EurekaServerApplication.java │ │ │ │ │ └── SecurityConfig.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── eurekaserver │ │ │ │ └── EurekaServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── keystore │ │ │ └── edge.p12 │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── gateway │ │ │ └── GatewayApplicationTests.java │ │ └── resources │ │ └── application.yml ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter14 ├── .env ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── auth0 │ ├── .gitignore │ ├── env.bash │ ├── reset-tenant.bash │ └── setup-tenant.bash ├── config-repo │ ├── application.yml │ ├── auth-server.yml │ ├── eureka-server.yml │ ├── gateway.yml │ ├── product-composite.yml │ ├── product.yml │ ├── recommendation.yml │ └── review.yml ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── OpenApiConfig.java │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ ├── ProductCompositeServiceImpl.java │ │ │ │ │ └── tracing │ │ │ │ │ ├── BuildInfoObservationFilter.java │ │ │ │ │ ├── ObservationRegistryConfig.java │ │ │ │ │ └── ObservationUtil.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── IsSameEvent.java │ │ │ │ ├── IsSameEventTests.java │ │ │ │ ├── MessagingTests.java │ │ │ │ ├── ProductCompositeServiceApplicationTests.java │ │ │ │ └── TestSecurityConfig.java │ │ │ └── resources │ │ │ └── application.yml │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── ProductEntity.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── ProductMapper.java │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── RecommendationEntity.java │ │ │ │ │ └── RecommendationRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── RecommendationMapper.java │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ReviewEntity.java │ │ │ │ └── ReviewRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ReviewMapper.java │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── authorization-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── sample │ │ │ │ │ ├── OAuth2AuthorizationServerApplication.java │ │ │ │ │ ├── config │ │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ │ └── DefaultSecurityConfig.java │ │ │ │ │ └── jose │ │ │ │ │ ├── Jwks.java │ │ │ │ │ └── KeyGeneratorUtils.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── sample │ │ │ │ └── OAuth2AuthorizationServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ ├── config-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── springcloud │ │ │ │ │ └── configserver │ │ │ │ │ ├── ConfigServerApplication.java │ │ │ │ │ └── SecurityConfig.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── configserver │ │ │ └── ConfigServerApplicationTests.java │ ├── eureka-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── springcloud │ │ │ │ │ └── eurekaserver │ │ │ │ │ ├── EurekaServerApplication.java │ │ │ │ │ └── SecurityConfig.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── eurekaserver │ │ │ │ └── EurekaServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── keystore │ │ │ └── edge.p12 │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── gateway │ │ │ └── GatewayApplicationTests.java │ │ └── resources │ │ └── application.yml ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter15 ├── .env ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── auth0 │ ├── .gitignore │ ├── env.bash │ ├── reset-tenant.bash │ └── setup-tenant.bash ├── config-repo │ ├── application.yml │ ├── auth-server.yml │ ├── eureka-server.yml │ ├── gateway.yml │ ├── product-composite.yml │ ├── product.yml │ ├── recommendation.yml │ └── review.yml ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── kubernetes │ └── first-attempts │ │ ├── nginx-deployment.yaml │ │ └── nginx-service.yaml ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── OpenApiConfig.java │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ ├── ProductCompositeServiceImpl.java │ │ │ │ │ └── tracing │ │ │ │ │ ├── BuildInfoObservationFilter.java │ │ │ │ │ ├── ObservationRegistryConfig.java │ │ │ │ │ └── ObservationUtil.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── IsSameEvent.java │ │ │ │ ├── IsSameEventTests.java │ │ │ │ ├── MessagingTests.java │ │ │ │ ├── ProductCompositeServiceApplicationTests.java │ │ │ │ └── TestSecurityConfig.java │ │ │ └── resources │ │ │ └── application.yml │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── ProductEntity.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── ProductMapper.java │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── RecommendationEntity.java │ │ │ │ │ └── RecommendationRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── RecommendationMapper.java │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ReviewEntity.java │ │ │ │ └── ReviewRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ReviewMapper.java │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── authorization-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── sample │ │ │ │ │ ├── OAuth2AuthorizationServerApplication.java │ │ │ │ │ ├── config │ │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ │ └── DefaultSecurityConfig.java │ │ │ │ │ └── jose │ │ │ │ │ ├── Jwks.java │ │ │ │ │ └── KeyGeneratorUtils.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── sample │ │ │ │ └── OAuth2AuthorizationServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ ├── config-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── springcloud │ │ │ │ │ └── configserver │ │ │ │ │ ├── ConfigServerApplication.java │ │ │ │ │ └── SecurityConfig.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── configserver │ │ │ └── ConfigServerApplicationTests.java │ ├── eureka-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── springcloud │ │ │ │ │ └── eurekaserver │ │ │ │ │ ├── EurekaServerApplication.java │ │ │ │ │ └── SecurityConfig.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── eurekaserver │ │ │ │ └── EurekaServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── keystore │ │ │ └── edge.p12 │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── gateway │ │ │ └── GatewayApplicationTests.java │ │ └── resources │ │ └── application.yml ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter16 ├── .env ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── auth0 │ ├── .gitignore │ ├── env.bash │ ├── reset-tenant.bash │ └── setup-tenant.bash ├── config-repo │ ├── application.yml │ ├── auth-server.yml │ ├── gateway.yml │ ├── product-composite.yml │ ├── product.yml │ ├── recommendation.yml │ └── review.yml ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── kubernetes │ ├── first-attempts │ │ ├── nginx-deployment.yaml │ │ └── nginx-service.yaml │ └── helm │ │ ├── .gitignore │ │ ├── common │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _configmap_from_file.yaml │ │ │ ├── _deployment.yaml │ │ │ ├── _helpers.tpl │ │ │ ├── _secrets.yaml │ │ │ └── _service.yaml │ │ └── values.yaml │ │ ├── components │ │ ├── auth-server │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── config-server │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── config-repo │ │ │ ├── templates │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── gateway │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── mongodb │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── mysql │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── product-composite │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── product │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── rabbitmq │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── recommendation │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── review │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ └── zipkin-server │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ └── environments │ │ ├── dev-env │ │ ├── Chart.lock │ │ ├── Chart.yaml │ │ ├── templates │ │ │ └── secrets.yaml │ │ └── values.yaml │ │ └── prod-env │ │ ├── Chart.lock │ │ ├── Chart.yaml │ │ ├── templates │ │ └── secrets.yaml │ │ └── values.yaml ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── OpenApiConfig.java │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ ├── ProductCompositeServiceImpl.java │ │ │ │ │ └── tracing │ │ │ │ │ ├── BuildInfoObservationFilter.java │ │ │ │ │ ├── ObservationRegistryConfig.java │ │ │ │ │ └── ObservationUtil.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── IsSameEvent.java │ │ │ │ ├── IsSameEventTests.java │ │ │ │ ├── MessagingTests.java │ │ │ │ ├── ProductCompositeServiceApplicationTests.java │ │ │ │ └── TestSecurityConfig.java │ │ │ └── resources │ │ │ └── application.yml │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── ProductEntity.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── ProductMapper.java │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── RecommendationEntity.java │ │ │ │ │ └── RecommendationRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── RecommendationMapper.java │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ReviewEntity.java │ │ │ │ └── ReviewRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ReviewMapper.java │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── authorization-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── sample │ │ │ │ │ ├── OAuth2AuthorizationServerApplication.java │ │ │ │ │ ├── config │ │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ │ └── DefaultSecurityConfig.java │ │ │ │ │ └── jose │ │ │ │ │ ├── Jwks.java │ │ │ │ │ └── KeyGeneratorUtils.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── sample │ │ │ │ └── OAuth2AuthorizationServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ ├── config-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── springcloud │ │ │ │ │ └── configserver │ │ │ │ │ ├── ConfigServerApplication.java │ │ │ │ │ └── SecurityConfig.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── configserver │ │ │ └── ConfigServerApplicationTests.java │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── keystore │ │ │ └── edge.p12 │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── gateway │ │ │ └── GatewayApplicationTests.java │ │ └── resources │ │ └── application.yml ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter17 ├── .env ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── auth0 │ ├── .gitignore │ ├── env.bash │ ├── reset-tenant.bash │ └── setup-tenant.bash ├── config-repo │ ├── application.yml │ ├── auth-server.yml │ ├── gateway.yml │ ├── product-composite.yml │ ├── product.yml │ ├── recommendation.yml │ └── review.yml ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── kubernetes │ ├── first-attempts │ │ ├── nginx-deployment.yaml │ │ └── nginx-service.yaml │ └── helm │ │ ├── .gitignore │ │ ├── common │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _configmap_from_file.yaml │ │ │ ├── _deployment.yaml │ │ │ ├── _helpers.tpl │ │ │ ├── _ingress.yaml │ │ │ ├── _issuer.yaml │ │ │ ├── _secrets.yaml │ │ │ └── _service.yaml │ │ └── values.yaml │ │ ├── components │ │ ├── auth-server │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── config-repo │ │ │ │ ├── application.yml │ │ │ │ └── auth-server.yml │ │ │ ├── templates │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── mongodb │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── mysql │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── product-composite │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── config-repo │ │ │ │ ├── application.yml │ │ │ │ └── product-composite.yml │ │ │ ├── templates │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── product │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── config-repo │ │ │ │ ├── application.yml │ │ │ │ └── product.yml │ │ │ ├── templates │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── rabbitmq │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── recommendation │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── config-repo │ │ │ │ ├── application.yml │ │ │ │ └── recommendation.yml │ │ │ ├── templates │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── review │ │ │ ├── .helmignore │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── config-repo │ │ │ │ ├── application.yml │ │ │ │ └── review.yml │ │ │ ├── templates │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ └── zipkin-server │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ └── environments │ │ ├── dev-env │ │ ├── Chart.lock │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── ingress.yaml │ │ │ ├── issuer.yaml │ │ │ └── secrets.yaml │ │ └── values.yaml │ │ └── prod-env │ │ ├── Chart.lock │ │ ├── Chart.yaml │ │ ├── templates │ │ ├── ingress.yaml │ │ ├── issuer.yaml │ │ └── secrets.yaml │ │ └── values.yaml ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── OpenApiConfig.java │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ ├── SecurityConfig.java │ │ │ │ └── services │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ ├── ProductCompositeServiceImpl.java │ │ │ │ └── tracing │ │ │ │ ├── BuildInfoObservationFilter.java │ │ │ │ ├── ObservationRegistryConfig.java │ │ │ │ └── ObservationUtil.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── IsSameEvent.java │ │ │ │ ├── IsSameEventTests.java │ │ │ │ ├── MessagingTests.java │ │ │ │ ├── ProductCompositeServiceApplicationTests.java │ │ │ │ └── TestSecurityConfig.java │ │ │ └── resources │ │ │ └── application.yml │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ProductEntity.java │ │ │ │ └── ProductRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ProductMapper.java │ │ │ │ └── ProductServiceImpl.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── RecommendationEntity.java │ │ │ │ └── RecommendationRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── RecommendationMapper.java │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── ReviewServiceApplication.java │ │ │ ├── persistence │ │ │ ├── ReviewEntity.java │ │ │ └── ReviewRepository.java │ │ │ └── services │ │ │ ├── MessageProcessorConfig.java │ │ │ ├── ReviewMapper.java │ │ │ └── ReviewServiceImpl.java │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── authorization-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── sample │ │ │ │ ├── OAuth2AuthorizationServerApplication.java │ │ │ │ ├── config │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ └── DefaultSecurityConfig.java │ │ │ │ └── jose │ │ │ │ ├── Jwks.java │ │ │ │ └── KeyGeneratorUtils.java │ │ │ └── test │ │ │ ├── java │ │ │ └── sample │ │ │ │ └── OAuth2AuthorizationServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ └── keystore │ │ │ └── edge.p12 │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── gateway │ │ │ └── GatewayApplicationTests.java │ │ └── resources │ │ └── application.yml ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter18 ├── .env ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── auth0 │ ├── .gitignore │ ├── env.bash │ ├── reset-tenant.bash │ └── setup-tenant.bash ├── config-repo │ ├── application.yml │ ├── auth-server.yml │ ├── gateway.yml │ ├── product-composite.yml │ ├── product.yml │ ├── recommendation.yml │ └── review.yml ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── kubernetes │ ├── first-attempts │ │ ├── nginx-deployment.yaml │ │ └── nginx-service.yaml │ ├── hands-on-namespace.yml │ ├── helm │ │ ├── .gitignore │ │ ├── common │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── _configmap_from_file.yaml │ │ │ │ ├── _deployment.yaml │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── _istio_base.yaml │ │ │ │ ├── _istio_dr_mutual_tls.yaml │ │ │ │ ├── _istio_vs_green_blue_deploy.yaml │ │ │ │ ├── _secrets.yaml │ │ │ │ └── _service.yaml │ │ │ └── values.yaml │ │ ├── components │ │ │ ├── auth-server │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── auth-server.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── mongodb │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── mysql │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── product-composite │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product-composite.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── product-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ ├── product │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── rabbitmq │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── recommendation-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── recommendation.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ ├── recommendation │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── recommendation.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── review-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── review.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ └── review │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ ├── application.yml │ │ │ │ └── review.yml │ │ │ │ ├── templates │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ └── environments │ │ │ ├── dev-env │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── istio_base.yaml │ │ │ │ ├── istio_dr_mutual_tls.yaml │ │ │ │ └── secrets.yaml │ │ │ └── values.yaml │ │ │ ├── istio-system │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── expose-grafana.yml │ │ │ │ ├── expose-kiali.yml │ │ │ │ ├── expose-prometheus.yml │ │ │ │ ├── expose-tracing.yml │ │ │ │ ├── hands-on-certificate.yaml │ │ │ │ └── selfsigned-issuer.yaml │ │ │ └── values.yaml │ │ │ └── prod-env │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ ├── istio_base.yaml │ │ │ ├── istio_dr_mutual_tls.yaml │ │ │ ├── istio_vs_green_blue_deploy.yaml │ │ │ └── secrets.yaml │ │ │ └── values.yaml │ ├── istio-tracing.yml │ ├── resilience-tests │ │ ├── product-virtual-service-with-delay.yml │ │ └── product-virtual-service-with-faults.yml │ └── routing-tests │ │ └── split-traffic-between-old-and-new-services.bash ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── OpenApiConfig.java │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ ├── SecurityConfig.java │ │ │ │ └── services │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ ├── ProductCompositeServiceImpl.java │ │ │ │ └── tracing │ │ │ │ ├── BuildInfoObservationFilter.java │ │ │ │ ├── ObservationRegistryConfig.java │ │ │ │ └── ObservationUtil.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── IsSameEvent.java │ │ │ │ ├── IsSameEventTests.java │ │ │ │ ├── MessagingTests.java │ │ │ │ ├── ProductCompositeServiceApplicationTests.java │ │ │ │ └── TestSecurityConfig.java │ │ │ └── resources │ │ │ └── application.yml │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ProductEntity.java │ │ │ │ └── ProductRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ProductMapper.java │ │ │ │ └── ProductServiceImpl.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── RecommendationEntity.java │ │ │ │ └── RecommendationRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── RecommendationMapper.java │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── ReviewServiceApplication.java │ │ │ ├── persistence │ │ │ ├── ReviewEntity.java │ │ │ └── ReviewRepository.java │ │ │ └── services │ │ │ ├── MessageProcessorConfig.java │ │ │ ├── ReviewMapper.java │ │ │ └── ReviewServiceImpl.java │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── authorization-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── sample │ │ │ │ ├── OAuth2AuthorizationServerApplication.java │ │ │ │ ├── config │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ └── DefaultSecurityConfig.java │ │ │ │ └── jose │ │ │ │ ├── Jwks.java │ │ │ │ └── KeyGeneratorUtils.java │ │ │ └── test │ │ │ ├── java │ │ │ └── sample │ │ │ │ └── OAuth2AuthorizationServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ └── keystore │ │ │ └── edge.p12 │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── gateway │ │ │ └── GatewayApplicationTests.java │ │ └── resources │ │ └── application.yml ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter19 ├── .env ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── auth0 │ ├── .gitignore │ ├── env.bash │ ├── reset-tenant.bash │ └── setup-tenant.bash ├── config-repo │ ├── application.yml │ ├── auth-server.yml │ ├── gateway.yml │ ├── product-composite.yml │ ├── product.yml │ ├── recommendation.yml │ └── review.yml ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── kubernetes │ ├── efk │ │ ├── Dockerfile │ │ ├── fluentd-ds.yml │ │ ├── fluentd-hands-on-configmap.yml │ │ └── kibana-api-exported-objects.ndjson │ ├── first-attempts │ │ ├── nginx-deployment.yaml │ │ └── nginx-service.yaml │ ├── hands-on-namespace.yml │ ├── helm │ │ ├── .gitignore │ │ ├── common │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── _configmap_from_file.yaml │ │ │ │ ├── _deployment.yaml │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── _istio_base.yaml │ │ │ │ ├── _istio_dr_mutual_tls.yaml │ │ │ │ ├── _istio_vs_green_blue_deploy.yaml │ │ │ │ ├── _secrets.yaml │ │ │ │ └── _service.yaml │ │ │ └── values.yaml │ │ ├── components │ │ │ ├── auth-server │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── auth-server.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── mongodb │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── mysql │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── product-composite │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product-composite.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── product-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ ├── product │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── rabbitmq │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── recommendation-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── recommendation.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ ├── recommendation │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── recommendation.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── review-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── review.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ └── review │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ ├── application.yml │ │ │ │ └── review.yml │ │ │ │ ├── templates │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ └── environments │ │ │ ├── dev-env │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── istio_base.yaml │ │ │ │ ├── istio_dr_mutual_tls.yaml │ │ │ │ └── secrets.yaml │ │ │ └── values.yaml │ │ │ ├── istio-system │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── expose-grafana.yml │ │ │ │ ├── expose-kiali.yml │ │ │ │ ├── expose-prometheus.yml │ │ │ │ ├── expose-tracing.yml │ │ │ │ ├── hands-on-certificate.yaml │ │ │ │ └── selfsigned-issuer.yaml │ │ │ └── values.yaml │ │ │ ├── logging │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── elasticsearch.yml │ │ │ │ ├── expose-elasticsearch.yml │ │ │ │ ├── expose-kibana.yml │ │ │ │ └── kibana.yml │ │ │ └── values.yaml │ │ │ └── prod-env │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ ├── istio_base.yaml │ │ │ ├── istio_dr_mutual_tls.yaml │ │ │ ├── istio_vs_green_blue_deploy.yaml │ │ │ └── secrets.yaml │ │ │ └── values.yaml │ ├── istio-tracing.yml │ ├── resilience-tests │ │ ├── product-virtual-service-with-delay.yml │ │ └── product-virtual-service-with-faults.yml │ └── routing-tests │ │ └── split-traffic-between-old-and-new-services.bash ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── OpenApiConfig.java │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ ├── SecurityConfig.java │ │ │ │ └── services │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ ├── ProductCompositeServiceImpl.java │ │ │ │ └── tracing │ │ │ │ ├── BuildInfoObservationFilter.java │ │ │ │ ├── ObservationRegistryConfig.java │ │ │ │ └── ObservationUtil.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── IsSameEvent.java │ │ │ │ ├── IsSameEventTests.java │ │ │ │ ├── MessagingTests.java │ │ │ │ ├── ProductCompositeServiceApplicationTests.java │ │ │ │ └── TestSecurityConfig.java │ │ │ └── resources │ │ │ └── application.yml │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ProductEntity.java │ │ │ │ └── ProductRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ProductMapper.java │ │ │ │ └── ProductServiceImpl.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── RecommendationEntity.java │ │ │ │ └── RecommendationRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── RecommendationMapper.java │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── ReviewServiceApplication.java │ │ │ ├── persistence │ │ │ ├── ReviewEntity.java │ │ │ └── ReviewRepository.java │ │ │ └── services │ │ │ ├── MessageProcessorConfig.java │ │ │ ├── ReviewMapper.java │ │ │ └── ReviewServiceImpl.java │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── authorization-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── sample │ │ │ │ ├── OAuth2AuthorizationServerApplication.java │ │ │ │ ├── config │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ └── DefaultSecurityConfig.java │ │ │ │ └── jose │ │ │ │ ├── Jwks.java │ │ │ │ └── KeyGeneratorUtils.java │ │ │ └── test │ │ │ ├── java │ │ │ └── sample │ │ │ │ └── OAuth2AuthorizationServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ └── keystore │ │ │ └── edge.p12 │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── gateway │ │ │ └── GatewayApplicationTests.java │ │ └── resources │ │ └── application.yml ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter20 ├── .env ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── auth0 │ ├── .gitignore │ ├── env.bash │ ├── reset-tenant.bash │ └── setup-tenant.bash ├── config-repo │ ├── application.yml │ ├── auth-server.yml │ ├── gateway.yml │ ├── product-composite.yml │ ├── product.yml │ ├── recommendation.yml │ └── review.yml ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── kubernetes │ ├── efk │ │ ├── Dockerfile │ │ ├── fluentd-ds.yml │ │ ├── fluentd-hands-on-configmap.yml │ │ └── kibana-api-exported-objects.ndjson │ ├── first-attempts │ │ ├── nginx-deployment.yaml │ │ └── nginx-service.yaml │ ├── grafana │ │ └── api-export-import │ │ │ ├── Hands-on-Dashboard.json │ │ │ └── mail-notification.json │ ├── hands-on-namespace.yml │ ├── helm │ │ ├── .gitignore │ │ ├── common │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── _configmap_from_file.yaml │ │ │ │ ├── _deployment.yaml │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── _istio_base.yaml │ │ │ │ ├── _istio_dr_mutual_tls.yaml │ │ │ │ ├── _istio_vs_green_blue_deploy.yaml │ │ │ │ ├── _secrets.yaml │ │ │ │ └── _service.yaml │ │ │ └── values.yaml │ │ ├── components │ │ │ ├── auth-server │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── auth-server.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── mongodb │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── mysql │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── product-composite │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product-composite.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── product-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ ├── product │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── rabbitmq │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── recommendation-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── recommendation.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ ├── recommendation │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── recommendation.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── review-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── review.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ └── review │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ ├── application.yml │ │ │ │ └── review.yml │ │ │ │ ├── templates │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ └── environments │ │ │ ├── dev-env │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── istio_base.yaml │ │ │ │ ├── istio_dr_mutual_tls.yaml │ │ │ │ └── secrets.yaml │ │ │ └── values.yaml │ │ │ ├── istio-system │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── expose-grafana.yml │ │ │ │ ├── expose-kiali.yml │ │ │ │ ├── expose-mail.yml │ │ │ │ ├── expose-prometheus.yml │ │ │ │ ├── expose-tracing.yml │ │ │ │ ├── hands-on-certificate.yaml │ │ │ │ └── selfsigned-issuer.yaml │ │ │ └── values.yaml │ │ │ ├── logging │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── elasticsearch.yml │ │ │ │ ├── expose-elasticsearch.yml │ │ │ │ ├── expose-kibana.yml │ │ │ │ └── kibana.yml │ │ │ └── values.yaml │ │ │ └── prod-env │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ ├── istio_base.yaml │ │ │ ├── istio_dr_mutual_tls.yaml │ │ │ ├── istio_vs_green_blue_deploy.yaml │ │ │ └── secrets.yaml │ │ │ └── values.yaml │ ├── istio-tracing.yml │ ├── resilience-tests │ │ ├── product-virtual-service-with-delay.yml │ │ └── product-virtual-service-with-faults.yml │ └── routing-tests │ │ └── split-traffic-between-old-and-new-services.bash ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── OpenApiConfig.java │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ ├── SecurityConfig.java │ │ │ │ └── services │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ ├── ProductCompositeServiceImpl.java │ │ │ │ └── tracing │ │ │ │ ├── BuildInfoObservationFilter.java │ │ │ │ ├── ObservationRegistryConfig.java │ │ │ │ └── ObservationUtil.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── IsSameEvent.java │ │ │ │ ├── IsSameEventTests.java │ │ │ │ ├── MessagingTests.java │ │ │ │ ├── ProductCompositeServiceApplicationTests.java │ │ │ │ └── TestSecurityConfig.java │ │ │ └── resources │ │ │ └── application.yml │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ProductEntity.java │ │ │ │ └── ProductRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ProductMapper.java │ │ │ │ └── ProductServiceImpl.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── RecommendationEntity.java │ │ │ │ └── RecommendationRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── RecommendationMapper.java │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ └── java │ │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── ReviewServiceApplication.java │ │ │ ├── persistence │ │ │ ├── ReviewEntity.java │ │ │ └── ReviewRepository.java │ │ │ └── services │ │ │ ├── MessageProcessorConfig.java │ │ │ ├── ReviewMapper.java │ │ │ └── ReviewServiceImpl.java │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ ├── application.yml │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── authorization-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── sample │ │ │ │ ├── OAuth2AuthorizationServerApplication.java │ │ │ │ ├── config │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ └── DefaultSecurityConfig.java │ │ │ │ └── jose │ │ │ │ ├── Jwks.java │ │ │ │ └── KeyGeneratorUtils.java │ │ │ └── test │ │ │ ├── java │ │ │ └── sample │ │ │ │ └── OAuth2AuthorizationServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ └── keystore │ │ │ └── edge.p12 │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── gateway │ │ │ └── GatewayApplicationTests.java │ │ └── resources │ │ └── application.yml ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── Chapter23 ├── .env ├── .gitignore ├── api │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── se │ │ └── magnus │ │ └── api │ │ ├── composite │ │ └── product │ │ │ ├── ProductAggregate.java │ │ │ ├── ProductCompositeService.java │ │ │ ├── RecommendationSummary.java │ │ │ ├── ReviewSummary.java │ │ │ └── ServiceAddresses.java │ │ ├── core │ │ ├── product │ │ │ ├── Product.java │ │ │ └── ProductService.java │ │ ├── recommendation │ │ │ ├── Recommendation.java │ │ │ └── RecommendationService.java │ │ └── review │ │ │ ├── Review.java │ │ │ └── ReviewService.java │ │ ├── event │ │ └── Event.java │ │ └── exceptions │ │ ├── BadRequestException.java │ │ ├── EventProcessingException.java │ │ ├── InvalidInputException.java │ │ └── NotFoundException.java ├── auth0 │ ├── .gitignore │ ├── env.bash │ ├── reset-tenant.bash │ └── setup-tenant.bash ├── config-repo │ ├── application.yml │ ├── auth-server.yml │ ├── gateway.yml │ ├── product-composite.yml │ ├── product.yml │ ├── recommendation.yml │ └── review.yml ├── create-projects.bash ├── docker-compose-kafka.yml ├── docker-compose-native.yml ├── docker-compose-partitions-native.yml ├── docker-compose-partitions.yml ├── docker-compose.yml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── kubernetes │ ├── efk │ │ ├── Dockerfile │ │ ├── fluentd-ds.yml │ │ ├── fluentd-hands-on-configmap.yml │ │ └── kibana-api-exported-objects.ndjson │ ├── first-attempts │ │ ├── nginx-deployment.yaml │ │ └── nginx-service.yaml │ ├── grafana │ │ └── api-export-import │ │ │ ├── Hands-on-Dashboard.json │ │ │ └── mail-notification.json │ ├── hands-on-namespace.yml │ ├── helm │ │ ├── .gitignore │ │ ├── common │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── _configmap_from_file.yaml │ │ │ │ ├── _deployment.yaml │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── _istio_base.yaml │ │ │ │ ├── _istio_dr_mutual_tls.yaml │ │ │ │ ├── _istio_vs_green_blue_deploy.yaml │ │ │ │ ├── _secrets.yaml │ │ │ │ └── _service.yaml │ │ │ └── values.yaml │ │ ├── components │ │ │ ├── auth-server │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── auth-server.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── mongodb │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── mysql │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── product-composite │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product-composite.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── product-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ ├── product │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── product.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── rabbitmq │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── recommendation-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── recommendation.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ ├── recommendation │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── recommendation.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ │ ├── review-green │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ │ ├── application.yml │ │ │ │ │ └── review.yml │ │ │ │ ├── templates │ │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ │ └── deployment.yaml │ │ │ │ └── values.yaml │ │ │ └── review │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.lock │ │ │ │ ├── Chart.yaml │ │ │ │ ├── config-repo │ │ │ │ ├── application.yml │ │ │ │ └── review.yml │ │ │ │ ├── templates │ │ │ │ ├── configmap_from_file.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ └── service.yaml │ │ │ │ └── values.yaml │ │ └── environments │ │ │ ├── dev-env-native │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── istio_base.yaml │ │ │ │ ├── istio_dr_mutual_tls.yaml │ │ │ │ └── secrets.yaml │ │ │ └── values.yaml │ │ │ ├── dev-env │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── istio_base.yaml │ │ │ │ ├── istio_dr_mutual_tls.yaml │ │ │ │ └── secrets.yaml │ │ │ └── values.yaml │ │ │ ├── istio-system │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── expose-grafana.yml │ │ │ │ ├── expose-kiali.yml │ │ │ │ ├── expose-mail.yml │ │ │ │ ├── expose-prometheus.yml │ │ │ │ ├── expose-tracing.yml │ │ │ │ ├── hands-on-certificate.yaml │ │ │ │ └── selfsigned-issuer.yaml │ │ │ └── values.yaml │ │ │ ├── logging │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── elasticsearch.yml │ │ │ │ ├── expose-elasticsearch.yml │ │ │ │ ├── expose-kibana.yml │ │ │ │ └── kibana.yml │ │ │ └── values.yaml │ │ │ └── prod-env │ │ │ ├── Chart.lock │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ ├── istio_base.yaml │ │ │ ├── istio_dr_mutual_tls.yaml │ │ │ ├── istio_vs_green_blue_deploy.yaml │ │ │ └── secrets.yaml │ │ │ └── values.yaml │ ├── istio-tracing.yml │ ├── resilience-tests │ │ ├── product-virtual-service-with-delay.yml │ │ └── product-virtual-service-with-faults.yml │ └── routing-tests │ │ └── split-traffic-between-old-and-new-services.bash ├── microservices │ ├── product-composite-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── composite │ │ │ │ │ └── product │ │ │ │ │ ├── NativeHintsConfiguration.java │ │ │ │ │ ├── OpenApiConfig.java │ │ │ │ │ ├── ProductCompositeServiceApplication.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ └── services │ │ │ │ │ ├── ProductCompositeIntegration.java │ │ │ │ │ ├── ProductCompositeServiceImpl.java │ │ │ │ │ └── tracing │ │ │ │ │ ├── BuildInfoObservationFilter.java │ │ │ │ │ ├── ObservationRegistryConfig.java │ │ │ │ │ └── ObservationUtil.java │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── native-image │ │ │ │ │ └── reflect-config.json │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── composite │ │ │ │ └── product │ │ │ │ ├── IsSameEvent.java │ │ │ │ ├── IsSameEventTests.java │ │ │ │ ├── MessagingTests.java │ │ │ │ ├── ProductCompositeServiceApplicationTests.java │ │ │ │ └── TestSecurityConfig.java │ │ │ └── resources │ │ │ ├── access-filter.json │ │ │ └── application.yml │ ├── product-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── product │ │ │ │ │ ├── ProductServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── ProductEntity.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── ProductMapper.java │ │ │ │ │ └── ProductServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── product │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── ProductServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── access-filter.json │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ ├── recommendation-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── se │ │ │ │ │ └── magnus │ │ │ │ │ └── microservices │ │ │ │ │ └── core │ │ │ │ │ └── recommendation │ │ │ │ │ ├── RecommendationServiceApplication.java │ │ │ │ │ ├── persistence │ │ │ │ │ ├── RecommendationEntity.java │ │ │ │ │ └── RecommendationRepository.java │ │ │ │ │ └── services │ │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ │ ├── RecommendationMapper.java │ │ │ │ │ └── RecommendationServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── recommendation │ │ │ │ ├── MapperTests.java │ │ │ │ ├── MongoDbTestBase.java │ │ │ │ ├── PersistenceTests.java │ │ │ │ └── RecommendationServiceApplicationTests.java │ │ │ └── resources │ │ │ ├── access-filter.json │ │ │ ├── application.yml │ │ │ └── logback-test.xml │ └── review-service │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── microservices │ │ │ │ └── core │ │ │ │ └── review │ │ │ │ ├── ReviewServiceApplication.java │ │ │ │ ├── persistence │ │ │ │ ├── ReviewEntity.java │ │ │ │ └── ReviewRepository.java │ │ │ │ └── services │ │ │ │ ├── MessageProcessorConfig.java │ │ │ │ ├── ReviewMapper.java │ │ │ │ └── ReviewServiceImpl.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── microservices │ │ │ └── core │ │ │ └── review │ │ │ ├── MapperTests.java │ │ │ ├── MySqlTestBase.java │ │ │ ├── PersistenceTests.java │ │ │ └── ReviewServiceApplicationTests.java │ │ └── resources │ │ ├── access-filter.json │ │ ├── application.yml │ │ └── logback-test.xml ├── settings.gradle ├── spring-cloud │ ├── authorization-server │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── sample │ │ │ │ ├── OAuth2AuthorizationServerApplication.java │ │ │ │ ├── config │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ └── DefaultSecurityConfig.java │ │ │ │ └── jose │ │ │ │ ├── Jwks.java │ │ │ │ └── KeyGeneratorUtils.java │ │ │ └── test │ │ │ ├── java │ │ │ └── sample │ │ │ │ └── OAuth2AuthorizationServerApplicationTests.java │ │ │ └── resources │ │ │ └── application.yml │ └── gateway │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── se │ │ │ │ └── magnus │ │ │ │ └── springcloud │ │ │ │ └── gateway │ │ │ │ ├── GatewayApplication.java │ │ │ │ ├── HealthCheckConfiguration.java │ │ │ │ └── SecurityConfig.java │ │ └── resources │ │ │ └── keystore │ │ │ └── edge.p12 │ │ └── test │ │ ├── java │ │ └── se │ │ │ └── magnus │ │ │ └── springcloud │ │ │ └── gateway │ │ │ └── GatewayApplicationTests.java │ │ └── resources │ │ └── application.yml ├── test-em-all.bash └── util │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── se │ │ └── magnus │ │ └── util │ │ └── http │ │ ├── GlobalControllerExceptionHandler.java │ │ ├── HttpErrorInfo.java │ │ └── ServiceUtil.java │ └── test │ └── java │ └── se │ └── magnus │ └── util │ └── reactor │ └── ReactorTests.java ├── LICENSE └── README.md /Chapter03/.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | -------------------------------------------------------------------------------- /Chapter03/1-spring-init/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter03/1-spring-init/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter03/1-spring-init/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter03/1-spring-init/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter03/1-spring-init/microservices/product-composite-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Chapter03/1-spring-init/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter03/1-spring-init/microservices/product-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Chapter03/1-spring-init/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter03/1-spring-init/microservices/recommendation-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Chapter03/1-spring-init/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter03/1-spring-init/microservices/review-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Chapter03/1-spring-init/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':microservices:product-service' 2 | include ':microservices:review-service' 3 | include ':microservices:recommendation-service' 4 | include ':microservices:product-composite-service' 5 | -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter03/2-basic-rest-services/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/microservices/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 7001 2 | server.error.include-message: always 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | se.magnus: DEBUG 8 | -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/microservices/recommendation-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 7002 2 | server.error.include-message: always 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | se.magnus: DEBUG 8 | -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/microservices/review-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 7003 2 | server.error.include-message: always 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | se.magnus: DEBUG 8 | -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':api' 2 | include ':util' 3 | include ':microservices:product-service' 4 | include ':microservices:review-service' 5 | include ':microservices:recommendation-service' 6 | include ':microservices:product-composite-service' 7 | -------------------------------------------------------------------------------- /Chapter03/2-basic-rest-services/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter04/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter04/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter04/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter04/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter04/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter04/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter04/microservices/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 7001 2 | server.error.include-message: always 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | se.magnus: DEBUG 8 | 9 | --- 10 | spring.config.activate.on-profile: docker 11 | 12 | server.port: 8080 -------------------------------------------------------------------------------- /Chapter04/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter04/microservices/recommendation-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 7002 2 | server.error.include-message: always 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | se.magnus: DEBUG 8 | 9 | --- 10 | spring.config.activate.on-profile: docker 11 | 12 | server.port: 8080 -------------------------------------------------------------------------------- /Chapter04/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter04/microservices/review-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 7003 2 | server.error.include-message: always 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | se.magnus: DEBUG 8 | 9 | --- 10 | spring.config.activate.on-profile: docker 11 | 12 | server.port: 8080 -------------------------------------------------------------------------------- /Chapter04/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':api' 2 | include ':util' 3 | include ':microservices:product-service' 4 | include ':microservices:review-service' 5 | include ':microservices:recommendation-service' 6 | include ':microservices:product-composite-service' 7 | -------------------------------------------------------------------------------- /Chapter04/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter05/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter05/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter05/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter05/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter05/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter05/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter05/microservices/product-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 7001 2 | server.error.include-message: always 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | se.magnus: DEBUG 8 | 9 | --- 10 | spring.config.activate.on-profile: docker 11 | 12 | server.port: 8080 -------------------------------------------------------------------------------- /Chapter05/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter05/microservices/recommendation-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 7002 2 | server.error.include-message: always 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | se.magnus: DEBUG 8 | 9 | --- 10 | spring.config.activate.on-profile: docker 11 | 12 | server.port: 8080 -------------------------------------------------------------------------------- /Chapter05/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter05/microservices/review-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.port: 7003 2 | server.error.include-message: always 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | se.magnus: DEBUG 8 | 9 | --- 10 | spring.config.activate.on-profile: docker 11 | 12 | server.port: 8080 -------------------------------------------------------------------------------- /Chapter05/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':api' 2 | include ':util' 3 | include ':microservices:product-service' 4 | include ':microservices:review-service' 5 | include ':microservices:recommendation-service' 6 | include ':microservices:product-composite-service' 7 | -------------------------------------------------------------------------------- /Chapter05/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter06/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter06/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter06/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter06/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter06/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter06/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter06/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter06/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter06/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':api' 2 | include ':util' 3 | include ':microservices:product-service' 4 | include ':microservices:review-service' 5 | include ':microservices:recommendation-service' 6 | include ':microservices:product-composite-service' 7 | -------------------------------------------------------------------------------- /Chapter06/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter07/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter07/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter07/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter07/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter07/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter07/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter07/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter07/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter07/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':api' 2 | include ':util' 3 | include ':microservices:product-service' 4 | include ':microservices:review-service' 5 | include ':microservices:recommendation-service' 6 | include ':microservices:product-composite-service' 7 | -------------------------------------------------------------------------------- /Chapter07/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter09/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter09/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter09/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter09/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter09/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter09/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter09/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter09/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter09/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':api' 2 | include ':util' 3 | include ':microservices:product-service' 4 | include ':microservices:review-service' 5 | include ':microservices:recommendation-service' 6 | include ':microservices:product-composite-service' 7 | include ':spring-cloud:eureka-server' 8 | -------------------------------------------------------------------------------- /Chapter09/spring-cloud/eureka-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'eureka-server' 2 | -------------------------------------------------------------------------------- /Chapter09/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter10/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter10/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter10/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter10/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter10/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter10/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter10/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter10/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter10/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':api' 2 | include ':util' 3 | include ':microservices:product-service' 4 | include ':microservices:review-service' 5 | include ':microservices:recommendation-service' 6 | include ':microservices:product-composite-service' 7 | include ':spring-cloud:eureka-server' 8 | include ':spring-cloud:gateway' 9 | -------------------------------------------------------------------------------- /Chapter10/spring-cloud/eureka-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'eureka-server' 2 | -------------------------------------------------------------------------------- /Chapter10/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter10/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter11/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter11/auth0/.gitignore: -------------------------------------------------------------------------------- 1 | ml.* 2 | -------------------------------------------------------------------------------- /Chapter11/auth0/env.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TENANT= 4 | MGM_CLIENT_ID= 5 | MGM_CLIENT_SECRET= 6 | USER_EMAIL= 7 | USER_PASSWORD= 8 | -------------------------------------------------------------------------------- /Chapter11/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter11/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter11/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter11/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter11/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter11/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter11/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter11/spring-cloud/authorization-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'authorization-server' -------------------------------------------------------------------------------- /Chapter11/spring-cloud/eureka-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'eureka-server' 2 | -------------------------------------------------------------------------------- /Chapter11/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter11/spring-cloud/gateway/src/main/resources/keystore/edge.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter11/spring-cloud/gateway/src/main/resources/keystore/edge.p12 -------------------------------------------------------------------------------- /Chapter11/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter12/.env: -------------------------------------------------------------------------------- 1 | CONFIG_SERVER_ENCRYPT_KEY=my-very-secure-encrypt-key 2 | CONFIG_SERVER_USR=dev-usr 3 | CONFIG_SERVER_PWD=dev-pwd 4 | -------------------------------------------------------------------------------- /Chapter12/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter12/auth0/.gitignore: -------------------------------------------------------------------------------- 1 | ml.* 2 | -------------------------------------------------------------------------------- /Chapter12/auth0/env.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TENANT= 4 | MGM_CLIENT_ID= 5 | MGM_CLIENT_SECRET= 6 | USER_EMAIL= 7 | USER_PASSWORD= 8 | -------------------------------------------------------------------------------- /Chapter12/config-repo/auth-server.yml: -------------------------------------------------------------------------------- 1 | server.port: 9999 2 | server.forward-headers-strategy: framework 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | -------------------------------------------------------------------------------- /Chapter12/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter12/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter12/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter12/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter12/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter12/microservices/product-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter12/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter12/microservices/recommendation-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter12/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter12/spring-cloud/authorization-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'authorization-server' -------------------------------------------------------------------------------- /Chapter12/spring-cloud/authorization-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | ml.server.error.include-message: always 2 | 3 | ml.spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter12/spring-cloud/config-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'config-server' 2 | -------------------------------------------------------------------------------- /Chapter12/spring-cloud/eureka-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'eureka-server' 2 | -------------------------------------------------------------------------------- /Chapter12/spring-cloud/eureka-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | app: 2 | eureka-username: u 3 | eureka-password: p -------------------------------------------------------------------------------- /Chapter12/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter12/spring-cloud/gateway/src/main/resources/keystore/edge.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter12/spring-cloud/gateway/src/main/resources/keystore/edge.p12 -------------------------------------------------------------------------------- /Chapter12/spring-cloud/gateway/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring.security.oauth2.resourceserver.jwt.jwk-set-uri: . -------------------------------------------------------------------------------- /Chapter12/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter13/.env: -------------------------------------------------------------------------------- 1 | CONFIG_SERVER_ENCRYPT_KEY=my-very-secure-encrypt-key 2 | CONFIG_SERVER_USR=dev-usr 3 | CONFIG_SERVER_PWD=dev-pwd 4 | -------------------------------------------------------------------------------- /Chapter13/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter13/auth0/.gitignore: -------------------------------------------------------------------------------- 1 | ml.* 2 | -------------------------------------------------------------------------------- /Chapter13/auth0/env.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TENANT= 4 | MGM_CLIENT_ID= 5 | MGM_CLIENT_SECRET= 6 | USER_EMAIL= 7 | USER_PASSWORD= 8 | -------------------------------------------------------------------------------- /Chapter13/config-repo/auth-server.yml: -------------------------------------------------------------------------------- 1 | server.port: 9999 2 | server.forward-headers-strategy: framework 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | -------------------------------------------------------------------------------- /Chapter13/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter13/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter13/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter13/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter13/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter13/microservices/product-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter13/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter13/microservices/recommendation-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter13/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter13/spring-cloud/authorization-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'authorization-server' -------------------------------------------------------------------------------- /Chapter13/spring-cloud/authorization-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | ml.server.error.include-message: always 2 | 3 | ml.spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter13/spring-cloud/config-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'config-server' 2 | -------------------------------------------------------------------------------- /Chapter13/spring-cloud/eureka-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'eureka-server' 2 | -------------------------------------------------------------------------------- /Chapter13/spring-cloud/eureka-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | app: 2 | eureka-username: u 3 | eureka-password: p -------------------------------------------------------------------------------- /Chapter13/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter13/spring-cloud/gateway/src/main/resources/keystore/edge.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter13/spring-cloud/gateway/src/main/resources/keystore/edge.p12 -------------------------------------------------------------------------------- /Chapter13/spring-cloud/gateway/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring.security.oauth2.resourceserver.jwt.jwk-set-uri: . -------------------------------------------------------------------------------- /Chapter13/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter14/.env: -------------------------------------------------------------------------------- 1 | CONFIG_SERVER_ENCRYPT_KEY=my-very-secure-encrypt-key 2 | CONFIG_SERVER_USR=dev-usr 3 | CONFIG_SERVER_PWD=dev-pwd 4 | -------------------------------------------------------------------------------- /Chapter14/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter14/auth0/.gitignore: -------------------------------------------------------------------------------- 1 | ml.* 2 | -------------------------------------------------------------------------------- /Chapter14/auth0/env.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TENANT= 4 | MGM_CLIENT_ID= 5 | MGM_CLIENT_SECRET= 6 | USER_EMAIL= 7 | USER_PASSWORD= 8 | -------------------------------------------------------------------------------- /Chapter14/config-repo/auth-server.yml: -------------------------------------------------------------------------------- 1 | server.port: 9999 2 | server.forward-headers-strategy: framework 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | -------------------------------------------------------------------------------- /Chapter14/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter14/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter14/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter14/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter14/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter14/microservices/product-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter14/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter14/microservices/recommendation-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter14/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter14/spring-cloud/authorization-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'authorization-server' -------------------------------------------------------------------------------- /Chapter14/spring-cloud/authorization-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | ml.server.error.include-message: always 2 | 3 | ml.spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter14/spring-cloud/config-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'config-server' 2 | -------------------------------------------------------------------------------- /Chapter14/spring-cloud/eureka-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'eureka-server' 2 | -------------------------------------------------------------------------------- /Chapter14/spring-cloud/eureka-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | app: 2 | eureka-username: u 3 | eureka-password: p -------------------------------------------------------------------------------- /Chapter14/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter14/spring-cloud/gateway/src/main/resources/keystore/edge.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter14/spring-cloud/gateway/src/main/resources/keystore/edge.p12 -------------------------------------------------------------------------------- /Chapter14/spring-cloud/gateway/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring.security.oauth2.resourceserver.jwt.jwk-set-uri: . -------------------------------------------------------------------------------- /Chapter14/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter15/.env: -------------------------------------------------------------------------------- 1 | CONFIG_SERVER_ENCRYPT_KEY=my-very-secure-encrypt-key 2 | CONFIG_SERVER_USR=dev-usr 3 | CONFIG_SERVER_PWD=dev-pwd 4 | -------------------------------------------------------------------------------- /Chapter15/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter15/auth0/.gitignore: -------------------------------------------------------------------------------- 1 | ml.* 2 | -------------------------------------------------------------------------------- /Chapter15/auth0/env.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TENANT= 4 | MGM_CLIENT_ID= 5 | MGM_CLIENT_SECRET= 6 | USER_EMAIL= 7 | USER_PASSWORD= 8 | -------------------------------------------------------------------------------- /Chapter15/config-repo/auth-server.yml: -------------------------------------------------------------------------------- 1 | server.port: 9999 2 | server.forward-headers-strategy: framework 3 | 4 | logging: 5 | level: 6 | root: INFO 7 | -------------------------------------------------------------------------------- /Chapter15/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter15/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter15/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter15/kubernetes/first-attempts/nginx-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: nginx-service 5 | spec: 6 | type: NodePort 7 | selector: 8 | app: nginx-app 9 | ports: 10 | - targetPort: 80 11 | port: 80 12 | nodePort: 30080 13 | -------------------------------------------------------------------------------- /Chapter15/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter15/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter15/microservices/product-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter15/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter15/microservices/recommendation-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter15/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter15/spring-cloud/authorization-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'authorization-server' -------------------------------------------------------------------------------- /Chapter15/spring-cloud/authorization-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | ml.server.error.include-message: always 2 | 3 | ml.spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter15/spring-cloud/config-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'config-server' 2 | -------------------------------------------------------------------------------- /Chapter15/spring-cloud/eureka-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'eureka-server' 2 | -------------------------------------------------------------------------------- /Chapter15/spring-cloud/eureka-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | app: 2 | eureka-username: u 3 | eureka-password: p -------------------------------------------------------------------------------- /Chapter15/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter15/spring-cloud/gateway/src/main/resources/keystore/edge.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter15/spring-cloud/gateway/src/main/resources/keystore/edge.p12 -------------------------------------------------------------------------------- /Chapter15/spring-cloud/gateway/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring.security.oauth2.resourceserver.jwt.jwk-set-uri: . -------------------------------------------------------------------------------- /Chapter15/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter16/.env: -------------------------------------------------------------------------------- 1 | CONFIG_SERVER_ENCRYPT_KEY=my-very-secure-encrypt-key 2 | CONFIG_SERVER_USR=dev-usr 3 | CONFIG_SERVER_PWD=dev-pwd 4 | -------------------------------------------------------------------------------- /Chapter16/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter16/auth0/.gitignore: -------------------------------------------------------------------------------- 1 | ml.* 2 | -------------------------------------------------------------------------------- /Chapter16/auth0/env.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TENANT= 4 | MGM_CLIENT_ID= 5 | MGM_CLIENT_SECRET= 6 | USER_EMAIL= 7 | USER_PASSWORD= 8 | -------------------------------------------------------------------------------- /Chapter16/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter16/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter16/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/first-attempts/nginx-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: nginx-service 5 | spec: 6 | type: NodePort 7 | selector: 8 | app: nginx-app 9 | ports: 10 | - targetPort: 80 11 | port: 80 12 | nodePort: 30080 13 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/.gitignore: -------------------------------------------------------------------------------- 1 | *.tgz 2 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/common/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: common 3 | type: library 4 | description: A Helm library chart with shared definitions 5 | version: 1.0.0 6 | appVersion: "1.0" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/auth-server/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T14:23:42.376507+02:00" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/auth-server/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Auth Server 4 | name: auth-server 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/auth-server/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/auth-server/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/auth-server/values.yaml: -------------------------------------------------------------------------------- 1 | fullnameOverride: auth-server 2 | 3 | image: 4 | name: auth-server 5 | 6 | env: 7 | SPRING_PROFILES_ACTIVE: "docker" 8 | 9 | livenessProbe_enabled: true 10 | 11 | readinessProbe_enabled: true 12 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/config-server/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:19.362307+02:00" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/config-server/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Config Server 4 | name: config-server 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/config-server/config-repo: -------------------------------------------------------------------------------- 1 | ../../../../config-repo -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/config-server/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/config-server/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/config-server/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/gateway/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:27.669584+02:00" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/gateway/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Spring Cloud Gateway 4 | name: gateway 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/gateway/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/gateway/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/mongodb/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:36.265435+02:00" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/mongodb/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MongoDB 4 | name: mongodb 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/mongodb/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/mongodb/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/mongodb/values.yaml: -------------------------------------------------------------------------------- 1 | fullnameOverride: mongodb 2 | 3 | image: 4 | repository: registry.hub.docker.com/library 5 | name: mongo 6 | tag: 6.0.4 7 | pullPolicy: IfNotPresent 8 | 9 | ports: 10 | - containerPort: 27017 11 | 12 | service: 13 | ports: 14 | - port: 27017 15 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/mysql/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:45.984752+02:00" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/mysql/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MySQL 4 | name: mysql 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/mysql/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/mysql/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/product-composite/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:04.208149+02:00" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/product-composite/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product Composite microservice 4 | name: product-composite 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/product-composite/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/product-composite/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/product-composite/values.yaml: -------------------------------------------------------------------------------- 1 | fullnameOverride: product-composite 2 | 3 | image: 4 | name: product-composite-service 5 | 6 | env: 7 | SPRING_PROFILES_ACTIVE: "docker" 8 | 9 | livenessProbe_enabled: true 10 | 11 | readinessProbe_enabled: true 12 | 13 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/product/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:55.601428+02:00" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/product/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product microservice 4 | name: product 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/product/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/product/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/product/values.yaml: -------------------------------------------------------------------------------- 1 | fullnameOverride: product 2 | 3 | image: 4 | name: product-service 5 | 6 | env: 7 | SPRING_PROFILES_ACTIVE: "docker" 8 | 9 | livenessProbe_enabled: true 10 | 11 | readinessProbe_enabled: true 12 | 13 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/rabbitmq/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:13.179679+02:00" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/rabbitmq/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for RabbitMQ 4 | name: rabbitmq 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/rabbitmq/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/rabbitmq/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/recommendation/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:21.782091+02:00" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/recommendation/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Recommendation microservice 4 | name: recommendation 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/recommendation/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/recommendation/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/recommendation/values.yaml: -------------------------------------------------------------------------------- 1 | fullnameOverride: recommendation 2 | 3 | image: 4 | name: recommendation-service 5 | 6 | env: 7 | SPRING_PROFILES_ACTIVE: "docker" 8 | 9 | livenessProbe_enabled: true 10 | 11 | readinessProbe_enabled: true 12 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/review/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:30.417664+02:00" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/review/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Review microservice 4 | name: review 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/review/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/review/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/review/values.yaml: -------------------------------------------------------------------------------- 1 | fullnameOverride: review 2 | 3 | image: 4 | name: review-service 5 | 6 | env: 7 | SPRING_PROFILES_ACTIVE: "docker" 8 | 9 | livenessProbe_enabled: true 10 | 11 | readinessProbe_enabled: true 12 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/zipkin-server/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:39.671627+02:00" 7 | -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/zipkin-server/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for Zipkin 4 | name: zipkin-server 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/zipkin-server/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/components/zipkin-server/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/environments/dev-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter16/kubernetes/helm/environments/prod-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter16/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter16/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter16/microservices/product-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter16/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter16/microservices/recommendation-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter16/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter16/spring-cloud/authorization-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'authorization-server' -------------------------------------------------------------------------------- /Chapter16/spring-cloud/authorization-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | ml.server.error.include-message: always 2 | 3 | ml.spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter16/spring-cloud/config-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'config-server' 2 | -------------------------------------------------------------------------------- /Chapter16/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter16/spring-cloud/gateway/src/main/resources/keystore/edge.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter16/spring-cloud/gateway/src/main/resources/keystore/edge.p12 -------------------------------------------------------------------------------- /Chapter16/spring-cloud/gateway/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring.security.oauth2.resourceserver.jwt.jwk-set-uri: . -------------------------------------------------------------------------------- /Chapter16/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter17/.env: -------------------------------------------------------------------------------- 1 | RABBITMQ_USR=rabbit-user-prod 2 | RABBITMQ_PWD=rabbit-pwd-prod 3 | 4 | MONGODB_USR=mongodb-user-prod 5 | MONGODB_PWD=mongodb-pwd-prod 6 | 7 | MYSQL_ROOT_PWD=rootpwd 8 | MYSQL_USR=mysql-user-prod 9 | MYSQL_PWD=mysql-pwd-prod 10 | 11 | GATEWAY_TLS_PWD=password -------------------------------------------------------------------------------- /Chapter17/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter17/auth0/.gitignore: -------------------------------------------------------------------------------- 1 | ml.* 2 | -------------------------------------------------------------------------------- /Chapter17/auth0/env.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TENANT= 4 | MGM_CLIENT_ID= 5 | MGM_CLIENT_SECRET= 6 | USER_EMAIL= 7 | USER_PASSWORD= 8 | -------------------------------------------------------------------------------- /Chapter17/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter17/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter17/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/first-attempts/nginx-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: nginx-service 5 | spec: 6 | type: NodePort 7 | selector: 8 | app: nginx-app 9 | ports: 10 | - targetPort: 80 11 | port: 80 12 | nodePort: 30080 13 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/.gitignore: -------------------------------------------------------------------------------- 1 | *.tgz 2 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/common/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: common 3 | type: library 4 | description: A Helm library chart with shared definitions 5 | version: 1.0.0 6 | appVersion: "1.0" 7 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/common/templates/_issuer.yaml: -------------------------------------------------------------------------------- 1 | {{- define "common.issuer" -}} 2 | apiVersion: cert-manager.io/v1 3 | kind: Issuer 4 | metadata: 5 | name: selfsigned 6 | spec: 7 | selfSigned: {} 8 | {{- end -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/auth-server/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T14:23:42.376507+02:00" 7 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/auth-server/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Auth Server 4 | name: auth-server 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/auth-server/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/auth-server/config-repo/auth-server.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/auth-server.yml -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/auth-server/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/auth-server/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/auth-server/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/mongodb/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:36.265435+02:00" 7 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/mongodb/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MongoDB 4 | name: mongodb 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/mongodb/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/mongodb/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/mongodb/values.yaml: -------------------------------------------------------------------------------- 1 | fullnameOverride: mongodb 2 | 3 | image: 4 | repository: registry.hub.docker.com/library 5 | name: mongo 6 | tag: 6.0.4 7 | pullPolicy: IfNotPresent 8 | 9 | ports: 10 | - containerPort: 27017 11 | 12 | service: 13 | ports: 14 | - port: 27017 15 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/mysql/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:45.984752+02:00" 7 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/mysql/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MySQL 4 | name: mysql 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/mysql/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/mysql/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product-composite/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:04.208149+02:00" 7 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product-composite/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product Composite microservice 4 | name: product-composite 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product-composite/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product-composite/config-repo/product-composite.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product-composite.yml -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product-composite/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product-composite/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product-composite/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:55.601428+02:00" 7 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product microservice 4 | name: product 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product/config-repo/product.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product.yml -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/product/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/rabbitmq/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:13.179679+02:00" 7 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/rabbitmq/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for RabbitMQ 4 | name: rabbitmq 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/rabbitmq/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/rabbitmq/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/recommendation/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:21.782091+02:00" 7 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/recommendation/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Recommendation microservice 4 | name: recommendation 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/recommendation/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/recommendation/config-repo/recommendation.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/recommendation.yml -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/recommendation/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/recommendation/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/recommendation/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/review/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:30.417664+02:00" 7 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/review/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Review microservice 4 | name: review 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/review/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/review/config-repo/review.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/review.yml -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/review/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/review/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/review/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/zipkin-server/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:39.671627+02:00" 7 | -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/zipkin-server/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for Zipkin 4 | name: zipkin-server 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/zipkin-server/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/components/zipkin-server/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/environments/dev-env/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.ingress" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/environments/dev-env/templates/issuer.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.issuer" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/environments/dev-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/environments/prod-env/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.ingress" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/environments/prod-env/templates/issuer.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.issuer" . -}} -------------------------------------------------------------------------------- /Chapter17/kubernetes/helm/environments/prod-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter17/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter17/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter17/microservices/product-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter17/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter17/microservices/recommendation-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter17/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter17/spring-cloud/authorization-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'authorization-server' -------------------------------------------------------------------------------- /Chapter17/spring-cloud/authorization-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | ml.server.error.include-message: always 2 | 3 | ml.spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter17/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter17/spring-cloud/gateway/src/main/resources/keystore/edge.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter17/spring-cloud/gateway/src/main/resources/keystore/edge.p12 -------------------------------------------------------------------------------- /Chapter17/spring-cloud/gateway/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring.security.oauth2.resourceserver.jwt.jwk-set-uri: . -------------------------------------------------------------------------------- /Chapter17/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter18/.env: -------------------------------------------------------------------------------- 1 | RABBITMQ_USR=rabbit-user-prod 2 | RABBITMQ_PWD=rabbit-pwd-prod 3 | 4 | MONGODB_USR=mongodb-user-prod 5 | MONGODB_PWD=mongodb-pwd-prod 6 | 7 | MYSQL_ROOT_PWD=rootpwd 8 | MYSQL_USR=mysql-user-prod 9 | MYSQL_PWD=mysql-pwd-prod 10 | 11 | GATEWAY_TLS_PWD=password -------------------------------------------------------------------------------- /Chapter18/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter18/auth0/.gitignore: -------------------------------------------------------------------------------- 1 | ml.* 2 | -------------------------------------------------------------------------------- /Chapter18/auth0/env.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TENANT= 4 | MGM_CLIENT_ID= 5 | MGM_CLIENT_SECRET= 6 | USER_EMAIL= 7 | USER_PASSWORD= 8 | -------------------------------------------------------------------------------- /Chapter18/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter18/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter18/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/first-attempts/nginx-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: nginx-service 5 | spec: 6 | type: NodePort 7 | selector: 8 | app: nginx-app 9 | ports: 10 | - targetPort: 80 11 | port: 80 12 | nodePort: 30080 13 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/hands-on-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: hands-on 5 | labels: 6 | istio-injection: enabled 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/.gitignore: -------------------------------------------------------------------------------- 1 | *.tgz 2 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/common/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: common 3 | type: library 4 | description: A Helm library chart with shared definitions 5 | version: 1.0.0 6 | appVersion: "1.0" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/auth-server/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T14:23:42.376507+02:00" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/auth-server/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Auth Server 4 | name: auth-server 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/auth-server/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/auth-server/config-repo/auth-server.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/auth-server.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/auth-server/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/auth-server/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/auth-server/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/mongodb/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:36.265435+02:00" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/mongodb/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MongoDB 4 | name: mongodb 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/mongodb/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/mongodb/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/mysql/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:45.984752+02:00" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/mysql/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MySQL 4 | name: mysql 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/mysql/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/mysql/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-composite/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:04.208149+02:00" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-composite/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-composite/config-repo/product-composite.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product-composite.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-composite/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-composite/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-composite/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:55.601428+02:00" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-green/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product microservice 4 | name: product-green 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-green/config-repo/product.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:55.601428+02:00" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product microservice 4 | name: product 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product/config-repo/product.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/product/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/rabbitmq/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:13.179679+02:00" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/rabbitmq/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for RabbitMQ 4 | name: rabbitmq 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/rabbitmq/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/rabbitmq/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:21.782091+02:00" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation-green/config-repo/recommendation.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/recommendation.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:21.782091+02:00" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Recommendation microservice 4 | name: recommendation 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation/config-repo/recommendation.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/recommendation.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/recommendation/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:30.417664+02:00" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review-green/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Review microservice 4 | name: review-green 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review-green/config-repo/review.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/review.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:30.417664+02:00" 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Review microservice 4 | name: review 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review/config-repo/review.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/review.yml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/components/review/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/environments/dev-env/templates/istio_base.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_base" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/environments/dev-env/templates/istio_dr_mutual_tls.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_dr_mutual_tls" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/environments/dev-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/environments/istio-system/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for added definitions in the istio-system namespace 4 | name: istio-system 5 | version: 1.0.0 6 | 7 | -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/environments/istio-system/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter18/kubernetes/helm/environments/istio-system/values.yaml -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/environments/prod-env/templates/istio_base.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_base" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/environments/prod-env/templates/istio_dr_mutual_tls.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_dr_mutual_tls" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/environments/prod-env/templates/istio_vs_green_blue_deploy.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_vs_green_blue_deploy" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/helm/environments/prod-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter18/kubernetes/istio-tracing.yml: -------------------------------------------------------------------------------- 1 | apiVersion: install.istio.io/v1alpha1 2 | kind: IstioOperator 3 | spec: 4 | meshConfig: 5 | enableTracing: true 6 | defaultConfig: 7 | tracing: 8 | sampling: 100 9 | -------------------------------------------------------------------------------- /Chapter18/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter18/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter18/microservices/product-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter18/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter18/microservices/recommendation-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter18/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter18/spring-cloud/authorization-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'authorization-server' -------------------------------------------------------------------------------- /Chapter18/spring-cloud/authorization-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | ml.server.error.include-message: always 2 | 3 | ml.spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter18/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter18/spring-cloud/gateway/src/main/resources/keystore/edge.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter18/spring-cloud/gateway/src/main/resources/keystore/edge.p12 -------------------------------------------------------------------------------- /Chapter18/spring-cloud/gateway/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring.security.oauth2.resourceserver.jwt.jwk-set-uri: . -------------------------------------------------------------------------------- /Chapter18/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter19/.env: -------------------------------------------------------------------------------- 1 | RABBITMQ_USR=rabbit-user-prod 2 | RABBITMQ_PWD=rabbit-pwd-prod 3 | 4 | MONGODB_USR=mongodb-user-prod 5 | MONGODB_PWD=mongodb-pwd-prod 6 | 7 | MYSQL_ROOT_PWD=rootpwd 8 | MYSQL_USR=mysql-user-prod 9 | MYSQL_PWD=mysql-pwd-prod 10 | 11 | GATEWAY_TLS_PWD=password -------------------------------------------------------------------------------- /Chapter19/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter19/auth0/.gitignore: -------------------------------------------------------------------------------- 1 | ml.* 2 | -------------------------------------------------------------------------------- /Chapter19/auth0/env.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TENANT= 4 | MGM_CLIENT_ID= 5 | MGM_CLIENT_SECRET= 6 | USER_EMAIL= 7 | USER_PASSWORD= 8 | -------------------------------------------------------------------------------- /Chapter19/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter19/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter19/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/efk/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM fluent/fluentd-kubernetes-daemonset:v1.4.2-debian-elasticsearch-1.1 2 | 3 | RUN gem install fluent-plugin-detect-exceptions -v 0.0.12 \ 4 | && gem sources --clear-all \ 5 | && rm -rf /var/lib/apt/lists/* \ 6 | /home/fluent/.gem/ruby/2.3.0/cache/*.gem 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/first-attempts/nginx-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: nginx-service 5 | spec: 6 | type: NodePort 7 | selector: 8 | app: nginx-app 9 | ports: 10 | - targetPort: 80 11 | port: 80 12 | nodePort: 30080 13 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/hands-on-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: hands-on 5 | labels: 6 | istio-injection: enabled 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/.gitignore: -------------------------------------------------------------------------------- 1 | *.tgz 2 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/common/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: common 3 | type: library 4 | description: A Helm library chart with shared definitions 5 | version: 1.0.0 6 | appVersion: "1.0" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/auth-server/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T14:23:42.376507+02:00" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/auth-server/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Auth Server 4 | name: auth-server 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/auth-server/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/auth-server/config-repo/auth-server.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/auth-server.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/auth-server/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/auth-server/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/auth-server/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/mongodb/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:36.265435+02:00" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/mongodb/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MongoDB 4 | name: mongodb 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/mongodb/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/mongodb/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/mysql/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:45.984752+02:00" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/mysql/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MySQL 4 | name: mysql 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/mysql/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/mysql/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-composite/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:04.208149+02:00" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-composite/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-composite/config-repo/product-composite.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product-composite.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-composite/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-composite/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-composite/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:55.601428+02:00" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-green/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product microservice 4 | name: product-green 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-green/config-repo/product.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:55.601428+02:00" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product microservice 4 | name: product 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product/config-repo/product.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/product/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/rabbitmq/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:13.179679+02:00" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/rabbitmq/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for RabbitMQ 4 | name: rabbitmq 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/rabbitmq/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/rabbitmq/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:21.782091+02:00" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation-green/config-repo/recommendation.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/recommendation.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:21.782091+02:00" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Recommendation microservice 4 | name: recommendation 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation/config-repo/recommendation.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/recommendation.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/recommendation/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:30.417664+02:00" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review-green/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Review microservice 4 | name: review-green 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review-green/config-repo/review.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/review.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:30.417664+02:00" 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Review microservice 4 | name: review 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review/config-repo/review.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/review.yml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/components/review/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/environments/dev-env/templates/istio_base.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_base" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/environments/dev-env/templates/istio_dr_mutual_tls.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_dr_mutual_tls" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/environments/dev-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/environments/istio-system/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for added definitions in the istio-system namespace 4 | name: istio-system 5 | version: 1.0.0 6 | 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/environments/istio-system/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter19/kubernetes/helm/environments/istio-system/values.yaml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/environments/logging/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for added definitions in the logging namespace 4 | name: logging 5 | version: 1.0.0 6 | 7 | -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/environments/logging/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter19/kubernetes/helm/environments/logging/values.yaml -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/environments/prod-env/templates/istio_base.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_base" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/environments/prod-env/templates/istio_dr_mutual_tls.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_dr_mutual_tls" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/environments/prod-env/templates/istio_vs_green_blue_deploy.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_vs_green_blue_deploy" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/helm/environments/prod-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter19/kubernetes/istio-tracing.yml: -------------------------------------------------------------------------------- 1 | apiVersion: install.istio.io/v1alpha1 2 | kind: IstioOperator 3 | spec: 4 | meshConfig: 5 | enableTracing: true 6 | defaultConfig: 7 | tracing: 8 | sampling: 100 9 | -------------------------------------------------------------------------------- /Chapter19/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter19/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter19/microservices/product-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter19/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter19/microservices/recommendation-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter19/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter19/spring-cloud/authorization-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'authorization-server' -------------------------------------------------------------------------------- /Chapter19/spring-cloud/authorization-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | ml.server.error.include-message: always 2 | 3 | ml.spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter19/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter19/spring-cloud/gateway/src/main/resources/keystore/edge.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter19/spring-cloud/gateway/src/main/resources/keystore/edge.p12 -------------------------------------------------------------------------------- /Chapter19/spring-cloud/gateway/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring.security.oauth2.resourceserver.jwt.jwk-set-uri: . -------------------------------------------------------------------------------- /Chapter19/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter20/.env: -------------------------------------------------------------------------------- 1 | RABBITMQ_USR=rabbit-user-prod 2 | RABBITMQ_PWD=rabbit-pwd-prod 3 | 4 | MONGODB_USR=mongodb-user-prod 5 | MONGODB_PWD=mongodb-pwd-prod 6 | 7 | MYSQL_ROOT_PWD=rootpwd 8 | MYSQL_USR=mysql-user-prod 9 | MYSQL_PWD=mysql-pwd-prod 10 | 11 | GATEWAY_TLS_PWD=password -------------------------------------------------------------------------------- /Chapter20/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter20/auth0/.gitignore: -------------------------------------------------------------------------------- 1 | ml.* 2 | -------------------------------------------------------------------------------- /Chapter20/auth0/env.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TENANT= 4 | MGM_CLIENT_ID= 5 | MGM_CLIENT_SECRET= 6 | USER_EMAIL= 7 | USER_PASSWORD= 8 | -------------------------------------------------------------------------------- /Chapter20/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter20/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter20/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/efk/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM fluent/fluentd-kubernetes-daemonset:v1.4.2-debian-elasticsearch-1.1 2 | 3 | RUN gem install fluent-plugin-detect-exceptions -v 0.0.12 \ 4 | && gem sources --clear-all \ 5 | && rm -rf /var/lib/apt/lists/* \ 6 | /home/fluent/.gem/ruby/2.3.0/cache/*.gem 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/first-attempts/nginx-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: nginx-service 5 | spec: 6 | type: NodePort 7 | selector: 8 | app: nginx-app 9 | ports: 10 | - targetPort: 80 11 | port: 80 12 | nodePort: 30080 13 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/hands-on-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: hands-on 5 | labels: 6 | istio-injection: enabled 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/.gitignore: -------------------------------------------------------------------------------- 1 | *.tgz 2 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/common/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: common 3 | type: library 4 | description: A Helm library chart with shared definitions 5 | version: 1.0.0 6 | appVersion: "1.0" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/auth-server/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T14:23:42.376507+02:00" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/auth-server/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Auth Server 4 | name: auth-server 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/auth-server/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/auth-server/config-repo/auth-server.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/auth-server.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/auth-server/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/auth-server/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/auth-server/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/mongodb/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:36.265435+02:00" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/mongodb/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MongoDB 4 | name: mongodb 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/mongodb/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/mongodb/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/mysql/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:45.984752+02:00" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/mysql/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MySQL 4 | name: mysql 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/mysql/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/mysql/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-composite/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:04.208149+02:00" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-composite/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-composite/config-repo/product-composite.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product-composite.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-composite/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-composite/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-composite/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:55.601428+02:00" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-green/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product microservice 4 | name: product-green 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-green/config-repo/product.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:55.601428+02:00" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product microservice 4 | name: product 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product/config-repo/product.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/product/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/rabbitmq/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:13.179679+02:00" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/rabbitmq/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for RabbitMQ 4 | name: rabbitmq 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/rabbitmq/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/rabbitmq/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:21.782091+02:00" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation-green/config-repo/recommendation.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/recommendation.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:21.782091+02:00" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Recommendation microservice 4 | name: recommendation 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation/config-repo/recommendation.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/recommendation.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/recommendation/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:30.417664+02:00" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review-green/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Review microservice 4 | name: review-green 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review-green/config-repo/review.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/review.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:30.417664+02:00" 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Review microservice 4 | name: review 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review/config-repo/review.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/review.yml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/components/review/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/environments/dev-env/templates/istio_base.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_base" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/environments/dev-env/templates/istio_dr_mutual_tls.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_dr_mutual_tls" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/environments/dev-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/environments/istio-system/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for added definitions in the istio-system namespace 4 | name: istio-system 5 | version: 1.0.0 6 | 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/environments/istio-system/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter20/kubernetes/helm/environments/istio-system/values.yaml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/environments/logging/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for added definitions in the logging namespace 4 | name: logging 5 | version: 1.0.0 6 | 7 | -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/environments/logging/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter20/kubernetes/helm/environments/logging/values.yaml -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/environments/prod-env/templates/istio_base.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_base" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/environments/prod-env/templates/istio_dr_mutual_tls.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_dr_mutual_tls" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/environments/prod-env/templates/istio_vs_green_blue_deploy.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_vs_green_blue_deploy" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/helm/environments/prod-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter20/kubernetes/istio-tracing.yml: -------------------------------------------------------------------------------- 1 | apiVersion: install.istio.io/v1alpha1 2 | kind: IstioOperator 3 | spec: 4 | meshConfig: 5 | enableTracing: true 6 | defaultConfig: 7 | tracing: 8 | sampling: 100 9 | -------------------------------------------------------------------------------- /Chapter20/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter20/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter20/microservices/product-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter20/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter20/microservices/recommendation-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter20/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter20/spring-cloud/authorization-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'authorization-server' -------------------------------------------------------------------------------- /Chapter20/spring-cloud/authorization-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | ml.server.error.include-message: always 2 | 3 | ml.spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter20/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter20/spring-cloud/gateway/src/main/resources/keystore/edge.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter20/spring-cloud/gateway/src/main/resources/keystore/edge.p12 -------------------------------------------------------------------------------- /Chapter20/spring-cloud/gateway/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring.security.oauth2.resourceserver.jwt.jwk-set-uri: . -------------------------------------------------------------------------------- /Chapter20/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | -------------------------------------------------------------------------------- /Chapter23/.env: -------------------------------------------------------------------------------- 1 | RABBITMQ_USR=rabbit-user-prod 2 | RABBITMQ_PWD=rabbit-pwd-prod 3 | 4 | MONGODB_USR=mongodb-user-prod 5 | MONGODB_PWD=mongodb-pwd-prod 6 | 7 | MYSQL_ROOT_PWD=rootpwd 8 | MYSQL_USR=mysql-user-prod 9 | MYSQL_PWD=mysql-pwd-prod 10 | 11 | GATEWAY_TLS_PWD=password -------------------------------------------------------------------------------- /Chapter23/api/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'api' 2 | -------------------------------------------------------------------------------- /Chapter23/auth0/.gitignore: -------------------------------------------------------------------------------- 1 | ml.* 2 | -------------------------------------------------------------------------------- /Chapter23/auth0/env.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TENANT= 4 | MGM_CLIENT_ID= 5 | MGM_CLIENT_SECRET= 6 | USER_EMAIL= 7 | USER_PASSWORD= 8 | -------------------------------------------------------------------------------- /Chapter23/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter23/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Chapter23/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/efk/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM fluent/fluentd-kubernetes-daemonset:v1.4.2-debian-elasticsearch-1.1 2 | 3 | RUN gem install fluent-plugin-detect-exceptions -v 0.0.12 \ 4 | && gem sources --clear-all \ 5 | && rm -rf /var/lib/apt/lists/* \ 6 | /home/fluent/.gem/ruby/2.3.0/cache/*.gem 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/first-attempts/nginx-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: nginx-service 5 | spec: 6 | type: NodePort 7 | selector: 8 | app: nginx-app 9 | ports: 10 | - targetPort: 80 11 | port: 80 12 | nodePort: 30080 13 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/hands-on-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: hands-on 5 | labels: 6 | istio-injection: enabled 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/.gitignore: -------------------------------------------------------------------------------- 1 | *.tgz 2 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/common/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: common 3 | type: library 4 | description: A Helm library chart with shared definitions 5 | version: 1.0.0 6 | appVersion: "1.0" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/auth-server/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T14:23:42.376507+02:00" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/auth-server/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Auth Server 4 | name: auth-server 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/auth-server/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/auth-server/config-repo/auth-server.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/auth-server.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/auth-server/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/auth-server/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/auth-server/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/mongodb/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:36.265435+02:00" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/mongodb/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MongoDB 4 | name: mongodb 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/mongodb/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/mongodb/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/mysql/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:45.984752+02:00" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/mysql/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for MySQL 4 | name: mysql 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/mysql/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/mysql/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-composite/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:04.208149+02:00" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-composite/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-composite/config-repo/product-composite.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product-composite.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-composite/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-composite/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-composite/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:55.601428+02:00" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-green/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product microservice 4 | name: product-green 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-green/config-repo/product.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:23:55.601428+02:00" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Product microservice 4 | name: product 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product/config-repo/product.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/product.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/product/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/rabbitmq/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:13.179679+02:00" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/rabbitmq/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for RabbitMQ 4 | name: rabbitmq 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/rabbitmq/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/rabbitmq/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:21.782091+02:00" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation-green/config-repo/recommendation.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/recommendation.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:21.782091+02:00" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Recommendation microservice 4 | name: recommendation 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation/config-repo/recommendation.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/recommendation.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/recommendation/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review-green/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:30.417664+02:00" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review-green/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Review microservice 4 | name: review-green 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review-green/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review-green/config-repo/review.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/review.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review-green/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review-green/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: file://../../common 4 | version: 1.0.0 5 | digest: sha256:740d28fb032b5b1ef62cfd7548cc9467a6031bc4e970f953dd56ed097a03f4ed 6 | generated: "2021-04-25T16:24:30.417664+02:00" 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for the Review microservice 4 | name: review 5 | version: 1.0.0 6 | 7 | dependencies: 8 | - name: common 9 | version: 1.0.0 10 | repository: file://../../common -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review/config-repo/application.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/application.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review/config-repo/review.yml: -------------------------------------------------------------------------------- 1 | ../../../../../config-repo/review.yml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review/templates/configmap_from_file.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.configmap_from_file" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.deployment" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/components/review/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.service" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/dev-env-native/templates/istio_base.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_base" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/dev-env-native/templates/istio_dr_mutual_tls.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_dr_mutual_tls" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/dev-env-native/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/dev-env/templates/istio_base.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_base" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/dev-env/templates/istio_dr_mutual_tls.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_dr_mutual_tls" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/dev-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/istio-system/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for added definitions in the istio-system namespace 4 | name: istio-system 5 | version: 1.0.0 6 | 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/istio-system/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter23/kubernetes/helm/environments/istio-system/values.yaml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/logging/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "1.0" 3 | description: A Helm chart for added definitions in the logging namespace 4 | name: logging 5 | version: 1.0.0 6 | 7 | -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/logging/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter23/kubernetes/helm/environments/logging/values.yaml -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/prod-env/templates/istio_base.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_base" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/prod-env/templates/istio_dr_mutual_tls.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_dr_mutual_tls" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/prod-env/templates/istio_vs_green_blue_deploy.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.istio_vs_green_blue_deploy" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/helm/environments/prod-env/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- template "common.secrets" . -}} -------------------------------------------------------------------------------- /Chapter23/kubernetes/istio-tracing.yml: -------------------------------------------------------------------------------- 1 | apiVersion: install.istio.io/v1alpha1 2 | kind: IstioOperator 3 | spec: 4 | meshConfig: 5 | enableTracing: true 6 | defaultConfig: 7 | tracing: 8 | sampling: 100 9 | -------------------------------------------------------------------------------- /Chapter23/microservices/product-composite-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-composite-service' 2 | -------------------------------------------------------------------------------- /Chapter23/microservices/product-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'product-service' 2 | -------------------------------------------------------------------------------- /Chapter23/microservices/product-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter23/microservices/recommendation-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'recommendation-service' 2 | -------------------------------------------------------------------------------- /Chapter23/microservices/recommendation-service/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | server.error.include-message: always 2 | 3 | spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter23/microservices/review-service/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'review-service' 2 | -------------------------------------------------------------------------------- /Chapter23/spring-cloud/authorization-server/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'authorization-server' -------------------------------------------------------------------------------- /Chapter23/spring-cloud/authorization-server/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | ml.server.error.include-message: always 2 | 3 | ml.spring.cloud.stream.defaultBinder: rabbit 4 | 5 | -------------------------------------------------------------------------------- /Chapter23/spring-cloud/gateway/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway' 2 | -------------------------------------------------------------------------------- /Chapter23/spring-cloud/gateway/src/main/resources/keystore/edge.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Microservices-with-Spring-Boot-and-Spring-Cloud-Third-Edition/816693dc82d65e880cead018bf3be08fcbefdd74/Chapter23/spring-cloud/gateway/src/main/resources/keystore/edge.p12 -------------------------------------------------------------------------------- /Chapter23/spring-cloud/gateway/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring.security.oauth2.resourceserver.jwt.jwk-set-uri: . -------------------------------------------------------------------------------- /Chapter23/util/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'util' 2 | --------------------------------------------------------------------------------