├── Chapter1
├── final
│ └── .keep
└── starter
│ └── .keep
├── Chapter10
├── Chapter_10_Postman_Collection.json
├── final
│ └── quick-poll-ch10-final
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── apress
│ │ │ │ ├── QuickPollApplication.java
│ │ │ │ ├── controller
│ │ │ │ ├── ComputeResultController.java
│ │ │ │ ├── PollController.java
│ │ │ │ └── VoteController.java
│ │ │ │ ├── domain
│ │ │ │ ├── Option.java
│ │ │ │ ├── Poll.java
│ │ │ │ └── Vote.java
│ │ │ │ ├── dto
│ │ │ │ ├── OptionCount.java
│ │ │ │ └── VoteResult.java
│ │ │ │ └── repository
│ │ │ │ ├── OptionRepository.java
│ │ │ │ ├── PollRepository.java
│ │ │ │ └── VoteRepository.java
│ │ └── resources
│ │ │ ├── application.properties
│ │ │ ├── import.sql
│ │ │ ├── static
│ │ │ └── .keep
│ │ │ └── templates
│ │ │ └── .keep
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── apress
│ │ └── QuickPollApplicationTests.java
└── starter
│ └── quick-poll-ch10-starter
│ ├── pom.xml
│ └── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── apress
│ │ │ ├── QuickPollApplication.java
│ │ │ ├── controller
│ │ │ ├── ComputeResultController.java
│ │ │ ├── PollController.java
│ │ │ └── VoteController.java
│ │ │ ├── domain
│ │ │ ├── Option.java
│ │ │ ├── Poll.java
│ │ │ └── Vote.java
│ │ │ ├── dto
│ │ │ ├── OptionCount.java
│ │ │ └── VoteResult.java
│ │ │ └── repository
│ │ │ ├── OptionRepository.java
│ │ │ ├── PollRepository.java
│ │ │ └── VoteRepository.java
│ └── resources
│ │ ├── application.properties
│ │ ├── import.sql
│ │ ├── static
│ │ └── .keep
│ │ └── templates
│ │ └── .keep
│ └── test
│ └── java
│ └── com
│ └── apress
│ └── QuickPollApplicationTests.java
├── Chapter2
├── final
│ └── .keep
└── starter
│ └── .keep
├── Chapter3
├── final
│ └── hello-rest-ch3-final
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── apress
│ │ │ │ └── hellorest
│ │ │ │ └── HelloWorldRestApplication.java
│ │ └── resources
│ │ │ ├── application.properties
│ │ │ ├── static
│ │ │ └── .keep
│ │ │ └── templates
│ │ │ └── .keep
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── apress
│ │ └── hellorest
│ │ └── HelloWorldRestApplicationTests.java
└── starter
│ └── hello-rest
│ ├── pom.xml
│ └── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── apress
│ │ │ └── hellorest
│ │ │ └── HelloWorldRestApplication.java
│ └── resources
│ │ ├── application.properties
│ │ ├── static
│ │ └── .keep
│ │ └── templates
│ │ └── .keep
│ └── test
│ └── java
│ └── com
│ └── apress
│ └── hellorest
│ └── HelloWorldRestApplicationTests.java
├── Chapter4
├── Chapter4_Postman_Collection.json
├── final
│ └── quick-poll-ch4-final
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── apress
│ │ │ │ ├── QuickPollApplication.java
│ │ │ │ ├── controller
│ │ │ │ ├── ComputeResultController.java
│ │ │ │ ├── PollController.java
│ │ │ │ └── VoteController.java
│ │ │ │ ├── domain
│ │ │ │ ├── Option.java
│ │ │ │ ├── Poll.java
│ │ │ │ └── Vote.java
│ │ │ │ ├── dto
│ │ │ │ ├── OptionCount.java
│ │ │ │ └── VoteResult.java
│ │ │ │ └── repository
│ │ │ │ ├── OptionRepository.java
│ │ │ │ ├── PollRepository.java
│ │ │ │ └── VoteRepository.java
│ │ └── resources
│ │ │ ├── application.properties
│ │ │ ├── static
│ │ │ └── .keep
│ │ │ └── templates
│ │ │ └── .keep
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── apress
│ │ └── QuickPollApplicationTests.java
└── starter
│ └── quick-poll
│ ├── pom.xml
│ └── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── apress
│ │ │ └── QuickPollApplication.java
│ └── resources
│ │ ├── application.properties
│ │ ├── static
│ │ └── .keep
│ │ └── templates
│ │ └── .keep
│ └── test
│ └── java
│ └── com
│ └── apress
│ └── QuickPollApplicationTests.java
├── Chapter5
├── Chapter_5_Postman_Collection.json
├── final
│ └── quick-poll-ch5-final
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── apress
│ │ │ │ ├── QuickPollApplication.java
│ │ │ │ ├── controller
│ │ │ │ ├── ComputeResultController.java
│ │ │ │ ├── PollController.java
│ │ │ │ └── VoteController.java
│ │ │ │ ├── domain
│ │ │ │ ├── Option.java
│ │ │ │ ├── Poll.java
│ │ │ │ └── Vote.java
│ │ │ │ ├── dto
│ │ │ │ ├── OptionCount.java
│ │ │ │ ├── VoteResult.java
│ │ │ │ └── error
│ │ │ │ │ ├── ErrorDetail.java
│ │ │ │ │ └── ValidationError.java
│ │ │ │ ├── exception
│ │ │ │ └── ResourceNotFoundException.java
│ │ │ │ ├── handler
│ │ │ │ └── RestExceptionHandler.java
│ │ │ │ └── repository
│ │ │ │ ├── OptionRepository.java
│ │ │ │ ├── PollRepository.java
│ │ │ │ └── VoteRepository.java
│ │ └── resources
│ │ │ ├── application.properties
│ │ │ ├── messages.properties
│ │ │ ├── static
│ │ │ └── .keep
│ │ │ └── templates
│ │ │ └── .keep
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── apress
│ │ └── QuickPollApplicationTests.java
└── starter
│ └── quick-poll-ch5-starter
│ ├── pom.xml
│ └── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── apress
│ │ │ ├── QuickPollApplication.java
│ │ │ ├── controller
│ │ │ ├── ComputeResultController.java
│ │ │ ├── PollController.java
│ │ │ └── VoteController.java
│ │ │ ├── domain
│ │ │ ├── Option.java
│ │ │ ├── Poll.java
│ │ │ └── Vote.java
│ │ │ ├── dto
│ │ │ ├── OptionCount.java
│ │ │ └── VoteResult.java
│ │ │ └── repository
│ │ │ ├── OptionRepository.java
│ │ │ ├── PollRepository.java
│ │ │ └── VoteRepository.java
│ └── resources
│ │ ├── application.properties
│ │ ├── static
│ │ └── .keep
│ │ └── templates
│ │ └── .keep
│ └── test
│ └── java
│ └── com
│ └── apress
│ └── QuickPollApplicationTests.java
├── Chapter6
├── final
│ └── quick-poll-ch6-final
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── apress
│ │ │ │ ├── QuickPollApplication.java
│ │ │ │ ├── SwaggerConfig.java
│ │ │ │ ├── controller
│ │ │ │ ├── ComputeResultController.java
│ │ │ │ ├── PollController.java
│ │ │ │ └── VoteController.java
│ │ │ │ ├── domain
│ │ │ │ ├── Option.java
│ │ │ │ ├── Poll.java
│ │ │ │ └── Vote.java
│ │ │ │ ├── dto
│ │ │ │ ├── OptionCount.java
│ │ │ │ ├── VoteResult.java
│ │ │ │ └── error
│ │ │ │ │ ├── ErrorDetail.java
│ │ │ │ │ └── ValidationError.java
│ │ │ │ ├── exception
│ │ │ │ └── ResourceNotFoundException.java
│ │ │ │ ├── handler
│ │ │ │ └── RestExceptionHandler.java
│ │ │ │ └── repository
│ │ │ │ ├── OptionRepository.java
│ │ │ │ ├── PollRepository.java
│ │ │ │ └── VoteRepository.java
│ │ └── resources
│ │ │ ├── application.properties
│ │ │ ├── messages.properties
│ │ │ ├── static
│ │ │ ├── .keep
│ │ │ └── swagger-ui
│ │ │ │ ├── css
│ │ │ │ ├── reset.css
│ │ │ │ └── screen.css
│ │ │ │ ├── images
│ │ │ │ ├── explorer_icons.png
│ │ │ │ ├── logo_small.png
│ │ │ │ ├── pet_store_api.png
│ │ │ │ ├── throbber.gif
│ │ │ │ └── wordnik_api.png
│ │ │ │ ├── index.html
│ │ │ │ ├── lib
│ │ │ │ ├── backbone-min.js
│ │ │ │ ├── handlebars-1.0.0.js
│ │ │ │ ├── highlight.7.3.pack.js
│ │ │ │ ├── jquery-1.8.0.min.js
│ │ │ │ ├── jquery.ba-bbq.min.js
│ │ │ │ ├── jquery.slideto.min.js
│ │ │ │ ├── jquery.wiggle.min.js
│ │ │ │ ├── shred.bundle.js
│ │ │ │ ├── shred
│ │ │ │ │ └── content.js
│ │ │ │ ├── swagger-oauth.js
│ │ │ │ ├── swagger.js
│ │ │ │ └── underscore-min.js
│ │ │ │ ├── o2c.html
│ │ │ │ ├── swagger-ui.js
│ │ │ │ └── swagger-ui.min.js
│ │ │ └── templates
│ │ │ └── .keep
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── apress
│ │ └── QuickPollApplicationTests.java
└── starter
│ └── quick-poll-ch6-starter
│ ├── pom.xml
│ └── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── apress
│ │ │ ├── QuickPollApplication.java
│ │ │ ├── controller
│ │ │ ├── ComputeResultController.java
│ │ │ ├── PollController.java
│ │ │ └── VoteController.java
│ │ │ ├── domain
│ │ │ ├── Option.java
│ │ │ ├── Poll.java
│ │ │ └── Vote.java
│ │ │ ├── dto
│ │ │ ├── OptionCount.java
│ │ │ ├── VoteResult.java
│ │ │ └── error
│ │ │ │ ├── ErrorDetail.java
│ │ │ │ └── ValidationError.java
│ │ │ ├── exception
│ │ │ └── ResourceNotFoundException.java
│ │ │ ├── handler
│ │ │ └── RestExceptionHandler.java
│ │ │ └── repository
│ │ │ ├── OptionRepository.java
│ │ │ ├── PollRepository.java
│ │ │ └── VoteRepository.java
│ └── resources
│ │ ├── application.properties
│ │ ├── messages.properties
│ │ ├── static
│ │ └── .keep
│ │ └── templates
│ │ └── .keep
│ └── test
│ └── java
│ └── com
│ └── apress
│ └── QuickPollApplicationTests.java
├── Chapter7
├── Chapter7_Postman_Collection.json
├── final
│ └── quick-poll-ch7-final
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── apress
│ │ │ │ ├── QuickPollApplication.java
│ │ │ │ ├── QuickPollMvcConfigAdapter.java
│ │ │ │ ├── SwaggerConfig.java
│ │ │ │ ├── domain
│ │ │ │ ├── Option.java
│ │ │ │ ├── Poll.java
│ │ │ │ └── Vote.java
│ │ │ │ ├── dto
│ │ │ │ ├── OptionCount.java
│ │ │ │ ├── VoteResult.java
│ │ │ │ └── error
│ │ │ │ │ ├── ErrorDetail.java
│ │ │ │ │ └── ValidationError.java
│ │ │ │ ├── exception
│ │ │ │ └── ResourceNotFoundException.java
│ │ │ │ ├── handler
│ │ │ │ └── RestExceptionHandler.java
│ │ │ │ ├── repository
│ │ │ │ ├── OptionRepository.java
│ │ │ │ ├── PollRepository.java
│ │ │ │ └── VoteRepository.java
│ │ │ │ ├── v1
│ │ │ │ └── controller
│ │ │ │ │ ├── ComputeResultController.java
│ │ │ │ │ ├── PollController.java
│ │ │ │ │ └── VoteController.java
│ │ │ │ └── v2
│ │ │ │ └── controller
│ │ │ │ ├── ComputeResultController.java
│ │ │ │ ├── PollController.java
│ │ │ │ └── VoteController.java
│ │ └── resources
│ │ │ ├── application.properties
│ │ │ ├── import.sql
│ │ │ ├── messages.properties
│ │ │ ├── static
│ │ │ ├── .keep
│ │ │ └── swagger-ui
│ │ │ │ ├── css
│ │ │ │ ├── reset.css
│ │ │ │ └── screen.css
│ │ │ │ ├── images
│ │ │ │ ├── explorer_icons.png
│ │ │ │ ├── logo_small.png
│ │ │ │ ├── pet_store_api.png
│ │ │ │ ├── throbber.gif
│ │ │ │ └── wordnik_api.png
│ │ │ │ ├── index.html
│ │ │ │ ├── lib
│ │ │ │ ├── backbone-min.js
│ │ │ │ ├── handlebars-1.0.0.js
│ │ │ │ ├── highlight.7.3.pack.js
│ │ │ │ ├── jquery-1.8.0.min.js
│ │ │ │ ├── jquery.ba-bbq.min.js
│ │ │ │ ├── jquery.slideto.min.js
│ │ │ │ ├── jquery.wiggle.min.js
│ │ │ │ ├── shred.bundle.js
│ │ │ │ ├── shred
│ │ │ │ │ └── content.js
│ │ │ │ ├── swagger-oauth.js
│ │ │ │ ├── swagger.js
│ │ │ │ └── underscore-min.js
│ │ │ │ ├── o2c.html
│ │ │ │ ├── swagger-ui.js
│ │ │ │ └── swagger-ui.min.js
│ │ │ └── templates
│ │ │ └── .keep
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── apress
│ │ └── QuickPollApplicationTests.java
├── import.sql
└── starter
│ └── quick-poll-ch7-starter
│ ├── pom.xml
│ └── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── apress
│ │ │ ├── QuickPollApplication.java
│ │ │ ├── SwaggerConfig.java
│ │ │ ├── controller
│ │ │ ├── ComputeResultController.java
│ │ │ ├── PollController.java
│ │ │ └── VoteController.java
│ │ │ ├── domain
│ │ │ ├── Option.java
│ │ │ ├── Poll.java
│ │ │ └── Vote.java
│ │ │ ├── dto
│ │ │ ├── OptionCount.java
│ │ │ ├── VoteResult.java
│ │ │ └── error
│ │ │ │ ├── ErrorDetail.java
│ │ │ │ └── ValidationError.java
│ │ │ ├── exception
│ │ │ └── ResourceNotFoundException.java
│ │ │ ├── handler
│ │ │ └── RestExceptionHandler.java
│ │ │ └── repository
│ │ │ ├── OptionRepository.java
│ │ │ ├── PollRepository.java
│ │ │ └── VoteRepository.java
│ └── resources
│ │ ├── application.properties
│ │ ├── messages.properties
│ │ ├── static
│ │ ├── .keep
│ │ └── swagger-ui
│ │ │ ├── css
│ │ │ ├── reset.css
│ │ │ └── screen.css
│ │ │ ├── images
│ │ │ ├── explorer_icons.png
│ │ │ ├── logo_small.png
│ │ │ ├── pet_store_api.png
│ │ │ ├── throbber.gif
│ │ │ └── wordnik_api.png
│ │ │ ├── index.html
│ │ │ ├── lib
│ │ │ ├── backbone-min.js
│ │ │ ├── handlebars-1.0.0.js
│ │ │ ├── highlight.7.3.pack.js
│ │ │ ├── jquery-1.8.0.min.js
│ │ │ ├── jquery.ba-bbq.min.js
│ │ │ ├── jquery.slideto.min.js
│ │ │ ├── jquery.wiggle.min.js
│ │ │ ├── shred.bundle.js
│ │ │ ├── shred
│ │ │ │ └── content.js
│ │ │ ├── swagger-oauth.js
│ │ │ ├── swagger.js
│ │ │ └── underscore-min.js
│ │ │ ├── o2c.html
│ │ │ ├── swagger-ui.js
│ │ │ └── swagger-ui.min.js
│ │ └── templates
│ │ └── .keep
│ └── test
│ └── java
│ └── com
│ └── apress
│ └── QuickPollApplicationTests.java
├── Chapter8
├── Chapter8_Postman_Collection.json
├── final
│ ├── quick-poll-ch8-final-basic-auth
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── apress
│ │ │ │ │ ├── QuickPollApplication.java
│ │ │ │ │ ├── QuickPollMvcConfigAdapter.java
│ │ │ │ │ ├── SecurityConfig.java
│ │ │ │ │ ├── SwaggerConfig.java
│ │ │ │ │ ├── domain
│ │ │ │ │ ├── Option.java
│ │ │ │ │ ├── Poll.java
│ │ │ │ │ ├── User.java
│ │ │ │ │ └── Vote.java
│ │ │ │ │ ├── dto
│ │ │ │ │ ├── OptionCount.java
│ │ │ │ │ ├── VoteResult.java
│ │ │ │ │ └── error
│ │ │ │ │ │ ├── ErrorDetail.java
│ │ │ │ │ │ └── ValidationError.java
│ │ │ │ │ ├── exception
│ │ │ │ │ └── ResourceNotFoundException.java
│ │ │ │ │ ├── handler
│ │ │ │ │ └── RestExceptionHandler.java
│ │ │ │ │ ├── repository
│ │ │ │ │ ├── OptionRepository.java
│ │ │ │ │ ├── PollRepository.java
│ │ │ │ │ ├── UserRepository.java
│ │ │ │ │ └── VoteRepository.java
│ │ │ │ │ ├── security
│ │ │ │ │ └── QuickPollUserDetailsService.java
│ │ │ │ │ ├── v1
│ │ │ │ │ └── controller
│ │ │ │ │ │ ├── ComputeResultController.java
│ │ │ │ │ │ ├── PollController.java
│ │ │ │ │ │ └── VoteController.java
│ │ │ │ │ ├── v2
│ │ │ │ │ └── controller
│ │ │ │ │ │ ├── ComputeResultController.java
│ │ │ │ │ │ ├── PollController.java
│ │ │ │ │ │ └── VoteController.java
│ │ │ │ │ └── v3
│ │ │ │ │ └── controller
│ │ │ │ │ ├── ComputeResultController.java
│ │ │ │ │ ├── PollController.java
│ │ │ │ │ └── VoteController.java
│ │ │ └── resources
│ │ │ │ ├── application.properties
│ │ │ │ ├── import.sql
│ │ │ │ ├── messages.properties
│ │ │ │ ├── static
│ │ │ │ ├── .keep
│ │ │ │ └── swagger-ui
│ │ │ │ │ ├── css
│ │ │ │ │ ├── reset.css
│ │ │ │ │ └── screen.css
│ │ │ │ │ ├── images
│ │ │ │ │ ├── explorer_icons.png
│ │ │ │ │ ├── logo_small.png
│ │ │ │ │ ├── pet_store_api.png
│ │ │ │ │ ├── throbber.gif
│ │ │ │ │ └── wordnik_api.png
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── lib
│ │ │ │ │ ├── backbone-min.js
│ │ │ │ │ ├── handlebars-1.0.0.js
│ │ │ │ │ ├── highlight.7.3.pack.js
│ │ │ │ │ ├── jquery-1.8.0.min.js
│ │ │ │ │ ├── jquery.ba-bbq.min.js
│ │ │ │ │ ├── jquery.slideto.min.js
│ │ │ │ │ ├── jquery.wiggle.min.js
│ │ │ │ │ ├── shred.bundle.js
│ │ │ │ │ ├── shred
│ │ │ │ │ │ └── content.js
│ │ │ │ │ ├── swagger-oauth.js
│ │ │ │ │ ├── swagger.js
│ │ │ │ │ └── underscore-min.js
│ │ │ │ │ ├── o2c.html
│ │ │ │ │ ├── swagger-ui.js
│ │ │ │ │ └── swagger-ui.min.js
│ │ │ │ └── templates
│ │ │ │ └── .keep
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── apress
│ │ │ ├── QuickPollApplicationTests.java
│ │ │ └── UserGenerator.java
│ └── quick-poll-ch8-final
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── apress
│ │ │ │ ├── OAuth2AuthorizationServerConfig.java
│ │ │ │ ├── OAuth2ResourceServerConfig.java
│ │ │ │ ├── QuickPollApplication.java
│ │ │ │ ├── QuickPollMvcConfigAdapter.java
│ │ │ │ ├── SecurityConfig.java
│ │ │ │ ├── SwaggerConfig.java
│ │ │ │ ├── domain
│ │ │ │ ├── Option.java
│ │ │ │ ├── Poll.java
│ │ │ │ ├── User.java
│ │ │ │ └── Vote.java
│ │ │ │ ├── dto
│ │ │ │ ├── OptionCount.java
│ │ │ │ ├── VoteResult.java
│ │ │ │ └── error
│ │ │ │ │ ├── ErrorDetail.java
│ │ │ │ │ └── ValidationError.java
│ │ │ │ ├── exception
│ │ │ │ └── ResourceNotFoundException.java
│ │ │ │ ├── handler
│ │ │ │ └── RestExceptionHandler.java
│ │ │ │ ├── repository
│ │ │ │ ├── OptionRepository.java
│ │ │ │ ├── PollRepository.java
│ │ │ │ ├── UserRepository.java
│ │ │ │ └── VoteRepository.java
│ │ │ │ ├── security
│ │ │ │ └── QuickPollUserDetailsService.java
│ │ │ │ ├── v1
│ │ │ │ └── controller
│ │ │ │ │ ├── ComputeResultController.java
│ │ │ │ │ ├── PollController.java
│ │ │ │ │ └── VoteController.java
│ │ │ │ ├── v2
│ │ │ │ └── controller
│ │ │ │ │ ├── ComputeResultController.java
│ │ │ │ │ ├── PollController.java
│ │ │ │ │ └── VoteController.java
│ │ │ │ └── v3
│ │ │ │ └── controller
│ │ │ │ ├── ComputeResultController.java
│ │ │ │ ├── PollController.java
│ │ │ │ └── VoteController.java
│ │ └── resources
│ │ │ ├── application.properties
│ │ │ ├── import.sql
│ │ │ ├── messages.properties
│ │ │ ├── static
│ │ │ ├── .keep
│ │ │ └── swagger-ui
│ │ │ │ ├── css
│ │ │ │ ├── reset.css
│ │ │ │ └── screen.css
│ │ │ │ ├── images
│ │ │ │ ├── explorer_icons.png
│ │ │ │ ├── logo_small.png
│ │ │ │ ├── pet_store_api.png
│ │ │ │ ├── throbber.gif
│ │ │ │ └── wordnik_api.png
│ │ │ │ ├── index.html
│ │ │ │ ├── lib
│ │ │ │ ├── backbone-min.js
│ │ │ │ ├── handlebars-1.0.0.js
│ │ │ │ ├── highlight.7.3.pack.js
│ │ │ │ ├── jquery-1.8.0.min.js
│ │ │ │ ├── jquery.ba-bbq.min.js
│ │ │ │ ├── jquery.slideto.min.js
│ │ │ │ ├── jquery.wiggle.min.js
│ │ │ │ ├── shred.bundle.js
│ │ │ │ ├── shred
│ │ │ │ │ └── content.js
│ │ │ │ ├── swagger-oauth.js
│ │ │ │ ├── swagger.js
│ │ │ │ └── underscore-min.js
│ │ │ │ ├── o2c.html
│ │ │ │ ├── swagger-ui.js
│ │ │ │ └── swagger-ui.min.js
│ │ │ └── templates
│ │ │ └── .keep
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── apress
│ │ ├── QuickPollApplicationTests.java
│ │ └── UserGenerator.java
├── import.sql
└── starter
│ └── quick-poll-ch8-starter
│ ├── pom.xml
│ └── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── apress
│ │ │ ├── QuickPollApplication.java
│ │ │ ├── QuickPollMvcConfigAdapter.java
│ │ │ ├── SwaggerConfig.java
│ │ │ ├── domain
│ │ │ ├── Option.java
│ │ │ ├── Poll.java
│ │ │ └── Vote.java
│ │ │ ├── dto
│ │ │ ├── OptionCount.java
│ │ │ ├── VoteResult.java
│ │ │ └── error
│ │ │ │ ├── ErrorDetail.java
│ │ │ │ └── ValidationError.java
│ │ │ ├── exception
│ │ │ └── ResourceNotFoundException.java
│ │ │ ├── handler
│ │ │ └── RestExceptionHandler.java
│ │ │ ├── repository
│ │ │ ├── OptionRepository.java
│ │ │ ├── PollRepository.java
│ │ │ └── VoteRepository.java
│ │ │ ├── v1
│ │ │ └── controller
│ │ │ │ ├── ComputeResultController.java
│ │ │ │ ├── PollController.java
│ │ │ │ └── VoteController.java
│ │ │ └── v2
│ │ │ └── controller
│ │ │ ├── ComputeResultController.java
│ │ │ ├── PollController.java
│ │ │ └── VoteController.java
│ └── resources
│ │ ├── application.properties
│ │ ├── import.sql
│ │ ├── messages.properties
│ │ ├── static
│ │ ├── .keep
│ │ └── swagger-ui
│ │ │ ├── css
│ │ │ ├── reset.css
│ │ │ └── screen.css
│ │ │ ├── images
│ │ │ ├── explorer_icons.png
│ │ │ ├── logo_small.png
│ │ │ ├── pet_store_api.png
│ │ │ ├── throbber.gif
│ │ │ └── wordnik_api.png
│ │ │ ├── index.html
│ │ │ ├── lib
│ │ │ ├── backbone-min.js
│ │ │ ├── handlebars-1.0.0.js
│ │ │ ├── highlight.7.3.pack.js
│ │ │ ├── jquery-1.8.0.min.js
│ │ │ ├── jquery.ba-bbq.min.js
│ │ │ ├── jquery.slideto.min.js
│ │ │ ├── jquery.wiggle.min.js
│ │ │ ├── shred.bundle.js
│ │ │ ├── shred
│ │ │ │ └── content.js
│ │ │ ├── swagger-oauth.js
│ │ │ ├── swagger.js
│ │ │ └── underscore-min.js
│ │ │ ├── o2c.html
│ │ │ ├── swagger-ui.js
│ │ │ └── swagger-ui.min.js
│ │ └── templates
│ │ └── .keep
│ └── test
│ └── java
│ └── com
│ └── apress
│ └── QuickPollApplicationTests.java
├── Chapter9
├── final
│ └── quick-poll-ch9-final
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── apress
│ │ │ │ ├── OAuth2AuthorizationServerConfig.java
│ │ │ │ ├── OAuth2ResourceServerConfig.java
│ │ │ │ ├── QuickPollApplication.java
│ │ │ │ ├── QuickPollMvcConfigAdapter.java
│ │ │ │ ├── SecurityConfig.java
│ │ │ │ ├── SwaggerConfig.java
│ │ │ │ ├── client
│ │ │ │ ├── PageWrapper.java
│ │ │ │ ├── QuickPollClient.java
│ │ │ │ ├── QuickPollClientJdk.java
│ │ │ │ ├── QuickPollClientV2.java
│ │ │ │ ├── QuickPollClientV3BasicAuth.java
│ │ │ │ └── QuickPollClientV3OAuth.java
│ │ │ │ ├── domain
│ │ │ │ ├── Option.java
│ │ │ │ ├── Poll.java
│ │ │ │ ├── User.java
│ │ │ │ └── Vote.java
│ │ │ │ ├── dto
│ │ │ │ ├── OptionCount.java
│ │ │ │ ├── VoteResult.java
│ │ │ │ └── error
│ │ │ │ │ ├── ErrorDetail.java
│ │ │ │ │ └── ValidationError.java
│ │ │ │ ├── exception
│ │ │ │ └── ResourceNotFoundException.java
│ │ │ │ ├── handler
│ │ │ │ └── RestExceptionHandler.java
│ │ │ │ ├── repository
│ │ │ │ ├── OptionRepository.java
│ │ │ │ ├── PollRepository.java
│ │ │ │ ├── UserRepository.java
│ │ │ │ └── VoteRepository.java
│ │ │ │ ├── security
│ │ │ │ └── QuickPollUserDetailsService.java
│ │ │ │ ├── v1
│ │ │ │ └── controller
│ │ │ │ │ ├── ComputeResultController.java
│ │ │ │ │ ├── PollController.java
│ │ │ │ │ └── VoteController.java
│ │ │ │ ├── v2
│ │ │ │ └── controller
│ │ │ │ │ ├── ComputeResultController.java
│ │ │ │ │ ├── PollController.java
│ │ │ │ │ └── VoteController.java
│ │ │ │ └── v3
│ │ │ │ └── controller
│ │ │ │ ├── ComputeResultController.java
│ │ │ │ ├── PollController.java
│ │ │ │ └── VoteController.java
│ │ └── resources
│ │ │ ├── application.properties
│ │ │ ├── import.sql
│ │ │ ├── messages.properties
│ │ │ ├── static
│ │ │ ├── .keep
│ │ │ └── swagger-ui
│ │ │ │ ├── css
│ │ │ │ ├── reset.css
│ │ │ │ └── screen.css
│ │ │ │ ├── images
│ │ │ │ ├── explorer_icons.png
│ │ │ │ ├── logo_small.png
│ │ │ │ ├── pet_store_api.png
│ │ │ │ ├── throbber.gif
│ │ │ │ └── wordnik_api.png
│ │ │ │ ├── index.html
│ │ │ │ ├── lib
│ │ │ │ ├── backbone-min.js
│ │ │ │ ├── handlebars-1.0.0.js
│ │ │ │ ├── highlight.7.3.pack.js
│ │ │ │ ├── jquery-1.8.0.min.js
│ │ │ │ ├── jquery.ba-bbq.min.js
│ │ │ │ ├── jquery.slideto.min.js
│ │ │ │ ├── jquery.wiggle.min.js
│ │ │ │ ├── shred.bundle.js
│ │ │ │ ├── shred
│ │ │ │ │ └── content.js
│ │ │ │ ├── swagger-oauth.js
│ │ │ │ ├── swagger.js
│ │ │ │ └── underscore-min.js
│ │ │ │ ├── o2c.html
│ │ │ │ ├── swagger-ui.js
│ │ │ │ └── swagger-ui.min.js
│ │ │ └── templates
│ │ │ └── .keep
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── apress
│ │ ├── ExampleTest.java
│ │ ├── QuickPollApplicationTests.java
│ │ ├── UserGenerator.java
│ │ ├── it
│ │ └── PollControllerIT.java
│ │ └── unit
│ │ ├── PollControllerTest.java
│ │ └── PollControllerTestMock.java
└── starter
│ └── quick-poll-ch9-starter
│ ├── pom.xml
│ └── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── apress
│ │ │ ├── OAuth2AuthorizationServerConfig.java
│ │ │ ├── OAuth2ResourceServerConfig.java
│ │ │ ├── QuickPollApplication.java
│ │ │ ├── QuickPollMvcConfigAdapter.java
│ │ │ ├── SecurityConfig.java
│ │ │ ├── SwaggerConfig.java
│ │ │ ├── domain
│ │ │ ├── Option.java
│ │ │ ├── Poll.java
│ │ │ ├── User.java
│ │ │ └── Vote.java
│ │ │ ├── dto
│ │ │ ├── OptionCount.java
│ │ │ ├── VoteResult.java
│ │ │ └── error
│ │ │ │ ├── ErrorDetail.java
│ │ │ │ └── ValidationError.java
│ │ │ ├── exception
│ │ │ └── ResourceNotFoundException.java
│ │ │ ├── handler
│ │ │ └── RestExceptionHandler.java
│ │ │ ├── repository
│ │ │ ├── OptionRepository.java
│ │ │ ├── PollRepository.java
│ │ │ ├── UserRepository.java
│ │ │ └── VoteRepository.java
│ │ │ ├── security
│ │ │ └── QuickPollUserDetailsService.java
│ │ │ ├── v1
│ │ │ └── controller
│ │ │ │ ├── ComputeResultController.java
│ │ │ │ ├── PollController.java
│ │ │ │ └── VoteController.java
│ │ │ ├── v2
│ │ │ └── controller
│ │ │ │ ├── ComputeResultController.java
│ │ │ │ ├── PollController.java
│ │ │ │ └── VoteController.java
│ │ │ └── v3
│ │ │ └── controller
│ │ │ ├── ComputeResultController.java
│ │ │ ├── PollController.java
│ │ │ └── VoteController.java
│ └── resources
│ │ ├── application.properties
│ │ ├── import.sql
│ │ ├── messages.properties
│ │ ├── static
│ │ ├── .keep
│ │ └── swagger-ui
│ │ │ ├── css
│ │ │ ├── reset.css
│ │ │ └── screen.css
│ │ │ ├── images
│ │ │ ├── explorer_icons.png
│ │ │ ├── logo_small.png
│ │ │ ├── pet_store_api.png
│ │ │ ├── throbber.gif
│ │ │ └── wordnik_api.png
│ │ │ ├── index.html
│ │ │ ├── lib
│ │ │ ├── backbone-min.js
│ │ │ ├── handlebars-1.0.0.js
│ │ │ ├── highlight.7.3.pack.js
│ │ │ ├── jquery-1.8.0.min.js
│ │ │ ├── jquery.ba-bbq.min.js
│ │ │ ├── jquery.slideto.min.js
│ │ │ ├── jquery.wiggle.min.js
│ │ │ ├── shred.bundle.js
│ │ │ ├── shred
│ │ │ │ └── content.js
│ │ │ ├── swagger-oauth.js
│ │ │ ├── swagger.js
│ │ │ └── underscore-min.js
│ │ │ ├── o2c.html
│ │ │ ├── swagger-ui.js
│ │ │ └── swagger-ui.min.js
│ │ └── templates
│ │ └── .keep
│ └── test
│ └── java
│ └── com
│ └── apress
│ ├── QuickPollApplicationTests.java
│ └── UserGenerator.java
└── README.md
/Chapter1/final/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bava/springrest-book/472b08e2a6b5e52a34f0358b83d9aa0dc56002db/Chapter1/final/.keep
--------------------------------------------------------------------------------
/Chapter1/starter/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bava/springrest-book/472b08e2a6b5e52a34f0358b83d9aa0dc56002db/Chapter1/starter/.keep
--------------------------------------------------------------------------------
/Chapter10/final/quick-poll-ch10-final/src/main/java/com/apress/QuickPollApplication.java:
--------------------------------------------------------------------------------
1 | package com.apress;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class QuickPollApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(QuickPollApplication.class, args);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Chapter10/final/quick-poll-ch10-final/src/main/java/com/apress/domain/Option.java:
--------------------------------------------------------------------------------
1 | package com.apress.domain;
2 |
3 | import javax.persistence.Column;
4 | import javax.persistence.Entity;
5 | import javax.persistence.GeneratedValue;
6 | import javax.persistence.Id;
7 |
8 | @Entity
9 | public class Option {
10 |
11 | @Id
12 | @GeneratedValue
13 | @Column(name="OPTION_ID")
14 | private Long id;
15 |
16 | @Column(name="OPTION_VALUE")
17 | private String value;
18 |
19 | public Long getId() {
20 | return id;
21 | }
22 | public void setId(Long id) {
23 | this.id = id;
24 | }
25 | public String getValue() {
26 | return value;
27 | }
28 | public void setValue(String value) {
29 | this.value = value;
30 | }
31 |
32 | @Override
33 | public String toString() {
34 | return getId() + "," + getValue();
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Chapter10/final/quick-poll-ch10-final/src/main/java/com/apress/domain/Poll.java:
--------------------------------------------------------------------------------
1 | package com.apress.domain;
2 |
3 | import java.util.Set;
4 |
5 | import javax.persistence.CascadeType;
6 | import javax.persistence.Column;
7 | import javax.persistence.Entity;
8 | import javax.persistence.GeneratedValue;
9 | import javax.persistence.Id;
10 | import javax.persistence.JoinColumn;
11 | import javax.persistence.OneToMany;
12 | import javax.persistence.OrderBy;
13 |
14 | import org.springframework.hateoas.ResourceSupport;
15 |
16 | @Entity
17 | public class Poll extends ResourceSupport {
18 |
19 | @Id
20 | @GeneratedValue
21 | @Column(name="POLL_ID")
22 | private Long id;
23 |
24 | @Column(name="QUESTION")
25 | private String question;
26 |
27 | @OneToMany(cascade=CascadeType.ALL)
28 | @JoinColumn(name="POLL_ID")
29 | @OrderBy
30 | private Set