├── 01-hello-world-rest-api ├── .DS_Store ├── .settings.md ├── 01-aws-eb-01-spring-boot-hello-world-rest-api │ ├── .DS_Store │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── HelloWorldBean.java │ │ │ │ ├── HelloWorldController.java │ │ │ │ └── RestfulWebServicesApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java ├── 02-pcf-01-hello-world-rest-api │ ├── blue-green.txt │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── HelloWorldBean.java │ │ │ │ ├── HelloWorldController.java │ │ │ │ └── RestfulWebServicesApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java ├── 03-azure-wa-01-hello-world-rest-api │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── HelloWorldBean.java │ │ │ │ ├── HelloWorldController.java │ │ │ │ └── RestfulWebServicesApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java ├── 04-aws-ecs-fargate-01-hello-world-rest-api │ ├── Dockerfile │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── HelloWorldBean.java │ │ │ │ ├── HelloWorldController.java │ │ │ │ └── RestfulWebServicesApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java ├── 05-docker-01-hello-world-rest-api │ ├── code-backup │ │ ├── 01-docker-file-maven-plugin.md │ │ ├── 01-docker-file-maven-plugin.zip │ │ ├── 02-jib.md │ │ ├── 02-jib.zip │ │ ├── 03-fabric8-docker-plugin-using-dockerfile.md │ │ ├── 03-fabric8-docker-plugin-using-dockerfile.zip │ │ ├── 04-fabric8-docker-plugin-xml-configuration.md │ │ └── 04-fabric8-docker-plugin-xml-configuration.zip │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── HelloWorldBean.java │ │ │ │ ├── HelloWorldController.java │ │ │ │ └── RestfulWebServicesApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java ├── 06-kubernetes-01-hello-world-rest-api │ ├── Dockerfile │ ├── backup │ │ ├── deployment-00-original.yaml │ │ ├── deployment-01-after-cleanup.yaml │ │ ├── deployment-02-using-replica-set.yaml │ │ ├── deployment-03-Multiple-Deployments-With-Same-Service.yaml │ │ ├── deployment-10-at-end-of-course.yaml │ │ └── service-00-original.yaml │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── HelloWorldBean.java │ │ │ │ ├── HelloWorldController.java │ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ │ └── environment │ │ │ │ └── InstanceInformationService.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java └── final.md ├── 02-spring-boot-web-application-h2 ├── .DS_Store ├── aws-eb-03-spring-boot-web-application-h2 │ ├── .DS_Store │ ├── log │ │ ├── cron │ │ ├── httpd │ │ │ ├── access_log │ │ │ ├── elasticbeanstalk-access_log │ │ │ ├── elasticbeanstalk-error_log │ │ │ └── error_log │ │ ├── messages │ │ ├── monit │ │ └── tomcat8 │ │ │ ├── catalina.out │ │ │ └── localhost_access_log.txt │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── springboot │ │ │ │ └── web │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ │ ├── controller │ │ │ │ ├── ErrorController.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── TodoController.java │ │ │ │ └── WelcomeController.java │ │ │ │ ├── model │ │ │ │ └── Todo.java │ │ │ │ ├── security │ │ │ │ └── SecurityConfiguration.java │ │ │ │ └── service │ │ │ │ ├── TodoRepository.java │ │ │ │ └── TodoService.java │ │ ├── resources │ │ │ ├── application.properties │ │ │ └── data.sql │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── jsp │ │ │ ├── common │ │ │ ├── footer.jspf │ │ │ ├── header.jspf │ │ │ └── navigation.jspf │ │ │ ├── error.jsp │ │ │ ├── list-todos.jsp │ │ │ ├── todo.jsp │ │ │ └── welcome.jsp │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── springboot │ │ └── web │ │ └── SpringBootFirstWebApplicationTests.java ├── azure-wa-02-todo-web-application-h2 │ ├── Dockerfile │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── springboot │ │ │ │ └── web │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ │ ├── controller │ │ │ │ ├── ErrorController.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── TodoController.java │ │ │ │ └── WelcomeController.java │ │ │ │ ├── model │ │ │ │ └── Todo.java │ │ │ │ ├── security │ │ │ │ └── SecurityConfiguration.java │ │ │ │ └── service │ │ │ │ └── TodoRepository.java │ │ ├── resources │ │ │ ├── application.properties │ │ │ └── data.sql │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── jsp │ │ │ ├── common │ │ │ ├── footer.jspf │ │ │ ├── header.jspf │ │ │ └── navigation.jspf │ │ │ ├── error.jsp │ │ │ ├── list-todos.jsp │ │ │ ├── todo.jsp │ │ │ └── welcome.jsp │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── springboot │ │ └── web │ │ └── SpringBootFirstWebApplicationTests.java ├── docker-02-todo-web-application-h2 │ ├── Dockerfile │ ├── code-backup │ │ ├── 01-web-app-with-spotify-dockerfile-maven-plugin.md │ │ └── 01-web-app-with-spotify-dockerfile-maven-plugin.zip │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── springboot │ │ │ │ └── web │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ │ ├── controller │ │ │ │ ├── ErrorController.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── TodoController.java │ │ │ │ └── WelcomeController.java │ │ │ │ ├── model │ │ │ │ └── Todo.java │ │ │ │ ├── security │ │ │ │ └── SecurityConfiguration.java │ │ │ │ └── service │ │ │ │ └── TodoRepository.java │ │ ├── resources │ │ │ ├── application.properties │ │ │ └── data.sql │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── jsp │ │ │ ├── common │ │ │ ├── footer.jspf │ │ │ ├── header.jspf │ │ │ └── navigation.jspf │ │ │ ├── error.jsp │ │ │ ├── list-todos.jsp │ │ │ ├── todo.jsp │ │ │ └── welcome.jsp │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── springboot │ │ └── web │ │ └── SpringBootFirstWebApplicationTests.java ├── final.md ├── kubernetes-02-todo-web-application-h2 │ ├── Dockerfile │ ├── backup │ │ └── deployment.yaml │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── springboot │ │ │ │ └── web │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ │ ├── controller │ │ │ │ ├── ErrorController.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── TodoController.java │ │ │ │ └── WelcomeController.java │ │ │ │ ├── model │ │ │ │ └── Todo.java │ │ │ │ ├── security │ │ │ │ └── SecurityConfiguration.java │ │ │ │ └── service │ │ │ │ └── TodoRepository.java │ │ ├── resources │ │ │ ├── application.properties │ │ │ └── data.sql │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── jsp │ │ │ ├── common │ │ │ ├── footer.jspf │ │ │ ├── header.jspf │ │ │ └── navigation.jspf │ │ │ ├── error.jsp │ │ │ ├── list-todos.jsp │ │ │ ├── todo.jsp │ │ │ └── welcome.jsp │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── springboot │ │ └── web │ │ └── SpringBootFirstWebApplicationTests.java └── pcf-02-todo-web-application-h2 │ ├── pom.xml │ ├── readme.md │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── in28minutes │ │ │ └── springboot │ │ │ └── web │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ ├── controller │ │ │ ├── ErrorController.java │ │ │ ├── LogoutController.java │ │ │ ├── TodoController.java │ │ │ └── WelcomeController.java │ │ │ ├── model │ │ │ └── Todo.java │ │ │ ├── security │ │ │ └── SecurityConfiguration.java │ │ │ └── service │ │ │ └── TodoRepository.java │ ├── resources │ │ ├── application.properties │ │ └── data.sql │ └── webapp │ │ └── WEB-INF │ │ └── jsp │ │ ├── common │ │ ├── footer.jspf │ │ ├── header.jspf │ │ └── navigation.jspf │ │ ├── error.jsp │ │ ├── list-todos.jsp │ │ ├── todo.jsp │ │ └── welcome.jsp │ └── test │ └── java │ └── com │ └── in28minutes │ └── springboot │ └── web │ └── SpringBootFirstWebApplicationTests.java ├── 03-spring-boot-web-application-mysql ├── .DS_Store ├── aws-eb-04-spring-boot-web-application-mysql │ ├── .DS_Store │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── .DS_Store │ │ ├── main │ │ ├── .DS_Store │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── springboot │ │ │ │ └── web │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ │ ├── controller │ │ │ │ ├── ErrorController.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── TodoController.java │ │ │ │ └── WelcomeController.java │ │ │ │ ├── model │ │ │ │ └── Todo.java │ │ │ │ ├── security │ │ │ │ └── SecurityConfiguration.java │ │ │ │ └── service │ │ │ │ ├── TodoRepository.java │ │ │ │ └── TodoService.java │ │ ├── resources │ │ │ └── application.properties │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── jsp │ │ │ ├── common │ │ │ ├── footer.jspf │ │ │ ├── header.jspf │ │ │ └── navigation.jspf │ │ │ ├── error.jsp │ │ │ ├── list-todos.jsp │ │ │ ├── todo.jsp │ │ │ └── welcome.jsp │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── in28minutes │ │ │ └── springboot │ │ │ └── web │ │ │ └── SpringBootFirstWebApplicationTests.java │ │ └── resources │ │ └── application.properties ├── aws-eb-04-spring-boot-web-application-mysqlStep.md ├── azure-wa-03-todo-web-application-mysql │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── springboot │ │ │ │ └── web │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ │ ├── controller │ │ │ │ ├── ErrorController.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── TodoController.java │ │ │ │ └── WelcomeController.java │ │ │ │ ├── model │ │ │ │ └── Todo.java │ │ │ │ ├── security │ │ │ │ └── SecurityConfiguration.java │ │ │ │ └── service │ │ │ │ ├── TodoRepository.java │ │ │ │ └── TodoService.java │ │ ├── resources │ │ │ └── application.properties │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── jsp │ │ │ ├── common │ │ │ ├── footer.jspf │ │ │ ├── header.jspf │ │ │ └── navigation.jspf │ │ │ ├── error.jsp │ │ │ ├── list-todos.jsp │ │ │ ├── todo.jsp │ │ │ └── welcome.jsp │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── in28minutes │ │ │ └── springboot │ │ │ └── web │ │ │ └── SpringBootFirstWebApplicationTests.java │ │ └── resources │ │ └── application.properties ├── azure-wa-03-todo-web-application-mysqlStep.md ├── docker-03-todo-web-application-mysql │ ├── Dockerfile │ ├── docker-compose.yml │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── springboot │ │ │ │ └── web │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ │ ├── controller │ │ │ │ ├── ErrorController.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── TodoController.java │ │ │ │ └── WelcomeController.java │ │ │ │ ├── model │ │ │ │ └── Todo.java │ │ │ │ ├── security │ │ │ │ └── SecurityConfiguration.java │ │ │ │ └── service │ │ │ │ ├── TodoRepository.java │ │ │ │ └── TodoService.java │ │ ├── resources │ │ │ └── application.properties │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── jsp │ │ │ ├── common │ │ │ ├── footer.jspf │ │ │ ├── header.jspf │ │ │ └── navigation.jspf │ │ │ ├── error.jsp │ │ │ ├── list-todos.jsp │ │ │ ├── todo.jsp │ │ │ └── welcome.jsp │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── in28minutes │ │ │ └── springboot │ │ │ └── web │ │ │ └── SpringBootFirstWebApplicationTests.java │ │ └── resources │ │ └── application.properties ├── docker-03-todo-web-application-mysqlStep.md ├── final.md ├── kubernetes-03-todo-web-application-mysql │ ├── .DS_Store │ ├── Dockerfile │ ├── backup │ │ ├── 00-generated-by-kompose │ │ │ ├── mysql-database-data-volume-persistentvolumeclaim-original-generated-by-kompose.yaml │ │ │ ├── mysql-deployment-original-generated-by-kompose.yaml │ │ │ ├── mysql-service-original-generated-by-kompose.yaml │ │ │ ├── todo-web-application-deployment-original-generated-by-kompose.yaml │ │ │ └── todo-web-application-service-original-generated-by-kompose.yaml │ │ ├── 01-updated-manually │ │ │ ├── mysql-database-data-volume-persistentvolumeclaim.yaml │ │ │ ├── mysql-deployment.yaml │ │ │ ├── mysql-service.yaml │ │ │ ├── todo-web-application-deployment.yaml │ │ │ └── todo-web-application-service.yaml │ │ ├── 02-final-backup-at-end-of-course │ │ │ ├── mysql-database-data-volume-persistentvolumeclaim.yaml │ │ │ ├── mysql-deployment.yaml │ │ │ ├── mysql-service.yaml │ │ │ ├── todo-web-application-deployment.yaml │ │ │ └── todo-web-application-service.yaml │ │ └── backup-mid-course-03-mysql.zip │ ├── docker-compose.yml │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── springboot │ │ │ │ └── web │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ │ ├── controller │ │ │ │ ├── ErrorController.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── TodoController.java │ │ │ │ └── WelcomeController.java │ │ │ │ ├── model │ │ │ │ └── Todo.java │ │ │ │ ├── security │ │ │ │ └── SecurityConfiguration.java │ │ │ │ └── service │ │ │ │ ├── TodoRepository.java │ │ │ │ └── TodoService.java │ │ ├── resources │ │ │ └── application.properties │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── jsp │ │ │ ├── common │ │ │ ├── footer.jspf │ │ │ ├── header.jspf │ │ │ └── navigation.jspf │ │ │ ├── error.jsp │ │ │ ├── list-todos.jsp │ │ │ ├── todo.jsp │ │ │ └── welcome.jsp │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── in28minutes │ │ │ └── springboot │ │ │ └── web │ │ │ └── SpringBootFirstWebApplicationTests.java │ │ └── resources │ │ └── application.properties ├── kubernetes-03-todo-web-application-mysqlStep.md ├── pcf-03-todo-web-application-mysql │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── springboot │ │ │ │ └── web │ │ │ │ ├── CloudFoundryDatabaseConfig.java │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ │ ├── controller │ │ │ │ ├── ErrorController.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── TodoController.java │ │ │ │ └── WelcomeController.java │ │ │ │ ├── model │ │ │ │ └── Todo.java │ │ │ │ ├── security │ │ │ │ └── SecurityConfiguration.java │ │ │ │ └── service │ │ │ │ ├── TodoRepository.java │ │ │ │ └── TodoService.java │ │ ├── resources │ │ │ └── application.properties │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── jsp │ │ │ ├── common │ │ │ ├── footer.jspf │ │ │ ├── header.jspf │ │ │ └── navigation.jspf │ │ │ ├── error.jsp │ │ │ ├── list-todos.jsp │ │ │ ├── todo.jsp │ │ │ └── welcome.jsp │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── in28minutes │ │ │ └── springboot │ │ │ └── web │ │ │ └── SpringBootFirstWebApplicationTests.java │ │ └── resources │ │ └── application.properties └── pcf-03-todo-web-application-mysqlStep.md ├── 04-spring-boot-react-full-stack-h2 ├── .DS_Store ├── aws-eb-05-spring-boot-react-full-stack-h2 │ ├── .DS_Store │ ├── frontend │ │ ├── .DS_Store │ │ └── todo-app │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── manifest.json │ │ │ └── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── App.test.js │ │ │ ├── Constants.js │ │ │ ├── api │ │ │ └── todo │ │ │ │ ├── HelloWorldService.js │ │ │ │ └── TodoDataService.js │ │ │ ├── bootstrap.css │ │ │ ├── components │ │ │ ├── counter │ │ │ │ ├── Counter.css │ │ │ │ └── Counter.jsx │ │ │ ├── learning-examples │ │ │ │ ├── FirstComponent.jsx │ │ │ │ ├── SecondComponent.jsx │ │ │ │ └── ThirdComponent.jsx │ │ │ └── todo │ │ │ │ ├── AuthenticatedRoute.jsx │ │ │ │ ├── AuthenticationService.js │ │ │ │ ├── ErrorComponent.jsx │ │ │ │ ├── FooterComponent.jsx │ │ │ │ ├── HeaderComponent.jsx │ │ │ │ ├── ListTodosComponent.jsx │ │ │ │ ├── LoginComponent.jsx │ │ │ │ ├── LogoutComponent.jsx │ │ │ │ ├── TodoApp.jsx │ │ │ │ ├── TodoComponent.jsx │ │ │ │ └── WelcomeComponent.jsx │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── logo.svg │ │ │ └── serviceWorker.js │ ├── react_00_architecture.png │ ├── readme.md │ └── restful-web-services │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ ├── basic │ │ │ │ └── auth │ │ │ │ │ ├── AuthenticationBean.java │ │ │ │ │ ├── BasicAuthenticationController.java │ │ │ │ │ └── SpringSecurityConfigurationBasicAuth.java │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ │ ├── helloworld │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ │ ├── jwt │ │ │ │ ├── JWTWebSecurityConfig.java │ │ │ │ ├── JwtInMemoryUserDetailsService.java │ │ │ │ ├── JwtTokenAuthorizationOncePerRequestFilter.java │ │ │ │ ├── JwtTokenUtil.java │ │ │ │ ├── JwtUnAuthorizedResponseAuthenticationEntryPoint.java │ │ │ │ ├── JwtUserDetails.java │ │ │ │ ├── JwtUserDetailsService.java │ │ │ │ ├── User.java │ │ │ │ ├── UserRepository.java │ │ │ │ └── resource │ │ │ │ │ ├── AuthenticationException.java │ │ │ │ │ ├── JwtAuthenticationRestController.java │ │ │ │ │ ├── JwtTokenRequest.java │ │ │ │ │ └── JwtTokenResponse.java │ │ │ │ └── todo │ │ │ │ ├── Todo.java │ │ │ │ ├── TodoJpaRepository.java │ │ │ │ └── TodoJpaResource.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── data.sql │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java ├── aws-eb-05-spring-boot-react-full-stack-h2Step.md ├── azure-wa-04-spring-boot-react-full-stack-h2 │ ├── frontend │ │ └── todo-app │ │ │ ├── .DS_Store │ │ │ ├── Dockerfile │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── manifest.json │ │ │ └── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── App.test.js │ │ │ ├── Constants.js │ │ │ ├── api │ │ │ └── todo │ │ │ │ ├── HelloWorldService.js │ │ │ │ └── TodoDataService.js │ │ │ ├── bootstrap.css │ │ │ ├── components │ │ │ ├── counter │ │ │ │ ├── Counter.css │ │ │ │ └── Counter.jsx │ │ │ ├── learning-examples │ │ │ │ ├── FirstComponent.jsx │ │ │ │ ├── SecondComponent.jsx │ │ │ │ └── ThirdComponent.jsx │ │ │ └── todo │ │ │ │ ├── AuthenticatedRoute.jsx │ │ │ │ ├── AuthenticationService.js │ │ │ │ ├── ErrorComponent.jsx │ │ │ │ ├── FooterComponent.jsx │ │ │ │ ├── HeaderComponent.jsx │ │ │ │ ├── ListTodosComponent.jsx │ │ │ │ ├── LoginComponent.jsx │ │ │ │ ├── LogoutComponent.jsx │ │ │ │ ├── TodoApp.jsx │ │ │ │ ├── TodoComponent.jsx │ │ │ │ └── WelcomeComponent.jsx │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── logo.svg │ │ │ ├── serviceWorker.js │ │ │ └── web.config │ └── restful-web-services │ │ ├── pom.xml │ │ ├── react_00_architecture.png │ │ ├── readme.md │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ ├── basic │ │ │ │ └── auth │ │ │ │ │ ├── AuthenticationBean.java │ │ │ │ │ ├── BasicAuthenticationController.java │ │ │ │ │ └── SpringSecurityConfigurationBasicAuth.java │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ │ ├── helloworld │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ │ ├── jwt │ │ │ │ ├── JWTWebSecurityConfig.java │ │ │ │ ├── JwtInMemoryUserDetailsService.java │ │ │ │ ├── JwtTokenAuthorizationOncePerRequestFilter.java │ │ │ │ ├── JwtTokenUtil.java │ │ │ │ ├── JwtUnAuthorizedResponseAuthenticationEntryPoint.java │ │ │ │ ├── JwtUserDetails.java │ │ │ │ ├── JwtUserDetailsService.java │ │ │ │ ├── User.java │ │ │ │ ├── UserRepository.java │ │ │ │ └── resource │ │ │ │ │ ├── AuthenticationException.java │ │ │ │ │ ├── JwtAuthenticationRestController.java │ │ │ │ │ ├── JwtTokenRequest.java │ │ │ │ │ └── JwtTokenResponse.java │ │ │ │ └── todo │ │ │ │ ├── Todo.java │ │ │ │ ├── TodoJpaRepository.java │ │ │ │ └── TodoJpaResource.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── data.sql │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java ├── azure-wa-04-spring-boot-react-full-stack-h2Step.md ├── docker-04-spring-boot-react-full-stack-h2 │ ├── code-backup │ │ ├── 01-startingpoint-1stage-api-2stage-frontend.md │ │ ├── 01-startingpoint-1stage-api-2stage-frontend.zip │ │ ├── 02-2-stage-api-2-stage-frontend.md │ │ └── 02-2-stage-api-2-stage-frontend.zip │ ├── docker-compose.yml │ ├── frontend │ │ └── todo-app │ │ │ ├── .DS_Store │ │ │ ├── Dockerfile │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── manifest.json │ │ │ └── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── App.test.js │ │ │ ├── Constants.js │ │ │ ├── api │ │ │ └── todo │ │ │ │ ├── HelloWorldService.js │ │ │ │ └── TodoDataService.js │ │ │ ├── bootstrap.css │ │ │ ├── components │ │ │ ├── counter │ │ │ │ ├── Counter.css │ │ │ │ └── Counter.jsx │ │ │ ├── learning-examples │ │ │ │ ├── FirstComponent.jsx │ │ │ │ ├── SecondComponent.jsx │ │ │ │ └── ThirdComponent.jsx │ │ │ └── todo │ │ │ │ ├── AuthenticatedRoute.jsx │ │ │ │ ├── AuthenticationService.js │ │ │ │ ├── ErrorComponent.jsx │ │ │ │ ├── FooterComponent.jsx │ │ │ │ ├── HeaderComponent.jsx │ │ │ │ ├── ListTodosComponent.jsx │ │ │ │ ├── LoginComponent.jsx │ │ │ │ ├── LogoutComponent.jsx │ │ │ │ ├── TodoApp.jsx │ │ │ │ ├── TodoComponent.jsx │ │ │ │ └── WelcomeComponent.jsx │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── logo.svg │ │ │ └── serviceWorker.js │ └── restful-web-services │ │ ├── Dockerfile │ │ ├── pom.xml │ │ ├── react_00_architecture.png │ │ ├── readme.md │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ ├── basic │ │ │ │ └── auth │ │ │ │ │ ├── AuthenticationBean.java │ │ │ │ │ ├── BasicAuthenticationController.java │ │ │ │ │ └── SpringSecurityConfigurationBasicAuth.java │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ │ ├── helloworld │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ │ ├── jwt │ │ │ │ ├── JWTWebSecurityConfig.java │ │ │ │ ├── JwtInMemoryUserDetailsService.java │ │ │ │ ├── JwtTokenAuthorizationOncePerRequestFilter.java │ │ │ │ ├── JwtTokenUtil.java │ │ │ │ ├── JwtUnAuthorizedResponseAuthenticationEntryPoint.java │ │ │ │ ├── JwtUserDetails.java │ │ │ │ ├── JwtUserDetailsService.java │ │ │ │ ├── User.java │ │ │ │ ├── UserRepository.java │ │ │ │ └── resource │ │ │ │ │ ├── AuthenticationException.java │ │ │ │ │ ├── JwtAuthenticationRestController.java │ │ │ │ │ ├── JwtTokenRequest.java │ │ │ │ │ └── JwtTokenResponse.java │ │ │ │ └── todo │ │ │ │ ├── Todo.java │ │ │ │ ├── TodoJpaRepository.java │ │ │ │ └── TodoJpaResource.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── data.sql │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java ├── docker-04-spring-boot-react-full-stack-h2Step.md ├── final.md ├── pcf-04-spring-boot-react-full-stack-h2 │ ├── frontend │ │ └── todo-app │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── manifest.json │ │ │ └── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── App.test.js │ │ │ ├── Constants.js │ │ │ ├── api │ │ │ └── todo │ │ │ │ ├── HelloWorldService.js │ │ │ │ └── TodoDataService.js │ │ │ ├── bootstrap.css │ │ │ ├── components │ │ │ ├── counter │ │ │ │ ├── Counter.css │ │ │ │ └── Counter.jsx │ │ │ ├── learning-examples │ │ │ │ ├── FirstComponent.jsx │ │ │ │ ├── SecondComponent.jsx │ │ │ │ └── ThirdComponent.jsx │ │ │ └── todo │ │ │ │ ├── AuthenticatedRoute.jsx │ │ │ │ ├── AuthenticationService.js │ │ │ │ ├── ErrorComponent.jsx │ │ │ │ ├── FooterComponent.jsx │ │ │ │ ├── HeaderComponent.jsx │ │ │ │ ├── ListTodosComponent.jsx │ │ │ │ ├── LoginComponent.jsx │ │ │ │ ├── LogoutComponent.jsx │ │ │ │ ├── TodoApp.jsx │ │ │ │ ├── TodoComponent.jsx │ │ │ │ └── WelcomeComponent.jsx │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── logo.svg │ │ │ └── serviceWorker.js │ ├── react_00_architecture.png │ ├── readme.md │ └── restful-web-services │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ ├── basic │ │ │ │ └── auth │ │ │ │ │ ├── AuthenticationBean.java │ │ │ │ │ ├── BasicAuthenticationController.java │ │ │ │ │ └── SpringSecurityConfigurationBasicAuth.java │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ │ ├── helloworld │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ │ ├── jwt │ │ │ │ ├── JWTWebSecurityConfig.java │ │ │ │ ├── JwtInMemoryUserDetailsService.java │ │ │ │ ├── JwtTokenAuthorizationOncePerRequestFilter.java │ │ │ │ ├── JwtTokenUtil.java │ │ │ │ ├── JwtUnAuthorizedResponseAuthenticationEntryPoint.java │ │ │ │ ├── JwtUserDetails.java │ │ │ │ ├── JwtUserDetailsService.java │ │ │ │ ├── User.java │ │ │ │ ├── UserRepository.java │ │ │ │ └── resource │ │ │ │ │ ├── AuthenticationException.java │ │ │ │ │ ├── JwtAuthenticationRestController.java │ │ │ │ │ ├── JwtTokenRequest.java │ │ │ │ │ └── JwtTokenResponse.java │ │ │ │ └── todo │ │ │ │ ├── Todo.java │ │ │ │ ├── TodoJpaRepository.java │ │ │ │ └── TodoJpaResource.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── data.sql │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java └── pcf-04-spring-boot-react-full-stack-h2Step.md ├── 05-spring-boot-todo-rest-api-h2 ├── .DS_Store ├── aws-eb-02-spring-boot-todo-rest-api-h2 │ ├── .DS_Store │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ │ ├── helloworld │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ │ └── todo │ │ │ │ ├── Todo.java │ │ │ │ ├── TodoJpaRepository.java │ │ │ │ └── TodoJpaResource.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── data.sql │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java ├── aws-eb-06-todo-rest-api-h2-containerized │ ├── Dockerfile │ ├── Dockerrun.aws.json │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ │ ├── helloworld │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ │ └── todo │ │ │ │ ├── Todo.java │ │ │ │ ├── TodoJpaRepository.java │ │ │ │ └── TodoJpaResource.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java ├── azure-wa-05-todo-rest-api-h2-containerized │ ├── Dockerfile │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ │ ├── helloworld │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ │ └── todo │ │ │ │ ├── Todo.java │ │ │ │ ├── TodoJpaRepository.java │ │ │ │ └── TodoJpaResource.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java └── final.md ├── 06-spring-boot-todo-rest-api-mysql ├── .DS_Store ├── aws-eb-07-todo-rest-api-mysql-containerized │ ├── .ebextensions │ │ └── sg-extensions.config │ ├── Dockerfile │ ├── Dockerrun.aws.json │ ├── build-artifacts-backup │ │ └── with-ebextensions.zip │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ │ ├── helloworld │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ │ └── todo │ │ │ │ ├── Todo.java │ │ │ │ ├── TodoJpaRepository.java │ │ │ │ └── TodoJpaResource.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── in28minutes │ │ │ └── rest │ │ │ └── webservices │ │ │ └── restfulwebservices │ │ │ └── RestfulWebServicesApplicationTests.java │ │ └── resources │ │ └── application.properties ├── azure-wa-06-todo-rest-api-mysql-containerized │ ├── .ebextensions │ │ └── sg-extensions.config │ ├── Dockerfile │ ├── docker-compose.yaml │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ │ ├── helloworld │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ │ └── todo │ │ │ │ ├── Todo.java │ │ │ │ ├── TodoJpaRepository.java │ │ │ │ └── TodoJpaResource.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── in28minutes │ │ │ └── rest │ │ │ └── webservices │ │ │ └── restfulwebservices │ │ │ └── RestfulWebServicesApplicationTests.java │ │ └── resources │ │ └── application.properties └── final.md ├── 09-microservices ├── .DS_Store ├── 01-currency-exchange-service │ ├── .DS_Store │ ├── 01-pcf-05-currency-exchange-service │ │ ├── Dockerfile │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyexchangeservice │ │ │ │ │ ├── CurrencyExchangeServiceApplicationH2.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyExchangeController.java │ │ │ │ │ ├── ExchangeValue.java │ │ │ │ │ └── ExchangeValueRepository.java │ │ │ │ │ ├── security │ │ │ │ │ └── SecurityConfiguration.java │ │ │ │ │ └── util │ │ │ │ │ └── environment │ │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ │ └── InstanceInformationService.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── data.sql │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyexchangeservice │ │ │ └── CurrencyExchangeServiceApplicationTests.java │ ├── aws-ecs-fargate-03-currency-exchange-service-h2 │ │ ├── Dockerfile │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyexchangeservice │ │ │ │ │ ├── CurrencyExchangeServiceApplicationH2.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyExchangeController.java │ │ │ │ │ ├── ExchangeValue.java │ │ │ │ │ └── ExchangeValueRepository.java │ │ │ │ │ └── util │ │ │ │ │ ├── containerservice │ │ │ │ │ └── ContainerMetaDataService.java │ │ │ │ │ └── logging │ │ │ │ │ └── EnvironmentConfigurationLogger.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── data.sql │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyexchangeservice │ │ │ └── CurrencyExchangeServiceApplicationTests.java │ ├── aws-ecs-fargate-04-currency-exchange-service-mysql │ │ ├── Dockerfile │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyexchangeservice │ │ │ │ │ ├── CurrencyExchangeServiceApplicationMySql.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyExchangeController.java │ │ │ │ │ ├── ExchangeValue.java │ │ │ │ │ └── ExchangeValueRepository.java │ │ │ │ │ └── util │ │ │ │ │ ├── containerservice │ │ │ │ │ └── ContainerMetaDataService.java │ │ │ │ │ └── logging │ │ │ │ │ └── EnvironmentConfigurationLogger.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── microservices │ │ │ │ └── currencyexchangeservice │ │ │ │ └── CurrencyExchangeServiceApplicationTests.java │ │ │ └── resources │ │ │ └── application.properties │ ├── aws-ecs-fargate-06-currency-exchange-service-h2-xray │ │ ├── Dockerfile │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyexchangeservice │ │ │ │ │ ├── CurrencyExchangeServiceApplicationH2.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyExchangeController.java │ │ │ │ │ ├── ExchangeValue.java │ │ │ │ │ └── ExchangeValueRepository.java │ │ │ │ │ ├── util │ │ │ │ │ ├── containerservice │ │ │ │ │ │ └── ContainerMetaDataService.java │ │ │ │ │ └── logging │ │ │ │ │ │ └── EnvironmentConfigurationLogger.java │ │ │ │ │ └── xray │ │ │ │ │ ├── AwsXrayConfig.java │ │ │ │ │ └── XRayInspector.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── data.sql │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyexchangeservice │ │ │ └── CurrencyExchangeServiceApplicationTests.java │ ├── docker-currency-exchange-service │ │ ├── Dockerfile │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyexchangeservice │ │ │ │ │ ├── CurrencyExchangeServiceApplicationH2.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyExchangeController.java │ │ │ │ │ ├── ExchangeValue.java │ │ │ │ │ └── ExchangeValueRepository.java │ │ │ │ │ ├── security │ │ │ │ │ └── SecurityConfiguration.java │ │ │ │ │ └── util │ │ │ │ │ └── environment │ │ │ │ │ └── EnvironmentConfigurationLogger.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── data.sql │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyexchangeservice │ │ │ └── CurrencyExchangeServiceApplicationTests.java │ ├── final.md │ ├── kubernetes-04-currency-exchange-microservice-basic │ │ ├── 00-configmap-currency-conversion.yaml │ │ ├── 01-hpa.yaml │ │ ├── Dockerfile │ │ ├── deployment.yaml │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyexchangeservice │ │ │ │ │ ├── CurrencyExchangeServiceApplicationH2.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyExchangeController.java │ │ │ │ │ ├── ExchangeValue.java │ │ │ │ │ └── ExchangeValueRepository.java │ │ │ │ │ ├── security │ │ │ │ │ └── SecurityConfiguration.java │ │ │ │ │ └── util │ │ │ │ │ └── environment │ │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ │ └── InstanceInformationService.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── data.sql │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyexchangeservice │ │ │ └── CurrencyExchangeServiceApplicationTests.java │ ├── kubernetes-07-currency-exchange-microservice-stackdriver │ │ ├── Dockerfile │ │ ├── deployment.yaml │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyexchangeservice │ │ │ │ │ ├── CurrencyExchangeServiceApplicationH2.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyExchangeController.java │ │ │ │ │ ├── ExchangeValue.java │ │ │ │ │ └── ExchangeValueRepository.java │ │ │ │ │ ├── security │ │ │ │ │ └── SecurityConfiguration.java │ │ │ │ │ └── util │ │ │ │ │ └── environment │ │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ │ └── InstanceInformationService.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── data.sql │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyexchangeservice │ │ │ └── CurrencyExchangeServiceApplicationTests.java │ └── kubernetes-09-currency-exchange-microservice-istio │ │ ├── 11-istio-scripts-and-configuration.zip │ │ ├── Dockerfile │ │ ├── deployment.yaml │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── microservices │ │ │ │ └── currencyexchangeservice │ │ │ │ ├── CurrencyExchangeServiceApplicationH2.java │ │ │ │ ├── resource │ │ │ │ ├── CurrencyExchangeController.java │ │ │ │ ├── ExchangeValue.java │ │ │ │ └── ExchangeValueRepository.java │ │ │ │ ├── security │ │ │ │ └── SecurityConfiguration.java │ │ │ │ └── util │ │ │ │ └── environment │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ └── InstanceInformationService.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── data.sql │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── microservices │ │ └── currencyexchangeservice │ │ └── CurrencyExchangeServiceApplicationTests.java ├── 02-currency-conversion-service │ ├── .DS_Store │ ├── 01-pcf-06-currency-conversion-service │ │ ├── Dockerfile │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyconversionservice │ │ │ │ │ ├── CurrencyConversionServiceApplication.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyConversionBean.java │ │ │ │ │ ├── CurrencyConversionController.java │ │ │ │ │ └── CurrencyExchangeServiceProxy.java │ │ │ │ │ ├── security │ │ │ │ │ └── SecurityConfiguration.java │ │ │ │ │ └── util │ │ │ │ │ └── environment │ │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ │ └── InstanceInformationService.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyconversionservice │ │ │ └── CurrencyConversionServiceApplicationTests.java │ ├── aws-ecs-fargate-05-currency-conversion-service │ │ ├── Dockerfile │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyconversionservice │ │ │ │ │ ├── CurrencyConversionServiceApplication.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyConversionBean.java │ │ │ │ │ └── CurrencyConversionController.java │ │ │ │ │ └── util │ │ │ │ │ ├── containerservice │ │ │ │ │ └── ContainerMetaDataService.java │ │ │ │ │ └── logging │ │ │ │ │ └── EnvironmentConfigurationLogger.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyconversionservice │ │ │ └── CurrencyConversionServiceApplicationTests.java │ ├── aws-ecs-fargate-07-currency-conversion-service-xray │ │ ├── Dockerfile │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyconversionservice │ │ │ │ │ ├── CurrencyConversionServiceApplication.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyConversionBean.java │ │ │ │ │ └── CurrencyConversionController.java │ │ │ │ │ ├── util │ │ │ │ │ ├── containerservice │ │ │ │ │ │ └── ContainerMetaDataService.java │ │ │ │ │ └── logging │ │ │ │ │ │ └── EnvironmentConfigurationLogger.java │ │ │ │ │ └── xray │ │ │ │ │ ├── AwsXrayConfig.java │ │ │ │ │ └── XRayInspector.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyconversionservice │ │ │ └── CurrencyConversionServiceApplicationTests.java │ ├── docker-currency-conversion-service │ │ ├── Dockerfile │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyconversionservice │ │ │ │ │ ├── CurrencyConversionServiceApplication.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyConversionBean.java │ │ │ │ │ ├── CurrencyConversionController.java │ │ │ │ │ └── CurrencyExchangeServiceProxy.java │ │ │ │ │ ├── security │ │ │ │ │ └── SecurityConfiguration.java │ │ │ │ │ └── util │ │ │ │ │ └── environment │ │ │ │ │ └── EnvironmentConfigurationLogger.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyconversionservice │ │ │ └── CurrencyConversionServiceApplicationTests.java │ ├── final.md │ ├── kubernetes-05-currency-conversion-microservice-basic │ │ ├── Dockerfile │ │ ├── deployment.yaml │ │ ├── ingress.yaml │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyconversionservice │ │ │ │ │ ├── CurrencyConversionServiceApplication.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyConversionBean.java │ │ │ │ │ ├── CurrencyConversionController.java │ │ │ │ │ └── CurrencyExchangeServiceProxy.java │ │ │ │ │ ├── security │ │ │ │ │ └── SecurityConfiguration.java │ │ │ │ │ └── util │ │ │ │ │ └── environment │ │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ │ └── InstanceInformationService.java │ │ │ └── resources │ │ │ │ ├── application-kubernetes.properties │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyconversionservice │ │ │ └── CurrencyConversionServiceApplicationTests.java │ ├── kubernetes-06-currency-conversion-microservice-cloud │ │ ├── 01-ingress.yaml │ │ ├── 02-rbac.yml │ │ ├── Dockerfile │ │ ├── deployment.yaml │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyconversionservice │ │ │ │ │ ├── CurrencyConversionServiceApplication.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyConversionBean.java │ │ │ │ │ ├── CurrencyConversionController.java │ │ │ │ │ └── CurrencyExchangeServiceProxy.java │ │ │ │ │ ├── security │ │ │ │ │ └── SecurityConfiguration.java │ │ │ │ │ └── util │ │ │ │ │ └── environment │ │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ │ └── InstanceInformationService.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyconversionservice │ │ │ └── CurrencyConversionServiceApplicationTests.java │ ├── kubernetes-08-currency-conversion-microservice-stackdriver │ │ ├── Dockerfile │ │ ├── deployment.yaml │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── in28minutes │ │ │ │ │ └── microservices │ │ │ │ │ └── currencyconversionservice │ │ │ │ │ ├── CurrencyConversionServiceApplication.java │ │ │ │ │ ├── resource │ │ │ │ │ ├── CurrencyConversionBean.java │ │ │ │ │ ├── CurrencyConversionController.java │ │ │ │ │ └── CurrencyExchangeServiceProxy.java │ │ │ │ │ ├── security │ │ │ │ │ └── SecurityConfiguration.java │ │ │ │ │ └── util │ │ │ │ │ └── environment │ │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ │ └── InstanceInformationService.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── currencyconversionservice │ │ │ └── CurrencyConversionServiceApplicationTests.java │ └── kubernetes-10-currency-conversion-microservice-istio │ │ ├── 00-configmap-currency-conversion.yaml │ │ ├── Dockerfile │ │ ├── deployment.yaml │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── microservices │ │ │ │ └── currencyconversionservice │ │ │ │ ├── CurrencyConversionServiceApplication.java │ │ │ │ ├── resource │ │ │ │ ├── CurrencyConversionBean.java │ │ │ │ └── CurrencyConversionController.java │ │ │ │ ├── security │ │ │ │ └── SecurityConfiguration.java │ │ │ │ └── util │ │ │ │ └── environment │ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ │ └── InstanceInformationService.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── microservices │ │ └── currencyconversionservice │ │ └── CurrencyConversionServiceApplicationTests.java ├── docker-compose.yml ├── docker-microservices-code-backup │ ├── 01-starting-point-with-docker-compose.md │ ├── 01-starting-point-with-docker-compose.zip │ ├── 02-naming-server-done.md │ ├── 02-naming-server-done.zip │ ├── 03-zuul-done.md │ ├── 03-zuul-done.zip │ ├── 04-zipkin-done.md │ ├── 04-zipkin-done.zip │ ├── 05-final.md │ └── 05-final.zip ├── docker-netflix-eureka-naming-server │ ├── Dockerfile │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── microservices │ │ │ │ └── netflixeurekanamingserver │ │ │ │ └── NetflixEurekaNamingServerApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── microservices │ │ └── netflixeurekanamingserver │ │ └── NetflixEurekaNamingServerApplicationTests.java ├── docker-netflix-zuul-api-gateway-server │ ├── Dockerfile │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── microservices │ │ │ │ └── netflixzuulapigatewayserver │ │ │ │ ├── NetflixZuulApiGatewayServerApplication.java │ │ │ │ └── ZuulLoggingFilter.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── microservices │ │ └── netflixzuulapigatewayserver │ │ └── NetflixZuulApiGatewayServerApplicationTests.java ├── pcf-07-spring-boot-route-service │ ├── manifest.yml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── rest │ │ │ │ └── webservices │ │ │ │ └── restfulwebservices │ │ │ │ ├── InterceptEverythingAndLogController.java │ │ │ │ └── RouteServiceApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── rest │ │ └── webservices │ │ └── restfulwebservices │ │ └── RouteServiceApplicationTests.java ├── pcf-11-netflix-eureka-naming-server │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── microservices │ │ │ │ └── netflixeurekanamingserver │ │ │ │ └── NetflixEurekaNamingServerApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── microservices │ │ └── netflixeurekanamingserver │ │ └── NetflixEurekaNamingServerApplicationTests.java └── pcf-12-spring-cloud-config-server │ ├── config-server.json │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── in28minutes │ │ │ └── microservices │ │ │ └── springcloudconfigserver │ │ │ └── SpringCloudConfigServerApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── in28minutes │ └── microservices │ └── springcloudconfigserver │ └── SpringCloudConfigServerApplicationTests.java ├── 99-backup-and-others-for-later-use ├── .DS_Store ├── docker-zz-backup │ ├── code-v1-before-recording.md │ ├── code-v2-before-recording.md │ ├── code-v3-preparation-final.md │ ├── docker-compose-reference.yml │ ├── docker-compose-start.yml │ ├── final-archive-after-recording-nov-2019.zip │ └── print.md ├── kubernetes-11-istio-scripts-and-configuration │ ├── 01-helloworld-deployment.yaml │ ├── 02-creating-http-gateway.yaml │ ├── 03-creating-virtualservice-external.yaml │ ├── 04-helloworld-multiple-deployments.yaml │ ├── 05-helloworld-mirroring.yaml │ ├── 06-helloworld-canary.yaml │ ├── 07-hw-virtualservice-all-services.yaml │ ├── istio.yaml.zip │ └── readme.md ├── kubernetes-12-helm │ ├── currency-conversion.zip │ ├── currency-exchange │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── NOTES.txt │ │ │ ├── _helpers.tpl │ │ │ ├── microservice-deployment.yaml │ │ │ └── tests │ │ │ │ └── test-connection.yaml │ │ └── values.yaml │ ├── helm-tiller.sh │ └── readme.md └── pcf-zz-backup │ ├── 01-naming-server-currency-conversion-service.md │ ├── 01-naming-server-currency-conversion-service.zip │ ├── 01-naming-server-currency-exchange-service.md │ ├── 01-naming-server-currency-exchange-service.zip │ ├── 02-end-currency-conversion-service.md │ ├── 02-end-currency-conversion-service.zip │ ├── 02-end-currency-exchange-service.md │ ├── 02-end-currency-exchange-service.zip │ ├── final-after-recording.md │ ├── final-after-recording.zip │ ├── final-prep-code.md │ ├── final-prep-code.zip │ ├── initial-package-for-students.md │ └── initial-package-for-students.zip ├── aws-eb-README.md ├── aws-ecs-fargate-README.md ├── azure-wa-README.md ├── docker-README.md ├── kubernetes-README.md ├── pcf-README.md └── readme.md /01-hello-world-rest-api/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/01-hello-world-rest-api/.DS_Store -------------------------------------------------------------------------------- /01-hello-world-rest-api/01-aws-eb-01-spring-boot-hello-world-rest-api/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/01-hello-world-rest-api/01-aws-eb-01-spring-boot-hello-world-rest-api/.DS_Store -------------------------------------------------------------------------------- /01-hello-world-rest-api/01-aws-eb-01-spring-boot-hello-world-rest-api/readme.md: -------------------------------------------------------------------------------- 1 | # Hello World Rest API running on port 5000 2 | 3 | Run com.in28minutes.rest.webservices.restfulwebservices.RestfulWebServicesApplication as a Java Application. 4 | 5 | - http://localhost:5000/hello-world 6 | 7 | ```txt 8 | Hello World 9 | ``` 10 | 11 | - http://localhost:5000/hello-world-bean 12 | 13 | ```json 14 | {"message":"Hello World - Changed"} 15 | ``` 16 | 17 | - http://localhost:5000/hello-world/path-variable/in28minutes 18 | 19 | ```json 20 | {"message":"Hello World, in28minutes"} 21 | ``` 22 | 23 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/01-aws-eb-01-spring-boot-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/01-aws-eb-01-spring-boot-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestfulWebServicesApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestfulWebServicesApplication.class, args); 11 | } 12 | } -------------------------------------------------------------------------------- /01-hello-world-rest-api/01-aws-eb-01-spring-boot-hello-world-rest-api/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.org.springframework = debug 2 | 3 | #AWS Elastic Beanstalk assumes that the application will listen on port 5000. 4 | server.port=5000 -------------------------------------------------------------------------------- /01-hello-world-rest-api/01-aws-eb-01-spring-boot-hello-world-rest-api/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/02-pcf-01-hello-world-rest-api/blue-green.txt: -------------------------------------------------------------------------------- 1 | ---------------- 2 | Routes and Apps 3 | ---------------- 4 | 5 | hello-world-rest-api-ranga-101 -> hello-world-rest-api -> blue 6 | 7 | hello-world-rest-api-ranga-101-temp -> hello-world-rest-api-green 8 | 9 | hello-world-rest-api-ranga-101 -> hello-world-rest-api 10 | hello-world-rest-api-ranga-101 -> hello-world-rest-api-green 11 | 12 | 13 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/02-pcf-01-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/02-pcf-01-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestfulWebServicesApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestfulWebServicesApplication.class, args); 11 | } 12 | } -------------------------------------------------------------------------------- /01-hello-world-rest-api/02-pcf-01-hello-world-rest-api/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.org.springframework = debug 2 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/02-pcf-01-hello-world-rest-api/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/03-azure-wa-01-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/03-azure-wa-01-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestfulWebServicesApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestfulWebServicesApplication.class, args); 11 | } 12 | } -------------------------------------------------------------------------------- /01-hello-world-rest-api/03-azure-wa-01-hello-world-rest-api/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.org.springframework = debug 2 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/03-azure-wa-01-hello-world-rest-api/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/04-aws-ecs-fargate-01-hello-world-rest-api/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 80 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /01-hello-world-rest-api/04-aws-ecs-fargate-01-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/04-aws-ecs-fargate-01-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestfulWebServicesApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestfulWebServicesApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/04-aws-ecs-fargate-01-hello-world-rest-api/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=80 -------------------------------------------------------------------------------- /01-hello-world-rest-api/04-aws-ecs-fargate-01-hello-world-rest-api/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/05-docker-01-hello-world-rest-api/code-backup/01-docker-file-maven-plugin.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/01-hello-world-rest-api/05-docker-01-hello-world-rest-api/code-backup/01-docker-file-maven-plugin.zip -------------------------------------------------------------------------------- /01-hello-world-rest-api/05-docker-01-hello-world-rest-api/code-backup/02-jib.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/01-hello-world-rest-api/05-docker-01-hello-world-rest-api/code-backup/02-jib.zip -------------------------------------------------------------------------------- /01-hello-world-rest-api/05-docker-01-hello-world-rest-api/code-backup/03-fabric8-docker-plugin-using-dockerfile.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/01-hello-world-rest-api/05-docker-01-hello-world-rest-api/code-backup/03-fabric8-docker-plugin-using-dockerfile.zip -------------------------------------------------------------------------------- /01-hello-world-rest-api/05-docker-01-hello-world-rest-api/code-backup/04-fabric8-docker-plugin-xml-configuration.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/01-hello-world-rest-api/05-docker-01-hello-world-rest-api/code-backup/04-fabric8-docker-plugin-xml-configuration.zip -------------------------------------------------------------------------------- /01-hello-world-rest-api/05-docker-01-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/05-docker-01-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestfulWebServicesApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestfulWebServicesApplication.class, args); 11 | } 12 | } -------------------------------------------------------------------------------- /01-hello-world-rest-api/05-docker-01-hello-world-rest-api/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.org.springframework = debug 2 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/05-docker-01-hello-world-rest-api/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/06-kubernetes-01-hello-world-rest-api/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8080 4 | ADD target/*.jar app.jar 5 | ENTRYPOINT [ "sh", "-c", "java -jar /app.jar" ] -------------------------------------------------------------------------------- /01-hello-world-rest-api/06-kubernetes-01-hello-world-rest-api/readme.md: -------------------------------------------------------------------------------- 1 | # Hello World Rest API 2 | 3 | ### Running the Application 4 | 5 | Run com.in28minutes.rest.webservices.restfulwebservices.RestfulWebServicesApplication as a Java Application. 6 | 7 | - http://localhost:8080/hello-world 8 | 9 | ```txt 10 | Hello World V1 abcde 11 | ``` 12 | 13 | - http://localhost:8080/hello-world-bean 14 | 15 | ```json 16 | {"message":"Hello World"} 17 | ``` 18 | 19 | - http://localhost:8080/hello-world/path-variable/in28minutes 20 | 21 | ```json 22 | {"message":"Hello World, in28minutes"} 23 | ``` -------------------------------------------------------------------------------- /01-hello-world-rest-api/06-kubernetes-01-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/06-kubernetes-01-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestfulWebServicesApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestfulWebServicesApplication.class, args); 11 | } 12 | } -------------------------------------------------------------------------------- /01-hello-world-rest-api/06-kubernetes-01-hello-world-rest-api/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.org.springframework = debug 2 | -------------------------------------------------------------------------------- /01-hello-world-rest-api/06-kubernetes-01-hello-world-rest-api/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/02-spring-boot-web-application-h2/.DS_Store -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/.DS_Store -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/log/httpd/elasticbeanstalk-error_log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/log/httpd/elasticbeanstalk-error_log -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/src/main/java/com/in28minutes/springboot/web/service/TodoRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.in28minutes.springboot.web.model.Todo; 8 | 9 | public interface TodoRepository extends JpaRepository{ 10 | List findByUser(String user); 11 | 12 | //service.retrieveTodos(name) 13 | 14 | //service.deleteTodo(id); 15 | //service.retrieveTodo(id) 16 | //service.updateTodo(todo) 17 | //service.addTodo(getLoggedInUserName(model), todo.getDesc(), todo.getTargetDate(),false); 18 | } 19 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.mvc.view.prefix=/WEB-INF/jsp/ 2 | spring.mvc.view.suffix=.jsp 3 | logging.level.org.springframework.web=INFO 4 | 5 | spring.jpa.show-sql=true 6 | spring.h2.console.enabled=true 7 | #spring.h2.console.settings.web-allow-others=true -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into TODO 2 | values(10001, 'Learn Spring Boot', false, sysdate(), 'in28minutes'); 3 | insert into TODO 4 | values(10002, 'Learn Angular JS', false, sysdate(), 'in28minutes'); 5 | insert into TODO 6 | values(10003, 'Learn to Dance', false, sysdate(), 'in28minutes'); 7 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/common/footer.jspf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/common/header.jspf: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 3 | <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 4 | 5 | 6 | 7 | 8 | First Web Application 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/common/navigation.jspf: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | An exception occurred! Please contact Support! 5 |
6 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/welcome.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | Welcome ${name}!! Click here to manage your 5 | todo's. 6 |
7 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/aws-eb-03-spring-boot-web-application-h2/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringBootFirstWebApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/azure-wa-02-todo-web-application-h2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM tomcat:8.0.51-jre8-alpine 2 | EXPOSE 8080 3 | RUN rm -rf /usr/local/tomcat/webapps/* 4 | COPY target/*.war /usr/local/tomcat/webapps/ROOT.war 5 | CMD ["catalina.sh","run"] -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/azure-wa-02-todo-web-application-h2/src/main/java/com/in28minutes/springboot/web/service/TodoRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.in28minutes.springboot.web.model.Todo; 8 | 9 | public interface TodoRepository extends JpaRepository { 10 | List findByUser(String user); 11 | } -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/azure-wa-02-todo-web-application-h2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.mvc.view.prefix=/WEB-INF/jsp/ 2 | spring.mvc.view.suffix=.jsp 3 | logging.level.org.springframework.web=INFO 4 | 5 | spring.jpa.show-sql=true 6 | spring.h2.console.enabled=true 7 | spring.h2.console.settings.web-allow-others=true -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/azure-wa-02-todo-web-application-h2/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into TODO 2 | values(10001, 'Learn Spring Boot', false, sysdate(), 'in28minutes'); 3 | insert into TODO 4 | values(10002, 'Learn Angular JS', false, sysdate(), 'in28minutes'); 5 | insert into TODO 6 | values(10003, 'Learn to Dance', false, sysdate(), 'in28minutes'); 7 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/azure-wa-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/footer.jspf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/azure-wa-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/header.jspf: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 3 | <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 4 | 5 | 6 | 7 | 8 | First Web Application 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/azure-wa-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/navigation.jspf: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/azure-wa-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | An exception occurred! Please contact Support! 5 |
6 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/azure-wa-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/welcome.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | Welcome ${name}!! Click here to manage your 5 | todo's. 6 |
7 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/azure-wa-02-todo-web-application-h2/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringBootFirstWebApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM tomcat:8.0.51-jre8-alpine 2 | EXPOSE 8080 3 | RUN rm -rf /usr/local/tomcat/webapps/* 4 | COPY target/*.war /usr/local/tomcat/webapps/ROOT.war 5 | CMD ["catalina.sh","run"] -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/code-backup/01-web-app-with-spotify-dockerfile-maven-plugin.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/code-backup/01-web-app-with-spotify-dockerfile-maven-plugin.zip -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/src/main/java/com/in28minutes/springboot/web/service/TodoRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.in28minutes.springboot.web.model.Todo; 8 | 9 | public interface TodoRepository extends JpaRepository { 10 | List findByUser(String user); 11 | } -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.mvc.view.prefix=/WEB-INF/jsp/ 2 | spring.mvc.view.suffix=.jsp 3 | logging.level.org.springframework.web=INFO 4 | 5 | spring.jpa.show-sql=true 6 | spring.h2.console.enabled=true 7 | spring.h2.console.settings.web-allow-others=true -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into TODO 2 | values(10001, 'Learn Spring Boot', false, sysdate(), 'in28minutes'); 3 | insert into TODO 4 | values(10002, 'Learn Angular JS', false, sysdate(), 'in28minutes'); 5 | insert into TODO 6 | values(10003, 'Learn to Dance', false, sysdate(), 'in28minutes'); 7 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/footer.jspf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/header.jspf: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 3 | <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 4 | 5 | 6 | 7 | 8 | First Web Application 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/navigation.jspf: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | An exception occurred! Please contact Support! 5 |
6 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/welcome.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | Welcome ${name}!! Click here to manage your 5 | todo's. 6 |
7 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/docker-02-todo-web-application-h2/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringBootFirstWebApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/kubernetes-02-todo-web-application-h2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM tomcat:8.0.51-jre8-alpine 2 | EXPOSE 8080 3 | RUN rm -rf /usr/local/tomcat/webapps/* 4 | COPY target/*.war /usr/local/tomcat/webapps/ROOT.war 5 | CMD ["catalina.sh","run"] -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/kubernetes-02-todo-web-application-h2/src/main/java/com/in28minutes/springboot/web/service/TodoRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.in28minutes.springboot.web.model.Todo; 8 | 9 | public interface TodoRepository extends JpaRepository { 10 | List findByUser(String user); 11 | } -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/kubernetes-02-todo-web-application-h2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.mvc.view.prefix=/WEB-INF/jsp/ 2 | spring.mvc.view.suffix=.jsp 3 | logging.level.org.springframework.web=INFO 4 | 5 | spring.jpa.show-sql=true 6 | spring.h2.console.enabled=true 7 | spring.h2.console.settings.web-allow-others=true -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/kubernetes-02-todo-web-application-h2/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into TODO 2 | values(10001, 'Learn Spring Boot', false, sysdate(), 'in28minutes'); 3 | insert into TODO 4 | values(10002, 'Learn Angular JS', false, sysdate(), 'in28minutes'); 5 | insert into TODO 6 | values(10003, 'Learn to Dance', false, sysdate(), 'in28minutes'); 7 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/kubernetes-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/footer.jspf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/kubernetes-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/header.jspf: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 3 | <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 4 | 5 | 6 | 7 | 8 | First Web Application 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/kubernetes-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/navigation.jspf: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/kubernetes-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | An exception occurred! Please contact Support! 5 |
6 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/kubernetes-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/welcome.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | Welcome ${name}!! Click here to manage your 5 | todo's. 6 |
7 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/kubernetes-02-todo-web-application-h2/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringBootFirstWebApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/pcf-02-todo-web-application-h2/src/main/java/com/in28minutes/springboot/web/service/TodoRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.in28minutes.springboot.web.model.Todo; 8 | 9 | public interface TodoRepository extends JpaRepository { 10 | List findByUser(String user); 11 | } -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/pcf-02-todo-web-application-h2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.mvc.view.prefix=/WEB-INF/jsp/ 2 | spring.mvc.view.suffix=.jsp 3 | logging.level.org.springframework.web=INFO 4 | 5 | spring.jpa.show-sql=true 6 | spring.h2.console.enabled=true 7 | spring.h2.console.settings.web-allow-others=true -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/pcf-02-todo-web-application-h2/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into TODO 2 | values(10001, 'Learn Spring Boot', false, sysdate(), 'in28minutes'); 3 | insert into TODO 4 | values(10002, 'Learn Angular JS', false, sysdate(), 'in28minutes'); 5 | insert into TODO 6 | values(10003, 'Learn to Dance', false, sysdate(), 'in28minutes'); 7 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/pcf-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/footer.jspf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/pcf-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/header.jspf: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 3 | <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 4 | 5 | 6 | 7 | 8 | First Web Application 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/pcf-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/common/navigation.jspf: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/pcf-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | An exception occurred! Please contact Support! 5 |
6 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/pcf-02-todo-web-application-h2/src/main/webapp/WEB-INF/jsp/welcome.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | Welcome ${name}!! Click here to manage your 5 | todo's. 6 |
7 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /02-spring-boot-web-application-h2/pcf-02-todo-web-application-h2/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringBootFirstWebApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/03-spring-boot-web-application-mysql/.DS_Store -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/.DS_Store -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/src/.DS_Store -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/src/main/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/src/main/.DS_Store -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/footer.jspf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/header.jspf: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 3 | <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 4 | 5 | 6 | 7 | 8 | First Web Application 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/navigation.jspf: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | An exception occurred! Please contact Support! 5 |
6 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/welcome.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | Welcome ${name}!! Click here to manage your 5 | todo's. 6 |
7 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringBootFirstWebApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/aws-eb-04-spring-boot-web-application-mysql/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto=create-drop 2 | spring.datasource.driver-class-name=org.h2.Driver 3 | spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 4 | spring.datasource.username=sa 5 | spring.datasource.password=sa 6 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/azure-wa-03-todo-web-application-mysql/src/main/java/com/in28minutes/springboot/web/service/TodoRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.in28minutes.springboot.web.model.Todo; 8 | 9 | public interface TodoRepository extends JpaRepository{ 10 | List findByUser(String user); 11 | 12 | //service.retrieveTodos(name) 13 | 14 | //service.deleteTodo(id); 15 | //service.retrieveTodo(id) 16 | //service.updateTodo(todo) 17 | //service.addTodo(getLoggedInUserName(model), todo.getDesc(), todo.getTargetDate(),false); 18 | } 19 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/azure-wa-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/footer.jspf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/azure-wa-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/header.jspf: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 3 | <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 4 | 5 | 6 | 7 | 8 | First Web Application 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/azure-wa-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/navigation.jspf: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/azure-wa-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | An exception occurred! Please contact Support! 5 |
6 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/azure-wa-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/welcome.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | Welcome ${name}!! Click here to manage your 5 | todo's. 6 |
7 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/azure-wa-03-todo-web-application-mysql/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringBootFirstWebApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/azure-wa-03-todo-web-application-mysql/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto=create-drop 2 | spring.datasource.driver-class-name=org.h2.Driver 3 | spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 4 | spring.datasource.username=sa 5 | spring.datasource.password=sa 6 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/docker-03-todo-web-application-mysql/Dockerfile: -------------------------------------------------------------------------------- 1 | From tomcat:8.0.51-jre8-alpine 2 | RUN rm -rf /usr/local/tomcat/webapps/* 3 | COPY ./target/*.war /usr/local/tomcat/webapps/ROOT.war 4 | CMD ["catalina.sh","run"] -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/docker-03-todo-web-application-mysql/src/main/java/com/in28minutes/springboot/web/service/TodoRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.in28minutes.springboot.web.model.Todo; 8 | 9 | public interface TodoRepository extends JpaRepository{ 10 | List findByUser(String user); 11 | 12 | //service.retrieveTodos(name) 13 | 14 | //service.deleteTodo(id); 15 | //service.retrieveTodo(id) 16 | //service.updateTodo(todo) 17 | //service.addTodo(getLoggedInUserName(model), todo.getDesc(), todo.getTargetDate(),false); 18 | } 19 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/docker-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/footer.jspf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/docker-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/header.jspf: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 3 | <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 4 | 5 | 6 | 7 | 8 | First Web Application 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/docker-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/navigation.jspf: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/docker-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | An exception occurred! Please contact Support! 5 |
6 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/docker-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/welcome.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | Welcome ${name}!! Click here to manage your 5 | todo's. 6 |
7 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/docker-03-todo-web-application-mysql/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringBootFirstWebApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/docker-03-todo-web-application-mysql/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto=create-drop 2 | spring.datasource.driver-class-name=org.h2.Driver 3 | spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 4 | spring.datasource.username=sa 5 | spring.datasource.password=sa 6 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/.DS_Store -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/Dockerfile: -------------------------------------------------------------------------------- 1 | From tomcat:8.0.51-jre8-alpine 2 | RUN rm -rf /usr/local/tomcat/webapps/* 3 | COPY ./target/*.war /usr/local/tomcat/webapps/ROOT.war 4 | CMD ["catalina.sh","run"] -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/backup/00-generated-by-kompose/mysql-database-data-volume-persistentvolumeclaim-original-generated-by-kompose.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | creationTimestamp: null 5 | labels: 6 | io.kompose.service: mysql-database-data-volume 7 | name: mysql-database-data-volume 8 | spec: 9 | accessModes: 10 | - ReadWriteOnce 11 | resources: 12 | requests: 13 | storage: 100Mi 14 | status: {} 15 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/backup/00-generated-by-kompose/mysql-service-original-generated-by-kompose.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert 6 | kompose.version: 1.19.0 () 7 | creationTimestamp: null 8 | labels: 9 | io.kompose.service: mysql 10 | name: mysql 11 | spec: 12 | ports: 13 | - name: "3306" 14 | port: 3306 15 | targetPort: 3306 16 | selector: 17 | io.kompose.service: mysql 18 | status: 19 | loadBalancer: {} 20 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/backup/00-generated-by-kompose/todo-web-application-service-original-generated-by-kompose.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert 6 | kompose.version: 1.19.0 () 7 | creationTimestamp: null 8 | labels: 9 | io.kompose.service: todo-web-application 10 | name: todo-web-application 11 | spec: 12 | ports: 13 | - name: "8080" 14 | port: 8080 15 | targetPort: 8080 16 | selector: 17 | io.kompose.service: todo-web-application 18 | status: 19 | loadBalancer: {} 20 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/backup/01-updated-manually/mysql-database-data-volume-persistentvolumeclaim.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | creationTimestamp: null 5 | labels: 6 | io.kompose.service: mysql-database-data-volume 7 | name: mysql-database-data-volume 8 | spec: 9 | accessModes: 10 | - ReadWriteOnce 11 | resources: 12 | requests: 13 | storage: 100Mi 14 | status: {} 15 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/backup/01-updated-manually/mysql-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert 6 | kompose.version: 1.19.0 () 7 | creationTimestamp: null 8 | labels: 9 | io.kompose.service: mysql 10 | name: mysql 11 | spec: 12 | type: LoadBalancer 13 | ports: 14 | - name: "3306" 15 | port: 3306 16 | targetPort: 3306 17 | selector: 18 | io.kompose.service: mysql 19 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/backup/01-updated-manually/todo-web-application-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | io.kompose.service: todo-web-application 6 | name: todo-web-application 7 | spec: 8 | type: LoadBalancer 9 | ports: 10 | - name: "8080" 11 | port: 8080 12 | targetPort: 8080 13 | selector: 14 | io.kompose.service: todo-web-application 15 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/backup/02-final-backup-at-end-of-course/mysql-database-data-volume-persistentvolumeclaim.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | creationTimestamp: null 5 | labels: 6 | io.kompose.service: mysql-database-data-volume 7 | name: mysql-database-data-volume 8 | spec: 9 | accessModes: 10 | - ReadWriteOnce 11 | resources: 12 | requests: 13 | storage: 100Mi 14 | status: {} 15 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/backup/02-final-backup-at-end-of-course/mysql-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | annotations: 5 | kompose.cmd: kompose convert 6 | kompose.version: 1.19.0 () 7 | creationTimestamp: null 8 | labels: 9 | io.kompose.service: mysql 10 | name: mysql 11 | spec: 12 | type: ClusterIP 13 | ports: 14 | - name: "3306" 15 | port: 3306 16 | targetPort: 3306 17 | selector: 18 | io.kompose.service: mysql -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/backup/02-final-backup-at-end-of-course/todo-web-application-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | io.kompose.service: todo-web-application 6 | name: todo-web-application 7 | spec: 8 | type: LoadBalancer 9 | ports: 10 | - name: "8080" 11 | port: 8080 12 | targetPort: 8080 13 | selector: 14 | io.kompose.service: todo-web-application 15 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/backup/backup-mid-course-03-mysql.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/backup/backup-mid-course-03-mysql.zip -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/src/main/java/com/in28minutes/springboot/web/service/TodoRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.in28minutes.springboot.web.model.Todo; 8 | 9 | public interface TodoRepository extends JpaRepository{ 10 | List findByUser(String user); 11 | 12 | //service.retrieveTodos(name) 13 | 14 | //service.deleteTodo(id); 15 | //service.retrieveTodo(id) 16 | //service.updateTodo(todo) 17 | //service.addTodo(getLoggedInUserName(model), todo.getDesc(), todo.getTargetDate(),false); 18 | } 19 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/footer.jspf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/header.jspf: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 3 | <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 4 | 5 | 6 | 7 | 8 | First Web Application 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/navigation.jspf: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | An exception occurred! Please contact Support! 5 |
6 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/welcome.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | Welcome ${name}!! Click here to manage your 5 | todo's. 6 |
7 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringBootFirstWebApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/kubernetes-03-todo-web-application-mysql/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto=create-drop 2 | spring.datasource.driver-class-name=org.h2.Driver 3 | spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 4 | spring.datasource.username=sa 5 | spring.datasource.password=sa 6 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/pcf-03-todo-web-application-mysql/src/main/java/com/in28minutes/springboot/web/service/TodoRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.in28minutes.springboot.web.model.Todo; 8 | 9 | public interface TodoRepository extends JpaRepository{ 10 | List findByUser(String user); 11 | 12 | //service.retrieveTodos(name) 13 | 14 | //service.deleteTodo(id); 15 | //service.retrieveTodo(id) 16 | //service.updateTodo(todo) 17 | //service.addTodo(getLoggedInUserName(model), todo.getDesc(), todo.getTargetDate(),false); 18 | } 19 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/pcf-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/footer.jspf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/pcf-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/header.jspf: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 3 | <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 4 | 5 | 6 | 7 | 8 | First Web Application 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/pcf-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/navigation.jspf: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/pcf-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | An exception occurred! Please contact Support! 5 |
6 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/pcf-03-todo-web-application-mysql/src/main/webapp/WEB-INF/jsp/welcome.jsp: -------------------------------------------------------------------------------- 1 | <%@ include file="common/header.jspf"%> 2 | <%@ include file="common/navigation.jspf"%> 3 |
4 | Welcome ${name}!! Click here to manage your 5 | todo's. 6 |
7 | <%@ include file="common/footer.jspf"%> -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/pcf-03-todo-web-application-mysql/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.springboot.web; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringBootFirstWebApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /03-spring-boot-web-application-mysql/pcf-03-todo-web-application-mysql/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto=create-drop 2 | spring.datasource.driver-class-name=org.h2.Driver 3 | spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 4 | spring.datasource.username=sa 5 | spring.datasource.password=sa 6 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/.DS_Store -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/.DS_Store -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/.DS_Store -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/public/favicon.ico -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | ReactDOM.unmountComponentAtNode(div); 9 | }); 10 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/Constants.js: -------------------------------------------------------------------------------- 1 | /* For Best Practices https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables*/ 2 | export const API_URL = 'http://localhost:5000' 3 | //export const API_URL = 'http://rest-api-in28minutes-qa.kvajmpmiiu.us-east-1.elasticbeanstalk.com' 4 | export const JPA_API_URL = `${API_URL}/jpa` -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/bootstrap.css: -------------------------------------------------------------------------------- 1 | @import url(https://unpkg.com/bootstrap@4.1.0/dist/css/bootstrap.min.css) -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/counter/Counter.css: -------------------------------------------------------------------------------- 1 | /* 2 | button { 3 | background-color: green; 4 | font-size : 16px; 5 | padding : 15px 30px; 6 | color : white; 7 | width : 100px; 8 | } 9 | 10 | .count { 11 | font-size : 50px; 12 | padding : 15px 30px; 13 | } 14 | 15 | .reset { 16 | background-color: red; 17 | width : 200px; 18 | } 19 | 20 | body { 21 | padding : 15px 30px; 22 | } 23 | */ -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/FirstComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | //Class Component 4 | class FirstComponent extends Component { 5 | render() { 6 | return ( 7 |
8 | FirstComponent 9 |
10 | ) 11 | } 12 | } 13 | 14 | export default FirstComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/SecondComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class SecondComponent extends Component { 4 | render() { 5 | return ( 6 |
7 | Second Component 8 |
9 | ) 10 | } 11 | } 12 | 13 | export default SecondComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/ThirdComponent.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function ThirdComponent() { 4 | return ( 5 |
6 | Third Component 7 |
8 | ) 9 | } 10 | 11 | export default ThirdComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/AuthenticatedRoute.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { Route, Redirect } from 'react-router-dom' 3 | import AuthenticationService from './AuthenticationService.js' 4 | 5 | class AuthenticatedRoute extends Component { 6 | render() { 7 | if (AuthenticationService.isUserLoggedIn()) { 8 | return 9 | } else { 10 | return 11 | } 12 | 13 | } 14 | } 15 | 16 | export default AuthenticatedRoute -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/ErrorComponent.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function ErrorComponent() { 4 | return
An Error Occurred. I don't know what to do! Contact support at abcd-efgh-ijkl
5 | } 6 | 7 | export default ErrorComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/FooterComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class FooterComponent extends Component { 4 | render() { 5 | return ( 6 |
7 | All Rights Reserved 2018 @in28minutes 8 |
9 | ) 10 | } 11 | } 12 | 13 | export default FooterComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/LogoutComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class LogoutComponent extends Component { 4 | render() { 5 | return ( 6 | <> 7 |

You are logged out

8 |
9 | Thank You for Using Our Application. 10 |
11 | 12 | ) 13 | } 14 | } 15 | 16 | export default LogoutComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 5 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 6 | sans-serif; 7 | -webkit-font-smoothing: antialiased; 8 | -moz-osx-font-smoothing: grayscale; 9 | } 10 | 11 | code { 12 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 13 | monospace; 14 | } 15 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/frontend/todo-app/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import * as serviceWorker from './serviceWorker'; 6 | 7 | ReactDOM.render(, document.getElementById('root')); 8 | 9 | // If you want your app to work offline and load faster, you can change 10 | // unregister() to register() below. Note this comes with some pitfalls. 11 | // Learn more about service workers: https://bit.ly/CRA-PWA 12 | serviceWorker.unregister(); 13 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/react_00_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/react_00_architecture.png -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserRepository extends JpaRepository { 6 | User findByUsername(String username); 7 | } 8 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/resource/AuthenticationException.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt.resource; 2 | public class AuthenticationException extends RuntimeException { 3 | public AuthenticationException(String message, Throwable cause) { 4 | super(message, cause); 5 | } 6 | } 7 | 8 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/resource/JwtTokenResponse.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt.resource; 2 | 3 | import java.io.Serializable; 4 | 5 | public class JwtTokenResponse implements Serializable { 6 | 7 | private static final long serialVersionUID = 8317676219297719109L; 8 | 9 | private final String token; 10 | 11 | public JwtTokenResponse(String token) { 12 | this.token = token; 13 | } 14 | 15 | public String getToken() { 16 | return this.token; 17 | } 18 | } -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/TodoJpaRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.todo; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface TodoJpaRepository extends JpaRepository{ 10 | List findByUsername(String username); 11 | } -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/aws-eb-05-spring-boot-react-full-stack-h2/restful-web-services/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/.DS_Store -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/public/favicon.ico -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | ReactDOM.unmountComponentAtNode(div); 9 | }); 10 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/Constants.js: -------------------------------------------------------------------------------- 1 | /* For Best Practices https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables*/ 2 | export const API_URL = 'http://localhost:8080' 3 | //export const API_URL = 'https://rest-api-full-stack-in28minutes.azurewebsites.net' 4 | export const JPA_API_URL = `${API_URL}/jpa` -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/bootstrap.css: -------------------------------------------------------------------------------- 1 | @import url(https://unpkg.com/bootstrap@4.1.0/dist/css/bootstrap.min.css) -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/counter/Counter.css: -------------------------------------------------------------------------------- 1 | /* 2 | button { 3 | background-color: green; 4 | font-size : 16px; 5 | padding : 15px 30px; 6 | color : white; 7 | width : 100px; 8 | } 9 | 10 | .count { 11 | font-size : 50px; 12 | padding : 15px 30px; 13 | } 14 | 15 | .reset { 16 | background-color: red; 17 | width : 200px; 18 | } 19 | 20 | body { 21 | padding : 15px 30px; 22 | } 23 | */ -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/FirstComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | //Class Component 4 | class FirstComponent extends Component { 5 | render() { 6 | return ( 7 |
8 | FirstComponent 9 |
10 | ) 11 | } 12 | } 13 | 14 | export default FirstComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/SecondComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class SecondComponent extends Component { 4 | render() { 5 | return ( 6 |
7 | Second Component 8 |
9 | ) 10 | } 11 | } 12 | 13 | export default SecondComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/ThirdComponent.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function ThirdComponent() { 4 | return ( 5 |
6 | Third Component 7 |
8 | ) 9 | } 10 | 11 | export default ThirdComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/AuthenticatedRoute.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { Route, Redirect } from 'react-router-dom' 3 | import AuthenticationService from './AuthenticationService.js' 4 | 5 | class AuthenticatedRoute extends Component { 6 | render() { 7 | if (AuthenticationService.isUserLoggedIn()) { 8 | return 9 | } else { 10 | return 11 | } 12 | 13 | } 14 | } 15 | 16 | export default AuthenticatedRoute -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/ErrorComponent.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function ErrorComponent() { 4 | return
An Error Occurred. I don't know what to do! Contact support at abcd-efgh-ijkl
5 | } 6 | 7 | export default ErrorComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/FooterComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class FooterComponent extends Component { 4 | render() { 5 | return ( 6 |
7 | All Rights Reserved 2018 @in28minutes 8 |
9 | ) 10 | } 11 | } 12 | 13 | export default FooterComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/LogoutComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class LogoutComponent extends Component { 4 | render() { 5 | return ( 6 | <> 7 |

You are logged out

8 |
9 | Thank You for Using Our Application. 10 |
11 | 12 | ) 13 | } 14 | } 15 | 16 | export default LogoutComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 5 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 6 | sans-serif; 7 | -webkit-font-smoothing: antialiased; 8 | -moz-osx-font-smoothing: grayscale; 9 | } 10 | 11 | code { 12 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 13 | monospace; 14 | } 15 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import * as serviceWorker from './serviceWorker'; 6 | 7 | ReactDOM.render(, document.getElementById('root')); 8 | 9 | // If you want your app to work offline and load faster, you can change 10 | // unregister() to register() below. Note this comes with some pitfalls. 11 | // Learn more about service workers: https://bit.ly/CRA-PWA 12 | serviceWorker.unregister(); 13 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/restful-web-services/react_00_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/restful-web-services/react_00_architecture.png -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserRepository extends JpaRepository { 6 | User findByUsername(String username); 7 | } 8 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/resource/AuthenticationException.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt.resource; 2 | public class AuthenticationException extends RuntimeException { 3 | /** 4 | * 5 | */ 6 | private static final long serialVersionUID = 5978387939943664344L; 7 | 8 | public AuthenticationException(String message, Throwable cause) { 9 | super(message, cause); 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/resource/JwtTokenResponse.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt.resource; 2 | 3 | import java.io.Serializable; 4 | 5 | public class JwtTokenResponse implements Serializable { 6 | 7 | private static final long serialVersionUID = 8317676219297719109L; 8 | 9 | private final String token; 10 | 11 | public JwtTokenResponse(String token) { 12 | this.token = token; 13 | } 14 | 15 | public String getToken() { 16 | return this.token; 17 | } 18 | } -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/TodoJpaRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.todo; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface TodoJpaRepository extends JpaRepository{ 10 | List findByUsername(String username); 11 | } -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/azure-wa-04-spring-boot-react-full-stack-h2/restful-web-services/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/code-backup/01-startingpoint-1stage-api-2stage-frontend.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/code-backup/01-startingpoint-1stage-api-2stage-frontend.zip -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/code-backup/02-2-stage-api-2-stage-frontend.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/code-backup/02-2-stage-api-2-stage-frontend.zip -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/.DS_Store -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/public/favicon.ico -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | ReactDOM.unmountComponentAtNode(div); 9 | }); 10 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/Constants.js: -------------------------------------------------------------------------------- 1 | /* For Best Practices https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables*/ 2 | export const API_URL = 'http://localhost:8080' 3 | //export const API_URL = 'http://rest-api-full-stack-ranga-101.cfapps.io' 4 | //export const API_URL = 'https://restful-web-services-full-stack-bankend.cfapps.io' 5 | export const JPA_API_URL = `${API_URL}/jpa` -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/bootstrap.css: -------------------------------------------------------------------------------- 1 | @import url(https://unpkg.com/bootstrap@4.1.0/dist/css/bootstrap.min.css) -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/counter/Counter.css: -------------------------------------------------------------------------------- 1 | /* 2 | button { 3 | background-color: green; 4 | font-size : 16px; 5 | padding : 15px 30px; 6 | color : white; 7 | width : 100px; 8 | } 9 | 10 | .count { 11 | font-size : 50px; 12 | padding : 15px 30px; 13 | } 14 | 15 | .reset { 16 | background-color: red; 17 | width : 200px; 18 | } 19 | 20 | body { 21 | padding : 15px 30px; 22 | } 23 | */ -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/FirstComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | //Class Component 4 | class FirstComponent extends Component { 5 | render() { 6 | return ( 7 |
8 | FirstComponent 9 |
10 | ) 11 | } 12 | } 13 | 14 | export default FirstComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/SecondComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class SecondComponent extends Component { 4 | render() { 5 | return ( 6 |
7 | Second Component 8 |
9 | ) 10 | } 11 | } 12 | 13 | export default SecondComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/ThirdComponent.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function ThirdComponent() { 4 | return ( 5 |
6 | Third Component 7 |
8 | ) 9 | } 10 | 11 | export default ThirdComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/AuthenticatedRoute.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { Route, Redirect } from 'react-router-dom' 3 | import AuthenticationService from './AuthenticationService.js' 4 | 5 | class AuthenticatedRoute extends Component { 6 | render() { 7 | if (AuthenticationService.isUserLoggedIn()) { 8 | return 9 | } else { 10 | return 11 | } 12 | 13 | } 14 | } 15 | 16 | export default AuthenticatedRoute -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/ErrorComponent.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function ErrorComponent() { 4 | return
An Error Occurred. I don't know what to do! Contact support at abcd-efgh-ijkl
5 | } 6 | 7 | export default ErrorComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/FooterComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class FooterComponent extends Component { 4 | render() { 5 | return ( 6 |
7 | All Rights Reserved 2018 @in28minutes 8 |
9 | ) 10 | } 11 | } 12 | 13 | export default FooterComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/LogoutComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class LogoutComponent extends Component { 4 | render() { 5 | return ( 6 | <> 7 |

You are logged out

8 |
9 | Thank You for Using Our Application. 10 |
11 | 12 | ) 13 | } 14 | } 15 | 16 | export default LogoutComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 5 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 6 | sans-serif; 7 | -webkit-font-smoothing: antialiased; 8 | -moz-osx-font-smoothing: grayscale; 9 | } 10 | 11 | code { 12 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 13 | monospace; 14 | } 15 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import * as serviceWorker from './serviceWorker'; 6 | 7 | ReactDOM.render(, document.getElementById('root')); 8 | 9 | // If you want your app to work offline and load faster, you can change 10 | // unregister() to register() below. Note this comes with some pitfalls. 11 | // Learn more about service workers: https://bit.ly/CRA-PWA 12 | serviceWorker.unregister(); 13 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/restful-web-services/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | ARG DEPENDENCY=target/dependency 4 | COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib 5 | COPY ${DEPENDENCY}/META-INF /app/META-INF 6 | COPY ${DEPENDENCY}/BOOT-INF/classes /app 7 | ENTRYPOINT ["java","-cp","app:app/lib/*","com.in28minutes.rest.webservices.restfulwebservices.RestfulWebServicesApplication"] -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/restful-web-services/react_00_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/restful-web-services/react_00_architecture.png -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserRepository extends JpaRepository { 6 | User findByUsername(String username); 7 | } 8 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/resource/AuthenticationException.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt.resource; 2 | public class AuthenticationException extends RuntimeException { 3 | /** 4 | * 5 | */ 6 | private static final long serialVersionUID = 5978387939943664344L; 7 | 8 | public AuthenticationException(String message, Throwable cause) { 9 | super(message, cause); 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/resource/JwtTokenResponse.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt.resource; 2 | 3 | import java.io.Serializable; 4 | 5 | public class JwtTokenResponse implements Serializable { 6 | 7 | private static final long serialVersionUID = 8317676219297719109L; 8 | 9 | private final String token; 10 | 11 | public JwtTokenResponse(String token) { 12 | this.token = token; 13 | } 14 | 15 | public String getToken() { 16 | return this.token; 17 | } 18 | } -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/TodoJpaRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.todo; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface TodoJpaRepository extends JpaRepository{ 10 | List findByUsername(String username); 11 | } -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/docker-04-spring-boot-react-full-stack-h2/restful-web-services/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/public/favicon.ico -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | ReactDOM.unmountComponentAtNode(div); 9 | }); 10 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/Constants.js: -------------------------------------------------------------------------------- 1 | /* For Best Practices https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables*/ 2 | //export const API_URL = 'http://localhost:8080' 3 | export const API_URL = 'http://rest-api-full-stack-ranga-101.cfapps.io' 4 | //export const API_URL = 'https://restful-web-services-full-stack-bankend.cfapps.io' 5 | export const JPA_API_URL = `${API_URL}/jpa` -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/bootstrap.css: -------------------------------------------------------------------------------- 1 | @import url(https://unpkg.com/bootstrap@4.1.0/dist/css/bootstrap.min.css) -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/counter/Counter.css: -------------------------------------------------------------------------------- 1 | /* 2 | button { 3 | background-color: green; 4 | font-size : 16px; 5 | padding : 15px 30px; 6 | color : white; 7 | width : 100px; 8 | } 9 | 10 | .count { 11 | font-size : 50px; 12 | padding : 15px 30px; 13 | } 14 | 15 | .reset { 16 | background-color: red; 17 | width : 200px; 18 | } 19 | 20 | body { 21 | padding : 15px 30px; 22 | } 23 | */ -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/FirstComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | //Class Component 4 | class FirstComponent extends Component { 5 | render() { 6 | return ( 7 |
8 | FirstComponent 9 |
10 | ) 11 | } 12 | } 13 | 14 | export default FirstComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/SecondComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class SecondComponent extends Component { 4 | render() { 5 | return ( 6 |
7 | Second Component 8 |
9 | ) 10 | } 11 | } 12 | 13 | export default SecondComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/learning-examples/ThirdComponent.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function ThirdComponent() { 4 | return ( 5 |
6 | Third Component 7 |
8 | ) 9 | } 10 | 11 | export default ThirdComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/AuthenticatedRoute.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { Route, Redirect } from 'react-router-dom' 3 | import AuthenticationService from './AuthenticationService.js' 4 | 5 | class AuthenticatedRoute extends Component { 6 | render() { 7 | if (AuthenticationService.isUserLoggedIn()) { 8 | return 9 | } else { 10 | return 11 | } 12 | 13 | } 14 | } 15 | 16 | export default AuthenticatedRoute -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/ErrorComponent.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function ErrorComponent() { 4 | return
An Error Occurred. I don't know what to do! Contact support at abcd-efgh-ijkl
5 | } 6 | 7 | export default ErrorComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/FooterComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class FooterComponent extends Component { 4 | render() { 5 | return ( 6 |
7 | All Rights Reserved 2018 @in28minutes 8 |
9 | ) 10 | } 11 | } 12 | 13 | export default FooterComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/components/todo/LogoutComponent.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | class LogoutComponent extends Component { 4 | render() { 5 | return ( 6 | <> 7 |

You are logged out

8 |
9 | Thank You for Using Our Application. 10 |
11 | 12 | ) 13 | } 14 | } 15 | 16 | export default LogoutComponent -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 5 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 6 | sans-serif; 7 | -webkit-font-smoothing: antialiased; 8 | -moz-osx-font-smoothing: grayscale; 9 | } 10 | 11 | code { 12 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 13 | monospace; 14 | } 15 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/frontend/todo-app/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import * as serviceWorker from './serviceWorker'; 6 | 7 | ReactDOM.render(, document.getElementById('root')); 8 | 9 | // If you want your app to work offline and load faster, you can change 10 | // unregister() to register() below. Note this comes with some pitfalls. 11 | // Learn more about service workers: https://bit.ly/CRA-PWA 12 | serviceWorker.unregister(); 13 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/react_00_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/react_00_architecture.png -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/helloworld/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.helloworld; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserRepository extends JpaRepository { 6 | User findByUsername(String username); 7 | } 8 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/resource/AuthenticationException.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt.resource; 2 | public class AuthenticationException extends RuntimeException { 3 | /** 4 | * 5 | */ 6 | private static final long serialVersionUID = 5978387939943664344L; 7 | 8 | public AuthenticationException(String message, Throwable cause) { 9 | super(message, cause); 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jwt/resource/JwtTokenResponse.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.jwt.resource; 2 | 3 | import java.io.Serializable; 4 | 5 | public class JwtTokenResponse implements Serializable { 6 | 7 | private static final long serialVersionUID = 8317676219297719109L; 8 | 9 | private final String token; 10 | 11 | public JwtTokenResponse(String token) { 12 | this.token = token; 13 | } 14 | 15 | public String getToken() { 16 | return this.token; 17 | } 18 | } -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/TodoJpaRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.todo; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface TodoJpaRepository extends JpaRepository{ 10 | List findByUsername(String username); 11 | } -------------------------------------------------------------------------------- /04-spring-boot-react-full-stack-h2/pcf-04-spring-boot-react-full-stack-h2/restful-web-services/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/05-spring-boot-todo-rest-api-h2/.DS_Store -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-02-spring-boot-todo-rest-api-h2/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/05-spring-boot-todo-rest-api-h2/aws-eb-02-spring-boot-todo-rest-api-h2/.DS_Store -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-02-spring-boot-todo-rest-api-h2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestfulWebServicesApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestfulWebServicesApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-02-spring-boot-todo-rest-api-h2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/helloworld/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.helloworld; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-02-spring-boot-todo-rest-api-h2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/TodoJpaRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.todo; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface TodoJpaRepository extends JpaRepository{ 10 | List findByUsername(String username); 11 | } -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-02-spring-boot-todo-rest-api-h2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | spring.h2.console.enabled=true 3 | spring.h2.console.settings.web-allow-others=true 4 | 5 | logging.level.org.springframework = info 6 | server.port=5000 7 | -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-02-spring-boot-todo-rest-api-h2/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into todo(id, username,description,target_date,is_done) 2 | values(10001, 'in28minutes', 'Learn JPA', sysdate(), false); 3 | 4 | insert into todo(id, username,description,target_date,is_done) 5 | values(10002, 'in28minutes', 'Learn Data JPA', sysdate(), false); 6 | 7 | insert into todo(id, username,description,target_date,is_done) 8 | values(10003, 'in28minutes', 'Learn Microservices', sysdate(), false); -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-02-spring-boot-todo-rest-api-h2/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-06-todo-rest-api-h2-containerized/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 5000 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-06-todo-rest-api-h2-containerized/Dockerrun.aws.json: -------------------------------------------------------------------------------- 1 | { 2 | "AWSEBDockerrunVersion": "1", 3 | "Image": { 4 | "Name": "in28min/todo-rest-api-h2:1.0.0.RELEASE", 5 | "Update": "true" 6 | }, 7 | "Ports": [ 8 | { 9 | "ContainerPort": "5000" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-06-todo-rest-api-h2-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestfulWebServicesApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestfulWebServicesApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-06-todo-rest-api-h2-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/helloworld/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.helloworld; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-06-todo-rest-api-h2-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/TodoJpaRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.todo; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface TodoJpaRepository extends JpaRepository{ 10 | List findByUsername(String username); 11 | } -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-06-todo-rest-api-h2-containerized/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | spring.h2.console.enabled=true 3 | spring.h2.console.settings.web-allow-others=true 4 | 5 | logging.level.org.springframework = info 6 | server.port=5000 -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/aws-eb-06-todo-rest-api-h2-containerized/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/azure-wa-05-todo-rest-api-h2-containerized/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 5000 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/azure-wa-05-todo-rest-api-h2-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestfulWebServicesApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestfulWebServicesApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/azure-wa-05-todo-rest-api-h2-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/helloworld/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.helloworld; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/azure-wa-05-todo-rest-api-h2-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/TodoJpaRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.todo; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface TodoJpaRepository extends JpaRepository{ 10 | List findByUsername(String username); 11 | } -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/azure-wa-05-todo-rest-api-h2-containerized/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | spring.h2.console.enabled=true 3 | spring.h2.console.settings.web-allow-others=true 4 | 5 | logging.level.org.springframework = info 6 | server.port=5000 -------------------------------------------------------------------------------- /05-spring-boot-todo-rest-api-h2/azure-wa-05-todo-rest-api-h2-containerized/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/06-spring-boot-todo-rest-api-mysql/.DS_Store -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/aws-eb-07-todo-rest-api-mysql-containerized/.ebextensions/sg-extensions.config: -------------------------------------------------------------------------------- 1 | Resources: 2 | sslSecurityGroupIngress: 3 | Type: AWS::EC2::SecurityGroupIngress 4 | Properties: 5 | GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} 6 | IpProtocol: tcp 7 | ToPort: 5000 8 | FromPort: 5000 9 | CidrIp: 0.0.0.0/0 -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/aws-eb-07-todo-rest-api-mysql-containerized/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 5000 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/aws-eb-07-todo-rest-api-mysql-containerized/build-artifacts-backup/with-ebextensions.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/06-spring-boot-todo-rest-api-mysql/aws-eb-07-todo-rest-api-mysql-containerized/build-artifacts-backup/with-ebextensions.zip -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/aws-eb-07-todo-rest-api-mysql-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestfulWebServicesApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestfulWebServicesApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/aws-eb-07-todo-rest-api-mysql-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/helloworld/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.helloworld; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/aws-eb-07-todo-rest-api-mysql-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/TodoJpaRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.todo; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface TodoJpaRepository extends JpaRepository{ 10 | List findByUsername(String username); 11 | } -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/aws-eb-07-todo-rest-api-mysql-containerized/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | #spring.h2.console.enabled=true 3 | 4 | logging.level.org.springframework = info 5 | server.port=5000 6 | 7 | #AWS 8 | spring.jpa.hibernate.ddl-auto=update 9 | spring.datasource.url=jdbc:mysql://${RDS_HOSTNAME:mysql}:${RDS_PORT:3306}/${RDS_DB_NAME:todos} 10 | spring.datasource.username=${RDS_USERNAME:todos-user} 11 | spring.datasource.password=${RDS_PASSWORD:dummytodos} 12 | spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/aws-eb-07-todo-rest-api-mysql-containerized/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/aws-eb-07-todo-rest-api-mysql-containerized/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | #AWS 2 | spring.jpa.hibernate.ddl-auto=create-drop 3 | spring.datasource.driver-class-name=org.h2.Driver 4 | spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 5 | spring.datasource.username=sa 6 | spring.datasource.password=sa 7 | -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/azure-wa-06-todo-rest-api-mysql-containerized/.ebextensions/sg-extensions.config: -------------------------------------------------------------------------------- 1 | Resources: 2 | sslSecurityGroupIngress: 3 | Type: AWS::EC2::SecurityGroupIngress 4 | Properties: 5 | GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} 6 | IpProtocol: tcp 7 | ToPort: 5000 8 | FromPort: 5000 9 | CidrIp: 0.0.0.0/0 -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/azure-wa-06-todo-rest-api-mysql-containerized/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 5000 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/azure-wa-06-todo-rest-api-mysql-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestfulWebServicesApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestfulWebServicesApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/azure-wa-06-todo-rest-api-mysql-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/helloworld/HelloWorldBean.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.helloworld; 2 | 3 | public class HelloWorldBean { 4 | 5 | private String message; 6 | 7 | public HelloWorldBean(String message) { 8 | this.message = message; 9 | } 10 | 11 | public String getMessage() { 12 | return message; 13 | } 14 | 15 | public void setMessage(String message) { 16 | this.message = message; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return String.format("HelloWorldBean [message=%s]", message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/azure-wa-06-todo-rest-api-mysql-containerized/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/TodoJpaRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices.todo; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | @Repository 9 | public interface TodoJpaRepository extends JpaRepository{ 10 | List findByUsername(String username); 11 | } -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/azure-wa-06-todo-rest-api-mysql-containerized/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | #spring.h2.console.enabled=true 3 | 4 | logging.level.org.springframework = info 5 | server.port=5000 6 | 7 | #AWS 8 | spring.jpa.hibernate.ddl-auto=update 9 | spring.datasource.url=jdbc:mysql://${RDS_HOSTNAME:mysql}:${RDS_PORT:3306}/${RDS_DB_NAME:todos} 10 | spring.datasource.username=${RDS_USERNAME:todos-user} 11 | spring.datasource.password=${RDS_PASSWORD:dummytodos} 12 | spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/azure-wa-06-todo-rest-api-mysql-containerized/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RestfulWebServicesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /06-spring-boot-todo-rest-api-mysql/azure-wa-06-todo-rest-api-mysql-containerized/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | #AWS 2 | spring.jpa.hibernate.ddl-auto=create-drop 3 | spring.datasource.driver-class-name=org.h2.Driver 4 | spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 5 | spring.datasource.username=sa 6 | spring.datasource.password=sa 7 | -------------------------------------------------------------------------------- /09-microservices/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/09-microservices/.DS_Store -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/09-microservices/01-currency-exchange-service/.DS_Store -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/01-pcf-05-currency-exchange-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8000 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/01-pcf-05-currency-exchange-service/src/main/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationH2.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | //@EnableDiscoveryClient 8 | public class CurrencyExchangeServiceApplicationH2 { 9 | 10 | public static void main(String[] args) { 11 | SpringApplication.run(CurrencyExchangeServiceApplicationH2.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/01-pcf-05-currency-exchange-service/src/main/java/com/in28minutes/microservices/currencyexchangeservice/resource/ExchangeValueRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice.resource; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface ExchangeValueRepository extends JpaRepository { 6 | ExchangeValue findByFromAndTo(String from, String to); 7 | } 8 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/01-pcf-05-currency-exchange-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=currency-exchange-service 2 | server.port=8000 3 | 4 | spring.jpa.show-sql=true 5 | spring.h2.console.enabled=true 6 | spring.h2.console.settings.web-allow-others=true 7 | 8 | management.endpoints.web.base-path=/manage 9 | management.endpoints.web.exposure.include=* 10 | 11 | #eureka.client.service-url.default-zone=http://localhost:8761/eureka 12 | 13 | spring.security.user.name=in28minutes 14 | spring.security.user.password=dummy 15 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/01-pcf-05-currency-exchange-service/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 2 | values(10001,'USD','INR',65); 3 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 4 | values(10002,'EUR','INR',75); 5 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 6 | values(10003,'AUD','INR',25); -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/01-pcf-05-currency-exchange-service/src/test/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyExchangeServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-03-currency-exchange-service-h2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8000 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-03-currency-exchange-service-h2/src/main/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationH2.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class CurrencyExchangeServiceApplicationH2 { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(CurrencyExchangeServiceApplicationH2.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-03-currency-exchange-service-h2/src/main/java/com/in28minutes/microservices/currencyexchangeservice/resource/ExchangeValueRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice.resource; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface ExchangeValueRepository extends JpaRepository { 6 | ExchangeValue findByFromAndTo(String from, String to); 7 | } 8 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-03-currency-exchange-service-h2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=currency-exchange-microservice 2 | server.port=8000 3 | 4 | spring.jpa.show-sql=true 5 | spring.h2.console.enabled=true 6 | 7 | management.endpoints.web.base-path=/manage 8 | server.servlet.context-path=/api/currency-exchange-microservice -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-03-currency-exchange-service-h2/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 2 | values(10001,'USD','INR',65); 3 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 4 | values(10002,'EUR','INR',75); 5 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 6 | values(10003,'AUD','INR',25); -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-03-currency-exchange-service-h2/src/test/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyExchangeServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-04-currency-exchange-service-mysql/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8000 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-04-currency-exchange-service-mysql/src/main/java/com/in28minutes/microservices/currencyexchangeservice/resource/ExchangeValueRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice.resource; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface ExchangeValueRepository extends JpaRepository { 6 | ExchangeValue findByFromAndTo(String from, String to); 7 | } 8 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-04-currency-exchange-service-mysql/src/test/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyExchangeServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-04-currency-exchange-service-mysql/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto=create-drop 2 | spring.datasource.driver-class-name=org.h2.Driver 3 | spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 4 | spring.datasource.username=sa 5 | spring.datasource.password=sa -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-06-currency-exchange-service-h2-xray/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8000 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-06-currency-exchange-service-h2-xray/src/main/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationH2.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class CurrencyExchangeServiceApplicationH2 { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(CurrencyExchangeServiceApplicationH2.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-06-currency-exchange-service-h2-xray/src/main/java/com/in28minutes/microservices/currencyexchangeservice/resource/ExchangeValueRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice.resource; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface ExchangeValueRepository extends JpaRepository { 6 | ExchangeValue findByFromAndTo(String from, String to); 7 | } 8 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-06-currency-exchange-service-h2-xray/src/main/java/com/in28minutes/microservices/currencyexchangeservice/xray/AwsXrayConfig.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice.xray; 2 | 3 | import javax.servlet.Filter; 4 | 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | 8 | import com.amazonaws.xray.javax.servlet.AWSXRayServletFilter; 9 | 10 | @Configuration 11 | public class AwsXrayConfig { 12 | 13 | @Bean 14 | public Filter TracingFilter() { 15 | return new AWSXRayServletFilter("currency-exchange-service"); 16 | } 17 | } -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-06-currency-exchange-service-h2-xray/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=currency-exchange-microservice 2 | server.port=8000 3 | 4 | spring.jpa.show-sql=true 5 | spring.h2.console.enabled=true 6 | 7 | management.endpoints.web.base-path=/manage 8 | server.servlet.context-path=/api/currency-exchange-microservice -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-06-currency-exchange-service-h2-xray/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 2 | values(10001,'USD','INR',65); 3 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 4 | values(10002,'EUR','INR',75); 5 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 6 | values(10003,'AUD','INR',25); -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/aws-ecs-fargate-06-currency-exchange-service-h2-xray/src/test/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyExchangeServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/docker-currency-exchange-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8000 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/docker-currency-exchange-service/src/main/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationH2.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | //@EnableDiscoveryClient 8 | public class CurrencyExchangeServiceApplicationH2 { 9 | 10 | public static void main(String[] args) { 11 | SpringApplication.run(CurrencyExchangeServiceApplicationH2.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/docker-currency-exchange-service/src/main/java/com/in28minutes/microservices/currencyexchangeservice/resource/ExchangeValueRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice.resource; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface ExchangeValueRepository extends JpaRepository { 6 | ExchangeValue findByFromAndTo(String from, String to); 7 | } 8 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/docker-currency-exchange-service/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 2 | values(10001,'USD','INR',65); 3 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 4 | values(10002,'EUR','INR',75); 5 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 6 | values(10003,'AUD','INR',25); -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/docker-currency-exchange-service/src/test/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyExchangeServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-04-currency-exchange-microservice-basic/00-configmap-currency-conversion.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | data: 3 | YOUR_PROPERTY: value 4 | YOUR_PROPERTY_2: value2 5 | kind: ConfigMap 6 | metadata: 7 | name: currency-conversion 8 | namespace: default 9 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-04-currency-exchange-microservice-basic/01-hpa.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: autoscaling/v1 2 | kind: HorizontalPodAutoscaler 3 | metadata: 4 | name: currency-exchange 5 | namespace: default 6 | spec: 7 | maxReplicas: 3 8 | minReplicas: 1 9 | scaleTargetRef: 10 | apiVersion: extensions/v1beta1 11 | kind: Deployment 12 | name: currency-exchange 13 | targetCPUUtilizationPercentage: 10 -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-04-currency-exchange-microservice-basic/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8000 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-04-currency-exchange-microservice-basic/src/main/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationH2.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class CurrencyExchangeServiceApplicationH2 { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(CurrencyExchangeServiceApplicationH2.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-04-currency-exchange-microservice-basic/src/main/java/com/in28minutes/microservices/currencyexchangeservice/resource/ExchangeValueRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice.resource; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface ExchangeValueRepository extends JpaRepository { 6 | ExchangeValue findByFromAndTo(String from, String to); 7 | } 8 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-04-currency-exchange-microservice-basic/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 2 | values(10001,'USD','INR',65); 3 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 4 | values(10002,'EUR','INR',75); 5 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 6 | values(10003,'AUD','INR',25); -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-04-currency-exchange-microservice-basic/src/test/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyExchangeServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-07-currency-exchange-microservice-stackdriver/Dockerfile: -------------------------------------------------------------------------------- 1 | #FROM openjdk:8-jdk-alpine 2 | FROM openjdk:8 3 | VOLUME /tmp 4 | EXPOSE 8000 5 | ADD target/*.jar app.jar 6 | ENV JAVA_OPTS="" 7 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-07-currency-exchange-microservice-stackdriver/readme.md: -------------------------------------------------------------------------------- 1 | # Currency Exchange Micro Service - H2 2 | 3 | For Stack Driver -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-07-currency-exchange-microservice-stackdriver/src/main/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationH2.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class CurrencyExchangeServiceApplicationH2 { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(CurrencyExchangeServiceApplicationH2.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-07-currency-exchange-microservice-stackdriver/src/main/java/com/in28minutes/microservices/currencyexchangeservice/resource/ExchangeValueRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice.resource; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface ExchangeValueRepository extends JpaRepository { 6 | ExchangeValue findByFromAndTo(String from, String to); 7 | } 8 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-07-currency-exchange-microservice-stackdriver/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 2 | values(10001,'USD','INR',65); 3 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 4 | values(10002,'EUR','INR',75); 5 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 6 | values(10003,'AUD','INR',25); -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-07-currency-exchange-microservice-stackdriver/src/test/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyExchangeServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-09-currency-exchange-microservice-istio/11-istio-scripts-and-configuration.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/09-microservices/01-currency-exchange-service/kubernetes-09-currency-exchange-microservice-istio/11-istio-scripts-and-configuration.zip -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-09-currency-exchange-microservice-istio/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8000 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-09-currency-exchange-microservice-istio/readme.md: -------------------------------------------------------------------------------- 1 | # Currency Exchange Micro Service - H2 2 | 3 | For Istio -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-09-currency-exchange-microservice-istio/src/main/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationH2.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class CurrencyExchangeServiceApplicationH2 { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(CurrencyExchangeServiceApplicationH2.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-09-currency-exchange-microservice-istio/src/main/java/com/in28minutes/microservices/currencyexchangeservice/resource/ExchangeValueRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice.resource; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface ExchangeValueRepository extends JpaRepository { 6 | ExchangeValue findByFromAndTo(String from, String to); 7 | } 8 | -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-09-currency-exchange-microservice-istio/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 2 | values(10001,'USD','INR',65); 3 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 4 | values(10002,'EUR','INR',75); 5 | insert into exchange_value(id,currency_from,currency_to,conversion_multiple) 6 | values(10003,'AUD','INR',25); -------------------------------------------------------------------------------- /09-microservices/01-currency-exchange-service/kubernetes-09-currency-exchange-microservice-istio/src/test/java/com/in28minutes/microservices/currencyexchangeservice/CurrencyExchangeServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyexchangeservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyExchangeServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/09-microservices/02-currency-conversion-service/.DS_Store -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/01-pcf-06-currency-conversion-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8100 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/01-pcf-06-currency-conversion-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=currency-conversion-service 2 | server.port=8100 3 | 4 | management.endpoints.web.base-path=/manage 5 | management.endpoints.web.exposure.include=* 6 | 7 | #eureka.client.service-url.default-zone=http://localhost:8761/eureka 8 | 9 | #logging.level.org.springframework=debug 10 | 11 | spring.security.user.name=in28minutes 12 | spring.security.user.password=dummy 13 | -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/01-pcf-06-currency-conversion-service/src/test/java/com/in28minutes/microservices/currencyconversionservice/CurrencyConversionServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyconversionservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyConversionServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/aws-ecs-fargate-05-currency-conversion-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8100 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/aws-ecs-fargate-05-currency-conversion-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=currency-conversion-microservice 2 | server.port=8100 3 | 4 | management.endpoints.web.base-path=/manage 5 | server.servlet.context-path=/api/currency-conversion-microservice -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/aws-ecs-fargate-05-currency-conversion-service/src/test/java/com/in28minutes/microservices/currencyconversionservice/CurrencyConversionServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyconversionservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyConversionServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/aws-ecs-fargate-07-currency-conversion-service-xray/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8100 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/aws-ecs-fargate-07-currency-conversion-service-xray/src/main/java/com/in28minutes/microservices/currencyconversionservice/xray/AwsXrayConfig.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyconversionservice.xray; 2 | 3 | import javax.servlet.Filter; 4 | 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | 8 | import com.amazonaws.xray.javax.servlet.AWSXRayServletFilter; 9 | 10 | @Configuration 11 | public class AwsXrayConfig { 12 | 13 | @Bean 14 | public Filter TracingFilter() { 15 | return new AWSXRayServletFilter("currency-conversion-service"); 16 | 17 | } 18 | } -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/aws-ecs-fargate-07-currency-conversion-service-xray/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=currency-conversion-microservice 2 | server.port=8100 3 | 4 | management.endpoints.web.base-path=/manage 5 | server.servlet.context-path=/api/currency-conversion-microservice -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/aws-ecs-fargate-07-currency-conversion-service-xray/src/test/java/com/in28minutes/microservices/currencyconversionservice/CurrencyConversionServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyconversionservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyConversionServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/docker-currency-conversion-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8100 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/docker-currency-conversion-service/src/test/java/com/in28minutes/microservices/currencyconversionservice/CurrencyConversionServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyconversionservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyConversionServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-05-currency-conversion-microservice-basic/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8100 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-05-currency-conversion-microservice-basic/ingress.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Ingress 3 | metadata: 4 | name: gateway-ingress 5 | annotations: 6 | nginx.ingress.kubernetes.io/rewrite-target: / 7 | spec: 8 | rules: 9 | - http: 10 | paths: 11 | - path: /currency-exchange/* 12 | backend: 13 | serviceName: currency-exchange 14 | servicePort: 8000 15 | - path: /currency-conversion/* 16 | backend: 17 | serviceName: currency-conversion 18 | servicePort: 8100 -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-05-currency-conversion-microservice-basic/src/main/resources/application-kubernetes.properties: -------------------------------------------------------------------------------- 1 | CURRENCY_EXCHANGE_URI=http://currency-exchange -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-05-currency-conversion-microservice-basic/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=currency-conversion 2 | server.port=8100 3 | 4 | management.endpoints.web.base-path=/manage 5 | management.endpoints.web.exposure.include=* 6 | 7 | #logging.level.org.springframework=debug 8 | spring.security.user.name=in28minutes 9 | spring.security.user.password=dummy 10 | 11 | 12 | #Feign and Ribbon Timeouts 13 | feign.client.config.default.connectTimeout=50000 14 | feign.client.config.default.readTimeout=50000 15 | ribbon.ConnectTimeout= 60000 16 | ribbon.ReadTimeout= 60000 -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-05-currency-conversion-microservice-basic/src/test/java/com/in28minutes/microservices/currencyconversionservice/CurrencyConversionServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyconversionservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyConversionServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-06-currency-conversion-microservice-cloud/01-ingress.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Ingress 3 | metadata: 4 | name: gateway-ingress 5 | annotations: 6 | nginx.ingress.kubernetes.io/rewrite-target: / 7 | spec: 8 | rules: 9 | - http: 10 | paths: 11 | - path: /currency-exchange/* 12 | backend: 13 | serviceName: currency-exchange 14 | servicePort: 8000 15 | - path: /currency-conversion/* 16 | backend: 17 | serviceName: currency-conversion 18 | servicePort: 8100 -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-06-currency-conversion-microservice-cloud/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8100 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-06-currency-conversion-microservice-cloud/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=currency-conversion 2 | server.port=8100 3 | 4 | management.endpoints.web.base-path=/manage 5 | management.endpoints.web.exposure.include=* 6 | 7 | #logging.level.org.springframework=debug 8 | spring.security.user.name=in28minutes 9 | spring.security.user.password=dummy 10 | 11 | 12 | #Feign and Ribbon Timeouts 13 | feign.client.config.default.connectTimeout=50000 14 | feign.client.config.default.readTimeout=50000 15 | ribbon.ConnectTimeout= 60000 16 | ribbon.ReadTimeout= 60000 -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-06-currency-conversion-microservice-cloud/src/test/java/com/in28minutes/microservices/currencyconversionservice/CurrencyConversionServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyconversionservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyConversionServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-08-currency-conversion-microservice-stackdriver/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8 2 | #FROM openjdk:8-jdk-alpine 3 | VOLUME /tmp 4 | EXPOSE 8100 5 | ADD target/*.jar app.jar 6 | ENV JAVA_OPTS="" 7 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-08-currency-conversion-microservice-stackdriver/readme.md: -------------------------------------------------------------------------------- 1 | # Currency Conversion Micro Service 2 | For Stack Driver -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-08-currency-conversion-microservice-stackdriver/src/test/java/com/in28minutes/microservices/currencyconversionservice/CurrencyConversionServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyconversionservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyConversionServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-10-currency-conversion-microservice-istio/00-configmap-currency-conversion.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/09-microservices/02-currency-conversion-service/kubernetes-10-currency-conversion-microservice-istio/00-configmap-currency-conversion.yaml -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-10-currency-conversion-microservice-istio/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8100 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-10-currency-conversion-microservice-istio/readme.md: -------------------------------------------------------------------------------- 1 | # Currency Conversion Micro Service 2 | For Istio -------------------------------------------------------------------------------- /09-microservices/02-currency-conversion-service/kubernetes-10-currency-conversion-microservice-istio/src/test/java/com/in28minutes/microservices/currencyconversionservice/CurrencyConversionServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.currencyconversionservice; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CurrencyConversionServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/docker-microservices-code-backup/01-starting-point-with-docker-compose.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/09-microservices/docker-microservices-code-backup/01-starting-point-with-docker-compose.zip -------------------------------------------------------------------------------- /09-microservices/docker-microservices-code-backup/02-naming-server-done.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/09-microservices/docker-microservices-code-backup/02-naming-server-done.zip -------------------------------------------------------------------------------- /09-microservices/docker-microservices-code-backup/03-zuul-done.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/09-microservices/docker-microservices-code-backup/03-zuul-done.zip -------------------------------------------------------------------------------- /09-microservices/docker-microservices-code-backup/04-zipkin-done.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/09-microservices/docker-microservices-code-backup/04-zipkin-done.zip -------------------------------------------------------------------------------- /09-microservices/docker-microservices-code-backup/05-final.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/09-microservices/docker-microservices-code-backup/05-final.zip -------------------------------------------------------------------------------- /09-microservices/docker-netflix-eureka-naming-server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8761 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/docker-netflix-eureka-naming-server/src/main/java/com/in28minutes/microservices/netflixeurekanamingserver/NetflixEurekaNamingServerApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.netflixeurekanamingserver; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class NetflixEurekaNamingServerApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(NetflixEurekaNamingServerApplication.class, args); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /09-microservices/docker-netflix-eureka-naming-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=netflix-eureka-naming-server 2 | server.port=8761 3 | 4 | eureka.client.register-with-eureka=false 5 | eureka.client.fetch-registry=false -------------------------------------------------------------------------------- /09-microservices/docker-netflix-eureka-naming-server/src/test/java/com/in28minutes/microservices/netflixeurekanamingserver/NetflixEurekaNamingServerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.netflixeurekanamingserver; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class NetflixEurekaNamingServerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/docker-netflix-zuul-api-gateway-server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | VOLUME /tmp 3 | EXPOSE 8765 4 | ADD target/*.jar app.jar 5 | ENV JAVA_OPTS="" 6 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] -------------------------------------------------------------------------------- /09-microservices/docker-netflix-zuul-api-gateway-server/src/test/java/com/in28minutes/microservices/netflixzuulapigatewayserver/NetflixZuulApiGatewayServerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.netflixzuulapigatewayserver; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class NetflixZuulApiGatewayServerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/pcf-07-spring-boot-route-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.org.springframework = debug 2 | -------------------------------------------------------------------------------- /09-microservices/pcf-07-spring-boot-route-service/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RouteServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.rest.webservices.restfulwebservices; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RouteServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/pcf-11-netflix-eureka-naming-server/src/main/java/com/in28minutes/microservices/netflixeurekanamingserver/NetflixEurekaNamingServerApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.netflixeurekanamingserver; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class NetflixEurekaNamingServerApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(NetflixEurekaNamingServerApplication.class, args); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /09-microservices/pcf-11-netflix-eureka-naming-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=netflix-eureka-naming-server 2 | server.port=8761 3 | 4 | eureka.client.register-with-eureka=false 5 | eureka.client.fetch-registry=false -------------------------------------------------------------------------------- /09-microservices/pcf-11-netflix-eureka-naming-server/src/test/java/com/in28minutes/microservices/netflixeurekanamingserver/NetflixEurekaNamingServerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.netflixeurekanamingserver; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class NetflixEurekaNamingServerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /09-microservices/pcf-12-spring-cloud-config-server/config-server.json: -------------------------------------------------------------------------------- 1 | { 2 | "git":{ 3 | "uri":"https://github.com/in28minutes/config-server.git", 4 | "label":"master", 5 | "searchPaths":"dev" 6 | } 7 | } -------------------------------------------------------------------------------- /09-microservices/pcf-12-spring-cloud-config-server/src/main/java/com/in28minutes/microservices/springcloudconfigserver/SpringCloudConfigServerApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.springcloudconfigserver; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.config.server.EnableConfigServer; 6 | 7 | @EnableConfigServer 8 | @SpringBootApplication 9 | public class SpringCloudConfigServerApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(SpringCloudConfigServerApplication.class, args); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /09-microservices/pcf-12-spring-cloud-config-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=spring-cloud-config-server 2 | server.port=8888 3 | 4 | spring.cloud.config.server.git.uri=https://github.com/in28minutes/dev-config-server-test.git 5 | spring.cloud.config.server.git.searchPaths=dev -------------------------------------------------------------------------------- /09-microservices/pcf-12-spring-cloud-config-server/src/test/java/com/in28minutes/microservices/springcloudconfigserver/SpringCloudConfigServerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.microservices.springcloudconfigserver; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringCloudConfigServerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/.DS_Store -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/docker-zz-backup/final-archive-after-recording-nov-2019.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/docker-zz-backup/final-archive-after-recording-nov-2019.zip -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/kubernetes-11-istio-scripts-and-configuration/02-creating-http-gateway.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: networking.istio.io/v1alpha3 2 | kind: Gateway 3 | metadata: 4 | name: http-gateway 5 | spec: 6 | selector: 7 | istio: ingressgateway 8 | servers: 9 | - port: 10 | number: 80 11 | name: http 12 | protocol: HTTP 13 | hosts: 14 | - "*" -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/kubernetes-11-istio-scripts-and-configuration/03-creating-virtualservice-external.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: networking.istio.io/v1alpha3 2 | kind: VirtualService 3 | metadata: 4 | name: helloworld-virtual-services 5 | spec: 6 | hosts: 7 | - "*" 8 | gateways: 9 | - http-gateway # 1 10 | http: 11 | - match: 12 | - uri: 13 | prefix: /hello-world 14 | route: 15 | - destination: 16 | host: hello-world-rest-api # 2 17 | port: 18 | number: 8080 -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/kubernetes-11-istio-scripts-and-configuration/istio.yaml.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/kubernetes-11-istio-scripts-and-configuration/istio.yaml.zip -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/kubernetes-12-helm/currency-conversion.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/kubernetes-12-helm/currency-conversion.zip -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/kubernetes-12-helm/currency-exchange/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *~ 18 | # Various IDEs 19 | .project 20 | .idea/ 21 | *.tmproj 22 | .vscode/ 23 | -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/kubernetes-12-helm/currency-exchange/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "1.0" 3 | description: A Helm Chart for Any Microservice 4 | name: currency-exchange-alone 5 | version: 0.1.0 6 | -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/kubernetes-12-helm/currency-exchange/templates/NOTES.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/kubernetes-12-helm/currency-exchange/templates/NOTES.txt -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/kubernetes-12-helm/currency-exchange/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "helloworld-ravi.fullname" . }}-test-connection" 5 | labels: 6 | {{ include "helloworld-ravi.labels" . | indent 4 }} 7 | annotations: 8 | "helm.sh/hook": test-success 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "helloworld-ravi.fullname" . }}:{{ .Values.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/kubernetes-12-helm/currency-exchange/values.yaml: -------------------------------------------------------------------------------- 1 | image: in28min/currency-exchange:0.0.1-RELEASE 2 | port: 8000 3 | servicetype: LoadBalancer 4 | replicas: 1 5 | name: currency-exchange -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/pcf-zz-backup/01-naming-server-currency-conversion-service.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/pcf-zz-backup/01-naming-server-currency-conversion-service.zip -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/pcf-zz-backup/01-naming-server-currency-exchange-service.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/pcf-zz-backup/01-naming-server-currency-exchange-service.zip -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/pcf-zz-backup/02-end-currency-conversion-service.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/pcf-zz-backup/02-end-currency-conversion-service.zip -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/pcf-zz-backup/02-end-currency-exchange-service.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/pcf-zz-backup/02-end-currency-exchange-service.zip -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/pcf-zz-backup/final-after-recording.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/pcf-zz-backup/final-after-recording.zip -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/pcf-zz-backup/final-prep-code.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/pcf-zz-backup/final-prep-code.zip -------------------------------------------------------------------------------- /99-backup-and-others-for-later-use/pcf-zz-backup/initial-package-for-students.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/spring-boot-to-cloud/9ee9374301b6bde45d559ef6900b3dbb658ef5dd/99-backup-and-others-for-later-use/pcf-zz-backup/initial-package-for-students.zip --------------------------------------------------------------------------------