The keycloak project ended with four open questions that design could not
settle. A two-VM lab was built to answer them by measurement, and this is
that material: 26 experiments, 125 raw command outputs, 22 browser captures.
Follows the import procedure in README.md.
source/ the originating repository verbatim — 78 documents, 28 SVGs,
8 manifests, plus .source-revision recording the commit
final/ the SSOT
document.md 729 lines written from the 29 experiment documents, not
concatenated: what was predicted, what was measured, and
where the measurement itself was wrong
evidence/raw 125 outputs, flattened to <experiment>__<file> because
the originals collided (01-baseline.txt appeared three
times) and the audit only globs the top level
evidence/meta one per raw file; command and exitCode are null and the
README says why rather than inventing them
evidence/browser 22 captures
assets/ three diagrams through techviz
.techviz/ their VizSpecs
A separate project rather than an addition to keycloak: the B-layer answers
that project's four questions, but the A, C and D layers are about cluster
failure, SSO and operations, and one document.md should hold one subject.
The four question records there can point here through 관계.
Recorded rather than papered over: only three of the 28 diagrams were
remade. The repository forbids hand-drawn SVG and forbids titles inside the
canvas; all 28 originals carry both, so converting them is redrawing, not
reformatting. They stay in source/ and the gap is written into the document.
verify-pipeline.py passes. audit-records.py reports no issues.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
48 lines
2.9 KiB
Plaintext
48 lines
2.9 KiB
Plaintext
# 주제: 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 이 별도로 배선)
|