diff --git a/README.md b/README.md index e4cb3c3ab423fedd1a18db97fbb7ca95b31f2077..5915bd661d5d034df8590b64192c8b0d03cf943a 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ If everything goes well, you can access the following services at given location * Config Server - http://localhost:8888 * AngularJS frontend (API Gateway) - http://localhost:8080 * Customers, Vets and Visits Services - random port, check Eureka Dashboard -* Tracing Server (Zipkin) - http://localhost:9411 +* Tracing Server (Zipkin) - http://localhost:9411/zipkin/ * Admin Server (Spring Boot Admin) - http://localhost:9090 You can tell Config Server to use your local Git repository by using `local` Spring profile and setting diff --git a/pom.xml b/pom.xml index 397bb32ab562636bd1fe281479739766bebafd4f..3c9907cc5182461b3d27e8b5e0f29fd9f0d606f7 100644 --- a/pom.xml +++ b/pom.xml @@ -1,25 +1,26 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-parent</artifactId> - <version>1.5.9.RELEASE</version> - </parent> + <parent> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-parent</artifactId> + <version>2.0.3.RELEASE</version> + </parent> - <groupId>org.springframework.samples</groupId> - <artifactId>spring-petclinic-microservices</artifactId> - <version>1.5.9</version> + <groupId>org.springframework.samples</groupId> + <artifactId>spring-petclinic-microservices</artifactId> + <version>2.0.3</version> <name>${project.artifactId}</name> - <packaging>pom</packaging> + <packaging>pom</packaging> - <modules> - <module>spring-petclinic-admin-server</module> - <module>spring-petclinic-customers-service</module> - <module>spring-petclinic-vets-service</module> - <module>spring-petclinic-visits-service</module> - <module>spring-petclinic-config-server</module> + <modules> + <module>spring-petclinic-admin-server</module> + <module>spring-petclinic-customers-service</module> + <module>spring-petclinic-vets-service</module> + <module>spring-petclinic-visits-service</module> + <module>spring-petclinic-config-server</module> <module>spring-petclinic-discovery-server</module> <module>spring-petclinic-api-gateway</module> <module>spring-petclinic-monitoring</module> @@ -28,32 +29,32 @@ <properties> <assertj.version>3.9.0</assertj.version> - <spring-cloud.version>Edgware.SR1</spring-cloud.version> - <sleuth.version>1.3.1.RELEASE</sleuth.version> + <spring-cloud.version>Finchley.RELEASE</spring-cloud.version> + <sleuth.version>2.0.0.RC2</sleuth.version> <java.version>1.8</java.version> - <docker.image.prefix>mszarlinski</docker.image.prefix> + <docker.image.prefix>mszarlinski</docker.image.prefix> <docker.image.exposed.port>9090</docker.image.exposed.port> <docker.image.dockerfile.dir>${basedir}</docker.image.dockerfile.dir> - <docker.plugin.version>0.4.13</docker.plugin.version> + <docker.plugin.version>0.4.13</docker.plugin.version> </properties> - <dependencyManagement> - <dependencies> + <dependencyManagement> + <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sleuth-dependencies</artifactId> - <type>pom</type> - <scope>import</scope> + <type>pom</type> + <scope>import</scope> <version>${sleuth.version}</version> </dependency> - <dependency> - <groupId>org.springframework.cloud</groupId> - <artifactId>spring-cloud-dependencies</artifactId> - <version>${spring-cloud.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-dependencies</artifactId> + <version>${spring-cloud.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> <dependency> <groupId>org.springframework.samples.petclinic.monitoring</groupId> @@ -66,8 +67,8 @@ <version>${assertj.version}</version> <scope>test</scope> </dependency> - </dependencies> - </dependencyManagement> + </dependencies> + </dependencyManagement> <profiles> <profile> @@ -167,4 +168,12 @@ </profile> </profiles> + <repositories> + <repository> + <id>repository.spring.milestone</id> + <name>Spring Milestone Repository</name> + <url>http://repo.spring.io/milestone</url> + </repository> + </repositories> + </project> diff --git a/spring-petclinic-admin-server/pom.xml b/spring-petclinic-admin-server/pom.xml index e73946fddbddf56764e474a445f17a8412e508f6..8812b82e97b28bbac91c6c4598794386b3dc1694 100644 --- a/spring-petclinic-admin-server/pom.xml +++ b/spring-petclinic-admin-server/pom.xml @@ -12,11 +12,11 @@ <parent> <groupId>org.springframework.samples</groupId> <artifactId>spring-petclinic-microservices</artifactId> - <version>1.5.9</version> + <version>2.0.3</version> </parent> <properties> - <spring-boot-admin.version>1.5.6</spring-boot-admin.version> + <spring-boot-admin.version>2.0.1</spring-boot-admin.version> <docker.image.exposed.port>9090</docker.image.exposed.port> <docker.image.dockerfile.dir>${basedir}/../docker</docker.image.dockerfile.dir> </properties> @@ -39,7 +39,7 @@ <!-- Spring Boot Admin --> <dependency> <groupId>de.codecentric</groupId> - <artifactId>spring-boot-admin-server</artifactId> + <artifactId>spring-boot-admin-starter-server</artifactId> <version>${spring-boot-admin.version}</version> </dependency> <dependency> diff --git a/spring-petclinic-admin-server/src/main/java/org/springframework/samples/petclinic/admin/SpringBootAdminApplication.java b/spring-petclinic-admin-server/src/main/java/org/springframework/samples/petclinic/admin/SpringBootAdminApplication.java index 97f85e85fa9b7aad8b65b4cfc460a5c9440b7cdd..eb9349cd7b54ed81629825bd0b25b53d5b40e386 100644 --- a/spring-petclinic-admin-server/src/main/java/org/springframework/samples/petclinic/admin/SpringBootAdminApplication.java +++ b/spring-petclinic-admin-server/src/main/java/org/springframework/samples/petclinic/admin/SpringBootAdminApplication.java @@ -15,7 +15,7 @@ */ package org.springframework.samples.petclinic.admin; -import de.codecentric.boot.admin.config.EnableAdminServer; +import de.codecentric.boot.admin.server.config.EnableAdminServer; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @@ -29,4 +29,5 @@ public class SpringBootAdminApplication { public static void main(String[] args) { SpringApplication.run(SpringBootAdminApplication.class, args); } + } diff --git a/spring-petclinic-api-gateway/pom.xml b/spring-petclinic-api-gateway/pom.xml index b7524d045af6f8aaaa38ed27f62f65a2d3b32c2d..e47d85b5117fd354827c470e6574a03ea6c045b8 100644 --- a/spring-petclinic-api-gateway/pom.xml +++ b/spring-petclinic-api-gateway/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>org.springframework.samples</groupId> <artifactId>spring-petclinic-microservices</artifactId> - <version>1.5.9</version> + <version>2.0.3</version> </parent> <properties> @@ -106,7 +106,7 @@ </dependency> <dependency> <groupId>org.webjars</groupId> - <artifactId>webjars-locator</artifactId> + <artifactId>webjars-locator-core</artifactId> </dependency> </dependencies> diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/OwnerDetails.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/OwnerDetails.java index cc6a7b5235db360d40e3ee954a54579e566ef264..ca2be1cdcca1f5691718441ee84092fafb9f31c0 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/OwnerDetails.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/OwnerDetails.java @@ -17,6 +17,7 @@ package org.springframework.samples.petclinic.api.application; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.ArrayList; import java.util.List; @@ -29,17 +30,17 @@ import static java.util.stream.Collectors.toList; @Data public class OwnerDetails { - private final int id; + private int id; - private final String firstName; + private String firstName; - private final String lastName; + private String lastName; - private final String address; + private String address; - private final String city; + private String city; - private final String telephone; + private String telephone; private final List<PetDetails> pets = new ArrayList<>(); diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/PetDetails.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/PetDetails.java index 74a3f20129d7f0a3465db2b5693d482036716a1f..b2b40d0e4a4496e26a07cfe85d078c6c2c498c26 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/PetDetails.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/PetDetails.java @@ -16,6 +16,7 @@ package org.springframework.samples.petclinic.api.application; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.ArrayList; import java.util.List; @@ -26,13 +27,13 @@ import java.util.List; @Data public class PetDetails { - private final int id; + private int id; - private final String name; + private String name; - private final String birthDate; + private String birthDate; - private final PetType type; + private PetType type; private final List<VisitDetails> visits = new ArrayList<>(); diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/PetType.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/PetType.java index 10b6fc2cd9d24c3ec161f255d2f9cbb973d37efe..bd284b558c608a7832ad31417d16b9a9721b04fd 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/PetType.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/PetType.java @@ -16,6 +16,7 @@ package org.springframework.samples.petclinic.api.application; import lombok.Data; +import lombok.NoArgsConstructor; /** * @author Maciej Szarlinski @@ -23,5 +24,5 @@ import lombok.Data; @Data public class PetType { - private final String name; + private String name; } diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitDetails.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitDetails.java index 99769b0c5a0b43f17384f3ab5d8854b9c3aa8e17..beefaa3fb8667ddee7733e7dd6f3e574316a359a 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitDetails.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitDetails.java @@ -16,6 +16,7 @@ package org.springframework.samples.petclinic.api.application; import lombok.Data; +import lombok.NoArgsConstructor; /** * @author Maciej Szarlinski @@ -23,11 +24,11 @@ import lombok.Data; @Data public class VisitDetails { - private final int id; + private int id; - private final int petId; + private int petId; - private final String date; + private String date; - private final String description; + private String description; } diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/infrastructure/config/WebConfig.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/infrastructure/config/WebConfig.java deleted file mode 100644 index 1b14759e7ea2091575fa9c5f6457ab2965b9fac8..0000000000000000000000000000000000000000 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/infrastructure/config/WebConfig.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2002-2017 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 - * - * http://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.api.infrastructure.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; - -@Configuration -public class WebConfig extends WebMvcConfigurerAdapter { - - @Override - public void addViewControllers(ViewControllerRegistry registry) { - registry.addViewController("/").setViewName("index"); - } -} diff --git a/spring-petclinic-config-server/pom.xml b/spring-petclinic-config-server/pom.xml index c2c3fc5377d246b5281f7b4ba3eff2e13bab3228..752cfa299eb2b46a4d66ba378fb506ae8896dbfa 100644 --- a/spring-petclinic-config-server/pom.xml +++ b/spring-petclinic-config-server/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>org.springframework.samples</groupId> <artifactId>spring-petclinic-microservices</artifactId> - <version>1.5.9</version> + <version>2.0.3</version> </parent> <properties> diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index 98dee28520f69ed84d9752f8a32ddf32e71ba737..7dc6fd570102d960bf0f97844ad0f01f8ec73d36 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>org.springframework.samples</groupId> <artifactId>spring-petclinic-microservices</artifactId> - <version>1.5.9</version> + <version>2.0.3</version> </parent> <properties> @@ -52,7 +52,7 @@ </dependency> <dependency> <groupId>org.springframework.cloud</groupId> - <artifactId>spring-cloud-starter-eureka</artifactId> + <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java index bacbf191d37a10937fb74b5a6d960ae118c35e92..360e7652f3a81df2dbcc2c6bff64c79e74a92d39 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java @@ -31,8 +31,8 @@ import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.validation.constraints.Digits; +import javax.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/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java index 25ae2d5c0c71e8bfab59ba91464ddf19b2e0b246..e0d28a9fd9d8d15b68d2f31d7b02a4ad13680fa5 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java @@ -29,6 +29,7 @@ import javax.persistence.Temporal; import javax.persistence.TemporalType; import com.fasterxml.jackson.annotation.JsonIgnore; +import org.springframework.core.style.ToStringCreator; /** * Simple business object representing a pet. @@ -100,4 +101,17 @@ public class Pet { public void setOwner(final Owner owner) { this.owner = owner; } + + @Override + public String toString() { + return new ToStringCreator(this) + .append("id", this.getId()) + .append("name", this.getName()) + .append("birthDate", this.getBirthDate()) + .append("type", this.getType().getName()) + .append("ownerFirstname", this.getOwner().getFirstName()) + .append("ownerLastname", this.getOwner().getLastName()) + .toString(); + } + } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java index 802c73d9bee787bf0a52ee2f2df6a80ba07baed6..4cdac535ea4484ce0db7d42ed5cae27f2450cd4b 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java @@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; +import java.util.Optional; /** * @author Juergen Hoeller @@ -56,8 +57,8 @@ class OwnerResource { * Read single Owner */ @GetMapping(value = "/{ownerId}") - public Owner findOwner(@PathVariable("ownerId") int ownerId) { - return ownerRepository.findOne(ownerId); + public Optional<Owner> findOwner(@PathVariable("ownerId") int ownerId) { + return ownerRepository.findById(ownerId); } /** @@ -74,7 +75,9 @@ class OwnerResource { @PutMapping(value = "/{ownerId}") @Monitored public Owner updateOwner(@PathVariable("ownerId") int ownerId, @Valid @RequestBody Owner ownerRequest) { - final Owner ownerModel = ownerRepository.findOne(ownerId); + final Optional<Owner> owner = ownerRepository.findById(ownerId); + + final Owner ownerModel = owner.orElseThrow(() -> new ResourceNotFoundException("Owner "+ownerId+" not found")); // This is done by hand for simplicity purpose. In a real life use-case we should consider using MapStruct. ownerModel.setFirstName(ownerRequest.getFirstName()); ownerModel.setLastName(ownerRequest.getLastName()); diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java index a7c7d3032e65d71653665b5083d17fea1cf6cee5..e196ca88232bf602e5edbcebb41ce63d8219aaf3 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java @@ -24,6 +24,7 @@ import org.springframework.samples.petclinic.monitoring.Monitored; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Optional; /** * @author Juergen Hoeller @@ -53,7 +54,8 @@ class PetResource { @PathVariable("ownerId") int ownerId) { final Pet pet = new Pet(); - final Owner owner = ownerRepository.findOne(ownerId); + final Optional<Owner> optionalOwner = ownerRepository.findById(ownerId); + Owner owner = optionalOwner.orElseThrow(() -> new ResourceNotFoundException("Owner "+ownerId+" not found")); owner.addPet(pet); save(pet, petRequest); @@ -63,7 +65,9 @@ class PetResource { @ResponseStatus(HttpStatus.NO_CONTENT) @Monitored public void processUpdateForm(@RequestBody PetRequest petRequest) { - save(petRepository.findOne(petRequest.getId()), petRequest); + int petId = petRequest.getId(); + Pet pet = findPetById(petId); + save(pet, petRequest); } private void save(final Pet pet, final PetRequest petRequest) { @@ -80,7 +84,16 @@ class PetResource { @GetMapping("owners/*/pets/{petId}") public PetDetails findPet(@PathVariable("petId") int petId) { - return new PetDetails(petRepository.findOne(petId)); + return new PetDetails(findPetById(petId)); + } + + + private Pet findPetById(int petId) { + Optional<Pet> pet = petRepository.findById(petId); + if (!pet.isPresent()) { + throw new ResourceNotFoundException("Pet "+petId+" not found"); + } + return pet.get(); } } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/ResourceNotFoundException.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/ResourceNotFoundException.java new file mode 100644 index 0000000000000000000000000000000000000000..c321a99d0d76880f524f42c72cf06a372f7e8064 --- /dev/null +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/ResourceNotFoundException.java @@ -0,0 +1,13 @@ +package org.springframework.samples.petclinic.customers.web; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(value = HttpStatus.NOT_FOUND) +public class ResourceNotFoundException extends RuntimeException { + + public ResourceNotFoundException(String message) { + super(message); + } + +} diff --git a/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceDatabaseTest.java b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceDatabaseTest.java index cf7b5ab722099b2ba8866153e47d1f400e408d01..376904d484550c87728f33d00782ebaa62e27632 100644 --- a/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceDatabaseTest.java +++ b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceDatabaseTest.java @@ -39,7 +39,7 @@ public class PetResourceDatabaseTest { @Test public void shouldGetAPet() throws Exception { - Pet pet = petRepository.findOne(2); + Pet pet = petRepository.findById(2).get(); assertThat(petRepository.findAll()).contains(pet); } } diff --git a/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java index 7f152a673abca990cef3ab0d2bd991ee688ccd67..91ab774960c62c0066f262eaff0b7b8aa7ea5438 100644 --- a/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java +++ b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java @@ -21,6 +21,8 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; +import java.util.Optional; + /** * @author Maciej Szarlinski */ @@ -43,10 +45,10 @@ public class PetResourceTest { Pet pet = setupPet(); - given(petRepository.findOne(2)).willReturn(pet); + given(petRepository.findById(2)).willReturn(Optional.of(pet)); - mvc.perform(get("/owners/2/pets/2.json").accept(MediaType.APPLICATION_JSON)) + mvc.perform(get("/owners/2/pets/2").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(content().contentType("application/json;charset=UTF-8")) .andExpect(jsonPath("$.id").value(2)) diff --git a/spring-petclinic-discovery-server/pom.xml b/spring-petclinic-discovery-server/pom.xml index ea0c04f86472b012645fe190c87986079531eb2e..dde7ff5f3e2665f35553a9817cec7f2af96a630b 100644 --- a/spring-petclinic-discovery-server/pom.xml +++ b/spring-petclinic-discovery-server/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>org.springframework.samples</groupId> <artifactId>spring-petclinic-microservices</artifactId> - <version>1.5.9</version> + <version>2.0.3</version> </parent> <properties> diff --git a/spring-petclinic-monitoring/pom.xml b/spring-petclinic-monitoring/pom.xml index 5f059d6a565da66080388d8b1b3f1b9d135bb555..639e960d9688097d858eab826cd4e5791df8c428 100644 --- a/spring-petclinic-monitoring/pom.xml +++ b/spring-petclinic-monitoring/pom.xml @@ -12,7 +12,7 @@ <parent> <groupId>org.springframework.samples</groupId> <artifactId>spring-petclinic-microservices</artifactId> - <version>1.5.9</version> + <version>2.0.3</version> </parent> <dependencies> diff --git a/spring-petclinic-tracing-server/pom.xml b/spring-petclinic-tracing-server/pom.xml index df1cb6f05f2fa06d281a0eb071ec7cdfdd4b0e37..832de6c70b16c93cee367980b7a2e88c4d33126e 100644 --- a/spring-petclinic-tracing-server/pom.xml +++ b/spring-petclinic-tracing-server/pom.xml @@ -12,10 +12,11 @@ <parent> <groupId>org.springframework.samples</groupId> <artifactId>spring-petclinic-microservices</artifactId> - <version>1.5.9</version> + <version>2.0.3</version> </parent> <properties> + <zipkin.version>2.8.4</zipkin.version> <docker.image.exposed.port>8081</docker.image.exposed.port> <docker.image.dockerfile.dir>${basedir}/../docker</docker.image.dockerfile.dir> </properties> @@ -46,10 +47,12 @@ <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-server</artifactId> + <version>${zipkin.version}</version> </dependency> <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-autoconfigure-ui</artifactId> + <version>${zipkin.version}</version> <scope>runtime</scope> </dependency> <dependency> diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index c2ea3525250bcae9c70c395723d18de3860594e4..d42a9f3e038f78dc8612ad072048ba9581e00c1d 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>org.springframework.samples</groupId> <artifactId>spring-petclinic-microservices</artifactId> - <version>1.5.9</version> + <version>2.0.3</version> </parent> <properties> @@ -59,7 +59,7 @@ </dependency> <dependency> <groupId>org.springframework.cloud</groupId> - <artifactId>spring-cloud-starter-eureka</artifactId> + <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java index 1a9ace2949ea712696ef71f3549cb671f0adf051..cddb6a9e3bdf6169756b3c2387e01bb2be0b6cda 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java @@ -31,9 +31,9 @@ import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.Table; +import javax.validation.constraints.NotEmpty; import javax.xml.bind.annotation.XmlElement; -import org.hibernate.validator.constraints.NotEmpty; import org.springframework.beans.support.MutableSortDefinition; import org.springframework.beans.support.PropertyComparator; diff --git a/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceDatabaseTest.java b/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceDatabaseTest.java index 6cca60940e2e6733a10c928ed16ff68008a06478..5f1387ae618b8e3400c1cb5d1841fb9e51718bfb 100644 --- a/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceDatabaseTest.java +++ b/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceDatabaseTest.java @@ -41,7 +41,7 @@ public class VetResourceDatabaseTest { @Test public void shouldGetAListOfVetsInJSonFormat() throws Exception { - Vet vet = vetRepository.findOne(1); + Vet vet = vetRepository.findById(1).get(); assertThat(vetRepository.findAll()).contains(vet); } } diff --git a/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java b/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java index 78890eebb09455b61808c22f46dcaf308dc9a500..a2a5b77fd39740e49275b69266f51b426989d898 100644 --- a/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java +++ b/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java @@ -55,7 +55,7 @@ public class VetResourceTest { given(vetRepository.findAll()).willReturn(asList(vet)); - mvc.perform(get("/vets.json").accept(MediaType.APPLICATION_JSON)) + mvc.perform(get("/vets").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$[0].id").value(1)); } diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml index 2e44cadf5db16c77b77ceefdd38d9ba2c786a8c8..2d282582bec497d5223396b7cc8ddcf11f41d085 100644 --- a/spring-petclinic-visits-service/pom.xml +++ b/spring-petclinic-visits-service/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>org.springframework.samples</groupId> <artifactId>spring-petclinic-microservices</artifactId> - <version>1.5.9</version> + <version>2.0.3</version> </parent> <properties> diff --git a/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/VisitResourceDatabaseTest.java b/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/VisitResourceDatabaseTest.java index b5ea583fa9f751d64b63820f9217866e35ab5c69..087d8f7577ec61a88b05221527e4a2aa81e3ba39 100644 --- a/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/VisitResourceDatabaseTest.java +++ b/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/VisitResourceDatabaseTest.java @@ -40,7 +40,7 @@ public class VisitResourceDatabaseTest { @Test public void shouldGetAListOfVetsInJSonFormat() throws Exception { - Visit vet = visitRepository.findOne(1); + Visit vet = visitRepository.findById(1).get(); assertThat(visitRepository.findAll()).contains(vet); } }