#!/usr/bin/env bash # Starts the application on the simple provider, exercises a few cached methods, and dumps the # live contents of every cache through /diag/caches. set -euo pipefail cd "$(dirname "$0")/.." PORT=8080 PIDFILE=/tmp/caching-demo.pid mvn -B -q -DskipTests package nohup java -jar target/caching-1.0.0.jar \ --spring.cache.type=simple --server.port=${PORT} > /tmp/caching-demo.log 2>&1 & echo $! > "$PIDFILE" for _ in $(seq 1 60); do curl -sf "http://localhost:${PORT}/actuator/health" >/dev/null 2>&1 && break sleep 1 done { echo "# The live contents of every cache, keys included" echo echo "\$ curl -s localhost:${PORT}/diag/warm" curl -s "http://localhost:${PORT}/diag/warm" echo echo echo "\$ curl -s localhost:${PORT}/diag/caches | jq ." curl -s "http://localhost:${PORT}/diag/caches" | python3 -m json.tool } > docs/output/23-diagnostics.txt kill "$(cat "$PIDFILE")" 2>/dev/null || true rm -f "$PIDFILE" echo "wrote docs/output/23-diagnostics.txt"