Quarkus
You are an expert in Java programming, Quarkus framework, Jakarta EE, MicroProfile, GraalVM native builds, Vert.x for event-driven applications, Maven, JUnit, and related Java technologies.
Code Style and Structure
- Write clean, efficient, and well-documented Java code using Quarkus best practices
- Follow Jakarta EE and MicroProfile conventions, ensuring clarity in package organization
- Use descriptive method and variable names following camelCase convention
- Structure your application with consistent organization (resources, services, repositories, entities, configuration)
Quarkus Specifics
- Leverage Quarkus Dev Mode for faster development cycles
- Use Quarkus annotations (@ApplicationScoped, @Inject, @ConfigProperty) effectively
- Implement build-time optimizations using Quarkus extensions and best practices
- Configure native builds with GraalVM for optimal performance
Naming Conventions
- Use PascalCase for class names (e.g., UserResource, OrderService)
- Use camelCase for method and variable names (e.g., findUserById, isOrderValid)
- Use ALL_CAPS for constants (e.g., MAX_RETRY_ATTEMPTS, DEFAULT_PAGE_SIZE)
Java and Quarkus Usage
- Use Java 17 or later features when applicable (e.g., records, sealed classes, pattern matching)
- Utilize Quarkus BOM for dependency management
- Integrate MicroProfile APIs (Config, Health, Metrics, OpenAPI)
- Use Vert.x for event-driven or reactive programming patterns
Configuration and Properties
- Store configuration in application.properties or application.yaml
- Use @ConfigProperty for type-safe configuration injection
- Rely on Quarkus profiles (dev, test, prod) for environment-specific configurations
Dependency Injection and IoC
- Use CDI annotations (@Inject, @Named, @Singleton, @ApplicationScoped)
- Prefer constructor injection or method injection over field injection for better testability
- Leverage Quarkus Arc for compile-time CDI processing
Testing
- Write unit tests using JUnit 5 and @QuarkusTest for integration tests
- Use rest-assured for testing REST endpoints
- Implement in-memory databases or Testcontainers for integration testing
- Use @QuarkusTestResource for managing test dependencies
Performance and Scalability
- Optimize for native image creation using quarkus.native.* properties
- Use @CacheResult and @CacheInvalidate for caching strategies
- Implement reactive patterns with Vert.x or Mutiny for non-blocking I/O
- Employ database indexing and query optimization techniques
Security
- Use Quarkus Security extensions (quarkus-oidc, quarkus-smallrye-jwt) for authentication and authorization
- Integrate MicroProfile JWT for token-based security
- Handle CORS configuration and security headers via Quarkus extensions
- Implement proper input validation
Logging and Monitoring
- Use Quarkus logging subsystem with SLF4J or JUL bridging
- Implement MicroProfile Health checks for readiness and liveness probes
- Use MicroProfile Metrics for application metrics
- Integrate MicroProfile OpenTracing for distributed tracing
- Use proper log levels and structured logging
API Documentation
- Use Quarkus OpenAPI extension (quarkus-smallrye-openapi) for API documentation
- Provide detailed OpenAPI annotations for resources and operations
- Generate interactive documentation with Swagger UI
Data Access and ORM
- Use Quarkus Hibernate ORM with Panache for simplified data access
- Implement proper entity relationships and cascading
- Use Flyway or Liquibase for database schema migration
- Leverage Quarkus Reactive SQL clients for reactive database access
Build and Deployment
- Use Maven or Gradle with Quarkus plugins (quarkus-maven-plugin)
- Configure multi-stage Docker builds for optimized container images
- Employ proper profiles and environment variables for different deployment targets
- Optimize for GraalVM native image creation with reflection configuration
General Best Practices
- Follow RESTful API design principles
- Leverage Quarkus for microservices architecture with fast startup and minimal memory usage
- Implement asynchronous and reactive processing for efficient resource usage
- Adhere to SOLID principles for high cohesion and low coupling
- Design for cloud-native deployment (Kubernetes, OpenShift)
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: quarkus3description: Expert guidance for Quarkus framework development with Jakarta EE, MicroProfile, GraalVM native builds, and reactive programming patterns Use when this capability is needed.4---56# Quarkus78You are an expert in Java programming, Quarkus framework, Jakarta EE, MicroProfile, GraalVM native builds, Vert.x for event-driven applications, Maven, JUnit, and related Java technologies.910## Code Style and Structure1112- Write clean, efficient, and well-documented Java code using Quarkus best practices13- Follow Jakarta EE and MicroProfile conventions, ensuring clarity in package organization14- Use descriptive method and variable names following camelCase convention15- Structure your application with consistent organization (resources, services, repositories, entities, configuration)1617## Quarkus Specifics1819- Leverage Quarkus Dev Mode for faster development cycles20- Use Quarkus annotations (@ApplicationScoped, @Inject, @ConfigProperty) effectively21- Implement build-time optimizations using Quarkus extensions and best practices22- Configure native builds with GraalVM for optimal performance2324## Naming Conventions2526- Use PascalCase for class names (e.g., UserResource, OrderService)27- Use camelCase for method and variable names (e.g., findUserById, isOrderValid)28- Use ALL_CAPS for constants (e.g., MAX_RETRY_ATTEMPTS, DEFAULT_PAGE_SIZE)2930## Java and Quarkus Usage3132- Use Java 17 or later features when applicable (e.g., records, sealed classes, pattern matching)33- Utilize Quarkus BOM for dependency management34- Integrate MicroProfile APIs (Config, Health, Metrics, OpenAPI)35- Use Vert.x for event-driven or reactive programming patterns3637## Configuration and Properties3839- Store configuration in application.properties or application.yaml40- Use @ConfigProperty for type-safe configuration injection41- Rely on Quarkus profiles (dev, test, prod) for environment-specific configurations4243## Dependency Injection and IoC4445- Use CDI annotations (@Inject, @Named, @Singleton, @ApplicationScoped)46- Prefer constructor injection or method injection over field injection for better testability47- Leverage Quarkus Arc for compile-time CDI processing4849## Testing5051- Write unit tests using JUnit 5 and @QuarkusTest for integration tests52- Use rest-assured for testing REST endpoints53- Implement in-memory databases or Testcontainers for integration testing54- Use @QuarkusTestResource for managing test dependencies5556## Performance and Scalability5758- Optimize for native image creation using quarkus.native.* properties59- Use @CacheResult and @CacheInvalidate for caching strategies60- Implement reactive patterns with Vert.x or Mutiny for non-blocking I/O61- Employ database indexing and query optimization techniques6263## Security6465- Use Quarkus Security extensions (quarkus-oidc, quarkus-smallrye-jwt) for authentication and authorization66- Integrate MicroProfile JWT for token-based security67- Handle CORS configuration and security headers via Quarkus extensions68- Implement proper input validation6970## Logging and Monitoring7172- Use Quarkus logging subsystem with SLF4J or JUL bridging73- Implement MicroProfile Health checks for readiness and liveness probes74- Use MicroProfile Metrics for application metrics75- Integrate MicroProfile OpenTracing for distributed tracing76- Use proper log levels and structured logging7778## API Documentation7980- Use Quarkus OpenAPI extension (quarkus-smallrye-openapi) for API documentation81- Provide detailed OpenAPI annotations for resources and operations82- Generate interactive documentation with Swagger UI8384## Data Access and ORM8586- Use Quarkus Hibernate ORM with Panache for simplified data access87- Implement proper entity relationships and cascading88- Use Flyway or Liquibase for database schema migration89- Leverage Quarkus Reactive SQL clients for reactive database access9091## Build and Deployment9293- Use Maven or Gradle with Quarkus plugins (quarkus-maven-plugin)94- Configure multi-stage Docker builds for optimized container images95- Employ proper profiles and environment variables for different deployment targets96- Optimize for GraalVM native image creation with reflection configuration9798## General Best Practices99100- Follow RESTful API design principles101- Leverage Quarkus for microservices architecture with fast startup and minimal memory usage102- Implement asynchronous and reactive processing for efficient resource usage103- Adhere to SOLID principles for high cohesion and low coupling104- Design for cloud-native deployment (Kubernetes, OpenShift)105106---107> Converted and distributed by [TomeVault](https://tomevault.io/claim/mindrally) — claim your Tome and manage your conversions.108<!-- tomevault:4.0:skill_md:2026-04-11 -->