Skip to content

Java Frameworks & Libraries

Status: 🟢 Active  |  Owner: Java Guild

Web / Application Frameworks

Framework Status Use Case
Spring Boot 3.2.x ✅ Required All new Java services
Quarkus 3.x ⚠️ Evaluate GraalVM native image scenarios — Architecture approval required
Micronaut ⚠️ Evaluate Evaluate case-by-case
Dropwizard ❌ Not approved Legacy only; migrate away
Spring Boot 2.x ❌ Deprecated Must migrate to 3.2.x
Jakarta EE / WildFly ❌ Not approved Do not introduce

Spring Boot 3.2.x is the only approved choice for new services. See Spring Boot Standards for detailed configuration.

Testing

Library Status Notes
JUnit 5 ✅ Required Base test framework
AssertJ ✅ Required Fluent assertions — preferred over JUnit's built-in assertions
Mockito 5.x ✅ Required Mocking
Testcontainers ✅ Required Integration tests with real infrastructure
WireMock ✅ Approved HTTP API mocking
Spring Boot Test ✅ Required @SpringBootTest, @WebMvcTest, @DataJpaTest slices
Awaitility ✅ Approved Asynchronous test assertions
JUnit 4 ❌ Deprecated Migrate to JUnit 5

Persistence

Library Status Notes
Spring Data JPA + Hibernate 6 ✅ Preferred Standard ORM
jOOQ ✅ Approved Complex SQL, type-safe query building
Flyway ✅ Required Database migrations
Spring Data JDBC ✅ Approved Lighter alternative to JPA for simple schemas
MyBatis ⚠️ Legacy Existing projects only

Messaging

Library Status Notes
Spring Kafka ✅ Required Kafka producers and consumers
Spring AMQP (RabbitMQ) ✅ Approved RabbitMQ integration
AWS SQS via Spring Cloud AWS ✅ Approved SQS consumers on AWS

Observability

Library Status Notes
Micrometer (Prometheus registry) ✅ Required Metrics
Micrometer Tracing + OTel bridge ✅ Required Distributed tracing
Logback + Logstash encoder ✅ Required Structured JSON logging

HTTP Clients

Library Status Notes
Spring WebClient (reactive) ✅ Preferred Non-blocking HTTP calls
OpenFeign (Spring Cloud) ✅ Approved Declarative HTTP clients
Java HttpClient (stdlib) ✅ Approved Simple scripts / utilities
Apache HttpClient 5 ⚠️ Evaluate Existing services only
RestTemplate ❌ Deprecated Migrate to WebClient

Serialisation

Library Status Notes
Jackson 2.17.x ✅ Required JSON serialisation
MapStruct ✅ Approved DTO ↔ domain mapping (code gen)
ModelMapper ❌ Not approved Too much reflection magic

References


Last reviewed: 2025-Q4  |  Owner: Java Guild