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>
360 lines
71 KiB
XML
360 lines
71 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="6574" viewBox="0 0 1200 6574" role="img">
|
|
<title>terminal evidence</title>
|
|
<desc>Terminal-style rendering generated from retained command output. Sensitive-looking values are redacted in the visual asset.</desc>
|
|
<rect x="1" y="1" width="1198" height="6572" rx="14" fill="#0d1117" stroke="#30363d"/>
|
|
<rect x="1" y="1" width="1198" height="44" rx="14" fill="#161b22"/>
|
|
<rect x="1" y="30" width="1198" height="14" fill="#161b22"/>
|
|
<circle cx="24" cy="22" r="6" fill="#ff5f57"/>
|
|
<circle cx="44" cy="22" r="6" fill="#febc2e"/>
|
|
<circle cx="64" cy="22" r="6" fill="#28c840"/>
|
|
<text x="92" y="27" fill="#8b949e" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace">terminal evidence</text>
|
|
<text x="24" y="68" fill="#c9d1d9" font-size="15" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0">$ #!/bin/bash
|
|
set -euo pipefail
|
|
cd /shared/codebase/clean-architecture-backend-template
|
|
. /tmp/lib.sh
|
|
Y=src/config/jpa/r</tspan><tspan x="24" dy="22">eadiness-cards.yaml
|
|
G=src/gradle/jpa-evidence.gradle
|
|
B=src/build.gradle
|
|
R=src/adapter/outbound/persistence-jpa/src/postg</tspan><tspan x="24" dy="22">resqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness
|
|
for f in "$Y" "$G" "$B" "$R/PostgreSqlAg</tspan><tspan x="24" dy="22">gregateIntegrationTest.java" \
|
|
"$R/PostgreSqlQueryIntegrationTest.java" "$R/PostgreSqlLifecycleIntegrationTest.</tspan><tspan x="24" dy="22">java"; do test -f "$f"; done
|
|
|
|
echo "# 카드 전체와 selected 카드의 태그 커버리지"
|
|
python3 - "$Y" <<'PY'
|
|
import json, sys
|
|
</tspan><tspan x="24" dy="22">from collections import Counter
|
|
d = json.load(open(sys.argv[1]))
|
|
c = Counter(v.get('state') for v in d['cards'].values()</tspan><tspan x="24" dy="22">)
|
|
print(' 카드 %d 개 · %s' % (len(d['cards']), ' · '.join('%s %d' % kv for kv in sorted(c.items()))))
|
|
for k, v in d['</tspan><tspan x="24" dy="22">cards'].items():
|
|
if v.get('state') != 'selected':
|
|
continue
|
|
ev = v.get('evidence', {})
|
|
scen, claims =</tspan><tspan x="24" dy="22"> ev.get('scenarios', []), ev.get('task-claims', [])
|
|
tags = v.get('required-evidence', [])
|
|
covered = set()
|
|
fo</tspan><tspan x="24" dy="22">r s in scen: covered |= set(s.get('covers', []))
|
|
for c2 in claims: covered |= set(c2.get('covers', []))
|
|
print(' </tspan><tspan x="24" dy="22"> %-26s 태그 %d · 시나리오 %d · task-claim %d · support-task %d · 레지스트리가 덮지 않는 태그 %s'
|
|
% (k, len</tspan><tspan x="24" dy="22">(tags), len(scen), len(claims), len(v.get('support-tasks') or []),
|
|
sorted(set(tags) - covered) or '없음'))
|
|
</tspan><tspan x="24" dy="22">PY
|
|
|
|
echo
|
|
echo "# 그 두 태그는 레지스트리가 덮을 수 없다"
|
|
echo " build.gradle 이 no-skip 을 필수로 요구하면서 클레임에서</tspan><tspan x="24" dy="22">는 빼는 자리 :"
|
|
at "$B" 1672 1680 build.gradle
|
|
echo " 생성기가 JUnit XML 결과로 채우는 자리 :"
|
|
at "$G" 676 692 jpa-evid</tspan><tspan x="24" dy="22">ence.gradle
|
|
|
|
echo
|
|
echo "# 시나리오가 가리키는 시험이 프로덕션을 지나는가"
|
|
python3 - "$Y" <<'PY'
|
|
import json, sys
|
|
d = jso</tspan><tspan x="24" dy="22">n.load(open(sys.argv[1]))
|
|
for k in ('jpa-aggregate-store', 'jpa-query-model', 'jpa-observability-lifecycle'):
|
|
v = d[</tspan><tspan x="24" dy="22">'cards'][k]
|
|
print(' ==', k)
|
|
print(' 필수 태그 :', v.get('required-evidence'))
|
|
for s in v.get('evidence'</tspan><tspan x="24" dy="22">, {}).get('scenarios', []):
|
|
print(' 시나리오 :', s['selector'].split('#')[-1])
|
|
print(' 덮는 태</tspan><tspan x="24" dy="22">그 :', s.get('covers'))
|
|
PY
|
|
|
|
echo
|
|
echo "# 그 세 시험의 본문"
|
|
at "$R/PostgreSqlAggregateIntegrationTest.java" 19 30 Postgr</tspan><tspan x="24" dy="22">eSqlAggregateIntegrationTest.java
|
|
at "$R/PostgreSqlAggregateIntegrationTest.java" 36 84 PostgreSqlAggregateIntegrationTe</tspan><tspan x="24" dy="22">st.java
|
|
echo
|
|
at "$R/PostgreSqlQueryIntegrationTest.java" 22 35 PostgreSqlQueryIntegrationTest.java
|
|
at "$R/PostgreSqlQuer</tspan><tspan x="24" dy="22">yIntegrationTest.java" 45 80 PostgreSqlQueryIntegrationTest.java
|
|
echo
|
|
at "$R/PostgreSqlLifecycleIntegrationTest.java" 51</tspan><tspan x="24" dy="22"> 66 PostgreSqlLifecycleIntegrationTest.java
|
|
at "$R/PostgreSqlLifecycleIntegrationTest.java" 107 119 PostgreSqlLifecycleI</tspan><tspan x="24" dy="22">ntegrationTest.java
|
|
|
|
echo
|
|
echo "# 그 시험들이 프로덕션 타입에 닿는가"
|
|
for f in PostgreSqlAggregateIntegrationTest Postgr</tspan><tspan x="24" dy="22">eSqlQueryIntegrationTest PostgreSqlLifecycleIntegrationTest; do
|
|
printf ' %-38s dev.caskeleton 를 import 하는 줄 : %s </tspan><tspan x="24" dy="22">개\n' "$f.java" \
|
|
"$({ grep -cE '^import dev\.caskeleton' "$R/$f.java" || true; })"
|
|
done
|
|
echo " [대조] 같은 소스 세</tspan><tspan x="24" dy="22">트가 훑은 파일 :"
|
|
printf ' %s 개\n' "$(git ls-files -- "$R/*.java" | grep -c .)"
|
|
echo " import 만이 아니라 이름 단위</tspan><tspan x="24" dy="22">로 훑어도 :"
|
|
for f in PostgreSqlAggregateIntegrationTest PostgreSqlQueryIntegrationTest PostgreSqlLifecycleIntegrationTe</tspan><tspan x="24" dy="22">st; do
|
|
n=0
|
|
while read -r t; do
|
|
git ls-files -- "src/**/src/main/**/$t.java" | grep -q . && n=$((n+1)) || true
|
|
</tspan><tspan x="24" dy="22">done < <(grep -oE '\b[A-Z][A-Za-z0-9]+\b' "$R/$f.java" | sort -u)
|
|
printf ' %-38s 프로덕션에 정의된 타입 이름 : %s </tspan><tspan x="24" dy="22">개\n' "$f.java" "$n"
|
|
done
|
|
echo " [대조] PostgreSqlTransactionIntegrationTest 에 같은 검사를 걸면 :"
|
|
TT=$(git ls-files -</tspan><tspan x="24" dy="22">- '**/PostgreSqlTransactionIntegrationTest.java' | head -1)
|
|
n=0
|
|
while read -r t; do
|
|
git ls-files -- "src/**/src/main/*</tspan><tspan x="24" dy="22">*/$t.java" | grep -q . && n=$((n+1)) || true
|
|
done < <(grep -oE '\b[A-Z][A-Za-z0-9]+\b' "$TT" | sort -u)
|
|
printf ' 프로</tspan><tspan x="24" dy="22">덕션에 정의된 타입 이름 : %s 개\n' "$n"
|
|
echo " 두 시험이 쓰는 테이블 :"
|
|
{ grep -hoE 'readiness_[a-z]+' "$R/PostgreSqlAg</tspan><tspan x="24" dy="22">gregateIntegrationTest.java" "$R/PostgreSqlQueryIntegrationTest.java" || true; } | sort -u | sed 's#^# #'
|
|
printf ' </tspan><tspan x="24" dy="22">그 이름이 프로덕션 소스나 마이그레이션에 나오는가 : %s 개\n' "$(count 'readiness_aggregate|readiness_query' 'src/**/src/</tspan><tspan x="24" dy="22">main/**')"
|
|
printf ' [대조] 그 검색이 훑은 main 파일 : %s 개\n' "$(git ls-files -- 'src/**/src/main/**' | grep -c .)"
|
|
pr</tspan><tspan x="24" dy="22">intf ' postgresql-primary 가 프로덕션에 나오는 파일 : %s 개\n' "$(count 'postgresql-primary' 'src/**/src/main/**')"
|
|
|
|
ec</tspan><tspan x="24" dy="22">ho
|
|
echo "# 대조 — 시나리오 일곱을 가진 카드"
|
|
python3 - "$Y" <<'PY'
|
|
import json, sys
|
|
d = json.load(open(sys.argv[1]))
|
|
v </tspan><tspan x="24" dy="22">= d['cards']['jpa-transaction-runtime']
|
|
print(' 필수 태그 :', v.get('required-evidence'))
|
|
for s in v.get('evidence',</tspan><tspan x="24" dy="22"> {}).get('scenarios', []):
|
|
print(' 시나리오 :', s['selector'].split('#')[-1], '->', s.get('covers'))
|
|
PY
|
|
T=$(git </tspan><tspan x="24" dy="22">ls-files -- '**/PostgreSqlTransactionIntegrationTest.java' '**/PostgreSql*Transaction*IntegrationTest.java' | head -1)
|
|
t</tspan><tspan x="24" dy="22">est -n "$T"
|
|
printf ' %s 가 dev.caskeleton 를 import 하는 줄 : %s 개\n' "$(basename "$T")" "$({ grep -cE '^import dev\.c</tspan><tspan x="24" dy="22">askeleton' "$T" || true; })"
|
|
{ grep -nE '^import dev\.caskeleton' "$T" || true; } | head -8 | sed -E 's#^([0-9]+): *# </tspan><tspan x="24" dy="22"> :\1 #'
|
|
</tspan></text>
|
|
<text x="24" y="1058" fill="#8b949e" font-size="13" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0">cwd: /shared/codebase/clean-architecture-backend-template</tspan></text>
|
|
<text x="24" y="1080" fill="#8b949e" font-size="13" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0">time: 2026-09-04T07:07:49+00:00 · exit 0</tspan></text>
|
|
<line x1="24" y1="1094" x2="1176" y2="1094" stroke="#30363d"/>
|
|
<text x="24" y="1134" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 카드 전체와 selected 카드의 태그 커버리지</tspan></text>
|
|
<text x="24" y="1156" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 카드 17 개 · implemented-candidate 6 · not-implemented 4 · selected 7</tspan></text>
|
|
<text x="24" y="1178" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-observability-lifecycle 태그 4 · 시나리오 2 · task-claim 0 · support-task 0 · 레지스트리가 덮지 않는 태그 ['no-skip']</tspan></text>
|
|
<text x="24" y="1200" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-security-baseline 태그 6 · 시나리오 3 · task-claim 1 · support-task 3 · 레지스트리가 덮지 않는 태그 ['no-skip']</tspan></text>
|
|
<text x="24" y="1222" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-flyway-migration 태그 4 · 시나리오 4 · task-claim 0 · support-task 0 · 레지스트리가 덮지 않는 태그 ['no-skip']</tspan></text>
|
|
<text x="24" y="1244" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-transaction-runtime 태그 4 · 시나리오 7 · task-claim 0 · support-task 0 · 레지스트리가 덮지 않는 태그 ['no-skip']</tspan></text>
|
|
<text x="24" y="1266" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-aggregate-store 태그 4 · 시나리오 1 · task-claim 0 · support-task 0 · 레지스트리가 덮지 않는 태그 ['no-skip']</tspan></text>
|
|
<text x="24" y="1288" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-query-model 태그 4 · 시나리오 1 · task-claim 0 · support-task 0 · 레지스트리가 덮지 않는 태그 ['no-skip']</tspan></text>
|
|
<text x="24" y="1310" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-primary-foundation 태그 4 · 시나리오 0 · task-claim 2 · support-task 5 · 레지스트리가 덮지 않는 태그 ['base-card-m</tspan><tspan x="24" dy="22">anifests', 'no-skip']</tspan></text>
|
|
<text x="24" y="1354" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="1376" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 그 두 태그는 레지스트리가 덮을 수 없다</tspan></text>
|
|
<text x="24" y="1398" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle 이 no-skip 을 필수로 요구하면서 클레임에서는 빼는 자리 :</tspan></text>
|
|
<text x="24" y="1420" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle:1672 if (!requiredEvidence.contains('no-skip')) {</tspan></text>
|
|
<text x="24" y="1442" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle:1673 violations << "${cardId}: required-evidence must include no-skip"</tspan></text>
|
|
<text x="24" y="1464" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle:1674 }</tspan></text>
|
|
<text x="24" y="1486" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle:1675 }</tspan></text>
|
|
<text x="24" y="1508" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle:1676 </tspan></text>
|
|
<text x="24" y="1530" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle:1677 Object migrationNode = card.migration</tspan></text>
|
|
<text x="24" y="1552" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle:1678 Set<String> allowedEvidenceClaims = requiredEvidence</tspan></text>
|
|
<text x="24" y="1574" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle:1679 .findAll { String requirement -> requirement != 'no-skip' }</tspan></text>
|
|
<text x="24" y="1596" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle:1680 .toSet()</tspan></text>
|
|
<text x="24" y="1618" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 생성기가 JUnit XML 결과로 채우는 자리 :</tspan></text>
|
|
<text x="24" y="1640" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:676 } as int</tspan></text>
|
|
<text x="24" y="1662" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:677 int errorCount = testResults.sum {</tspan></text>
|
|
<text x="24" y="1684" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:678 Map<String, Object> result -> result.errorCount as int</tspan></text>
|
|
<text x="24" y="1706" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:679 } as int</tspan></text>
|
|
<text x="24" y="1728" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:680 boolean noSkipResult = executedTestCount > 0 &&</tspan></text>
|
|
<text x="24" y="1750" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:681 skippedOrAbortedCount == 0 &&</tspan></text>
|
|
<text x="24" y="1772" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:682 failureCount == 0 &&</tspan></text>
|
|
<text x="24" y="1794" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:683 errorCount == 0</tspan></text>
|
|
<text x="24" y="1816" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:684 if (noSkipResult) {</tspan></text>
|
|
<text x="24" y="1838" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:685 covered << 'no-skip'</tspan></text>
|
|
<text x="24" y="1860" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:686 }</tspan></text>
|
|
<text x="24" y="1882" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:687 if (cardId == 'jpa-primary-foundation' &&</tspan></text>
|
|
<text x="24" y="1904" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:688 (card.prerequisites as List).every {</tspan></text>
|
|
<text x="24" y="1926" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:689 Object prerequisite -> manifestIds.containsKey(prerequisite as String)</tspan></text>
|
|
<text x="24" y="1948" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:690 }) {</tspan></text>
|
|
<text x="24" y="1970" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:691 covered << 'base-card-manifests'</tspan></text>
|
|
<text x="24" y="1992" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> jpa-evidence.gradle:692 }</tspan></text>
|
|
<text x="24" y="2014" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="2036" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 시나리오가 가리키는 시험이 프로덕션을 지나는가</tspan></text>
|
|
<text x="24" y="2058" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> == jpa-aggregate-store</tspan></text>
|
|
<text x="24" y="2080" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 필수 태그 : ['real-postgresql', 'mapping', 'optimistic-conflict', 'no-skip']</tspan></text>
|
|
<text x="24" y="2102" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시나리오 : roundTripsUuidAndInstantAndDetectsExpectedVersionConflict</tspan></text>
|
|
<text x="24" y="2124" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 덮는 태그 : ['real-postgresql', 'mapping', 'optimistic-conflict']</tspan></text>
|
|
<text x="24" y="2146" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> == jpa-query-model</tspan></text>
|
|
<text x="24" y="2168" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 필수 태그 : ['real-postgresql', 'query-contract', 'query-plan', 'no-skip']</tspan></text>
|
|
<text x="24" y="2190" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시나리오 : boundedKeysetQueryUsesTheRepresentativeIndex</tspan></text>
|
|
<text x="24" y="2212" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 덮는 태그 : ['real-postgresql', 'query-contract', 'query-plan']</tspan></text>
|
|
<text x="24" y="2234" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> == jpa-observability-lifecycle</tspan></text>
|
|
<text x="24" y="2256" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 필수 태그 : ['real-postgresql', 'lifecycle', 'observability', 'no-skip']</tspan></text>
|
|
<text x="24" y="2278" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시나리오 : startsPostgreSql16WithUtcAndProvidesAValidConnection</tspan></text>
|
|
<text x="24" y="2300" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 덮는 태그 : ['real-postgresql', 'lifecycle']</tspan></text>
|
|
<text x="24" y="2322" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시나리오 : poolCapacityExhaustionAndShutdownAreBoundedAndObservable</tspan></text>
|
|
<text x="24" y="2344" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 덮는 태그 : ['observability']</tspan></text>
|
|
<text x="24" y="2366" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="2388" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 그 세 시험의 본문</tspan></text>
|
|
<text x="24" y="2410" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:19 @BeforeAll</tspan></text>
|
|
<text x="24" y="2432" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:20 static void startPostgreSql() throws Exception {</tspan></text>
|
|
<text x="24" y="2454" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:21 PostgreSqlReadinessSupport.assertDockerAvailable();</tspan></text>
|
|
<text x="24" y="2476" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:22 postgres = PostgreSqlReadinessSupport.start();</tspan></text>
|
|
<text x="24" y="2498" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:23 postgres.execute(</tspan></text>
|
|
<text x="24" y="2520" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:24 "create table readiness_aggregate("</tspan></text>
|
|
<text x="24" y="2542" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:25 + "id uuid primary key, title varchar(100) not null, "</tspan></text>
|
|
<text x="24" y="2564" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:26 + "occurred_at timestamptz not null, version bigint not null)");</tspan></text>
|
|
<text x="24" y="2586" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:27 }</tspan></text>
|
|
<text x="24" y="2608" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:28 </tspan></text>
|
|
<text x="24" y="2630" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:29 @AfterAll</tspan></text>
|
|
<text x="24" y="2652" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:30 static void stopPostgreSql() {</tspan></text>
|
|
<text x="24" y="2674" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:36 @Test</tspan></text>
|
|
<text x="24" y="2696" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:37 void roundTripsUuidAndInstantAndDetectsExpectedVersionConflict() throws Exception</tspan><tspan x="24" dy="22"> {</tspan></text>
|
|
<text x="24" y="2740" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:38 UUID id = UUID.randomUUID();</tspan></text>
|
|
<text x="24" y="2762" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:39 Instant occurredAt = Instant.parse("2026-07-28T12:00:00.123456Z");</tspan></text>
|
|
<text x="24" y="2784" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:40 try (Connection connection = postgres.connection();</tspan></text>
|
|
<text x="24" y="2806" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:41 PreparedStatement insert =</tspan></text>
|
|
<text x="24" y="2828" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:42 connection.prepareStatement(</tspan></text>
|
|
<text x="24" y="2850" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:43 "insert into readiness_aggregate(id,title,occurred_at,version) "</tspan></text>
|
|
<text x="24" y="2872" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:44 + "values (?,?,?,0)")) {</tspan></text>
|
|
<text x="24" y="2894" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:45 insert.setObject(1, id);</tspan></text>
|
|
<text x="24" y="2916" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:46 insert.setString(2, "aggregate");</tspan></text>
|
|
<text x="24" y="2938" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:47 insert.setObject(3, occurredAt.atOffset(ZoneOffset.UTC));</tspan></text>
|
|
<text x="24" y="2960" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:48 assertThat(insert.executeUpdate()).isOne();</tspan></text>
|
|
<text x="24" y="2982" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:49 }</tspan></text>
|
|
<text x="24" y="3004" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:50 </tspan></text>
|
|
<text x="24" y="3026" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:51 try (Connection connection = postgres.connection();</tspan></text>
|
|
<text x="24" y="3048" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:52 PreparedStatement query =</tspan></text>
|
|
<text x="24" y="3070" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:53 connection.prepareStatement(</tspan></text>
|
|
<text x="24" y="3092" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:54 "select id,title,occurred_at,version from readiness_aggregate where</tspan><tspan x="24" dy="22"> id=?")) {</tspan></text>
|
|
<text x="24" y="3136" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:55 query.setObject(1, id);</tspan></text>
|
|
<text x="24" y="3158" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:56 try (ResultSet row = query.executeQuery()) {</tspan></text>
|
|
<text x="24" y="3180" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:57 assertThat(row.next()).isTrue();</tspan></text>
|
|
<text x="24" y="3202" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:58 assertThat(row.getObject(1, UUID.class)).isEqualTo(id);</tspan></text>
|
|
<text x="24" y="3224" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:59 assertThat(row.getString(2)).isEqualTo("aggregate");</tspan></text>
|
|
<text x="24" y="3246" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:60 assertThat(row.getObject(3, java.time.OffsetDateTime.class).toInstant())</tspan></text>
|
|
<text x="24" y="3268" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:61 .isEqualTo(occurredAt);</tspan></text>
|
|
<text x="24" y="3290" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:62 assertThat(row.getLong(4)).isZero();</tspan></text>
|
|
<text x="24" y="3312" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:63 }</tspan></text>
|
|
<text x="24" y="3334" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:64 }</tspan></text>
|
|
<text x="24" y="3356" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:65 </tspan></text>
|
|
<text x="24" y="3378" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:66 try (Connection first = postgres.connection();</tspan></text>
|
|
<text x="24" y="3400" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:67 Connection second = postgres.connection();</tspan></text>
|
|
<text x="24" y="3422" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:68 PreparedStatement firstUpdate =</tspan></text>
|
|
<text x="24" y="3444" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:69 first.prepareStatement(</tspan></text>
|
|
<text x="24" y="3466" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:70 "update readiness_aggregate set title=?,version=version+1 "</tspan></text>
|
|
<text x="24" y="3488" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:71 + "where id=? and version=?");</tspan></text>
|
|
<text x="24" y="3510" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:72 PreparedStatement secondUpdate =</tspan></text>
|
|
<text x="24" y="3532" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:73 second.prepareStatement(</tspan></text>
|
|
<text x="24" y="3554" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:74 "update readiness_aggregate set title=?,version=version+1 "</tspan></text>
|
|
<text x="24" y="3576" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:75 + "where id=? and version=?")) {</tspan></text>
|
|
<text x="24" y="3598" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:76 first.setAutoCommit(false);</tspan></text>
|
|
<text x="24" y="3620" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:77 second.setAutoCommit(false);</tspan></text>
|
|
<text x="24" y="3642" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:78 bindUpdate(firstUpdate, "first", id, 0);</tspan></text>
|
|
<text x="24" y="3664" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:79 bindUpdate(secondUpdate, "second", id, 0);</tspan></text>
|
|
<text x="24" y="3686" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:80 assertThat(firstUpdate.executeUpdate()).isOne();</tspan></text>
|
|
<text x="24" y="3708" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:81 first.commit();</tspan></text>
|
|
<text x="24" y="3730" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:82 assertThat(secondUpdate.executeUpdate()).isZero();</tspan></text>
|
|
<text x="24" y="3752" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:83 second.rollback();</tspan></text>
|
|
<text x="24" y="3774" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java:84 }</tspan></text>
|
|
<text x="24" y="3796" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="3818" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:22 @BeforeAll</tspan></text>
|
|
<text x="24" y="3840" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:23 static void startPostgreSql() throws Exception {</tspan></text>
|
|
<text x="24" y="3862" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:24 PostgreSqlReadinessSupport.assertDockerAvailable();</tspan></text>
|
|
<text x="24" y="3884" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:25 postgres = PostgreSqlReadinessSupport.start();</tspan></text>
|
|
<text x="24" y="3906" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:26 postgres.execute(</tspan></text>
|
|
<text x="24" y="3928" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:27 "create table readiness_query("</tspan></text>
|
|
<text x="24" y="3950" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:28 + "id uuid primary key, occurred_at timestamptz not null, payload text not </tspan><tspan x="24" dy="22">null)");</tspan></text>
|
|
<text x="24" y="3994" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:29 postgres.execute("create index ix_readiness_query_keyset on readiness_query(occurre</tspan><tspan x="24" dy="22">d_at,id)");</tspan></text>
|
|
<text x="24" y="4038" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:30 postgres.execute(</tspan></text>
|
|
<text x="24" y="4060" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:31 "insert into readiness_query(id,occurred_at,payload) "</tspan></text>
|
|
<text x="24" y="4082" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:32 + "select gen_random_uuid(), "</tspan></text>
|
|
<text x="24" y="4104" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:33 + "timestamptz '2026-01-01T00:00:00Z' + (n || ' milliseconds')::interval, "</tspan></text>
|
|
<text x="24" y="4126" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:34 + "'payload-' || n from generate_series(1,1000) n");</tspan></text>
|
|
<text x="24" y="4148" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:35 postgres.execute("analyze readiness_query");</tspan></text>
|
|
<text x="24" y="4170" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:45 @Test</tspan></text>
|
|
<text x="24" y="4192" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:46 void boundedKeysetQueryUsesTheRepresentativeIndex() throws Exception {</tspan></text>
|
|
<text x="24" y="4214" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:47 OffsetDateTime cursorTime = OffsetDateTime.of(2026, 1, 1, 0, 0, 0, 0, ZoneOffset.UT</tspan><tspan x="24" dy="22">C);</tspan></text>
|
|
<text x="24" y="4258" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:48 UUID cursorId = new UUID(0, 0);</tspan></text>
|
|
<text x="24" y="4280" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:49 List<UUID> ids = new ArrayList<>();</tspan></text>
|
|
<text x="24" y="4302" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:50 String query =</tspan></text>
|
|
<text x="24" y="4324" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:51 "select id from readiness_query "</tspan></text>
|
|
<text x="24" y="4346" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:52 + "where (occurred_at,id) > (?,?) "</tspan></text>
|
|
<text x="24" y="4368" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:53 + "order by occurred_at,id limit ?";</tspan></text>
|
|
<text x="24" y="4390" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:54 </tspan></text>
|
|
<text x="24" y="4412" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:55 try (Connection connection = postgres.connection();</tspan></text>
|
|
<text x="24" y="4434" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:56 PreparedStatement statement = connection.prepareStatement(query)) {</tspan></text>
|
|
<text x="24" y="4456" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:57 statement.setObject(1, cursorTime);</tspan></text>
|
|
<text x="24" y="4478" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:58 statement.setObject(2, cursorId);</tspan></text>
|
|
<text x="24" y="4500" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:59 statement.setInt(3, 25);</tspan></text>
|
|
<text x="24" y="4522" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:60 try (ResultSet rows = statement.executeQuery()) {</tspan></text>
|
|
<text x="24" y="4544" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:61 while (rows.next()) {</tspan></text>
|
|
<text x="24" y="4566" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:62 ids.add(rows.getObject(1, UUID.class));</tspan></text>
|
|
<text x="24" y="4588" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:63 }</tspan></text>
|
|
<text x="24" y="4610" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:64 }</tspan></text>
|
|
<text x="24" y="4632" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:65 }</tspan></text>
|
|
<text x="24" y="4654" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:66 assertThat(ids).hasSize(25).doesNotHaveDuplicates();</tspan></text>
|
|
<text x="24" y="4676" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:67 </tspan></text>
|
|
<text x="24" y="4698" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:68 try (Connection connection = postgres.connection();</tspan></text>
|
|
<text x="24" y="4720" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:69 Statement setup = connection.createStatement()) {</tspan></text>
|
|
<text x="24" y="4742" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:70 setup.execute("set enable_seqscan=off");</tspan></text>
|
|
<text x="24" y="4764" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:71 try (PreparedStatement explain =</tspan></text>
|
|
<text x="24" y="4786" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:72 connection.prepareStatement("explain (format json) " + query)) {</tspan></text>
|
|
<text x="24" y="4808" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:73 explain.setObject(1, cursorTime);</tspan></text>
|
|
<text x="24" y="4830" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:74 explain.setObject(2, cursorId);</tspan></text>
|
|
<text x="24" y="4852" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:75 explain.setInt(3, 25);</tspan></text>
|
|
<text x="24" y="4874" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:76 try (ResultSet plan = explain.executeQuery()) {</tspan></text>
|
|
<text x="24" y="4896" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:77 assertThat(plan.next()).isTrue();</tspan></text>
|
|
<text x="24" y="4918" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:78 assertThat(plan.getString(1)).contains("ix_readiness_query_keyset");</tspan></text>
|
|
<text x="24" y="4940" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:79 }</tspan></text>
|
|
<text x="24" y="4962" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java:80 }</tspan></text>
|
|
<text x="24" y="4984" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="5006" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:51 @Test</tspan></text>
|
|
<text x="24" y="5028" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:52 @Timeout(10)</tspan></text>
|
|
<text x="24" y="5050" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:53 void poolCapacityExhaustionAndShutdownAreBoundedAndObservable() throws Exception </tspan><tspan x="24" dy="22">{</tspan></text>
|
|
<text x="24" y="5094" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:54 PostgreSqlReadinessSupport bounded = PostgreSqlReadinessSupport.start(2, 300);</tspan></text>
|
|
<text x="24" y="5116" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:55 HikariDataSource dataSource = bounded.dataSource();</tspan></text>
|
|
<text x="24" y="5138" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:56 try {</tspan></text>
|
|
<text x="24" y="5160" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:57 try (Connection first = bounded.connection();</tspan></text>
|
|
<text x="24" y="5182" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:58 Connection second = bounded.connection()) {</tspan></text>
|
|
<text x="24" y="5204" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:59 PoolSnapshot saturated = snapshot(dataSource);</tspan></text>
|
|
<text x="24" y="5226" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:60 assertThat(saturated.state()).isEqualTo(PoolState.SATURATED);</tspan></text>
|
|
<text x="24" y="5248" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:61 assertThat(saturated.activeConnections()).isEqualTo(2);</tspan></text>
|
|
<text x="24" y="5270" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:62 assertThat(saturated.maximumConnections()).isEqualTo(2);</tspan></text>
|
|
<text x="24" y="5292" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:63 assertThat(saturated.boundedTags())</tspan></text>
|
|
<text x="24" y="5314" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:64 .containsExactlyInAnyOrderEntriesOf(</tspan></text>
|
|
<text x="24" y="5336" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:65 java.util.Map.of("component", "postgresql-primary", "state", "satur</tspan><tspan x="24" dy="22">ated"));</tspan></text>
|
|
<text x="24" y="5380" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:66 </tspan></text>
|
|
<text x="24" y="5402" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:107 private record PoolSnapshot(</tspan></text>
|
|
<text x="24" y="5424" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:108 PoolState state,</tspan></text>
|
|
<text x="24" y="5446" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:109 int activeConnections,</tspan></text>
|
|
<text x="24" y="5468" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:110 int idleConnections,</tspan></text>
|
|
<text x="24" y="5490" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:111 int totalConnections,</tspan></text>
|
|
<text x="24" y="5512" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:112 int awaitingConnections,</tspan></text>
|
|
<text x="24" y="5534" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:113 int maximumConnections) {</tspan></text>
|
|
<text x="24" y="5556" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:114 </tspan></text>
|
|
<text x="24" y="5578" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:115 private Map<String, String> boundedTags() {</tspan></text>
|
|
<text x="24" y="5600" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:116 return Map.of(</tspan></text>
|
|
<text x="24" y="5622" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:117 "component", "postgresql-primary", "state", state.name().toLowerCase(Loc</tspan><tspan x="24" dy="22">ale.ROOT));</tspan></text>
|
|
<text x="24" y="5666" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:118 }</tspan></text>
|
|
<text x="24" y="5688" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java:119 }</tspan></text>
|
|
<text x="24" y="5710" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="5732" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 그 시험들이 프로덕션 타입에 닿는가</tspan></text>
|
|
<text x="24" y="5754" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java dev.caskeleton 를 import 하는 줄 : 0 개</tspan></text>
|
|
<text x="24" y="5776" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java dev.caskeleton 를 import 하는 줄 : 0 개</tspan></text>
|
|
<text x="24" y="5798" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java dev.caskeleton 를 import 하는 줄 : 0 개</tspan></text>
|
|
<text x="24" y="5820" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> [대조] 같은 소스 세트가 훑은 파일 :</tspan></text>
|
|
<text x="24" y="5842" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 27 개</tspan></text>
|
|
<text x="24" y="5864" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> import 만이 아니라 이름 단위로 훑어도 :</tspan></text>
|
|
<text x="24" y="5886" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlAggregateIntegrationTest.java 프로덕션에 정의된 타입 이름 : 0 개</tspan></text>
|
|
<text x="24" y="5908" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlQueryIntegrationTest.java 프로덕션에 정의된 타입 이름 : 0 개</tspan></text>
|
|
<text x="24" y="5930" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlLifecycleIntegrationTest.java 프로덕션에 정의된 타입 이름 : 0 개</tspan></text>
|
|
<text x="24" y="5952" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> [대조] PostgreSqlTransactionIntegrationTest 에 같은 검사를 걸면 :</tspan></text>
|
|
<text x="24" y="5974" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 프로덕션에 정의된 타입 이름 : 15 개</tspan></text>
|
|
<text x="24" y="5996" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 두 시험이 쓰는 테이블 :</tspan></text>
|
|
<text x="24" y="6018" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> readiness_aggregate</tspan></text>
|
|
<text x="24" y="6040" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> readiness_query</tspan></text>
|
|
<text x="24" y="6062" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 그 이름이 프로덕션 소스나 마이그레이션에 나오는가 : 0 개</tspan></text>
|
|
<text x="24" y="6084" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> [대조] 그 검색이 훑은 main 파일 : 4714 개</tspan></text>
|
|
<text x="24" y="6106" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> postgresql-primary 가 프로덕션에 나오는 파일 : 0 개</tspan></text>
|
|
<text x="24" y="6128" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="6150" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 대조 — 시나리오 일곱을 가진 카드</tspan></text>
|
|
<text x="24" y="6172" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 필수 태그 : ['real-postgresql', 'concurrency', 'fault', 'no-skip']</tspan></text>
|
|
<text x="24" y="6194" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시나리오 : appliesTransactionLocalTimeoutsBeforeWorkAndResetsThemAfterCommit -> ['real-postgresql']</tspan></text>
|
|
<text x="24" y="6216" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시나리오 : actionFailureProducesAConfirmedRollback -> ['fault']</tspan></text>
|
|
<text x="24" y="6238" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시나리오 : serializableConflictIsRetriedOnlyByTheReplaySafePolicy -> ['concurrency']</tspan></text>
|
|
<text x="24" y="6260" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시나리오 : deterministicDeadlockProducesExactlyOneTypedDeadlockFailure -> ['concurrency', 'fault']</tspan></text>
|
|
<text x="24" y="6282" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시나리오 : lockAndStatementTimeoutsRollbackWithinTheConfiguredBounds -> ['fault']</tspan></text>
|
|
<text x="24" y="6304" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시나리오 : poolExhaustionRejectsBeforeApplicationWorkStarts -> ['concurrency', 'fault']</tspan></text>
|
|
<text x="24" y="6326" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시나리오 : connectionLossDuringCommitIsIndeterminateAndNeverBlindlyRetried -> ['fault']</tspan></text>
|
|
<text x="24" y="6348" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> PostgreSqlTransactionIntegrationTest.java 가 dev.caskeleton 를 import 하는 줄 : 15 개</tspan></text>
|
|
<text x="24" y="6370" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :6 import dev.caskeleton.adapter.outbound.persistence.failure.PersistenceExceptionTranslator;</tspan></text>
|
|
<text x="24" y="6392" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :7 import dev.caskeleton.adapter.outbound.persistence.failure.StandardSqlStateErrorMapping;</tspan></text>
|
|
<text x="24" y="6414" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :8 import dev.caskeleton.adapter.outbound.persistence.postgresql.PostgreSqlLocalTimeoutConfigurer;</tspan></text>
|
|
<text x="24" y="6436" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :9 import dev.caskeleton.adapter.outbound.persistence.postgresql.PostgreSqlSqlStateErrorMapping;</tspan></text>
|
|
<text x="24" y="6458" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :10 import dev.caskeleton.adapter.outbound.persistence.transaction.JpaTransactionSettings;</tspan></text>
|
|
<text x="24" y="6480" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :11 import dev.caskeleton.adapter.outbound.persistence.transaction.SpringTransactionPort;</tspan></text>
|
|
<text x="24" y="6502" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :12 import dev.caskeleton.application.outbound.CallBudget;</tspan></text>
|
|
<text x="24" y="6524" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :13 import dev.caskeleton.application.transaction.OperationId;</tspan></text>
|
|
</svg>
|