Back to Druid

Tasks

openspec/templates/tasks.md

1.2.284.4 KB
Original Source

Summary

<!-- Brief summary of the implementation plan -->

0. Preprocessing

  • 0.1 For architecture changes, execute baseline MySqlPerfTest and memory tests before task execution
    • Performance: <!-- baseline command/result before architecture change -->
    • Memory: <!-- baseline command/result before architecture change -->

1. Core Implementation

  • 1.1 Implement core logic in <!-- ClassName -->

    • Location: core/src/main/java/com/alibaba/druid/<!-- package -->/<!-- ClassName -->.java
    • Details: <!-- implementation details -->
  • 1.2 Add configuration support

    • Location: core/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java
    • Details: <!-- configuration property to add -->
  • 1.3 Integrate with filter chain (if applicable)

    • Location: core/src/main/java/com/alibaba/druid/filter/
    • Details: <!-- filter integration -->

2. Monitoring & MBean

  • 2.1 Add MBean attributes (if applicable)

    • Location: core/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java
    • Details: <!-- MBean attributes -->
  • 2.2 Update statistics collection

    • Location: core/src/main/java/com/alibaba/druid/stat/
    • Details: <!-- statistics changes -->

3. Spring Boot Integration

  • 3.1 Update Spring Boot starter (if applicable)

    • Location: druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/
    • Details: <!-- starter changes -->
  • 3.2 Add configuration properties

    • Location: druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/DruidStatProperties.java
    • Details: <!-- properties -->

4. Testing

  • 4.1 Write unit tests

    • Location: core/src/test/java/com/alibaba/druid/<!-- package -->/
    • Coverage: <!-- what to test -->
  • 4.2 Write concurrency tests

    • Location: core/src/test/java/com/alibaba/druid/
    • Details: <!-- concurrency test scenarios -->
  • 4.3 Write benchmark tests (if performance-critical)

    • Location: core/src/test/java/com/alibaba/druid/benckmark/
    • Details: <!-- benchmark scenarios -->
  • 4.4 Write integration tests (if database required)

    • Location: core/src/test/java/com/alibaba/druid/
    • Details: <!-- integration test scenarios -->
  • 4.5 For architecture changes, execute MySqlPerfTest

    • Location: core/src/test/java/com/alibaba/druid/
    • Details: <!-- architecture-change performance scenarios -->
  • 4.6 For architecture changes, execute memory tests

    • Location: core/src/test/java/com/alibaba/druid/
    • Details: <!-- memory footprint/leak scenarios -->
  • 4.7 For architecture changes, compare baseline vs post-change perf/memory results

    • Baseline: <!-- results collected before architecture change -->
    • Post-change: <!-- results collected after architecture change -->
    • Delta: <!-- key differences and conclusion -->

5. Code Quality

  • 5.1 Verify checkstyle compliance

    • Run: mvn checkstyle:check
    • Fix any violations
  • 5.2 Update Javadoc for public APIs

    • Files: <!-- files with public API changes -->
  • 5.3 Add Apache License header to new files

    • Header template in: Check existing files

6. Documentation

  • 6.1 Update README.md (if user-facing change)

    • Location: README.md or module README
  • 6.2 Update Wiki documentation (if significant change)

  • 6.3 Add/Update examples in demo project

    • Location: druid-demo-petclinic/

7. Build & Release

  • 7.1 Run full build

    • Command: mvn clean install
    • Verify all modules build successfully
  • 7.2 Run tests

    • Command: mvn test
    • Verify all tests pass
  • 7.3 Update VERSION.java (if version-related change)

    • Location: core/src/main/java/com/alibaba/druid/VERSION.java

Verification Checklist

  • Code compiles without warnings
  • All tests pass (mvn test)
  • Checkstyle passes (mvn checkstyle:check)
  • Javadoc generates without errors
  • Backward compatibility maintained (or documented)
  • Thread-safety verified for concurrent components
  • No memory leaks (verified for connection-related changes)
  • For architecture changes, MySqlPerfTest and memory tests are both present
  • For architecture changes, task pre-run baseline and post-change comparison are documented

Notes

<!-- Any additional implementation notes -->