diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 000000000..22793a3d5 Binary files /dev/null and b/.DS_Store differ diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index c24c121b1..b372277a0 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -5,17 +5,16 @@ name: Java CI with Gradle on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] + branches: [main] jobs: build: - runs-on: ubuntu-latest strategy: matrix: - java: [ '17' ] + java: ["17"] steps: - uses: actions/checkout@v4 @@ -23,9 +22,32 @@ jobs: uses: actions/setup-java@v4 with: java-version: ${{matrix.java}} - distribution: 'adopt' + distribution: "adopt" cache: maven - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Build with Gradle run: ./gradlew build + + # Below are added codes + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: "17" + distribution: "adopt" + - name: Run tests + run: ./gradlew test + + deploy: + runs-on: self-hosted # Use your own machine for deploying + + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Deploy to Vagrant VM + run: | + vagrant up --provision diff --git a/.vagrant/machines/default/virtualbox/action_provision b/.vagrant/machines/default/virtualbox/action_provision new file mode 100644 index 000000000..1b09c2262 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/action_provision @@ -0,0 +1,2 @@ + +1.5:0a8e3252-0dfa-4c2d-93e4-132058372cdb diff --git a/.vagrant/machines/default/virtualbox/action_set_name b/.vagrant/machines/default/virtualbox/action_set_name new file mode 100644 index 000000000..59eaf4275 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/action_set_name @@ -0,0 +1,2 @@ + +1745717021 diff --git a/.vagrant/machines/default/virtualbox/box_meta b/.vagrant/machines/default/virtualbox/box_meta new file mode 100644 index 000000000..f4297f0ef --- /dev/null +++ b/.vagrant/machines/default/virtualbox/box_meta @@ -0,0 +1 @@ +{"name":"ubuntu/bionic64","version":"20230607.0.5","provider":"virtualbox","directory":"boxes/ubuntu-VAGRANTSLASH-bionic64/20230607.0.5/virtualbox"} \ No newline at end of file diff --git a/.vagrant/machines/default/virtualbox/creator_uid b/.vagrant/machines/default/virtualbox/creator_uid new file mode 100644 index 000000000..c22708346 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/creator_uid @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/.vagrant/machines/default/virtualbox/id b/.vagrant/machines/default/virtualbox/id new file mode 100644 index 000000000..ec93d932f --- /dev/null +++ b/.vagrant/machines/default/virtualbox/id @@ -0,0 +1 @@ +0a8e3252-0dfa-4c2d-93e4-132058372cdb diff --git a/.vagrant/machines/default/virtualbox/index_uuid b/.vagrant/machines/default/virtualbox/index_uuid new file mode 100644 index 000000000..3682df743 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/index_uuid @@ -0,0 +1 @@ +400cd81ad83347cf828ce0bd43022163 diff --git a/.vagrant/machines/default/virtualbox/private_key b/.vagrant/machines/default/virtualbox/private_key new file mode 100644 index 000000000..16eb9c4b7 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/private_key @@ -0,0 +1,10 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAA + +AAtzc2gtZWQyNTUxOQAAACCAZpIqWjfT3tGuR4Xz+e6Cw1CXaZT2qvrJhgTJ +nDff7wAAAJAhtFL2IbRS9gAAAAtzc2gtZWQyNTUxOQAAACCAZpIqWjfT3tGu +R4Xz+e6Cw1CXaZT2qvrJhgTJnDff7wAAAEDSvbiNPJz3gaknOq4NpKVeB0ha +EZfwyaBuUPtR/bGLYoBmkipaN9Pe0a5HhfP57oLDUJdplPaq+smGBMmcN9/v + +AAAAB3ZhZ3JhbnQBAgMEBQY= +-----END OPENSSH PRIVATE KEY----- diff --git a/.vagrant/machines/default/virtualbox/synced_folders b/.vagrant/machines/default/virtualbox/synced_folders new file mode 100644 index 000000000..10edf9f09 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/synced_folders @@ -0,0 +1,2 @@ +{"virtualbox":{"/home/vagrant/petclinic":{"guestpath":"/home/vagrant/petclinic","hostpath":"C:/Users/Asus User/Desktop/workspace_SCC/spring-petclinic","disabled":false,"__vagrantfile":true}}} + diff --git a/.vagrant/machines/default/virtualbox/vagrant_cwd b/.vagrant/machines/default/virtualbox/vagrant_cwd new file mode 100644 index 000000000..a08db504b --- /dev/null +++ b/.vagrant/machines/default/virtualbox/vagrant_cwd @@ -0,0 +1,5 @@ +<<<<<<< HEAD +C:/Users/HP/SCC Practical/spring-petclinic +======= +C:/Users/Asus User/Desktop/workspace_SCC/spring-petclinic +>>>>>>> 64ca1a6e8d6262a76717e6ee9e02d13aa15cd1e8 diff --git a/.vagrant/rgloader/loader.rb b/.vagrant/rgloader/loader.rb new file mode 100644 index 000000000..b6c81bf31 --- /dev/null +++ b/.vagrant/rgloader/loader.rb @@ -0,0 +1,12 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: BUSL-1.1 + +# This file loads the proper rgloader/loader.rb file that comes packaged +# with Vagrant so that encoded files can properly run with Vagrant. + +if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] + require File.expand_path( + "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) +else + raise "Encoded files can't be read outside of the Vagrant installer." +end diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 000000000..7ddc4579b --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,62 @@ +Vagrant.configure("2") do |config| + # Use the ubuntu/bionic64 box + config.vm.box = "ubuntu/bionic64" + config.vm.boot_timeout = 600000 + + # Configuring VirtualBox provider settings + config.vm.provider "virtualbox" do |vb| + vb.name = "MyVB" + vb.cpus = 2 + vb.memory = "2048" + end + + # Configuring VirtualBox network settings +<<<<<<< HEAD + config.vm.network "forwarded_port", guest: 8080, host: 8086 +~ +======= + config.vm.network "forwarded_port", guest: 8080, host: 8087 + +>>>>>>> 64ca1a6e8d6262a76717e6ee9e02d13aa15cd1e8 + # Configuring VirtualBox folder settings + config.vm.synced_folder ".", "/home/vagrant/petclinic" + + # Provisioning with a shell script to run the JAR file + config.vm.provision "shell", inline: <<-SHELL + apt update + apt install -y openjdk-17-jdk git unzip + + APP_DIR="/home/vagrant/petclinic" + REPO_URL="https://github.com/yiting68/spring-petclinic.git" + JAR_NAME="spring-petclinic-3.4.0.jar" +<<<<<<< HEAD + SERVICE_NAME="petclinic"~~ +======= + SERVICE_NAME="petclinic" +>>>>>>> 64ca1a6e8d6262a76717e6ee9e02d13aa15cd1e8 + + # Clone Spring PetClinic project if does not exist + if [ ! -d "$APP_DIR/.git" ]; then + git clone "$REPO_URL" "$APP_DIR" + # Pull latest changes if project already exists + else + cd "$APP_DIR" + git pull + fi + + # Navigate to the project directory + cd "$APP_DIR" + + # Build the JAR file + ./gradlew build + + # Run the JAR file + nohup java -jar build/libs/$JAR_NAME > $APP_DIR/app.log 2>&1 & +<<<<<<< HEAD + + SHELL +end +======= + SHELL +end +>>>>>>> 64ca1a6e8d6262a76717e6ee9e02d13aa15cd1e8 diff --git a/build.gradle b/build.gradle index b52d8e185..bf15feb7f 100644 --- a/build.gradle +++ b/build.gradle @@ -6,6 +6,7 @@ plugins { id 'org.cyclonedx.bom' version '1.10.0' id 'io.spring.javaformat' version '0.0.43' id "io.spring.nohttp" version "0.0.11" + id 'jacoco' } apply plugin: 'java' @@ -25,6 +26,18 @@ repositories { mavenCentral() } + +jacoco { + toolVersion = "0.8.11" // The Latest version +} + +jacocoTestReport { + dependsOn test // Ensures tests run before generating reports + reports { + xml.required = true // Required for CI tools (e.g., SonarQube) + html.required = true // Human-readable HTML report + } +} ext.checkstyleVersion = "10.20.1" ext.springJavaformatCheckstyleVersion = "0.0.43" ext.webjarsLocatorLiteVersion = "1.0.1" @@ -88,3 +101,13 @@ checkFormatAotTest.enabled = false formatAot.enabled = false formatAotTest.enabled = false + +// Custom Build task +task printBuildInfo { + doLast { + println "Hi,we edit here!!" + println "Project: ${project.name}" + println "Version: ${version}" + println "Java Version: ${java.sourceCompatibility}" // Uses sourceCompatibility instead of toolchain + } +} \ No newline at end of file diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 000000000..2f258b4dd Binary files /dev/null and b/src/.DS_Store differ diff --git a/src/main/resources/messages/messages.properties b/src/main/resources/messages/messages.properties index 2d779d3c3..1b488e7b5 100644 --- a/src/main/resources/messages/messages.properties +++ b/src/main/resources/messages/messages.properties @@ -1,4 +1,4 @@ -welcome=Welcome +welcome=Welcome to the Pet Clinic required=is required notFound=has not been found duplicate=is already in use diff --git a/src/main/resources/templates/error.html b/src/main/resources/templates/error.html index 070e1c770..0f6655791 100644 --- a/src/main/resources/templates/error.html +++ b/src/main/resources/templates/error.html @@ -5,7 +5,7 @@

Something happened...

-

Exception message

+

Exception message

diff --git a/src/main/scss/header.scss b/src/main/scss/header.scss index 7cb1a7888..2482ff3ce 100644 --- a/src/main/scss/header.scss +++ b/src/main/scss/header.scss @@ -19,8 +19,8 @@ .navbar a.navbar-brand span { display: block; - width: 229px; - height: 46px; + width: 231px; + height: 44px; background: url("../images/spring-logo-dataflow.png") -1px -48px no-repeat; opacity: 0; -moz-transition: opacity 0.12s ease-in-out; diff --git a/src/main/scss/petclinic.scss b/src/main/scss/petclinic.scss index 065b8678a..643f6c805 100644 --- a/src/main/scss/petclinic.scss +++ b/src/main/scss/petclinic.scss @@ -105,7 +105,7 @@ h1 { .index-page--subtitle { font-size: 18px; - line-height: 24px; + line-height: 23px; margin: 0 0 30px; } @@ -114,7 +114,7 @@ h1 { } #job-params-modal .modal-dialog { - width: 90%; + width: 92%; margin-left:auto; margin-right:auto; }