From 6fe1d6b1fbda34222ac102015a175815472cf216 Mon Sep 17 00:00:00 2001 From: abemorcardc Date: Wed, 17 Mar 2021 20:39:03 +0100 Subject: [PATCH 1/3] =?UTF-8?q?Eliminadas=20clases=20a=20excepci=C3=B3n=20?= =?UTF-8?q?de=20Owner=20y=20las=20b=C3=A1sicas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 14 +- .../samples/petclinic/owner/Owner.java | 52 ---- .../petclinic/owner/OwnerController.java | 20 +- .../petclinic/owner/OwnerRepository.java | 4 +- .../samples/petclinic/owner/Pet.java | 112 --------- .../petclinic/owner/PetController.java | 113 --------- .../petclinic/owner/PetRepository.java | 59 ----- .../samples/petclinic/owner/PetType.java | 30 --- .../petclinic/owner/PetTypeFormatter.java | 62 ----- .../samples/petclinic/owner/PetValidator.java | 64 ----- .../petclinic/owner/VisitController.java | 92 ------- .../samples/petclinic/vet/Specialty.java | 34 --- .../samples/petclinic/vet/Vet.java | 79 ------ .../samples/petclinic/vet/VetController.java | 58 ----- .../samples/petclinic/vet/VetRepository.java | 46 ---- .../samples/petclinic/vet/Vets.java | 43 ---- .../samples/petclinic/visit/Visit.java | 80 ------ .../petclinic/visit/VisitRepository.java | 46 ---- .../templates/owners/ownerDetails.html | 44 +--- .../templates/owners/ownersList.html | 1 - .../petclinic/PetclinicIntegrationTests.java | 10 +- .../petclinic/owner/OwnerControllerTests.java | 38 +-- .../petclinic/owner/PetControllerTests.java | 113 --------- .../owner/PetTypeFormatterTests.java | 95 -------- .../petclinic/owner/VisitControllerTests.java | 78 ------ .../petclinic/service/ClinicServiceTests.java | 227 ------------------ .../petclinic/vet/VetControllerTests.java | 80 ------ .../samples/petclinic/vet/VetTests.java | 40 --- 28 files changed, 16 insertions(+), 1718 deletions(-) delete mode 100755 src/main/java/org/springframework/samples/petclinic/owner/Pet.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/owner/PetController.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/owner/PetRepository.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/owner/PetType.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/owner/PetTypeFormatter.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/owner/PetValidator.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/owner/VisitController.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/vet/Specialty.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/vet/Vet.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/vet/VetController.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/vet/VetRepository.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/vet/Vets.java delete mode 100755 src/main/java/org/springframework/samples/petclinic/visit/Visit.java delete mode 100644 src/main/java/org/springframework/samples/petclinic/visit/VisitRepository.java delete mode 100755 src/test/java/org/springframework/samples/petclinic/owner/PetControllerTests.java delete mode 100644 src/test/java/org/springframework/samples/petclinic/owner/PetTypeFormatterTests.java delete mode 100644 src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java delete mode 100644 src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java delete mode 100644 src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java delete mode 100644 src/test/java/org/springframework/samples/petclinic/vet/VetTests.java diff --git a/pom.xml b/pom.xml index cdd6c4522..14a8352b7 100644 --- a/pom.xml +++ b/pom.xml @@ -123,19 +123,7 @@ - - io.spring.javaformat - spring-javaformat-maven-plugin - ${spring-format.version} - - - validate - - validate - - - - + org.apache.maven.plugins maven-checkstyle-plugin 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 61083bc8d..396743569 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/Owner.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/Owner.java @@ -59,8 +59,6 @@ public class Owner extends Person { @Digits(fraction = 0, integer = 10) private String telephone; - @OneToMany(cascade = CascadeType.ALL, mappedBy = "owner") - private Set pets; public String getAddress() { return this.address; @@ -86,57 +84,7 @@ public class Owner extends Person { this.telephone = telephone; } - protected Set getPetsInternal() { - if (this.pets == null) { - this.pets = new HashSet<>(); - } - return this.pets; - } - protected void setPetsInternal(Set pets) { - this.pets = pets; - } - - public List getPets() { - List sortedPets = new ArrayList<>(getPetsInternal()); - PropertyComparator.sort(sortedPets, new MutableSortDefinition("name", true, true)); - return Collections.unmodifiableList(sortedPets); - } - - public void addPet(Pet pet) { - if (pet.isNew()) { - getPetsInternal().add(pet); - } - pet.setOwner(this); - } - - /** - * Return the Pet with the given name, or null if none found for this Owner. - * @param name to test - * @return true if pet name is already in use - */ - public Pet getPet(String name) { - return getPet(name, false); - } - - /** - * Return the Pet with the given name, or null if none found for this Owner. - * @param name to test - * @return true if pet name is already in use - */ - public Pet getPet(String name, boolean ignoreNew) { - name = name.toLowerCase(); - for (Pet pet : getPetsInternal()) { - if (!ignoreNew || !pet.isNew()) { - String compName = pet.getName(); - compName = compName.toLowerCase(); - if (compName.equals(name)) { - return pet; - } - } - } - return null; - } @Override public String toString() { 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 79aa4cd9b..4c1e74dbb 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.samples.petclinic.visit.VisitRepository; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -43,11 +42,11 @@ class OwnerController { private final OwnerRepository owners; - private VisitRepository visits; - public OwnerController(OwnerRepository clinicService, VisitRepository visits) { + + public OwnerController(OwnerRepository clinicService) { this.owners = clinicService; - this.visits = visits; + } @InitBinder @@ -125,21 +124,14 @@ class OwnerController { return "redirect:/owners/{ownerId}"; } } - - /** - * Custom handler for displaying an owner. - * @param ownerId the ID of the owner to display - * @return a ModelMap with the model attributes for the view - */ @GetMapping("/owners/{ownerId}") public ModelAndView showOwner(@PathVariable("ownerId") int ownerId) { ModelAndView mav = new ModelAndView("owners/ownerDetails"); Owner owner = this.owners.findById(ownerId); - for (Pet pet : owner.getPets()) { - pet.setVisitsInternal(visits.findByPetId(pet.getId())); - } + mav.addObject(owner); return mav; } - + + } diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java index 0613e928a..d6615b5db 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java @@ -42,7 +42,7 @@ public interface OwnerRepository extends Repository { * @return a Collection of matching {@link Owner}s (or an empty Collection if none * found) */ - @Query("SELECT DISTINCT owner FROM Owner owner left join fetch owner.pets WHERE owner.lastName LIKE :lastName%") + @Query("SELECT DISTINCT owner FROM Owner owner WHERE owner.lastName LIKE :lastName%") @Transactional(readOnly = true) Collection findByLastName(@Param("lastName") String lastName); @@ -51,7 +51,7 @@ public interface OwnerRepository extends Repository { * @param id the id to search for * @return the {@link Owner} if found */ - @Query("SELECT owner FROM Owner owner left join fetch owner.pets WHERE owner.id =:id") + @Query("SELECT owner FROM Owner owner WHERE id =:id") @Transactional(readOnly = true) Owner findById(@Param("id") Integer id); diff --git a/src/main/java/org/springframework/samples/petclinic/owner/Pet.java b/src/main/java/org/springframework/samples/petclinic/owner/Pet.java deleted file mode 100755 index 2b68005fd..000000000 --- a/src/main/java/org/springframework/samples/petclinic/owner/Pet.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.owner; - -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import javax.persistence.Transient; - -import org.springframework.beans.support.MutableSortDefinition; -import org.springframework.beans.support.PropertyComparator; -import org.springframework.format.annotation.DateTimeFormat; -import org.springframework.samples.petclinic.model.NamedEntity; -import org.springframework.samples.petclinic.visit.Visit; - -/** - * Simple business object representing a pet. - * - * @author Ken Krebs - * @author Juergen Hoeller - * @author Sam Brannen - */ -@Entity -@Table(name = "pets") -public class Pet extends NamedEntity { - - @Column(name = "birth_date") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private LocalDate birthDate; - - @ManyToOne - @JoinColumn(name = "type_id") - private PetType type; - - @ManyToOne - @JoinColumn(name = "owner_id") - private Owner owner; - - @Transient - private Set visits = new LinkedHashSet<>(); - - public void setBirthDate(LocalDate birthDate) { - this.birthDate = birthDate; - } - - public LocalDate getBirthDate() { - return this.birthDate; - } - - public PetType getType() { - return this.type; - } - - public void setType(PetType type) { - this.type = type; - } - - public Owner getOwner() { - return this.owner; - } - - protected void setOwner(Owner owner) { - this.owner = owner; - } - - protected Set getVisitsInternal() { - if (this.visits == null) { - this.visits = new HashSet<>(); - } - return this.visits; - } - - protected void setVisitsInternal(Collection visits) { - this.visits = new LinkedHashSet<>(visits); - } - - public List getVisits() { - List sortedVisits = new ArrayList<>(getVisitsInternal()); - PropertyComparator.sort(sortedVisits, new MutableSortDefinition("date", false, false)); - return Collections.unmodifiableList(sortedVisits); - } - - public void addVisit(Visit visit) { - getVisitsInternal().add(visit); - visit.setPetId(this.getId()); - } - -} diff --git a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java deleted file mode 100644 index a55e599af..000000000 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.owner; - -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.util.StringUtils; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.*; - -import javax.validation.Valid; -import java.util.Collection; - -/** - * @author Juergen Hoeller - * @author Ken Krebs - * @author Arjen Poutsma - */ -@Controller -@RequestMapping("/owners/{ownerId}") -class PetController { - - private static final String VIEWS_PETS_CREATE_OR_UPDATE_FORM = "pets/createOrUpdatePetForm"; - - private final PetRepository pets; - - private final OwnerRepository owners; - - public PetController(PetRepository pets, OwnerRepository owners) { - this.pets = pets; - this.owners = owners; - } - - @ModelAttribute("types") - public Collection populatePetTypes() { - return this.pets.findPetTypes(); - } - - @ModelAttribute("owner") - public Owner findOwner(@PathVariable("ownerId") int ownerId) { - return this.owners.findById(ownerId); - } - - @InitBinder("owner") - public void initOwnerBinder(WebDataBinder dataBinder) { - dataBinder.setDisallowedFields("id"); - } - - @InitBinder("pet") - public void initPetBinder(WebDataBinder dataBinder) { - dataBinder.setValidator(new PetValidator()); - } - - @GetMapping("/pets/new") - public String initCreationForm(Owner owner, ModelMap model) { - Pet pet = new Pet(); - owner.addPet(pet); - model.put("pet", pet); - return VIEWS_PETS_CREATE_OR_UPDATE_FORM; - } - - @PostMapping("/pets/new") - public String processCreationForm(Owner owner, @Valid Pet pet, BindingResult result, ModelMap model) { - if (StringUtils.hasLength(pet.getName()) && pet.isNew() && owner.getPet(pet.getName(), true) != null) { - result.rejectValue("name", "duplicate", "already exists"); - } - owner.addPet(pet); - if (result.hasErrors()) { - model.put("pet", pet); - return VIEWS_PETS_CREATE_OR_UPDATE_FORM; - } - else { - this.pets.save(pet); - return "redirect:/owners/{ownerId}"; - } - } - - @GetMapping("/pets/{petId}/edit") - public String initUpdateForm(@PathVariable("petId") int petId, ModelMap model) { - Pet pet = this.pets.findById(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) { - if (result.hasErrors()) { - pet.setOwner(owner); - model.put("pet", pet); - return VIEWS_PETS_CREATE_OR_UPDATE_FORM; - } - else { - owner.addPet(pet); - this.pets.save(pet); - return "redirect:/owners/{ownerId}"; - } - } - -} diff --git a/src/main/java/org/springframework/samples/petclinic/owner/PetRepository.java b/src/main/java/org/springframework/samples/petclinic/owner/PetRepository.java deleted file mode 100644 index 9d25b095b..000000000 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetRepository.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.owner; - -import java.util.List; - -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.Repository; -import org.springframework.transaction.annotation.Transactional; - -/** - * Repository class for Pet domain objects All method names are compliant - * with Spring Data naming conventions so this interface can easily be extended for Spring - * Data. See: - * https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-creation - * - * @author Ken Krebs - * @author Juergen Hoeller - * @author Sam Brannen - * @author Michael Isvy - */ -public interface PetRepository extends Repository { - - /** - * Retrieve all {@link PetType}s from the data store. - * @return a Collection of {@link PetType}s. - */ - @Query("SELECT ptype FROM PetType ptype ORDER BY ptype.name") - @Transactional(readOnly = true) - List findPetTypes(); - - /** - * Retrieve a {@link Pet} from the data store by id. - * @param id the id to search for - * @return the {@link Pet} if found - */ - @Transactional(readOnly = true) - Pet findById(Integer id); - - /** - * Save a {@link Pet} to the data store, either inserting or updating it. - * @param pet the {@link Pet} to save - */ - void save(Pet pet); - -} diff --git a/src/main/java/org/springframework/samples/petclinic/owner/PetType.java b/src/main/java/org/springframework/samples/petclinic/owner/PetType.java deleted file mode 100644 index 6f0aa58d3..000000000 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetType.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.owner; - -import javax.persistence.Entity; -import javax.persistence.Table; - -import org.springframework.samples.petclinic.model.NamedEntity; - -/** - * @author Juergen Hoeller Can be Cat, Dog, Hamster... - */ -@Entity -@Table(name = "types") -public class PetType extends 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 deleted file mode 100644 index 4940bcb38..000000000 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetTypeFormatter.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.owner; - -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; - -/** - * Instructs Spring MVC on how to parse and print elements of type 'PetType'. Starting - * from Spring 3.0, Formatters have come as an improvement in comparison to legacy - * PropertyEditors. See the following links for more details: - The Spring ref doc: - * https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#format - * - * @author Mark Fisher - * @author Juergen Hoeller - * @author Michael Isvy - */ -@Component -public class PetTypeFormatter implements Formatter { - - private final PetRepository pets; - - @Autowired - public PetTypeFormatter(PetRepository pets) { - this.pets = pets; - } - - @Override - public String print(PetType petType, Locale locale) { - return petType.getName(); - } - - @Override - public PetType parse(String text, Locale locale) throws ParseException { - Collection findPetTypes = this.pets.findPetTypes(); - for (PetType type : findPetTypes) { - if (type.getName().equals(text)) { - return type; - } - } - throw new ParseException("type not found: " + text, 0); - } - -} diff --git a/src/main/java/org/springframework/samples/petclinic/owner/PetValidator.java b/src/main/java/org/springframework/samples/petclinic/owner/PetValidator.java deleted file mode 100644 index e1370b428..000000000 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetValidator.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.owner; - -import org.springframework.util.StringUtils; -import org.springframework.validation.Errors; -import org.springframework.validation.Validator; - -/** - * Validator for Pet forms. - *

- * We're not using Bean Validation annotations here because it is easier to define such - * validation rule in Java. - *

- * - * @author Ken Krebs - * @author Juergen Hoeller - */ -public class PetValidator implements Validator { - - private static final String REQUIRED = "required"; - - @Override - public void validate(Object obj, Errors errors) { - Pet pet = (Pet) obj; - String name = pet.getName(); - // name validation - if (!StringUtils.hasLength(name)) { - errors.rejectValue("name", REQUIRED, REQUIRED); - } - - // type validation - if (pet.isNew() && pet.getType() == null) { - errors.rejectValue("type", REQUIRED, REQUIRED); - } - - // birth date validation - if (pet.getBirthDate() == null) { - errors.rejectValue("birthDate", REQUIRED, REQUIRED); - } - } - - /** - * This Validator validates *just* Pet instances - */ - @Override - public boolean supports(Class clazz) { - return Pet.class.isAssignableFrom(clazz); - } - -} diff --git a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java deleted file mode 100644 index 375980312..000000000 --- a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.owner; - -import java.util.Map; - -import javax.validation.Valid; - -import org.springframework.samples.petclinic.visit.Visit; -import org.springframework.samples.petclinic.visit.VisitRepository; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.InitBinder; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; - -/** - * @author Juergen Hoeller - * @author Ken Krebs - * @author Arjen Poutsma - * @author Michael Isvy - * @author Dave Syer - */ -@Controller -class VisitController { - - private final VisitRepository visits; - - private final PetRepository pets; - - public VisitController(VisitRepository visits, PetRepository pets) { - this.visits = visits; - this.pets = pets; - } - - @InitBinder - public void setAllowedFields(WebDataBinder dataBinder) { - dataBinder.setDisallowedFields("id"); - } - - /** - * Called before each and every @RequestMapping annotated method. 2 goals: - Make sure - * we always have fresh data - Since we do not use the session scope, make sure that - * Pet object always has an id (Even though id is not part of the form fields) - * @param petId - * @return Pet - */ - @ModelAttribute("visit") - public Visit loadPetWithVisit(@PathVariable("petId") int petId, Map model) { - Pet pet = this.pets.findById(petId); - pet.setVisitsInternal(this.visits.findByPetId(petId)); - model.put("pet", pet); - Visit visit = new Visit(); - pet.addVisit(visit); - return visit; - } - - // Spring MVC calls method loadPetWithVisit(...) before initNewVisitForm is called - @GetMapping("/owners/*/pets/{petId}/visits/new") - public String initNewVisitForm(@PathVariable("petId") int petId, Map model) { - return "pets/createOrUpdateVisitForm"; - } - - // Spring MVC calls method loadPetWithVisit(...) before processNewVisitForm is called - @PostMapping("/owners/{ownerId}/pets/{petId}/visits/new") - public String processNewVisitForm(@Valid Visit visit, BindingResult result) { - if (result.hasErrors()) { - return "pets/createOrUpdateVisitForm"; - } - else { - this.visits.save(visit); - return "redirect:/owners/{ownerId}"; - } - } - -} diff --git a/src/main/java/org/springframework/samples/petclinic/vet/Specialty.java b/src/main/java/org/springframework/samples/petclinic/vet/Specialty.java deleted file mode 100644 index ea8ec6ded..000000000 --- a/src/main/java/org/springframework/samples/petclinic/vet/Specialty.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.vet; - -import java.io.Serializable; - -import javax.persistence.Entity; -import javax.persistence.Table; - -import org.springframework.samples.petclinic.model.NamedEntity; - -/** - * Models a {@link Vet Vet's} specialty (for example, dentistry). - * - * @author Juergen Hoeller - */ -@Entity -@Table(name = "specialties") -public class Specialty extends NamedEntity implements Serializable { - -} diff --git a/src/main/java/org/springframework/samples/petclinic/vet/Vet.java b/src/main/java/org/springframework/samples/petclinic/vet/Vet.java deleted file mode 100644 index 014becfce..000000000 --- a/src/main/java/org/springframework/samples/petclinic/vet/Vet.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.vet; - -import java.util.ArrayList; -import java.util.Collections; -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 org.springframework.beans.support.MutableSortDefinition; -import org.springframework.beans.support.PropertyComparator; -import org.springframework.samples.petclinic.model.Person; - -/** - * Simple JavaBean domain object representing a veterinarian. - * - * @author Ken Krebs - * @author Juergen Hoeller - * @author Sam Brannen - * @author Arjen Poutsma - */ -@Entity -@Table(name = "vets") -public class Vet extends Person { - - @ManyToMany(fetch = FetchType.EAGER) - @JoinTable(name = "vet_specialties", joinColumns = @JoinColumn(name = "vet_id"), - inverseJoinColumns = @JoinColumn(name = "specialty_id")) - private Set specialties; - - protected Set getSpecialtiesInternal() { - if (this.specialties == null) { - this.specialties = new HashSet<>(); - } - return this.specialties; - } - - protected void setSpecialtiesInternal(Set specialties) { - this.specialties = specialties; - } - - @XmlElement - public List getSpecialties() { - List sortedSpecs = new ArrayList<>(getSpecialtiesInternal()); - PropertyComparator.sort(sortedSpecs, new MutableSortDefinition("name", true, true)); - return Collections.unmodifiableList(sortedSpecs); - } - - public int getNrOfSpecialties() { - return getSpecialtiesInternal().size(); - } - - public void addSpecialty(Specialty specialty) { - getSpecialtiesInternal().add(specialty); - } - -} diff --git a/src/main/java/org/springframework/samples/petclinic/vet/VetController.java b/src/main/java/org/springframework/samples/petclinic/vet/VetController.java deleted file mode 100644 index fb5e321ba..000000000 --- a/src/main/java/org/springframework/samples/petclinic/vet/VetController.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.vet; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.Map; - -/** - * @author Juergen Hoeller - * @author Mark Fisher - * @author Ken Krebs - * @author Arjen Poutsma - */ -@Controller -class VetController { - - private final VetRepository vets; - - public VetController(VetRepository clinicService) { - this.vets = clinicService; - } - - @GetMapping("/vets.html") - public String showVetList(Map model) { - // Here we are returning an object of type 'Vets' rather than a collection of Vet - // objects so it is simpler for Object-Xml mapping - Vets vets = new Vets(); - vets.getVetList().addAll(this.vets.findAll()); - model.put("vets", vets); - return "vets/vetList"; - } - - @GetMapping({ "/vets" }) - public @ResponseBody Vets showResourcesVetList() { - // Here we are returning an object of type 'Vets' rather than a collection of Vet - // objects so it is simpler for JSon/Object mapping - Vets vets = new Vets(); - vets.getVetList().addAll(this.vets.findAll()); - return vets; - } - -} diff --git a/src/main/java/org/springframework/samples/petclinic/vet/VetRepository.java b/src/main/java/org/springframework/samples/petclinic/vet/VetRepository.java deleted file mode 100644 index 549b1c229..000000000 --- a/src/main/java/org/springframework/samples/petclinic/vet/VetRepository.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.vet; - -import java.util.Collection; - -import org.springframework.cache.annotation.Cacheable; -import org.springframework.dao.DataAccessException; -import org.springframework.data.repository.Repository; -import org.springframework.transaction.annotation.Transactional; - -/** - * Repository class for Vet domain objects All method names are compliant - * with Spring Data naming conventions so this interface can easily be extended for Spring - * Data. See: - * https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-creation - * - * @author Ken Krebs - * @author Juergen Hoeller - * @author Sam Brannen - * @author Michael Isvy - */ -public interface VetRepository extends Repository { - - /** - * Retrieve all Vets from the data store. - * @return a Collection of Vets - */ - @Transactional(readOnly = true) - @Cacheable("vets") - Collection findAll() throws DataAccessException; - -} diff --git a/src/main/java/org/springframework/samples/petclinic/vet/Vets.java b/src/main/java/org/springframework/samples/petclinic/vet/Vets.java deleted file mode 100644 index cea665629..000000000 --- a/src/main/java/org/springframework/samples/petclinic/vet/Vets.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -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; - -/** - * Simple domain object representing a list of veterinarians. Mostly here to be used for - * the 'vets' {@link org.springframework.web.servlet.view.xml.MarshallingView}. - * - * @author Arjen Poutsma - */ -@XmlRootElement -public class Vets { - - private List vets; - - @XmlElement - public List getVetList() { - if (vets == null) { - vets = new ArrayList<>(); - } - return vets; - } - -} diff --git a/src/main/java/org/springframework/samples/petclinic/visit/Visit.java b/src/main/java/org/springframework/samples/petclinic/visit/Visit.java deleted file mode 100755 index df9f25fe0..000000000 --- a/src/main/java/org/springframework/samples/petclinic/visit/Visit.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.visit; - -import java.time.LocalDate; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.validation.constraints.NotEmpty; - -import org.springframework.format.annotation.DateTimeFormat; -import org.springframework.samples.petclinic.model.BaseEntity; - -/** - * Simple JavaBean domain object representing a visit. - * - * @author Ken Krebs - * @author Dave Syer - */ -@Entity -@Table(name = "visits") -public class Visit extends BaseEntity { - - @Column(name = "visit_date") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private LocalDate date; - - @NotEmpty - @Column(name = "description") - private String description; - - @Column(name = "pet_id") - private Integer petId; - - /** - * Creates a new instance of Visit for the current date - */ - public Visit() { - this.date = LocalDate.now(); - } - - public LocalDate getDate() { - return this.date; - } - - public void setDate(LocalDate date) { - this.date = date; - } - - public String getDescription() { - return this.description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getPetId() { - return this.petId; - } - - public void setPetId(Integer petId) { - this.petId = petId; - } - -} diff --git a/src/main/java/org/springframework/samples/petclinic/visit/VisitRepository.java b/src/main/java/org/springframework/samples/petclinic/visit/VisitRepository.java deleted file mode 100644 index d5a3334c6..000000000 --- a/src/main/java/org/springframework/samples/petclinic/visit/VisitRepository.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.visit; - -import java.util.List; - -import org.springframework.dao.DataAccessException; -import org.springframework.data.repository.Repository; -import org.springframework.samples.petclinic.model.BaseEntity; - -/** - * Repository class for Visit domain objects All method names are compliant - * with Spring Data naming conventions so this interface can easily be extended for Spring - * Data. See: - * https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-creation - * - * @author Ken Krebs - * @author Juergen Hoeller - * @author Sam Brannen - * @author Michael Isvy - */ -public interface VisitRepository extends Repository { - - /** - * Save a Visit to the data store, either inserting or updating it. - * @param visit the Visit to save - * @see BaseEntity#isNew - */ - void save(Visit visit) throws DataAccessException; - - List findByPetId(Integer petId); - -} diff --git a/src/main/resources/templates/owners/ownerDetails.html b/src/main/resources/templates/owners/ownerDetails.html index 383fa929f..00100467f 100644 --- a/src/main/resources/templates/owners/ownerDetails.html +++ b/src/main/resources/templates/owners/ownerDetails.html @@ -30,53 +30,13 @@ Edit Owner - Add - New Pet +


-

Pets and Visits

+ - - - - - - - -
-
-
Name
-
-
Birth Date
-
-
Type
-
-
-
- - - - - - - - - - - - - - - -
Visit DateDescription
Edit - PetAdd - Visit
-
diff --git a/src/main/resources/templates/owners/ownersList.html b/src/main/resources/templates/owners/ownersList.html index cf489b59b..13a84f2e9 100644 --- a/src/main/resources/templates/owners/ownersList.html +++ b/src/main/resources/templates/owners/ownersList.html @@ -24,7 +24,6 @@ - diff --git a/src/test/java/org/springframework/samples/petclinic/PetclinicIntegrationTests.java b/src/test/java/org/springframework/samples/petclinic/PetclinicIntegrationTests.java index 226db01fe..a5c0a0233 100644 --- a/src/test/java/org/springframework/samples/petclinic/PetclinicIntegrationTests.java +++ b/src/test/java/org/springframework/samples/petclinic/PetclinicIntegrationTests.java @@ -19,18 +19,10 @@ package org.springframework.samples.petclinic; 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; + @SpringBootTest class PetclinicIntegrationTests { - @Autowired - private VetRepository vets; - - @Test - void testFindAll() throws Exception { - vets.findAll(); - vets.findAll(); // served from cache - } } 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 1d6249c5d..ecbcec948 100644 --- a/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java @@ -28,8 +28,6 @@ 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.visit.Visit; -import org.springframework.samples.petclinic.visit.VisitRepository; import org.springframework.test.web.servlet.MockMvc; import static org.hamcrest.Matchers.empty; @@ -59,8 +57,6 @@ class OwnerControllerTests { @MockBean private OwnerRepository owners; - @MockBean - private VisitRepository visits; private Owner george; @@ -73,18 +69,10 @@ class OwnerControllerTests { george.setAddress("110 W. Liberty St."); george.setCity("Madison"); george.setTelephone("6085551023"); - Pet max = new Pet(); - PetType dog = new PetType(); - dog.setName("dog"); - max.setId(1); - max.setType(dog); - max.setName("Max"); - max.setBirthDate(LocalDate.now()); - george.setPetsInternal(Collections.singleton(max)); + given(this.owners.findById(TEST_OWNER_ID)).willReturn(george); - Visit visit = new Visit(); - visit.setDate(LocalDate.now()); - given(this.visits.findByPetId(max.getId())).willReturn(Collections.singletonList(visit)); + + } @Test @@ -175,25 +163,7 @@ class OwnerControllerTests { .andExpect(model().attribute("owner", hasProperty("address", is("110 W. Liberty St.")))) .andExpect(model().attribute("owner", hasProperty("city", is("Madison")))) .andExpect(model().attribute("owner", hasProperty("telephone", is("6085551023")))) - .andExpect(model().attribute("owner", hasProperty("pets", not(empty())))) - .andExpect(model().attribute("owner", hasProperty("pets", new BaseMatcher>() { - - @Override - public boolean matches(Object item) { - @SuppressWarnings("unchecked") - List pets = (List) item; - Pet pet = pets.get(0); - if (pet.getVisits().isEmpty()) { - return false; - } - return true; - } - - @Override - public void describeTo(Description description) { - description.appendText("Max did not have any visits"); - } - }))).andExpect(view().name("owners/ownerDetails")); + .andExpect(view().name("owners/ownerDetails")); } } diff --git a/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTests.java b/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTests.java deleted file mode 100755 index 47c444a78..000000000 --- a/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTests.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.samples.petclinic.owner; - -import static org.mockito.BDDMockito.given; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.model; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; - -import org.assertj.core.util.Lists; -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.context.annotation.ComponentScan; -import org.springframework.context.annotation.FilterType; -import org.springframework.test.web.servlet.MockMvc; - -/** - * Test class for the {@link PetController} - * - * @author Colin But - */ -@WebMvcTest(value = PetController.class, - includeFilters = @ComponentScan.Filter(value = PetTypeFormatter.class, type = FilterType.ASSIGNABLE_TYPE)) -class PetControllerTests { - - private static final int TEST_OWNER_ID = 1; - - private static final int TEST_PET_ID = 1; - - @Autowired - private MockMvc mockMvc; - - @MockBean - private PetRepository pets; - - @MockBean - private OwnerRepository owners; - - @BeforeEach - void setup() { - PetType cat = new PetType(); - cat.setId(3); - cat.setName("hamster"); - given(this.pets.findPetTypes()).willReturn(Lists.newArrayList(cat)); - given(this.owners.findById(TEST_OWNER_ID)).willReturn(new Owner()); - given(this.pets.findById(TEST_PET_ID)).willReturn(new Pet()); - - } - - @Test - void testInitCreationForm() throws Exception { - mockMvc.perform(get("/owners/{ownerId}/pets/new", TEST_OWNER_ID)).andExpect(status().isOk()) - .andExpect(view().name("pets/createOrUpdatePetForm")).andExpect(model().attributeExists("pet")); - } - - @Test - void testProcessCreationFormSuccess() throws Exception { - mockMvc.perform(post("/owners/{ownerId}/pets/new", TEST_OWNER_ID).param("name", "Betty") - .param("type", "hamster").param("birthDate", "2015-02-12")).andExpect(status().is3xxRedirection()) - .andExpect(view().name("redirect:/owners/{ownerId}")); - } - - @Test - void testProcessCreationFormHasErrors() throws Exception { - mockMvc.perform(post("/owners/{ownerId}/pets/new", TEST_OWNER_ID).param("name", "Betty").param("birthDate", - "2015-02-12")).andExpect(model().attributeHasNoErrors("owner")) - .andExpect(model().attributeHasErrors("pet")).andExpect(model().attributeHasFieldErrors("pet", "type")) - .andExpect(model().attributeHasFieldErrorCode("pet", "type", "required")).andExpect(status().isOk()) - .andExpect(view().name("pets/createOrUpdatePetForm")); - } - - @Test - void testInitUpdateForm() throws Exception { - mockMvc.perform(get("/owners/{ownerId}/pets/{petId}/edit", TEST_OWNER_ID, TEST_PET_ID)) - .andExpect(status().isOk()).andExpect(model().attributeExists("pet")) - .andExpect(view().name("pets/createOrUpdatePetForm")); - } - - @Test - void testProcessUpdateFormSuccess() throws Exception { - mockMvc.perform(post("/owners/{ownerId}/pets/{petId}/edit", TEST_OWNER_ID, TEST_PET_ID).param("name", "Betty") - .param("type", "hamster").param("birthDate", "2015-02-12")).andExpect(status().is3xxRedirection()) - .andExpect(view().name("redirect:/owners/{ownerId}")); - } - - @Test - void testProcessUpdateFormHasErrors() throws Exception { - mockMvc.perform(post("/owners/{ownerId}/pets/{petId}/edit", TEST_OWNER_ID, TEST_PET_ID).param("name", "Betty") - .param("birthDate", "2015/02/12")).andExpect(model().attributeHasNoErrors("owner")) - .andExpect(model().attributeHasErrors("pet")).andExpect(status().isOk()) - .andExpect(view().name("pets/createOrUpdatePetForm")); - } - -} diff --git a/src/test/java/org/springframework/samples/petclinic/owner/PetTypeFormatterTests.java b/src/test/java/org/springframework/samples/petclinic/owner/PetTypeFormatterTests.java deleted file mode 100644 index adb96b69d..000000000 --- a/src/test/java/org/springframework/samples/petclinic/owner/PetTypeFormatterTests.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.samples.petclinic.owner; - -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Locale; - -import org.junit.jupiter.api.Assertions; -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.junit.jupiter.MockitoExtension; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.BDDMockito.given; - -/** - * Test class for {@link PetTypeFormatter} - * - * @author Colin But - */ -@ExtendWith(MockitoExtension.class) -class PetTypeFormatterTests { - - @Mock - private PetRepository pets; - - private PetTypeFormatter petTypeFormatter; - - @BeforeEach - void setup() { - this.petTypeFormatter = new PetTypeFormatter(pets); - } - - @Test - void testPrint() { - PetType petType = new PetType(); - petType.setName("Hamster"); - String petTypeName = this.petTypeFormatter.print(petType, Locale.ENGLISH); - assertThat(petTypeName).isEqualTo("Hamster"); - } - - @Test - void shouldParse() throws ParseException { - given(this.pets.findPetTypes()).willReturn(makePetTypes()); - PetType petType = petTypeFormatter.parse("Bird", Locale.ENGLISH); - assertThat(petType.getName()).isEqualTo("Bird"); - } - - @Test - void shouldThrowParseException() throws ParseException { - given(this.pets.findPetTypes()).willReturn(makePetTypes()); - Assertions.assertThrows(ParseException.class, () -> { - petTypeFormatter.parse("Fish", Locale.ENGLISH); - }); - } - - /** - * Helper method to produce some sample pet types just for test purpose - * @return {@link Collection} of {@link PetType} - */ - private List makePetTypes() { - List petTypes = new ArrayList<>(); - petTypes.add(new PetType() { - { - setName("Dog"); - } - }); - petTypes.add(new PetType() { - { - setName("Bird"); - } - }); - return petTypes; - } - -} diff --git a/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java b/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java deleted file mode 100644 index 84bee72df..000000000 --- a/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.samples.petclinic.owner; - -import static org.mockito.BDDMockito.given; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.model; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; - -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.visit.VisitRepository; -import org.springframework.test.web.servlet.MockMvc; - -/** - * Test class for {@link VisitController} - * - * @author Colin But - */ -@WebMvcTest(VisitController.class) -class VisitControllerTests { - - private static final int TEST_PET_ID = 1; - - @Autowired - private MockMvc mockMvc; - - @MockBean - private VisitRepository visits; - - @MockBean - private PetRepository pets; - - @BeforeEach - void init() { - given(this.pets.findById(TEST_PET_ID)).willReturn(new Pet()); - } - - @Test - void testInitNewVisitForm() throws Exception { - mockMvc.perform(get("/owners/*/pets/{petId}/visits/new", TEST_PET_ID)).andExpect(status().isOk()) - .andExpect(view().name("pets/createOrUpdateVisitForm")); - } - - @Test - void testProcessNewVisitFormSuccess() throws Exception { - mockMvc.perform(post("/owners/*/pets/{petId}/visits/new", TEST_PET_ID).param("name", "George") - .param("description", "Visit Description")).andExpect(status().is3xxRedirection()) - .andExpect(view().name("redirect:/owners/{ownerId}")); - } - - @Test - void testProcessNewVisitFormHasErrors() throws Exception { - mockMvc.perform(post("/owners/*/pets/{petId}/visits/new", TEST_PET_ID).param("name", "George")) - .andExpect(model().attributeHasErrors("visit")).andExpect(status().isOk()) - .andExpect(view().name("pets/createOrUpdateVisitForm")); - } - -} diff --git a/src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java b/src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java deleted file mode 100644 index a7f3d9d24..000000000 --- a/src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.samples.petclinic.service; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.time.LocalDate; -import java.util.Collection; - -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; -import org.springframework.samples.petclinic.owner.Owner; -import org.springframework.samples.petclinic.owner.OwnerRepository; -import org.springframework.samples.petclinic.owner.Pet; -import org.springframework.samples.petclinic.owner.PetRepository; -import org.springframework.samples.petclinic.owner.PetType; -import org.springframework.samples.petclinic.vet.Vet; -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.transaction.annotation.Transactional; - -/** - * Integration test of the Service and the Repository layer. - *

- * ClinicServiceSpringDataJpaTests subclasses benefit from the following services provided - * by the Spring TestContext Framework: - *

- *
    - *
  • Spring IoC container caching which spares us unnecessary set up - * time between test execution.
  • - *
  • Dependency Injection of test fixture instances, meaning that we - * don't need to perform application context lookups. See the use of - * {@link Autowired @Autowired} on the {@link - * ClinicServiceTests#clinicService clinicService} instance variable, which uses - * autowiring by type. - *
  • Transaction management, meaning each test method is executed in - * its own transaction, which is automatically rolled back by default. Thus, even if tests - * insert or otherwise change database state, there is no need for a teardown or cleanup - * script. - *
  • An {@link org.springframework.context.ApplicationContext ApplicationContext} is - * also inherited and can be used for explicit bean lookup if necessary.
  • - *
- * - * @author Ken Krebs - * @author Rod Johnson - * @author Juergen Hoeller - * @author Sam Brannen - * @author Michael Isvy - * @author Dave Syer - */ -@DataJpaTest(includeFilters = @ComponentScan.Filter(Service.class)) -class ClinicServiceTests { - - @Autowired - protected OwnerRepository owners; - - @Autowired - protected PetRepository pets; - - @Autowired - protected VisitRepository visits; - - @Autowired - protected VetRepository vets; - - @Test - void shouldFindOwnersByLastName() { - Collection owners = this.owners.findByLastName("Davis"); - assertThat(owners).hasSize(2); - - owners = this.owners.findByLastName("Daviss"); - assertThat(owners).isEmpty(); - } - - @Test - void shouldFindSingleOwnerWithPet() { - Owner owner = this.owners.findById(1); - assertThat(owner.getLastName()).startsWith("Franklin"); - assertThat(owner.getPets()).hasSize(1); - assertThat(owner.getPets().get(0).getType()).isNotNull(); - assertThat(owner.getPets().get(0).getType().getName()).isEqualTo("cat"); - } - - @Test - @Transactional - void shouldInsertOwner() { - Collection owners = this.owners.findByLastName("Schultz"); - int found = owners.size(); - - Owner owner = new Owner(); - owner.setFirstName("Sam"); - owner.setLastName("Schultz"); - owner.setAddress("4, Evans Street"); - owner.setCity("Wollongong"); - owner.setTelephone("4444444444"); - this.owners.save(owner); - assertThat(owner.getId().longValue()).isNotEqualTo(0); - - owners = this.owners.findByLastName("Schultz"); - assertThat(owners.size()).isEqualTo(found + 1); - } - - @Test - @Transactional - void shouldUpdateOwner() { - Owner owner = this.owners.findById(1); - String oldLastName = owner.getLastName(); - String newLastName = oldLastName + "X"; - - owner.setLastName(newLastName); - this.owners.save(owner); - - // retrieving new name from database - owner = this.owners.findById(1); - assertThat(owner.getLastName()).isEqualTo(newLastName); - } - - @Test - void shouldFindPetWithCorrectId() { - Pet pet7 = this.pets.findById(7); - assertThat(pet7.getName()).startsWith("Samantha"); - assertThat(pet7.getOwner().getFirstName()).isEqualTo("Jean"); - - } - - @Test - void shouldFindAllPetTypes() { - Collection petTypes = this.pets.findPetTypes(); - - PetType petType1 = EntityUtils.getById(petTypes, PetType.class, 1); - assertThat(petType1.getName()).isEqualTo("cat"); - PetType petType4 = EntityUtils.getById(petTypes, PetType.class, 4); - assertThat(petType4.getName()).isEqualTo("snake"); - } - - @Test - @Transactional - void shouldInsertPetIntoDatabaseAndGenerateId() { - Owner owner6 = this.owners.findById(6); - int found = owner6.getPets().size(); - - Pet pet = new Pet(); - pet.setName("bowser"); - Collection types = this.pets.findPetTypes(); - pet.setType(EntityUtils.getById(types, PetType.class, 2)); - pet.setBirthDate(LocalDate.now()); - owner6.addPet(pet); - assertThat(owner6.getPets().size()).isEqualTo(found + 1); - - this.pets.save(pet); - this.owners.save(owner6); - - owner6 = this.owners.findById(6); - assertThat(owner6.getPets().size()).isEqualTo(found + 1); - // checks that id has been generated - assertThat(pet.getId()).isNotNull(); - } - - @Test - @Transactional - void shouldUpdatePetName() throws Exception { - Pet pet7 = this.pets.findById(7); - String oldName = pet7.getName(); - - String newName = oldName + "X"; - pet7.setName(newName); - this.pets.save(pet7); - - pet7 = this.pets.findById(7); - assertThat(pet7.getName()).isEqualTo(newName); - } - - @Test - void shouldFindVets() { - Collection vets = this.vets.findAll(); - - Vet vet = EntityUtils.getById(vets, Vet.class, 3); - assertThat(vet.getLastName()).isEqualTo("Douglas"); - assertThat(vet.getNrOfSpecialties()).isEqualTo(2); - assertThat(vet.getSpecialties().get(0).getName()).isEqualTo("dentistry"); - assertThat(vet.getSpecialties().get(1).getName()).isEqualTo("surgery"); - } - - @Test - @Transactional - void shouldAddNewVisitForPet() { - Pet pet7 = this.pets.findById(7); - int found = pet7.getVisits().size(); - Visit visit = new Visit(); - pet7.addVisit(visit); - visit.setDescription("test"); - this.visits.save(visit); - this.pets.save(pet7); - - pet7 = this.pets.findById(7); - assertThat(pet7.getVisits().size()).isEqualTo(found + 1); - assertThat(visit.getId()).isNotNull(); - } - - @Test - void shouldFindVisitsByPetId() throws Exception { - Collection visits = this.visits.findByPetId(7); - assertThat(visits).hasSize(2); - Visit[] visitArr = visits.toArray(new Visit[visits.size()]); - assertThat(visitArr[0].getDate()).isNotNull(); - assertThat(visitArr[0].getPetId()).isEqualTo(7); - } - -} diff --git a/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java b/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java deleted file mode 100644 index fd537bee2..000000000 --- a/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.samples.petclinic.vet; - -import static org.mockito.BDDMockito.given; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.model; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; - -import org.assertj.core.util.Lists; -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.http.MediaType; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.ResultActions; - -/** - * Test class for the {@link VetController} - */ -@WebMvcTest(VetController.class) -class VetControllerTests { - - @Autowired - private MockMvc mockMvc; - - @MockBean - private VetRepository vets; - - @BeforeEach - void setup() { - Vet james = new Vet(); - james.setFirstName("James"); - james.setLastName("Carter"); - james.setId(1); - Vet helen = new Vet(); - helen.setFirstName("Helen"); - helen.setLastName("Leary"); - helen.setId(2); - Specialty radiology = new Specialty(); - radiology.setId(1); - radiology.setName("radiology"); - helen.addSpecialty(radiology); - given(this.vets.findAll()).willReturn(Lists.newArrayList(james, helen)); - } - - @Test - void testShowVetListHtml() throws Exception { - mockMvc.perform(get("/vets.html")).andExpect(status().isOk()).andExpect(model().attributeExists("vets")) - .andExpect(view().name("vets/vetList")); - } - - @Test - void testShowResourcesVetList() throws Exception { - ResultActions actions = mockMvc.perform(get("/vets").accept(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()); - actions.andExpect(content().contentType(MediaType.APPLICATION_JSON)) - .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 deleted file mode 100644 index d8df78b85..000000000 --- a/src/test/java/org/springframework/samples/petclinic/vet/VetTests.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.vet; - -import org.junit.jupiter.api.Test; -import org.springframework.util.SerializationUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Dave Syer - */ -class VetTests { - - @Test - void testSerialization() { - Vet vet = new Vet(); - vet.setFirstName("Zaphod"); - vet.setLastName("Beeblebrox"); - vet.setId(123); - Vet other = (Vet) SerializationUtils.deserialize(SerializationUtils.serialize(vet)); - assertThat(other.getFirstName()).isEqualTo(vet.getFirstName()); - assertThat(other.getLastName()).isEqualTo(vet.getLastName()); - assertThat(other.getId()).isEqualTo(vet.getId()); - } - -} From 48ae594b9022d8b8eeca370edf86f8ea58de9054 Mon Sep 17 00:00:00 2001 From: abemorcardc Date: Thu, 18 Mar 2021 00:35:57 +0100 Subject: [PATCH 2/3] Reorganizadas las clases y renombradas a cheapy --- pom.xml | 4 +- .../CheapyApplication.java} | 6 +- .../model/BaseEntity.java | 2 +- .../model/NamedEntity.java | 2 +- .../owner => cheapy/model}/Owner.java | 3 +- .../petclinic => cheapy}/model/Person.java | 2 +- .../model/package-info.java | 2 +- .../repository}/OwnerRepository.java | 3 +- .../system/CacheConfiguration.java | 2 +- .../system/CrashController.java | 4 +- .../system/WelcomeController.java | 2 +- .../owner => cheapy/web}/OwnerController.java | 6 +- src/main/resources/banner.txt | 18 ++---- .../resources/templates/fragments/layout.html | 4 +- .../templates/pets/createOrUpdatePetForm.html | 38 ------------ .../pets/createOrUpdateVisitForm.html | 61 ------------------- .../resources/templates/vets/vetList.html | 27 -------- .../PetclinicIntegrationTests.java | 2 +- .../model/ValidatorTests.java | 3 +- .../service/EntityUtils.java | 6 +- .../system/CrashControllerTests.java | 3 +- .../web}/OwnerControllerTests.java | 4 +- 22 files changed, 39 insertions(+), 165 deletions(-) rename src/main/java/org/springframework/{samples/petclinic/PetClinicApplication.java => cheapy/CheapyApplication.java} (86%) rename src/main/java/org/springframework/{samples/petclinic => cheapy}/model/BaseEntity.java (96%) rename src/main/java/org/springframework/{samples/petclinic => cheapy}/model/NamedEntity.java (95%) rename src/main/java/org/springframework/{samples/petclinic/owner => cheapy/model}/Owner.java (95%) rename src/main/java/org/springframework/{samples/petclinic => cheapy}/model/Person.java (96%) rename src/main/java/org/springframework/{samples/petclinic => cheapy}/model/package-info.java (92%) rename src/main/java/org/springframework/{samples/petclinic/owner => cheapy/repository}/OwnerRepository.java (96%) rename src/main/java/org/springframework/{samples/petclinic => cheapy}/system/CacheConfiguration.java (97%) rename src/main/java/org/springframework/{samples/petclinic => cheapy}/system/CrashController.java (93%) rename src/main/java/org/springframework/{samples/petclinic => cheapy}/system/WelcomeController.java (93%) rename src/main/java/org/springframework/{samples/petclinic/owner => cheapy/web}/OwnerController.java (95%) delete mode 100644 src/main/resources/templates/pets/createOrUpdatePetForm.html delete mode 100644 src/main/resources/templates/pets/createOrUpdateVisitForm.html delete mode 100644 src/main/resources/templates/vets/vetList.html rename src/test/java/org/springframework/{samples/petclinic => cheapy/integration}/PetclinicIntegrationTests.java (94%) rename src/test/java/org/springframework/{samples/petclinic => cheapy}/model/ValidatorTests.java (95%) rename src/test/java/org/springframework/{samples/petclinic => cheapy}/service/EntityUtils.java (90%) rename src/test/java/org/springframework/{samples/petclinic => cheapy}/system/CrashControllerTests.java (94%) rename src/test/java/org/springframework/{samples/petclinic/owner => cheapy/web}/OwnerControllerTests.java (97%) diff --git a/pom.xml b/pom.xml index 14a8352b7..aa3d539c7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.springframework.samples - spring-petclinic + spring-cheapy 2.4.2 @@ -12,7 +12,7 @@ spring-boot-starter-parent 2.4.2 - petclinic + cheapy diff --git a/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java b/src/main/java/org/springframework/cheapy/CheapyApplication.java similarity index 86% rename from src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java rename to src/main/java/org/springframework/cheapy/CheapyApplication.java index 191253587..2912ee3d8 100644 --- a/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java +++ b/src/main/java/org/springframework/cheapy/CheapyApplication.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.samples.petclinic; +package org.springframework.cheapy; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -26,10 +26,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; * */ @SpringBootApplication(proxyBeanMethods = false) -public class PetClinicApplication { +public class CheapyApplication { public static void main(String[] args) { - SpringApplication.run(PetClinicApplication.class, args); + SpringApplication.run(CheapyApplication.class, args); } } diff --git a/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java b/src/main/java/org/springframework/cheapy/model/BaseEntity.java similarity index 96% rename from src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java rename to src/main/java/org/springframework/cheapy/model/BaseEntity.java index 4cb9ffc0c..21aab45b7 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java +++ b/src/main/java/org/springframework/cheapy/model/BaseEntity.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.samples.petclinic.model; +package org.springframework.cheapy.model; import java.io.Serializable; diff --git a/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java b/src/main/java/org/springframework/cheapy/model/NamedEntity.java similarity index 95% rename from src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java rename to src/main/java/org/springframework/cheapy/model/NamedEntity.java index 088e52e81..0f00a5e9c 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/NamedEntity.java +++ b/src/main/java/org/springframework/cheapy/model/NamedEntity.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.samples.petclinic.model; +package org.springframework.cheapy.model; import javax.persistence.Column; import javax.persistence.MappedSuperclass; diff --git a/src/main/java/org/springframework/samples/petclinic/owner/Owner.java b/src/main/java/org/springframework/cheapy/model/Owner.java similarity index 95% rename from src/main/java/org/springframework/samples/petclinic/owner/Owner.java rename to src/main/java/org/springframework/cheapy/model/Owner.java index 396743569..792f42753 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/Owner.java +++ b/src/main/java/org/springframework/cheapy/model/Owner.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.samples.petclinic.owner; +package org.springframework.cheapy.model; import java.util.ArrayList; import java.util.Collections; @@ -32,7 +32,6 @@ import javax.validation.constraints.NotEmpty; import org.springframework.beans.support.MutableSortDefinition; import org.springframework.beans.support.PropertyComparator; import org.springframework.core.style.ToStringCreator; -import org.springframework.samples.petclinic.model.Person; /** * Simple JavaBean domain object representing an owner. diff --git a/src/main/java/org/springframework/samples/petclinic/model/Person.java b/src/main/java/org/springframework/cheapy/model/Person.java similarity index 96% rename from src/main/java/org/springframework/samples/petclinic/model/Person.java rename to src/main/java/org/springframework/cheapy/model/Person.java index 15fabacc3..7e8d87c0c 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/Person.java +++ b/src/main/java/org/springframework/cheapy/model/Person.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.samples.petclinic.model; +package org.springframework.cheapy.model; import javax.persistence.Column; import javax.persistence.MappedSuperclass; diff --git a/src/main/java/org/springframework/samples/petclinic/model/package-info.java b/src/main/java/org/springframework/cheapy/model/package-info.java similarity index 92% rename from src/main/java/org/springframework/samples/petclinic/model/package-info.java rename to src/main/java/org/springframework/cheapy/model/package-info.java index 37d6295e8..620e13c68 100644 --- a/src/main/java/org/springframework/samples/petclinic/model/package-info.java +++ b/src/main/java/org/springframework/cheapy/model/package-info.java @@ -17,4 +17,4 @@ /** * The classes in this package represent utilities used by the domain. */ -package org.springframework.samples.petclinic.model; +package org.springframework.cheapy.model; diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java b/src/main/java/org/springframework/cheapy/repository/OwnerRepository.java similarity index 96% rename from src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java rename to src/main/java/org/springframework/cheapy/repository/OwnerRepository.java index d6615b5db..67c4d6a9a 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/OwnerRepository.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.samples.petclinic.owner; +package org.springframework.cheapy.repository; import java.util.Collection; +import org.springframework.cheapy.model.Owner; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.Repository; import org.springframework.data.repository.query.Param; diff --git a/src/main/java/org/springframework/samples/petclinic/system/CacheConfiguration.java b/src/main/java/org/springframework/cheapy/system/CacheConfiguration.java similarity index 97% rename from src/main/java/org/springframework/samples/petclinic/system/CacheConfiguration.java rename to src/main/java/org/springframework/cheapy/system/CacheConfiguration.java index 0a96582c9..d5df44632 100755 --- a/src/main/java/org/springframework/samples/petclinic/system/CacheConfiguration.java +++ b/src/main/java/org/springframework/cheapy/system/CacheConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.samples.petclinic.system; +package org.springframework.cheapy.system; import javax.cache.configuration.MutableConfiguration; diff --git a/src/main/java/org/springframework/samples/petclinic/system/CrashController.java b/src/main/java/org/springframework/cheapy/system/CrashController.java similarity index 93% rename from src/main/java/org/springframework/samples/petclinic/system/CrashController.java rename to src/main/java/org/springframework/cheapy/system/CrashController.java index 2b28600fd..4fb7e15f5 100644 --- a/src/main/java/org/springframework/samples/petclinic/system/CrashController.java +++ b/src/main/java/org/springframework/cheapy/system/CrashController.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.samples.petclinic.system; +package org.springframework.cheapy.system; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.GetMapping; * Also see how a view that resolves to "error" has been added ("error.html"). */ @Controller -class CrashController { +public class CrashController { @GetMapping("/oups") public String triggerException() { diff --git a/src/main/java/org/springframework/samples/petclinic/system/WelcomeController.java b/src/main/java/org/springframework/cheapy/system/WelcomeController.java similarity index 93% rename from src/main/java/org/springframework/samples/petclinic/system/WelcomeController.java rename to src/main/java/org/springframework/cheapy/system/WelcomeController.java index 9224015bc..85782e967 100644 --- a/src/main/java/org/springframework/samples/petclinic/system/WelcomeController.java +++ b/src/main/java/org/springframework/cheapy/system/WelcomeController.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.samples.petclinic.system; +package org.springframework.cheapy.system; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java b/src/main/java/org/springframework/cheapy/web/OwnerController.java similarity index 95% rename from src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java rename to src/main/java/org/springframework/cheapy/web/OwnerController.java index 4c1e74dbb..e12697ff4 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java +++ b/src/main/java/org/springframework/cheapy/web/OwnerController.java @@ -13,8 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.samples.petclinic.owner; +package org.springframework.cheapy.web; +import org.springframework.cheapy.model.Owner; +import org.springframework.cheapy.repository.OwnerRepository; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -36,7 +38,7 @@ import java.util.Map; * @author Michael Isvy */ @Controller -class OwnerController { +public class OwnerController { private static final String VIEWS_OWNER_CREATE_OR_UPDATE_FORM = "owners/createOrUpdateOwnerForm"; diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt index 6225d1208..da0aacccf 100644 --- a/src/main/resources/banner.txt +++ b/src/main/resources/banner.txt @@ -1,15 +1,9 @@ - - - |\ _,,,--,,_ - /,`.-'`' ._ \-;;,_ - _______ __|,4- ) )_ .;.(__`'-'__ ___ __ _ ___ _______ - | | '---''(_/._)-'(_\_) | | | | | | | | | - | _ | ___|_ _| | | | | |_| | | | __ _ _ - | |_| | |___ | | | | | | | | | | \ \ \ \ - | ___| ___| | | | _| |___| | _ | | _| \ \ \ \ - | | | |___ | | | |_| | | | | | | |_ ) ) ) ) - |___| |_______| |___| |_______|_______|___|_| |__|___|_______| / / / / - ==================================================================/_/_/_/ + __^__ __^__ + ( ___ )------------------------------------( ___ ) + | / | | \ | + | / | Cheapy | \ | + |___| |___| + (_____)------------------------------------(_____) :: Built with Spring Boot :: ${spring-boot.version} diff --git a/src/main/resources/templates/fragments/layout.html b/src/main/resources/templates/fragments/layout.html index f3b207483..3ca576a08 100755 --- a/src/main/resources/templates/fragments/layout.html +++ b/src/main/resources/templates/fragments/layout.html @@ -8,9 +8,9 @@ - + - PetClinic :: a Spring Framework demonstration + Cheapy