Skip to content

Instantly share code, notes, and snippets.

@aureamunoz
Created June 23, 2026 13:35
Show Gist options
  • Select an option

  • Save aureamunoz/1fb29abf72716bdd699312b51f0668bb to your computer and use it in GitHub Desktop.

Select an option

Save aureamunoz/1fb29abf72716bdd699312b51f0668bb to your computer and use it in GitHub Desktop.
Migration Skill Technology Coverage Matrix
Decision Area Current Option(s) in Skill Alternate Options NOT Covered
Migration Strategy Spring Compatibility (quarkus-spring-*), Full Quarkus (JAX-RS/CDI) Hybrid (compat for some layers, full for others)
Target Java Version Java 21+ (hard gate, blocks migration if < 21)
Build System Maven (pom.xml), Gradle Groovy (build.gradle), Gradle Kotlin DSL (build.gradle.kts)
REST Framework Full: RESTEasy (JAX-RS @Path), Compat: quarkus-spring-web (@RestController) RESTEasy Reactive vs Classic not explicitly distinguished; no GraphQL option
Dependency Injection Full: CDI/Arc (@ApplicationScoped, @Inject), Compat: quarkus-spring-di
Persistence Strategy Full: Hibernate ORM with Panache (Active Record and Repository pattern), Compat: quarkus-spring-data-jpa Standard Hibernate ORM without Panache (raw EntityManager); Panache with Kotlin; Reactive Hibernate
Database H2, PostgreSQL, MySQL (JDBC drivers mapped) MariaDB, Oracle, MS SQL, MongoDB (listed in dep-map but no config guidance)
Database Migration Flyway (config mapped), Liquibase (dependency mapped) Liquibase config properties not mapped in config-map
Dev Services %prod. prefix pattern for datasource (auto DB in dev/test) No explicit guidance on configuring specific Dev Services containers
Naming Strategy CamelCaseToUnderscoresNamingStrategy workaround documented
Web Views / Templates Thymeleaf → Qute (full syntax table, @CheckedTemplate, strict rendering) JSP migration, JSF/MyFaces, Freemarker (only dependency listed), static SPA frontends
Static Resources static/META-INF/resources/ Webjars
Security Full: quarkus-security + quarkus-oidc, Compat: quarkus-spring-security (limited SpEL) LDAP, JWT (standalone), form-based auth config, RBAC details, Keycloak-specific setup
CSRF Remove Spring CSRF tokens; mentions quarkus-csrf-reactive No setup guidance for Quarkus CSRF
Caching Full: @CacheResult/@CacheInvalidate, Compat: quarkus-spring-cache Redis cache, Infinispan
Scheduling Full: @io.quarkus.scheduler.Scheduled, Compat: quarkus-spring-scheduled Quartz (dependency mapped but no migration guide)
Configuration Full: @ConfigMapping, Compat: quarkus-spring-boot-properties (@ConfigurationProperties) MicroProfile Config, @ConfigProperties
Messaging Dependencies mapped: AMQP (quarkus-smallrye-reactive-messaging-amqp), Kafka (quarkus-smallrye-reactive-messaging-kafka) No code migration guide for messaging; no JMS/Artemis; no RabbitMQ specific
Observability Actuator → quarkus-smallrye-health + quarkus-micrometer; config mapped; quarkus-opentelemetry in dep-map No migration guide for custom health checks, custom metrics, tracing setup
Logging Config mapped: logging.level.*quarkus.log.category, file logging, console format Structured JSON logging (quarkus-logging-json listed but not guided), MDC, custom log handlers
Profiles application-{profile}.properties%profile. prefix; @Profile@IfBuildProfile Multi-profile strategies, @UnlessBuildProfile, runtime profile config
Testing @SpringBootTest@QuarkusTest, @MockBean@InjectMock, TestRestTemplate → REST Assured, @ActiveProfiles@TestProfile @QuarkusIntegrationTest (native), Testcontainers, @QuarkusTestResource, continuous testing
Application Lifecycle CommandLineRunner@QuarkusMain / @Observes StartupEvent, ApplicationRunner@QuarkusMain, CLI → Picocli @TopCommand Graceful shutdown, ShutdownEvent, lifecycle priorities
Spring Data REST Compat: quarkus-spring-data-rest (@RepositoryRestResource) Full migration alternative (manual REST endpoints)
Spring Cloud Config Compat: quarkus-spring-cloud-config-client (config mapped) Consul, Vault, Kubernetes ConfigMaps
CORS @CrossOriginquarkus.http.cors.* properties
Container / Native Maven native profile added; Gradle native via -Dquarkus.native.enabled=true Dockerfile generation, Jib, container image extensions (quarkus-container-image-docker, quarkus-container-image-jib)
Batch Processing Not covered Custom with Quarkus Scheduler, JBeret, skip/manual
Reactive Not covered (Spring WebFlux → quarkus-rest mentioned in dep-map only) Mutiny, RESTEasy Reactive pipelines, Reactive Hibernate, reactive messaging patterns
OpenAPI / Swagger Not covered quarkus-smallrye-openapi
GraphQL Not covered quarkus-smallrye-graphql
gRPC Not covered quarkus-grpc
WebSocket Not covered quarkus-websockets-next
Email Not covered quarkus-mailer
Fault Tolerance Not covered quarkus-smallrye-fault-tolerance (retries, circuit breakers, timeouts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment