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