-
Notifications
You must be signed in to change notification settings - Fork 1.1k
CLAUDE MD Java
MANDATORY RULE: Java projects require Maven/Gradle ecosystem coordination with parallel build operations.
ABSOLUTE RULE: ALL Java operations MUST be concurrent/parallel in a single message:
- Build Tools: ALWAYS batch ALL Maven/Gradle commands in ONE message
- Spring Boot Operations: ALWAYS batch ALL Spring framework setup
- Testing: ALWAYS run ALL JUnit/TestNG suites in parallel
- Database Operations: ALWAYS batch ALL JPA/Hibernate configurations
- Enterprise Features: ALWAYS batch ALL enterprise patterns together
Examples of CORRECT Java concurrent execution:
// ✅ CORRECT: Everything in ONE message
[Single Message]:
- TodoWrite { todos: [10+ todos with all Java tasks] }
- Task("You are Java architect. Coordinate via hooks for Spring Boot design...")
- Task("You are Enterprise developer. Coordinate via hooks for microservices...")
- Task("You are DevOps engineer. Coordinate via hooks for deployment...")
- Bash("mvn archetype:generate -DgroupId=com.example -DartifactId=my-app")
- Bash("mvn clean install")
- Bash("mvn spring-boot:run")
- Write("pom.xml", mavenConfiguration)
- Write("src/main/java/Application.java", springBootApp)
- Write("src/main/java/controller/UserController.java", restController)
- Write("src/main/java/service/UserService.java", serviceLayer)
- Write("src/main/java/repository/UserRepository.java", dataLayer)
- Write("src/test/java/UserControllerTest.java", unitTests)
- Write("application.properties", springConfig)
Maven Build Strategy:
# Always batch Maven operations
mvn clean compile
mvn test
mvn package
mvn spring-boot:run
mvn deploy
Gradle Build Strategy:
# Always batch Gradle operations
./gradlew clean build
./gradlew test
./gradlew bootRun
./gradlew publishToMavenLocal
Parallel Development Setup:
// ✅ CORRECT: All setup in ONE message
[BatchTool]:
- Bash("mvn archetype:generate -DgroupId=com.company -DartifactId=spring-app")
- Bash("cd spring-app && mvn clean install")
- Write("pom.xml", springBootPom)
- Write("src/main/resources/application.yml", springConfig)
- Write("src/main/java/Application.java", springBootMain)
- Write("src/main/java/config/DatabaseConfig.java", dbConfig)
- Write("src/main/java/controller/ApiController.java", restController)
- Write("src/test/java/ApplicationTest.java", integrationTest)
- Bash("cd spring-app && mvn spring-boot:run")
Agent Types for Java Projects:
- Spring Boot Agent - Framework setup, REST APIs, dependency injection
- Enterprise Agent - JEE patterns, microservices, enterprise integration
- Database Agent - JPA, Hibernate, database design and optimization
- Testing Agent - JUnit, Mockito, integration testing
- Security Agent - Spring Security, authentication, authorization
- DevOps Agent - Docker, Kubernetes, CI/CD pipelines
Spring Boot Project Setup:
// Spring Boot swarm initialization
[BatchTool]:
- Write("src/main/java/com/example/Application.java", springBootApplication)
- Write("src/main/java/com/example/controller/UserController.java", userController)
- Write("src/main/java/com/example/service/UserService.java", userService)
- Write("src/main/java/com/example/repository/UserRepository.java", userRepository)
- Write("src/main/java/com/example/model/User.java", userEntity)
- Write("src/main/java/com/example/config/SecurityConfig.java", securityConfig)
- Write("src/main/resources/application.yml", applicationConfig)
- Write("pom.xml", springBootPom)
- Bash("mvn clean install && mvn spring-boot:run")
Enterprise Patterns Setup:
// Enterprise Java batch
[BatchTool]:
- Write("src/main/java/service/BusinessService.java", businessLogic)
- Write("src/main/java/dto/UserDTO.java", dataTransferObjects)
- Write("src/main/java/mapper/UserMapper.java", entityMapping)
- Write("src/main/java/exception/BusinessException.java", exceptionHandling)
- Write("src/main/java/validation/UserValidator.java", inputValidation)
- Write("src/main/java/util/Constants.java", applicationConstants)
- Bash("mvn clean compile test")
Parallel Testing Setup:
// Test coordination pattern
[BatchTool]:
- Write("src/test/java/controller/UserControllerTest.java", controllerTests)
- Write("src/test/java/service/UserServiceTest.java", serviceTests)
- Write("src/test/java/repository/UserRepositoryTest.java", repositoryTests)
- Write("src/test/java/integration/UserIntegrationTest.java", integrationTests)
- Write("src/test/resources/application-test.yml", testConfig)
- Bash("mvn test -Dtest=**/*Test")
- Bash("mvn test -Dtest=**/*IntegrationTest")
- Bash("mvn jacoco:report")
Advanced Testing Setup:
[BatchTool]:
- Write("src/test/java/config/TestConfiguration.java", testConfig)
- Write("src/test/java/util/TestDataBuilder.java", testDataUtils)
- Write("src/test/java/mock/MockUserService.java", mockServices)
- Bash("mvn test -Dspring.profiles.active=test")
- Bash("mvn verify -Pfailsafe")
Database Setup Pattern:
// Database integration batch
[BatchTool]:
- Write("src/main/java/entity/BaseEntity.java", baseEntity)
- Write("src/main/java/entity/User.java", userEntity)
- Write("src/main/java/repository/UserRepository.java", jpaRepository)
- Write("src/main/java/service/UserService.java", serviceWithTransactional)
- Write("src/main/resources/db/migration/V1__Create_users_table.sql", flywayMigration)
- Write("src/main/resources/application.yml", databaseConfig)
- Bash("mvn flyway:migrate")
- Bash("mvn spring-boot:run")
Database Optimization Batch:
[BatchTool]:
- Write("src/main/java/config/DatabaseConfig.java", connectionPooling)
- Write("src/main/java/repository/UserRepositoryCustom.java", customQueries)
- Write("src/main/java/util/QueryUtils.java", queryOptimization)
- Bash("mvn clean test -Dspring.profiles.active=performance")
Maven Multi-Module Coordination:
// Maven multi-module setup
[BatchTool]:
- Write("pom.xml", parentPom)
- Write("common/pom.xml", commonModulePom)
- Write("api/pom.xml", apiModulePom)
- Write("service/pom.xml", serviceModulePom)
- Write("web/pom.xml", webModulePom)
- Bash("mvn clean install -pl common,api,service,web")
- Bash("mvn dependency:tree")
Gradle Multi-Project Setup:
// Gradle multi-project coordination
[BatchTool]:
- Write("build.gradle", rootBuildGradle)
- Write("settings.gradle", gradleSettings)
- Write("common/build.gradle", commonBuildGradle)
- Write("api/build.gradle", apiBuildGradle)
- Write("service/build.gradle", serviceBuildGradle)
- Bash("./gradlew clean build")
- Bash("./gradlew dependencyInsight --dependency spring-boot")
Security Implementation Batch:
[BatchTool]:
- Write("src/main/java/config/SecurityConfig.java", springSecurityConfig)
- Write("src/main/java/security/JwtAuthenticationFilter.java", jwtFilter)
- Write("src/main/java/security/UserDetailsServiceImpl.java", userDetailsService)
- Write("src/main/java/controller/AuthController.java", authController)
- Write("src/main/java/util/JwtUtil.java", jwtUtility)
- Bash("mvn clean test -Dtest=SecurityConfigTest")
Java Security Checklist:
- Input validation and sanitization
- SQL injection prevention (use JPA)
- Authentication and authorization
- HTTPS enforcement
- Secure session management
- OWASP security headers
- Dependency vulnerability scanning
- Security testing
Performance Optimization Batch:
[BatchTool]:
- Write("src/main/java/config/CacheConfig.java", cachingConfiguration)
- Write("src/main/java/util/PerformanceMonitor.java", performanceUtils)
- Write("src/main/java/service/AsyncService.java", asyncProcessing)
- Write("src/main/resources/logback-spring.xml", loggingConfig)
- Bash("mvn clean test -Dspring.profiles.active=performance")
- Bash("java -XX:+PrintGCDetails -jar target/app.jar")
Microservices Architecture:
[BatchTool]:
- Write("src/main/java/config/EurekaClientConfig.java", serviceDiscovery)
- Write("src/main/java/client/UserServiceClient.java", feignClient)
- Write("src/main/java/controller/GatewayController.java", apiGateway)
- Write("src/main/resources/bootstrap.yml", microserviceConfig)
- Bash("mvn spring-boot:run -Dspring.profiles.active=eureka")
Deployment Coordination:
[BatchTool]:
- Write("Dockerfile", javaDockerfile)
- Write("docker-compose.yml", dockerCompose)
- Write("k8s/deployment.yaml", kubernetesDeployment)
- Write("k8s/service.yaml", kubernetesService)
- Write("scripts/deploy.sh", deploymentScript)
- Bash("mvn clean package -Pprod")
- Bash("docker build -t java-app:latest .")
- Bash("kubectl apply -f k8s/")
Docker Multi-Stage Build:
[BatchTool]:
- Write("Dockerfile", multiStageDockerfile)
- Write(".dockerignore", dockerIgnore)
- Write("docker-compose.dev.yml", devDockerCompose)
- Write("docker-compose.prod.yml", prodDockerCompose)
- Bash("docker-compose -f docker-compose.dev.yml up --build")
- Bash("docker-compose -f docker-compose.prod.yml up -d")
Quality Tools Batch:
[BatchTool]:
- Write("checkstyle.xml", checkstyleConfig)
- Write("spotbugs-exclude.xml", spotbugsExclusions)
- Write("pmd-ruleset.xml", pmdRules)
- Write("sonar-project.properties", sonarConfig)
- Bash("mvn checkstyle:check")
- Bash("mvn spotbugs:check")
- Bash("mvn pmd:check")
- Bash("mvn sonar:sonar")
Javadoc and Documentation Setup:
[BatchTool]:
- Write("src/main/java/package-info.java", packageDocumentation)
- Write("docs/api-guide.md", apiDocumentation)
- Write("docs/deployment-guide.md", deploymentDocs)
- Bash("mvn javadoc:javadoc")
- Bash("mvn site")
CI/CD Pipeline Batch:
[BatchTool]:
- Write(".github/workflows/ci.yml", javaCI)
- Write(".github/workflows/deploy.yml", deploymentWorkflow)
- Write("scripts/test.sh", testScript)
- Write("scripts/build.sh", buildScript)
- Bash("mvn clean verify")
- Bash("mvn deploy -Prelease")
Enterprise Pipeline Setup:
[BatchTool]:
- Write("Jenkinsfile", jenkinspipeline)
- Write("sonar-project.properties", sonarQubeConfig)
- Write("nexus-staging.xml", nexusConfiguration)
- Bash("mvn clean deploy -Pnexus")
- Java Conventions: Follow Oracle coding standards
- Design Patterns: Apply appropriate design patterns
- SOLID Principles: Maintain clean architecture
- Exception Handling: Proper error management
- Unit Testing: High test coverage with JUnit
- Documentation: Comprehensive Javadoc comments
- Memory Management: Efficient object creation and garbage collection
- Collections: Proper use of Java collections
- Concurrency: Thread-safe programming patterns
- Caching: Strategic caching implementation
- Database Optimization: Efficient JPA queries
- JVM Tuning: Optimal JVM parameters
- Core Java: OOP, collections, generics, lambdas
- Spring Framework: Dependency injection, AOP, MVC
- Spring Boot: Auto-configuration, microservices
- JPA/Hibernate: Object-relational mapping
- Testing: JUnit, Mockito, integration testing
- Build Tools: Maven, Gradle project management
- IDEs: IntelliJ IDEA, Eclipse, VS Code
- Build Tools: Maven, Gradle, Ant
- Testing: JUnit, TestNG, Mockito, AssertJ
- Quality: Checkstyle, SpotBugs, PMD, SonarQube
- Profiling: JProfiler, VisualVM, JConsole
- Application Servers: Tomcat, Jetty, WildFly
- Frameworks: Spring Boot, Spring Cloud, Quarkus
- Microservices: Netflix OSS, Spring Cloud Gateway
- Messaging: RabbitMQ, Apache Kafka, ActiveMQ
- Databases: PostgreSQL, MySQL, Oracle, MongoDB
- Caching: Redis, Hazelcast, Ehcache
- Monitoring: Micrometer, Actuator, Prometheus
Remember: Java swarms excel with Maven/Gradle coordination, parallel compilation, and enterprise-grade testing. Always batch build operations and leverage the rich Java ecosystem for robust, scalable applications.