├── .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 | {{label}}
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 |
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 | {{label}}
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 | {{label}}
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 |
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 | {{label}}
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 | {{label}}
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 |
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 | {{label}}
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 | {{label}}
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 |
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 | {{label}}
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 | {{label}}
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 |
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 | {{label}}
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 | {{label}}
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 |
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 | {{label}}
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 |
--------------------------------------------------------------------------------