├── .gitignore ├── .travis.yml ├── README.md ├── chapter01 ├── chapter01.iml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── tacos │ │ │ ├── HomeController.java │ │ │ └── TacoCloudApplication.java │ └── resources │ │ ├── application.properties │ │ ├── static │ │ └── images │ │ │ └── TacoCloud.png │ │ └── templates │ │ └── home.html │ └── test │ └── java │ └── tacos │ ├── HomeControllerTest.java │ ├── HomePageBrowserTest.java │ └── TacoCloudApplicationTests.java ├── chapter02 ├── chapter02.iml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── tacos │ │ │ ├── Ingredient.java │ │ │ ├── Order.java │ │ │ ├── Taco.java │ │ │ ├── TacoCloudApplication.java │ │ │ └── web │ │ │ ├── DesignTacoController.java │ │ │ ├── OrderController.java │ │ │ └── WebConfig.java │ └── resources │ │ ├── application.yml │ │ ├── static │ │ ├── images │ │ │ └── TacoCloud.png │ │ └── styles.css │ │ └── templates │ │ ├── design.html │ │ ├── home.html │ │ └── orderForm.html │ └── test │ └── java │ └── tacos │ ├── DesignAndOrderTacosBrowserTest.java │ ├── DesignTacoControllerTest.java │ ├── HomeControllerTest.java │ ├── HomePageBrowserTest.java │ └── TacoCloudApplicationTests.java ├── chapter03-jdbc ├── chapter03-jdbc.iml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── tacos │ │ │ ├── Ingredient.java │ │ │ ├── Order.java │ │ │ ├── Taco.java │ │ │ ├── TacoCloudApplication.java │ │ │ ├── data │ │ │ ├── IngredientRepository.java │ │ │ ├── JdbcIngredientRepository.java │ │ │ ├── JdbcOrderRepository.java │ │ │ ├── JdbcTacoRepository.java │ │ │ ├── OrderRepository.java │ │ │ ├── RawJdbcIngredientRepository.java │ │ │ └── TacoRepository.java │ │ │ └── web │ │ │ ├── DesignTacoController.java │ │ │ ├── IngredientByIdConverter.java │ │ │ ├── OrderController.java │ │ │ └── WebConfig.java │ └── resources │ │ ├── application.yml │ │ ├── data.sql │ │ ├── schema.sql │ │ ├── static │ │ ├── images │ │ │ └── TacoCloud.png │ │ └── styles.css │ │ └── templates │ │ ├── design.html │ │ ├── home.html │ │ └── orderForm.html │ └── test │ └── java │ └── tacos │ ├── DesignAndOrderTacosBrowserTest.java │ ├── DesignTacoControllerTest.java │ ├── HomeControllerTest.java │ ├── HomePageBrowserTest.java │ └── TacoCloudApplicationTests.java ├── chapter03-jpa ├── chapter03-jpa.iml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── tacos │ │ │ ├── Ingredient.java │ │ │ ├── Order.java │ │ │ ├── Taco.java │ │ │ ├── TacoCloudApplication.java │ │ │ ├── data │ │ │ ├── IngredientRepository.java │ │ │ ├── OrderRepository.java │ │ │ └── TacoRepository.java │ │ │ └── web │ │ │ ├── DesignTacoController.java │ │ │ ├── IngredientByIdConverter.java │ │ │ ├── OrderController.java │ │ │ └── WebConfig.java │ └── resources │ │ ├── application.properties │ │ ├── static │ │ ├── images │ │ │ └── TacoCloud.png │ │ └── styles.css │ │ └── templates │ │ ├── design.html │ │ ├── home.html │ │ └── orderForm.html │ └── test │ └── java │ └── tacos │ ├── DesignAndOrderTacosBrowserTest.java │ ├── DesignTacoControllerTest.java │ ├── HomeControllerTest.java │ ├── HomePageBrowserTest.java │ └── TacoCloudApplicationTests.java ├── chapter04 ├── chapter04.iml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── tacos │ │ │ ├── Ingredient.java │ │ │ ├── Order.java │ │ │ ├── Taco.java │ │ │ ├── TacoCloudApplication.java │ │ │ ├── User.java │ │ │ ├── data │ │ │ ├── IngredientRepository.java │ │ │ ├── OrderRepository.java │ │ │ ├── TacoRepository.java │ │ │ └── UserRepository.java │ │ │ ├── security │ │ │ ├── RegistrationController.java │ │ │ ├── RegistrationForm.java │ │ │ ├── SecurityConfig.java │ │ │ └── UserRepositoryUserDetailsService.java │ │ │ └── web │ │ │ ├── DesignTacoController.java │ │ │ ├── IngredientByIdConverter.java │ │ │ ├── OrderController.java │ │ │ └── WebConfig.java │ └── resources │ │ ├── application.properties │ │ ├── static │ │ ├── images │ │ │ └── TacoCloud.png │ │ └── styles.css │ │ └── templates │ │ ├── design.html │ │ ├── home.html │ │ ├── login.html │ │ ├── orderForm.html │ │ └── registration.html │ └── test │ ├── java │ └── tacos │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ ├── DesignTacoControllerTest.java │ │ ├── HomeControllerTest.java │ │ ├── HomePageBrowserTest.java │ │ └── TacoCloudApplicationTests.java │ └── resources │ └── application.properties ├── chapter05 ├── chapter05.iml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── tacos │ │ │ ├── DevelopmentConfig.java │ │ │ ├── DiscountCodeProps.java │ │ │ ├── Ingredient.java │ │ │ ├── Order.java │ │ │ ├── Taco.java │ │ │ ├── TacoCloudApplication.java │ │ │ ├── User.java │ │ │ ├── data │ │ │ ├── IngredientRepository.java │ │ │ ├── OrderRepository.java │ │ │ ├── TacoRepository.java │ │ │ └── UserRepository.java │ │ │ ├── security │ │ │ ├── RegistrationController.java │ │ │ ├── RegistrationForm.java │ │ │ ├── SecurityConfig.java │ │ │ └── UserRepositoryUserDetailsService.java │ │ │ └── web │ │ │ ├── DesignTacoController.java │ │ │ ├── DiscountController.java │ │ │ ├── IngredientByIdConverter.java │ │ │ ├── OrderController.java │ │ │ ├── OrderProps.java │ │ │ └── WebConfig.java │ └── resources │ │ ├── META-INF │ │ └── additional-spring-configuration-metadata.json │ │ ├── application.yml │ │ ├── static │ │ ├── images │ │ │ └── TacoCloud.png │ │ └── styles.css │ │ └── templates │ │ ├── design.html │ │ ├── discountList.html │ │ ├── home.html │ │ ├── login.html │ │ ├── orderForm.html │ │ ├── orderList.html │ │ └── registration.html │ └── test │ └── java │ └── tacos │ ├── DesignAndOrderTacosBrowserTest.java │ ├── DesignTacoControllerBrowserTest.java │ ├── DesignTacoControllerTest.java │ ├── HomeControllerTest.java │ └── TacoCloudApplicationTests.java ├── chapter06 ├── chapter06.iml ├── pom.xml ├── tacocloud-api │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── web │ │ │ └── api │ │ │ ├── DesignTacoController.java │ │ │ ├── IngredientController.java │ │ │ ├── IngredientResource.java │ │ │ ├── IngredientResourceAssembler.java │ │ │ ├── OrderApiController.java │ │ │ ├── RecentTacosController.java │ │ │ ├── SpringDataRestConfiguration.java │ │ │ ├── TacoResource.java │ │ │ ├── TacoResourceAssembler.java │ │ │ └── TacoResources.java │ └── tacocloud-api (1) (Spring-In-Action-5.Chapter06).iml ├── tacocloud-data │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── data │ │ │ ├── IngredientRepository.java │ │ │ ├── OrderRepository.java │ │ │ ├── TacoRepository.java │ │ │ └── UserRepository.java │ └── tacocloud-data (1) (Spring-In-Action-5.Chapter06).iml ├── tacocloud-domain │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ ├── Ingredient.java │ │ │ ├── Order.java │ │ │ ├── Taco.java │ │ │ └── User.java │ └── tacocloud-domain (1) (Spring-In-Action-5.Chapter06).iml ├── tacocloud-security │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── security │ │ │ ├── RegistrationController.java │ │ │ ├── RegistrationForm.java │ │ │ ├── SecurityConfig.java │ │ │ └── UserRepositoryUserDetailsService.java │ └── tacocloud-security (1) (Spring-In-Action-5.Chapter06).iml ├── tacocloud-ui │ ├── .angular-cli.json │ ├── .editorconfig │ ├── .gitignore │ ├── README.md │ ├── e2e │ │ ├── app.e2e-spec.ts │ │ ├── app.po.ts │ │ └── tsconfig.e2e.json │ ├── karma.conf.js │ ├── package.json │ ├── pom.xml │ ├── protractor.conf.js │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ └── ApiService.ts │ │ │ ├── app.component.css │ │ │ ├── app.component.html │ │ │ ├── app.component.spec.ts │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── app.routes.ts │ │ │ ├── auth.config.ts │ │ │ ├── big-button │ │ │ │ ├── bigbutton.component.css │ │ │ │ ├── bigbutton.component.html │ │ │ │ └── bigbutton.component.ts │ │ │ ├── cart │ │ │ │ ├── cart-item.ts │ │ │ │ ├── cart-service.ts │ │ │ │ ├── cart.component.css │ │ │ │ ├── cart.component.html │ │ │ │ └── cart.component.ts │ │ │ ├── cloud-title │ │ │ │ ├── cloudtitle.component.css │ │ │ │ ├── cloudtitle.component.html │ │ │ │ └── cloudtitle.component.ts │ │ │ ├── design │ │ │ │ ├── design.component.css │ │ │ │ ├── design.component.html │ │ │ │ └── design.component.ts │ │ │ ├── footer │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── footer.component.css │ │ │ │ ├── footer.component.html │ │ │ │ └── footer.component.ts │ │ │ ├── group-box │ │ │ │ ├── groupbox.component.css │ │ │ │ ├── groupbox.component.html │ │ │ │ └── groupbox.component.ts │ │ │ ├── header │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── header.component.css │ │ │ │ ├── header.component.html │ │ │ │ └── header.component.ts │ │ │ ├── home │ │ │ │ ├── home.component.css │ │ │ │ ├── home.component.html │ │ │ │ └── home.component.ts │ │ │ ├── little-button │ │ │ │ ├── littlebutton.component.css │ │ │ │ ├── littlebutton.component.html │ │ │ │ └── littlebutton.component.ts │ │ │ ├── locations │ │ │ │ ├── locations.component.css │ │ │ │ ├── locations.component.html │ │ │ │ └── locations.component.ts │ │ │ ├── login │ │ │ │ ├── login.component.css │ │ │ │ ├── login.component.html │ │ │ │ └── login.component.ts │ │ │ ├── recents │ │ │ │ ├── NonWrapsPipe.ts │ │ │ │ ├── RecentTacosService.ts │ │ │ │ ├── WrapsPipe.ts │ │ │ │ ├── recents.component.css │ │ │ │ ├── recents.component.html │ │ │ │ └── recents.component.ts │ │ │ └── specials │ │ │ │ ├── specials.component.css │ │ │ │ ├── specials.component.html │ │ │ │ └── specials.component.ts │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ ├── CloudBackground.png │ │ │ ├── Cloud_sm.png │ │ │ ├── TacoCloud.png │ │ │ ├── TacoPhoto.jpg │ │ │ ├── cart.png │ │ │ ├── down-triangle.png │ │ │ └── taco-icon.png │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── routes │ │ ├── styles.css │ │ ├── test.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── typings.d.ts │ ├── tacocloud-ui (1) (Spring-In-Action-5.Chapter06).iml │ ├── tacocloud-ui.iml │ ├── tsconfig.json │ └── tslint.json ├── tacocloud-web │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ ├── DiscountCodeProps.java │ │ │ │ │ └── web │ │ │ │ │ ├── DiscountController.java │ │ │ │ │ ├── OrderController.java │ │ │ │ │ ├── OrderProps.java │ │ │ │ │ └── WebConfig.java │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── additional-spring-configuration-metadata.json │ │ │ │ ├── static │ │ │ │ ├── images │ │ │ │ │ ├── TacoCloud.png │ │ │ │ │ └── cloud-taco.png │ │ │ │ ├── mustache │ │ │ │ │ ├── ingredients.mst │ │ │ │ │ └── recents.mst │ │ │ │ ├── scripts │ │ │ │ │ ├── ingredients.js │ │ │ │ │ └── recents.js │ │ │ │ └── styles.css │ │ │ │ └── templates │ │ │ │ ├── design.html │ │ │ │ ├── discountList.html │ │ │ │ ├── home.html │ │ │ │ ├── layout.html │ │ │ │ ├── login.html │ │ │ │ ├── orderForm.html │ │ │ │ ├── orderList.html │ │ │ │ └── registration.html │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ │ ├── DesignTacoControllerBrowserTest.java │ │ │ └── HomeControllerTest.java │ └── tacocloud-web (1) (Spring-In-Action-5.Chapter06).iml └── tacos │ ├── pom.xml │ ├── src │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ └── TacoCloudApplication.java │ │ └── resources │ │ │ └── application.yml │ └── test │ │ └── java │ │ └── tacos │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ ├── DesignTacoControllerBrowserTest.java │ │ ├── HomeControllerTest.java │ │ └── TacoCloudApplicationTests.java │ └── taco-cloud.iml ├── chapter07 ├── chapter07.iml ├── pom.xml ├── tacocloud-api │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── web │ │ │ └── api │ │ │ ├── DesignTacoController.java │ │ │ ├── IngredientController.java │ │ │ ├── IngredientResource.java │ │ │ ├── IngredientResourceAssembler.java │ │ │ ├── OrderApiController.java │ │ │ ├── RecentTacosController.java │ │ │ ├── SpringDataRestConfiguration.java │ │ │ ├── TacoResource.java │ │ │ ├── TacoResourceAssembler.java │ │ │ ├── TacoResources.java │ │ │ └── TacoResourcesProcessor.java │ └── tacocloud-api (2) (Spring-In-Action-5.Chapter07).iml ├── tacocloud-data │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── data │ │ │ ├── IngredientRepository.java │ │ │ ├── OrderRepository.java │ │ │ ├── TacoRepository.java │ │ │ └── UserRepository.java │ └── tacocloud-data (2) (Spring-In-Action-5.Chapter07).iml ├── tacocloud-domain │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ ├── Ingredient.java │ │ │ ├── Order.java │ │ │ ├── Taco.java │ │ │ └── User.java │ └── tacocloud-domain (2) (Spring-In-Action-5.Chapter07).iml ├── tacocloud-restclient │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── restclient │ │ │ │ ├── RestExamples.java │ │ │ │ └── TacoCloudClient.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── additional-spring-configuration-metadata.json │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── images │ │ │ │ ├── TacoCloud.png │ │ │ │ └── cloud-taco.png │ │ │ ├── mustache │ │ │ │ ├── ingredients.mst │ │ │ │ └── recents.mst │ │ │ ├── scripts │ │ │ │ ├── ingredients.js │ │ │ │ └── recents.js │ │ │ └── styles.css │ │ │ └── templates │ │ │ ├── design.html │ │ │ ├── discountList.html │ │ │ ├── home.html │ │ │ ├── layout.html │ │ │ ├── login.html │ │ │ ├── orderForm.html │ │ │ ├── orderList.html │ │ │ └── registration.html │ └── tacocloud-restclient (1) (Spring-In-Action-5.Chapter07).iml ├── tacocloud-security │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── security │ │ │ ├── RegistrationController.java │ │ │ ├── RegistrationForm.java │ │ │ ├── SecurityConfig.java │ │ │ └── UserRepositoryUserDetailsService.java │ └── tacocloud-security (2) (Spring-In-Action-5.Chapter07).iml ├── tacocloud-ui │ ├── .angular-cli.json │ ├── .editorconfig │ ├── .gitignore │ ├── README.md │ ├── e2e │ │ ├── app.e2e-spec.ts │ │ ├── app.po.ts │ │ └── tsconfig.e2e.json │ ├── karma.conf.js │ ├── package.json │ ├── pom.xml │ ├── protractor.conf.js │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ └── ApiService.ts │ │ │ ├── app.component.css │ │ │ ├── app.component.html │ │ │ ├── app.component.spec.ts │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── app.routes.ts │ │ │ ├── auth.config.ts │ │ │ ├── big-button │ │ │ │ ├── bigbutton.component.css │ │ │ │ ├── bigbutton.component.html │ │ │ │ └── bigbutton.component.ts │ │ │ ├── cart │ │ │ │ ├── cart-item.ts │ │ │ │ ├── cart-service.ts │ │ │ │ ├── cart.component.css │ │ │ │ ├── cart.component.html │ │ │ │ └── cart.component.ts │ │ │ ├── cloud-title │ │ │ │ ├── cloudtitle.component.css │ │ │ │ ├── cloudtitle.component.html │ │ │ │ └── cloudtitle.component.ts │ │ │ ├── design │ │ │ │ ├── design.component.css │ │ │ │ ├── design.component.html │ │ │ │ └── design.component.ts │ │ │ ├── footer │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── footer.component.css │ │ │ │ ├── footer.component.html │ │ │ │ └── footer.component.ts │ │ │ ├── group-box │ │ │ │ ├── groupbox.component.css │ │ │ │ ├── groupbox.component.html │ │ │ │ └── groupbox.component.ts │ │ │ ├── header │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── header.component.css │ │ │ │ ├── header.component.html │ │ │ │ └── header.component.ts │ │ │ ├── home │ │ │ │ ├── home.component.css │ │ │ │ ├── home.component.html │ │ │ │ └── home.component.ts │ │ │ ├── little-button │ │ │ │ ├── littlebutton.component.css │ │ │ │ ├── littlebutton.component.html │ │ │ │ └── littlebutton.component.ts │ │ │ ├── locations │ │ │ │ ├── locations.component.css │ │ │ │ ├── locations.component.html │ │ │ │ └── locations.component.ts │ │ │ ├── login │ │ │ │ ├── login.component.css │ │ │ │ ├── login.component.html │ │ │ │ └── login.component.ts │ │ │ ├── recents │ │ │ │ ├── NonWrapsPipe.ts │ │ │ │ ├── RecentTacosService.ts │ │ │ │ ├── WrapsPipe.ts │ │ │ │ ├── recents.component.css │ │ │ │ ├── recents.component.html │ │ │ │ └── recents.component.ts │ │ │ └── specials │ │ │ │ ├── specials.component.css │ │ │ │ ├── specials.component.html │ │ │ │ └── specials.component.ts │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ ├── CloudBackground.png │ │ │ ├── Cloud_sm.png │ │ │ ├── TacoCloud.png │ │ │ ├── TacoPhoto.jpg │ │ │ ├── cart.png │ │ │ ├── down-triangle.png │ │ │ └── taco-icon.png │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── routes │ │ ├── styles.css │ │ ├── test.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── typings.d.ts │ ├── tacocloud-ui (2) (Spring-In-Action-5.Chapter07).iml │ ├── tsconfig.json │ └── tslint.json ├── tacocloud-web │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ ├── DiscountCodeProps.java │ │ │ │ │ └── web │ │ │ │ │ ├── DiscountController.java │ │ │ │ │ ├── OrderController.java │ │ │ │ │ ├── OrderProps.java │ │ │ │ │ └── WebConfig.java │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── additional-spring-configuration-metadata.json │ │ │ │ ├── static │ │ │ │ ├── images │ │ │ │ │ ├── TacoCloud.png │ │ │ │ │ └── cloud-taco.png │ │ │ │ ├── mustache │ │ │ │ │ ├── ingredients.mst │ │ │ │ │ └── recents.mst │ │ │ │ ├── scripts │ │ │ │ │ ├── ingredients.js │ │ │ │ │ └── recents.js │ │ │ │ └── styles.css │ │ │ │ └── templates │ │ │ │ ├── design.html │ │ │ │ ├── discountList.html │ │ │ │ ├── home.html │ │ │ │ ├── layout.html │ │ │ │ ├── login.html │ │ │ │ ├── orderForm.html │ │ │ │ ├── orderList.html │ │ │ │ └── registration.html │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ │ ├── DesignTacoControllerBrowserTest.java │ │ │ └── HomeControllerTest.java │ └── tacocloud-web (2) (Spring-In-Action-5.Chapter07).iml └── tacos │ ├── pom.xml │ ├── src │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ └── TacoCloudApplication.java │ │ └── resources │ │ │ └── application.yml │ └── test │ │ └── java │ │ └── tacos │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ ├── DesignTacoControllerBrowserTest.java │ │ ├── HomeControllerTest.java │ │ └── TacoCloudApplicationTests.java │ └── tacocloud.iml ├── chapter08 ├── chapter08.iml ├── pom.xml ├── tacocloud-api │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── web │ │ │ │ └── api │ │ │ │ ├── DesignTacoController.java │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientResource.java │ │ │ │ ├── IngredientResourceAssembler.java │ │ │ │ ├── OrderApiController.java │ │ │ │ ├── RecentTacosController.java │ │ │ │ ├── SpringDataRestConfiguration.java │ │ │ │ ├── TacoResource.java │ │ │ │ ├── TacoResourceAssembler.java │ │ │ │ └── TacoResources.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-api (3) (Spring-In-Action-5.Chapter08).iml ├── tacocloud-data │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── data │ │ │ ├── IngredientRepository.java │ │ │ ├── OrderRepository.java │ │ │ ├── TacoRepository.java │ │ │ └── UserRepository.java │ └── tacocloud-data (3) (Spring-In-Action-5.Chapter08).iml ├── tacocloud-domain │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ ├── Ingredient.java │ │ │ ├── Order.java │ │ │ ├── Taco.java │ │ │ └── User.java │ └── tacocloud-domain (3) (Spring-In-Action-5.Chapter08).iml ├── tacocloud-kitchen │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ ├── Ingredient.java │ │ │ │ ├── Order.java │ │ │ │ ├── Taco.java │ │ │ │ └── kitchen │ │ │ │ ├── KitchenUI.java │ │ │ │ ├── OrderReceiver.java │ │ │ │ ├── OrderReceiverController.java │ │ │ │ ├── TacoKitchenApplication.java │ │ │ │ ├── WebConfig.java │ │ │ │ └── messaging │ │ │ │ ├── jms │ │ │ │ ├── JmsOrderReceiver.java │ │ │ │ ├── MessagingConfig.java │ │ │ │ └── listener │ │ │ │ │ └── OrderListener.java │ │ │ │ ├── kafka │ │ │ │ └── listener │ │ │ │ │ └── OrderListener.java │ │ │ │ └── rabbit │ │ │ │ ├── MessagingConfig.java │ │ │ │ ├── RabbitOrderReceiver.java │ │ │ │ └── listener │ │ │ │ └── OrderListener.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── templates │ │ │ ├── noOrder.html │ │ │ └── receiveOrder.html │ └── tacocloud-kitchen (1) (Spring-In-Action-5.Chapter08).iml ├── tacocloud-messaging-jms │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── JmsOrderMessagingService.java │ │ │ │ ├── MessagingConfig.java │ │ │ │ └── OrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-jms (1) (Spring-In-Action-5.Chapter08).iml ├── tacocloud-messaging-kafka │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── KafkaOrderMessagingService.java │ │ │ │ └── OrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-kafka (1) (Spring-In-Action-5.Chapter08).iml ├── tacocloud-messaging-rabbitmq │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── MessagingConfig.java │ │ │ │ ├── OrderMessagingService.java │ │ │ │ └── RabbitOrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-rabbitmq (1) (Spring-In-Action-5.Chapter08).iml ├── tacocloud-restclient │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── restclient │ │ │ │ ├── RestExamples.java │ │ │ │ └── TacoCloudClient.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── additional-spring-configuration-metadata.json │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── images │ │ │ │ ├── TacoCloud.png │ │ │ │ └── cloud-taco.png │ │ │ ├── mustache │ │ │ │ ├── ingredients.mst │ │ │ │ └── recents.mst │ │ │ ├── scripts │ │ │ │ ├── ingredients.js │ │ │ │ └── recents.js │ │ │ └── styles.css │ │ │ └── templates │ │ │ ├── design.html │ │ │ ├── discountList.html │ │ │ ├── home.html │ │ │ ├── layout.html │ │ │ ├── login.html │ │ │ ├── orderForm.html │ │ │ ├── orderList.html │ │ │ └── registration.html │ └── tacocloud-restclient (2) (Spring-In-Action-5.Chapter08).iml ├── tacocloud-security │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── security │ │ │ ├── RegistrationController.java │ │ │ ├── RegistrationForm.java │ │ │ ├── SecurityConfig.java │ │ │ └── UserRepositoryUserDetailsService.java │ └── tacocloud-security (3) (Spring-In-Action-5.Chapter08).iml ├── tacocloud-ui │ ├── .angular-cli.json │ ├── .editorconfig │ ├── .gitignore │ ├── README.md │ ├── e2e │ │ ├── app.e2e-spec.ts │ │ ├── app.po.ts │ │ └── tsconfig.e2e.json │ ├── karma.conf.js │ ├── package.json │ ├── pom.xml │ ├── protractor.conf.js │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ └── ApiService.ts │ │ │ ├── app.component.css │ │ │ ├── app.component.html │ │ │ ├── app.component.spec.ts │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── app.routes.ts │ │ │ ├── auth.config.ts │ │ │ ├── big-button │ │ │ │ ├── bigbutton.component.css │ │ │ │ ├── bigbutton.component.html │ │ │ │ └── bigbutton.component.ts │ │ │ ├── cart │ │ │ │ ├── cart-item.ts │ │ │ │ ├── cart-service.ts │ │ │ │ ├── cart.component.css │ │ │ │ ├── cart.component.html │ │ │ │ └── cart.component.ts │ │ │ ├── cloud-title │ │ │ │ ├── cloudtitle.component.css │ │ │ │ ├── cloudtitle.component.html │ │ │ │ └── cloudtitle.component.ts │ │ │ ├── design │ │ │ │ ├── design.component.css │ │ │ │ ├── design.component.html │ │ │ │ └── design.component.ts │ │ │ ├── footer │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── footer.component.css │ │ │ │ ├── footer.component.html │ │ │ │ └── footer.component.ts │ │ │ ├── group-box │ │ │ │ ├── groupbox.component.css │ │ │ │ ├── groupbox.component.html │ │ │ │ └── groupbox.component.ts │ │ │ ├── header │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── header.component.css │ │ │ │ ├── header.component.html │ │ │ │ └── header.component.ts │ │ │ ├── home │ │ │ │ ├── home.component.css │ │ │ │ ├── home.component.html │ │ │ │ └── home.component.ts │ │ │ ├── little-button │ │ │ │ ├── littlebutton.component.css │ │ │ │ ├── littlebutton.component.html │ │ │ │ └── littlebutton.component.ts │ │ │ ├── locations │ │ │ │ ├── locations.component.css │ │ │ │ ├── locations.component.html │ │ │ │ └── locations.component.ts │ │ │ ├── login │ │ │ │ ├── login.component.css │ │ │ │ ├── login.component.html │ │ │ │ └── login.component.ts │ │ │ ├── recents │ │ │ │ ├── NonWrapsPipe.ts │ │ │ │ ├── RecentTacosService.ts │ │ │ │ ├── WrapsPipe.ts │ │ │ │ ├── recents.component.css │ │ │ │ ├── recents.component.html │ │ │ │ └── recents.component.ts │ │ │ └── specials │ │ │ │ ├── specials.component.css │ │ │ │ ├── specials.component.html │ │ │ │ └── specials.component.ts │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ ├── CloudBackground.png │ │ │ ├── Cloud_sm.png │ │ │ ├── TacoCloud.png │ │ │ ├── TacoPhoto.jpg │ │ │ ├── cart.png │ │ │ ├── down-triangle.png │ │ │ └── taco-icon.png │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── routes │ │ ├── styles.css │ │ ├── test.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── typings.d.ts │ ├── tacocloud-ui (3) (Spring-In-Action-5.Chapter08).iml │ ├── tsconfig.json │ └── tslint.json ├── tacocloud-web │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ ├── DiscountCodeProps.java │ │ │ │ │ └── web │ │ │ │ │ ├── DiscountController.java │ │ │ │ │ ├── OrderController.java │ │ │ │ │ ├── OrderProps.java │ │ │ │ │ └── WebConfig.java │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── additional-spring-configuration-metadata.json │ │ │ │ ├── static │ │ │ │ ├── images │ │ │ │ │ ├── TacoCloud.png │ │ │ │ │ └── cloud-taco.png │ │ │ │ ├── mustache │ │ │ │ │ ├── ingredients.mst │ │ │ │ │ └── recents.mst │ │ │ │ ├── scripts │ │ │ │ │ ├── ingredients.js │ │ │ │ │ └── recents.js │ │ │ │ └── styles.css │ │ │ │ └── templates │ │ │ │ ├── design.html │ │ │ │ ├── discountList.html │ │ │ │ ├── home.html │ │ │ │ ├── layout.html │ │ │ │ ├── login.html │ │ │ │ ├── orderForm.html │ │ │ │ ├── orderList.html │ │ │ │ └── registration.html │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ │ ├── DesignTacoControllerBrowserTest.java │ │ │ └── HomeControllerTest.java │ └── tacocloud-web (3) (Spring-In-Action-5.Chapter08).iml └── tacos │ ├── pom.xml │ ├── src │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ └── TacoCloudApplication.java │ │ └── resources │ │ │ └── application.yml │ └── test │ │ └── java │ │ └── tacos │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ ├── DesignTacoControllerBrowserTest.java │ │ ├── HomeControllerTest.java │ │ └── TacoCloudApplicationTests.java │ └── tacos (1) (Spring-In-Action-5.Chapter08).iml ├── chapter09-flow ├── chapter09-flow.iml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── sia5 │ │ │ ├── FileWriterGateway.java │ │ │ ├── FileWriterIntegrationConfig.java │ │ │ └── SimpleFlowApplication.java │ └── resources │ │ ├── application.properties │ │ └── filewriter-config.xml │ └── test │ └── java │ └── sia5 │ └── SimpleFlowApplicationTests.java ├── chapter09 ├── chapter09.iml ├── pom.xml ├── tacocloud-api │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── web │ │ │ │ └── api │ │ │ │ ├── DesignTacoController.java │ │ │ │ ├── EmailOrder.java │ │ │ │ ├── EmailOrderService.java │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientResource.java │ │ │ │ ├── IngredientResourceAssembler.java │ │ │ │ ├── OrderApiController.java │ │ │ │ ├── RecentTacosController.java │ │ │ │ ├── SpringDataRestConfiguration.java │ │ │ │ ├── TacoResource.java │ │ │ │ ├── TacoResourceAssembler.java │ │ │ │ └── TacoResources.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-api (4) (Spring-In-Action-5.Chapter09).iml ├── tacocloud-data │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── data │ │ │ ├── IngredientRepository.java │ │ │ ├── OrderRepository.java │ │ │ ├── PaymentMethodRepository.java │ │ │ ├── TacoRepository.java │ │ │ └── UserRepository.java │ └── tacocloud-data (4) (Spring-In-Action-5.Chapter09).iml ├── tacocloud-domain │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ ├── Ingredient.java │ │ │ ├── Order.java │ │ │ ├── PaymentMethod.java │ │ │ ├── Taco.java │ │ │ └── User.java │ └── tacocloud-domain (4) (Spring-In-Action-5.Chapter09).iml ├── tacocloud-email │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── email │ │ │ │ ├── ApiProperties.java │ │ │ │ ├── EmailProperties.java │ │ │ │ ├── EmailToOrderTransformer.java │ │ │ │ ├── Ingredient.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderSubmitMessageHandler.java │ │ │ │ ├── Taco.java │ │ │ │ ├── TacoEmailApplication.java │ │ │ │ └── TacoOrderEmailIntegrationConfig.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-email (1) (Spring-In-Action-5.Chapter09).iml ├── tacocloud-kitchen │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ ├── Ingredient.java │ │ │ │ ├── Order.java │ │ │ │ ├── Taco.java │ │ │ │ └── kitchen │ │ │ │ ├── KitchenUI.java │ │ │ │ ├── OrderReceiver.java │ │ │ │ ├── OrderReceiverController.java │ │ │ │ ├── TacoKitchenApplication.java │ │ │ │ ├── WebConfig.java │ │ │ │ └── messaging │ │ │ │ ├── jms │ │ │ │ ├── JmsOrderReceiver.java │ │ │ │ ├── MessagingConfig.java │ │ │ │ └── listener │ │ │ │ │ └── OrderListener.java │ │ │ │ ├── kafka │ │ │ │ └── listener │ │ │ │ │ └── OrderListener.java │ │ │ │ └── rabbit │ │ │ │ ├── MessagingConfig.java │ │ │ │ ├── RabbitOrderReceiver.java │ │ │ │ └── listener │ │ │ │ └── OrderListener.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── templates │ │ │ ├── noOrder.html │ │ │ └── receiveOrder.html │ └── tacocloud-kitchen (2) (Spring-In-Action-5.Chapter09).iml ├── tacocloud-messaging-jms │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── JmsOrderMessagingService.java │ │ │ │ ├── MessagingConfig.java │ │ │ │ └── OrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-jms (2) (Spring-In-Action-5.Chapter09).iml ├── tacocloud-messaging-kafka │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── KafkaOrderMessagingService.java │ │ │ │ └── OrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-kafka (2) (Spring-In-Action-5.Chapter09).iml ├── tacocloud-messaging-rabbitmq │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── MessagingConfig.java │ │ │ │ ├── OrderMessagingService.java │ │ │ │ └── RabbitOrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-rabbitmq (2) (Spring-In-Action-5.Chapter09).iml ├── tacocloud-restclient │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── restclient │ │ │ │ ├── RestExamples.java │ │ │ │ └── TacoCloudClient.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── additional-spring-configuration-metadata.json │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── images │ │ │ │ ├── TacoCloud.png │ │ │ │ └── cloud-taco.png │ │ │ ├── mustache │ │ │ │ ├── ingredients.mst │ │ │ │ └── recents.mst │ │ │ ├── scripts │ │ │ │ ├── ingredients.js │ │ │ │ └── recents.js │ │ │ └── styles.css │ │ │ └── templates │ │ │ ├── design.html │ │ │ ├── discountList.html │ │ │ ├── home.html │ │ │ ├── layout.html │ │ │ ├── login.html │ │ │ ├── orderForm.html │ │ │ ├── orderList.html │ │ │ └── registration.html │ └── tacocloud-restclient (3) (Spring-In-Action-5.Chapter09).iml ├── tacocloud-security │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── security │ │ │ ├── RegistrationController.java │ │ │ ├── RegistrationForm.java │ │ │ ├── SecurityConfig.java │ │ │ └── UserRepositoryUserDetailsService.java │ └── tacocloud-security (4) (Spring-In-Action-5.Chapter09).iml ├── tacocloud-ui │ ├── .angular-cli.json │ ├── .editorconfig │ ├── .gitignore │ ├── README.md │ ├── e2e │ │ ├── app.e2e-spec.ts │ │ ├── app.po.ts │ │ └── tsconfig.e2e.json │ ├── karma.conf.js │ ├── package.json │ ├── pom.xml │ ├── protractor.conf.js │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ └── ApiService.ts │ │ │ ├── app.component.css │ │ │ ├── app.component.html │ │ │ ├── app.component.spec.ts │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── app.routes.ts │ │ │ ├── auth.config.ts │ │ │ ├── big-button │ │ │ │ ├── bigbutton.component.css │ │ │ │ ├── bigbutton.component.html │ │ │ │ └── bigbutton.component.ts │ │ │ ├── cart │ │ │ │ ├── cart-item.ts │ │ │ │ ├── cart-service.ts │ │ │ │ ├── cart.component.css │ │ │ │ ├── cart.component.html │ │ │ │ └── cart.component.ts │ │ │ ├── cloud-title │ │ │ │ ├── cloudtitle.component.css │ │ │ │ ├── cloudtitle.component.html │ │ │ │ └── cloudtitle.component.ts │ │ │ ├── design │ │ │ │ ├── design.component.css │ │ │ │ ├── design.component.html │ │ │ │ └── design.component.ts │ │ │ ├── footer │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── footer.component.css │ │ │ │ ├── footer.component.html │ │ │ │ └── footer.component.ts │ │ │ ├── group-box │ │ │ │ ├── groupbox.component.css │ │ │ │ ├── groupbox.component.html │ │ │ │ └── groupbox.component.ts │ │ │ ├── header │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── header.component.css │ │ │ │ ├── header.component.html │ │ │ │ └── header.component.ts │ │ │ ├── home │ │ │ │ ├── home.component.css │ │ │ │ ├── home.component.html │ │ │ │ └── home.component.ts │ │ │ ├── little-button │ │ │ │ ├── littlebutton.component.css │ │ │ │ ├── littlebutton.component.html │ │ │ │ └── littlebutton.component.ts │ │ │ ├── locations │ │ │ │ ├── locations.component.css │ │ │ │ ├── locations.component.html │ │ │ │ └── locations.component.ts │ │ │ ├── login │ │ │ │ ├── login.component.css │ │ │ │ ├── login.component.html │ │ │ │ └── login.component.ts │ │ │ ├── recents │ │ │ │ ├── NonWrapsPipe.ts │ │ │ │ ├── RecentTacosService.ts │ │ │ │ ├── WrapsPipe.ts │ │ │ │ ├── recents.component.css │ │ │ │ ├── recents.component.html │ │ │ │ └── recents.component.ts │ │ │ └── specials │ │ │ │ ├── specials.component.css │ │ │ │ ├── specials.component.html │ │ │ │ └── specials.component.ts │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ ├── CloudBackground.png │ │ │ ├── Cloud_sm.png │ │ │ ├── TacoCloud.png │ │ │ ├── TacoPhoto.jpg │ │ │ ├── cart.png │ │ │ ├── down-triangle.png │ │ │ └── taco-icon.png │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── routes │ │ ├── styles.css │ │ ├── test.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── typings.d.ts │ ├── tacocloud-ui (4) (Spring-In-Action-5.Chapter09).iml │ ├── tsconfig.json │ └── tslint.json ├── tacocloud-web │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ ├── DiscountCodeProps.java │ │ │ │ │ └── web │ │ │ │ │ ├── DiscountController.java │ │ │ │ │ ├── OrderController.java │ │ │ │ │ ├── OrderProps.java │ │ │ │ │ └── WebConfig.java │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── additional-spring-configuration-metadata.json │ │ │ │ ├── static │ │ │ │ ├── images │ │ │ │ │ ├── TacoCloud.png │ │ │ │ │ └── cloud-taco.png │ │ │ │ ├── mustache │ │ │ │ │ ├── ingredients.mst │ │ │ │ │ └── recents.mst │ │ │ │ ├── scripts │ │ │ │ │ ├── ingredients.js │ │ │ │ │ └── recents.js │ │ │ │ └── styles.css │ │ │ │ └── templates │ │ │ │ ├── design.html │ │ │ │ ├── discountList.html │ │ │ │ ├── home.html │ │ │ │ ├── layout.html │ │ │ │ ├── login.html │ │ │ │ ├── orderForm.html │ │ │ │ ├── orderList.html │ │ │ │ └── registration.html │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ │ ├── DesignTacoControllerBrowserTest.java │ │ │ └── HomeControllerTest.java │ └── tacocloud-web (4) (Spring-In-Action-5.Chapter09).iml └── tacos │ ├── pom.xml │ ├── src │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ └── TacoCloudApplication.java │ │ └── resources │ │ │ └── application.yml │ └── test │ │ └── java │ │ └── tacos │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ ├── DesignTacoControllerBrowserTest.java │ │ ├── HomeControllerTest.java │ │ └── TacoCloudApplicationTests.java │ └── tacos (2) (Spring-In-Action-5.Chapter09).iml ├── chapter10 ├── chapter10.iml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── sia5 │ │ │ ├── SimpleApplication.java │ │ │ └── package-info.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── sia5 │ ├── FluxBufferingTests.java │ ├── FluxCreationTests.java │ ├── FluxLoggingTests.java │ ├── FluxMergingTests.java │ └── FluxTransformingTests.java ├── chapter11-12-cassandra ├── chapter11-12 (1) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── pom.xml ├── tacocloud-api │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ └── web │ │ │ │ │ └── api │ │ │ │ │ ├── DesignTacoController.java │ │ │ │ │ ├── EmailOrder.java │ │ │ │ │ ├── EmailOrderService.java │ │ │ │ │ ├── IngredientController.java │ │ │ │ │ ├── OrderApiController.java │ │ │ │ │ ├── RecentTacosController.java │ │ │ │ │ └── SpringDataRestConfiguration.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ └── web │ │ │ └── api │ │ │ ├── DesignTacoControllerTest.java │ │ │ └── DesignTacoControllerWebTest.java │ └── tacocloud-api (5) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── tacocloud-data │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── data │ │ │ ├── IngredientRepository.java │ │ │ ├── OrderRepository.java │ │ │ ├── PaymentMethodRepository.java │ │ │ ├── TacoRepository.java │ │ │ └── UserRepository.java │ └── tacocloud-data (5) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── tacocloud-domain │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ ├── Ingredient.java │ │ │ ├── IngredientUDT.java │ │ │ ├── Order.java │ │ │ ├── PaymentMethod.java │ │ │ ├── Taco.java │ │ │ ├── TacoUDT.java │ │ │ ├── User.java │ │ │ └── UserUDT.java │ └── tacocloud-domain (5) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── tacocloud-email │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── email │ │ │ │ ├── ApiProperties.java │ │ │ │ ├── EmailProperties.java │ │ │ │ ├── EmailToOrderTransformer.java │ │ │ │ ├── Ingredient.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderSubmitMessageHandler.java │ │ │ │ ├── Taco.java │ │ │ │ ├── TacoEmailApplication.java │ │ │ │ └── TacoOrderEmailIntegrationConfig.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-email (2) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── tacocloud-kitchen │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ ├── Ingredient.java │ │ │ │ ├── Order.java │ │ │ │ ├── Taco.java │ │ │ │ └── kitchen │ │ │ │ ├── KitchenUI.java │ │ │ │ ├── OrderReceiver.java │ │ │ │ ├── OrderReceiverController.java │ │ │ │ ├── TacoKitchenApplication.java │ │ │ │ ├── WebConfig.java │ │ │ │ └── messaging │ │ │ │ ├── jms │ │ │ │ ├── JmsOrderReceiver.java │ │ │ │ ├── MessagingConfig.java │ │ │ │ └── listener │ │ │ │ │ └── OrderListener.java │ │ │ │ ├── kafka │ │ │ │ └── listener │ │ │ │ │ └── OrderListener.java │ │ │ │ └── rabbit │ │ │ │ ├── MessagingConfig.java │ │ │ │ ├── RabbitOrderReceiver.java │ │ │ │ └── listener │ │ │ │ └── OrderListener.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── templates │ │ │ ├── noOrder.html │ │ │ └── receiveOrder.html │ └── tacocloud-kitchen (3) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── tacocloud-messaging-jms │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── JmsOrderMessagingService.java │ │ │ │ ├── MessagingConfig.java │ │ │ │ └── OrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-jms (3) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── tacocloud-messaging-kafka │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── KafkaOrderMessagingService.java │ │ │ │ └── OrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-kafka (3) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── tacocloud-messaging-rabbitmq │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── MessagingConfig.java │ │ │ │ ├── OrderMessagingService.java │ │ │ │ └── RabbitOrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-rabbitmq (3) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── tacocloud-restclient │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── restclient │ │ │ │ ├── RestExamples.java │ │ │ │ └── TacoCloudClient.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── additional-spring-configuration-metadata.json │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── images │ │ │ │ ├── TacoCloud.png │ │ │ │ └── cloud-taco.png │ │ │ ├── mustache │ │ │ │ ├── ingredients.mst │ │ │ │ └── recents.mst │ │ │ ├── scripts │ │ │ │ ├── ingredients.js │ │ │ │ └── recents.js │ │ │ └── styles.css │ │ │ └── templates │ │ │ ├── design.html │ │ │ ├── discountList.html │ │ │ ├── home.html │ │ │ ├── layout.html │ │ │ ├── login.html │ │ │ ├── orderForm.html │ │ │ ├── orderList.html │ │ │ └── registration.html │ └── tacocloud-restclient (4) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── tacocloud-security │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── security │ │ │ ├── RegistrationController.java │ │ │ ├── RegistrationForm.java │ │ │ ├── SecurityConfig.java │ │ │ └── UserRepositoryUserDetailsService.java │ └── tacocloud-security (5) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── tacocloud-ui │ ├── .angular-cli.json │ ├── .editorconfig │ ├── .gitignore │ ├── README.md │ ├── e2e │ │ ├── app.e2e-spec.ts │ │ ├── app.po.ts │ │ └── tsconfig.e2e.json │ ├── karma.conf.js │ ├── package.json │ ├── pom.xml │ ├── protractor.conf.js │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ └── ApiService.ts │ │ │ ├── app.component.css │ │ │ ├── app.component.html │ │ │ ├── app.component.spec.ts │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── app.routes.ts │ │ │ ├── auth.config.ts │ │ │ ├── big-button │ │ │ │ ├── bigbutton.component.css │ │ │ │ ├── bigbutton.component.html │ │ │ │ └── bigbutton.component.ts │ │ │ ├── cart │ │ │ │ ├── cart-item.ts │ │ │ │ ├── cart-service.ts │ │ │ │ ├── cart.component.css │ │ │ │ ├── cart.component.html │ │ │ │ └── cart.component.ts │ │ │ ├── cloud-title │ │ │ │ ├── cloudtitle.component.css │ │ │ │ ├── cloudtitle.component.html │ │ │ │ └── cloudtitle.component.ts │ │ │ ├── design │ │ │ │ ├── design.component.css │ │ │ │ ├── design.component.html │ │ │ │ └── design.component.ts │ │ │ ├── footer │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── footer.component.css │ │ │ │ ├── footer.component.html │ │ │ │ └── footer.component.ts │ │ │ ├── group-box │ │ │ │ ├── groupbox.component.css │ │ │ │ ├── groupbox.component.html │ │ │ │ └── groupbox.component.ts │ │ │ ├── header │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── header.component.css │ │ │ │ ├── header.component.html │ │ │ │ └── header.component.ts │ │ │ ├── home │ │ │ │ ├── home.component.css │ │ │ │ ├── home.component.html │ │ │ │ └── home.component.ts │ │ │ ├── little-button │ │ │ │ ├── littlebutton.component.css │ │ │ │ ├── littlebutton.component.html │ │ │ │ └── littlebutton.component.ts │ │ │ ├── locations │ │ │ │ ├── locations.component.css │ │ │ │ ├── locations.component.html │ │ │ │ └── locations.component.ts │ │ │ ├── login │ │ │ │ ├── login.component.css │ │ │ │ ├── login.component.html │ │ │ │ └── login.component.ts │ │ │ ├── recents │ │ │ │ ├── NonWrapsPipe.ts │ │ │ │ ├── RecentTacosService.ts │ │ │ │ ├── WrapsPipe.ts │ │ │ │ ├── recents.component.css │ │ │ │ ├── recents.component.html │ │ │ │ └── recents.component.ts │ │ │ └── specials │ │ │ │ ├── specials.component.css │ │ │ │ ├── specials.component.html │ │ │ │ └── specials.component.ts │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ ├── CloudBackground.png │ │ │ ├── Cloud_sm.png │ │ │ ├── TacoCloud.png │ │ │ ├── TacoPhoto.jpg │ │ │ ├── cart.png │ │ │ ├── down-triangle.png │ │ │ └── taco-icon.png │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── routes │ │ ├── styles.css │ │ ├── test.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── typings.d.ts │ ├── tacocloud-ui (5) (Spring-In-Action-5.Chapter11-12.cassandra).iml │ ├── tsconfig.json │ └── tslint.json ├── tacocloud-web │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ ├── DiscountCodeProps.java │ │ │ │ │ └── web │ │ │ │ │ ├── DiscountController.java │ │ │ │ │ ├── OrderController.java │ │ │ │ │ ├── OrderProps.java │ │ │ │ │ └── WebConfig.java │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── additional-spring-configuration-metadata.json │ │ │ │ ├── static │ │ │ │ ├── images │ │ │ │ │ ├── TacoCloud.png │ │ │ │ │ └── cloud-taco.png │ │ │ │ ├── mustache │ │ │ │ │ ├── ingredients.mst │ │ │ │ │ └── recents.mst │ │ │ │ ├── scripts │ │ │ │ │ ├── ingredients.js │ │ │ │ │ └── recents.js │ │ │ │ └── styles.css │ │ │ │ └── templates │ │ │ │ ├── design.html │ │ │ │ ├── discountList.html │ │ │ │ ├── home.html │ │ │ │ ├── layout.html │ │ │ │ ├── login.html │ │ │ │ ├── orderForm.html │ │ │ │ ├── orderList.html │ │ │ │ └── registration.html │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ │ ├── DesignTacoControllerBrowserTest.java │ │ │ └── HomeControllerTest.java │ └── tacocloud-web (5) (Spring-In-Action-5.Chapter11-12.cassandra).iml └── tacos │ ├── pom.xml │ ├── src │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ └── TacoCloudApplication.java │ │ └── resources │ │ │ └── application.yml │ └── test │ │ └── java │ │ └── tacos │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ ├── DesignTacoControllerBrowserTest.java │ │ ├── HomeControllerTest.java │ │ └── TacoCloudApplicationTests.java │ └── tacos (3) (Spring-In-Action-5.Chapter11-12.cassandra).iml ├── chapter11-12-mongodb ├── chapter11-12 (2) (Spring-In-Action-5.Chapter11-12.mongodb).iml ├── pom.xml ├── tacocloud-api │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ └── web │ │ │ │ │ └── api │ │ │ │ │ ├── DesignTacoController.java │ │ │ │ │ ├── EmailOrder.java │ │ │ │ │ ├── EmailOrderService.java │ │ │ │ │ ├── IngredientController.java │ │ │ │ │ ├── IngredientResource.java │ │ │ │ │ ├── IngredientResourceAssembler.java │ │ │ │ │ ├── OrderApiController.java │ │ │ │ │ ├── RecentTacosController.java │ │ │ │ │ ├── SpringDataRestConfiguration.java │ │ │ │ │ ├── TacoResource.java │ │ │ │ │ ├── TacoResourceAssembler.java │ │ │ │ │ └── TacoResources.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ └── web │ │ │ └── api │ │ │ └── DesignTacoControllerTest.java │ └── tacocloud-api (6) (Spring-In-Action-5.Chapter11-12.mongodb).iml ├── tacocloud-data-mongodb │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── data │ │ │ ├── IngredientRepository.java │ │ │ ├── OrderRepository.java │ │ │ ├── PaymentMethodRepository.java │ │ │ ├── TacoRepository.java │ │ │ └── UserRepository.java │ └── tacocloud-data-mongodb.iml ├── tacocloud-domain-mongodb │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ ├── Ingredient.java │ │ │ ├── Order.java │ │ │ ├── PaymentMethod.java │ │ │ ├── Taco.java │ │ │ └── User.java │ └── tacocloud-domain-mongodb.iml ├── tacocloud-email │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── email │ │ │ │ ├── ApiProperties.java │ │ │ │ ├── EmailProperties.java │ │ │ │ ├── EmailToOrderTransformer.java │ │ │ │ ├── Ingredient.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderSubmitMessageHandler.java │ │ │ │ ├── Taco.java │ │ │ │ ├── TacoEmailApplication.java │ │ │ │ └── TacoOrderEmailIntegrationConfig.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-email (3) (Spring-In-Action-5.Chapter11-12.mongodb).iml ├── tacocloud-kitchen │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ ├── Ingredient.java │ │ │ │ ├── Order.java │ │ │ │ ├── Taco.java │ │ │ │ └── kitchen │ │ │ │ ├── KitchenUI.java │ │ │ │ ├── OrderReceiver.java │ │ │ │ ├── OrderReceiverController.java │ │ │ │ ├── TacoKitchenApplication.java │ │ │ │ ├── WebConfig.java │ │ │ │ └── messaging │ │ │ │ ├── jms │ │ │ │ ├── JmsOrderReceiver.java │ │ │ │ ├── MessagingConfig.java │ │ │ │ └── listener │ │ │ │ │ └── OrderListener.java │ │ │ │ ├── kafka │ │ │ │ └── listener │ │ │ │ │ └── OrderListener.java │ │ │ │ └── rabbit │ │ │ │ ├── MessagingConfig.java │ │ │ │ ├── RabbitOrderReceiver.java │ │ │ │ └── listener │ │ │ │ └── OrderListener.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── templates │ │ │ ├── noOrder.html │ │ │ └── receiveOrder.html │ └── tacocloud-kitchen (4) (Spring-In-Action-5.Chapter11-12.mongodb).iml ├── tacocloud-messaging-jms │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── JmsOrderMessagingService.java │ │ │ │ ├── MessagingConfig.java │ │ │ │ └── OrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-jms (4) (Spring-In-Action-5.Chapter11-12.mongodb).iml ├── tacocloud-messaging-kafka │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── KafkaOrderMessagingService.java │ │ │ │ └── OrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-kafka (4) (Spring-In-Action-5.Chapter11-12.mongodb).iml ├── tacocloud-messaging-rabbitmq │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── messaging │ │ │ │ ├── MessagingConfig.java │ │ │ │ ├── OrderMessagingService.java │ │ │ │ └── RabbitOrderMessagingService.java │ │ │ └── resources │ │ │ └── application.yml │ └── tacocloud-messaging-rabbitmq (4) (Spring-In-Action-5.Chapter11-12.mongodb).iml ├── tacocloud-restclient │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── tacos │ │ │ │ └── restclient │ │ │ │ ├── RestExamples.java │ │ │ │ └── TacoCloudClient.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── additional-spring-configuration-metadata.json │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── images │ │ │ │ ├── TacoCloud.png │ │ │ │ └── cloud-taco.png │ │ │ ├── mustache │ │ │ │ ├── ingredients.mst │ │ │ │ └── recents.mst │ │ │ ├── scripts │ │ │ │ ├── ingredients.js │ │ │ │ └── recents.js │ │ │ └── styles.css │ │ │ └── templates │ │ │ ├── design.html │ │ │ ├── discountList.html │ │ │ ├── home.html │ │ │ ├── layout.html │ │ │ ├── login.html │ │ │ ├── orderForm.html │ │ │ ├── orderList.html │ │ │ └── registration.html │ └── tacocloud-restclient (5) (Spring-In-Action-5.Chapter11-12.mongodb).iml ├── tacocloud-security │ ├── pom.xml │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── tacos │ │ │ └── security │ │ │ ├── RegistrationController.java │ │ │ ├── RegistrationForm.java │ │ │ ├── SecurityConfig.java │ │ │ └── UserRepositoryUserDetailsService.java │ └── tacocloud-security (6) (Spring-In-Action-5.Chapter11-12.mongodb).iml ├── tacocloud-ui │ ├── .angular-cli.json │ ├── .editorconfig │ ├── .gitignore │ ├── README.md │ ├── e2e │ │ ├── app.e2e-spec.ts │ │ ├── app.po.ts │ │ └── tsconfig.e2e.json │ ├── karma.conf.js │ ├── package.json │ ├── pom.xml │ ├── protractor.conf.js │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ └── ApiService.ts │ │ │ ├── app.component.css │ │ │ ├── app.component.html │ │ │ ├── app.component.spec.ts │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── app.routes.ts │ │ │ ├── auth.config.ts │ │ │ ├── big-button │ │ │ │ ├── bigbutton.component.css │ │ │ │ ├── bigbutton.component.html │ │ │ │ └── bigbutton.component.ts │ │ │ ├── cart │ │ │ │ ├── cart-item.ts │ │ │ │ ├── cart-service.ts │ │ │ │ ├── cart.component.css │ │ │ │ ├── cart.component.html │ │ │ │ └── cart.component.ts │ │ │ ├── cloud-title │ │ │ │ ├── cloudtitle.component.css │ │ │ │ ├── cloudtitle.component.html │ │ │ │ └── cloudtitle.component.ts │ │ │ ├── design │ │ │ │ ├── design.component.css │ │ │ │ ├── design.component.html │ │ │ │ └── design.component.ts │ │ │ ├── footer │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── footer.component.css │ │ │ │ ├── footer.component.html │ │ │ │ └── footer.component.ts │ │ │ ├── group-box │ │ │ │ ├── groupbox.component.css │ │ │ │ ├── groupbox.component.html │ │ │ │ └── groupbox.component.ts │ │ │ ├── header │ │ │ │ ├── cloud-taco.png │ │ │ │ ├── header.component.css │ │ │ │ ├── header.component.html │ │ │ │ └── header.component.ts │ │ │ ├── home │ │ │ │ ├── home.component.css │ │ │ │ ├── home.component.html │ │ │ │ └── home.component.ts │ │ │ ├── little-button │ │ │ │ ├── littlebutton.component.css │ │ │ │ ├── littlebutton.component.html │ │ │ │ └── littlebutton.component.ts │ │ │ ├── locations │ │ │ │ ├── locations.component.css │ │ │ │ ├── locations.component.html │ │ │ │ └── locations.component.ts │ │ │ ├── login │ │ │ │ ├── login.component.css │ │ │ │ ├── login.component.html │ │ │ │ └── login.component.ts │ │ │ ├── recents │ │ │ │ ├── NonWrapsPipe.ts │ │ │ │ ├── RecentTacosService.ts │ │ │ │ ├── WrapsPipe.ts │ │ │ │ ├── recents.component.css │ │ │ │ ├── recents.component.html │ │ │ │ └── recents.component.ts │ │ │ └── specials │ │ │ │ ├── specials.component.css │ │ │ │ ├── specials.component.html │ │ │ │ └── specials.component.ts │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ ├── CloudBackground.png │ │ │ ├── Cloud_sm.png │ │ │ ├── TacoCloud.png │ │ │ ├── TacoPhoto.jpg │ │ │ ├── cart.png │ │ │ ├── down-triangle.png │ │ │ └── taco-icon.png │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── routes │ │ ├── styles.css │ │ ├── test.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── typings.d.ts │ ├── tacocloud-ui (6) (Spring-In-Action-5.Chapter11-12.mongodb).iml │ ├── tsconfig.json │ └── tslint.json ├── tacocloud-web │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ ├── DiscountCodeProps.java │ │ │ │ │ └── web │ │ │ │ │ ├── DiscountController.java │ │ │ │ │ ├── OrderController.java │ │ │ │ │ ├── OrderProps.java │ │ │ │ │ └── WebConfig.java │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── additional-spring-configuration-metadata.json │ │ │ │ ├── static │ │ │ │ ├── images │ │ │ │ │ ├── TacoCloud.png │ │ │ │ │ └── cloud-taco.png │ │ │ │ ├── mustache │ │ │ │ │ ├── ingredients.mst │ │ │ │ │ └── recents.mst │ │ │ │ ├── scripts │ │ │ │ │ ├── ingredients.js │ │ │ │ │ └── recents.js │ │ │ │ └── styles.css │ │ │ │ └── templates │ │ │ │ ├── design.html │ │ │ │ ├── discountList.html │ │ │ │ ├── home.html │ │ │ │ ├── layout.html │ │ │ │ ├── login.html │ │ │ │ ├── orderForm.html │ │ │ │ ├── orderList.html │ │ │ │ └── registration.html │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ │ ├── DesignTacoControllerBrowserTest.java │ │ │ └── HomeControllerTest.java │ └── tacocloud-web (6) (Spring-In-Action-5.Chapter11-12.mongodb).iml └── tacos │ ├── pom.xml │ ├── src │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ └── TacoCloudApplication.java │ │ └── resources │ │ │ └── application.yml │ └── test │ │ └── java │ │ └── tacos │ │ ├── DesignAndOrderTacosBrowserTest.java │ │ ├── DesignTacoControllerBrowserTest.java │ │ ├── DesignTacoControllerWebTest.java │ │ ├── HomeControllerTest.java │ │ └── TacoCloudApplicationTests.java │ └── tacos (4) (Spring-In-Action-5.Chapter11-12.mongodb).iml ├── chapter13 ├── chapter13.iml ├── ingredient-client │ ├── ingredient-client (1) (Spring-In-Action-5.Chapter13).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredientclient │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientClientApplication.java │ │ │ │ ├── feign │ │ │ │ ├── FeignClientConfig.java │ │ │ │ ├── IngredientClient.java │ │ │ │ └── IngredientController.java │ │ │ │ ├── resttemplate │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ ├── NotFeignAndNotWebClientCondition.java │ │ │ │ └── RestTemplateConfig.java │ │ │ │ └── webclient │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ └── WebClientConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── favicon.ico │ │ │ ├── images │ │ │ │ ├── Cloud_sm.png │ │ │ │ └── TacoCloud.png │ │ │ └── style.css │ │ │ └── templates │ │ │ ├── ingredientDetail.html │ │ │ └── ingredientList.html │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredientclient │ │ └── IngredientClientApplicationTests.java ├── ingredient-service │ ├── ingredient-service (1) (Spring-In-Action-5.Chapter13).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredients │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientRepository.java │ │ │ │ └── IngredientServiceApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredients │ │ └── IngredientServiceApplicationTests.java ├── pom.xml └── service-registry │ ├── pom.xml │ └── service-registry (1) (Spring-In-Action-5.Chapter13).iml ├── chapter14-greettings ├── chapter14-greettings.iml ├── config-server │ ├── config-server (1) (Spring-In-Action-5.Chapter14.grettings).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── sia5 │ │ │ │ └── configserver │ │ │ │ └── ConfigServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── sia5 │ │ └── configserver │ │ └── ConfigServerApplicationTests.java ├── greetings │ ├── greetings.iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── sia │ │ │ │ └── greetings │ │ │ │ ├── GreetingController.java │ │ │ │ ├── GreetingProps.java │ │ │ │ └── GreetingsApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── sia │ │ └── greetings │ │ └── GreetingsApplicationTests.java └── pom.xml ├── chapter14 ├── chapter14.iml ├── config-server │ ├── config-server (2) (Spring-In-Action-5.Chapter14).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── configserver │ │ │ │ └── ConfigServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── configserver │ │ └── ConfigServerApplicationTests.java ├── ingredient-client │ ├── ingredient-client (2) (Spring-In-Action-5.Chapter14).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredientclient │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientClientApplication.java │ │ │ │ ├── feign │ │ │ │ ├── FeignClientConfig.java │ │ │ │ ├── IngredientClient.java │ │ │ │ └── IngredientController.java │ │ │ │ ├── resttemplate │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ ├── NotFeignAndNotWebClientCondition.java │ │ │ │ └── RestTemplateConfig.java │ │ │ │ └── webclient │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ └── WebClientConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── favicon.ico │ │ │ ├── images │ │ │ │ ├── Cloud_sm.png │ │ │ │ └── TacoCloud.png │ │ │ └── style.css │ │ │ └── templates │ │ │ ├── ingredientDetail.html │ │ │ └── ingredientList.html │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredientclient │ │ └── IngredientClientApplicationTests.java ├── ingredient-service │ ├── ingredient-service (2) (Spring-In-Action-5.Chapter14).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredients │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientRepository.java │ │ │ │ └── IngredientServiceApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredients │ │ └── IngredientServiceApplicationTests.java ├── pom.xml └── service-registry │ ├── pom.xml │ ├── service-registry (2) (Spring-In-Action-5.Chapter14).iml │ └── src │ ├── main │ ├── java │ │ └── tacos │ │ │ └── serviceregistry │ │ │ └── ServiceRegistryApplication.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── tacos │ └── serviceregistry │ └── ServiceRegistryApplicationTests.java ├── chapter15 ├── chapter15.iml ├── config-server │ ├── config-server (3) (Spring-In-Action-5.Chapter15).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── configserver │ │ │ │ └── ConfigServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── configserver │ │ └── ConfigServerApplicationTests.java ├── hystrix-dashboard │ ├── hystrix-dashboard (1) (Spring-In-Action-5.Chapter15).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── hystrixdashboard │ │ │ │ └── HystrixDashboardApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── hystrixdashboard │ │ └── HystrixDashboardApplicationTests.java ├── ingredient-client │ ├── ingredient-client (3) (Spring-In-Action-5.Chapter15).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredientclient │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientClientApplication.java │ │ │ │ ├── feign │ │ │ │ ├── FeignClientConfig.java │ │ │ │ ├── IngredientClient.java │ │ │ │ └── IngredientController.java │ │ │ │ ├── resttemplate │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ ├── NotFeignAndNotWebClientCondition.java │ │ │ │ └── RestTemplateConfig.java │ │ │ │ └── webclient │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ └── WebClientConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── favicon.ico │ │ │ ├── images │ │ │ │ ├── Cloud_sm.png │ │ │ │ └── TacoCloud.png │ │ │ └── style.css │ │ │ └── templates │ │ │ ├── ingredientDetail.html │ │ │ └── ingredientList.html │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredientclient │ │ └── IngredientClientApplicationTests.java ├── ingredient-service │ ├── ingredient-service (3) (Spring-In-Action-5.Chapter15).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredients │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientRepository.java │ │ │ │ └── IngredientServiceApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredients │ │ └── IngredientServiceApplicationTests.java ├── pom.xml ├── service-registry │ ├── pom.xml │ ├── service-registry (3) (Spring-In-Action-5.Chapter15).iml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── serviceregistry │ │ │ │ └── ServiceRegistryApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── serviceregistry │ │ └── ServiceRegistryApplicationTests.java └── turbine-server │ ├── pom.xml │ ├── src │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── turbine │ │ │ │ └── TurbineServerApplication.java │ │ └── resources │ │ │ └── application.yml │ └── test │ │ └── java │ │ └── tacos │ │ └── turbine │ │ └── TurbineServerApplicationTests.java │ └── turbine-server (1) (Spring-In-Action-5.Chapter15).iml ├── chapter16 ├── chapter16.iml ├── config-server │ ├── config-server (4) (Spring-In-Action-5.Chapter16).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── configserver │ │ │ │ └── ConfigServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── configserver │ │ └── ConfigServerApplicationTests.java ├── hystrix-dashboard │ ├── hystrix-dashboard (2) (Spring-In-Action-5.Chapter16).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── hystrixdashboard │ │ │ │ └── HystrixDashboardApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── hystrixdashboard │ │ └── HystrixDashboardApplicationTests.java ├── ingredient-client │ ├── ingredient-client (4) (Spring-In-Action-5.Chapter16).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredientclient │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientClientApplication.java │ │ │ │ ├── feign │ │ │ │ ├── FeignClientConfig.java │ │ │ │ ├── IngredientClient.java │ │ │ │ └── IngredientController.java │ │ │ │ ├── resttemplate │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ ├── NotFeignAndNotWebClientCondition.java │ │ │ │ └── RestTemplateConfig.java │ │ │ │ └── webclient │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ └── WebClientConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── favicon.ico │ │ │ ├── images │ │ │ │ ├── Cloud_sm.png │ │ │ │ └── TacoCloud.png │ │ │ └── style.css │ │ │ └── templates │ │ │ ├── ingredientDetail.html │ │ │ └── ingredientList.html │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredientclient │ │ └── IngredientClientApplicationTests.java ├── ingredient-service │ ├── ingredient-service (4) (Spring-In-Action-5.Chapter16).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredients │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientRepository.java │ │ │ │ ├── IngredientServiceApplication.java │ │ │ │ ├── NotesEndpoint.java │ │ │ │ └── WackoHealthIndicator.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredients │ │ └── IngredientServiceApplicationTests.java ├── pom.xml ├── service-registry │ ├── pom.xml │ ├── service-registry (4) (Spring-In-Action-5.Chapter16).iml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── serviceregistry │ │ │ │ └── ServiceRegistryApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── serviceregistry │ │ └── ServiceRegistryApplicationTests.java ├── taco-service │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ └── tacos │ │ │ │ │ ├── ActuatorSecurityConfig.java │ │ │ │ │ ├── Ingredient.java │ │ │ │ │ ├── Taco.java │ │ │ │ │ ├── TacoCountInfoContributor.java │ │ │ │ │ ├── TacoMetrics.java │ │ │ │ │ ├── TacoRepository.java │ │ │ │ │ └── TacoServiceApplication.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ └── tacos │ │ │ └── TacoServiceApplicationTests.java │ └── taco-service (1) (Spring-In-Action-5.Chapter16).iml └── turbine-server │ ├── pom.xml │ ├── src │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── turbine │ │ │ │ └── TurbineServerApplication.java │ │ └── resources │ │ │ └── application.yml │ └── test │ │ └── java │ │ └── tacos │ │ └── turbine │ │ └── TurbineServerApplicationTests.java │ └── turbine-server (2) (Spring-In-Action-5.Chapter16).iml ├── chapter17 ├── boot-admin-server │ ├── boot-admin-server (1) (Spring-In-Action-5.Chapter17).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── bootadmin │ │ │ │ └── BootAdminServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── bootadmin │ │ └── BootAdminServerApplicationTests.java ├── chapter17.iml ├── config-server │ ├── config-server (5) (Spring-In-Action-5.Chapter17).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── configserver │ │ │ │ └── ConfigServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── configserver │ │ └── ConfigServerApplicationTests.java ├── hystrix-dashboard │ ├── hystrix-dashboard (3) (Spring-In-Action-5.Chapter17).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── hystrixdashboard │ │ │ │ └── HystrixDashboardApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── hystrixdashboard │ │ └── HystrixDashboardApplicationTests.java ├── ingredient-client │ ├── ingredient-client (5) (Spring-In-Action-5.Chapter17).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredientclient │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientClientApplication.java │ │ │ │ ├── feign │ │ │ │ ├── FeignClientConfig.java │ │ │ │ ├── IngredientClient.java │ │ │ │ └── IngredientController.java │ │ │ │ ├── resttemplate │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ ├── NotFeignAndNotWebClientCondition.java │ │ │ │ └── RestTemplateConfig.java │ │ │ │ └── webclient │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ └── WebClientConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── favicon.ico │ │ │ ├── images │ │ │ │ ├── Cloud_sm.png │ │ │ │ └── TacoCloud.png │ │ │ └── style.css │ │ │ └── templates │ │ │ ├── ingredientDetail.html │ │ │ └── ingredientList.html │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredientclient │ │ └── IngredientClientApplicationTests.java ├── ingredient-service │ ├── ingredient-service (5) (Spring-In-Action-5.Chapter17).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredients │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientRepository.java │ │ │ │ ├── IngredientServiceApplication.java │ │ │ │ ├── NotesEndpoint.java │ │ │ │ └── WackoHealthIndicator.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredients │ │ └── IngredientServiceApplicationTests.java ├── pom.xml ├── service-registry │ ├── pom.xml │ ├── service-registry (5) (Spring-In-Action-5.Chapter17).iml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── serviceregistry │ │ │ │ └── ServiceRegistryApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── serviceregistry │ │ └── ServiceRegistryApplicationTests.java ├── taco-service │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ └── tacos │ │ │ │ │ ├── ActuatorSecurityConfig.java │ │ │ │ │ ├── Ingredient.java │ │ │ │ │ ├── Taco.java │ │ │ │ │ ├── TacoCountInfoContributor.java │ │ │ │ │ ├── TacoMetrics.java │ │ │ │ │ ├── TacoRepository.java │ │ │ │ │ └── TacoServiceApplication.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ └── tacos │ │ │ └── TacoServiceApplicationTests.java │ └── taco-service (2) (Spring-In-Action-5.Chapter17).iml └── turbine-server │ ├── pom.xml │ ├── src │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── turbine │ │ │ │ └── TurbineServerApplication.java │ │ └── resources │ │ │ └── application.yml │ └── test │ │ └── java │ │ └── tacos │ │ └── turbine │ │ └── TurbineServerApplicationTests.java │ └── turbine-server (3) (Spring-In-Action-5.Chapter17).iml ├── chapter18 ├── boot-admin-server │ ├── boot-admin-server (2) (Spring-In-Action-5.Chapter18).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── bootadmin │ │ │ │ └── BootAdminServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── bootadmin │ │ └── BootAdminServerApplicationTests.java ├── chapter18.iml ├── config-server │ ├── config-server (6) (Spring-In-Action-5.Chapter18).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── configserver │ │ │ │ └── ConfigServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── configserver │ │ └── ConfigServerApplicationTests.java ├── hystrix-dashboard │ ├── hystrix-dashboard (4) (Spring-In-Action-5.Chapter18).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── hystrixdashboard │ │ │ │ └── HystrixDashboardApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── hystrixdashboard │ │ └── HystrixDashboardApplicationTests.java ├── ingredient-client │ ├── ingredient-client (6) (Spring-In-Action-5.Chapter18).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredientclient │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientClientApplication.java │ │ │ │ ├── feign │ │ │ │ ├── FeignClientConfig.java │ │ │ │ ├── IngredientClient.java │ │ │ │ └── IngredientController.java │ │ │ │ ├── resttemplate │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ ├── NotFeignAndNotWebClientCondition.java │ │ │ │ └── RestTemplateConfig.java │ │ │ │ └── webclient │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ └── WebClientConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── favicon.ico │ │ │ ├── images │ │ │ │ ├── Cloud_sm.png │ │ │ │ └── TacoCloud.png │ │ │ └── style.css │ │ │ └── templates │ │ │ ├── ingredientDetail.html │ │ │ └── ingredientList.html │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredientclient │ │ └── IngredientClientApplicationTests.java ├── ingredient-service │ ├── ingredient-service (6) (Spring-In-Action-5.Chapter18).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredients │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientRepository.java │ │ │ │ ├── IngredientServiceApplication.java │ │ │ │ ├── NotesEndpoint.java │ │ │ │ └── WackoHealthIndicator.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredients │ │ └── IngredientServiceApplicationTests.java ├── pom.xml ├── service-registry │ ├── pom.xml │ ├── service-registry (6) (Spring-In-Action-5.Chapter18).iml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── serviceregistry │ │ │ │ └── ServiceRegistryApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── serviceregistry │ │ └── ServiceRegistryApplicationTests.java ├── taco-service │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ └── tacos │ │ │ │ │ ├── ActuatorSecurityConfig.java │ │ │ │ │ ├── Ingredient.java │ │ │ │ │ ├── Taco.java │ │ │ │ │ ├── TacoCountInfoContributor.java │ │ │ │ │ ├── TacoCounter.java │ │ │ │ │ ├── TacoMetrics.java │ │ │ │ │ ├── TacoRepository.java │ │ │ │ │ └── TacoServiceApplication.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ └── tacos │ │ │ └── TacoServiceApplicationTests.java │ └── taco-service (3) (Spring-In-Action-5.Chapter18).iml └── turbine-server │ ├── pom.xml │ ├── src │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── turbine │ │ │ │ └── TurbineServerApplication.java │ │ └── resources │ │ │ └── application.yml │ └── test │ │ └── java │ │ └── tacos │ │ └── turbine │ │ └── TurbineServerApplicationTests.java │ └── turbine-server (4) (Spring-In-Action-5.Chapter18).iml ├── chapter19 ├── boot-admin-server │ ├── boot-admin-server (3) (Spring-In-Action-5.Chapter19).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── bootadmin │ │ │ │ └── BootAdminServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── bootadmin │ │ └── BootAdminServerApplicationTests.java ├── chapter19.iml ├── config-server │ ├── config-server (7) (Spring-In-Action-5.Chapter19).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── configserver │ │ │ │ └── ConfigServerApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── configserver │ │ └── ConfigServerApplicationTests.java ├── hystrix-dashboard │ ├── hystrix-dashboard (5) (Spring-In-Action-5.Chapter19).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── hystrixdashboard │ │ │ │ └── HystrixDashboardApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── hystrixdashboard │ │ └── HystrixDashboardApplicationTests.java ├── ingredient-client │ ├── ingredient-client (7) (Spring-In-Action-5.Chapter19).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredientclient │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientClientApplication.java │ │ │ │ ├── feign │ │ │ │ ├── FeignClientConfig.java │ │ │ │ ├── IngredientClient.java │ │ │ │ └── IngredientController.java │ │ │ │ ├── resttemplate │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ ├── NotFeignAndNotWebClientCondition.java │ │ │ │ └── RestTemplateConfig.java │ │ │ │ └── webclient │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientServiceClient.java │ │ │ │ └── WebClientConfig.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── static │ │ │ ├── favicon.ico │ │ │ ├── images │ │ │ │ ├── Cloud_sm.png │ │ │ │ └── TacoCloud.png │ │ │ └── style.css │ │ │ └── templates │ │ │ ├── ingredientDetail.html │ │ │ └── ingredientList.html │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredientclient │ │ └── IngredientClientApplicationTests.java ├── ingredient-service │ ├── Dockerfile │ ├── ingredient-service (7) (Spring-In-Action-5.Chapter19).iml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── ingredients │ │ │ │ ├── DevelopmentConfig.java │ │ │ │ ├── Ingredient.java │ │ │ │ ├── IngredientController.java │ │ │ │ ├── IngredientRepository.java │ │ │ │ ├── IngredientServiceApplication.java │ │ │ │ ├── IngredientServiceServletInitializer.java │ │ │ │ ├── NotesEndpoint.java │ │ │ │ └── WackoHealthIndicator.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── ingredients │ │ └── IngredientServiceApplicationTests.java ├── pom.xml ├── service-registry │ ├── pom.xml │ ├── service-registry (7) (Spring-In-Action-5.Chapter19).iml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── serviceregistry │ │ │ │ └── ServiceRegistryApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── tacos │ │ └── serviceregistry │ │ └── ServiceRegistryApplicationTests.java ├── taco-service │ ├── Dockerfile │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── tacos │ │ │ │ │ └── tacos │ │ │ │ │ ├── ActuatorSecurityConfig.java │ │ │ │ │ ├── Ingredient.java │ │ │ │ │ ├── Taco.java │ │ │ │ │ ├── TacoCountInfoContributor.java │ │ │ │ │ ├── TacoCounter.java │ │ │ │ │ ├── TacoMetrics.java │ │ │ │ │ ├── TacoRepository.java │ │ │ │ │ └── TacoServiceApplication.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ └── test │ │ │ └── java │ │ │ └── tacos │ │ │ └── tacos │ │ │ └── TacoServiceApplicationTests.java │ └── taco-service (4) (Spring-In-Action-5.Chapter19).iml └── turbine-server │ ├── pom.xml │ ├── src │ ├── main │ │ ├── java │ │ │ └── tacos │ │ │ │ └── turbine │ │ │ │ └── TurbineServerApplication.java │ │ └── resources │ │ │ └── application.yml │ └── test │ │ └── java │ │ └── tacos │ │ └── turbine │ │ └── TurbineServerApplicationTests.java │ └── turbine-server (5) (Spring-In-Action-5.Chapter19).iml └── pom.xml /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | 3 | sudo: false 4 | 5 | jdk: 6 | - oraclejdk8 7 | 8 | before_cache: 9 | - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock 10 | - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ 11 | 12 | cache: 13 | directories: 14 | - $HOME/.gradle/caches/ 15 | - $HOME/.gradle/wrapper/ 16 | 17 | script: 18 | # need to override as the default is to test 19 | - mvn compile -B -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Spring-In-Action-5 2 | Home for example code from Spring in Action 5. 3 | -------------------------------------------------------------------------------- /chapter01/src/main/java/tacos/HomeController.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import org.springframework.stereotype.Controller; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | 6 | @Controller // <1> 7 | public class HomeController { 8 | 9 | @GetMapping("/") // <2> 10 | public String home() { 11 | return "home"; // <3> 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter01/src/main/java/tacos/TacoCloudApplication.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication // <1> 7 | public class TacoCloudApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(TacoCloudApplication.class, args); // <2> 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter01/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter01/src/main/resources/application.properties -------------------------------------------------------------------------------- /chapter01/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter01/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter01/src/main/resources/templates/home.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | Taco Cloud 6 | 7 | 8 | 9 |

Welcome to...

10 | 11 | 12 | -------------------------------------------------------------------------------- /chapter02/src/main/java/tacos/Ingredient.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import lombok.Data; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | @Data 7 | @RequiredArgsConstructor 8 | public class Ingredient { 9 | 10 | private final String id; 11 | private final String name; 12 | private final Type type; 13 | 14 | public static enum Type { 15 | WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /chapter02/src/main/java/tacos/TacoCloudApplication.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication // <1> 7 | public class TacoCloudApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(TacoCloudApplication.class, args); // <2> 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter02/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter02/src/main/resources/application.yml -------------------------------------------------------------------------------- /chapter02/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter02/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter02/src/main/resources/templates/home.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | Taco Cloud 6 | 7 | 8 | 9 |

Welcome to...

10 | 11 | 12 | Design a taco 13 | 14 | -------------------------------------------------------------------------------- /chapter03-jdbc/src/main/java/tacos/Ingredient.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import lombok.Data; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | @Data 7 | @RequiredArgsConstructor 8 | public class Ingredient { 9 | 10 | private final String id; 11 | private final String name; 12 | private final Type type; 13 | 14 | public static enum Type { 15 | WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /chapter03-jdbc/src/main/java/tacos/TacoCloudApplication.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class TacoCloudApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(TacoCloudApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter03-jdbc/src/main/java/tacos/data/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import tacos.Ingredient; 4 | 5 | public interface IngredientRepository { 6 | 7 | Iterable findAll(); 8 | 9 | Ingredient findById(String id); 10 | 11 | Ingredient save(Ingredient ingredient); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter03-jdbc/src/main/java/tacos/data/OrderRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderRepository { 6 | 7 | Order save(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter03-jdbc/src/main/java/tacos/data/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import tacos.Taco; 4 | 5 | public interface TacoRepository { 6 | 7 | Taco save(Taco design); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter03-jdbc/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter03-jdbc/src/main/resources/application.yml -------------------------------------------------------------------------------- /chapter03-jdbc/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter03-jdbc/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter03-jdbc/src/main/resources/templates/home.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | Taco Cloud 6 | 7 | 8 | 9 |

Welcome to...

10 | 11 | 12 | Design a taco 13 | 14 | -------------------------------------------------------------------------------- /chapter03-jpa/src/main/java/tacos/data/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | 5 | import tacos.Ingredient; 6 | 7 | public interface IngredientRepository 8 | extends CrudRepository { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter03-jpa/src/main/java/tacos/data/OrderRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | 5 | import tacos.Order; 6 | 7 | public interface OrderRepository 8 | extends CrudRepository { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter03-jpa/src/main/java/tacos/data/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | 5 | import tacos.Taco; 6 | 7 | public interface TacoRepository 8 | extends CrudRepository { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter03-jpa/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true -------------------------------------------------------------------------------- /chapter03-jpa/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter03-jpa/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter03-jpa/src/main/resources/templates/home.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | Taco Cloud 6 | 7 | 8 | 9 |

Welcome to...

10 | 11 | 12 | Design a taco 13 | 14 | -------------------------------------------------------------------------------- /chapter03-jpa/src/test/java/tacos/TacoCloudApplicationTests.java: -------------------------------------------------------------------------------- 1 | package tacos; 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 TacoCloudApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /chapter04/src/main/java/tacos/data/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | 5 | import tacos.Ingredient; 6 | 7 | public interface IngredientRepository 8 | extends CrudRepository { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter04/src/main/java/tacos/data/OrderRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | 5 | import tacos.Order; 6 | 7 | public interface OrderRepository 8 | extends CrudRepository { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter04/src/main/java/tacos/data/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | 5 | import tacos.Taco; 6 | 7 | public interface TacoRepository 8 | extends CrudRepository { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter04/src/main/java/tacos/data/UserRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | import org.springframework.data.repository.CrudRepository; 3 | import tacos.User; 4 | 5 | public interface UserRepository extends CrudRepository { 6 | 7 | User findByUsername(String username); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter04/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter04/src/main/resources/application.properties -------------------------------------------------------------------------------- /chapter04/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter04/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter04/src/test/java/tacos/TacoCloudApplicationTests.java: -------------------------------------------------------------------------------- 1 | package tacos; 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 TacoCloudApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /chapter04/src/test/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter04/src/test/resources/application.properties -------------------------------------------------------------------------------- /chapter05/src/main/java/tacos/TacoCloudApplication.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class TacoCloudApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(TacoCloudApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter05/src/main/java/tacos/data/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | 5 | import tacos.Ingredient; 6 | 7 | public interface IngredientRepository 8 | extends CrudRepository { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter05/src/main/java/tacos/data/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | 5 | import tacos.Taco; 6 | 7 | public interface TacoRepository 8 | extends CrudRepository { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter05/src/main/java/tacos/data/UserRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | import org.springframework.data.repository.CrudRepository; 3 | import tacos.User; 4 | 5 | public interface UserRepository extends CrudRepository { 6 | 7 | User findByUsername(String username); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter05/src/main/resources/META-INF/additional-spring-configuration-metadata.json: -------------------------------------------------------------------------------- 1 | {"properties": [ 2 | { 3 | "name": "taco.orders.page-size", 4 | "type": "java.lang.String", 5 | "description": "Sets the maximum number of orders to display in a list." 6 | }, 7 | { 8 | "name": "taco.discount.codes", 9 | "type": "java.util.Map", 10 | "description": "A map of discount codes to a discount percentage." 11 | } 12 | ]} -------------------------------------------------------------------------------- /chapter05/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter05/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter05/src/test/java/tacos/TacoCloudApplicationTests.java: -------------------------------------------------------------------------------- 1 | package tacos; 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 TacoCloudApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /chapter06/tacocloud-api/src/main/java/tacos/web/api/TacoResources.java: -------------------------------------------------------------------------------- 1 | package tacos.web.api; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.hateoas.Resources; 6 | 7 | public class TacoResources extends Resources { 8 | public TacoResources(List tacoResources) { 9 | super(tacoResources); 10 | } 11 | } -------------------------------------------------------------------------------- /chapter06/tacocloud-data/src/main/java/tacos/data/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | import tacos.Ingredient; 7 | 8 | @CrossOrigin(origins="*") 9 | public interface IngredientRepository 10 | extends CrudRepository { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /chapter06/tacocloud-data/src/main/java/tacos/data/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.PagingAndSortingRepository; 4 | 5 | import tacos.Taco; 6 | 7 | 8 | public interface TacoRepository 9 | extends PagingAndSortingRepository { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /chapter06/tacocloud-data/src/main/java/tacos/data/UserRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | import org.springframework.data.repository.CrudRepository; 3 | import tacos.User; 4 | 5 | public interface UserRepository extends CrudRepository { 6 | 7 | User findByUsername(String username); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/e2e/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | 3 | describe('taco-web-ui App', () => { 4 | let page: AppPage; 5 | 6 | beforeEach(() => { 7 | page = new AppPage(); 8 | }); 9 | 10 | it('should display welcome message', () => { 11 | page.navigateTo(); 12 | expect(page.getParagraphText()).toEqual('Welcome to app!'); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/e2e/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get('/'); 6 | } 7 | 8 | getParagraphText() { 9 | return element(by.css('app-root h1')).getText(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "jasminewd2", 11 | "node" 12 | ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/api/ApiService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { Http } from '@angular/http'; 3 | 4 | @Injectable() 5 | export class ApiService { 6 | 7 | constructor(private http: Http) { 8 | } 9 | 10 | get(path: String) { 11 | return this.http.get('http://localhost:8080' + path); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | div.content { 2 | margin: auto; 3 | margin-top: 30px; 4 | margin-bottom: 30px; 5 | width: 80%; 6 | min-height: 500px; 7 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; 8 | /* font-family: Arial, Helvetica, sans-serif; */ 9 | background-image: url('../assets/CloudBackground.png'); 10 | font-size: 16pt; 11 | color: #003366; 12 | } 13 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 |
7 | 8 | 9 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'Taco Cloud'; 10 | } 11 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/big-button/bigbutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 16pt; 6 | padding: 8px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/big-button/bigbutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/big-button/bigbutton.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'big-button', 5 | templateUrl: 'bigbutton.component.html', 6 | styleUrls: ['./bigbutton.component.css'] 7 | }) 8 | 9 | export class BigButtonComponent implements OnInit { 10 | 11 | @Input() label: String; 12 | 13 | constructor() { } 14 | 15 | ngOnInit() { } 16 | } 17 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/cart/cart-item.ts: -------------------------------------------------------------------------------- 1 | export class CartItem { 2 | 3 | quantity = 1; 4 | 5 | taco: any; 6 | 7 | constructor(taco: any) { 8 | this.taco = taco; 9 | } 10 | 11 | get lineTotal() { 12 | return this.quantity * 4.99; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/cloud-title/cloudtitle.component.css: -------------------------------------------------------------------------------- 1 | div.cloudtitle { 2 | height:95px; 3 | width: 100%; 4 | text-align: right; 5 | background-image: url("../../assets/Cloud_sm.png"); 6 | background-repeat: no-repeat; 7 | background-position: right; 8 | margin-bottom: 20px; 9 | } 10 | 11 | div.cloudtitletext { 12 | padding-top: 20px; 13 | width: 100%; 14 | text-align: right; 15 | color: #003366; 16 | } 17 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/cloud-title/cloudtitle.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

4 |
5 |
6 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/cloud-title/cloudtitle.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'cloud-title', 5 | templateUrl: 'cloudtitle.component.html', 6 | styleUrls: ['cloudtitle.component.css'] 7 | }) 8 | 9 | export class CloudTitleComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/design/design.component.css: -------------------------------------------------------------------------------- 1 | div.ingredientsblock { 2 | width: 1000px; 3 | } 4 | 5 | input.nameField { 6 | font-size: 16pt; 7 | background: none; 8 | border: none; 9 | border-bottom: 1px solid #003366; 10 | } 11 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/footer/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/app/footer/cloud-taco.png -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/footer/footer.component.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/footer/footer.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-footer', 5 | templateUrl: 'footer.component.html', 6 | styleUrls: ['./footer.component.css'] 7 | }) 8 | 9 | export class FooterComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/group-box/groupbox.component.html: -------------------------------------------------------------------------------- 1 |
2 |
{{title}}
3 |
4 | 5 |
6 |
7 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/group-box/groupbox.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'group-box', 5 | templateUrl: 'groupbox.component.html', 6 | styleUrls: ['./groupbox.component.css'] 7 | }) 8 | 9 | export class GroupBoxComponent implements OnInit { 10 | @Input() title: String; 11 | 12 | constructor() { } 13 | 14 | ngOnInit() { } 15 | } 16 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/header/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/app/header/cloud-taco.png -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/home/home.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/app/home/home.component.css -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-home', 5 | templateUrl: 'home.component.html', 6 | styleUrls: ['./home.component.css'] 7 | }) 8 | 9 | export class HomeComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/little-button/littlebutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 10pt; 6 | padding: 4px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/little-button/littlebutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/little-button/littlebutton.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'little-button', 5 | templateUrl: 'littlebutton.component.html', 6 | styleUrls: ['./littlebutton.component.css'] 7 | }) 8 | 9 | export class LittleButtonComponent implements OnInit { 10 | 11 | @Input() label: String; 12 | 13 | constructor() { } 14 | 15 | ngOnInit() { } 16 | } 17 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/locations/locations.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/app/locations/locations.component.css -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/locations/locations.component.html: -------------------------------------------------------------------------------- 1 | Come visit one of our taco showrooms 2 | 3 |

Although our tacos are conveniently available online, we love to have 4 | our taco artists make in-person appearances at one of our taco showrooms. 5 | Choose the location nearest you. We'll resist the urge to ask you for an 6 | autograph.

7 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/locations/locations.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'locations-tacocloud', 5 | templateUrl: 'locations.component.html' 6 | }) 7 | 8 | export class LocationsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/login/login.component.css: -------------------------------------------------------------------------------- 1 | input.formField { 2 | font-size: 16pt; 3 | background: none; 4 | border: none; 5 | border-bottom: 1px solid #003366; 6 | } 7 | 8 | group-box { 9 | width:1000px; 10 | } 11 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/login/login.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'login-tacocloud', 5 | templateUrl: 'login.component.html', 6 | styleUrls: ['./login.component.css'] 7 | }) 8 | 9 | export class LoginComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/recents/RecentTacosService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { ApiService } from '../api/ApiService'; 3 | 4 | @Injectable() 5 | export class RecentTacosService { 6 | 7 | constructor(private apiService: ApiService) { 8 | } 9 | 10 | getRecentTacos() { 11 | return this.apiService.get('/design/recent'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/specials/specials.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/app/specials/specials.component.css -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/specials/specials.component.html: -------------------------------------------------------------------------------- 1 | Check out some of our specials! 2 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/app/specials/specials.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-specials', 5 | templateUrl: 'specials.component.html' 6 | }) 7 | 8 | export class SpecialsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/assets/.gitkeep -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/assets/CloudBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/assets/CloudBackground.png -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/assets/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/assets/Cloud_sm.png -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/assets/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/assets/TacoCloud.png -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/assets/TacoPhoto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/assets/TacoPhoto.jpg -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/assets/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/assets/cart.png -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/assets/down-triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/assets/down-triangle.png -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/assets/taco-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/assets/taco-icon.png -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // The file contents for the current environment will overwrite these during build. 2 | // The build system defaults to the dev environment which uses `environment.ts`, but if you do 3 | // `ng build --env=prod` then `environment.prod.ts` will be used instead. 4 | // The list of which env maps to which file can be found in `.angular-cli.json`. 5 | 6 | export const environment = { 7 | production: false 8 | }; 9 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/favicon.ico -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Taco Cloud 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.log(err)); 13 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/routes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-ui/src/routes -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "baseUrl": "./", 6 | "module": "es2015", 7 | "types": [] 8 | }, 9 | "exclude": [ 10 | "test.ts", 11 | "**/*.spec.ts" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "node" 11 | ] 12 | }, 13 | "files": [ 14 | "test.ts" 15 | ], 16 | "include": [ 17 | "**/*.spec.ts", 18 | "**/*.d.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /* SystemJS module definition */ 2 | declare var module: NodeModule; 3 | interface NodeModule { 4 | id: string; 5 | } 6 | -------------------------------------------------------------------------------- /chapter06/tacocloud-ui/tacocloud-ui.iml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter06/tacocloud-web/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-web/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter06/tacocloud-web/src/main/resources/static/images/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter06/tacocloud-web/src/main/resources/static/images/cloud-taco.png -------------------------------------------------------------------------------- /chapter06/tacocloud-web/src/main/resources/static/mustache/ingredients.mst: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
3 | 4 | {{name}}
5 |
6 | {{/.}} 7 | -------------------------------------------------------------------------------- /chapter06/tacocloud-web/src/main/resources/static/mustache/recents.mst: -------------------------------------------------------------------------------- 1 |

A few of the most recently created taco masterpieces...

2 |
3 | {{#.}} 4 |
{{name}}
5 |
6 | {{#ingredients}} 7 | {{name}}, 8 | {{/ingredients}} 9 |
10 | {{/.}} 11 |
-------------------------------------------------------------------------------- /chapter07/tacocloud-api/src/main/java/tacos/web/api/TacoResources.java: -------------------------------------------------------------------------------- 1 | package tacos.web.api; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.hateoas.Resources; 6 | 7 | public class TacoResources extends Resources { 8 | public TacoResources(List tacoResources) { 9 | super(tacoResources); 10 | } 11 | } -------------------------------------------------------------------------------- /chapter07/tacocloud-data/src/main/java/tacos/data/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | import tacos.Ingredient; 7 | 8 | @CrossOrigin(origins="*") 9 | public interface IngredientRepository 10 | extends CrudRepository { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /chapter07/tacocloud-data/src/main/java/tacos/data/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.PagingAndSortingRepository; 4 | 5 | import tacos.Taco; 6 | 7 | 8 | public interface TacoRepository 9 | extends PagingAndSortingRepository { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /chapter07/tacocloud-data/src/main/java/tacos/data/UserRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | import org.springframework.data.repository.CrudRepository; 3 | import tacos.User; 4 | 5 | public interface UserRepository extends CrudRepository { 6 | 7 | User findByUsername(String username); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter07/tacocloud-restclient/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | main: 3 | web-application-type: none -------------------------------------------------------------------------------- /chapter07/tacocloud-restclient/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-restclient/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter07/tacocloud-restclient/src/main/resources/static/images/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-restclient/src/main/resources/static/images/cloud-taco.png -------------------------------------------------------------------------------- /chapter07/tacocloud-restclient/src/main/resources/static/mustache/ingredients.mst: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
3 | 4 | {{name}}
5 |
6 | {{/.}} 7 | -------------------------------------------------------------------------------- /chapter07/tacocloud-restclient/src/main/resources/static/mustache/recents.mst: -------------------------------------------------------------------------------- 1 |

A few of the most recently created taco masterpieces...

2 |
3 | {{#.}} 4 |
{{name}}
5 |
6 | {{#ingredients}} 7 | {{name}}, 8 | {{/ingredients}} 9 |
10 | {{/.}} 11 |
-------------------------------------------------------------------------------- /chapter07/tacocloud-ui/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/e2e/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | 3 | describe('taco-web-ui App', () => { 4 | let page: AppPage; 5 | 6 | beforeEach(() => { 7 | page = new AppPage(); 8 | }); 9 | 10 | it('should display welcome message', () => { 11 | page.navigateTo(); 12 | expect(page.getParagraphText()).toEqual('Welcome to app!'); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/e2e/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get('/'); 6 | } 7 | 8 | getParagraphText() { 9 | return element(by.css('app-root h1')).getText(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "jasminewd2", 11 | "node" 12 | ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/api/ApiService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { Http } from '@angular/http'; 3 | 4 | @Injectable() 5 | export class ApiService { 6 | 7 | constructor(private http: Http) { 8 | } 9 | 10 | get(path: String) { 11 | return this.http.get('http://localhost:8080' + path); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | div.content { 2 | margin: auto; 3 | margin-top: 30px; 4 | margin-bottom: 30px; 5 | width: 80%; 6 | min-height: 500px; 7 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; 8 | /* font-family: Arial, Helvetica, sans-serif; */ 9 | background-image: url('../assets/CloudBackground.png'); 10 | font-size: 16pt; 11 | color: #003366; 12 | } 13 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 |
7 | 8 | 9 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'Taco Cloud'; 10 | } 11 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/big-button/bigbutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 16pt; 6 | padding: 8px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/big-button/bigbutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/big-button/bigbutton.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'big-button', 5 | templateUrl: 'bigbutton.component.html', 6 | styleUrls: ['./bigbutton.component.css'] 7 | }) 8 | 9 | export class BigButtonComponent implements OnInit { 10 | 11 | @Input() label: String; 12 | 13 | constructor() { } 14 | 15 | ngOnInit() { } 16 | } 17 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/cart/cart-item.ts: -------------------------------------------------------------------------------- 1 | export class CartItem { 2 | 3 | quantity = 1; 4 | 5 | taco: any; 6 | 7 | constructor(taco: any) { 8 | this.taco = taco; 9 | } 10 | 11 | get lineTotal() { 12 | return this.quantity * 4.99; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/cloud-title/cloudtitle.component.css: -------------------------------------------------------------------------------- 1 | div.cloudtitle { 2 | height:95px; 3 | width: 100%; 4 | text-align: right; 5 | background-image: url("../../assets/Cloud_sm.png"); 6 | background-repeat: no-repeat; 7 | background-position: right; 8 | margin-bottom: 20px; 9 | } 10 | 11 | div.cloudtitletext { 12 | padding-top: 20px; 13 | width: 100%; 14 | text-align: right; 15 | color: #003366; 16 | } 17 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/cloud-title/cloudtitle.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

4 |
5 |
6 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/cloud-title/cloudtitle.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'cloud-title', 5 | templateUrl: 'cloudtitle.component.html', 6 | styleUrls: ['cloudtitle.component.css'] 7 | }) 8 | 9 | export class CloudTitleComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/design/design.component.css: -------------------------------------------------------------------------------- 1 | div.ingredientsblock { 2 | width: 1000px; 3 | } 4 | 5 | input.nameField { 6 | font-size: 16pt; 7 | background: none; 8 | border: none; 9 | border-bottom: 1px solid #003366; 10 | } 11 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/footer/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/app/footer/cloud-taco.png -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/footer/footer.component.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/footer/footer.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-footer', 5 | templateUrl: 'footer.component.html', 6 | styleUrls: ['./footer.component.css'] 7 | }) 8 | 9 | export class FooterComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/group-box/groupbox.component.html: -------------------------------------------------------------------------------- 1 |
2 |
{{title}}
3 |
4 | 5 |
6 |
7 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/group-box/groupbox.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'group-box', 5 | templateUrl: 'groupbox.component.html', 6 | styleUrls: ['./groupbox.component.css'] 7 | }) 8 | 9 | export class GroupBoxComponent implements OnInit { 10 | @Input() title: String; 11 | 12 | constructor() { } 13 | 14 | ngOnInit() { } 15 | } 16 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/header/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/app/header/cloud-taco.png -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/home/home.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/app/home/home.component.css -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-home', 5 | templateUrl: 'home.component.html', 6 | styleUrls: ['./home.component.css'] 7 | }) 8 | 9 | export class HomeComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/little-button/littlebutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 10pt; 6 | padding: 4px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/little-button/littlebutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/little-button/littlebutton.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'little-button', 5 | templateUrl: 'littlebutton.component.html', 6 | styleUrls: ['./littlebutton.component.css'] 7 | }) 8 | 9 | export class LittleButtonComponent implements OnInit { 10 | 11 | @Input() label: String; 12 | 13 | constructor() { } 14 | 15 | ngOnInit() { } 16 | } 17 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/locations/locations.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/app/locations/locations.component.css -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/locations/locations.component.html: -------------------------------------------------------------------------------- 1 | Come visit one of our taco showrooms 2 | 3 |

Although our tacos are conveniently available online, we love to have 4 | our taco artists make in-person appearances at one of our taco showrooms. 5 | Choose the location nearest you. We'll resist the urge to ask you for an 6 | autograph.

7 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/locations/locations.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'locations-tacocloud', 5 | templateUrl: 'locations.component.html' 6 | }) 7 | 8 | export class LocationsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/login/login.component.css: -------------------------------------------------------------------------------- 1 | input.formField { 2 | font-size: 16pt; 3 | background: none; 4 | border: none; 5 | border-bottom: 1px solid #003366; 6 | } 7 | 8 | group-box { 9 | width:1000px; 10 | } 11 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/login/login.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'login-tacocloud', 5 | templateUrl: 'login.component.html', 6 | styleUrls: ['./login.component.css'] 7 | }) 8 | 9 | export class LoginComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/recents/RecentTacosService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { ApiService } from '../api/ApiService'; 3 | 4 | @Injectable() 5 | export class RecentTacosService { 6 | 7 | constructor(private apiService: ApiService) { 8 | } 9 | 10 | getRecentTacos() { 11 | return this.apiService.get('/design/recent'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/specials/specials.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/app/specials/specials.component.css -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/specials/specials.component.html: -------------------------------------------------------------------------------- 1 | Check out some of our specials! 2 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/app/specials/specials.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-specials', 5 | templateUrl: 'specials.component.html' 6 | }) 7 | 8 | export class SpecialsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/assets/.gitkeep -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/assets/CloudBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/assets/CloudBackground.png -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/assets/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/assets/Cloud_sm.png -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/assets/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/assets/TacoCloud.png -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/assets/TacoPhoto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/assets/TacoPhoto.jpg -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/assets/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/assets/cart.png -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/assets/down-triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/assets/down-triangle.png -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/assets/taco-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/assets/taco-icon.png -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // The file contents for the current environment will overwrite these during build. 2 | // The build system defaults to the dev environment which uses `environment.ts`, but if you do 3 | // `ng build --env=prod` then `environment.prod.ts` will be used instead. 4 | // The list of which env maps to which file can be found in `.angular-cli.json`. 5 | 6 | export const environment = { 7 | production: false 8 | }; 9 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/favicon.ico -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Taco Cloud 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.log(err)); 13 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/routes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-ui/src/routes -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "baseUrl": "./", 6 | "module": "es2015", 7 | "types": [] 8 | }, 9 | "exclude": [ 10 | "test.ts", 11 | "**/*.spec.ts" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "node" 11 | ] 12 | }, 13 | "files": [ 14 | "test.ts" 15 | ], 16 | "include": [ 17 | "**/*.spec.ts", 18 | "**/*.d.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /chapter07/tacocloud-ui/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /* SystemJS module definition */ 2 | declare var module: NodeModule; 3 | interface NodeModule { 4 | id: string; 5 | } 6 | -------------------------------------------------------------------------------- /chapter07/tacocloud-web/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-web/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter07/tacocloud-web/src/main/resources/static/images/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter07/tacocloud-web/src/main/resources/static/images/cloud-taco.png -------------------------------------------------------------------------------- /chapter07/tacocloud-web/src/main/resources/static/mustache/ingredients.mst: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
3 | 4 | {{name}}
5 |
6 | {{/.}} 7 | -------------------------------------------------------------------------------- /chapter07/tacocloud-web/src/main/resources/static/mustache/recents.mst: -------------------------------------------------------------------------------- 1 |

A few of the most recently created taco masterpieces...

2 |
3 | {{#.}} 4 |
{{name}}
5 |
6 | {{#ingredients}} 7 | {{name}}, 8 | {{/ingredients}} 9 |
10 | {{/.}} 11 |
-------------------------------------------------------------------------------- /chapter08/tacocloud-api/src/main/java/tacos/web/api/TacoResources.java: -------------------------------------------------------------------------------- 1 | package tacos.web.api; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.hateoas.Resources; 6 | 7 | public class TacoResources extends Resources { 8 | public TacoResources(List tacoResources) { 9 | super(tacoResources); 10 | } 11 | } -------------------------------------------------------------------------------- /chapter08/tacocloud-data/src/main/java/tacos/data/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | import tacos.Ingredient; 7 | 8 | @CrossOrigin(origins="*") 9 | public interface IngredientRepository 10 | extends CrudRepository { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /chapter08/tacocloud-data/src/main/java/tacos/data/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.PagingAndSortingRepository; 4 | 5 | import tacos.Taco; 6 | 7 | 8 | public interface TacoRepository 9 | extends PagingAndSortingRepository { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /chapter08/tacocloud-data/src/main/java/tacos/data/UserRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | import org.springframework.data.repository.CrudRepository; 3 | import tacos.User; 4 | 5 | public interface UserRepository extends CrudRepository { 6 | 7 | User findByUsername(String username); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter08/tacocloud-kitchen/src/main/java/tacos/Ingredient.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class Ingredient { 7 | 8 | private final String name; 9 | private final Type type; 10 | 11 | public static enum Type { 12 | WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter08/tacocloud-kitchen/src/main/java/tacos/Taco.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import java.util.Date; 4 | import java.util.List; 5 | 6 | import lombok.Data; 7 | 8 | @Data 9 | public class Taco { 10 | 11 | private String name; 12 | 13 | private Date createdAt; 14 | 15 | private List ingredients; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /chapter08/tacocloud-kitchen/src/main/java/tacos/kitchen/OrderReceiver.java: -------------------------------------------------------------------------------- 1 | package tacos.kitchen; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderReceiver { 6 | 7 | Order receiveOrder(); 8 | 9 | } -------------------------------------------------------------------------------- /chapter08/tacocloud-kitchen/src/main/java/tacos/kitchen/TacoKitchenApplication.java: -------------------------------------------------------------------------------- 1 | package tacos.kitchen; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class TacoKitchenApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(TacoKitchenApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter08/tacocloud-messaging-jms/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter08/tacocloud-messaging-kafka/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter08/tacocloud-messaging-rabbitmq/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter08/tacocloud-messaging-rabbitmq/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-messaging-rabbitmq/src/main/resources/application.yml -------------------------------------------------------------------------------- /chapter08/tacocloud-restclient/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | main: 3 | web-application-type: none -------------------------------------------------------------------------------- /chapter08/tacocloud-restclient/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-restclient/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter08/tacocloud-restclient/src/main/resources/static/images/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-restclient/src/main/resources/static/images/cloud-taco.png -------------------------------------------------------------------------------- /chapter08/tacocloud-restclient/src/main/resources/static/mustache/ingredients.mst: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
3 | 4 | {{name}}
5 |
6 | {{/.}} 7 | -------------------------------------------------------------------------------- /chapter08/tacocloud-restclient/src/main/resources/static/mustache/recents.mst: -------------------------------------------------------------------------------- 1 |

A few of the most recently created taco masterpieces...

2 |
3 | {{#.}} 4 |
{{name}}
5 |
6 | {{#ingredients}} 7 | {{name}}, 8 | {{/ingredients}} 9 |
10 | {{/.}} 11 |
-------------------------------------------------------------------------------- /chapter08/tacocloud-ui/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/e2e/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | 3 | describe('taco-web-ui App', () => { 4 | let page: AppPage; 5 | 6 | beforeEach(() => { 7 | page = new AppPage(); 8 | }); 9 | 10 | it('should display welcome message', () => { 11 | page.navigateTo(); 12 | expect(page.getParagraphText()).toEqual('Welcome to app!'); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/e2e/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get('/'); 6 | } 7 | 8 | getParagraphText() { 9 | return element(by.css('app-root h1')).getText(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "jasminewd2", 11 | "node" 12 | ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/api/ApiService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { Http } from '@angular/http'; 3 | 4 | @Injectable() 5 | export class ApiService { 6 | 7 | constructor(private http: Http) { 8 | } 9 | 10 | get(path: String) { 11 | return this.http.get('http://localhost:8080' + path); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | div.content { 2 | margin: auto; 3 | margin-top: 30px; 4 | margin-bottom: 30px; 5 | width: 80%; 6 | min-height: 500px; 7 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; 8 | /* font-family: Arial, Helvetica, sans-serif; */ 9 | background-image: url('../assets/CloudBackground.png'); 10 | font-size: 16pt; 11 | color: #003366; 12 | } 13 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 |
7 | 8 | 9 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'Taco Cloud'; 10 | } 11 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/big-button/bigbutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 16pt; 6 | padding: 8px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/big-button/bigbutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/big-button/bigbutton.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'big-button', 5 | templateUrl: 'bigbutton.component.html', 6 | styleUrls: ['./bigbutton.component.css'] 7 | }) 8 | 9 | export class BigButtonComponent implements OnInit { 10 | 11 | @Input() label: String; 12 | 13 | constructor() { } 14 | 15 | ngOnInit() { } 16 | } 17 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/cart/cart-item.ts: -------------------------------------------------------------------------------- 1 | export class CartItem { 2 | 3 | quantity = 1; 4 | 5 | taco: any; 6 | 7 | constructor(taco: any) { 8 | this.taco = taco; 9 | } 10 | 11 | get lineTotal() { 12 | return this.quantity * 4.99; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/cloud-title/cloudtitle.component.css: -------------------------------------------------------------------------------- 1 | div.cloudtitle { 2 | height:95px; 3 | width: 100%; 4 | text-align: right; 5 | background-image: url("../../assets/Cloud_sm.png"); 6 | background-repeat: no-repeat; 7 | background-position: right; 8 | margin-bottom: 20px; 9 | } 10 | 11 | div.cloudtitletext { 12 | padding-top: 20px; 13 | width: 100%; 14 | text-align: right; 15 | color: #003366; 16 | } 17 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/cloud-title/cloudtitle.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

4 |
5 |
6 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/cloud-title/cloudtitle.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'cloud-title', 5 | templateUrl: 'cloudtitle.component.html', 6 | styleUrls: ['cloudtitle.component.css'] 7 | }) 8 | 9 | export class CloudTitleComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/design/design.component.css: -------------------------------------------------------------------------------- 1 | div.ingredientsblock { 2 | width: 1000px; 3 | } 4 | 5 | input.nameField { 6 | font-size: 16pt; 7 | background: none; 8 | border: none; 9 | border-bottom: 1px solid #003366; 10 | } 11 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/footer/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/app/footer/cloud-taco.png -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/footer/footer.component.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/footer/footer.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-footer', 5 | templateUrl: 'footer.component.html', 6 | styleUrls: ['./footer.component.css'] 7 | }) 8 | 9 | export class FooterComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/group-box/groupbox.component.html: -------------------------------------------------------------------------------- 1 |
2 |
{{title}}
3 |
4 | 5 |
6 |
7 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/group-box/groupbox.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'group-box', 5 | templateUrl: 'groupbox.component.html', 6 | styleUrls: ['./groupbox.component.css'] 7 | }) 8 | 9 | export class GroupBoxComponent implements OnInit { 10 | @Input() title: String; 11 | 12 | constructor() { } 13 | 14 | ngOnInit() { } 15 | } 16 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/header/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/app/header/cloud-taco.png -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/home/home.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/app/home/home.component.css -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-home', 5 | templateUrl: 'home.component.html', 6 | styleUrls: ['./home.component.css'] 7 | }) 8 | 9 | export class HomeComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/little-button/littlebutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 10pt; 6 | padding: 4px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/little-button/littlebutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/locations/locations.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/app/locations/locations.component.css -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/locations/locations.component.html: -------------------------------------------------------------------------------- 1 | Come visit one of our taco showrooms 2 | 3 |

Although our tacos are conveniently available online, we love to have 4 | our taco artists make in-person appearances at one of our taco showrooms. 5 | Choose the location nearest you. We'll resist the urge to ask you for an 6 | autograph.

7 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/locations/locations.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'locations-tacocloud', 5 | templateUrl: 'locations.component.html' 6 | }) 7 | 8 | export class LocationsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/login/login.component.css: -------------------------------------------------------------------------------- 1 | input.formField { 2 | font-size: 16pt; 3 | background: none; 4 | border: none; 5 | border-bottom: 1px solid #003366; 6 | } 7 | 8 | group-box { 9 | width:1000px; 10 | } 11 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/login/login.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'login-tacocloud', 5 | templateUrl: 'login.component.html', 6 | styleUrls: ['./login.component.css'] 7 | }) 8 | 9 | export class LoginComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/recents/RecentTacosService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { ApiService } from '../api/ApiService'; 3 | 4 | @Injectable() 5 | export class RecentTacosService { 6 | 7 | constructor(private apiService: ApiService) { 8 | } 9 | 10 | getRecentTacos() { 11 | return this.apiService.get('/design/recent'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/specials/specials.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/app/specials/specials.component.css -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/specials/specials.component.html: -------------------------------------------------------------------------------- 1 | Check out some of our specials! 2 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/app/specials/specials.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-specials', 5 | templateUrl: 'specials.component.html' 6 | }) 7 | 8 | export class SpecialsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/assets/.gitkeep -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/assets/CloudBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/assets/CloudBackground.png -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/assets/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/assets/Cloud_sm.png -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/assets/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/assets/TacoCloud.png -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/assets/TacoPhoto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/assets/TacoPhoto.jpg -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/assets/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/assets/cart.png -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/assets/down-triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/assets/down-triangle.png -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/assets/taco-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/assets/taco-icon.png -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/favicon.ico -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Taco Cloud 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.log(err)); 13 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/routes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-ui/src/routes -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "baseUrl": "./", 6 | "module": "es2015", 7 | "types": [] 8 | }, 9 | "exclude": [ 10 | "test.ts", 11 | "**/*.spec.ts" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "node" 11 | ] 12 | }, 13 | "files": [ 14 | "test.ts" 15 | ], 16 | "include": [ 17 | "**/*.spec.ts", 18 | "**/*.d.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /chapter08/tacocloud-ui/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /* SystemJS module definition */ 2 | declare var module: NodeModule; 3 | interface NodeModule { 4 | id: string; 5 | } 6 | -------------------------------------------------------------------------------- /chapter08/tacocloud-web/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-web/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter08/tacocloud-web/src/main/resources/static/images/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter08/tacocloud-web/src/main/resources/static/images/cloud-taco.png -------------------------------------------------------------------------------- /chapter08/tacocloud-web/src/main/resources/static/mustache/ingredients.mst: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
3 | 4 | {{name}}
5 |
6 | {{/.}} 7 | -------------------------------------------------------------------------------- /chapter08/tacocloud-web/src/main/resources/static/mustache/recents.mst: -------------------------------------------------------------------------------- 1 |

A few of the most recently created taco masterpieces...

2 |
3 | {{#.}} 4 |
{{name}}
5 |
6 | {{#ingredients}} 7 | {{name}}, 8 | {{/ingredients}} 9 |
10 | {{/.}} 11 |
-------------------------------------------------------------------------------- /chapter09-flow/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09-flow/src/main/resources/application.properties -------------------------------------------------------------------------------- /chapter09/tacocloud-api/src/main/java/tacos/web/api/EmailOrder.java: -------------------------------------------------------------------------------- 1 | package tacos.web.api; 2 | 3 | import java.util.List; 4 | 5 | import lombok.Data; 6 | 7 | @Data 8 | public class EmailOrder { 9 | 10 | private String email; 11 | private List tacos; 12 | 13 | @Data 14 | public static class EmailTaco { 15 | private String name; 16 | private List ingredients; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /chapter09/tacocloud-api/src/main/java/tacos/web/api/TacoResources.java: -------------------------------------------------------------------------------- 1 | package tacos.web.api; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.hateoas.Resources; 6 | 7 | public class TacoResources extends Resources { 8 | public TacoResources(List tacoResources) { 9 | super(tacoResources); 10 | } 11 | } -------------------------------------------------------------------------------- /chapter09/tacocloud-data/src/main/java/tacos/data/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | import tacos.Ingredient; 7 | 8 | @CrossOrigin(origins="*") 9 | public interface IngredientRepository 10 | extends CrudRepository { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /chapter09/tacocloud-data/src/main/java/tacos/data/PaymentMethodRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | 5 | import tacos.PaymentMethod; 6 | 7 | public interface PaymentMethodRepository extends CrudRepository { 8 | PaymentMethod findByUserId(Long userId); 9 | } 10 | -------------------------------------------------------------------------------- /chapter09/tacocloud-data/src/main/java/tacos/data/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.PagingAndSortingRepository; 4 | 5 | import tacos.Taco; 6 | 7 | 8 | public interface TacoRepository 9 | extends PagingAndSortingRepository { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /chapter09/tacocloud-data/src/main/java/tacos/data/UserRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | import org.springframework.data.repository.CrudRepository; 3 | 4 | import tacos.User; 5 | 6 | public interface UserRepository extends CrudRepository { 7 | 8 | User findByUsername(String username); 9 | 10 | User findByEmail(String email); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /chapter09/tacocloud-email/src/main/java/tacos/email/ApiProperties.java: -------------------------------------------------------------------------------- 1 | package tacos.email; 2 | 3 | import org.springframework.boot.context.properties.ConfigurationProperties; 4 | import org.springframework.stereotype.Component; 5 | 6 | import lombok.Data; 7 | 8 | @Data 9 | @ConfigurationProperties(prefix = "tacocloud.api") 10 | @Component 11 | public class ApiProperties { 12 | private String url; 13 | } -------------------------------------------------------------------------------- /chapter09/tacocloud-email/src/main/java/tacos/email/Ingredient.java: -------------------------------------------------------------------------------- 1 | package tacos.email; 2 | 3 | import lombok.AccessLevel; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.RequiredArgsConstructor; 7 | 8 | @Data 9 | @RequiredArgsConstructor 10 | @NoArgsConstructor(access=AccessLevel.PRIVATE, force=true) 11 | public class Ingredient { 12 | 13 | private final String code; 14 | private final String name; 15 | 16 | } -------------------------------------------------------------------------------- /chapter09/tacocloud-email/src/main/java/tacos/email/Order.java: -------------------------------------------------------------------------------- 1 | package tacos.email; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import lombok.Data; 7 | 8 | @Data 9 | public class Order { 10 | 11 | private final String email; 12 | private List tacos = new ArrayList<>(); 13 | 14 | public void addTaco(Taco taco) { 15 | this.tacos.add(taco); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /chapter09/tacocloud-email/src/main/java/tacos/email/Taco.java: -------------------------------------------------------------------------------- 1 | package tacos.email; 2 | 3 | import java.util.List; 4 | 5 | import lombok.Data; 6 | 7 | @Data 8 | public class Taco { 9 | 10 | private final String name; 11 | private List ingredients; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter09/tacocloud-email/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | main: 3 | web-application-type: none 4 | 5 | tacocloud: 6 | api: 7 | url: http://localhost:8080/orders/fromEmail 8 | # You'll need to tweak these settings to fit an incoming mail server of your choosing. 9 | email: 10 | host: imap.tacocloud.com 11 | mailbox: INBOX 12 | username: taco-in-flow 13 | password: 1L0v3T4c0s 14 | poll-rate: 10000 15 | -------------------------------------------------------------------------------- /chapter09/tacocloud-kitchen/src/main/java/tacos/Ingredient.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class Ingredient { 7 | 8 | private final String name; 9 | private final Type type; 10 | 11 | public static enum Type { 12 | WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter09/tacocloud-kitchen/src/main/java/tacos/Taco.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import java.util.Date; 4 | import java.util.List; 5 | 6 | import lombok.Data; 7 | 8 | @Data 9 | public class Taco { 10 | 11 | private String name; 12 | 13 | private Date createdAt; 14 | 15 | private List ingredients; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /chapter09/tacocloud-kitchen/src/main/java/tacos/kitchen/OrderReceiver.java: -------------------------------------------------------------------------------- 1 | package tacos.kitchen; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderReceiver { 6 | 7 | Order receiveOrder(); 8 | 9 | } -------------------------------------------------------------------------------- /chapter09/tacocloud-messaging-jms/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter09/tacocloud-messaging-kafka/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter09/tacocloud-messaging-rabbitmq/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter09/tacocloud-messaging-rabbitmq/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-messaging-rabbitmq/src/main/resources/application.yml -------------------------------------------------------------------------------- /chapter09/tacocloud-restclient/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | main: 3 | web-application-type: none -------------------------------------------------------------------------------- /chapter09/tacocloud-restclient/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-restclient/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter09/tacocloud-restclient/src/main/resources/static/images/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-restclient/src/main/resources/static/images/cloud-taco.png -------------------------------------------------------------------------------- /chapter09/tacocloud-restclient/src/main/resources/static/mustache/ingredients.mst: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
3 | 4 | {{name}}
5 |
6 | {{/.}} 7 | -------------------------------------------------------------------------------- /chapter09/tacocloud-restclient/src/main/resources/static/mustache/recents.mst: -------------------------------------------------------------------------------- 1 |

A few of the most recently created taco masterpieces...

2 |
3 | {{#.}} 4 |
{{name}}
5 |
6 | {{#ingredients}} 7 | {{name}}, 8 | {{/ingredients}} 9 |
10 | {{/.}} 11 |
-------------------------------------------------------------------------------- /chapter09/tacocloud-ui/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/e2e/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | 3 | describe('taco-web-ui App', () => { 4 | let page: AppPage; 5 | 6 | beforeEach(() => { 7 | page = new AppPage(); 8 | }); 9 | 10 | it('should display welcome message', () => { 11 | page.navigateTo(); 12 | expect(page.getParagraphText()).toEqual('Welcome to app!'); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/e2e/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get('/'); 6 | } 7 | 8 | getParagraphText() { 9 | return element(by.css('app-root h1')).getText(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "jasminewd2", 11 | "node" 12 | ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/api/ApiService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { Http } from '@angular/http'; 3 | 4 | @Injectable() 5 | export class ApiService { 6 | 7 | constructor(private http: Http) { 8 | } 9 | 10 | get(path: String) { 11 | return this.http.get('http://localhost:8080' + path); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | div.content { 2 | margin: auto; 3 | margin-top: 30px; 4 | margin-bottom: 30px; 5 | width: 80%; 6 | min-height: 500px; 7 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; 8 | /* font-family: Arial, Helvetica, sans-serif; */ 9 | background-image: url('../assets/CloudBackground.png'); 10 | font-size: 16pt; 11 | color: #003366; 12 | } 13 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 |
7 | 8 | 9 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'Taco Cloud'; 10 | } 11 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/big-button/bigbutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 16pt; 6 | padding: 8px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/big-button/bigbutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/big-button/bigbutton.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'big-button', 5 | templateUrl: 'bigbutton.component.html', 6 | styleUrls: ['./bigbutton.component.css'] 7 | }) 8 | 9 | export class BigButtonComponent implements OnInit { 10 | 11 | @Input() label: String; 12 | 13 | constructor() { } 14 | 15 | ngOnInit() { } 16 | } 17 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/cart/cart-item.ts: -------------------------------------------------------------------------------- 1 | export class CartItem { 2 | 3 | quantity = 1; 4 | 5 | taco: any; 6 | 7 | constructor(taco: any) { 8 | this.taco = taco; 9 | } 10 | 11 | get lineTotal() { 12 | return this.quantity * 4.99; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/cloud-title/cloudtitle.component.css: -------------------------------------------------------------------------------- 1 | div.cloudtitle { 2 | height:95px; 3 | width: 100%; 4 | text-align: right; 5 | background-image: url("../../assets/Cloud_sm.png"); 6 | background-repeat: no-repeat; 7 | background-position: right; 8 | margin-bottom: 20px; 9 | } 10 | 11 | div.cloudtitletext { 12 | padding-top: 20px; 13 | width: 100%; 14 | text-align: right; 15 | color: #003366; 16 | } 17 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/cloud-title/cloudtitle.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

4 |
5 |
6 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/cloud-title/cloudtitle.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'cloud-title', 5 | templateUrl: 'cloudtitle.component.html', 6 | styleUrls: ['cloudtitle.component.css'] 7 | }) 8 | 9 | export class CloudTitleComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/design/design.component.css: -------------------------------------------------------------------------------- 1 | div.ingredientsblock { 2 | width: 1000px; 3 | } 4 | 5 | input.nameField { 6 | font-size: 16pt; 7 | background: none; 8 | border: none; 9 | border-bottom: 1px solid #003366; 10 | } 11 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/footer/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/app/footer/cloud-taco.png -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/footer/footer.component.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/footer/footer.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-footer', 5 | templateUrl: 'footer.component.html', 6 | styleUrls: ['./footer.component.css'] 7 | }) 8 | 9 | export class FooterComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/group-box/groupbox.component.html: -------------------------------------------------------------------------------- 1 |
2 |
{{title}}
3 |
4 | 5 |
6 |
7 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/group-box/groupbox.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'group-box', 5 | templateUrl: 'groupbox.component.html', 6 | styleUrls: ['./groupbox.component.css'] 7 | }) 8 | 9 | export class GroupBoxComponent implements OnInit { 10 | @Input() title: String; 11 | 12 | constructor() { } 13 | 14 | ngOnInit() { } 15 | } 16 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/header/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/app/header/cloud-taco.png -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/home/home.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/app/home/home.component.css -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-home', 5 | templateUrl: 'home.component.html', 6 | styleUrls: ['./home.component.css'] 7 | }) 8 | 9 | export class HomeComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/little-button/littlebutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 10pt; 6 | padding: 4px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/little-button/littlebutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/locations/locations.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/app/locations/locations.component.css -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/locations/locations.component.html: -------------------------------------------------------------------------------- 1 | Come visit one of our taco showrooms 2 | 3 |

Although our tacos are conveniently available online, we love to have 4 | our taco artists make in-person appearances at one of our taco showrooms. 5 | Choose the location nearest you. We'll resist the urge to ask you for an 6 | autograph.

7 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/locations/locations.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'locations-tacocloud', 5 | templateUrl: 'locations.component.html' 6 | }) 7 | 8 | export class LocationsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/login/login.component.css: -------------------------------------------------------------------------------- 1 | input.formField { 2 | font-size: 16pt; 3 | background: none; 4 | border: none; 5 | border-bottom: 1px solid #003366; 6 | } 7 | 8 | group-box { 9 | width:1000px; 10 | } 11 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/login/login.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'login-tacocloud', 5 | templateUrl: 'login.component.html', 6 | styleUrls: ['./login.component.css'] 7 | }) 8 | 9 | export class LoginComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/recents/RecentTacosService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { ApiService } from '../api/ApiService'; 3 | 4 | @Injectable() 5 | export class RecentTacosService { 6 | 7 | constructor(private apiService: ApiService) { 8 | } 9 | 10 | getRecentTacos() { 11 | return this.apiService.get('/design/recent'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/specials/specials.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/app/specials/specials.component.css -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/specials/specials.component.html: -------------------------------------------------------------------------------- 1 | Check out some of our specials! 2 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/app/specials/specials.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-specials', 5 | templateUrl: 'specials.component.html' 6 | }) 7 | 8 | export class SpecialsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/assets/.gitkeep -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/assets/CloudBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/assets/CloudBackground.png -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/assets/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/assets/Cloud_sm.png -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/assets/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/assets/TacoCloud.png -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/assets/TacoPhoto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/assets/TacoPhoto.jpg -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/assets/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/assets/cart.png -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/assets/down-triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/assets/down-triangle.png -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/assets/taco-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/assets/taco-icon.png -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/favicon.ico -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Taco Cloud 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.log(err)); 13 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/routes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-ui/src/routes -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "baseUrl": "./", 6 | "module": "es2015", 7 | "types": [] 8 | }, 9 | "exclude": [ 10 | "test.ts", 11 | "**/*.spec.ts" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "node" 11 | ] 12 | }, 13 | "files": [ 14 | "test.ts" 15 | ], 16 | "include": [ 17 | "**/*.spec.ts", 18 | "**/*.d.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /chapter09/tacocloud-ui/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /* SystemJS module definition */ 2 | declare var module: NodeModule; 3 | interface NodeModule { 4 | id: string; 5 | } 6 | -------------------------------------------------------------------------------- /chapter09/tacocloud-web/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-web/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter09/tacocloud-web/src/main/resources/static/images/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter09/tacocloud-web/src/main/resources/static/images/cloud-taco.png -------------------------------------------------------------------------------- /chapter09/tacocloud-web/src/main/resources/static/mustache/ingredients.mst: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
3 | 4 | {{name}}
5 |
6 | {{/.}} 7 | -------------------------------------------------------------------------------- /chapter09/tacocloud-web/src/main/resources/static/mustache/recents.mst: -------------------------------------------------------------------------------- 1 |

A few of the most recently created taco masterpieces...

2 |
3 | {{#.}} 4 |
{{name}}
5 |
6 | {{#ingredients}} 7 | {{name}}, 8 | {{/ingredients}} 9 |
10 | {{/.}} 11 |
-------------------------------------------------------------------------------- /chapter10/src/main/java/sia5/SimpleApplication.java: -------------------------------------------------------------------------------- 1 | package sia5; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SimpleApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(SimpleApplication.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapter10/src/main/java/sia5/package-info.java: -------------------------------------------------------------------------------- 1 | 2 | package sia5; -------------------------------------------------------------------------------- /chapter10/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter10/src/main/resources/application.properties -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-api/src/main/java/tacos/web/api/EmailOrder.java: -------------------------------------------------------------------------------- 1 | package tacos.web.api; 2 | 3 | import java.util.List; 4 | 5 | import lombok.Data; 6 | 7 | @Data 8 | public class EmailOrder { 9 | 10 | private String email; 11 | private List tacos; 12 | 13 | @Data 14 | public static class EmailTaco { 15 | private String name; 16 | private List ingredients; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-data/src/main/java/tacos/data/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.reactive.ReactiveCrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | import tacos.Ingredient; 7 | 8 | @CrossOrigin(origins="*") 9 | public interface IngredientRepository 10 | extends ReactiveCrudRepository { 11 | 12 | } -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-data/src/main/java/tacos/data/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import java.util.UUID; 4 | 5 | import org.springframework.data.repository.reactive.ReactiveCrudRepository; 6 | 7 | import tacos.Taco; 8 | 9 | 10 | public interface TacoRepository 11 | extends ReactiveCrudRepository { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-domain/src/main/java/tacos/TacoUDT.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.cassandra.core.mapping.UserDefinedType; 6 | 7 | import lombok.Data; 8 | 9 | @Data 10 | @UserDefinedType("taco") 11 | public class TacoUDT { 12 | 13 | private final String name; 14 | private final List ingredients; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-domain/src/main/java/tacos/UserUDT.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import org.springframework.data.cassandra.core.mapping.UserDefinedType; 4 | 5 | import lombok.Data; 6 | 7 | @UserDefinedType("user") 8 | @Data 9 | public class UserUDT { 10 | 11 | private final String username; 12 | private final String fullname; 13 | private final String phoneNumber; 14 | 15 | } -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-email/src/main/java/tacos/email/ApiProperties.java: -------------------------------------------------------------------------------- 1 | package tacos.email; 2 | 3 | import org.springframework.boot.context.properties.ConfigurationProperties; 4 | import org.springframework.stereotype.Component; 5 | 6 | import lombok.Data; 7 | 8 | @Data 9 | @ConfigurationProperties(prefix = "tacocloud.api") 10 | @Component 11 | public class ApiProperties { 12 | private String url; 13 | } -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-email/src/main/java/tacos/email/Order.java: -------------------------------------------------------------------------------- 1 | package tacos.email; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import lombok.Data; 7 | 8 | @Data 9 | public class Order { 10 | 11 | private final String email; 12 | private List tacos = new ArrayList<>(); 13 | 14 | public void addTaco(Taco taco) { 15 | this.tacos.add(taco); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-email/src/main/java/tacos/email/Taco.java: -------------------------------------------------------------------------------- 1 | package tacos.email; 2 | 3 | import java.util.List; 4 | 5 | import lombok.Data; 6 | 7 | @Data 8 | public class Taco { 9 | 10 | private final String name; 11 | private List ingredients; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-kitchen/src/main/java/tacos/Ingredient.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class Ingredient { 7 | 8 | private final String name; 9 | private final Type type; 10 | 11 | public static enum Type { 12 | WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-kitchen/src/main/java/tacos/Taco.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import java.util.Date; 4 | import java.util.List; 5 | 6 | import lombok.Data; 7 | 8 | @Data 9 | public class Taco { 10 | 11 | private String name; 12 | 13 | private Date createdAt; 14 | 15 | private List ingredients; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-kitchen/src/main/java/tacos/kitchen/OrderReceiver.java: -------------------------------------------------------------------------------- 1 | package tacos.kitchen; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderReceiver { 6 | 7 | Order receiveOrder(); 8 | 9 | } -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-messaging-jms/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-messaging-kafka/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-messaging-rabbitmq/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-messaging-rabbitmq/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-messaging-rabbitmq/src/main/resources/application.yml -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-restclient/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | main: 3 | web-application-type: none -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-restclient/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-restclient/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-restclient/src/main/resources/static/images/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-restclient/src/main/resources/static/images/cloud-taco.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-restclient/src/main/resources/static/mustache/ingredients.mst: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
3 | 4 | {{name}}
5 |
6 | {{/.}} 7 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-restclient/src/main/resources/static/mustache/recents.mst: -------------------------------------------------------------------------------- 1 |

A few of the most recently created taco masterpieces...

2 |
3 | {{#.}} 4 |
{{name}}
5 |
6 | {{#ingredients}} 7 | {{name}}, 8 | {{/ingredients}} 9 |
10 | {{/.}} 11 |
-------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/e2e/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | 3 | describe('taco-web-ui App', () => { 4 | let page: AppPage; 5 | 6 | beforeEach(() => { 7 | page = new AppPage(); 8 | }); 9 | 10 | it('should display welcome message', () => { 11 | page.navigateTo(); 12 | expect(page.getParagraphText()).toEqual('Welcome to app!'); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/e2e/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get('/'); 6 | } 7 | 8 | getParagraphText() { 9 | return element(by.css('app-root h1')).getText(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "jasminewd2", 11 | "node" 12 | ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/api/ApiService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { Http } from '@angular/http'; 3 | 4 | @Injectable() 5 | export class ApiService { 6 | 7 | constructor(private http: Http) { 8 | } 9 | 10 | get(path: String) { 11 | return this.http.get('http://localhost:8080' + path); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | div.content { 2 | margin: auto; 3 | margin-top: 30px; 4 | margin-bottom: 30px; 5 | width: 80%; 6 | min-height: 500px; 7 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; 8 | /* font-family: Arial, Helvetica, sans-serif; */ 9 | background-image: url('../assets/CloudBackground.png'); 10 | font-size: 16pt; 11 | color: #003366; 12 | } 13 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 |
7 | 8 | 9 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'Taco Cloud'; 10 | } 11 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/big-button/bigbutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 16pt; 6 | padding: 8px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/big-button/bigbutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/big-button/bigbutton.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'big-button', 5 | templateUrl: 'bigbutton.component.html', 6 | styleUrls: ['./bigbutton.component.css'] 7 | }) 8 | 9 | export class BigButtonComponent implements OnInit { 10 | 11 | @Input() label: String; 12 | 13 | constructor() { } 14 | 15 | ngOnInit() { } 16 | } 17 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/cart/cart-item.ts: -------------------------------------------------------------------------------- 1 | export class CartItem { 2 | 3 | quantity = 1; 4 | 5 | taco: any; 6 | 7 | constructor(taco: any) { 8 | this.taco = taco; 9 | } 10 | 11 | get lineTotal() { 12 | return this.quantity * 4.99; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/cloud-title/cloudtitle.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

4 |
5 |
6 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/cloud-title/cloudtitle.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'cloud-title', 5 | templateUrl: 'cloudtitle.component.html', 6 | styleUrls: ['cloudtitle.component.css'] 7 | }) 8 | 9 | export class CloudTitleComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/design/design.component.css: -------------------------------------------------------------------------------- 1 | div.ingredientsblock { 2 | width: 1000px; 3 | } 4 | 5 | input.nameField { 6 | font-size: 16pt; 7 | background: none; 8 | border: none; 9 | border-bottom: 1px solid #003366; 10 | } 11 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/footer/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/app/footer/cloud-taco.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/footer/footer.component.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/footer/footer.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-footer', 5 | templateUrl: 'footer.component.html', 6 | styleUrls: ['./footer.component.css'] 7 | }) 8 | 9 | export class FooterComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/group-box/groupbox.component.html: -------------------------------------------------------------------------------- 1 |
2 |
{{title}}
3 |
4 | 5 |
6 |
7 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/group-box/groupbox.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'group-box', 5 | templateUrl: 'groupbox.component.html', 6 | styleUrls: ['./groupbox.component.css'] 7 | }) 8 | 9 | export class GroupBoxComponent implements OnInit { 10 | @Input() title: String; 11 | 12 | constructor() { } 13 | 14 | ngOnInit() { } 15 | } 16 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/header/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/app/header/cloud-taco.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/home/home.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/app/home/home.component.css -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-home', 5 | templateUrl: 'home.component.html', 6 | styleUrls: ['./home.component.css'] 7 | }) 8 | 9 | export class HomeComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/little-button/littlebutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 10pt; 6 | padding: 4px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/little-button/littlebutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/locations/locations.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/app/locations/locations.component.css -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/locations/locations.component.html: -------------------------------------------------------------------------------- 1 | Come visit one of our taco showrooms 2 | 3 |

Although our tacos are conveniently available online, we love to have 4 | our taco artists make in-person appearances at one of our taco showrooms. 5 | Choose the location nearest you. We'll resist the urge to ask you for an 6 | autograph.

7 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/locations/locations.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'locations-tacocloud', 5 | templateUrl: 'locations.component.html' 6 | }) 7 | 8 | export class LocationsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/login/login.component.css: -------------------------------------------------------------------------------- 1 | input.formField { 2 | font-size: 16pt; 3 | background: none; 4 | border: none; 5 | border-bottom: 1px solid #003366; 6 | } 7 | 8 | group-box { 9 | width:1000px; 10 | } 11 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/login/login.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'login-tacocloud', 5 | templateUrl: 'login.component.html', 6 | styleUrls: ['./login.component.css'] 7 | }) 8 | 9 | export class LoginComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/recents/RecentTacosService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { ApiService } from '../api/ApiService'; 3 | 4 | @Injectable() 5 | export class RecentTacosService { 6 | 7 | constructor(private apiService: ApiService) { 8 | } 9 | 10 | getRecentTacos() { 11 | return this.apiService.get('/design/recent'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/specials/specials.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/app/specials/specials.component.css -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/specials/specials.component.html: -------------------------------------------------------------------------------- 1 | Check out some of our specials! 2 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/app/specials/specials.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-specials', 5 | templateUrl: 'specials.component.html' 6 | }) 7 | 8 | export class SpecialsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/assets/.gitkeep -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/assets/CloudBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/assets/CloudBackground.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/assets/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/assets/Cloud_sm.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/assets/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/assets/TacoCloud.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/assets/TacoPhoto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/assets/TacoPhoto.jpg -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/assets/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/assets/cart.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/assets/down-triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/assets/down-triangle.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/assets/taco-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/assets/taco-icon.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/favicon.ico -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Taco Cloud 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/routes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-ui/src/routes -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "baseUrl": "./", 6 | "module": "es2015", 7 | "types": [] 8 | }, 9 | "exclude": [ 10 | "test.ts", 11 | "**/*.spec.ts" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "node" 11 | ] 12 | }, 13 | "files": [ 14 | "test.ts" 15 | ], 16 | "include": [ 17 | "**/*.spec.ts", 18 | "**/*.d.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-ui/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /* SystemJS module definition */ 2 | declare var module: NodeModule; 3 | interface NodeModule { 4 | id: string; 5 | } 6 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-web/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-web/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-web/src/main/resources/static/images/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-cassandra/tacocloud-web/src/main/resources/static/images/cloud-taco.png -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-web/src/main/resources/static/mustache/ingredients.mst: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
3 | 4 | {{name}}
5 |
6 | {{/.}} 7 | -------------------------------------------------------------------------------- /chapter11-12-cassandra/tacocloud-web/src/main/resources/static/mustache/recents.mst: -------------------------------------------------------------------------------- 1 |

A few of the most recently created taco masterpieces...

2 |
3 | {{#.}} 4 |
{{name}}
5 |
6 | {{#ingredients}} 7 | {{name}}, 8 | {{/ingredients}} 9 |
10 | {{/.}} 11 |
-------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-api/src/main/java/tacos/web/api/EmailOrder.java: -------------------------------------------------------------------------------- 1 | package tacos.web.api; 2 | 3 | import java.util.List; 4 | 5 | import lombok.Data; 6 | 7 | @Data 8 | public class EmailOrder { 9 | 10 | private String email; 11 | private List tacos; 12 | 13 | @Data 14 | public static class EmailTaco { 15 | private String name; 16 | private List ingredients; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-api/src/main/java/tacos/web/api/TacoResources.java: -------------------------------------------------------------------------------- 1 | package tacos.web.api; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.hateoas.Resources; 6 | 7 | public class TacoResources extends Resources { 8 | public TacoResources(List tacoResources) { 9 | super(tacoResources); 10 | } 11 | } -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-data-mongodb/src/main/java/tacos/data/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.reactive.ReactiveCrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | import tacos.Ingredient; 7 | 8 | @CrossOrigin(origins="*") 9 | public interface IngredientRepository 10 | extends ReactiveCrudRepository { 11 | 12 | } -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-data-mongodb/src/main/java/tacos/data/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.data; 2 | 3 | import org.springframework.data.repository.reactive.ReactiveCrudRepository; 4 | 5 | import tacos.Taco; 6 | 7 | 8 | public interface TacoRepository 9 | extends ReactiveCrudRepository { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-email/src/main/java/tacos/email/ApiProperties.java: -------------------------------------------------------------------------------- 1 | package tacos.email; 2 | 3 | import org.springframework.boot.context.properties.ConfigurationProperties; 4 | import org.springframework.stereotype.Component; 5 | 6 | import lombok.Data; 7 | 8 | @Data 9 | @ConfigurationProperties(prefix = "tacocloud.api") 10 | @Component 11 | public class ApiProperties { 12 | private String url; 13 | } -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-email/src/main/java/tacos/email/Order.java: -------------------------------------------------------------------------------- 1 | package tacos.email; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import lombok.Data; 7 | 8 | @Data 9 | public class Order { 10 | 11 | private final String email; 12 | private List tacos = new ArrayList<>(); 13 | 14 | public void addTaco(Taco taco) { 15 | this.tacos.add(taco); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-email/src/main/java/tacos/email/Taco.java: -------------------------------------------------------------------------------- 1 | package tacos.email; 2 | 3 | import java.util.List; 4 | 5 | import lombok.Data; 6 | 7 | @Data 8 | public class Taco { 9 | 10 | private final String name; 11 | private List ingredients; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-email/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | main: 3 | web-application-type: none 4 | 5 | tacocloud: 6 | api: 7 | url: http://localhost:8080/orders/fromEmail 8 | # You'll need to tweak these settings to fit an incoming mail server of your choosing. 9 | email: 10 | host: imap.tacocloud.com 11 | mailbox: INBOX 12 | username: taco-in-flow 13 | password: 1L0v3T4c0s 14 | poll-rate: 10000 15 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-kitchen/src/main/java/tacos/Ingredient.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class Ingredient { 7 | 8 | private final String name; 9 | private final Type type; 10 | 11 | public static enum Type { 12 | WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-kitchen/src/main/java/tacos/Taco.java: -------------------------------------------------------------------------------- 1 | package tacos; 2 | 3 | import java.util.Date; 4 | import java.util.List; 5 | 6 | import lombok.Data; 7 | 8 | @Data 9 | public class Taco { 10 | 11 | private String name; 12 | 13 | private Date createdAt; 14 | 15 | private List ingredients; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-kitchen/src/main/java/tacos/kitchen/OrderReceiver.java: -------------------------------------------------------------------------------- 1 | package tacos.kitchen; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderReceiver { 6 | 7 | Order receiveOrder(); 8 | 9 | } -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-messaging-jms/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-messaging-kafka/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-messaging-rabbitmq/src/main/java/tacos/messaging/OrderMessagingService.java: -------------------------------------------------------------------------------- 1 | package tacos.messaging; 2 | 3 | import tacos.Order; 4 | 5 | public interface OrderMessagingService { 6 | 7 | void sendOrder(Order order); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-messaging-rabbitmq/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-messaging-rabbitmq/src/main/resources/application.yml -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-restclient/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | main: 3 | web-application-type: none -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-restclient/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-restclient/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-restclient/src/main/resources/static/images/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-restclient/src/main/resources/static/images/cloud-taco.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-restclient/src/main/resources/static/mustache/ingredients.mst: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
3 | 4 | {{name}}
5 |
6 | {{/.}} 7 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-restclient/src/main/resources/static/mustache/recents.mst: -------------------------------------------------------------------------------- 1 |

A few of the most recently created taco masterpieces...

2 |
3 | {{#.}} 4 |
{{name}}
5 |
6 | {{#ingredients}} 7 | {{name}}, 8 | {{/ingredients}} 9 |
10 | {{/.}} 11 |
-------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/e2e/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | 3 | describe('taco-web-ui App', () => { 4 | let page: AppPage; 5 | 6 | beforeEach(() => { 7 | page = new AppPage(); 8 | }); 9 | 10 | it('should display welcome message', () => { 11 | page.navigateTo(); 12 | expect(page.getParagraphText()).toEqual('Welcome to app!'); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/e2e/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get('/'); 6 | } 7 | 8 | getParagraphText() { 9 | return element(by.css('app-root h1')).getText(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "jasminewd2", 11 | "node" 12 | ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/api/ApiService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { Http } from '@angular/http'; 3 | 4 | @Injectable() 5 | export class ApiService { 6 | 7 | constructor(private http: Http) { 8 | } 9 | 10 | get(path: String) { 11 | return this.http.get('http://localhost:8080' + path); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | div.content { 2 | margin: auto; 3 | margin-top: 30px; 4 | margin-bottom: 30px; 5 | width: 80%; 6 | min-height: 500px; 7 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; 8 | /* font-family: Arial, Helvetica, sans-serif; */ 9 | background-image: url('../assets/CloudBackground.png'); 10 | font-size: 16pt; 11 | color: #003366; 12 | } 13 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 |
7 | 8 | 9 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'Taco Cloud'; 10 | } 11 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/big-button/bigbutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 16pt; 6 | padding: 8px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/big-button/bigbutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/big-button/bigbutton.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'big-button', 5 | templateUrl: 'bigbutton.component.html', 6 | styleUrls: ['./bigbutton.component.css'] 7 | }) 8 | 9 | export class BigButtonComponent implements OnInit { 10 | 11 | @Input() label: String; 12 | 13 | constructor() { } 14 | 15 | ngOnInit() { } 16 | } 17 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/cart/cart-item.ts: -------------------------------------------------------------------------------- 1 | export class CartItem { 2 | 3 | quantity = 1; 4 | 5 | taco: any; 6 | 7 | constructor(taco: any) { 8 | this.taco = taco; 9 | } 10 | 11 | get lineTotal() { 12 | return this.quantity * 4.99; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/cloud-title/cloudtitle.component.css: -------------------------------------------------------------------------------- 1 | div.cloudtitle { 2 | height:95px; 3 | width: 100%; 4 | text-align: right; 5 | background-image: url("../../assets/Cloud_sm.png"); 6 | background-repeat: no-repeat; 7 | background-position: right; 8 | margin-bottom: 20px; 9 | } 10 | 11 | div.cloudtitletext { 12 | padding-top: 20px; 13 | width: 100%; 14 | text-align: right; 15 | color: #003366; 16 | } 17 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/cloud-title/cloudtitle.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

4 |
5 |
6 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/cloud-title/cloudtitle.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'cloud-title', 5 | templateUrl: 'cloudtitle.component.html', 6 | styleUrls: ['cloudtitle.component.css'] 7 | }) 8 | 9 | export class CloudTitleComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/design/design.component.css: -------------------------------------------------------------------------------- 1 | div.ingredientsblock { 2 | width: 1000px; 3 | } 4 | 5 | input.nameField { 6 | font-size: 16pt; 7 | background: none; 8 | border: none; 9 | border-bottom: 1px solid #003366; 10 | } 11 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/footer/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/app/footer/cloud-taco.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/footer/footer.component.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/footer/footer.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-footer', 5 | templateUrl: 'footer.component.html', 6 | styleUrls: ['./footer.component.css'] 7 | }) 8 | 9 | export class FooterComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/group-box/groupbox.component.html: -------------------------------------------------------------------------------- 1 |
2 |
{{title}}
3 |
4 | 5 |
6 |
7 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/group-box/groupbox.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'group-box', 5 | templateUrl: 'groupbox.component.html', 6 | styleUrls: ['./groupbox.component.css'] 7 | }) 8 | 9 | export class GroupBoxComponent implements OnInit { 10 | @Input() title: String; 11 | 12 | constructor() { } 13 | 14 | ngOnInit() { } 15 | } 16 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/header/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/app/header/cloud-taco.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/home/home.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/app/home/home.component.css -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-home', 5 | templateUrl: 'home.component.html', 6 | styleUrls: ['./home.component.css'] 7 | }) 8 | 9 | export class HomeComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/little-button/littlebutton.component.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: rgba(118, 214, 255, 0.25); 3 | border: 1px solid #76D6FF; 4 | color: #003366; 5 | font-size: 10pt; 6 | padding: 4px; 7 | border-radius: 10px; 8 | font-weight: bold; 9 | font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif 10 | } 11 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/little-button/littlebutton.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/locations/locations.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/app/locations/locations.component.css -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/locations/locations.component.html: -------------------------------------------------------------------------------- 1 | Come visit one of our taco showrooms 2 | 3 |

Although our tacos are conveniently available online, we love to have 4 | our taco artists make in-person appearances at one of our taco showrooms. 5 | Choose the location nearest you. We'll resist the urge to ask you for an 6 | autograph.

7 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/locations/locations.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'locations-tacocloud', 5 | templateUrl: 'locations.component.html' 6 | }) 7 | 8 | export class LocationsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/login/login.component.css: -------------------------------------------------------------------------------- 1 | input.formField { 2 | font-size: 16pt; 3 | background: none; 4 | border: none; 5 | border-bottom: 1px solid #003366; 6 | } 7 | 8 | group-box { 9 | width:1000px; 10 | } 11 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/login/login.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'login-tacocloud', 5 | templateUrl: 'login.component.html', 6 | styleUrls: ['./login.component.css'] 7 | }) 8 | 9 | export class LoginComponent implements OnInit { 10 | constructor() { } 11 | 12 | ngOnInit() { } 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/recents/RecentTacosService.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { ApiService } from '../api/ApiService'; 3 | 4 | @Injectable() 5 | export class RecentTacosService { 6 | 7 | constructor(private apiService: ApiService) { 8 | } 9 | 10 | getRecentTacos() { 11 | return this.apiService.get('/design/recent'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/specials/specials.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/app/specials/specials.component.css -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/specials/specials.component.html: -------------------------------------------------------------------------------- 1 | Check out some of our specials! 2 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/app/specials/specials.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'taco-specials', 5 | templateUrl: 'specials.component.html' 6 | }) 7 | 8 | export class SpecialsComponent implements OnInit { 9 | constructor() { } 10 | 11 | ngOnInit() { } 12 | } 13 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/assets/.gitkeep -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/assets/CloudBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/assets/CloudBackground.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/assets/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/assets/Cloud_sm.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/assets/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/assets/TacoCloud.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/assets/TacoPhoto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/assets/TacoPhoto.jpg -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/assets/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/assets/cart.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/assets/down-triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/assets/down-triangle.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/assets/taco-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/assets/taco-icon.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/favicon.ico -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Taco Cloud 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/routes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-ui/src/routes -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "baseUrl": "./", 6 | "module": "es2015", 7 | "types": [] 8 | }, 9 | "exclude": [ 10 | "test.ts", 11 | "**/*.spec.ts" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "node" 11 | ] 12 | }, 13 | "files": [ 14 | "test.ts" 15 | ], 16 | "include": [ 17 | "**/*.spec.ts", 18 | "**/*.d.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-ui/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /* SystemJS module definition */ 2 | declare var module: NodeModule; 3 | interface NodeModule { 4 | id: string; 5 | } 6 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-web/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-web/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-web/src/main/resources/static/images/cloud-taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter11-12-mongodb/tacocloud-web/src/main/resources/static/images/cloud-taco.png -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-web/src/main/resources/static/mustache/ingredients.mst: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
3 | 4 | {{name}}
5 |
6 | {{/.}} 7 | -------------------------------------------------------------------------------- /chapter11-12-mongodb/tacocloud-web/src/main/resources/static/mustache/recents.mst: -------------------------------------------------------------------------------- 1 |

A few of the most recently created taco masterpieces...

2 |
3 | {{#.}} 4 |
{{name}}
5 |
6 | {{#ingredients}} 7 | {{name}}, 8 | {{/ingredients}} 9 |
10 | {{/.}} 11 |
-------------------------------------------------------------------------------- /chapter13/ingredient-client/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: ingredient-client 4 | -------------------------------------------------------------------------------- /chapter13/ingredient-client/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter13/ingredient-client/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /chapter13/ingredient-client/src/main/resources/static/images/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter13/ingredient-client/src/main/resources/static/images/Cloud_sm.png -------------------------------------------------------------------------------- /chapter13/ingredient-client/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter13/ingredient-client/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter13/ingredient-service/src/main/java/tacos/ingredients/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.ingredients; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | @CrossOrigin(origins="*") 7 | public interface IngredientRepository 8 | extends CrudRepository { 9 | 10 | } -------------------------------------------------------------------------------- /chapter14-greettings/greetings/src/main/java/sia/greetings/GreetingsApplication.java: -------------------------------------------------------------------------------- 1 | package sia.greetings; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class GreetingsApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(GreetingsApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapter14-greettings/greetings/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: greetings 4 | 5 | cloud: 6 | config: 7 | uri: http://localhost:8888 8 | 9 | management: 10 | endpoints: 11 | web: 12 | exposure: 13 | include: '*' -------------------------------------------------------------------------------- /chapter14/ingredient-client/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter14/ingredient-client/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /chapter14/ingredient-client/src/main/resources/static/images/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter14/ingredient-client/src/main/resources/static/images/Cloud_sm.png -------------------------------------------------------------------------------- /chapter14/ingredient-client/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter14/ingredient-client/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter14/ingredient-service/src/main/java/tacos/ingredients/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.ingredients; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | @CrossOrigin(origins="*") 7 | public interface IngredientRepository 8 | extends CrudRepository { 9 | 10 | } -------------------------------------------------------------------------------- /chapter15/hystrix-dashboard/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7979 -------------------------------------------------------------------------------- /chapter15/ingredient-client/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter15/ingredient-client/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /chapter15/ingredient-client/src/main/resources/static/images/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter15/ingredient-client/src/main/resources/static/images/Cloud_sm.png -------------------------------------------------------------------------------- /chapter15/ingredient-client/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter15/ingredient-client/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter15/ingredient-service/src/main/java/tacos/ingredients/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.ingredients; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | @CrossOrigin(origins="*") 7 | public interface IngredientRepository 8 | extends CrudRepository { 9 | 10 | } -------------------------------------------------------------------------------- /chapter16/hystrix-dashboard/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7979 -------------------------------------------------------------------------------- /chapter16/ingredient-client/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter16/ingredient-client/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /chapter16/ingredient-client/src/main/resources/static/images/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter16/ingredient-client/src/main/resources/static/images/Cloud_sm.png -------------------------------------------------------------------------------- /chapter16/ingredient-client/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter16/ingredient-client/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter16/ingredient-service/src/main/java/tacos/ingredients/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.ingredients; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | @CrossOrigin(origins="*") 7 | public interface IngredientRepository 8 | extends CrudRepository { 9 | 10 | } -------------------------------------------------------------------------------- /chapter16/taco-service/src/main/java/tacos/tacos/Ingredient.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import lombok.Data; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | @Data 7 | @RequiredArgsConstructor 8 | public class Ingredient { 9 | 10 | private final String id; 11 | private final String name; 12 | 13 | } -------------------------------------------------------------------------------- /chapter16/taco-service/src/main/java/tacos/tacos/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import org.springframework.data.repository.PagingAndSortingRepository; 4 | 5 | public interface TacoRepository 6 | extends PagingAndSortingRepository { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /chapter16/taco-service/src/main/java/tacos/tacos/TacoServiceApplication.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class TacoServiceApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(TacoServiceApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter17/boot-admin-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9090 3 | 4 | spring: 5 | security: 6 | user: 7 | name: admin 8 | password: 53cr3t 9 | 10 | eureka: 11 | client: 12 | register-with-eureka: false -------------------------------------------------------------------------------- /chapter17/hystrix-dashboard/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7979 -------------------------------------------------------------------------------- /chapter17/ingredient-client/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter17/ingredient-client/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /chapter17/ingredient-client/src/main/resources/static/images/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter17/ingredient-client/src/main/resources/static/images/Cloud_sm.png -------------------------------------------------------------------------------- /chapter17/ingredient-client/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter17/ingredient-client/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter17/ingredient-service/src/main/java/tacos/ingredients/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.ingredients; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | @CrossOrigin(origins="*") 7 | public interface IngredientRepository 8 | extends CrudRepository { 9 | 10 | } -------------------------------------------------------------------------------- /chapter17/taco-service/src/main/java/tacos/tacos/Ingredient.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import lombok.Data; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | @Data 7 | @RequiredArgsConstructor 8 | public class Ingredient { 9 | 10 | private final String id; 11 | private final String name; 12 | 13 | } -------------------------------------------------------------------------------- /chapter17/taco-service/src/main/java/tacos/tacos/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import org.springframework.data.repository.PagingAndSortingRepository; 4 | 5 | public interface TacoRepository 6 | extends PagingAndSortingRepository { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /chapter17/taco-service/src/main/java/tacos/tacos/TacoServiceApplication.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class TacoServiceApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(TacoServiceApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter18/boot-admin-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9090 3 | 4 | spring: 5 | security: 6 | user: 7 | name: admin 8 | password: 53cr3t -------------------------------------------------------------------------------- /chapter18/hystrix-dashboard/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7979 -------------------------------------------------------------------------------- /chapter18/ingredient-client/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter18/ingredient-client/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /chapter18/ingredient-client/src/main/resources/static/images/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter18/ingredient-client/src/main/resources/static/images/Cloud_sm.png -------------------------------------------------------------------------------- /chapter18/ingredient-client/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter18/ingredient-client/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter18/ingredient-service/src/main/java/tacos/ingredients/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.ingredients; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | @CrossOrigin(origins="*") 7 | public interface IngredientRepository 8 | extends CrudRepository { 9 | 10 | } -------------------------------------------------------------------------------- /chapter18/taco-service/src/main/java/tacos/tacos/Ingredient.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import lombok.Data; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | @Data 7 | @RequiredArgsConstructor 8 | public class Ingredient { 9 | 10 | private final String id; 11 | private final String name; 12 | 13 | } -------------------------------------------------------------------------------- /chapter18/taco-service/src/main/java/tacos/tacos/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import org.springframework.data.repository.PagingAndSortingRepository; 4 | 5 | public interface TacoRepository 6 | extends PagingAndSortingRepository { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /chapter18/taco-service/src/main/java/tacos/tacos/TacoServiceApplication.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class TacoServiceApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(TacoServiceApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter19/boot-admin-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9090 3 | 4 | spring: 5 | security: 6 | user: 7 | name: admin 8 | password: 53cr3t -------------------------------------------------------------------------------- /chapter19/hystrix-dashboard/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 7979 -------------------------------------------------------------------------------- /chapter19/ingredient-client/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter19/ingredient-client/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /chapter19/ingredient-client/src/main/resources/static/images/Cloud_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter19/ingredient-client/src/main/resources/static/images/Cloud_sm.png -------------------------------------------------------------------------------- /chapter19/ingredient-client/src/main/resources/static/images/TacoCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactivePlatform/Spring-In-Action-5/9f8b9a6edb7b9a9e83c4c0048b1a00dcb5897cb5/chapter19/ingredient-client/src/main/resources/static/images/TacoCloud.png -------------------------------------------------------------------------------- /chapter19/ingredient-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | ENV SPRING_PROFILES_ACTIVE docker 3 | VOLUME /tmp 4 | ARG JAR_FILE 5 | COPY ${JAR_FILE} app.jar 6 | ENTRYPOINT ["java",\ 7 | "-Djava.security.egd=file:/dev/./urandom",\ 8 | "-jar",\ 9 | "/app.jar"] -------------------------------------------------------------------------------- /chapter19/ingredient-service/src/main/java/tacos/ingredients/IngredientRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.ingredients; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | import org.springframework.web.bind.annotation.CrossOrigin; 5 | 6 | @CrossOrigin(origins="*") 7 | public interface IngredientRepository 8 | extends CrudRepository { 9 | 10 | } -------------------------------------------------------------------------------- /chapter19/taco-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | ENV SPRING_PROFILES_ACTIVE docker 3 | VOLUME /tmp 4 | ARG JAR_FILE 5 | COPY ${JAR_FILE} app.jar 6 | ENTRYPOINT ["java",\ 7 | "-Djava.security.egd=file:/dev/./urandom",\ 8 | "-jar",\ 9 | "/app.jar"] -------------------------------------------------------------------------------- /chapter19/taco-service/src/main/java/tacos/tacos/Ingredient.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import lombok.Data; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | @Data 7 | @RequiredArgsConstructor 8 | public class Ingredient { 9 | 10 | private final String id; 11 | private final String name; 12 | 13 | } -------------------------------------------------------------------------------- /chapter19/taco-service/src/main/java/tacos/tacos/TacoRepository.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import org.springframework.data.repository.PagingAndSortingRepository; 4 | 5 | public interface TacoRepository 6 | extends PagingAndSortingRepository { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /chapter19/taco-service/src/main/java/tacos/tacos/TacoServiceApplication.java: -------------------------------------------------------------------------------- 1 | package tacos.tacos; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class TacoServiceApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(TacoServiceApplication.class, args); 11 | } 12 | 13 | } 14 | --------------------------------------------------------------------------------