resilience: prove spring-boot-starter-aop was renamed to spring-boot-starter-aspectj, not removed

Maven Central's maven-metadata.xml for both artifact IDs, read together, shows aop's last
release is 4.0.0-M2 and aspectj's first release is 4.0.0-M3 -- a rename at a milestone
boundary, not a drop. The renamed starter's own published POM depends on exactly
spring-aop + aspectjweaver, the two jars this pom.xml's dependency comment already claimed
were needed; this commit adds the reproducible build-break proof, the metadata/POM evidence,
and a new doc chapter, and backs the corrected companion-repo links from the resilience4j-
circuit-breaker-spring-boot post.
This commit is contained in:
2026-09-18 08:34:06 +00:00
parent baff043748
commit 604291067e
9 changed files with 179 additions and 2 deletions
@@ -0,0 +1,13 @@
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] 'dependencies.dependency.version' for org.springframework.boot:spring-boot-starter-aop:jar is missing. @ line 19, column 17
@
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project com.ankurm:break-demo:1.0.0 (/home/claude/work/repos/spring-boot-demo-migration/resilience/broken-example/pom.xml) has 1 error
[ERROR] 'dependencies.dependency.version' for org.springframework.boot:spring-boot-starter-aop:jar is missing. @ line 19, column 17
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
@@ -0,0 +1,33 @@
Captured 2026-09-18 from repo1.maven.org (Maven Central), not an aggregator or blog.
--- org/springframework/boot/spring-boot-starter-aop/maven-metadata.xml ---
<latest>4.0.0-M2</latest>
<release>4.0.0-M2</release>
... version list ends at:
<version>3.5.16</version>
<version>4.0.0-M1</version>
<version>4.0.0-M2</version>
</versions>
<lastUpdated>20260625105758</lastUpdated>
--- org/springframework/boot/spring-boot-starter-aspectj/maven-metadata.xml ---
<latest>4.2.0-M1</latest>
<release>4.2.0-M1</release>
... version list starts at:
<version>4.0.0-M3</version>
<version>4.0.0-RC1</version>
<version>4.0.0-RC2</version>
<version>4.0.0</version>
<version>4.0.1</version>
...
<version>4.1.0</version>
<version>4.1.1</version>
<version>4.2.0-M1</version>
</versions>
<lastUpdated>20260820133928</lastUpdated>
Reading the two lists together: spring-boot-starter-aop's last-ever release is 4.0.0-M2.
spring-boot-starter-aspectj's first-ever release is 4.0.0-M3 -- the very next milestone in the
4.0 line. It then carries through 4.0.0-RC1, RC2, the 4.0.0 GA, every 4.0.x and 4.1.x patch, and
into the 4.2.0-M1 pre-release. That is a rename at a specific milestone boundary, not two
unrelated artifacts and not a starter that was dropped with nothing replacing it.
@@ -0,0 +1,35 @@
Captured 2026-09-18 from repo1.maven.org (Maven Central):
https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-starter-aspectj/4.1.1/spring-boot-starter-aspectj-4.1.1.pom
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aspectj</artifactId>
<version>4.1.1</version>
<name>spring-boot-starter-aspectj</name>
<description>Starter for using aspect-oriented programming with AspectJ</description>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>4.1.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>7.0.9</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.25.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
The renamed starter's own POM declares exactly spring-aop + aspectjweaver as compile
dependencies -- the same two jars this module's own pom.xml already lists as the reason it
depends on spring-boot-starter-aspectj. There is no missing third piece and no behavioural
difference from assembling the two jars by hand; the starter just does it for you, correctly
versioned, in one line.