From spring-boot
Verifies Spring Boot 4.x projects for dependency compatibility, configuration correctness, and migration readiness. Analyzes pom.xml, build.gradle, and application.yml files.
npx claudepluginhub joaquimscosta/arkhe-claude-plugins --plugin spring-bootThis skill uses the workspace's default tool permissions.
Analyzes Spring Boot projects for dependency compatibility, configuration correctness, and migration readiness.
Migrates Spring Boot apps to version 4 with Java 25 via phased upgrades, including Spring Modulith 2, Testcontainers 2, codebase scanning, and reference guides.
Guides Spring Boot 4 and Spring Framework 7 development, migration from Boot 3 to 4, and resolution of breaking changes like starter POM renames, Jackson 3, and Jakarta EE 11.
Runs verification loop for Spring Boot projects: build with Maven/Gradle, static analysis (SpotBugs/PMD/Checkstyle), tests with Jacoco coverage, security scans, and diff review before PRs or releases.
Share bugs, ideas, or general feedback.
Analyzes Spring Boot projects for dependency compatibility, configuration correctness, and migration readiness.
| Check | Severity | Action |
|---|---|---|
| Spring Boot version < 4.0 | CRITICAL | Upgrade to 4.0.x |
Jackson 2.x (com.fasterxml) | CRITICAL | Migrate to Jackson 3 (tools.jackson) |
javax.* imports | CRITICAL | Migrate to jakarta.* namespace |
@MockBean in tests | ERROR | Replace with @MockitoBean |
| Undertow server | ERROR | Switch to Tomcat or Jetty |
| Java version < 17 | ERROR | Minimum Java 17 required |
| Gradle version < 8.14 | ERROR | Upgrade Gradle (required for Kotlin 2.2/Boot 4) |
spring-boot-starter-web | WARNING | Use spring-boot-starter-webmvc |
| Missing Virtual Threads | INFO | Enable with spring.threads.virtual.enabled=true |
| Check | Severity | Action |
|---|---|---|
Security and() chaining | CRITICAL | Convert to Lambda DSL closures |
antMatchers() usage | ERROR | Replace with requestMatchers() |
authorizeRequests() | ERROR | Replace with authorizeHttpRequests() |
| All actuator endpoints exposed | WARNING | Limit to health, info, metrics |
| 100% trace sampling | WARNING | Use 10% in production |
Critical for Spring Boot 3+: All javax.* packages must migrate to jakarta.*:
| Old Package | New Package |
|---|---|
javax.persistence.* | jakarta.persistence.* |
javax.servlet.* | jakarta.servlet.* |
javax.validation.* | jakarta.validation.* |
javax.inject.* | jakarta.inject.* |
javax.annotation.* | jakarta.annotation.* |
Use Grep to find: import\s+javax\.
| Feature | Configuration | Benefit |
|---|---|---|
| Virtual Threads | spring.threads.virtual.enabled=true | High concurrency without WebFlux |
| JSpecify Null-Safety | Add @NullMarked to package-info | Framework-wide null contracts |
| AOT Compilation | Enabled by default | Faster startup times |
Spring Framework 7 uses JSpecify for null-safety:
@NullMarked // Package or class level - all parameters/returns non-null by default
package com.example.myapp;
import org.jspecify.annotations.Nullable;
public class UserService {
// @Nullable for parameters/returns that can be null
public @Nullable User findById(Long id) { ... }
}
**/pom.xml, **/build.gradle*, **/application.{yml,properties}@MockBean, com.fasterxml, .and(), import javax.)mcp__exa__web_search_exaGenerate verification reports with this structure:
## Spring Boot 4.x Verification Report
### Summary
- **Project**: {name}
- **Boot Version**: {detected version}
- **Issues Found**: {n} Critical, {n} Errors, {n} Warnings
### Critical Issues / Errors / Warnings
[Issue details with code remediation]
javax.* to jakarta.* (required for Boot 3+)com.fasterxml.jackson to tools.jacksonand() method removed, closures required@MockBean to @MockitoBeanspring.threads.virtual.enabled=true for Java 21+spring-boot-security — Deep security configuration verificationspring-boot-testing — Testing patterns and coverage analysisspring-boot-observability — Actuator, metrics, and tracing setupspring-boot-modulith — Module structure verificationdomain-driven-design — DDD architecture patterns