Skip to content

Migrate gateway service from Vert.x 3.6 to Quarkus 3#9

Open
blues-man wants to merge 1 commit into
mainfrom
migrate/vertx-to-quarkus3
Open

Migrate gateway service from Vert.x 3.6 to Quarkus 3#9
blues-man wants to merge 1 commit into
mainfrom
migrate/vertx-to-quarkus3

Conversation

@blues-man

Copy link
Copy Markdown
Contributor

Summary

  • Full framework migration from Eclipse Vert.x 3.6.3 (Red Hat) to Quarkus 3.17.8
  • Replaces GatewayVerticle (RxJava 2 reactive) with GatewayResource (JAX-RS + Mutiny)
  • Updates build tooling (Maven), Dockerfiles (UBI8/JDK17), and Kubernetes manifests

What changed

Area Before (Vert.x) After (Quarkus 3)
Entry point GatewayVerticle extends AbstractVerticle GatewayResource with @Path/@ApplicationScoped
Reactive RxJava 2 (Single, Observable) Mutiny (Uni, Multi)
HTTP client Vert.x WebClient @RegisterRestClient interfaces
Routing Router.router(vertx) JAX-RS @GET/@Path annotations
Config ConfigRetriever + env vars application.properties + MicroProfile Config
Health Manual /health endpoint MicroProfile @Readiness at /q/health
JSON Vert.x JsonObject/JsonArray POJOs with Jackson auto-serialization
Logging SLF4J + JDK14 JBoss Logging (Quarkus built-in)
Build vertx-maven-plugin + fabric8 quarkus-maven-plugin
Java 11 17
Docker UBI8/OpenJDK 11 UBI8/OpenJDK 17

Files changed

  • pom.xml — Quarkus 3 BOM and dependencies
  • GatewayResource.java — New JAX-RS resource (replaces GatewayVerticle)
  • CatalogService.java / InventoryService.java — REST client interfaces
  • Product.java / Availability.java — POJO models
  • GatewayHealthCheck.java — MicroProfile Health readiness check
  • application.properties — Quarkus configuration
  • Dockerfile / Dockerfile.multi — Updated for Quarkus + JDK 17
  • kubernetes/gateway-vertx.yaml — Updated health probes and labels

Test plan

  • mvn compile passes
  • mvn package produces target/quarkus-app/quarkus-run.jar
  • Verify /api/products returns aggregated catalog+inventory data
  • Verify /q/health/ready returns health status
  • Verify CORS headers present on responses
  • Verify env var overrides work (COMPONENT_CATALOG_HOST, etc.)

Closes #1, #2, #3, #4, #5, #6, #7, #8

🤖 Generated with Claude Code

Replace the Vert.x reactive gateway with a Quarkus 3 JAX-RS application,
converting RxJava 2 to Mutiny, WebClient to REST Client interfaces,
ConfigRetriever to MicroProfile Config, and manual health endpoints to
MicroProfile Health. Update Dockerfiles to UBI8/OpenJDK 17 and K8s
manifests with Quarkus health probe paths.

Closes #1, #2, #3, #4, #5, #6, #7, #8

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

STORY-001: Migrate Maven POM from Vert.x to Quarkus 3

1 participant