BMAD-METHOD/expansion-packs/bmad-java/checklists/java-21-checklist.md

4.6 KiB

Java 21 Development Checklist

Project Setup

Java 21 Configuration

  • Java 21 JDK installed and configured
  • JAVA_HOME environment variable set
  • Maven configured to use Java 21
  • IDE configured for Java 21
  • Build tools updated for Java 21 compatibility

Project Structure

  • Maven project structure created
  • Source directories configured (src/main/java, src/test/java)
  • Resources directories configured (src/main/resources, src/test/resources)
  • Package structure defined following conventions
  • Module-info.java created (if using modules)

Dependencies

Maven Configuration

  • pom.xml created with Java 21 configuration
  • Maven compiler plugin configured for Java 21
  • Spring Boot parent POM included
  • Required dependencies added
  • Dependency versions managed properly

Spring Boot Dependencies

  • spring-boot-starter-web (for web applications)
  • spring-boot-starter-data-jpa (for data persistence)
  • spring-boot-starter-security (for security)
  • spring-boot-starter-test (for testing)
  • spring-boot-starter-actuator (for monitoring)

Code Quality

Java 21 Features Usage

  • Modern Java syntax used (var, pattern matching)
  • Records used for data classes where appropriate
  • Sealed classes used for restricted hierarchies
  • Text blocks used for multi-line strings
  • Enhanced switch expressions used
  • Virtual threads used for concurrent operations

Code Standards

  • Proper naming conventions followed
  • Code formatted consistently
  • Comments added where necessary
  • Exception handling implemented properly
  • Logging configured appropriately

Testing

Unit Testing

  • JUnit 5 configured and working
  • Test classes created for main classes
  • Test coverage adequate (>80%)
  • Mock objects used appropriately
  • Test data setup properly

Integration Testing

  • Spring Boot test annotations used
  • Test profiles configured
  • Database tests implemented
  • API tests implemented
  • Test containers used if needed

Security

Authentication & Authorization

  • Spring Security configured
  • Authentication mechanism implemented
  • Authorization rules defined
  • Password encoding configured
  • Session management configured

Security Best Practices

  • Input validation implemented
  • SQL injection prevention
  • XSS protection configured
  • CSRF protection enabled
  • Security headers configured

Performance

JVM Optimization

  • JVM parameters optimized for Java 21
  • Garbage collector selected (ZGC/Shenandoah)
  • Memory settings configured appropriately
  • JIT compilation optimized

Application Performance

  • Database queries optimized
  • Caching implemented where appropriate
  • Connection pooling configured
  • Async processing used where beneficial
  • Performance monitoring implemented

Deployment

Containerization

  • Dockerfile created
  • Multi-stage build implemented
  • Docker image optimized
  • Container security hardened
  • Health checks implemented

AWS Deployment

  • AWS infrastructure configured
  • Container registry setup
  • Deployment pipeline configured
  • Monitoring and logging setup
  • Backup and disaster recovery configured

Documentation

Code Documentation

  • JavaDoc comments added
  • README.md created
  • API documentation generated
  • Architecture documentation created
  • Deployment guide written

Operational Documentation

  • Configuration guide created
  • Troubleshooting guide written
  • Monitoring guide created
  • Security guide written
  • Backup and recovery procedures documented

Validation

Functional Testing

  • All features working correctly
  • API endpoints responding properly
  • Database operations working
  • Security features functioning
  • Performance requirements met

Non-Functional Testing

  • Load testing completed
  • Security testing performed
  • Compatibility testing done
  • Usability testing completed
  • Accessibility testing performed

Go-Live Checklist

Pre-Deployment

  • All tests passing
  • Code review completed
  • Security scan passed
  • Performance benchmarks met
  • Documentation updated

Deployment

  • Production environment ready
  • Database migrations completed
  • Application deployed successfully
  • Monitoring configured
  • Health checks passing

Post-Deployment

  • Application accessible
  • All features working
  • Performance monitoring active
  • Error logging configured
  • Team notified of deployment