From 872c7d5ed4518adc75b4d946189c12e3cd4ec44c Mon Sep 17 00:00:00 2001
From: Antoine Rey <antoine.rey@gmail.com>
Date: Sun, 23 Oct 2016 15:23:35 +0200
Subject: [PATCH] Separating front et server into 2 maven modules

---
 .gitignore                                    |  11 ++
 pom.xml                                       | 154 +++---------------
 springboot-petclinic-client/bower.json        |  25 +++
 springboot-petclinic-client/package.json      |   7 +
 springboot-petclinic-client/pom.xml           |  68 ++++++++
 springboot-petclinic-server/pom.xml           | 126 ++++++++++++++
 .../petclinic/PetClinicApplication.java       |   0
 .../samples/petclinic/config/CacheConfig.java |   0
 .../samples/petclinic/config/WebConfig.java   |   0
 .../samples/petclinic/model/BaseEntity.java   |   0
 .../samples/petclinic/model/NamedEntity.java  |   0
 .../samples/petclinic/model/Owner.java        |   0
 .../samples/petclinic/model/Person.java       |   0
 .../samples/petclinic/model/Pet.java          |   0
 .../samples/petclinic/model/PetType.java      |   0
 .../samples/petclinic/model/Specialty.java    |   0
 .../samples/petclinic/model/Vet.java          |   0
 .../samples/petclinic/model/Vets.java         |   0
 .../samples/petclinic/model/Visit.java        |   0
 .../samples/petclinic/model/package-info.java |   0
 .../petclinic/repository/OwnerRepository.java |   0
 .../petclinic/repository/PetRepository.java   |   0
 .../petclinic/repository/VetRepository.java   |   0
 .../petclinic/repository/VisitRepository.java |   0
 .../petclinic/service/ClinicService.java      |   0
 .../petclinic/service/ClinicServiceImpl.java  |   0
 .../petclinic/util/CallMonitoringAspect.java  |   0
 .../samples/petclinic/web/OwnerResource.java  |   0
 .../samples/petclinic/web/PetResource.java    |   0
 .../samples/petclinic/web/PetValidator.java   |   0
 .../samples/petclinic/web/VetResource.java    |   0
 .../samples/petclinic/web/VisitResource.java  |   0
 .../main/resources/application.properties     |   0
 .../src}/main/resources/banner.txt            |   0
 .../src}/main/resources/db/hsqldb/data.sql    |   0
 .../src}/main/resources/db/hsqldb/schema.sql  |   0
 .../src}/main/resources/db/mysql/data.sql     |   0
 .../db/mysql/petclinic_db_setup_mysql.txt     |   0
 .../src}/main/resources/db/mysql/schema.sql   |   0
 .../src}/main/resources/db_readme.txt         |   0
 .../resources/messages/messages.properties    |   0
 .../resources/messages/messages_de.properties |   0
 .../resources/messages/messages_en.properties |   0
 .../main/resources/static/css/petclinic.css   |   0
 .../static/fonts/montserrat-webfont.eot       | Bin
 .../static/fonts/montserrat-webfont.svg       |   0
 .../static/fonts/montserrat-webfont.ttf       | Bin
 .../static/fonts/montserrat-webfont.woff      | Bin
 .../static/fonts/varela_round-webfont.eot     | Bin
 .../static/fonts/varela_round-webfont.svg     |   0
 .../static/fonts/varela_round-webfont.ttf     | Bin
 .../static/fonts/varela_round-webfont.woff    | Bin
 .../main/resources/static/images/favicon.png  | Bin
 .../main/resources/static/images/pets.png     | Bin
 .../resources/static/images/platform-bg.png   | Bin
 .../images/spring-logo-dataflow-mobile.png    | Bin
 .../static/images/spring-logo-dataflow.png    | Bin
 .../static/images/spring-pivotal-logo.png     | Bin
 .../src}/main/resources/static/scripts/app.js |   0
 .../static/scripts/fragments/footer.html      |   0
 .../static/scripts/fragments/nav.html         |   0
 .../static/scripts/fragments/welcome.html     |   0
 .../owner-details/owner-details.component.js  |   0
 .../owner-details/owner-details.template.html |   0
 .../owner-form/owner-form.component.js        |   0
 .../owner-form/owner-form.template.html       |   0
 .../owner-list/owner-list.component.js        |   0
 .../owner-list/owner-list.template.html       |   0
 .../scripts/pet-form/pet-form.component.js    |   0
 .../scripts/pet-form/pet-form.template.html   |   0
 .../scripts/vet-list/vet-list.component.js    |   0
 .../scripts/vet-list/vet-list.template.html   |   0
 .../static/scripts/visits/visits.component.js |   0
 .../scripts/visits/visits.template.html       |   0
 .../src/main/resources/templates/index.html   |  37 +++++
 .../petclinic/model/ValidatorTests.java       |   0
 .../service/AbstractClinicServiceTests.java   |   0
 .../petclinic/service/EntityUtils.java        |   0
 .../petclinic/web/PetResourceTests.java       |   0
 .../petclinic/web/VetResourceTests.java       |   0
 src/main/resources/templates/index.html       |  37 -----
 81 files changed, 293 insertions(+), 172 deletions(-)
 create mode 100644 springboot-petclinic-client/bower.json
 create mode 100644 springboot-petclinic-client/package.json
 create mode 100644 springboot-petclinic-client/pom.xml
 create mode 100644 springboot-petclinic-server/pom.xml
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/PetClinicApplication.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/config/CacheConfig.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/config/WebConfig.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/model/BaseEntity.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/model/NamedEntity.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/model/Owner.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/model/Person.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/model/Pet.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/model/PetType.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/model/Specialty.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/model/Vet.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/model/Vets.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/model/Visit.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/model/package-info.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/repository/OwnerRepository.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/repository/PetRepository.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/repository/VetRepository.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/repository/VisitRepository.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/service/ClinicService.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/util/CallMonitoringAspect.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/web/OwnerResource.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/web/PetResource.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/web/PetValidator.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/web/VetResource.java (100%)
 rename {src => springboot-petclinic-server/src}/main/java/org/springframework/samples/petclinic/web/VisitResource.java (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/application.properties (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/banner.txt (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/db/hsqldb/data.sql (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/db/hsqldb/schema.sql (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/db/mysql/data.sql (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/db/mysql/petclinic_db_setup_mysql.txt (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/db/mysql/schema.sql (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/db_readme.txt (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/messages/messages.properties (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/messages/messages_de.properties (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/messages/messages_en.properties (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/css/petclinic.css (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/fonts/montserrat-webfont.eot (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/fonts/montserrat-webfont.svg (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/fonts/montserrat-webfont.ttf (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/fonts/montserrat-webfont.woff (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/fonts/varela_round-webfont.eot (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/fonts/varela_round-webfont.svg (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/fonts/varela_round-webfont.ttf (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/fonts/varela_round-webfont.woff (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/images/favicon.png (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/images/pets.png (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/images/platform-bg.png (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/images/spring-logo-dataflow-mobile.png (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/images/spring-logo-dataflow.png (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/images/spring-pivotal-logo.png (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/app.js (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/fragments/footer.html (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/fragments/nav.html (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/fragments/welcome.html (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/owner-details/owner-details.component.js (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/owner-details/owner-details.template.html (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/owner-form/owner-form.component.js (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/owner-form/owner-form.template.html (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/owner-list/owner-list.component.js (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/owner-list/owner-list.template.html (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/pet-form/pet-form.component.js (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/pet-form/pet-form.template.html (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/vet-list/vet-list.component.js (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/vet-list/vet-list.template.html (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/visits/visits.component.js (100%)
 rename {src => springboot-petclinic-server/src}/main/resources/static/scripts/visits/visits.template.html (100%)
 create mode 100644 springboot-petclinic-server/src/main/resources/templates/index.html
 rename {src => springboot-petclinic-server/src}/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java (100%)
 rename {src => springboot-petclinic-server/src}/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java (100%)
 rename {src => springboot-petclinic-server/src}/test/java/org/springframework/samples/petclinic/service/EntityUtils.java (100%)
 rename {src => springboot-petclinic-server/src}/test/java/org/springframework/samples/petclinic/web/PetResourceTests.java (100%)
 rename {src => springboot-petclinic-server/src}/test/java/org/springframework/samples/petclinic/web/VetResourceTests.java (100%)
 delete mode 100644 src/main/resources/templates/index.html

diff --git a/.gitignore b/.gitignore
index d6b05820..22915b52 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,18 @@
+# Maven
 target/
+
+# Eclipse
 .settings/
 .classpath
 .project
+
+# IntelliJ IDEA
 .idea
 *.iml
+
+# Branch switching
 generated/
+
+# Front-end client
+node_modules/
+bower_components/
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 3e694463..b04e3f06 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,140 +9,24 @@
 	</parent>
 
 	<groupId>org.springframework.samples</groupId>
-	<artifactId>spring-petclinic</artifactId>
-	<version>1.0.0-SNAPSHOT</version>
+	<artifactId>springboot-petclinic</artifactId>
+	<version>1.4.1</version>
+	<name>Spring Petclinic :: Parent POM</name>
+	<packaging>pom</packaging>
+
+	<modules>
+		<module>springboot-petclinic-client</module>
+		<module>springboot-petclinic-server</module>
+	</modules>
+
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>org.springframework.samples</groupId>
+				<artifactId>springboot-petclinic-client</artifactId>
+				<version>${project.version}</version>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
 
-	<name>petclinic</name>
-	<packaging>jar</packaging>
-
-	<properties>
-		<java.version>1.7</java.version>
-
-		<!-- Web dependencies -->
-		<webjars-bootstrap.version>3.3.7</webjars-bootstrap.version>
-		<webjars-angularjs.version>1.5.8</webjars-angularjs.version>
-		<webjars-jquery.version>3.1.0</webjars-jquery.version>
-	</properties>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-web</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-thymeleaf</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-data-jpa</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-cache</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-actuator</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-devtools</artifactId>
-			<optional>true</optional>
-		</dependency>
-
-		<dependency>
-			<groupId>org.hsqldb</groupId>
-			<artifactId>hsqldb</artifactId>
-			<scope>runtime</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.webjars</groupId>
-			<artifactId>bootstrap</artifactId>
-			<version>${webjars-bootstrap.version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>org.webjars</groupId>
-			<artifactId>jquery</artifactId>
-			<version>${webjars-jquery.version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>org.webjars</groupId>
-			<artifactId>angularjs</artifactId>
-			<version>${webjars-angularjs.version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-test</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- EhCache -->
-		<dependency>
-			<groupId>javax.cache</groupId>
-			<artifactId>cache-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.ehcache</groupId>
-			<artifactId>ehcache</artifactId>
-		</dependency>
-	</dependencies>
-
-	<build>
-		<finalName>petclinic</finalName>
-		<plugins>
-			<plugin>
-				<groupId>org.springframework.boot</groupId>
-				<artifactId>spring-boot-maven-plugin</artifactId>
-				<configuration>
-					<fork>true</fork>
-				</configuration>
-				<executions>
-					<execution>
-						<!-- Spring Boot Actuator displays build-related information if a META-INF/build-info.properties file is present -->
-						<goals>
-							<goal>build-info</goal>
-						</goals>
-						<configuration>
-							<additionalProperties>
-								<encoding.source>${project.build.sourceEncoding}</encoding.source>
-								<encoding.reporting>${project.reporting.outputEncoding}</encoding.reporting>
-								<java.source>${maven.compiler.source}</java.source>
-								<java.target>${maven.compiler.target}</java.target>
-							</additionalProperties>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-
-            <!-- Spring Boot Actuator displays build-related information if a META-INF/build-info.properties file is present -->
-            <plugin>
-                <groupId>pl.project13.maven</groupId>
-                <artifactId>git-commit-id-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>revision</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <verbose>true</verbose>
-                    <dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
-                    <generateGitPropertiesFile>true</generateGitPropertiesFile>
-                    <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties
-                    </generateGitPropertiesFilename>
-                </configuration>
-            </plugin>
-		</plugins>
-	</build>
 </project>
diff --git a/springboot-petclinic-client/bower.json b/springboot-petclinic-client/bower.json
new file mode 100644
index 00000000..145f7d8b
--- /dev/null
+++ b/springboot-petclinic-client/bower.json
@@ -0,0 +1,25 @@
+{
+  "name": "spring-petclinic-client",
+  "description": "Spring Petclinic AngularJS client application",
+  "main": "",
+  "authors": [
+    "Antoine Rey <antoine.rey@free.fr>"
+  ],
+  "license": "Apache 2.0",
+  "homepage": "https://github.com/spring-projects/spring-petclinic",
+  "moduleType": [],
+  "private": true,
+  "ignore": [
+    "**/.*",
+    "node_modules",
+    "bower_components",
+    "test",
+    "tests"
+  ],
+  "dependencies": {
+    "angular": "~1.5.8",
+    "angular-route": "~1.5.8",
+    "bootstrap": "components/bootstrap#~3.3.7",
+    "jquery": "components/jquery#~3.1.0"
+  }
+}
diff --git a/springboot-petclinic-client/package.json b/springboot-petclinic-client/package.json
new file mode 100644
index 00000000..2e809be0
--- /dev/null
+++ b/springboot-petclinic-client/package.json
@@ -0,0 +1,7 @@
+{
+  "private": true,
+  "dependencies": {},
+  "devDependencies": {
+    "bower": "^1.7.9"
+  }
+}
diff --git a/springboot-petclinic-client/pom.xml b/springboot-petclinic-client/pom.xml
new file mode 100644
index 00000000..04f549a9
--- /dev/null
+++ b/springboot-petclinic-client/pom.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.springframework.samples</groupId>
+		<artifactId>springboot-petclinic</artifactId>
+		<version>1.4.1</version>
+	</parent>
+	<artifactId>springboot-petclinic-client</artifactId>
+	<name>Spring Petclinic :: AngularJS Client</name>
+
+	<properties>
+		<node.version>v4.4.3</node.version>
+		<npm.version>2.15.1</npm.version>
+	</properties>
+
+	<build>
+		<resources>
+			<resource>
+				<directory>${basedir}/src</directory>
+			</resource>
+			<resource>
+				<directory>${basedir}/bower_components</directory>
+			</resource>
+		</resources>
+		<plugins>
+			<plugin>
+				<groupId>com.github.eirslett</groupId>
+				<artifactId>frontend-maven-plugin</artifactId>
+				<configuration>
+					<installDirectory>target</installDirectory>
+				</configuration>
+				<executions>
+					<execution>
+						<id>install node and npm</id>
+						<goals>
+							<goal>install-node-and-npm</goal>
+						</goals>
+						<configuration>
+							<nodeVersion>${node.version}</nodeVersion>
+							<npmVersion>${npm.version}</npmVersion>
+						</configuration>
+					</execution>
+					<execution>
+						<id>npm install</id>
+						<goals>
+							<goal>npm</goal>
+						</goals>
+					</execution>
+					<execution>
+						<id>bower install</id>
+						<goals>
+							<goal>bower</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-resources-plugin</artifactId>
+				<configuration>
+					<outputDirectory>${project.build.directory}/classes/public/</outputDirectory>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/springboot-petclinic-server/pom.xml b/springboot-petclinic-server/pom.xml
new file mode 100644
index 00000000..e0f7186e
--- /dev/null
+++ b/springboot-petclinic-server/pom.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.springframework.samples</groupId>
+        <artifactId>springboot-petclinic</artifactId>
+        <version>1.4.1</version>
+    </parent>
+    <artifactId>springboot-petclinic-server</artifactId>
+    <name>Spring Petclinic :: Spring MVC REST server</name>
+
+    <properties>
+        <java.version>1.7</java.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-thymeleaf</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-cache</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.samples</groupId>
+            <artifactId>springboot-petclinic-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- EhCache -->
+        <dependency>
+            <groupId>javax.cache</groupId>
+            <artifactId>cache-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.ehcache</groupId>
+            <artifactId>ehcache</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>petclinic</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <fork>true</fork>
+                </configuration>
+                <executions>
+                    <execution>
+                        <!-- Spring Boot Actuator displays build-related information if a META-INF/build-info.properties file is present -->
+                        <goals>
+                            <goal>build-info</goal>
+                        </goals>
+                        <configuration>
+                            <additionalProperties>
+                                <encoding.source>${project.build.sourceEncoding}</encoding.source>
+                                <encoding.reporting>${project.reporting.outputEncoding}</encoding.reporting>
+                                <java.source>${maven.compiler.source}</java.source>
+                                <java.target>${maven.compiler.target}</java.target>
+                            </additionalProperties>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- Spring Boot Actuator displays build-related information if a META-INF/build-info.properties file is present -->
+            <plugin>
+                <groupId>pl.project13.maven</groupId>
+                <artifactId>git-commit-id-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>revision</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <verbose>true</verbose>
+                    <dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
+                    <generateGitPropertiesFile>true</generateGitPropertiesFile>
+                    <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties
+                    </generateGitPropertiesFilename>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java
diff --git a/src/main/java/org/springframework/samples/petclinic/config/CacheConfig.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/config/CacheConfig.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/config/CacheConfig.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/config/CacheConfig.java
diff --git a/src/main/java/org/springframework/samples/petclinic/config/WebConfig.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/config/WebConfig.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/config/WebConfig.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/config/WebConfig.java
diff --git a/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java
diff --git a/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java
diff --git a/src/main/java/org/springframework/samples/petclinic/model/Owner.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Owner.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/model/Owner.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Owner.java
diff --git a/src/main/java/org/springframework/samples/petclinic/model/Person.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Person.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/model/Person.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Person.java
diff --git a/src/main/java/org/springframework/samples/petclinic/model/Pet.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Pet.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/model/Pet.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Pet.java
diff --git a/src/main/java/org/springframework/samples/petclinic/model/PetType.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/PetType.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/model/PetType.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/PetType.java
diff --git a/src/main/java/org/springframework/samples/petclinic/model/Specialty.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Specialty.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/model/Specialty.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Specialty.java
diff --git a/src/main/java/org/springframework/samples/petclinic/model/Vet.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Vet.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/model/Vet.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Vet.java
diff --git a/src/main/java/org/springframework/samples/petclinic/model/Vets.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Vets.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/model/Vets.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Vets.java
diff --git a/src/main/java/org/springframework/samples/petclinic/model/Visit.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Visit.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/model/Visit.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/Visit.java
diff --git a/src/main/java/org/springframework/samples/petclinic/model/package-info.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/model/package-info.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/model/package-info.java
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/OwnerRepository.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/repository/OwnerRepository.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/repository/OwnerRepository.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/repository/OwnerRepository.java
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/PetRepository.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/repository/PetRepository.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/repository/PetRepository.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/repository/PetRepository.java
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/VetRepository.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/repository/VetRepository.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/repository/VetRepository.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/repository/VetRepository.java
diff --git a/src/main/java/org/springframework/samples/petclinic/repository/VisitRepository.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/repository/VisitRepository.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/repository/VisitRepository.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/repository/VisitRepository.java
diff --git a/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/service/ClinicService.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java
diff --git a/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java
diff --git a/src/main/java/org/springframework/samples/petclinic/util/CallMonitoringAspect.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/util/CallMonitoringAspect.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/util/CallMonitoringAspect.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/util/CallMonitoringAspect.java
diff --git a/src/main/java/org/springframework/samples/petclinic/web/OwnerResource.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/web/OwnerResource.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/web/OwnerResource.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/web/OwnerResource.java
diff --git a/src/main/java/org/springframework/samples/petclinic/web/PetResource.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/web/PetResource.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/web/PetResource.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/web/PetResource.java
diff --git a/src/main/java/org/springframework/samples/petclinic/web/PetValidator.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/web/PetValidator.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/web/PetValidator.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/web/PetValidator.java
diff --git a/src/main/java/org/springframework/samples/petclinic/web/VetResource.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/web/VetResource.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/web/VetResource.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/web/VetResource.java
diff --git a/src/main/java/org/springframework/samples/petclinic/web/VisitResource.java b/springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/web/VisitResource.java
similarity index 100%
rename from src/main/java/org/springframework/samples/petclinic/web/VisitResource.java
rename to springboot-petclinic-server/src/main/java/org/springframework/samples/petclinic/web/VisitResource.java
diff --git a/src/main/resources/application.properties b/springboot-petclinic-server/src/main/resources/application.properties
similarity index 100%
rename from src/main/resources/application.properties
rename to springboot-petclinic-server/src/main/resources/application.properties
diff --git a/src/main/resources/banner.txt b/springboot-petclinic-server/src/main/resources/banner.txt
similarity index 100%
rename from src/main/resources/banner.txt
rename to springboot-petclinic-server/src/main/resources/banner.txt
diff --git a/src/main/resources/db/hsqldb/data.sql b/springboot-petclinic-server/src/main/resources/db/hsqldb/data.sql
similarity index 100%
rename from src/main/resources/db/hsqldb/data.sql
rename to springboot-petclinic-server/src/main/resources/db/hsqldb/data.sql
diff --git a/src/main/resources/db/hsqldb/schema.sql b/springboot-petclinic-server/src/main/resources/db/hsqldb/schema.sql
similarity index 100%
rename from src/main/resources/db/hsqldb/schema.sql
rename to springboot-petclinic-server/src/main/resources/db/hsqldb/schema.sql
diff --git a/src/main/resources/db/mysql/data.sql b/springboot-petclinic-server/src/main/resources/db/mysql/data.sql
similarity index 100%
rename from src/main/resources/db/mysql/data.sql
rename to springboot-petclinic-server/src/main/resources/db/mysql/data.sql
diff --git a/src/main/resources/db/mysql/petclinic_db_setup_mysql.txt b/springboot-petclinic-server/src/main/resources/db/mysql/petclinic_db_setup_mysql.txt
similarity index 100%
rename from src/main/resources/db/mysql/petclinic_db_setup_mysql.txt
rename to springboot-petclinic-server/src/main/resources/db/mysql/petclinic_db_setup_mysql.txt
diff --git a/src/main/resources/db/mysql/schema.sql b/springboot-petclinic-server/src/main/resources/db/mysql/schema.sql
similarity index 100%
rename from src/main/resources/db/mysql/schema.sql
rename to springboot-petclinic-server/src/main/resources/db/mysql/schema.sql
diff --git a/src/main/resources/db_readme.txt b/springboot-petclinic-server/src/main/resources/db_readme.txt
similarity index 100%
rename from src/main/resources/db_readme.txt
rename to springboot-petclinic-server/src/main/resources/db_readme.txt
diff --git a/src/main/resources/messages/messages.properties b/springboot-petclinic-server/src/main/resources/messages/messages.properties
similarity index 100%
rename from src/main/resources/messages/messages.properties
rename to springboot-petclinic-server/src/main/resources/messages/messages.properties
diff --git a/src/main/resources/messages/messages_de.properties b/springboot-petclinic-server/src/main/resources/messages/messages_de.properties
similarity index 100%
rename from src/main/resources/messages/messages_de.properties
rename to springboot-petclinic-server/src/main/resources/messages/messages_de.properties
diff --git a/src/main/resources/messages/messages_en.properties b/springboot-petclinic-server/src/main/resources/messages/messages_en.properties
similarity index 100%
rename from src/main/resources/messages/messages_en.properties
rename to springboot-petclinic-server/src/main/resources/messages/messages_en.properties
diff --git a/src/main/resources/static/css/petclinic.css b/springboot-petclinic-server/src/main/resources/static/css/petclinic.css
similarity index 100%
rename from src/main/resources/static/css/petclinic.css
rename to springboot-petclinic-server/src/main/resources/static/css/petclinic.css
diff --git a/src/main/resources/static/fonts/montserrat-webfont.eot b/springboot-petclinic-server/src/main/resources/static/fonts/montserrat-webfont.eot
similarity index 100%
rename from src/main/resources/static/fonts/montserrat-webfont.eot
rename to springboot-petclinic-server/src/main/resources/static/fonts/montserrat-webfont.eot
diff --git a/src/main/resources/static/fonts/montserrat-webfont.svg b/springboot-petclinic-server/src/main/resources/static/fonts/montserrat-webfont.svg
similarity index 100%
rename from src/main/resources/static/fonts/montserrat-webfont.svg
rename to springboot-petclinic-server/src/main/resources/static/fonts/montserrat-webfont.svg
diff --git a/src/main/resources/static/fonts/montserrat-webfont.ttf b/springboot-petclinic-server/src/main/resources/static/fonts/montserrat-webfont.ttf
similarity index 100%
rename from src/main/resources/static/fonts/montserrat-webfont.ttf
rename to springboot-petclinic-server/src/main/resources/static/fonts/montserrat-webfont.ttf
diff --git a/src/main/resources/static/fonts/montserrat-webfont.woff b/springboot-petclinic-server/src/main/resources/static/fonts/montserrat-webfont.woff
similarity index 100%
rename from src/main/resources/static/fonts/montserrat-webfont.woff
rename to springboot-petclinic-server/src/main/resources/static/fonts/montserrat-webfont.woff
diff --git a/src/main/resources/static/fonts/varela_round-webfont.eot b/springboot-petclinic-server/src/main/resources/static/fonts/varela_round-webfont.eot
similarity index 100%
rename from src/main/resources/static/fonts/varela_round-webfont.eot
rename to springboot-petclinic-server/src/main/resources/static/fonts/varela_round-webfont.eot
diff --git a/src/main/resources/static/fonts/varela_round-webfont.svg b/springboot-petclinic-server/src/main/resources/static/fonts/varela_round-webfont.svg
similarity index 100%
rename from src/main/resources/static/fonts/varela_round-webfont.svg
rename to springboot-petclinic-server/src/main/resources/static/fonts/varela_round-webfont.svg
diff --git a/src/main/resources/static/fonts/varela_round-webfont.ttf b/springboot-petclinic-server/src/main/resources/static/fonts/varela_round-webfont.ttf
similarity index 100%
rename from src/main/resources/static/fonts/varela_round-webfont.ttf
rename to springboot-petclinic-server/src/main/resources/static/fonts/varela_round-webfont.ttf
diff --git a/src/main/resources/static/fonts/varela_round-webfont.woff b/springboot-petclinic-server/src/main/resources/static/fonts/varela_round-webfont.woff
similarity index 100%
rename from src/main/resources/static/fonts/varela_round-webfont.woff
rename to springboot-petclinic-server/src/main/resources/static/fonts/varela_round-webfont.woff
diff --git a/src/main/resources/static/images/favicon.png b/springboot-petclinic-server/src/main/resources/static/images/favicon.png
similarity index 100%
rename from src/main/resources/static/images/favicon.png
rename to springboot-petclinic-server/src/main/resources/static/images/favicon.png
diff --git a/src/main/resources/static/images/pets.png b/springboot-petclinic-server/src/main/resources/static/images/pets.png
similarity index 100%
rename from src/main/resources/static/images/pets.png
rename to springboot-petclinic-server/src/main/resources/static/images/pets.png
diff --git a/src/main/resources/static/images/platform-bg.png b/springboot-petclinic-server/src/main/resources/static/images/platform-bg.png
similarity index 100%
rename from src/main/resources/static/images/platform-bg.png
rename to springboot-petclinic-server/src/main/resources/static/images/platform-bg.png
diff --git a/src/main/resources/static/images/spring-logo-dataflow-mobile.png b/springboot-petclinic-server/src/main/resources/static/images/spring-logo-dataflow-mobile.png
similarity index 100%
rename from src/main/resources/static/images/spring-logo-dataflow-mobile.png
rename to springboot-petclinic-server/src/main/resources/static/images/spring-logo-dataflow-mobile.png
diff --git a/src/main/resources/static/images/spring-logo-dataflow.png b/springboot-petclinic-server/src/main/resources/static/images/spring-logo-dataflow.png
similarity index 100%
rename from src/main/resources/static/images/spring-logo-dataflow.png
rename to springboot-petclinic-server/src/main/resources/static/images/spring-logo-dataflow.png
diff --git a/src/main/resources/static/images/spring-pivotal-logo.png b/springboot-petclinic-server/src/main/resources/static/images/spring-pivotal-logo.png
similarity index 100%
rename from src/main/resources/static/images/spring-pivotal-logo.png
rename to springboot-petclinic-server/src/main/resources/static/images/spring-pivotal-logo.png
diff --git a/src/main/resources/static/scripts/app.js b/springboot-petclinic-server/src/main/resources/static/scripts/app.js
similarity index 100%
rename from src/main/resources/static/scripts/app.js
rename to springboot-petclinic-server/src/main/resources/static/scripts/app.js
diff --git a/src/main/resources/static/scripts/fragments/footer.html b/springboot-petclinic-server/src/main/resources/static/scripts/fragments/footer.html
similarity index 100%
rename from src/main/resources/static/scripts/fragments/footer.html
rename to springboot-petclinic-server/src/main/resources/static/scripts/fragments/footer.html
diff --git a/src/main/resources/static/scripts/fragments/nav.html b/springboot-petclinic-server/src/main/resources/static/scripts/fragments/nav.html
similarity index 100%
rename from src/main/resources/static/scripts/fragments/nav.html
rename to springboot-petclinic-server/src/main/resources/static/scripts/fragments/nav.html
diff --git a/src/main/resources/static/scripts/fragments/welcome.html b/springboot-petclinic-server/src/main/resources/static/scripts/fragments/welcome.html
similarity index 100%
rename from src/main/resources/static/scripts/fragments/welcome.html
rename to springboot-petclinic-server/src/main/resources/static/scripts/fragments/welcome.html
diff --git a/src/main/resources/static/scripts/owner-details/owner-details.component.js b/springboot-petclinic-server/src/main/resources/static/scripts/owner-details/owner-details.component.js
similarity index 100%
rename from src/main/resources/static/scripts/owner-details/owner-details.component.js
rename to springboot-petclinic-server/src/main/resources/static/scripts/owner-details/owner-details.component.js
diff --git a/src/main/resources/static/scripts/owner-details/owner-details.template.html b/springboot-petclinic-server/src/main/resources/static/scripts/owner-details/owner-details.template.html
similarity index 100%
rename from src/main/resources/static/scripts/owner-details/owner-details.template.html
rename to springboot-petclinic-server/src/main/resources/static/scripts/owner-details/owner-details.template.html
diff --git a/src/main/resources/static/scripts/owner-form/owner-form.component.js b/springboot-petclinic-server/src/main/resources/static/scripts/owner-form/owner-form.component.js
similarity index 100%
rename from src/main/resources/static/scripts/owner-form/owner-form.component.js
rename to springboot-petclinic-server/src/main/resources/static/scripts/owner-form/owner-form.component.js
diff --git a/src/main/resources/static/scripts/owner-form/owner-form.template.html b/springboot-petclinic-server/src/main/resources/static/scripts/owner-form/owner-form.template.html
similarity index 100%
rename from src/main/resources/static/scripts/owner-form/owner-form.template.html
rename to springboot-petclinic-server/src/main/resources/static/scripts/owner-form/owner-form.template.html
diff --git a/src/main/resources/static/scripts/owner-list/owner-list.component.js b/springboot-petclinic-server/src/main/resources/static/scripts/owner-list/owner-list.component.js
similarity index 100%
rename from src/main/resources/static/scripts/owner-list/owner-list.component.js
rename to springboot-petclinic-server/src/main/resources/static/scripts/owner-list/owner-list.component.js
diff --git a/src/main/resources/static/scripts/owner-list/owner-list.template.html b/springboot-petclinic-server/src/main/resources/static/scripts/owner-list/owner-list.template.html
similarity index 100%
rename from src/main/resources/static/scripts/owner-list/owner-list.template.html
rename to springboot-petclinic-server/src/main/resources/static/scripts/owner-list/owner-list.template.html
diff --git a/src/main/resources/static/scripts/pet-form/pet-form.component.js b/springboot-petclinic-server/src/main/resources/static/scripts/pet-form/pet-form.component.js
similarity index 100%
rename from src/main/resources/static/scripts/pet-form/pet-form.component.js
rename to springboot-petclinic-server/src/main/resources/static/scripts/pet-form/pet-form.component.js
diff --git a/src/main/resources/static/scripts/pet-form/pet-form.template.html b/springboot-petclinic-server/src/main/resources/static/scripts/pet-form/pet-form.template.html
similarity index 100%
rename from src/main/resources/static/scripts/pet-form/pet-form.template.html
rename to springboot-petclinic-server/src/main/resources/static/scripts/pet-form/pet-form.template.html
diff --git a/src/main/resources/static/scripts/vet-list/vet-list.component.js b/springboot-petclinic-server/src/main/resources/static/scripts/vet-list/vet-list.component.js
similarity index 100%
rename from src/main/resources/static/scripts/vet-list/vet-list.component.js
rename to springboot-petclinic-server/src/main/resources/static/scripts/vet-list/vet-list.component.js
diff --git a/src/main/resources/static/scripts/vet-list/vet-list.template.html b/springboot-petclinic-server/src/main/resources/static/scripts/vet-list/vet-list.template.html
similarity index 100%
rename from src/main/resources/static/scripts/vet-list/vet-list.template.html
rename to springboot-petclinic-server/src/main/resources/static/scripts/vet-list/vet-list.template.html
diff --git a/src/main/resources/static/scripts/visits/visits.component.js b/springboot-petclinic-server/src/main/resources/static/scripts/visits/visits.component.js
similarity index 100%
rename from src/main/resources/static/scripts/visits/visits.component.js
rename to springboot-petclinic-server/src/main/resources/static/scripts/visits/visits.component.js
diff --git a/src/main/resources/static/scripts/visits/visits.template.html b/springboot-petclinic-server/src/main/resources/static/scripts/visits/visits.template.html
similarity index 100%
rename from src/main/resources/static/scripts/visits/visits.template.html
rename to springboot-petclinic-server/src/main/resources/static/scripts/visits/visits.template.html
diff --git a/springboot-petclinic-server/src/main/resources/templates/index.html b/springboot-petclinic-server/src/main/resources/templates/index.html
new file mode 100644
index 00000000..3a81d402
--- /dev/null
+++ b/springboot-petclinic-server/src/main/resources/templates/index.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+
+<html ng-app="petClinicApp" xmlns:th="http://www.thymeleaf.org">
+
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0, minimal-ui"/>
+    <title>PetClinic :: a Spring Framework demonstration</title>
+    <link rel="stylesheet" th:href="@{/bootstrap/css/bootstrap.min.css}"/>
+    <link rel="stylesheet" th:href="@{/css/petclinic.css}"/>
+
+    <script th:src="@{/jquery/jquery.min.js}"></script>
+    <script th:src="@{/bootstrap/js/bootstrap.min.js}"></script>
+
+    <script th:src="@{/angular/angular.min.js}"></script>
+    <script th:src="@{/angular-route/angular-route.min.js}"></script>
+
+    <script th:src="@{/scripts/app.js}"></script>
+    <script th:src="@{/scripts/owner-list/owner-list.component.js}"></script>
+    <script th:src="@{/scripts/owner-details/owner-details.component.js}"></script>
+    <script th:src="@{/scripts/owner-form/owner-form.component.js}"></script>
+    <script th:src="@{/scripts/pet-form/pet-form.component.js}"></script>
+    <script th:src="@{/scripts/visits/visits.component.js}"></script>
+    <script th:src="@{/scripts/vet-list/vet-list.component.js}"></script>
+
+</head>
+
+<body class="container">
+<layout-nav></layout-nav>
+<div class="container-fluid">
+    <div class="container xd-container">
+        <div ng-view=""></div>
+    </div>
+</div>
+<layout-footer></layout-footer>
+</body>
+
+</html>
diff --git a/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java b/springboot-petclinic-server/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java
similarity index 100%
rename from src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java
rename to springboot-petclinic-server/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java
diff --git a/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java b/springboot-petclinic-server/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java
similarity index 100%
rename from src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java
rename to springboot-petclinic-server/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java
diff --git a/src/test/java/org/springframework/samples/petclinic/service/EntityUtils.java b/springboot-petclinic-server/src/test/java/org/springframework/samples/petclinic/service/EntityUtils.java
similarity index 100%
rename from src/test/java/org/springframework/samples/petclinic/service/EntityUtils.java
rename to springboot-petclinic-server/src/test/java/org/springframework/samples/petclinic/service/EntityUtils.java
diff --git a/src/test/java/org/springframework/samples/petclinic/web/PetResourceTests.java b/springboot-petclinic-server/src/test/java/org/springframework/samples/petclinic/web/PetResourceTests.java
similarity index 100%
rename from src/test/java/org/springframework/samples/petclinic/web/PetResourceTests.java
rename to springboot-petclinic-server/src/test/java/org/springframework/samples/petclinic/web/PetResourceTests.java
diff --git a/src/test/java/org/springframework/samples/petclinic/web/VetResourceTests.java b/springboot-petclinic-server/src/test/java/org/springframework/samples/petclinic/web/VetResourceTests.java
similarity index 100%
rename from src/test/java/org/springframework/samples/petclinic/web/VetResourceTests.java
rename to springboot-petclinic-server/src/test/java/org/springframework/samples/petclinic/web/VetResourceTests.java
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
deleted file mode 100644
index 54a2b052..00000000
--- a/src/main/resources/templates/index.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-
-<html ng-app="petClinicApp">
-
-<head>
-    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0, minimal-ui"/>
-    <title>PetClinic :: a Spring Framework demonstration</title>
-    <link rel="stylesheet" href="webjars/bootstrap/3.3.7/css/bootstrap.min.css"/>
-    <link rel="stylesheet" href="../css/petclinic.css"/>
-
-    <script src="webjars/jquery/3.1.0/jquery.min.js"></script>
-    <script src="webjars/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-
-    <script src="webjars/angularjs/1.5.8/angular.min.js"></script>
-    <script src="webjars/angularjs/1.5.8/angular-route.min.js"></script>
-
-    <script src="../scripts/app.js"></script>
-    <script src="../scripts/owner-list/owner-list.component.js"></script>
-    <script src="../scripts/owner-details/owner-details.component.js"></script>
-    <script src="../scripts/owner-form/owner-form.component.js"></script>
-    <script src="../scripts/pet-form/pet-form.component.js"></script>
-    <script src="../scripts/visits/visits.component.js"></script>
-    <script src="../scripts/vet-list/vet-list.component.js"></script>
-
-</head>
-
-<body class="container">
-<layout-nav></layout-nav>
-<div class="container-fluid">
-    <div class="container xd-container">
-        <div ng-view=""></div>
-    </div>
-</div>
-<layout-footer></layout-footer>
-</body>
-
-</html>
-- 
GitLab