AgentSkillsCN

java-optimize-quarkus-native

通过反射注册与性能优化,实现Quarkus原生镜像的系统化优化

SKILL.md
--- frontmatter
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.

code
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):

code
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):

code
Read: standards/quarkus-native.md

Use when: Building native images or troubleshooting native compilation.

Reflection Registration (load for native issues):

code
Read: standards/quarkus-reflection.md

Use when: Resolving reflection issues in native builds.

Container Standards (load for Docker deployment):

code
Read: standards/container.md

Use when: Configuring container images, Docker Compose, health checks, or certificate management.

Security Standards (load for security work):

code
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
<!-- Required for Quarkus test coverage -->
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-jacoco</artifactId>
    <scope>test</scope>
</dependency>

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

StandardPurpose
quarkus-testing.md@QuarkusTest, JaCoCo, REST Assured
integration-testing.mdExternal API testing with Docker (extends junit-integration)
quarkus-native.mdGraalVM native image builds
quarkus-reflection.mdReflection registration for native
container.mdDocker deployment, health checks, certificate management
security.mdOWASP security, secure logging, runtime security