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
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.*
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
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/pom.xml b/pom.xml
index 95cb2481d..585231af6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,12 +6,12 @@
org.springframework.boot
spring-boot-starter-parent
- 2.6.7
+ 3.0.1
org.springframework.samples
spring-petclinic-microservices
- 2.6.7
+ 3.0.1
${project.artifactId}
pom
@@ -26,12 +26,12 @@
- 1.8
+ 17
3.17.1
- 2.6.0
- 2021.0.2
+ 2022.0.0
2.3.10
+ 1.7.1
springcommunity
9090
@@ -54,6 +54,11 @@
chaos-monkey-spring-boot
${chaos-monkey-spring-boot.version}
+
+ org.jolokia
+ jolokia-core
+ ${jolokia-core.version}
+
org.assertj
assertj-core
@@ -97,8 +102,8 @@
- pl.project13.maven
- git-commit-id-plugin
+ io.github.git-commit-id
+ git-commit-id-maven-plugin
diff --git a/spring-petclinic-admin-server/pom.xml b/spring-petclinic-admin-server/pom.xml
index e56d0d4ae..3f1da4c61 100644
--- a/spring-petclinic-admin-server/pom.xml
+++ b/spring-petclinic-admin-server/pom.xml
@@ -12,11 +12,11 @@
org.springframework.samples
spring-petclinic-microservices
- 2.6.7
+ 3.0.1
- 2.5.4
+ 3.0.0-M8
9090
${basedir}/../docker
diff --git a/spring-petclinic-api-gateway/pom.xml b/spring-petclinic-api-gateway/pom.xml
index 84c7d9f87..c18d7ccd6 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.7
+ 3.0.1
@@ -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-config-server/pom.xml b/spring-petclinic-config-server/pom.xml
index f2c3c963c..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
- 2.6.7
+ 3.0.1
diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml
index 5435bb014..78737bf16 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.7
+ 3.0.1
@@ -49,19 +49,11 @@
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
-
- org.springframework.cloud
- spring-cloud-starter-sleuth
-
-
- org.springframework.cloud
- spring-cloud-sleuth-zipkin
-
- mysql
- mysql-connector-java
+ com.mysql
+ mysql-connector-j
runtime
@@ -86,6 +78,10 @@
de.codecentric
chaos-monkey-spring-boot
+
+ io.opentelemetry
+ opentelemetry-exporter-zipkin
+
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-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-discovery-server/pom.xml b/spring-petclinic-discovery-server/pom.xml
index c81faf4f8..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
- 2.6.7
+ 3.0.1
diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml
index 26fa5779c..e137c3614 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.7
+ 3.0.1
@@ -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
-
@@ -77,8 +69,12 @@
cache-api
- org.ehcache
- ehcache
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+
+
+ com.github.ben-manes.caffeine
+ caffeine
org.jolokia
@@ -90,8 +86,8 @@
runtime
- mysql
- mysql-connector-java
+ com.mysql
+ mysql-connector-j
runtime
@@ -102,6 +98,10 @@
de.codecentric
chaos-monkey-spring-boot
+
+ io.opentelemetry
+ opentelemetry-exporter-zipkin
+
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-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();
}
diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml
index 949d1bb62..69421cbe5 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.7
+ 3.0.1
@@ -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
-
@@ -73,8 +65,8 @@
jolokia-core
- mysql
- mysql-connector-java
+ com.mysql
+ mysql-connector-j
runtime
@@ -85,6 +77,10 @@
de.codecentric
chaos-monkey-spring-boot
+
+ io.opentelemetry
+ opentelemetry-exporter-zipkin
+
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);
+ }
+
+}
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..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
@@ -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;
@@ -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);
}