├── Chapter01
├── desktop.ini
└── spring-petclinic-master
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .gitignore
│ ├── .mvn
│ ├── desktop.ini
│ └── wrapper
│ │ ├── desktop.ini
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── .springBeans
│ ├── .travis.yml
│ ├── Instructions.md
│ ├── bower.json
│ ├── desktop.ini
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ ├── sonar-project.properties
│ └── src
│ ├── desktop.ini
│ ├── main
│ ├── desktop.ini
│ ├── java
│ │ ├── desktop.ini
│ │ └── org
│ │ │ ├── desktop.ini
│ │ │ └── springframework
│ │ │ ├── desktop.ini
│ │ │ └── samples
│ │ │ ├── desktop.ini
│ │ │ └── petclinic
│ │ │ ├── PetclinicInitializer.java
│ │ │ ├── desktop.ini
│ │ │ ├── model
│ │ │ ├── BaseEntity.java
│ │ │ ├── NamedEntity.java
│ │ │ ├── Owner.java
│ │ │ ├── Person.java
│ │ │ ├── Pet.java
│ │ │ ├── PetType.java
│ │ │ ├── Specialty.java
│ │ │ ├── Vet.java
│ │ │ ├── Vets.java
│ │ │ ├── Visit.java
│ │ │ ├── desktop.ini
│ │ │ └── package-info.java
│ │ │ ├── repository
│ │ │ ├── OwnerRepository.java
│ │ │ ├── PetRepository.java
│ │ │ ├── VetRepository.java
│ │ │ ├── VisitRepository.java
│ │ │ ├── desktop.ini
│ │ │ ├── jdbc
│ │ │ │ ├── JdbcOwnerRepositoryImpl.java
│ │ │ │ ├── JdbcPet.java
│ │ │ │ ├── JdbcPetRepositoryImpl.java
│ │ │ │ ├── JdbcPetRowMapper.java
│ │ │ │ ├── JdbcPetVisitExtractor.java
│ │ │ │ ├── JdbcVetRepositoryImpl.java
│ │ │ │ ├── JdbcVisitRepositoryImpl.java
│ │ │ │ ├── JdbcVisitRowMapper.java
│ │ │ │ ├── desktop.ini
│ │ │ │ └── package-info.java
│ │ │ ├── jpa
│ │ │ │ ├── JpaOwnerRepositoryImpl.java
│ │ │ │ ├── JpaPetRepositoryImpl.java
│ │ │ │ ├── JpaVetRepositoryImpl.java
│ │ │ │ ├── JpaVisitRepositoryImpl.java
│ │ │ │ ├── desktop.ini
│ │ │ │ └── package-info.java
│ │ │ └── springdatajpa
│ │ │ │ ├── SpringDataOwnerRepository.java
│ │ │ │ ├── SpringDataPetRepository.java
│ │ │ │ ├── SpringDataVetRepository.java
│ │ │ │ ├── SpringDataVisitRepository.java
│ │ │ │ └── desktop.ini
│ │ │ ├── service
│ │ │ ├── ClinicService.java
│ │ │ ├── ClinicServiceImpl.java
│ │ │ └── desktop.ini
│ │ │ ├── util
│ │ │ ├── CallMonitoringAspect.java
│ │ │ ├── EntityUtils.java
│ │ │ └── desktop.ini
│ │ │ └── web
│ │ │ ├── CrashController.java
│ │ │ ├── OwnerController.java
│ │ │ ├── PetController.java
│ │ │ ├── PetTypeFormatter.java
│ │ │ ├── PetValidator.java
│ │ │ ├── VetController.java
│ │ │ ├── VisitController.java
│ │ │ ├── desktop.ini
│ │ │ └── package-info.java
│ ├── resources
│ │ ├── cache
│ │ │ ├── desktop.ini
│ │ │ ├── ehcache.xml
│ │ │ └── ehcache.xsd
│ │ ├── db
│ │ │ ├── desktop.ini
│ │ │ ├── hsqldb
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── initDB.sql
│ │ │ │ └── populateDB.sql
│ │ │ └── mysql
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── initDB.sql
│ │ │ │ ├── petclinic_db_setup_mysql.txt
│ │ │ │ └── populateDB.sql
│ │ ├── desktop.ini
│ │ ├── logback.xml
│ │ ├── messages
│ │ │ ├── desktop.ini
│ │ │ ├── messages.properties
│ │ │ ├── messages_de.properties
│ │ │ └── messages_en.properties
│ │ └── spring
│ │ │ ├── business-config.xml
│ │ │ ├── data-access.properties
│ │ │ ├── datasource-config.xml
│ │ │ ├── desktop.ini
│ │ │ ├── mvc-core-config.xml
│ │ │ ├── mvc-view-config.xml
│ │ │ └── tools-config.xml
│ └── webapp
│ │ ├── WEB-INF
│ │ ├── desktop.ini
│ │ ├── jetty-web.xml
│ │ ├── jsp
│ │ │ ├── desktop.ini
│ │ │ ├── exception.jsp
│ │ │ ├── owners
│ │ │ │ ├── createOrUpdateOwnerForm.jsp
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── findOwners.jsp
│ │ │ │ ├── ownerDetails.jsp
│ │ │ │ └── ownersList.jsp
│ │ │ ├── pets
│ │ │ │ ├── createOrUpdatePetForm.jsp
│ │ │ │ ├── createOrUpdateVisitForm.jsp
│ │ │ │ └── desktop.ini
│ │ │ ├── vets
│ │ │ │ ├── desktop.ini
│ │ │ │ └── vetList.jsp
│ │ │ └── welcome.jsp
│ │ ├── no-spring-config-files-there.txt
│ │ └── tags
│ │ │ ├── bodyHeader.tag
│ │ │ ├── desktop.ini
│ │ │ ├── footer.tag
│ │ │ ├── htmlHeader.tag
│ │ │ ├── inputField.tag
│ │ │ ├── layout.tag
│ │ │ ├── menu.tag
│ │ │ ├── menuItem.tag
│ │ │ ├── pivotal.tag
│ │ │ └── selectField.tag
│ │ ├── desktop.ini
│ │ ├── resources
│ │ ├── css
│ │ │ ├── desktop.ini
│ │ │ └── petclinic.css
│ │ ├── desktop.ini
│ │ ├── fonts
│ │ │ ├── desktop.ini
│ │ │ ├── montserrat-webfont.eot
│ │ │ ├── montserrat-webfont.svg
│ │ │ ├── montserrat-webfont.ttf
│ │ │ ├── montserrat-webfont.woff
│ │ │ ├── varela_round-webfont.eot
│ │ │ ├── varela_round-webfont.svg
│ │ │ ├── varela_round-webfont.ttf
│ │ │ └── varela_round-webfont.woff
│ │ ├── images
│ │ │ ├── desktop.ini
│ │ │ ├── favicon.png
│ │ │ ├── pets.png
│ │ │ ├── platform-bg.png
│ │ │ ├── spring-logo-dataflow-mobile.png
│ │ │ ├── spring-logo-dataflow.png
│ │ │ └── spring-pivotal-logo.png
│ │ └── less
│ │ │ ├── desktop.ini
│ │ │ ├── header.less
│ │ │ ├── petclinic.less
│ │ │ ├── responsive.less
│ │ │ └── typography.less
│ │ └── vendors
│ │ ├── bootstrap
│ │ ├── desktop.ini
│ │ ├── dist
│ │ │ ├── desktop.ini
│ │ │ ├── fonts
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ └── js
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── desktop.ini
│ │ │ │ └── npm.js
│ │ └── less
│ │ │ ├── .csscomb.json
│ │ │ ├── .csslintrc
│ │ │ ├── alerts.less
│ │ │ ├── badges.less
│ │ │ ├── bootstrap.less
│ │ │ ├── breadcrumbs.less
│ │ │ ├── button-groups.less
│ │ │ ├── buttons.less
│ │ │ ├── carousel.less
│ │ │ ├── close.less
│ │ │ ├── code.less
│ │ │ ├── component-animations.less
│ │ │ ├── desktop.ini
│ │ │ ├── dropdowns.less
│ │ │ ├── forms.less
│ │ │ ├── glyphicons.less
│ │ │ ├── grid.less
│ │ │ ├── input-groups.less
│ │ │ ├── jumbotron.less
│ │ │ ├── labels.less
│ │ │ ├── list-group.less
│ │ │ ├── media.less
│ │ │ ├── mixins.less
│ │ │ ├── mixins
│ │ │ ├── alerts.less
│ │ │ ├── background-variant.less
│ │ │ ├── border-radius.less
│ │ │ ├── buttons.less
│ │ │ ├── center-block.less
│ │ │ ├── clearfix.less
│ │ │ ├── desktop.ini
│ │ │ ├── forms.less
│ │ │ ├── gradients.less
│ │ │ ├── grid-framework.less
│ │ │ ├── grid.less
│ │ │ ├── hide-text.less
│ │ │ ├── image.less
│ │ │ ├── labels.less
│ │ │ ├── list-group.less
│ │ │ ├── nav-divider.less
│ │ │ ├── nav-vertical-align.less
│ │ │ ├── opacity.less
│ │ │ ├── pagination.less
│ │ │ ├── panels.less
│ │ │ ├── progress-bar.less
│ │ │ ├── reset-filter.less
│ │ │ ├── reset-text.less
│ │ │ ├── resize.less
│ │ │ ├── responsive-visibility.less
│ │ │ ├── size.less
│ │ │ ├── tab-focus.less
│ │ │ ├── table-row.less
│ │ │ ├── text-emphasis.less
│ │ │ ├── text-overflow.less
│ │ │ └── vendor-prefixes.less
│ │ │ ├── modals.less
│ │ │ ├── navbar.less
│ │ │ ├── navs.less
│ │ │ ├── normalize.less
│ │ │ ├── pager.less
│ │ │ ├── pagination.less
│ │ │ ├── panels.less
│ │ │ ├── popovers.less
│ │ │ ├── print.less
│ │ │ ├── progress-bars.less
│ │ │ ├── responsive-embed.less
│ │ │ ├── responsive-utilities.less
│ │ │ ├── scaffolding.less
│ │ │ ├── tables.less
│ │ │ ├── theme.less
│ │ │ ├── thumbnails.less
│ │ │ ├── tooltip.less
│ │ │ ├── type.less
│ │ │ ├── utilities.less
│ │ │ ├── variables.less
│ │ │ └── wells.less
│ │ ├── desktop.ini
│ │ ├── jquery-ui
│ │ ├── desktop.ini
│ │ ├── themes
│ │ │ ├── base
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── images
│ │ │ │ │ ├── animated-overlay.gif
│ │ │ │ │ ├── desktop.ini
│ │ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ │ │ │ ├── ui-icons_222222_256x240.png
│ │ │ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ │ │ ├── ui-icons_454545_256x240.png
│ │ │ │ │ ├── ui-icons_888888_256x240.png
│ │ │ │ │ └── ui-icons_cd0a0a_256x240.png
│ │ │ │ ├── jquery-ui.css
│ │ │ │ ├── jquery.ui.accordion.css
│ │ │ │ ├── jquery.ui.all.css
│ │ │ │ ├── jquery.ui.autocomplete.css
│ │ │ │ ├── jquery.ui.base.css
│ │ │ │ ├── jquery.ui.button.css
│ │ │ │ ├── jquery.ui.core.css
│ │ │ │ ├── jquery.ui.datepicker.css
│ │ │ │ ├── jquery.ui.dialog.css
│ │ │ │ ├── jquery.ui.menu.css
│ │ │ │ ├── jquery.ui.progressbar.css
│ │ │ │ ├── jquery.ui.resizable.css
│ │ │ │ ├── jquery.ui.selectable.css
│ │ │ │ ├── jquery.ui.slider.css
│ │ │ │ ├── jquery.ui.spinner.css
│ │ │ │ ├── jquery.ui.tabs.css
│ │ │ │ ├── jquery.ui.theme.css
│ │ │ │ ├── jquery.ui.tooltip.css
│ │ │ │ └── minified
│ │ │ │ │ ├── desktop.ini
│ │ │ │ │ ├── images
│ │ │ │ │ ├── animated-overlay.gif
│ │ │ │ │ ├── desktop.ini
│ │ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ │ │ │ ├── ui-icons_222222_256x240.png
│ │ │ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ │ │ ├── ui-icons_454545_256x240.png
│ │ │ │ │ ├── ui-icons_888888_256x240.png
│ │ │ │ │ └── ui-icons_cd0a0a_256x240.png
│ │ │ │ │ ├── jquery-ui.min.css
│ │ │ │ │ ├── jquery.ui.accordion.min.css
│ │ │ │ │ ├── jquery.ui.autocomplete.min.css
│ │ │ │ │ ├── jquery.ui.button.min.css
│ │ │ │ │ ├── jquery.ui.core.min.css
│ │ │ │ │ ├── jquery.ui.datepicker.min.css
│ │ │ │ │ ├── jquery.ui.dialog.min.css
│ │ │ │ │ ├── jquery.ui.menu.min.css
│ │ │ │ │ ├── jquery.ui.progressbar.min.css
│ │ │ │ │ ├── jquery.ui.resizable.min.css
│ │ │ │ │ ├── jquery.ui.selectable.min.css
│ │ │ │ │ ├── jquery.ui.slider.min.css
│ │ │ │ │ ├── jquery.ui.spinner.min.css
│ │ │ │ │ ├── jquery.ui.tabs.min.css
│ │ │ │ │ ├── jquery.ui.theme.min.css
│ │ │ │ │ └── jquery.ui.tooltip.min.css
│ │ │ └── desktop.ini
│ │ └── ui
│ │ │ ├── .jshintrc
│ │ │ ├── desktop.ini
│ │ │ ├── i18n
│ │ │ ├── desktop.ini
│ │ │ ├── jquery-ui-i18n.js
│ │ │ ├── jquery.ui.datepicker-af.js
│ │ │ ├── jquery.ui.datepicker-ar-DZ.js
│ │ │ ├── jquery.ui.datepicker-ar.js
│ │ │ ├── jquery.ui.datepicker-az.js
│ │ │ ├── jquery.ui.datepicker-be.js
│ │ │ ├── jquery.ui.datepicker-bg.js
│ │ │ ├── jquery.ui.datepicker-bs.js
│ │ │ ├── jquery.ui.datepicker-ca.js
│ │ │ ├── jquery.ui.datepicker-cs.js
│ │ │ ├── jquery.ui.datepicker-cy-GB.js
│ │ │ ├── jquery.ui.datepicker-da.js
│ │ │ ├── jquery.ui.datepicker-de.js
│ │ │ ├── jquery.ui.datepicker-el.js
│ │ │ ├── jquery.ui.datepicker-en-AU.js
│ │ │ ├── jquery.ui.datepicker-en-GB.js
│ │ │ ├── jquery.ui.datepicker-en-NZ.js
│ │ │ ├── jquery.ui.datepicker-eo.js
│ │ │ ├── jquery.ui.datepicker-es.js
│ │ │ ├── jquery.ui.datepicker-et.js
│ │ │ ├── jquery.ui.datepicker-eu.js
│ │ │ ├── jquery.ui.datepicker-fa.js
│ │ │ ├── jquery.ui.datepicker-fi.js
│ │ │ ├── jquery.ui.datepicker-fo.js
│ │ │ ├── jquery.ui.datepicker-fr-CA.js
│ │ │ ├── jquery.ui.datepicker-fr-CH.js
│ │ │ ├── jquery.ui.datepicker-fr.js
│ │ │ ├── jquery.ui.datepicker-gl.js
│ │ │ ├── jquery.ui.datepicker-he.js
│ │ │ ├── jquery.ui.datepicker-hi.js
│ │ │ ├── jquery.ui.datepicker-hr.js
│ │ │ ├── jquery.ui.datepicker-hu.js
│ │ │ ├── jquery.ui.datepicker-hy.js
│ │ │ ├── jquery.ui.datepicker-id.js
│ │ │ ├── jquery.ui.datepicker-is.js
│ │ │ ├── jquery.ui.datepicker-it.js
│ │ │ ├── jquery.ui.datepicker-ja.js
│ │ │ ├── jquery.ui.datepicker-ka.js
│ │ │ ├── jquery.ui.datepicker-kk.js
│ │ │ ├── jquery.ui.datepicker-km.js
│ │ │ ├── jquery.ui.datepicker-ko.js
│ │ │ ├── jquery.ui.datepicker-ky.js
│ │ │ ├── jquery.ui.datepicker-lb.js
│ │ │ ├── jquery.ui.datepicker-lt.js
│ │ │ ├── jquery.ui.datepicker-lv.js
│ │ │ ├── jquery.ui.datepicker-mk.js
│ │ │ ├── jquery.ui.datepicker-ml.js
│ │ │ ├── jquery.ui.datepicker-ms.js
│ │ │ ├── jquery.ui.datepicker-nb.js
│ │ │ ├── jquery.ui.datepicker-nl-BE.js
│ │ │ ├── jquery.ui.datepicker-nl.js
│ │ │ ├── jquery.ui.datepicker-nn.js
│ │ │ ├── jquery.ui.datepicker-no.js
│ │ │ ├── jquery.ui.datepicker-pl.js
│ │ │ ├── jquery.ui.datepicker-pt-BR.js
│ │ │ ├── jquery.ui.datepicker-pt.js
│ │ │ ├── jquery.ui.datepicker-rm.js
│ │ │ ├── jquery.ui.datepicker-ro.js
│ │ │ ├── jquery.ui.datepicker-ru.js
│ │ │ ├── jquery.ui.datepicker-sk.js
│ │ │ ├── jquery.ui.datepicker-sl.js
│ │ │ ├── jquery.ui.datepicker-sq.js
│ │ │ ├── jquery.ui.datepicker-sr-SR.js
│ │ │ ├── jquery.ui.datepicker-sr.js
│ │ │ ├── jquery.ui.datepicker-sv.js
│ │ │ ├── jquery.ui.datepicker-ta.js
│ │ │ ├── jquery.ui.datepicker-th.js
│ │ │ ├── jquery.ui.datepicker-tj.js
│ │ │ ├── jquery.ui.datepicker-tr.js
│ │ │ ├── jquery.ui.datepicker-uk.js
│ │ │ ├── jquery.ui.datepicker-vi.js
│ │ │ ├── jquery.ui.datepicker-zh-CN.js
│ │ │ ├── jquery.ui.datepicker-zh-HK.js
│ │ │ └── jquery.ui.datepicker-zh-TW.js
│ │ │ ├── jquery-ui.custom.js
│ │ │ ├── jquery-ui.js
│ │ │ ├── jquery.ui.accordion.js
│ │ │ ├── jquery.ui.autocomplete.js
│ │ │ ├── jquery.ui.button.js
│ │ │ ├── jquery.ui.core.js
│ │ │ ├── jquery.ui.datepicker.js
│ │ │ ├── jquery.ui.dialog.js
│ │ │ ├── jquery.ui.draggable.js
│ │ │ ├── jquery.ui.droppable.js
│ │ │ ├── jquery.ui.effect-blind.js
│ │ │ ├── jquery.ui.effect-bounce.js
│ │ │ ├── jquery.ui.effect-clip.js
│ │ │ ├── jquery.ui.effect-drop.js
│ │ │ ├── jquery.ui.effect-explode.js
│ │ │ ├── jquery.ui.effect-fade.js
│ │ │ ├── jquery.ui.effect-fold.js
│ │ │ ├── jquery.ui.effect-highlight.js
│ │ │ ├── jquery.ui.effect-pulsate.js
│ │ │ ├── jquery.ui.effect-scale.js
│ │ │ ├── jquery.ui.effect-shake.js
│ │ │ ├── jquery.ui.effect-slide.js
│ │ │ ├── jquery.ui.effect-transfer.js
│ │ │ ├── jquery.ui.effect.js
│ │ │ ├── jquery.ui.menu.js
│ │ │ ├── jquery.ui.mouse.js
│ │ │ ├── jquery.ui.position.js
│ │ │ ├── jquery.ui.progressbar.js
│ │ │ ├── jquery.ui.resizable.js
│ │ │ ├── jquery.ui.selectable.js
│ │ │ ├── jquery.ui.slider.js
│ │ │ ├── jquery.ui.sortable.js
│ │ │ ├── jquery.ui.spinner.js
│ │ │ ├── jquery.ui.tabs.js
│ │ │ ├── jquery.ui.tooltip.js
│ │ │ ├── jquery.ui.widget.js
│ │ │ └── minified
│ │ │ ├── desktop.ini
│ │ │ ├── i18n
│ │ │ ├── desktop.ini
│ │ │ ├── jquery-ui-i18n.min.js
│ │ │ ├── jquery.ui.datepicker-af.min.js
│ │ │ ├── jquery.ui.datepicker-ar-DZ.min.js
│ │ │ ├── jquery.ui.datepicker-ar.min.js
│ │ │ ├── jquery.ui.datepicker-az.min.js
│ │ │ ├── jquery.ui.datepicker-be.min.js
│ │ │ ├── jquery.ui.datepicker-bg.min.js
│ │ │ ├── jquery.ui.datepicker-bs.min.js
│ │ │ ├── jquery.ui.datepicker-ca.min.js
│ │ │ ├── jquery.ui.datepicker-cs.min.js
│ │ │ ├── jquery.ui.datepicker-cy-GB.min.js
│ │ │ ├── jquery.ui.datepicker-da.min.js
│ │ │ ├── jquery.ui.datepicker-de.min.js
│ │ │ ├── jquery.ui.datepicker-el.min.js
│ │ │ ├── jquery.ui.datepicker-en-AU.min.js
│ │ │ ├── jquery.ui.datepicker-en-GB.min.js
│ │ │ ├── jquery.ui.datepicker-en-NZ.min.js
│ │ │ ├── jquery.ui.datepicker-eo.min.js
│ │ │ ├── jquery.ui.datepicker-es.min.js
│ │ │ ├── jquery.ui.datepicker-et.min.js
│ │ │ ├── jquery.ui.datepicker-eu.min.js
│ │ │ ├── jquery.ui.datepicker-fa.min.js
│ │ │ ├── jquery.ui.datepicker-fi.min.js
│ │ │ ├── jquery.ui.datepicker-fo.min.js
│ │ │ ├── jquery.ui.datepicker-fr-CA.min.js
│ │ │ ├── jquery.ui.datepicker-fr-CH.min.js
│ │ │ ├── jquery.ui.datepicker-fr.min.js
│ │ │ ├── jquery.ui.datepicker-gl.min.js
│ │ │ ├── jquery.ui.datepicker-he.min.js
│ │ │ ├── jquery.ui.datepicker-hi.min.js
│ │ │ ├── jquery.ui.datepicker-hr.min.js
│ │ │ ├── jquery.ui.datepicker-hu.min.js
│ │ │ ├── jquery.ui.datepicker-hy.min.js
│ │ │ ├── jquery.ui.datepicker-id.min.js
│ │ │ ├── jquery.ui.datepicker-is.min.js
│ │ │ ├── jquery.ui.datepicker-it.min.js
│ │ │ ├── jquery.ui.datepicker-ja.min.js
│ │ │ ├── jquery.ui.datepicker-ka.min.js
│ │ │ ├── jquery.ui.datepicker-kk.min.js
│ │ │ ├── jquery.ui.datepicker-km.min.js
│ │ │ ├── jquery.ui.datepicker-ko.min.js
│ │ │ ├── jquery.ui.datepicker-ky.min.js
│ │ │ ├── jquery.ui.datepicker-lb.min.js
│ │ │ ├── jquery.ui.datepicker-lt.min.js
│ │ │ ├── jquery.ui.datepicker-lv.min.js
│ │ │ ├── jquery.ui.datepicker-mk.min.js
│ │ │ ├── jquery.ui.datepicker-ml.min.js
│ │ │ ├── jquery.ui.datepicker-ms.min.js
│ │ │ ├── jquery.ui.datepicker-nb.min.js
│ │ │ ├── jquery.ui.datepicker-nl-BE.min.js
│ │ │ ├── jquery.ui.datepicker-nl.min.js
│ │ │ ├── jquery.ui.datepicker-nn.min.js
│ │ │ ├── jquery.ui.datepicker-no.min.js
│ │ │ ├── jquery.ui.datepicker-pl.min.js
│ │ │ ├── jquery.ui.datepicker-pt-BR.min.js
│ │ │ ├── jquery.ui.datepicker-pt.min.js
│ │ │ ├── jquery.ui.datepicker-rm.min.js
│ │ │ ├── jquery.ui.datepicker-ro.min.js
│ │ │ ├── jquery.ui.datepicker-ru.min.js
│ │ │ ├── jquery.ui.datepicker-sk.min.js
│ │ │ ├── jquery.ui.datepicker-sl.min.js
│ │ │ ├── jquery.ui.datepicker-sq.min.js
│ │ │ ├── jquery.ui.datepicker-sr-SR.min.js
│ │ │ ├── jquery.ui.datepicker-sr.min.js
│ │ │ ├── jquery.ui.datepicker-sv.min.js
│ │ │ ├── jquery.ui.datepicker-ta.min.js
│ │ │ ├── jquery.ui.datepicker-th.min.js
│ │ │ ├── jquery.ui.datepicker-tj.min.js
│ │ │ ├── jquery.ui.datepicker-tr.min.js
│ │ │ ├── jquery.ui.datepicker-uk.min.js
│ │ │ ├── jquery.ui.datepicker-vi.min.js
│ │ │ ├── jquery.ui.datepicker-zh-CN.min.js
│ │ │ ├── jquery.ui.datepicker-zh-HK.min.js
│ │ │ └── jquery.ui.datepicker-zh-TW.min.js
│ │ │ ├── jquery-ui.custom.min.js
│ │ │ ├── jquery-ui.min.js
│ │ │ ├── jquery.ui.accordion.min.js
│ │ │ ├── jquery.ui.autocomplete.min.js
│ │ │ ├── jquery.ui.button.min.js
│ │ │ ├── jquery.ui.core.min.js
│ │ │ ├── jquery.ui.datepicker.min.js
│ │ │ ├── jquery.ui.dialog.min.js
│ │ │ ├── jquery.ui.draggable.min.js
│ │ │ ├── jquery.ui.droppable.min.js
│ │ │ ├── jquery.ui.effect-blind.min.js
│ │ │ ├── jquery.ui.effect-bounce.min.js
│ │ │ ├── jquery.ui.effect-clip.min.js
│ │ │ ├── jquery.ui.effect-drop.min.js
│ │ │ ├── jquery.ui.effect-explode.min.js
│ │ │ ├── jquery.ui.effect-fade.min.js
│ │ │ ├── jquery.ui.effect-fold.min.js
│ │ │ ├── jquery.ui.effect-highlight.min.js
│ │ │ ├── jquery.ui.effect-pulsate.min.js
│ │ │ ├── jquery.ui.effect-scale.min.js
│ │ │ ├── jquery.ui.effect-shake.min.js
│ │ │ ├── jquery.ui.effect-slide.min.js
│ │ │ ├── jquery.ui.effect-transfer.min.js
│ │ │ ├── jquery.ui.effect.min.js
│ │ │ ├── jquery.ui.menu.min.js
│ │ │ ├── jquery.ui.mouse.min.js
│ │ │ ├── jquery.ui.position.min.js
│ │ │ ├── jquery.ui.progressbar.min.js
│ │ │ ├── jquery.ui.resizable.min.js
│ │ │ ├── jquery.ui.selectable.min.js
│ │ │ ├── jquery.ui.slider.min.js
│ │ │ ├── jquery.ui.sortable.min.js
│ │ │ ├── jquery.ui.spinner.min.js
│ │ │ ├── jquery.ui.tabs.min.js
│ │ │ ├── jquery.ui.tooltip.min.js
│ │ │ └── jquery.ui.widget.min.js
│ │ └── jquery
│ │ ├── desktop.ini
│ │ ├── jquery.js
│ │ ├── jquery.min.js
│ │ └── jquery.min.map
│ └── test
│ ├── desktop.ini
│ ├── java
│ ├── desktop.ini
│ └── org
│ │ ├── desktop.ini
│ │ └── springframework
│ │ ├── desktop.ini
│ │ └── samples
│ │ ├── desktop.ini
│ │ └── petclinic
│ │ ├── desktop.ini
│ │ ├── model
│ │ ├── ValidatorTests.java
│ │ └── desktop.ini
│ │ ├── service
│ │ ├── AbstractClinicServiceTests.java
│ │ ├── ClinicServiceJdbcTests.java
│ │ ├── ClinicServiceJpaTests.java
│ │ ├── ClinicServiceSpringDataJpaTests.java
│ │ └── desktop.ini
│ │ └── web
│ │ ├── CrashControllerTests.java
│ │ ├── OwnerControllerTests.java
│ │ ├── PetControllerTests.java
│ │ ├── PetTypeFormatterTests.java
│ │ ├── VetControllerTests.java
│ │ ├── VisitControllerTests.java
│ │ └── desktop.ini
│ ├── jmeter
│ ├── desktop.ini
│ └── petclinic_test_plan.jmx
│ └── resources
│ ├── desktop.ini
│ └── spring
│ ├── desktop.ini
│ └── mvc-test-config.xml
├── Chapter02
├── No Code.txt
└── desktop.ini
├── Chapter03
├── desktop.ini
└── spring-petclinic-master
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .gitignore
│ ├── .mvn
│ ├── desktop.ini
│ └── wrapper
│ │ ├── desktop.ini
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── .springBeans
│ ├── .travis.yml
│ ├── Instructions.md
│ ├── bower.json
│ ├── desktop.ini
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ ├── sonar-project.properties
│ └── src
│ ├── desktop.ini
│ ├── main
│ ├── desktop.ini
│ ├── java
│ │ ├── desktop.ini
│ │ ├── org
│ │ │ ├── desktop.ini
│ │ │ └── springframework
│ │ │ │ ├── desktop.ini
│ │ │ │ └── samples
│ │ │ │ ├── desktop.ini
│ │ │ │ └── petclinic
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── model
│ │ │ │ ├── BaseEntity.java
│ │ │ │ ├── NamedEntity.java
│ │ │ │ ├── Owner.java
│ │ │ │ ├── Person.java
│ │ │ │ ├── Pet.java
│ │ │ │ ├── PetType.java
│ │ │ │ ├── Specialty.java
│ │ │ │ ├── Vet.java
│ │ │ │ ├── Vets.java
│ │ │ │ ├── Visit.java
│ │ │ │ ├── desktop.ini
│ │ │ │ └── package-info.java
│ │ │ │ ├── repository
│ │ │ │ ├── OwnerRepository.java
│ │ │ │ ├── PetRepository.java
│ │ │ │ ├── VetRepository.java
│ │ │ │ ├── VisitRepository.java
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── jdbc
│ │ │ │ │ ├── JdbcOwnerRepositoryImpl.java
│ │ │ │ │ ├── JdbcPet.java
│ │ │ │ │ ├── JdbcPetRepositoryImpl.java
│ │ │ │ │ ├── JdbcPetRowMapper.java
│ │ │ │ │ ├── JdbcPetVisitExtractor.java
│ │ │ │ │ ├── JdbcVetRepositoryImpl.java
│ │ │ │ │ ├── JdbcVisitRepositoryImpl.java
│ │ │ │ │ ├── JdbcVisitRowMapper.java
│ │ │ │ │ ├── desktop.ini
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── jpa
│ │ │ │ │ ├── JpaOwnerRepositoryImpl.java
│ │ │ │ │ ├── JpaPetRepositoryImpl.java
│ │ │ │ │ ├── JpaVetRepositoryImpl.java
│ │ │ │ │ ├── JpaVisitRepositoryImpl.java
│ │ │ │ │ ├── desktop.ini
│ │ │ │ │ └── package-info.java
│ │ │ │ └── springdatajpa
│ │ │ │ │ ├── SpringDataOwnerRepository.java
│ │ │ │ │ ├── SpringDataPetRepository.java
│ │ │ │ │ ├── SpringDataVetRepository.java
│ │ │ │ │ ├── SpringDataVisitRepository.java
│ │ │ │ │ └── desktop.ini
│ │ │ │ ├── service
│ │ │ │ ├── ClinicService.java
│ │ │ │ ├── ClinicServiceImpl.java
│ │ │ │ └── desktop.ini
│ │ │ │ ├── util
│ │ │ │ ├── CallMonitoringAspect.java
│ │ │ │ ├── EntityUtils.java
│ │ │ │ └── desktop.ini
│ │ │ │ └── web
│ │ │ │ ├── CrashController.java
│ │ │ │ ├── OwnerController.java
│ │ │ │ ├── PetController.java
│ │ │ │ ├── PetTypeFormatter.java
│ │ │ │ ├── PetValidator.java
│ │ │ │ ├── VetController.java
│ │ │ │ ├── VisitController.java
│ │ │ │ ├── desktop.ini
│ │ │ │ └── package-info.java
│ │ ├── overview.html
│ │ └── test.html
│ ├── resources
│ │ ├── cache
│ │ │ ├── desktop.ini
│ │ │ ├── ehcache.xml
│ │ │ └── ehcache.xsd
│ │ ├── dandelion
│ │ │ ├── datatables
│ │ │ │ ├── datatables.properties
│ │ │ │ └── desktop.ini
│ │ │ └── desktop.ini
│ │ ├── db
│ │ │ ├── desktop.ini
│ │ │ ├── hsqldb
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── initDB.sql
│ │ │ │ └── populateDB.sql
│ │ │ └── mysql
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── initDB.sql
│ │ │ │ ├── petclinic_db_setup_mysql.txt
│ │ │ │ └── populateDB.sql
│ │ ├── desktop.ini
│ │ ├── logback.xml
│ │ ├── messages
│ │ │ ├── desktop.ini
│ │ │ ├── messages.properties
│ │ │ ├── messages_de.properties
│ │ │ └── messages_en.properties
│ │ └── spring
│ │ │ ├── business-config.xml
│ │ │ ├── data-access.properties
│ │ │ ├── datasource-config.xml
│ │ │ ├── desktop.ini
│ │ │ ├── mvc-core-config.xml
│ │ │ ├── mvc-view-config.xml
│ │ │ └── tools-config.xml
│ └── webapp
│ │ ├── WEB-INF
│ │ ├── desktop.ini
│ │ ├── jsp
│ │ │ ├── desktop.ini
│ │ │ ├── exception.jsp
│ │ │ ├── fragments
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── footer.jsp
│ │ │ │ └── htmlHeader.jsp
│ │ │ ├── owners
│ │ │ │ ├── createOrUpdateOwnerForm.jsp
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── findOwners.jsp
│ │ │ │ ├── ownerDetails.jsp
│ │ │ │ └── ownersList.jsp
│ │ │ ├── pets
│ │ │ │ ├── createOrUpdatePetForm.jsp
│ │ │ │ ├── createOrUpdateVisitForm.jsp
│ │ │ │ └── desktop.ini
│ │ │ ├── vets
│ │ │ │ ├── desktop.ini
│ │ │ │ └── vetList.jsp
│ │ │ └── welcome.jsp
│ │ ├── no-spring-config-files-there.txt
│ │ ├── tags
│ │ │ ├── bodyHeader.tag
│ │ │ ├── desktop.ini
│ │ │ ├── inputField.tag
│ │ │ ├── menu.tag
│ │ │ ├── pivotal.tag
│ │ │ └── selectField.tag
│ │ └── web.xml
│ │ ├── desktop.ini
│ │ ├── resources
│ │ ├── css
│ │ │ ├── desktop.ini
│ │ │ └── petclinic.css
│ │ ├── desktop.ini
│ │ ├── fonts
│ │ │ ├── desktop.ini
│ │ │ ├── montserrat-webfont.eot
│ │ │ ├── montserrat-webfont.svg
│ │ │ ├── montserrat-webfont.ttf
│ │ │ ├── montserrat-webfont.woff
│ │ │ ├── varela_round-webfont.eot
│ │ │ ├── varela_round-webfont.svg
│ │ │ ├── varela_round-webfont.ttf
│ │ │ └── varela_round-webfont.woff
│ │ ├── images
│ │ │ ├── desktop.ini
│ │ │ ├── favicon.png
│ │ │ ├── pets.png
│ │ │ ├── platform-bg.png
│ │ │ ├── spring-logo-dataflow-mobile.png
│ │ │ ├── spring-logo-dataflow.png
│ │ │ └── spring-pivotal-logo.png
│ │ └── less
│ │ │ ├── desktop.ini
│ │ │ ├── header.less
│ │ │ ├── petclinic.less
│ │ │ ├── responsive.less
│ │ │ └── typography.less
│ │ └── vendors
│ │ ├── bootstrap
│ │ ├── desktop.ini
│ │ ├── dist
│ │ │ ├── desktop.ini
│ │ │ ├── fonts
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ └── js
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── desktop.ini
│ │ │ │ └── npm.js
│ │ └── less
│ │ │ ├── .csscomb.json
│ │ │ ├── .csslintrc
│ │ │ ├── alerts.less
│ │ │ ├── badges.less
│ │ │ ├── bootstrap.less
│ │ │ ├── breadcrumbs.less
│ │ │ ├── button-groups.less
│ │ │ ├── buttons.less
│ │ │ ├── carousel.less
│ │ │ ├── close.less
│ │ │ ├── code.less
│ │ │ ├── component-animations.less
│ │ │ ├── desktop.ini
│ │ │ ├── dropdowns.less
│ │ │ ├── forms.less
│ │ │ ├── glyphicons.less
│ │ │ ├── grid.less
│ │ │ ├── input-groups.less
│ │ │ ├── jumbotron.less
│ │ │ ├── labels.less
│ │ │ ├── list-group.less
│ │ │ ├── media.less
│ │ │ ├── mixins.less
│ │ │ ├── mixins
│ │ │ ├── alerts.less
│ │ │ ├── background-variant.less
│ │ │ ├── border-radius.less
│ │ │ ├── buttons.less
│ │ │ ├── center-block.less
│ │ │ ├── clearfix.less
│ │ │ ├── desktop.ini
│ │ │ ├── forms.less
│ │ │ ├── gradients.less
│ │ │ ├── grid-framework.less
│ │ │ ├── grid.less
│ │ │ ├── hide-text.less
│ │ │ ├── image.less
│ │ │ ├── labels.less
│ │ │ ├── list-group.less
│ │ │ ├── nav-divider.less
│ │ │ ├── nav-vertical-align.less
│ │ │ ├── opacity.less
│ │ │ ├── pagination.less
│ │ │ ├── panels.less
│ │ │ ├── progress-bar.less
│ │ │ ├── reset-filter.less
│ │ │ ├── reset-text.less
│ │ │ ├── resize.less
│ │ │ ├── responsive-visibility.less
│ │ │ ├── size.less
│ │ │ ├── tab-focus.less
│ │ │ ├── table-row.less
│ │ │ ├── text-emphasis.less
│ │ │ ├── text-overflow.less
│ │ │ └── vendor-prefixes.less
│ │ │ ├── modals.less
│ │ │ ├── navbar.less
│ │ │ ├── navs.less
│ │ │ ├── normalize.less
│ │ │ ├── pager.less
│ │ │ ├── pagination.less
│ │ │ ├── panels.less
│ │ │ ├── popovers.less
│ │ │ ├── print.less
│ │ │ ├── progress-bars.less
│ │ │ ├── responsive-embed.less
│ │ │ ├── responsive-utilities.less
│ │ │ ├── scaffolding.less
│ │ │ ├── tables.less
│ │ │ ├── theme.less
│ │ │ ├── thumbnails.less
│ │ │ ├── tooltip.less
│ │ │ ├── type.less
│ │ │ ├── utilities.less
│ │ │ ├── variables.less
│ │ │ └── wells.less
│ │ ├── desktop.ini
│ │ ├── jquery-ui
│ │ ├── desktop.ini
│ │ ├── themes
│ │ │ ├── base
│ │ │ │ ├── desktop.ini
│ │ │ │ ├── images
│ │ │ │ │ ├── animated-overlay.gif
│ │ │ │ │ ├── desktop.ini
│ │ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ │ │ │ ├── ui-icons_222222_256x240.png
│ │ │ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ │ │ ├── ui-icons_454545_256x240.png
│ │ │ │ │ ├── ui-icons_888888_256x240.png
│ │ │ │ │ └── ui-icons_cd0a0a_256x240.png
│ │ │ │ ├── jquery-ui.css
│ │ │ │ ├── jquery.ui.accordion.css
│ │ │ │ ├── jquery.ui.all.css
│ │ │ │ ├── jquery.ui.autocomplete.css
│ │ │ │ ├── jquery.ui.base.css
│ │ │ │ ├── jquery.ui.button.css
│ │ │ │ ├── jquery.ui.core.css
│ │ │ │ ├── jquery.ui.datepicker.css
│ │ │ │ ├── jquery.ui.dialog.css
│ │ │ │ ├── jquery.ui.menu.css
│ │ │ │ ├── jquery.ui.progressbar.css
│ │ │ │ ├── jquery.ui.resizable.css
│ │ │ │ ├── jquery.ui.selectable.css
│ │ │ │ ├── jquery.ui.slider.css
│ │ │ │ ├── jquery.ui.spinner.css
│ │ │ │ ├── jquery.ui.tabs.css
│ │ │ │ ├── jquery.ui.theme.css
│ │ │ │ ├── jquery.ui.tooltip.css
│ │ │ │ └── minified
│ │ │ │ │ ├── desktop.ini
│ │ │ │ │ ├── images
│ │ │ │ │ ├── animated-overlay.gif
│ │ │ │ │ ├── desktop.ini
│ │ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ │ │ │ ├── ui-icons_222222_256x240.png
│ │ │ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ │ │ ├── ui-icons_454545_256x240.png
│ │ │ │ │ ├── ui-icons_888888_256x240.png
│ │ │ │ │ └── ui-icons_cd0a0a_256x240.png
│ │ │ │ │ ├── jquery-ui.min.css
│ │ │ │ │ ├── jquery.ui.accordion.min.css
│ │ │ │ │ ├── jquery.ui.autocomplete.min.css
│ │ │ │ │ ├── jquery.ui.button.min.css
│ │ │ │ │ ├── jquery.ui.core.min.css
│ │ │ │ │ ├── jquery.ui.datepicker.min.css
│ │ │ │ │ ├── jquery.ui.dialog.min.css
│ │ │ │ │ ├── jquery.ui.menu.min.css
│ │ │ │ │ ├── jquery.ui.progressbar.min.css
│ │ │ │ │ ├── jquery.ui.resizable.min.css
│ │ │ │ │ ├── jquery.ui.selectable.min.css
│ │ │ │ │ ├── jquery.ui.slider.min.css
│ │ │ │ │ ├── jquery.ui.spinner.min.css
│ │ │ │ │ ├── jquery.ui.tabs.min.css
│ │ │ │ │ ├── jquery.ui.theme.min.css
│ │ │ │ │ └── jquery.ui.tooltip.min.css
│ │ │ └── desktop.ini
│ │ └── ui
│ │ │ ├── .jshintrc
│ │ │ ├── desktop.ini
│ │ │ ├── i18n
│ │ │ ├── desktop.ini
│ │ │ ├── jquery-ui-i18n.js
│ │ │ ├── jquery.ui.datepicker-af.js
│ │ │ ├── jquery.ui.datepicker-ar-DZ.js
│ │ │ ├── jquery.ui.datepicker-ar.js
│ │ │ ├── jquery.ui.datepicker-az.js
│ │ │ ├── jquery.ui.datepicker-be.js
│ │ │ ├── jquery.ui.datepicker-bg.js
│ │ │ ├── jquery.ui.datepicker-bs.js
│ │ │ ├── jquery.ui.datepicker-ca.js
│ │ │ ├── jquery.ui.datepicker-cs.js
│ │ │ ├── jquery.ui.datepicker-cy-GB.js
│ │ │ ├── jquery.ui.datepicker-da.js
│ │ │ ├── jquery.ui.datepicker-de.js
│ │ │ ├── jquery.ui.datepicker-el.js
│ │ │ ├── jquery.ui.datepicker-en-AU.js
│ │ │ ├── jquery.ui.datepicker-en-GB.js
│ │ │ ├── jquery.ui.datepicker-en-NZ.js
│ │ │ ├── jquery.ui.datepicker-eo.js
│ │ │ ├── jquery.ui.datepicker-es.js
│ │ │ ├── jquery.ui.datepicker-et.js
│ │ │ ├── jquery.ui.datepicker-eu.js
│ │ │ ├── jquery.ui.datepicker-fa.js
│ │ │ ├── jquery.ui.datepicker-fi.js
│ │ │ ├── jquery.ui.datepicker-fo.js
│ │ │ ├── jquery.ui.datepicker-fr-CA.js
│ │ │ ├── jquery.ui.datepicker-fr-CH.js
│ │ │ ├── jquery.ui.datepicker-fr.js
│ │ │ ├── jquery.ui.datepicker-gl.js
│ │ │ ├── jquery.ui.datepicker-he.js
│ │ │ ├── jquery.ui.datepicker-hi.js
│ │ │ ├── jquery.ui.datepicker-hr.js
│ │ │ ├── jquery.ui.datepicker-hu.js
│ │ │ ├── jquery.ui.datepicker-hy.js
│ │ │ ├── jquery.ui.datepicker-id.js
│ │ │ ├── jquery.ui.datepicker-is.js
│ │ │ ├── jquery.ui.datepicker-it.js
│ │ │ ├── jquery.ui.datepicker-ja.js
│ │ │ ├── jquery.ui.datepicker-ka.js
│ │ │ ├── jquery.ui.datepicker-kk.js
│ │ │ ├── jquery.ui.datepicker-km.js
│ │ │ ├── jquery.ui.datepicker-ko.js
│ │ │ ├── jquery.ui.datepicker-ky.js
│ │ │ ├── jquery.ui.datepicker-lb.js
│ │ │ ├── jquery.ui.datepicker-lt.js
│ │ │ ├── jquery.ui.datepicker-lv.js
│ │ │ ├── jquery.ui.datepicker-mk.js
│ │ │ ├── jquery.ui.datepicker-ml.js
│ │ │ ├── jquery.ui.datepicker-ms.js
│ │ │ ├── jquery.ui.datepicker-nb.js
│ │ │ ├── jquery.ui.datepicker-nl-BE.js
│ │ │ ├── jquery.ui.datepicker-nl.js
│ │ │ ├── jquery.ui.datepicker-nn.js
│ │ │ ├── jquery.ui.datepicker-no.js
│ │ │ ├── jquery.ui.datepicker-pl.js
│ │ │ ├── jquery.ui.datepicker-pt-BR.js
│ │ │ ├── jquery.ui.datepicker-pt.js
│ │ │ ├── jquery.ui.datepicker-rm.js
│ │ │ ├── jquery.ui.datepicker-ro.js
│ │ │ ├── jquery.ui.datepicker-ru.js
│ │ │ ├── jquery.ui.datepicker-sk.js
│ │ │ ├── jquery.ui.datepicker-sl.js
│ │ │ ├── jquery.ui.datepicker-sq.js
│ │ │ ├── jquery.ui.datepicker-sr-SR.js
│ │ │ ├── jquery.ui.datepicker-sr.js
│ │ │ ├── jquery.ui.datepicker-sv.js
│ │ │ ├── jquery.ui.datepicker-ta.js
│ │ │ ├── jquery.ui.datepicker-th.js
│ │ │ ├── jquery.ui.datepicker-tj.js
│ │ │ ├── jquery.ui.datepicker-tr.js
│ │ │ ├── jquery.ui.datepicker-uk.js
│ │ │ ├── jquery.ui.datepicker-vi.js
│ │ │ ├── jquery.ui.datepicker-zh-CN.js
│ │ │ ├── jquery.ui.datepicker-zh-HK.js
│ │ │ └── jquery.ui.datepicker-zh-TW.js
│ │ │ ├── jquery-ui.custom.js
│ │ │ ├── jquery-ui.js
│ │ │ ├── jquery.ui.accordion.js
│ │ │ ├── jquery.ui.autocomplete.js
│ │ │ ├── jquery.ui.button.js
│ │ │ ├── jquery.ui.core.js
│ │ │ ├── jquery.ui.datepicker.js
│ │ │ ├── jquery.ui.dialog.js
│ │ │ ├── jquery.ui.draggable.js
│ │ │ ├── jquery.ui.droppable.js
│ │ │ ├── jquery.ui.effect-blind.js
│ │ │ ├── jquery.ui.effect-bounce.js
│ │ │ ├── jquery.ui.effect-clip.js
│ │ │ ├── jquery.ui.effect-drop.js
│ │ │ ├── jquery.ui.effect-explode.js
│ │ │ ├── jquery.ui.effect-fade.js
│ │ │ ├── jquery.ui.effect-fold.js
│ │ │ ├── jquery.ui.effect-highlight.js
│ │ │ ├── jquery.ui.effect-pulsate.js
│ │ │ ├── jquery.ui.effect-scale.js
│ │ │ ├── jquery.ui.effect-shake.js
│ │ │ ├── jquery.ui.effect-slide.js
│ │ │ ├── jquery.ui.effect-transfer.js
│ │ │ ├── jquery.ui.effect.js
│ │ │ ├── jquery.ui.menu.js
│ │ │ ├── jquery.ui.mouse.js
│ │ │ ├── jquery.ui.position.js
│ │ │ ├── jquery.ui.progressbar.js
│ │ │ ├── jquery.ui.resizable.js
│ │ │ ├── jquery.ui.selectable.js
│ │ │ ├── jquery.ui.slider.js
│ │ │ ├── jquery.ui.sortable.js
│ │ │ ├── jquery.ui.spinner.js
│ │ │ ├── jquery.ui.tabs.js
│ │ │ ├── jquery.ui.tooltip.js
│ │ │ ├── jquery.ui.widget.js
│ │ │ └── minified
│ │ │ ├── desktop.ini
│ │ │ ├── i18n
│ │ │ ├── desktop.ini
│ │ │ ├── jquery-ui-i18n.min.js
│ │ │ ├── jquery.ui.datepicker-af.min.js
│ │ │ ├── jquery.ui.datepicker-ar-DZ.min.js
│ │ │ ├── jquery.ui.datepicker-ar.min.js
│ │ │ ├── jquery.ui.datepicker-az.min.js
│ │ │ ├── jquery.ui.datepicker-be.min.js
│ │ │ ├── jquery.ui.datepicker-bg.min.js
│ │ │ ├── jquery.ui.datepicker-bs.min.js
│ │ │ ├── jquery.ui.datepicker-ca.min.js
│ │ │ ├── jquery.ui.datepicker-cs.min.js
│ │ │ ├── jquery.ui.datepicker-cy-GB.min.js
│ │ │ ├── jquery.ui.datepicker-da.min.js
│ │ │ ├── jquery.ui.datepicker-de.min.js
│ │ │ ├── jquery.ui.datepicker-el.min.js
│ │ │ ├── jquery.ui.datepicker-en-AU.min.js
│ │ │ ├── jquery.ui.datepicker-en-GB.min.js
│ │ │ ├── jquery.ui.datepicker-en-NZ.min.js
│ │ │ ├── jquery.ui.datepicker-eo.min.js
│ │ │ ├── jquery.ui.datepicker-es.min.js
│ │ │ ├── jquery.ui.datepicker-et.min.js
│ │ │ ├── jquery.ui.datepicker-eu.min.js
│ │ │ ├── jquery.ui.datepicker-fa.min.js
│ │ │ ├── jquery.ui.datepicker-fi.min.js
│ │ │ ├── jquery.ui.datepicker-fo.min.js
│ │ │ ├── jquery.ui.datepicker-fr-CA.min.js
│ │ │ ├── jquery.ui.datepicker-fr-CH.min.js
│ │ │ ├── jquery.ui.datepicker-fr.min.js
│ │ │ ├── jquery.ui.datepicker-gl.min.js
│ │ │ ├── jquery.ui.datepicker-he.min.js
│ │ │ ├── jquery.ui.datepicker-hi.min.js
│ │ │ ├── jquery.ui.datepicker-hr.min.js
│ │ │ ├── jquery.ui.datepicker-hu.min.js
│ │ │ ├── jquery.ui.datepicker-hy.min.js
│ │ │ ├── jquery.ui.datepicker-id.min.js
│ │ │ ├── jquery.ui.datepicker-is.min.js
│ │ │ ├── jquery.ui.datepicker-it.min.js
│ │ │ ├── jquery.ui.datepicker-ja.min.js
│ │ │ ├── jquery.ui.datepicker-ka.min.js
│ │ │ ├── jquery.ui.datepicker-kk.min.js
│ │ │ ├── jquery.ui.datepicker-km.min.js
│ │ │ ├── jquery.ui.datepicker-ko.min.js
│ │ │ ├── jquery.ui.datepicker-ky.min.js
│ │ │ ├── jquery.ui.datepicker-lb.min.js
│ │ │ ├── jquery.ui.datepicker-lt.min.js
│ │ │ ├── jquery.ui.datepicker-lv.min.js
│ │ │ ├── jquery.ui.datepicker-mk.min.js
│ │ │ ├── jquery.ui.datepicker-ml.min.js
│ │ │ ├── jquery.ui.datepicker-ms.min.js
│ │ │ ├── jquery.ui.datepicker-nb.min.js
│ │ │ ├── jquery.ui.datepicker-nl-BE.min.js
│ │ │ ├── jquery.ui.datepicker-nl.min.js
│ │ │ ├── jquery.ui.datepicker-nn.min.js
│ │ │ ├── jquery.ui.datepicker-no.min.js
│ │ │ ├── jquery.ui.datepicker-pl.min.js
│ │ │ ├── jquery.ui.datepicker-pt-BR.min.js
│ │ │ ├── jquery.ui.datepicker-pt.min.js
│ │ │ ├── jquery.ui.datepicker-rm.min.js
│ │ │ ├── jquery.ui.datepicker-ro.min.js
│ │ │ ├── jquery.ui.datepicker-ru.min.js
│ │ │ ├── jquery.ui.datepicker-sk.min.js
│ │ │ ├── jquery.ui.datepicker-sl.min.js
│ │ │ ├── jquery.ui.datepicker-sq.min.js
│ │ │ ├── jquery.ui.datepicker-sr-SR.min.js
│ │ │ ├── jquery.ui.datepicker-sr.min.js
│ │ │ ├── jquery.ui.datepicker-sv.min.js
│ │ │ ├── jquery.ui.datepicker-ta.min.js
│ │ │ ├── jquery.ui.datepicker-th.min.js
│ │ │ ├── jquery.ui.datepicker-tj.min.js
│ │ │ ├── jquery.ui.datepicker-tr.min.js
│ │ │ ├── jquery.ui.datepicker-uk.min.js
│ │ │ ├── jquery.ui.datepicker-vi.min.js
│ │ │ ├── jquery.ui.datepicker-zh-CN.min.js
│ │ │ ├── jquery.ui.datepicker-zh-HK.min.js
│ │ │ └── jquery.ui.datepicker-zh-TW.min.js
│ │ │ ├── jquery-ui.custom.min.js
│ │ │ ├── jquery-ui.min.js
│ │ │ ├── jquery.ui.accordion.min.js
│ │ │ ├── jquery.ui.autocomplete.min.js
│ │ │ ├── jquery.ui.button.min.js
│ │ │ ├── jquery.ui.core.min.js
│ │ │ ├── jquery.ui.datepicker.min.js
│ │ │ ├── jquery.ui.dialog.min.js
│ │ │ ├── jquery.ui.draggable.min.js
│ │ │ ├── jquery.ui.droppable.min.js
│ │ │ ├── jquery.ui.effect-blind.min.js
│ │ │ ├── jquery.ui.effect-bounce.min.js
│ │ │ ├── jquery.ui.effect-clip.min.js
│ │ │ ├── jquery.ui.effect-drop.min.js
│ │ │ ├── jquery.ui.effect-explode.min.js
│ │ │ ├── jquery.ui.effect-fade.min.js
│ │ │ ├── jquery.ui.effect-fold.min.js
│ │ │ ├── jquery.ui.effect-highlight.min.js
│ │ │ ├── jquery.ui.effect-pulsate.min.js
│ │ │ ├── jquery.ui.effect-scale.min.js
│ │ │ ├── jquery.ui.effect-shake.min.js
│ │ │ ├── jquery.ui.effect-slide.min.js
│ │ │ ├── jquery.ui.effect-transfer.min.js
│ │ │ ├── jquery.ui.effect.min.js
│ │ │ ├── jquery.ui.menu.min.js
│ │ │ ├── jquery.ui.mouse.min.js
│ │ │ ├── jquery.ui.position.min.js
│ │ │ ├── jquery.ui.progressbar.min.js
│ │ │ ├── jquery.ui.resizable.min.js
│ │ │ ├── jquery.ui.selectable.min.js
│ │ │ ├── jquery.ui.slider.min.js
│ │ │ ├── jquery.ui.sortable.min.js
│ │ │ ├── jquery.ui.spinner.min.js
│ │ │ ├── jquery.ui.tabs.min.js
│ │ │ ├── jquery.ui.tooltip.min.js
│ │ │ └── jquery.ui.widget.min.js
│ │ └── jquery
│ │ ├── desktop.ini
│ │ ├── jquery.js
│ │ ├── jquery.min.js
│ │ └── jquery.min.map
│ └── test
│ ├── desktop.ini
│ ├── java
│ ├── desktop.ini
│ └── org
│ │ ├── desktop.ini
│ │ └── springframework
│ │ ├── desktop.ini
│ │ └── samples
│ │ ├── desktop.ini
│ │ └── petclinic
│ │ ├── desktop.ini
│ │ ├── model
│ │ ├── ValidatorTests.java
│ │ └── desktop.ini
│ │ ├── service
│ │ ├── AbstractClinicServiceTests.java
│ │ ├── ClinicServiceJdbcTests.java
│ │ ├── ClinicServiceJpaTests.java
│ │ ├── ClinicServiceSpringDataJpaTests.java
│ │ └── desktop.ini
│ │ └── web
│ │ ├── CrashControllerTests.java
│ │ ├── OwnerControllerTests.java
│ │ ├── PetControllerTests.java
│ │ ├── PetTypeFormatterTests.java
│ │ ├── VetControllerTests.java
│ │ ├── VisitControllerTests.java
│ │ └── desktop.ini
│ └── jmeter
│ ├── desktop.ini
│ └── petclinic_test_plan.jmx
├── Chapter04
├── No Code.txt
└── desktop.ini
├── Chapter05
├── No Code.txt
└── desktop.ini
├── Chapter06
├── No Code.txt
└── desktop.ini
├── Chapter07
├── No Code.txt
└── desktop.ini
├── Chapter08
└── No Code.txt
├── Chapter09
├── No Code.txt
└── desktop.ini
├── LICENSE
└── README.md
/Chapter01/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/Chapter01/spring-petclinic-master/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "src/main/webapp/vendors"
3 | }
4 |
--------------------------------------------------------------------------------
/Chapter01/spring-petclinic-master/.editorconfig:
--------------------------------------------------------------------------------
1 | # top-most EditorConfig file
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | end_of_line = lf
7 | insert_final_newline = true
8 | indent_style = space
9 |
10 | [*.{java,xml}]
11 | indent_size = 4
12 | trim_trailing_whitespace = true
13 |
--------------------------------------------------------------------------------
/Chapter01/spring-petclinic-master/.gitignore:
--------------------------------------------------------------------------------
1 | target/*
2 | .settings/*
3 | .classpath
4 | .project
5 | .idea
6 | *.iml
7 | /target
8 |
9 | generated/
10 |
--------------------------------------------------------------------------------
/Chapter01/spring-petclinic-master/.mvn/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/Chapter01/spring-petclinic-master/.mvn/wrapper/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/Chapter01/spring-petclinic-master/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/DevOps-for-Web-Development/ae2b47b7262d6f2f44ba7e270db922a8e0fc28c1/Chapter01/spring-petclinic-master/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/Chapter01/spring-petclinic-master/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.3/apache-maven-3.3.3-bin.zip
2 |
--------------------------------------------------------------------------------
/Chapter01/spring-petclinic-master/.springBeans:
--------------------------------------------------------------------------------
1 |
2 | ${exception.message}
9 |
10 |
Something happened...
11 |
12 |
8 |
12 |
Integration test using the 'Spring Data' profile. 10 | * 11 | * @author Michael Isvy 12 | * @see AbstractClinicServiceTests AbstractClinicServiceTests for more details.
13 | */ 14 | 15 | @ContextConfiguration(locations = {"classpath:spring/business-config.xml"}) 16 | @RunWith(SpringJUnit4ClassRunner.class) 17 | @ActiveProfiles("spring-data-jpa") 18 | public class ClinicServiceSpringDataJpaTests extends AbstractClinicServiceTests { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Chapter01/spring-petclinic-master/src/test/java/org/springframework/samples/petclinic/service/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter01/spring-petclinic-master/src/test/java/org/springframework/samples/petclinic/web/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter01/spring-petclinic-master/src/test/jmeter/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter01/spring-petclinic-master/src/test/resources/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter01/spring-petclinic-master/src/test/resources/spring/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter01/spring-petclinic-master/src/test/resources/spring/mvc-test-config.xml: -------------------------------------------------------------------------------- 1 | 2 |4 | The Spring Data Binding framework, an internal library used by Spring Web Flow. 5 |
6 | 7 | -------------------------------------------------------------------------------- /Chapter03/spring-petclinic-master/src/main/resources/cache/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter03/spring-petclinic-master/src/main/resources/cache/ehcache.xml: -------------------------------------------------------------------------------- 1 |Integration test using the 'Spring Data' profile. 10 | * 11 | * @author Michael Isvy 12 | * @see AbstractClinicServiceTests AbstractClinicServiceTests for more details.
13 | */ 14 | 15 | @ContextConfiguration(locations = {"classpath:spring/business-config.xml"}) 16 | @RunWith(SpringJUnit4ClassRunner.class) 17 | @ActiveProfiles("spring-data-jpa") 18 | public class ClinicServiceSpringDataJpaTests extends AbstractClinicServiceTests { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Chapter03/spring-petclinic-master/src/test/java/org/springframework/samples/petclinic/service/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter03/spring-petclinic-master/src/test/java/org/springframework/samples/petclinic/web/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter03/spring-petclinic-master/src/test/jmeter/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter04/No Code.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/DevOps-for-Web-Development/ae2b47b7262d6f2f44ba7e270db922a8e0fc28c1/Chapter04/No Code.txt -------------------------------------------------------------------------------- /Chapter04/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter05/No Code.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/DevOps-for-Web-Development/ae2b47b7262d6f2f44ba7e270db922a8e0fc28c1/Chapter05/No Code.txt -------------------------------------------------------------------------------- /Chapter05/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter06/No Code.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/DevOps-for-Web-Development/ae2b47b7262d6f2f44ba7e270db922a8e0fc28c1/Chapter06/No Code.txt -------------------------------------------------------------------------------- /Chapter06/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter07/No Code.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/DevOps-for-Web-Development/ae2b47b7262d6f2f44ba7e270db922a8e0fc28c1/Chapter07/No Code.txt -------------------------------------------------------------------------------- /Chapter07/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /Chapter08/No Code.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/DevOps-for-Web-Development/ae2b47b7262d6f2f44ba7e270db922a8e0fc28c1/Chapter08/No Code.txt -------------------------------------------------------------------------------- /Chapter09/No Code.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/DevOps-for-Web-Development/ae2b47b7262d6f2f44ba7e270db922a8e0fc28c1/Chapter09/No Code.txt -------------------------------------------------------------------------------- /Chapter09/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | --------------------------------------------------------------------------------