From be13dac5d357caa243571c5e772a054b5ac5781c Mon Sep 17 00:00:00 2001 From: Auri Munoz Date: Fri, 26 Jul 2024 14:58:52 +0200 Subject: [PATCH] Use latest Stork and refactor extension according to new registrars provided in standalone way --- bom/application/pom.xml | 2 +- .../quarkus/stork/ServiceConfiguration.java | 2 +- .../io/quarkus/stork/StorkConfigUtil.java | 15 ++++---- .../resteasy-reactive/pom.xml | 2 +- .../smallrye-stork-registration/pom.xml | 35 ++----------------- .../java/org/acme/ClientCallingResource.java | 25 ------------- .../main/java/org/acme/MyServiceClient.java | 22 ------------ .../java/org/acme/services/BlueService.java | 27 -------------- .../java/org/acme/services/RedService.java | 28 --------------- .../src/main/resources/application.properties | 2 -- .../org/acme/ClientCallingResourceTest.java | 14 ++++---- 11 files changed, 20 insertions(+), 154 deletions(-) delete mode 100644 integration-tests/smallrye-stork-registration/src/main/java/org/acme/ClientCallingResource.java delete mode 100644 integration-tests/smallrye-stork-registration/src/main/java/org/acme/MyServiceClient.java delete mode 100644 integration-tests/smallrye-stork-registration/src/main/java/org/acme/services/BlueService.java delete mode 100644 integration-tests/smallrye-stork-registration/src/main/java/org/acme/services/RedService.java diff --git a/bom/application/pom.xml b/bom/application/pom.xml index 50ce737be08f3..1b2519fba21b5 100644 --- a/bom/application/pom.xml +++ b/bom/application/pom.xml @@ -64,7 +64,7 @@ 3.0.1 3.15.0 4.24.0 - 2.6.1 + 2.7.0 2.1.3 3.0.0 3.0.0 diff --git a/extensions/smallrye-stork/runtime/src/main/java/io/quarkus/stork/ServiceConfiguration.java b/extensions/smallrye-stork/runtime/src/main/java/io/quarkus/stork/ServiceConfiguration.java index 7ef7b23f3f9ef..c8e4adb66ff2b 100644 --- a/extensions/smallrye-stork/runtime/src/main/java/io/quarkus/stork/ServiceConfiguration.java +++ b/extensions/smallrye-stork/runtime/src/main/java/io/quarkus/stork/ServiceConfiguration.java @@ -9,7 +9,7 @@ public interface ServiceConfiguration { /** * ServiceDiscovery configuration for the service */ - StorkServiceDiscoveryConfiguration serviceDiscovery(); + Optional serviceDiscovery(); /** * LoadBalancer configuration for the service diff --git a/extensions/smallrye-stork/runtime/src/main/java/io/quarkus/stork/StorkConfigUtil.java b/extensions/smallrye-stork/runtime/src/main/java/io/quarkus/stork/StorkConfigUtil.java index 17671e5a88d51..f1d9c304235fd 100644 --- a/extensions/smallrye-stork/runtime/src/main/java/io/quarkus/stork/StorkConfigUtil.java +++ b/extensions/smallrye-stork/runtime/src/main/java/io/quarkus/stork/StorkConfigUtil.java @@ -16,12 +16,15 @@ public static List toStorkServiceConfig(StorkConfiguration storkC for (String serviceName : servicesConfigs) { builder.setServiceName(serviceName); ServiceConfiguration serviceConfiguration = storkConfiguration.serviceConfiguration().get(serviceName); - SimpleServiceConfig.SimpleServiceDiscoveryConfig storkServiceDiscoveryConfig = new SimpleServiceConfig.SimpleServiceDiscoveryConfig( - serviceConfiguration.serviceDiscovery().type(), serviceConfiguration.serviceDiscovery().params()); - builder = builder.setServiceDiscovery(storkServiceDiscoveryConfig); - SimpleServiceConfig.SimpleLoadBalancerConfig loadBalancerConfig = new SimpleServiceConfig.SimpleLoadBalancerConfig( - serviceConfiguration.loadBalancer().type(), serviceConfiguration.loadBalancer().parameters()); - builder.setLoadBalancer(loadBalancerConfig); + if (serviceConfiguration.serviceDiscovery().isPresent()) { + SimpleServiceConfig.SimpleServiceDiscoveryConfig storkServiceDiscoveryConfig = new SimpleServiceConfig.SimpleServiceDiscoveryConfig( + serviceConfiguration.serviceDiscovery().get().type(), + serviceConfiguration.serviceDiscovery().get().params()); + builder = builder.setServiceDiscovery(storkServiceDiscoveryConfig); + SimpleServiceConfig.SimpleLoadBalancerConfig loadBalancerConfig = new SimpleServiceConfig.SimpleLoadBalancerConfig( + serviceConfiguration.loadBalancer().type(), serviceConfiguration.loadBalancer().parameters()); + builder.setLoadBalancer(loadBalancerConfig); + } if (serviceConfiguration.serviceRegistrar().isPresent()) { SimpleServiceConfig.SimpleServiceRegistrarConfig serviceRegistrarConfig = new SimpleServiceConfig.SimpleServiceRegistrarConfig( serviceConfiguration.serviceRegistrar().get().type(), diff --git a/independent-projects/resteasy-reactive/pom.xml b/independent-projects/resteasy-reactive/pom.xml index 847e2b08e1f96..a2fae4c8cb6a7 100644 --- a/independent-projects/resteasy-reactive/pom.xml +++ b/independent-projects/resteasy-reactive/pom.xml @@ -62,7 +62,7 @@ 5.5.0 1.0.0.Final 2.17.2 - 2.6.1 + 2.7.0 3.0.2 3.0.4 3.0.1 diff --git a/integration-tests/smallrye-stork-registration/pom.xml b/integration-tests/smallrye-stork-registration/pom.xml index 3986cd800e0d0..7e5f1ddf33ae3 100644 --- a/integration-tests/smallrye-stork-registration/pom.xml +++ b/integration-tests/smallrye-stork-registration/pom.xml @@ -17,18 +17,13 @@ io.quarkus quarkus-vertx-http - - - io.quarkus - quarkus-rest-client-jackson - io.quarkus - quarkus-rest-jackson + quarkus-smallrye-stork-deployment io.smallrye.stork - stork-service-discovery-static-list + stork-service-registration-static-list @@ -52,32 +47,6 @@ - - io.quarkus - quarkus-rest-jackson-deployment - ${project.version} - pom - test - - - * - * - - - - - io.quarkus - quarkus-rest-client-jackson-deployment - ${project.version} - pom - test - - - * - * - - - io.quarkus quarkus-vertx-http-deployment diff --git a/integration-tests/smallrye-stork-registration/src/main/java/org/acme/ClientCallingResource.java b/integration-tests/smallrye-stork-registration/src/main/java/org/acme/ClientCallingResource.java deleted file mode 100644 index 46110519ad351..0000000000000 --- a/integration-tests/smallrye-stork-registration/src/main/java/org/acme/ClientCallingResource.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.acme; - -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; - -import org.eclipse.microprofile.rest.client.inject.RestClient; - -/** - * A frontend API using our REST Client (which uses Stork to locate and select the service instance on each call). - */ -@Path("/api") -public class ClientCallingResource { - - @RestClient - MyServiceClient service; - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String invoke() { - return service.get(); - } - -} diff --git a/integration-tests/smallrye-stork-registration/src/main/java/org/acme/MyServiceClient.java b/integration-tests/smallrye-stork-registration/src/main/java/org/acme/MyServiceClient.java deleted file mode 100644 index aeba6019125d3..0000000000000 --- a/integration-tests/smallrye-stork-registration/src/main/java/org/acme/MyServiceClient.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.acme; - -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - -/** - * The REST Client interface. - * - * Notice the `baseUri`. It uses `stork://` as URL scheme indicating that the called service uses Stork to locate and - * select the service instance. The `my-service` part is the service name. This is used to configure Stork discovery - * and selection in the `application.properties` file. - */ -@RegisterRestClient(baseUri = "stork://my-service") -public interface MyServiceClient { - - @GET - @Produces(MediaType.TEXT_PLAIN) - String get(); -} diff --git a/integration-tests/smallrye-stork-registration/src/main/java/org/acme/services/BlueService.java b/integration-tests/smallrye-stork-registration/src/main/java/org/acme/services/BlueService.java deleted file mode 100644 index f209e90dfd910..0000000000000 --- a/integration-tests/smallrye-stork-registration/src/main/java/org/acme/services/BlueService.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.acme.services; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; - -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import io.quarkus.runtime.StartupEvent; -import io.vertx.mutiny.core.Vertx; - -@ApplicationScoped -public class BlueService { - - @ConfigProperty(name = "blue-service-port", defaultValue = "9000") - int port; - - /** - * Start an HTTP server for the blue service. - * - * Note: this method is called on a worker thread, and so it is allowed to block. - */ - public void init(@Observes StartupEvent ev, Vertx vertx) { - vertx.createHttpServer() - .requestHandler(req -> req.response().endAndForget("Hello from Blue!")) - .listenAndAwait(port); - } -} diff --git a/integration-tests/smallrye-stork-registration/src/main/java/org/acme/services/RedService.java b/integration-tests/smallrye-stork-registration/src/main/java/org/acme/services/RedService.java deleted file mode 100644 index 475ca81eaf3a0..0000000000000 --- a/integration-tests/smallrye-stork-registration/src/main/java/org/acme/services/RedService.java +++ /dev/null @@ -1,28 +0,0 @@ - -package org.acme.services; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.event.Observes; - -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import io.quarkus.runtime.StartupEvent; -import io.vertx.mutiny.core.Vertx; - -@ApplicationScoped -public class RedService { - @ConfigProperty(name = "red-service-port", defaultValue = "9001") - int port; - - /** - * Start an HTTP server for the red service. - * - * Note: this method is called on a worker thread, and so it is allowed to block. - */ - public void init(@Observes StartupEvent ev, Vertx vertx) { - vertx.createHttpServer() - .requestHandler(req -> req.response().endAndForget("Hello from Red!")) - .listenAndAwait(port); - } - -} diff --git a/integration-tests/smallrye-stork-registration/src/main/resources/application.properties b/integration-tests/smallrye-stork-registration/src/main/resources/application.properties index 15a149ec67485..81c4c37bf3d81 100644 --- a/integration-tests/smallrye-stork-registration/src/main/resources/application.properties +++ b/integration-tests/smallrye-stork-registration/src/main/resources/application.properties @@ -1,3 +1 @@ -quarkus.stork.my-service.service-discovery.type=static - quarkus.stork.my-service.service-registrar.type=static diff --git a/integration-tests/smallrye-stork-registration/src/test/java/org/acme/ClientCallingResourceTest.java b/integration-tests/smallrye-stork-registration/src/test/java/org/acme/ClientCallingResourceTest.java index 530da75f8fbb6..c88639c05314e 100644 --- a/integration-tests/smallrye-stork-registration/src/test/java/org/acme/ClientCallingResourceTest.java +++ b/integration-tests/smallrye-stork-registration/src/test/java/org/acme/ClientCallingResourceTest.java @@ -1,24 +1,22 @@ package org.acme; -import java.util.HashSet; -import java.util.Set; +import jakarta.inject.Inject; +import org.acme.services.Registration; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import io.quarkus.test.junit.QuarkusTest; -import io.restassured.RestAssured; @QuarkusTest public class ClientCallingResourceTest { + @Inject + Registration registration; + @Test public void test() { - Set bodies = new HashSet<>(); - for (int i = 0; i < 10; i++) { - bodies.add(RestAssured.get("/api").then().statusCode(200).extract().body().asString()); - } - Assertions.assertEquals(2, bodies.size()); + Assertions.assertNotNull(registration); } }