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.
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
# Reproduces, and captures, the real build error from adding spring-boot-starter-aop
|
||||
# on Spring Boot 4.1 -- the dependency every pre-Boot-4 Resilience4j guide tells you to add.
|
||||
set -uo pipefail
|
||||
cd "$(dirname "$0")/../broken-example"
|
||||
mvn -B -q compile 2>&1 | grep -v '^Picked up\|^WARNING' > ../docs/output/00-starter-aop-build-error.txt
|
||||
echo "captured to docs/output/00-starter-aop-build-error.txt:"
|
||||
cat ../docs/output/00-starter-aop-build-error.txt
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
# Regenerates every file under docs/output/ from a real test run.
|
||||
# Requires JDK 25 on PATH (or JAVA_HOME set to a JDK 25 install) and Maven.
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")/.."
|
||||
mvn -q -B test
|
||||
echo "docs/output/ regenerated:"
|
||||
ls -1 docs/output
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user