From beafa3fe67f63c1da62946f993109d428119a5ae Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Thu, 21 Oct 2021 08:41:09 +0200 Subject: [PATCH 01/14] Use Github Actions for CI --- .github/workflows/maven-build.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/maven-build.yml diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml new file mode 100644 index 000000000..b2099fb2a --- /dev/null +++ b/.github/workflows/maven-build.yml @@ -0,0 +1,26 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: '11' + distribution: 'adopt' + cache: maven + - name: Build with Maven + run: mvn -B package --file pom.xml From 8f6684dad4dab5b2bdf57238fbeab5f4f382fb30 Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Fri, 25 Mar 2022 18:51:38 +0100 Subject: [PATCH 02/14] Bump to Spring Cloud 2022.0.0-M1 and Spring Boot 3.0.0-M1 --- pom.xml | 18 +++++++++++++----- spring-petclinic-admin-server/pom.xml | 2 +- spring-petclinic-api-gateway/pom.xml | 2 +- spring-petclinic-config-server/pom.xml | 2 +- spring-petclinic-customers-service/pom.xml | 2 +- spring-petclinic-discovery-server/pom.xml | 2 +- spring-petclinic-vets-service/pom.xml | 2 +- spring-petclinic-visits-service/pom.xml | 2 +- 8 files changed, 20 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index a40563067..0f3641985 100644 --- a/pom.xml +++ b/pom.xml @@ -6,12 +6,12 @@ org.springframework.boot spring-boot-starter-parent - 2.6.3 + 3.0.0-M1 org.springframework.samples spring-petclinic-microservices - 2.6.3 + 3.0.0 ${project.artifactId} pom @@ -26,11 +26,11 @@ - 1.8 + 17 3.17.1 - 2.6.0 - 2021.0.1 + 3.0.0-M1 + 2022.0.0-M1 2.3.10 springcommunity @@ -161,4 +161,12 @@ + + + repository.spring.milestone + Spring Milestone Repository + https://repo.spring.io/milestone + + + diff --git a/spring-petclinic-admin-server/pom.xml b/spring-petclinic-admin-server/pom.xml index 39c3b0027..02837ba6a 100644 --- a/spring-petclinic-admin-server/pom.xml +++ b/spring-petclinic-admin-server/pom.xml @@ -12,7 +12,7 @@ org.springframework.samples spring-petclinic-microservices - 2.6.3 + 3.0.0 diff --git a/spring-petclinic-api-gateway/pom.xml b/spring-petclinic-api-gateway/pom.xml index fa27bba62..ca287acc9 100644 --- a/spring-petclinic-api-gateway/pom.xml +++ b/spring-petclinic-api-gateway/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.6.3 + 3.0.0 diff --git a/spring-petclinic-config-server/pom.xml b/spring-petclinic-config-server/pom.xml index 347ed9384..f4d04f3ba 100644 --- a/spring-petclinic-config-server/pom.xml +++ b/spring-petclinic-config-server/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.6.3 + 3.0.0 diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index 6f1711ae6..decb12362 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.6.3 + 3.0.0 diff --git a/spring-petclinic-discovery-server/pom.xml b/spring-petclinic-discovery-server/pom.xml index 3933a41b6..0aca39274 100644 --- a/spring-petclinic-discovery-server/pom.xml +++ b/spring-petclinic-discovery-server/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.6.3 + 3.0.0 diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index 4c3c77046..2a1c3b630 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.6.3 + 3.0.0 diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml index 89aed0d6b..12f01bf10 100644 --- a/spring-petclinic-visits-service/pom.xml +++ b/spring-petclinic-visits-service/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.6.3 + 3.0.0 From 14ac6851853ed586b464de8c644a0f1ab936a034 Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Sat, 24 Dec 2022 15:04:07 +0100 Subject: [PATCH 03/14] Bump to Spring Cloud 2022.0.0 and Spring Boot 3.0.1 --- pom.xml | 35 ++++++++++++++-------- spring-petclinic-admin-server/pom.xml | 2 +- spring-petclinic-api-gateway/pom.xml | 2 +- spring-petclinic-config-server/pom.xml | 2 +- spring-petclinic-customers-service/pom.xml | 2 +- spring-petclinic-discovery-server/pom.xml | 2 +- spring-petclinic-vets-service/pom.xml | 3 +- spring-petclinic-visits-service/pom.xml | 2 +- 8 files changed, 30 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 0f3641985..6d8cfa3d2 100644 --- a/pom.xml +++ b/pom.xml @@ -6,12 +6,12 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M1 + 3.0.1 org.springframework.samples spring-petclinic-microservices - 3.0.0 + 3.0.1 ${project.artifactId} pom @@ -30,14 +30,16 @@ 3.17.1 3.0.0-M1 - 2022.0.0-M1 + 2022.0.0 2.3.10 + 1.7.1 springcommunity 9090 ${basedir} v0.6.1 1.2.0 + 3.1.3 @@ -49,11 +51,26 @@ pom import + + org.springframework.cloud + spring-cloud-starter-sleuth + ${spring-cloud-sleuth.version} + + + org.springframework.cloud + spring-cloud-sleuth-zipkin + ${spring-cloud-sleuth.version} + de.codecentric chaos-monkey-spring-boot ${chaos-monkey-spring-boot.version} + + org.jolokia + jolokia-core + ${jolokia-core.version} + org.assertj assertj-core @@ -97,8 +114,8 @@ - pl.project13.maven - git-commit-id-plugin + io.github.git-commit-id + git-commit-id-maven-plugin @@ -161,12 +178,4 @@ - - - repository.spring.milestone - Spring Milestone Repository - https://repo.spring.io/milestone - - - diff --git a/spring-petclinic-admin-server/pom.xml b/spring-petclinic-admin-server/pom.xml index 02837ba6a..2c1190924 100644 --- a/spring-petclinic-admin-server/pom.xml +++ b/spring-petclinic-admin-server/pom.xml @@ -12,7 +12,7 @@ org.springframework.samples spring-petclinic-microservices - 3.0.0 + 3.0.1 diff --git a/spring-petclinic-api-gateway/pom.xml b/spring-petclinic-api-gateway/pom.xml index ca287acc9..36e4cd0ce 100644 --- a/spring-petclinic-api-gateway/pom.xml +++ b/spring-petclinic-api-gateway/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 3.0.0 + 3.0.1 diff --git a/spring-petclinic-config-server/pom.xml b/spring-petclinic-config-server/pom.xml index f4d04f3ba..c2693b700 100644 --- a/spring-petclinic-config-server/pom.xml +++ b/spring-petclinic-config-server/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 3.0.0 + 3.0.1 diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index decb12362..7b2f6d121 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 3.0.0 + 3.0.1 diff --git a/spring-petclinic-discovery-server/pom.xml b/spring-petclinic-discovery-server/pom.xml index 0aca39274..e78fdec8e 100644 --- a/spring-petclinic-discovery-server/pom.xml +++ b/spring-petclinic-discovery-server/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 3.0.0 + 3.0.1 diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index 2a1c3b630..1ee38f00e 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 3.0.0 + 3.0.1 @@ -79,6 +79,7 @@ org.ehcache ehcache + jakarta org.jolokia diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml index 12f01bf10..53565b2a3 100644 --- a/spring-petclinic-visits-service/pom.xml +++ b/spring-petclinic-visits-service/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 3.0.0 + 3.0.1 From f797e6629db4d30504a8fe5cac718acdab23f534 Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Sat, 24 Dec 2022 17:17:02 +0100 Subject: [PATCH 04/14] Move from javax to jakarta package --- .../petclinic/customers/model/Owner.java | 22 ++++++++--------- .../petclinic/customers/model/Pet.java | 20 ++++++++-------- .../petclinic/customers/model/PetType.java | 12 +++++----- .../customers/web/OwnerResource.java | 4 ++-- .../petclinic/customers/web/PetRequest.java | 2 +- .../petclinic/customers/web/PetResource.java | 2 +- spring-petclinic-vets-service/pom.xml | 4 ++++ .../petclinic/vets/model/Specialty.java | 12 +++++----- .../samples/petclinic/vets/model/Vet.java | 24 +++++++++---------- .../samples/petclinic/visits/model/Visit.java | 18 +++++++------- .../petclinic/visits/web/VisitResource.java | 4 ++-- 11 files changed, 64 insertions(+), 60 deletions(-) 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 88860faa4..4c46ab368 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 @@ -21,17 +21,17 @@ import java.util.List; import java.util.Set; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.Table; -import javax.validation.constraints.Digits; -import javax.validation.constraints.NotBlank; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.constraints.Digits; +import jakarta.validation.constraints.NotBlank; import lombok.Getter; import lombok.Setter; 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 b89924f0d..2cb702c88 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 @@ -17,16 +17,16 @@ import java.util.Date; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.persistence.Temporal; +import jakarta.persistence.TemporalType; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java index 3a7162fda..80a29c134 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java @@ -18,12 +18,12 @@ import lombok.Getter; import lombok.Setter; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; /** * @author Juergen Hoeller 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 b867f1aa2..72c375a45 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 @@ -23,8 +23,8 @@ import org.springframework.samples.petclinic.customers.model.OwnerRepository; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; -import javax.validation.constraints.Min; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Min; import java.util.List; import java.util.Optional; diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java index b2e265316..a4ea32222 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java @@ -19,7 +19,7 @@ import java.util.Date; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.Size; import com.fasterxml.jackson.annotation.JsonFormat; 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 7ec597a4b..9b1bb9e2f 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 @@ -22,7 +22,7 @@ import org.springframework.samples.petclinic.customers.model.*; import org.springframework.web.bind.annotation.*; -import javax.validation.constraints.Min; +import jakarta.validation.constraints.Min; import java.util.List; import java.util.Optional; diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index 1ee38f00e..df1b25f17 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -76,6 +76,10 @@ javax.cache cache-api + + jakarta.xml.bind + jakarta.xml.bind-api + org.ehcache ehcache diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java index c5c0869c6..529b5a496 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java @@ -18,12 +18,12 @@ import lombok.Getter; import lombok.Setter; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; /** * Models a {@link Vet Vet's} specialty (for example, dentistry). 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 4976a39bc..2cec7f89d 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 @@ -21,18 +21,18 @@ import java.util.List; import java.util.Set; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.JoinTable; -import javax.persistence.ManyToMany; -import javax.persistence.Table; -import javax.validation.constraints.NotBlank; -import javax.xml.bind.annotation.XmlElement; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotBlank; +import jakarta.xml.bind.annotation.XmlElement; import lombok.Getter; import lombok.Setter; diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java index deede8eed..ba24c1ce7 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java @@ -21,15 +21,15 @@ import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; -import javax.validation.constraints.Size; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.persistence.Temporal; +import jakarta.persistence.TemporalType; +import jakarta.validation.constraints.Size; import java.util.Date; /** diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java index ab940b5bc..7375ff8fa 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java @@ -16,8 +16,8 @@ package org.springframework.samples.petclinic.visits.web; import java.util.List; -import javax.validation.Valid; -import javax.validation.constraints.Min; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Min; import io.micrometer.core.annotation.Timed; import lombok.RequiredArgsConstructor; From 3771233efac9c6daac661d7333aa622d9452f350 Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Sat, 24 Dec 2022 17:19:17 +0100 Subject: [PATCH 05/14] Artefact mysql-connector-java relocated to com.mysql:mysql-connector-j --- spring-petclinic-customers-service/pom.xml | 4 ++-- spring-petclinic-vets-service/pom.xml | 4 ++-- spring-petclinic-visits-service/pom.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index 7b2f6d121..626f2d78f 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -60,8 +60,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j runtime diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index df1b25f17..fbfbf0d86 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -95,8 +95,8 @@ runtime - mysql - mysql-connector-java + com.mysql + mysql-connector-j runtime diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml index 53565b2a3..ce2dd23e4 100644 --- a/spring-petclinic-visits-service/pom.xml +++ b/spring-petclinic-visits-service/pom.xml @@ -73,8 +73,8 @@ jolokia-core - mysql - mysql-connector-java + com.mysql + mysql-connector-j runtime From a12fd2c9ee44e8ed64176f4e6ad9a61d441125fd Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Sat, 24 Dec 2022 17:22:38 +0100 Subject: [PATCH 06/14] Upgrade Java CI to Java 17 --- .github/workflows/maven-build.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index b2099fb2a..e15a67296 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -13,13 +13,16 @@ jobs: build: runs-on: ubuntu-latest + strategy: + matrix: + java: [ '17' ] steps: - uses: actions/checkout@v2 - - name: Set up JDK 11 + - name: Set up JDK ${{matrix.java}} uses: actions/setup-java@v2 with: - java-version: '11' + java-version: ${{matrix.java}} distribution: 'adopt' cache: maven - name: Build with Maven From 27a644255e2fa4c2b1479e64502aa5ed5174d929 Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Sun, 25 Dec 2022 13:15:41 +0100 Subject: [PATCH 07/14] Spring Cloud Sleuth migrated to Micrometer Tracing --- spring-petclinic-api-gateway/pom.xml | 12 ++++-------- spring-petclinic-customers-service/pom.xml | 12 ++++-------- spring-petclinic-vets-service/pom.xml | 12 ++++-------- spring-petclinic-visits-service/pom.xml | 12 ++++-------- 4 files changed, 16 insertions(+), 32 deletions(-) diff --git a/spring-petclinic-api-gateway/pom.xml b/spring-petclinic-api-gateway/pom.xml index 36e4cd0ce..c18d7ccd6 100644 --- a/spring-petclinic-api-gateway/pom.xml +++ b/spring-petclinic-api-gateway/pom.xml @@ -47,10 +47,6 @@ - - org.springframework.cloud - spring-cloud-sleuth-zipkin - org.springframework.cloud spring-cloud-starter-circuitbreaker-reactor-resilience4j @@ -63,10 +59,6 @@ org.springframework.cloud spring-cloud-starter-netflix-eureka-client - - org.springframework.cloud - spring-cloud-starter-sleuth - org.springframework.cloud spring-cloud-starter-gateway @@ -90,6 +82,10 @@ io.github.resilience4j resilience4j-micrometer + + io.opentelemetry + opentelemetry-exporter-zipkin + diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index 626f2d78f..78737bf16 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -49,14 +49,6 @@ org.springframework.cloud spring-cloud-starter-netflix-eureka-client - - org.springframework.cloud - spring-cloud-starter-sleuth - - - org.springframework.cloud - spring-cloud-sleuth-zipkin - @@ -86,6 +78,10 @@ de.codecentric chaos-monkey-spring-boot + + io.opentelemetry + opentelemetry-exporter-zipkin + diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index fbfbf0d86..43b3894a7 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -49,10 +49,6 @@ - - org.springframework.cloud - spring-cloud-sleuth-zipkin - org.springframework.cloud spring-cloud-starter-config @@ -61,10 +57,6 @@ org.springframework.cloud spring-cloud-starter-netflix-eureka-client - - org.springframework.cloud - spring-cloud-starter-sleuth - @@ -107,6 +99,10 @@ de.codecentric chaos-monkey-spring-boot + + io.opentelemetry + opentelemetry-exporter-zipkin + diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml index ce2dd23e4..69421cbe5 100644 --- a/spring-petclinic-visits-service/pom.xml +++ b/spring-petclinic-visits-service/pom.xml @@ -48,14 +48,6 @@ org.springframework.cloud spring-cloud-starter-netflix-eureka-client - - org.springframework.cloud - spring-cloud-starter-sleuth - - - org.springframework.cloud - spring-cloud-sleuth-zipkin - @@ -85,6 +77,10 @@ de.codecentric chaos-monkey-spring-boot + + io.opentelemetry + opentelemetry-exporter-zipkin + From 289360c45b2881c099a8a05be4d0f4fec125002e Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Sun, 25 Dec 2022 13:15:41 +0100 Subject: [PATCH 08/14] Spring Cloud Sleuth migrated to Micrometer Tracing --- pom.xml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/pom.xml b/pom.xml index 6d8cfa3d2..47aceb3fe 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,6 @@ ${basedir} v0.6.1 1.2.0 - 3.1.3 @@ -51,16 +50,6 @@ pom import - - org.springframework.cloud - spring-cloud-starter-sleuth - ${spring-cloud-sleuth.version} - - - org.springframework.cloud - spring-cloud-sleuth-zipkin - ${spring-cloud-sleuth.version} - de.codecentric chaos-monkey-spring-boot From f7fe9ef209a8261a2e7e74dffe78c89b917d0e67 Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Sun, 25 Dec 2022 17:43:37 +0100 Subject: [PATCH 09/14] Bump to Spring Boot Admin 3.0.0-M8 --- spring-petclinic-admin-server/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-petclinic-admin-server/pom.xml b/spring-petclinic-admin-server/pom.xml index 2c1190924..3f1da4c61 100644 --- a/spring-petclinic-admin-server/pom.xml +++ b/spring-petclinic-admin-server/pom.xml @@ -16,7 +16,7 @@ - 2.5.4 + 3.0.0-M8 9090 ${basedir}/../docker From 4b51dcfa96d7515fca5a95246e276e553d9ede16 Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Sun, 25 Dec 2022 18:04:28 +0100 Subject: [PATCH 10/14] Switch vers cache from ehchace to caffeine --- spring-petclinic-vets-service/pom.xml | 5 ++--- .../samples/petclinic/vets/web/VetResource.java | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index 43b3894a7..e137c3614 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -73,9 +73,8 @@ jakarta.xml.bind-api - org.ehcache - ehcache - jakarta + com.github.ben-manes.caffeine + caffeine org.jolokia diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java index 7e0a57481..eb5116663 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java @@ -19,6 +19,7 @@ import java.util.List; +import org.springframework.cache.annotation.Cacheable; import org.springframework.samples.petclinic.vets.model.Vet; import org.springframework.samples.petclinic.vets.model.VetRepository; import org.springframework.web.bind.annotation.GetMapping; @@ -40,6 +41,7 @@ class VetResource { private final VetRepository vetRepository; @GetMapping + @Cacheable("vets") public List showResourcesVetList() { return vetRepository.findAll(); } From 2c3ee234ba087d001717f197a4d1c8d644a1eb51 Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Sun, 25 Dec 2022 19:34:41 +0100 Subject: [PATCH 11/14] Dockerfile now use eclipse-temurin:17 --- docker/Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 959770892..be157c33f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:11-jre as builder +FROM eclipse-temurin:17 as builder WORKDIR application ARG ARTIFACT_NAME COPY ${ARTIFACT_NAME}.jar application.jar @@ -11,8 +11,7 @@ RUN tar xzf dockerize.tar.gz RUN chmod +x dockerize -# wget is not installed on adoptopenjdk:11-jre-hotspot -FROM adoptopenjdk:11-jre-hotspot +FROM eclipse-temurin:17 WORKDIR application From 77057061722a2a79d54e34046191a90f5a561dec Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Mon, 26 Dec 2022 13:57:58 +0100 Subject: [PATCH 12/14] =?UTF-8?q?Add=20MetricConfig=20because=20Micrometer?= =?UTF-8?q?=E2=80=99s=20Spring=20Boot=20configuration=20does=20not=20more?= =?UTF-8?q?=20recognize=20@Timed=20on=20arbitrary=20methods.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customers/config/MetricConfig.java | 22 +++++++++++++++++++ .../petclinic/visits/config/MetricConfig.java | 22 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/config/MetricConfig.java create mode 100644 spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/config/MetricConfig.java diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/config/MetricConfig.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/config/MetricConfig.java new file mode 100644 index 000000000..fb2acaf2d --- /dev/null +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/config/MetricConfig.java @@ -0,0 +1,22 @@ +package org.springframework.samples.petclinic.customers.config; + +import io.micrometer.core.aop.TimedAspect; +import io.micrometer.core.instrument.MeterRegistry; +import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class MetricConfig { + + @Bean + MeterRegistryCustomizer metricsCommonTags() { + return registry -> registry.config().commonTags("application", "petclinic"); + } + + @Bean + TimedAspect timedAspect(MeterRegistry registry) { + return new TimedAspect(registry); + } + +} diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/config/MetricConfig.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/config/MetricConfig.java new file mode 100644 index 000000000..35e81f0af --- /dev/null +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/config/MetricConfig.java @@ -0,0 +1,22 @@ +package org.springframework.samples.petclinic.visits.config; + +import io.micrometer.core.aop.TimedAspect; +import io.micrometer.core.instrument.MeterRegistry; +import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class MetricConfig { + + @Bean + MeterRegistryCustomizer metricsCommonTags() { + return registry -> registry.config().commonTags("application", "petclinic"); + } + + @Bean + TimedAspect timedAspect(MeterRegistry registry) { + return new TimedAspect(registry); + } + +} From c6657ff1cd855f57265da033c508dcabddac0163 Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Mon, 26 Dec 2022 14:10:32 +0100 Subject: [PATCH 13/14] Eclipse Temurin with Java 17 as Docker base image --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a226b1027..60dd832b2 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ After starting services, it takes a while for API Gateway to be in sync with ser so don't be scared of initial Spring Cloud Gateway timeouts. You can track services availability using Eureka dashboard available by default at http://localhost:8761. -The `master` branch uses an Alpine linux with JRE 8 as Docker base. You will find a Java 11 version in the `release/java11` branch. +The `master` branch uses an Eclipse Temurin with Java 17 as Docker base image. *NOTE: Under MacOSX or Windows, make sure that the Docker VM has enough memory to run the microservices. The default settings are usually not enough and make the `docker-compose up` painfully slow.* From 30a03e6500c3c21bba01f1886e9c03ab94c31d74 Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Mon, 26 Dec 2022 18:18:26 +0100 Subject: [PATCH 14/14] Upgrade Grafana Petclinic dashboard JSON config with RestController method name --- .../dashboards/grafana-petclinic-dashboard.json | 16 ++++++++-------- .../petclinic/visits/web/VisitResource.java | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docker/grafana/dashboards/grafana-petclinic-dashboard.json b/docker/grafana/dashboards/grafana-petclinic-dashboard.json index ccd51d1bf..90bbeb7d6 100644 --- a/docker/grafana/dashboards/grafana-petclinic-dashboard.json +++ b/docker/grafana/dashboards/grafana-petclinic-dashboard.json @@ -283,7 +283,7 @@ "tableColumn": "", "targets": [ { - "expr": "sum(petclinic_owner_seconds_count{method=\"PUT\", status=\"204\"})", + "expr": "sum(petclinic_owner_seconds_count{method=\"updateOwner\", exception=\"none\"})", "format": "time_series", "instant": true, "intervalFactor": 1, @@ -364,7 +364,7 @@ "tableColumn": "", "targets": [ { - "expr": "sum(petclinic_owner_seconds_count{method=\"POST\", status=\"201\"})", + "expr": "sum(petclinic_owner_seconds_count{method=\"createOwner\", exception=\"none\"})", "format": "time_series", "instant": true, "intervalFactor": 1, @@ -446,7 +446,7 @@ "tableColumn": "", "targets": [ { - "expr": "sum(petclinic_pet_seconds_count{method=\"POST\", status=\"201\"})", + "expr": "sum(petclinic_pet_seconds_count{method=\"processCreationForm\", exception=\"none\"})", "format": "time_series", "instant": true, "intervalFactor": 1, @@ -528,7 +528,7 @@ "tableColumn": "Value", "targets": [ { - "expr": "sum(petclinic_visit_seconds_count{method=\"POST\", status=\"201\"})", + "expr": "sum(petclinic_visit_seconds_count{method=\"read\", exception=\"none\"})", "format": "time_series", "instant": true, "intervalFactor": 1, @@ -590,7 +590,7 @@ "steppedLine": false, "targets": [ { - "expr": "sum(petclinic_owner_seconds_count{method=\"POST\", status=\"201\"})", + "expr": "sum(petclinic_owner_seconds_count{method=\"createOwner\", exception=\"none\"})", "format": "time_series", "instant": false, "intervalFactor": 1, @@ -598,21 +598,21 @@ "refId": "A" }, { - "expr": "sum(petclinic_pet_seconds_count{method=\"POST\", status=\"201\"})", + "expr": "sum(petclinic_pet_seconds_count{method=\"processCreationForm\", exception=\"none\"})", "format": "time_series", "intervalFactor": 1, "legendFormat": "pet create", "refId": "B" }, { - "expr": "sum(petclinic_visit_seconds_count{method=\"POST\", status=\"201\"})", + "expr": "sum(petclinic_visit_seconds_count{method=\"create\", exception=\"none\"})", "format": "time_series", "intervalFactor": 1, "legendFormat": "visit create", "refId": "C" }, { - "expr": "sum(petclinic_owner_seconds_count{method=\"PUT\", status=\"204\"})", + "expr": "sum(petclinic_owner_seconds_count{method=\"updateOwner\", exception=\"none\"})", "format": "time_series", "intervalFactor": 1, "legendFormat": "owner update", diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java index 7375ff8fa..1115dd7c0 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java @@ -62,12 +62,12 @@ public Visit create( } @GetMapping("owners/*/pets/{petId}/visits") - public List visits(@PathVariable("petId") @Min(1) int petId) { + public List read(@PathVariable("petId") @Min(1) int petId) { return visitRepository.findByPetId(petId); } @GetMapping("pets/visits") - public Visits visitsMultiGet(@RequestParam("petId") List petIds) { + public Visits read(@RequestParam("petId") List petIds) { final List byPetIdIn = visitRepository.findByPetIdIn(petIds); return new Visits(byPetIdIn); }