--- name: java-optimize-quarkus-native description: Systematic Quarkus native image optimization with reflection registration and performance improvements user-invocable: true allowed-tools: Read, Grep, Glob, Write, Edit, Bash --- # Java CDI Quarkus Skill **REFERENCE MODE**: This skill provides reference material. Load specific standards on-demand based on current task. Quarkus-specific CDI standards extending core CDI patterns with Quarkus testing, native image support, and GraalVM reflection configuration. ## Prerequisites This skill applies to Quarkus projects: - `io.quarkus:quarkus-junit5` (Quarkus testing) - `io.quarkus:quarkus-jacoco` (coverage) ## Workflow ### Step 1: Load Quarkus Testing Standards **CRITICAL**: Load this standard for any Quarkus testing work. ``` Read: standards/quarkus-testing.md ``` This provides foundational rules for: - @QuarkusTest and @QuarkusIntegrationTest - JaCoCo configuration for Quarkus - REST Assured patterns ### Step 2: Load Additional Standards (As Needed) **External Integration Testing** (load for Docker-based IT): ``` Read: standards/integration-testing.md ``` Use when: Configuring external API integration tests with Docker containers. For basic Maven Failsafe setup, see `pm-dev-java:junit-integration`. **Native Image** (load for GraalVM work): ``` Read: standards/quarkus-native.md ``` Use when: Building native images or troubleshooting native compilation. **Reflection Registration** (load for native issues): ``` Read: standards/quarkus-reflection.md ``` Use when: Resolving reflection issues in native builds. **Container Standards** (load for Docker deployment): ``` Read: standards/container.md ``` Use when: Configuring container images, Docker Compose, health checks, or certificate management. **Security Standards** (load for security work): ``` Read: standards/security.md ``` Use when: Implementing OWASP-compliant security, secure logging, or runtime security configuration. ## Key Rules Summary ### @QuarkusTest Setup ```java @QuarkusTest class TokenValidatorTest { @Inject TokenValidator validator; @Test @DisplayName("Should validate valid token") void shouldValidateValidToken() { ValidationResult result = validator.validate(validToken); assertTrue(result.isValid()); } } ``` ### REST Assured Testing ```java @QuarkusTest class UserResourceTest { @Test void shouldReturnUsers() { given() .when().get("/api/users") .then() .statusCode(200) .body("$.size()", greaterThan(0)); } } ``` ### JaCoCo Dependencies ```xml io.quarkus quarkus-jacoco test ``` ### Native Image Build ```bash # Build native image mvn package -Pnative # Run native integration tests mvn verify -Pnative -Dquarkus.test.native-image-profile=native ``` ## Related Skills - `pm-dev-java:java-cdi` - Core CDI patterns - `pm-dev-java:junit-integration` - Maven integration testing - `pm-dev-java:junit-core` - JUnit 5 core patterns ## Standards Reference | Standard | Purpose | |----------|---------| | quarkus-testing.md | @QuarkusTest, JaCoCo, REST Assured | | integration-testing.md | External API testing with Docker (extends junit-integration) | | quarkus-native.md | GraalVM native image builds | | quarkus-reflection.md | Reflection registration for native | | container.md | Docker deployment, health checks, certificate management | | security.md | OWASP security, secure logging, runtime security |