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.
71 lines
2.8 KiB
XML
71 lines
2.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-parent</artifactId>
|
|
<version>4.1.1</version>
|
|
<relativePath/>
|
|
</parent>
|
|
|
|
<groupId>com.ankurm</groupId>
|
|
<artifactId>resilience-boot4-demo</artifactId>
|
|
<version>1.0.0</version>
|
|
<name>resilience-boot4-demo</name>
|
|
<description>Resilience4j vs Spring Framework 7's built-in @Retryable/@ConcurrencyLimit, on Spring Boot 4.1</description>
|
|
|
|
<properties>
|
|
<java.version>25</java.version>
|
|
<resilience4j.version>2.4.0</resilience4j.version>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-web</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-actuator</artifactId>
|
|
</dependency>
|
|
<!-- spring-boot-starter-aop was RENAMED, not removed. Maven Central's maven-metadata.xml for
|
|
spring-boot-starter-aop stops at 4.0.0-M2; spring-boot-starter-aspectj's starts at
|
|
4.0.0-M3 and carries through 4.0.0 GA to 4.1.1 and beyond. Its published POM (verified via
|
|
repo1.maven.org/.../spring-boot-starter-aspectj/4.1.1/spring-boot-starter-aspectj-4.1.1.pom)
|
|
depends on exactly org.springframework:spring-aop:7.0.9 and org.aspectj:aspectjweaver:1.9.25.1,
|
|
the same two jars this file used to add by hand. Adding the old starter name breaks the
|
|
build (dependencies.dependency.version ... is missing) because that artifact ID is gone
|
|
from spring-boot-dependencies' BOM; the fix is the renamed starter, one line, version-managed
|
|
by the parent POM like any other starter. See docs/01-two-resilience-stacks.md. -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-aspectj</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Resilience4j, Boot-4-targeted artifact (still built on resilience4j-spring6 internally) -->
|
|
<dependency>
|
|
<groupId>io.github.resilience4j</groupId>
|
|
<artifactId>resilience4j-spring-boot4</artifactId>
|
|
<version>${resilience4j.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</project>
|