From 2fe96130c083f5ed26832040468d58a7383ab79f Mon Sep 17 00:00:00 2001 From: shadab-stack Date: Tue, 24 Oct 2023 10:36:12 +0530 Subject: [PATCH 1/5] 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 2/5] 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"; } From ee6573cee08f7aae79fac21e15a55e5ff43b5483 Mon Sep 17 00:00:00 2001 From: thomasperkins1123 Date: Wed, 31 Jan 2024 12:45:31 +0000 Subject: [PATCH 3/5] Add checkstyle for gradle --- build.gradle | 25 ++++++++++++++++++- config/nohttp/suppressions.xml | 11 ++++++++ .../nohttp-checkstyle-suppressions.xml | 1 + 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 config/nohttp/suppressions.xml diff --git a/build.gradle b/build.gradle index 00847aebf..ede413a44 100644 --- a/build.gradle +++ b/build.gradle @@ -3,10 +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' + id 'io.spring.javaformat' version '0.0.41' + id "io.spring.nohttp" version "0.0.11" } apply plugin: 'java' +apply plugin: 'checkstyle' apply plugin: 'io.spring.javaformat' gradle.startParameter.excludedTaskNames += [ "checkFormatAot", "checkFormatAotTest" ] @@ -43,8 +45,29 @@ 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.41' + checkstyle 'com.puppycrawl.tools:checkstyle:10.12.5' } tasks.named('test') { useJUnitPlatform() } + +checkstyle { + configFile file("${project.rootDir}/src/checkstyle/nohttp-checkstyle.xml") +} + +tasks.named("formatMain").configure { dependsOn("checkstyleMain") } +tasks.named("formatMain").configure { dependsOn("checkstyleNohttp") } + +tasks.named("formatTest").configure { dependsOn("checkstyleTest") } +tasks.named("formatTest").configure { dependsOn("checkstyleNohttp") } + +checkstyleAot.enabled = false +checkstyleAotTest.enabled = false + +checkFormatAot.enabled = false +checkFormatAotTest.enabled = false + +formatAot.enabled = false +formatAotTest.enabled = false diff --git a/config/nohttp/suppressions.xml b/config/nohttp/suppressions.xml new file mode 100644 index 000000000..8a758b718 --- /dev/null +++ b/config/nohttp/suppressions.xml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/src/checkstyle/nohttp-checkstyle-suppressions.xml b/src/checkstyle/nohttp-checkstyle-suppressions.xml index 7c118a74f..8a758b718 100644 --- a/src/checkstyle/nohttp-checkstyle-suppressions.xml +++ b/src/checkstyle/nohttp-checkstyle-suppressions.xml @@ -6,5 +6,6 @@ + From da1c93d367223dd3e648d3861f95fb9c40314f8a Mon Sep 17 00:00:00 2001 From: thomasperkins1123 Date: Thu, 8 Feb 2024 15:55:56 +0000 Subject: [PATCH 4/5] Make suppresions work on windows paths --- config/nohttp/suppressions.xml | 8 ++++---- src/checkstyle/nohttp-checkstyle-suppressions.xml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/config/nohttp/suppressions.xml b/config/nohttp/suppressions.xml index 8a758b718..f00599bb2 100644 --- a/config/nohttp/suppressions.xml +++ b/config/nohttp/suppressions.xml @@ -3,9 +3,9 @@ "-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN" "https://checkstyle.org/dtds/suppressions_1_2.dtd"> - - - - + + + + diff --git a/src/checkstyle/nohttp-checkstyle-suppressions.xml b/src/checkstyle/nohttp-checkstyle-suppressions.xml index 8a758b718..f00599bb2 100644 --- a/src/checkstyle/nohttp-checkstyle-suppressions.xml +++ b/src/checkstyle/nohttp-checkstyle-suppressions.xml @@ -3,9 +3,9 @@ "-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN" "https://checkstyle.org/dtds/suppressions_1_2.dtd"> - - - - + + + + From a2f1ad5503a7987a94cdc18a9bc2af2ef8d52af7 Mon Sep 17 00:00:00 2001 From: thomasperkins1123 Date: Wed, 14 Feb 2024 01:56:03 +0000 Subject: [PATCH 5/5] Make maven and gradle share checkstyle configuration --- build.gradle | 8 +++++++- config/nohttp/suppressions.xml | 11 ----------- pom.xml | 4 +++- src/checkstyle/nohttp-checkstyle.xml | 3 +++ 4 files changed, 13 insertions(+), 13 deletions(-) delete mode 100644 config/nohttp/suppressions.xml diff --git a/build.gradle b/build.gradle index ede413a44..2a4ebf14e 100644 --- a/build.gradle +++ b/build.gradle @@ -54,7 +54,13 @@ tasks.named('test') { } checkstyle { - configFile file("${project.rootDir}/src/checkstyle/nohttp-checkstyle.xml") + configDirectory = project.file('src/checkstyle') + configFile = file('src/checkstyle/nohttp-checkstyle.xml') +} + +checkstyleNohttp { + configDirectory = project.file('src/checkstyle') + configFile = file('src/checkstyle/nohttp-checkstyle.xml') } tasks.named("formatMain").configure { dependsOn("checkstyleMain") } diff --git a/config/nohttp/suppressions.xml b/config/nohttp/suppressions.xml deleted file mode 100644 index f00599bb2..000000000 --- a/config/nohttp/suppressions.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/pom.xml b/pom.xml index 8a3d6f151..cf47f8aa6 100644 --- a/pom.xml +++ b/pom.xml @@ -198,10 +198,12 @@ validate src/checkstyle/nohttp-checkstyle.xml - src/checkstyle/nohttp-checkstyle-suppressions.xml ${basedir} **/* **/.git/**/*,**/.idea/**/*,**/target/**/,**/.flattened-pom.xml,**/*.class + + config_loc=${basedir}/src/checkstyle/ + check diff --git a/src/checkstyle/nohttp-checkstyle.xml b/src/checkstyle/nohttp-checkstyle.xml index e6205127b..f886411e6 100644 --- a/src/checkstyle/nohttp-checkstyle.xml +++ b/src/checkstyle/nohttp-checkstyle.xml @@ -4,4 +4,7 @@ "https://checkstyle.org/dtds/configuration_1_2.dtd"> + + +