# 주제: messaging-testkit 의 `jmh` 소스셋이 실제로 `build` 태스크 그래프에 들어오는가
# revision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916
# 배경: src/build.gradle:501-503 주석이 "the benchmarks are compiled and reviewed on every build
#       but only *run* on demand" 이라고 주장한다. 그런데 같은 블록의 531-534 줄이
#       `spotbugsJmh` 와 `checkstyleJmh` 를 둘 다 `enabled = false` 로 끈다.
#       이 두 태스크가 `check` -> `compileJmhJava` 로 가는 유일한 경로이므로,
#       "꺼진 태스크가 자기 의존성까지 끊는가" 가 주장의 참/거짓을 가른다.

# command: ./gradlew :messaging:messaging-testkit:build --dry-run --console=plain -q
# (jmh / checkstyle / spotbugs / compileJava / :test 로 필터)
# exit: 0
:messaging:messaging-core-api:compileJava SKIPPED
:messaging:messaging-schema-api:compileJava SKIPPED
:messaging:messaging-policy:compileJava SKIPPED
:messaging:messaging-transport-spi:compileJava SKIPPED
:messaging:messaging-testkit:compileJava SKIPPED
:shared-contract:compileJava SKIPPED
:application-core:compileJava SKIPPED
:adapter:outbound:support:compileJava SKIPPED
:adapter:outbound:cache-redis:compileJava SKIPPED
:verifySpotBugsAnalysisFailureContract SKIPPED
:messaging:messaging-testkit:testClasses SKIPPED
:messaging:messaging-testkit:compileJmhJava SKIPPED
:messaging:messaging-testkit:processJmhResources SKIPPED
:messaging:messaging-testkit:jmhClasses SKIPPED
:messaging:messaging-testkit:checkstyleJmh SKIPPED
:messaging:messaging-testkit:checkstyleMain SKIPPED
:messaging:messaging-testkit:checkstyleTest SKIPPED
:messaging:messaging-testkit:spotbugsJmh SKIPPED
:messaging:messaging-testkit:spotbugsMain SKIPPED
:messaging:messaging-testkit:spotbugsTest SKIPPED
:messaging:messaging-testkit:test SKIPPED
# (--dry-run 에서 SKIPPED 는 "그래프에 있으나 실행하지 않음" 을 뜻한다. 전체 그래프 70줄.)

# 판정: 주석의 주장은 참이다.
#   `compileJmhJava` 와 `jmhClasses` 가 `build` 그래프에 들어 있다.
#   Gradle 에서 `enabled = false` 는 그 태스크의 액션만 건너뛸 뿐 의존성 그래프는 유지하므로,
#   꺼진 `checkstyleJmh`/`spotbugsJmh` 가 여전히 `compileJmhJava` 를 끌고 들어온다.
#   => 벤치마크는 매 빌드에서 컴파일되고(깨지면 빌드가 깨짐), 실행만 `jmh` 태스크에서 온디맨드다.
#   이는 "소스셋이 있는데 아무 태스크도 그것을 컴파일하지 않는" 흔한 결함의 반례이며,
#   반직관적이라 명시적으로 기록해 둔다.

# 참고: `jmh` 소스셋을 받는 리프는 정확히 3개다.
#   src/build.gradle:506-508 -> :messaging:messaging-kafka, :messaging:messaging-rabbit,
#                               :messaging:messaging-testkit
# 저장소 전체 src/jmh 디렉터리는 4개이며 나머지 하나는
#   ./adapter/outbound/httpclient/src/jmh  (자체 build.gradle 이 별도로 배선)
