From a7dd2ffc29f3b48538f54ac9ed92b2f41ccf3633 Mon Sep 17 00:00:00 2001 From: atsmgv Date: Mon, 26 Aug 2024 10:42:11 +0200 Subject: [PATCH] Migration successfully --- pom.xml | 69 ++++++++----------- rewrite.yml | 13 +++- .../samples/petclinic/model/BaseEntity.java | 8 +-- .../samples/petclinic/model/NamedEntity.java | 4 +- .../samples/petclinic/model/Person.java | 7 +- .../samples/petclinic/owner/Owner.java | 14 ++-- .../petclinic/owner/OwnerController.java | 10 ++- .../samples/petclinic/owner/Pet.java | 20 +++--- .../petclinic/owner/PetController.java | 8 +-- .../samples/petclinic/owner/PetType.java | 4 +- .../petclinic/owner/PetTypeFormatter.java | 2 - .../petclinic/owner/VisitController.java | 8 +-- .../petclinic/system/CrashController.java | 5 +- .../samples/petclinic/vet/Specialty.java | 4 +- .../samples/petclinic/vet/Vet.java | 14 ++-- .../samples/petclinic/vet/VetController.java | 2 - .../samples/petclinic/vet/Vets.java | 4 +- .../samples/petclinic/visit/Visit.java | 12 ++-- src/main/resources/application.properties | 6 +- .../petclinic/model/ValidatorTests.java | 8 +-- .../petclinic/owner/OwnerControllerTests.java | 9 +-- .../petclinic/owner/PetControllerTests.java | 9 +-- .../owner/PetTypeFormatterTests.java | 27 ++++---- .../petclinic/owner/VisitControllerTests.java | 9 +-- .../petclinic/service/ClinicServiceTests.java | 5 +- .../system/CrashControllerTests.java | 10 +-- .../system/ProductionConfigurationTests.java | 5 +- .../petclinic/vet/VetControllerTests.java | 11 ++- .../samples/petclinic/vet/VetTests.java | 3 +- 29 files changed, 139 insertions(+), 171 deletions(-) diff --git a/pom.xml b/pom.xml index e41c75b76..90af23e96 100644 --- a/pom.xml +++ b/pom.xml @@ -10,14 +10,16 @@ org.springframework.boot spring-boot-starter-parent - 1.5.4.RELEASE + 3.3.3 petclinic + 17 + 17 - 1.8 + 17 UTF-8 UTF-8 @@ -25,8 +27,7 @@ 3.3.6 1.11.4 2.2.4 - 1.8.0 - 3.0.6.RELEASE + 2.1.1 2.7 @@ -34,6 +35,10 @@ + + jakarta.xml.bind + jakarta.xml.bind-api + org.springframework.boot spring-boot-starter-actuator @@ -60,6 +65,10 @@ + + org.springframework.boot + spring-boot-starter-validation + org.springframework.boot spring-boot-starter-test @@ -73,8 +82,8 @@ runtime - mysql - mysql-connector-java + com.mysql + mysql-connector-j runtime @@ -86,12 +95,13 @@ org.ehcache ehcache + jakarta org.webjars - webjars-locator + webjars-locator-core org.webjars @@ -140,22 +150,6 @@ - - org.codehaus.mojo - cobertura-maven-plugin - ${cobertura.version} - - - - - - - clean - check - - - - @@ -209,15 +203,13 @@ org.openrewrite.maven rewrite-maven-plugin - 5.36.0 + 5.39.1 true - org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_3 @@ -226,9 +218,13 @@ org.openrewrite.recipe rewrite-spring - 5.15.1 + 5.17.0 + + + org.springframework + spring-web + 6.1.0 - @@ -236,17 +232,6 @@ - - org.codehaus.mojo - cobertura-maven-plugin - ${cobertura.version} - - - html - - - - diff --git a/rewrite.yml b/rewrite.yml index c1271d66e..10b6c8eb5 100644 --- a/rewrite.yml +++ b/rewrite.yml @@ -1,6 +1,6 @@ --- type: specs.openrewrite.org/v1beta/recipe -name: com.example.MigrateToSpringBoot3_3 +name: com.example.MigrateToSpringBoot3_3_Before_Solve_Issues displayName: Migrate to Spring Boot and add some fixes causesAnotherCycle: true recipeList: @@ -15,3 +15,14 @@ recipeList: groupId: jakarta.xml.bind artifactId: jakarta.xml.bind-api newVersion: 4.0.2 +--- +type: specs.openrewrite.org/v1beta/recipe +name: com.example.ReplaceStringLiteral +displayName: Replace String literal with constant example +recipeList: + - org.openrewrite.java.ReplaceStringLiteralWithConstant: + literalValue: application/json;charset=UTF-8 + fullyQualifiedConstantName: org.springframework.http.MediaType.APPLICATION_JSON_VALUE + - org.openrewrite.java.migrate.ReplaceStringLiteralValue: + oldLiteralValue: may not be empty + newLiteralValue: must not be empty \ No newline at end of file diff --git a/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java b/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java index 86cc21092..d45134c38 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java +++ b/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java @@ -17,10 +17,10 @@ package org.springframework.samples.petclinic.model; import java.io.Serializable; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.MappedSuperclass; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.MappedSuperclass; /** * Simple JavaBean domain object with an id property. Used as a base class for objects diff --git a/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java b/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java index d66c97ae7..83bb717d1 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java +++ b/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java @@ -15,8 +15,8 @@ */ package org.springframework.samples.petclinic.model; -import javax.persistence.Column; -import javax.persistence.MappedSuperclass; +import jakarta.persistence.Column; +import jakarta.persistence.MappedSuperclass; /** diff --git a/src/main/java/org/springframework/samples/petclinic/model/Person.java b/src/main/java/org/springframework/samples/petclinic/model/Person.java index 4cb7481e0..7294998eb 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/Person.java +++ b/src/main/java/org/springframework/samples/petclinic/model/Person.java @@ -15,10 +15,9 @@ */ package org.springframework.samples.petclinic.model; -import javax.persistence.Column; -import javax.persistence.MappedSuperclass; - -import org.hibernate.validator.constraints.NotEmpty; +import jakarta.persistence.Column; +import jakarta.persistence.MappedSuperclass; +import jakarta.validation.constraints.NotEmpty; /** * Simple JavaBean domain object representing an person. diff --git a/src/main/java/org/springframework/samples/petclinic/owner/Owner.java b/src/main/java/org/springframework/samples/petclinic/owner/Owner.java index f6fcae7ac..106c9a580 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/Owner.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/Owner.java @@ -21,14 +21,14 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.OneToMany; -import javax.persistence.Table; -import javax.validation.constraints.Digits; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.constraints.Digits; +import jakarta.validation.constraints.NotEmpty; -import org.hibernate.validator.constraints.NotEmpty; import org.springframework.beans.support.MutableSortDefinition; import org.springframework.beans.support.PropertyComparator; import org.springframework.core.style.ToStringCreator; 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 d914ed745..a25870bc4 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java @@ -15,7 +15,6 @@ */ package org.springframework.samples.petclinic.owner; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -26,7 +25,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.servlet.ModelAndView; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.Collection; import java.util.Map; @@ -43,7 +42,6 @@ class OwnerController { private final OwnerRepository owners; - @Autowired public OwnerController(OwnerRepository clinicService) { this.owners = clinicService; } @@ -102,14 +100,14 @@ class OwnerController { } @GetMapping("/owners/{ownerId}/edit") - public String initUpdateOwnerForm(@PathVariable("ownerId") int ownerId, Model model) { + public String initUpdateOwnerForm(@PathVariable int ownerId, Model model) { Owner owner = this.owners.findById(ownerId); model.addAttribute(owner); return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; } @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 int ownerId) { if (result.hasErrors()) { return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; } else { @@ -126,7 +124,7 @@ class OwnerController { * @return a ModelMap with the model attributes for the view */ @GetMapping("/owners/{ownerId}") - public ModelAndView showOwner(@PathVariable("ownerId") int ownerId) { + public ModelAndView showOwner(@PathVariable int ownerId) { ModelAndView mav = new ModelAndView("owners/ownerDetails"); mav.addObject(this.owners.findById(ownerId)); return mav; diff --git a/src/main/java/org/springframework/samples/petclinic/owner/Pet.java b/src/main/java/org/springframework/samples/petclinic/owner/Pet.java index 5e226a180..106934bb8 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/Pet.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/Pet.java @@ -23,16 +23,16 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Set; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.OneToMany; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.persistence.Temporal; +import jakarta.persistence.TemporalType; import org.springframework.beans.support.MutableSortDefinition; import org.springframework.beans.support.PropertyComparator; 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 9c52e0309..8694be1de 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java @@ -15,7 +15,6 @@ */ package org.springframework.samples.petclinic.owner; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.util.StringUtils; @@ -23,7 +22,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.Collection; /** @@ -39,7 +38,6 @@ class PetController { private final PetRepository pets; private final OwnerRepository owners; - @Autowired public PetController(PetRepository pets, OwnerRepository owners) { this.pets = pets; this.owners = owners; @@ -51,7 +49,7 @@ class PetController { } @ModelAttribute("owner") - public Owner findOwner(@PathVariable("ownerId") int ownerId) { + public Owner findOwner(@PathVariable int ownerId) { return this.owners.findById(ownerId); } @@ -89,7 +87,7 @@ class PetController { } @GetMapping("/pets/{petId}/edit") - public String initUpdateForm(@PathVariable("petId") int petId, ModelMap model) { + public String initUpdateForm(@PathVariable int petId, ModelMap model) { Pet pet = this.pets.findById(petId); model.put("pet", pet); return VIEWS_PETS_CREATE_OR_UPDATE_FORM; diff --git a/src/main/java/org/springframework/samples/petclinic/owner/PetType.java b/src/main/java/org/springframework/samples/petclinic/owner/PetType.java index ac827b310..e6a727192 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetType.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/PetType.java @@ -15,8 +15,8 @@ */ package org.springframework.samples.petclinic.owner; -import javax.persistence.Entity; -import javax.persistence.Table; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; import org.springframework.samples.petclinic.model.NamedEntity; diff --git a/src/main/java/org/springframework/samples/petclinic/owner/PetTypeFormatter.java b/src/main/java/org/springframework/samples/petclinic/owner/PetTypeFormatter.java index 78451ca28..8ad364f4f 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetTypeFormatter.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/PetTypeFormatter.java @@ -20,7 +20,6 @@ import java.text.ParseException; import java.util.Collection; import java.util.Locale; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.Formatter; import org.springframework.stereotype.Component; @@ -41,7 +40,6 @@ public class PetTypeFormatter implements Formatter { private final PetRepository pets; - @Autowired public PetTypeFormatter(PetRepository pets) { this.pets = pets; } 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 d7afed12e..c7e6109e3 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java @@ -15,7 +15,6 @@ */ package org.springframework.samples.petclinic.owner; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.samples.petclinic.visit.Visit; import org.springframework.samples.petclinic.visit.VisitRepository; import org.springframework.stereotype.Controller; @@ -23,7 +22,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.Map; /** @@ -40,7 +39,6 @@ class VisitController { private final PetRepository pets; - @Autowired public VisitController(VisitRepository visits, PetRepository pets) { this.visits = visits; this.pets = pets; @@ -62,7 +60,7 @@ class VisitController { * @return Pet */ @ModelAttribute("visit") - public Visit loadPetWithVisit(@PathVariable("petId") int petId, Map model) { + public Visit loadPetWithVisit(@PathVariable int petId, Map model) { Pet pet = this.pets.findById(petId); model.put("pet", pet); Visit visit = new Visit(); @@ -72,7 +70,7 @@ class VisitController { // Spring MVC calls method loadPetWithVisit(...) before initNewVisitForm is called @GetMapping("/owners/*/pets/{petId}/visits/new") - public String initNewVisitForm(@PathVariable("petId") int petId, Map model) { + public String initNewVisitForm(@PathVariable int petId, Map model) { return "pets/createOrUpdateVisitForm"; } diff --git a/src/main/java/org/springframework/samples/petclinic/system/CrashController.java b/src/main/java/org/springframework/samples/petclinic/system/CrashController.java index c18c04dd8..4421b276e 100644 --- a/src/main/java/org/springframework/samples/petclinic/system/CrashController.java +++ b/src/main/java/org/springframework/samples/petclinic/system/CrashController.java @@ -33,7 +33,10 @@ class CrashController { @GetMapping("/oups") public String triggerException() { throw new RuntimeException( - "Expected: controller used to showcase what " + "happens when an exception is thrown"); + """ + Expected: controller used to showcase what \ + happens when an exception is thrown\ + """); } } diff --git a/src/main/java/org/springframework/samples/petclinic/vet/Specialty.java b/src/main/java/org/springframework/samples/petclinic/vet/Specialty.java index 5691c2434..7727e21c5 100644 --- a/src/main/java/org/springframework/samples/petclinic/vet/Specialty.java +++ b/src/main/java/org/springframework/samples/petclinic/vet/Specialty.java @@ -17,8 +17,8 @@ package org.springframework.samples.petclinic.vet; import java.io.Serializable; -import javax.persistence.Entity; -import javax.persistence.Table; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; import org.springframework.samples.petclinic.model.NamedEntity; diff --git a/src/main/java/org/springframework/samples/petclinic/vet/Vet.java b/src/main/java/org/springframework/samples/petclinic/vet/Vet.java index 43aecc41e..d2841ddf8 100644 --- a/src/main/java/org/springframework/samples/petclinic/vet/Vet.java +++ b/src/main/java/org/springframework/samples/petclinic/vet/Vet.java @@ -21,13 +21,13 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.JoinColumn; -import javax.persistence.JoinTable; -import javax.persistence.ManyToMany; -import javax.persistence.Table; -import javax.xml.bind.annotation.XmlElement; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.Table; +import jakarta.xml.bind.annotation.XmlElement; import org.springframework.beans.support.MutableSortDefinition; import org.springframework.beans.support.PropertyComparator; diff --git a/src/main/java/org/springframework/samples/petclinic/vet/VetController.java b/src/main/java/org/springframework/samples/petclinic/vet/VetController.java index 7ce8374ec..ddaa364d0 100644 --- a/src/main/java/org/springframework/samples/petclinic/vet/VetController.java +++ b/src/main/java/org/springframework/samples/petclinic/vet/VetController.java @@ -15,7 +15,6 @@ */ package org.springframework.samples.petclinic.vet; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -33,7 +32,6 @@ class VetController { private final VetRepository vets; - @Autowired public VetController(VetRepository clinicService) { this.vets = clinicService; } diff --git a/src/main/java/org/springframework/samples/petclinic/vet/Vets.java b/src/main/java/org/springframework/samples/petclinic/vet/Vets.java index f5b24c3fc..c90b65279 100644 --- a/src/main/java/org/springframework/samples/petclinic/vet/Vets.java +++ b/src/main/java/org/springframework/samples/petclinic/vet/Vets.java @@ -18,8 +18,8 @@ package org.springframework.samples.petclinic.vet; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; /** * Simple domain object representing a list of veterinarians. Mostly here to be used for the 'vets' {@link diff --git a/src/main/java/org/springframework/samples/petclinic/visit/Visit.java b/src/main/java/org/springframework/samples/petclinic/visit/Visit.java index f83d1463c..c775d9d1a 100644 --- a/src/main/java/org/springframework/samples/petclinic/visit/Visit.java +++ b/src/main/java/org/springframework/samples/petclinic/visit/Visit.java @@ -17,13 +17,13 @@ package org.springframework.samples.petclinic.visit; import java.util.Date; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.persistence.Temporal; +import jakarta.persistence.TemporalType; +import jakarta.validation.constraints.NotEmpty; -import org.hibernate.validator.constraints.NotEmpty; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.samples.petclinic.model.BaseEntity; diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index fb07c6c50..c9a938431 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,7 +1,7 @@ # database init, supports mysql too database=hsqldb -spring.datasource.schema=classpath*:db/${database}/schema.sql -spring.datasource.data=classpath*:db/${database}/data.sql +spring.sql.init.schema-locations=classpath*:db/${database}/schema.sql +spring.sql.init.data-locations=classpath*:db/${database}/data.sql # Web spring.thymeleaf.mode=HTML @@ -13,7 +13,7 @@ spring.jpa.hibernate.ddl-auto=none spring.messages.basename=messages/messages # Actuator / Management -management.contextPath=/manage +management.server.base-path=/manage # Spring Boot 1.5 makes actuator secure by default management.security.enabled=false diff --git a/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java b/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java index b836d0cc2..1c1965528 100644 --- a/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java +++ b/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java @@ -5,10 +5,10 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.Locale; import java.util.Set; -import javax.validation.ConstraintViolation; -import javax.validation.Validator; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.Validator; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; @@ -39,7 +39,7 @@ public class ValidatorTests { assertThat(constraintViolations.size()).isEqualTo(1); ConstraintViolation violation = constraintViolations.iterator().next(); assertThat(violation.getPropertyPath().toString()).isEqualTo("firstName"); - assertThat(violation.getMessage()).isEqualTo("may not be empty"); + assertThat(violation.getMessage()).isEqualTo("must not be empty"); } } diff --git a/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java b/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java index 7fccb3b04..5c3af0d94 100644 --- a/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java @@ -10,16 +10,14 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; import org.assertj.core.util.Lists; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.samples.petclinic.owner.Owner; import org.springframework.samples.petclinic.owner.OwnerController; import org.springframework.samples.petclinic.owner.OwnerRepository; -import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; /** @@ -27,7 +25,6 @@ import org.springframework.test.web.servlet.MockMvc; * * @author Colin But */ -@RunWith(SpringRunner.class) @WebMvcTest(OwnerController.class) public class OwnerControllerTests { @@ -41,7 +38,7 @@ public class OwnerControllerTests { private Owner george; - @Before + @BeforeEach public void setup() { george = new Owner(); george.setId(TEST_OWNER_ID); diff --git a/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTests.java b/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTests.java index f95d7c87c..9944da23b 100644 --- a/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTests.java @@ -8,9 +8,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; import org.assertj.core.util.Lists; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; @@ -23,7 +22,6 @@ import org.springframework.samples.petclinic.owner.PetController; import org.springframework.samples.petclinic.owner.PetRepository; import org.springframework.samples.petclinic.owner.PetType; import org.springframework.samples.petclinic.owner.PetTypeFormatter; -import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; /** @@ -31,7 +29,6 @@ import org.springframework.test.web.servlet.MockMvc; * * @author Colin But */ -@RunWith(SpringRunner.class) @WebMvcTest(value = PetController.class, includeFilters = @ComponentScan.Filter( value = PetTypeFormatter.class, @@ -51,7 +48,7 @@ public class PetControllerTests { @MockBean private OwnerRepository owners; - @Before + @BeforeEach public void setup() { PetType cat = new PetType(); cat.setId(3); diff --git a/src/test/java/org/springframework/samples/petclinic/owner/PetTypeFormatterTests.java b/src/test/java/org/springframework/samples/petclinic/owner/PetTypeFormatterTests.java index f332257bc..7dacf0c72 100644 --- a/src/test/java/org/springframework/samples/petclinic/owner/PetTypeFormatterTests.java +++ b/src/test/java/org/springframework/samples/petclinic/owner/PetTypeFormatterTests.java @@ -1,19 +1,20 @@ package org.springframework.samples.petclinic.owner; -import static org.junit.Assert.assertEquals; - import java.text.ParseException; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Locale; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.samples.petclinic.owner.PetRepository; import org.springframework.samples.petclinic.owner.PetType; import org.springframework.samples.petclinic.owner.PetTypeFormatter; @@ -23,7 +24,7 @@ import org.springframework.samples.petclinic.owner.PetTypeFormatter; * * @author Colin But */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class PetTypeFormatterTests { @Mock @@ -31,7 +32,7 @@ public class PetTypeFormatterTests { private PetTypeFormatter petTypeFormatter; - @Before + @BeforeEach public void setup() { this.petTypeFormatter = new PetTypeFormatter(pets); } @@ -51,10 +52,12 @@ public class PetTypeFormatterTests { assertEquals("Bird", petType.getName()); } - @Test(expected = ParseException.class) - public void shouldThrowParseException() throws ParseException { - Mockito.when(this.pets.findPetTypes()).thenReturn(makePetTypes()); - petTypeFormatter.parse("Fish", Locale.ENGLISH); + @Test + public void shouldThrowParseException() { + assertThrows(ParseException.class, () -> { + Mockito.when(this.pets.findPetTypes()).thenReturn(makePetTypes()); + petTypeFormatter.parse("Fish", Locale.ENGLISH); + }); } /** diff --git a/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java b/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java index 08d61360e..7cc65f2c1 100644 --- a/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java @@ -7,9 +7,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; @@ -17,7 +16,6 @@ import org.springframework.samples.petclinic.owner.Pet; import org.springframework.samples.petclinic.owner.PetRepository; import org.springframework.samples.petclinic.owner.VisitController; import org.springframework.samples.petclinic.visit.VisitRepository; -import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; /** @@ -25,7 +23,6 @@ import org.springframework.test.web.servlet.MockMvc; * * @author Colin But */ -@RunWith(SpringRunner.class) @WebMvcTest(VisitController.class) public class VisitControllerTests { @@ -40,7 +37,7 @@ public class VisitControllerTests { @MockBean private PetRepository pets; - @Before + @BeforeEach public void init() { given(this.pets.findById(TEST_PET_ID)).willReturn(new Pet()); } diff --git a/src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java b/src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java index 7ed5bf8a5..37c8c4342 100644 --- a/src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java +++ b/src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java @@ -5,8 +5,7 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.Collection; import java.util.Date; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.context.annotation.ComponentScan; @@ -20,7 +19,6 @@ import org.springframework.samples.petclinic.vet.VetRepository; import org.springframework.samples.petclinic.visit.Visit; import org.springframework.samples.petclinic.visit.VisitRepository; import org.springframework.stereotype.Service; -import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; /** @@ -44,7 +42,6 @@ import org.springframework.transaction.annotation.Transactional; * @author Dave Syer */ -@RunWith(SpringRunner.class) @DataJpaTest(includeFilters = @ComponentScan.Filter(Service.class)) public class ClinicServiceTests { diff --git a/src/test/java/org/springframework/samples/petclinic/system/CrashControllerTests.java b/src/test/java/org/springframework/samples/petclinic/system/CrashControllerTests.java index 3f108bfe9..5f2ca2f45 100644 --- a/src/test/java/org/springframework/samples/petclinic/system/CrashControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/system/CrashControllerTests.java @@ -1,12 +1,10 @@ package org.springframework.samples.petclinic.system; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; -import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; @@ -20,9 +18,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. * * @author Colin But */ -@RunWith(SpringRunner.class) -// Waiting https://github.com/spring-projects/spring-boot/issues/5574 -@Ignore +@Disabled @WebMvcTest(controllers = CrashController.class) public class CrashControllerTests { diff --git a/src/test/java/org/springframework/samples/petclinic/system/ProductionConfigurationTests.java b/src/test/java/org/springframework/samples/petclinic/system/ProductionConfigurationTests.java index 9636e3623..5d436ba19 100644 --- a/src/test/java/org/springframework/samples/petclinic/system/ProductionConfigurationTests.java +++ b/src/test/java/org/springframework/samples/petclinic/system/ProductionConfigurationTests.java @@ -1,14 +1,11 @@ package org.springframework.samples.petclinic.system; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.samples.petclinic.vet.VetRepository; -import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class ProductionConfigurationTests { diff --git a/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java b/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java index ce6adf8e0..82b5eedb7 100644 --- a/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java @@ -10,9 +10,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; import org.assertj.core.util.Lists; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; @@ -21,14 +20,12 @@ import org.springframework.samples.petclinic.vet.Specialty; import org.springframework.samples.petclinic.vet.Vet; import org.springframework.samples.petclinic.vet.VetController; import org.springframework.samples.petclinic.vet.VetRepository; -import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; /** * Test class for the {@link VetController} */ -@RunWith(SpringRunner.class) @WebMvcTest(VetController.class) public class VetControllerTests { @@ -38,7 +35,7 @@ public class VetControllerTests { @MockBean private VetRepository vets; - @Before + @BeforeEach public void setup() { Vet james = new Vet(); james.setFirstName("James"); @@ -67,7 +64,7 @@ public class VetControllerTests { public void testShowResourcesVetList() throws Exception { ResultActions actions = mockMvc.perform(get("/vets.json").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()); - actions.andExpect(content().contentType("application/json;charset=UTF-8")) + actions.andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)) .andExpect(jsonPath("$.vetList[0].id").value(1)); } diff --git a/src/test/java/org/springframework/samples/petclinic/vet/VetTests.java b/src/test/java/org/springframework/samples/petclinic/vet/VetTests.java index de3a7b9bb..c512e8648 100644 --- a/src/test/java/org/springframework/samples/petclinic/vet/VetTests.java +++ b/src/test/java/org/springframework/samples/petclinic/vet/VetTests.java @@ -15,8 +15,7 @@ */ package org.springframework.samples.petclinic.vet; -import org.junit.Test; - +import org.junit.jupiter.api.Test; import org.springframework.util.SerializationUtils; import static org.assertj.core.api.Assertions.assertThat;