gnodet opened a new pull request, #12535: URL: https://github.com/apache/maven/pull/12535
## Summary - Make `@After` annotation `@Repeatable` by adding an `@Afters` container annotation, so plugin mojos can declare multiple lifecycle ordering constraints - Add `AfterLink` model class to `plugin.mdo` (V4 plugin descriptor) with `phase`, `type`, and `scope` fields to persist `@After` data in `META-INF/maven/plugin.xml` - Update compat `MojoDescriptor` to bridge `afterLinks` between V4 and V3 APIs - Apply `@After` ordering constraints in `BuildPlanExecutor.plan()` — translates each `AfterLink` into build step edges matching the same semantics as `Lifecycle.Link` processing (PROJECT, DEPENDENCIES, CHILDREN pointer types) ## Test plan - [x] `AfterAnnotationTest` — verifies `@Repeatable` behavior (single, multiple, container annotation, scope default) - [x] `MojoDescriptorTest` — verifies afterLinks getter/setter, V4↔compat bridging, round-trip to V4 model - [x] `PluginDescriptorBuilderTest` — verifies V4 format `plugin.xml` with `<afterLinks>` elements is parsed correctly - [x] `BuildPlanCreatorTest` — verifies PROJECT, DEPENDENCIES, and CHILDREN ordering constraints create correct build step edges - [x] Full reactor build passes ## Notes The annotation scanner in `maven-plugin-tools` (separate repo) does not yet read `@After` — that's a follow-up to emit the new `<afterLinks>` elements into `plugin.xml` from Java source annotations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
