From 172112492ee067234b9234497066a633862a7215 Mon Sep 17 00:00:00 2001 From: Tugdual Grall Date: Tue, 9 Jan 2024 09:05:34 +0100 Subject: [PATCH 1/6] Bump actions version to latest one (checkout * setup-java) --- .github/workflows/maven-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index 5de223fc6..4718a6ce5 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -18,9 +18,9 @@ jobs: java: [ '17' ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK ${{matrix.java}} - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: java-version: ${{matrix.java}} distribution: 'adopt' From a35189a9c56eb1d813890fe33be2e67c9ff43636 Mon Sep 17 00:00:00 2001 From: thomasperkins1123 Date: Tue, 9 Jan 2024 13:28:39 +0000 Subject: [PATCH 2/6] Add spring.javaformat to gradle --- build.gradle | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build.gradle b/build.gradle index a380108b8..71a02518d 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,12 @@ plugins { id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.4' id 'org.graalvm.buildtools.native' version '0.9.28' + id 'io.spring.javaformat' version '0.0.40' } apply plugin: 'java' +apply plugin: 'checkstyle' +apply plugin: 'io.spring.javaformat' group = 'org.springframework.samples' version = '3.2.0' @@ -39,6 +42,9 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-docker-compose' testImplementation 'org.testcontainers:junit-jupiter' testImplementation 'org.testcontainers:mysql' + + checkstyle 'io.spring.javaformat:spring-javaformat-checkstyle' + checkstyle 'io.spring.javaformat:spring-javaformat-gradle-plugin' } tasks.named('test') { From 4ad3b4edb59a3a44c5ac3ddd103e93062c3ea91b Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Mon, 29 Jan 2024 15:49:35 +0000 Subject: [PATCH 3/6] Remove checkstyle and javaformat plugins --- build.gradle | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 71a02518d..62057122b 100644 --- a/build.gradle +++ b/build.gradle @@ -7,8 +7,17 @@ plugins { } apply plugin: 'java' -apply plugin: 'checkstyle' -apply plugin: 'io.spring.javaformat' +// apply plugin: 'checkstyle' +// apply plugin: 'io.spring.javaformat' + +import io.spring.javaformat.gradle.SpringJavaFormatPlugin + +project.getPlugins() + .withType(SpringJavaFormatPlugin.class, + (javaFormat) -> project.getGradle() + .getStartParameter() + .getExcludedTaskNames() + .addAll(Set.of("checkFormatAot", "checkFormatAotTest"))); group = 'org.springframework.samples' version = '3.2.0' @@ -42,9 +51,8 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-docker-compose' testImplementation 'org.testcontainers:junit-jupiter' testImplementation 'org.testcontainers:mysql' - - checkstyle 'io.spring.javaformat:spring-javaformat-checkstyle' - checkstyle 'io.spring.javaformat:spring-javaformat-gradle-plugin' + +// checkstyle 'io.spring.javaformat:spring-javaformat-checkstyle:0.0.40' } tasks.named('test') { From 6fe21e5d0b457b3396d8fe422da33c24b54b4df5 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Tue, 30 Jan 2024 07:57:47 +0000 Subject: [PATCH 4/6] Remove checkstyle and leave behind spring javaformat --- build.gradle | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/build.gradle b/build.gradle index 62057122b..00847aebf 100644 --- a/build.gradle +++ b/build.gradle @@ -7,17 +7,9 @@ plugins { } apply plugin: 'java' -// apply plugin: 'checkstyle' -// apply plugin: 'io.spring.javaformat' +apply plugin: 'io.spring.javaformat' -import io.spring.javaformat.gradle.SpringJavaFormatPlugin - -project.getPlugins() - .withType(SpringJavaFormatPlugin.class, - (javaFormat) -> project.getGradle() - .getStartParameter() - .getExcludedTaskNames() - .addAll(Set.of("checkFormatAot", "checkFormatAotTest"))); +gradle.startParameter.excludedTaskNames += [ "checkFormatAot", "checkFormatAotTest" ] group = 'org.springframework.samples' version = '3.2.0' @@ -51,8 +43,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-docker-compose' testImplementation 'org.testcontainers:junit-jupiter' testImplementation 'org.testcontainers:mysql' - -// checkstyle 'io.spring.javaformat:spring-javaformat-checkstyle:0.0.40' } tasks.named('test') { From 2fe96130c083f5ed26832040468d58a7383ab79f Mon Sep 17 00:00:00 2001 From: shadab-stack Date: Tue, 24 Oct 2023 10:36:12 +0530 Subject: [PATCH 5/6] Confirmation messages displayed for 'Add, edit, or update' actions --- .../petclinic/PetClinicApplication.java | 4 +++ .../petclinic/owner/OwnerController.java | 13 ++++++--- .../petclinic/owner/PetController.java | 9 ++++-- .../petclinic/owner/VisitController.java | 4 ++- .../templates/owners/ownerDetails.html | 29 +++++++++++++++++-- 5 files changed, 48 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java b/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java index ac6e15030..6299a76f7 100644 --- a/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java +++ b/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java @@ -18,7 +18,11 @@ package org.springframework.samples.petclinic; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ImportRuntimeHints; +import org.springframework.web.servlet.i18n.SessionLocaleResolver; + +import java.util.Locale; /** * PetClinic Spring Boot Application. diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java index 329c82395..96e8b41a6 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java @@ -17,7 +17,7 @@ package org.springframework.samples.petclinic.owner; import java.util.List; import java.util.Map; - +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -34,6 +34,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import jakarta.validation.Valid; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; /** * @author Juergen Hoeller @@ -70,12 +71,14 @@ class OwnerController { } @PostMapping("/owners/new") - public String processCreationForm(@Valid Owner owner, BindingResult result) { + public String processCreationForm(@Valid Owner owner, BindingResult result, RedirectAttributes redirectAttributes) { if (result.hasErrors()) { + redirectAttributes.addFlashAttribute("error", "There was an error in creating the owner."); return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; } this.owners.save(owner); + redirectAttributes.addFlashAttribute("message", "New Owner Created"); return "redirect:/owners/" + owner.getId(); } @@ -133,14 +136,16 @@ class OwnerController { } @PostMapping("/owners/{ownerId}/edit") - public String processUpdateOwnerForm(@Valid Owner owner, BindingResult result, - @PathVariable("ownerId") int ownerId) { + public String processUpdateOwnerForm(@Valid Owner owner, BindingResult result, @PathVariable("ownerId") int ownerId, + RedirectAttributes redirectAttributes) { if (result.hasErrors()) { + redirectAttributes.addFlashAttribute("error", "There was an error in updating the owner."); return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; } owner.setId(ownerId); this.owners.save(owner); + redirectAttributes.addFlashAttribute("message", "Owner Values Updated"); return "redirect:/owners/{ownerId}"; } diff --git a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java index 057456643..bd61fcd97 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java @@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import jakarta.validation.Valid; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; /** * @author Juergen Hoeller @@ -98,7 +99,7 @@ class PetController { } @PostMapping("/pets/new") - public String processCreationForm(Owner owner, @Valid Pet pet, BindingResult result, ModelMap model) { + public String processCreationForm(Owner owner, @Valid Pet pet, BindingResult result, ModelMap model, RedirectAttributes redirectAttributes) { if (StringUtils.hasText(pet.getName()) && pet.isNew() && owner.getPet(pet.getName(), true) != null) { result.rejectValue("name", "duplicate", "already exists"); } @@ -115,18 +116,19 @@ class PetController { } this.owners.save(owner); + redirectAttributes.addFlashAttribute("message", "New Pet has been Added"); return "redirect:/owners/{ownerId}"; } @GetMapping("/pets/{petId}/edit") - public String initUpdateForm(Owner owner, @PathVariable("petId") int petId, ModelMap model) { + public String initUpdateForm(Owner owner, @PathVariable("petId") int petId, ModelMap model,RedirectAttributes redirectAttributes) { Pet pet = owner.getPet(petId); model.put("pet", pet); return VIEWS_PETS_CREATE_OR_UPDATE_FORM; } @PostMapping("/pets/{petId}/edit") - public String processUpdateForm(@Valid Pet pet, BindingResult result, Owner owner, ModelMap model) { + public String processUpdateForm(@Valid Pet pet, BindingResult result, Owner owner, ModelMap model,RedirectAttributes redirectAttributes) { String petName = pet.getName(); @@ -150,6 +152,7 @@ class PetController { owner.addPet(pet); this.owners.save(owner); + redirectAttributes.addFlashAttribute("message", "Pet details has been edited"); return "redirect:/owners/{ownerId}"; } diff --git a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java index c823d91f2..6b5278367 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java @@ -27,6 +27,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import jakarta.validation.Valid; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; /** * @author Juergen Hoeller @@ -81,13 +82,14 @@ class VisitController { // called @PostMapping("/owners/{ownerId}/pets/{petId}/visits/new") public String processNewVisitForm(@ModelAttribute Owner owner, @PathVariable int petId, @Valid Visit visit, - BindingResult result) { + BindingResult result, RedirectAttributes redirectAttributes) { if (result.hasErrors()) { return "pets/createOrUpdateVisitForm"; } owner.addVisit(petId, visit); this.owners.save(owner); + redirectAttributes.addFlashAttribute("message", "Your vist has been boked"); return "redirect:/owners/{ownerId}"; } diff --git a/src/main/resources/templates/owners/ownerDetails.html b/src/main/resources/templates/owners/ownerDetails.html index 41f7d1680..15bca4ad2 100644 --- a/src/main/resources/templates/owners/ownerDetails.html +++ b/src/main/resources/templates/owners/ownerDetails.html @@ -7,8 +7,18 @@

Owner Information

- - + +
+ +
+ +
+ +
+ + + + @@ -73,7 +83,20 @@
Name
- + + + From 836d111e9950f6abedb4fef7b4a94941b8dfedd8 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Wed, 31 Jan 2024 21:52:37 +0000 Subject: [PATCH 6/6] Fix formatting --- .../samples/petclinic/owner/OwnerController.java | 2 +- .../samples/petclinic/owner/PetController.java | 9 ++++++--- .../samples/petclinic/owner/VisitController.java | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java index 96e8b41a6..848d4f08e 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java @@ -137,7 +137,7 @@ class OwnerController { @PostMapping("/owners/{ownerId}/edit") public String processUpdateOwnerForm(@Valid Owner owner, BindingResult result, @PathVariable("ownerId") int ownerId, - RedirectAttributes redirectAttributes) { + RedirectAttributes redirectAttributes) { if (result.hasErrors()) { redirectAttributes.addFlashAttribute("error", "There was an error in updating the owner."); return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; diff --git a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java index bd61fcd97..781fb5805 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java @@ -99,7 +99,8 @@ class PetController { } @PostMapping("/pets/new") - public String processCreationForm(Owner owner, @Valid Pet pet, BindingResult result, ModelMap model, RedirectAttributes redirectAttributes) { + public String processCreationForm(Owner owner, @Valid Pet pet, BindingResult result, ModelMap model, + RedirectAttributes redirectAttributes) { if (StringUtils.hasText(pet.getName()) && pet.isNew() && owner.getPet(pet.getName(), true) != null) { result.rejectValue("name", "duplicate", "already exists"); } @@ -121,14 +122,16 @@ class PetController { } @GetMapping("/pets/{petId}/edit") - public String initUpdateForm(Owner owner, @PathVariable("petId") int petId, ModelMap model,RedirectAttributes redirectAttributes) { + public String initUpdateForm(Owner owner, @PathVariable("petId") int petId, ModelMap model, + RedirectAttributes redirectAttributes) { Pet pet = owner.getPet(petId); model.put("pet", pet); return VIEWS_PETS_CREATE_OR_UPDATE_FORM; } @PostMapping("/pets/{petId}/edit") - public String processUpdateForm(@Valid Pet pet, BindingResult result, Owner owner, ModelMap model,RedirectAttributes redirectAttributes) { + public String processUpdateForm(@Valid Pet pet, BindingResult result, Owner owner, ModelMap model, + RedirectAttributes redirectAttributes) { String petName = pet.getName(); diff --git a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java index 6b5278367..fde7493a0 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java @@ -82,7 +82,7 @@ class VisitController { // called @PostMapping("/owners/{ownerId}/pets/{petId}/visits/new") public String processNewVisitForm(@ModelAttribute Owner owner, @PathVariable int petId, @Valid Visit visit, - BindingResult result, RedirectAttributes redirectAttributes) { + BindingResult result, RedirectAttributes redirectAttributes) { if (result.hasErrors()) { return "pets/createOrUpdateVisitForm"; }