Files
spring-boot-demo/resilience4j-circuit-breaker/scripts/run.sh
T
asmhatre 320733265f Add resilience4j-circuit-breaker: Resilience4j 2.4.0 vs Spring Framework 7 core, on Boot 4.1
Companion module for the rewritten post 'Resilience4j Circuit Breaker in Spring Boot 4.1:
What It's Still For', reworked around Framework 7 now shipping @Retryable/@ConcurrencyLimit
in core. Covers what's still Resilience4j's job (circuit breaker, rate limiter, bulkhead's
bounded wait, fallback methods, Actuator/Micrometer metrics), the off-by-one between
maxAttempts and maxRetries, and two Boot-4.1 build breaks: spring-boot-starter-aop no longer
exists (renamed to spring-boot-starter-aspectj, proven with Maven Central metadata and the
renamed starter's own POM -- see resilience/docs/08-starter-aop-renamed-to-starter-aspectj.md
in this same repo), and the resulting fix uses that renamed starter directly rather than
assembling spring-aop + aspectjweaver by hand. Kept as its own module rather than a new
top-level repository, alongside the existing resilience/ module for the sibling Framework-7
post.
2026-09-18 08:40:50 +00:00

21 lines
755 B
Bash
Executable File

#!/usr/bin/env bash
# Starts the app so you can poke at it by hand: curl localhost:8080/actuator/health,
# curl localhost:8080/actuator/circuitbreakers, etc. Kills any previous instance first.
set -euo pipefail
cd "$(dirname "$0")/.."
for p in $(ps -eo pid,cmd | grep '[R]esilienceBoot4DemoApplication' | awk '{print $1}'); do
kill -9 "$p" || true
done
setsid nohup mvn -B -q org.springframework.boot:spring-boot-maven-plugin:run \
> /tmp/resilience-boot4-demo.log 2>&1 < /dev/null &
echo "starting, waiting for :8080/actuator/health ..."
for i in $(seq 1 60); do
if curl -s -o /dev/null localhost:8080/actuator/health; then
echo "up."
exit 0
fi
sleep 2
done
echo "did not come up in 120s -- check /tmp/resilience-boot4-demo.log"
exit 1