Skip to content

Bugfix/report set inheritance 4.0.x#12244

Closed
hboutemy wants to merge 372 commits into
masterfrom
bugfix/reportSet-inheritance-4.0.x
Closed

Bugfix/report set inheritance 4.0.x#12244
hboutemy wants to merge 372 commits into
masterfrom
bugfix/reportSet-inheritance-4.0.x

Conversation

@hboutemy
Copy link
Copy Markdown
Member

@hboutemy hboutemy commented Jun 6, 2026

backport in 4.0.x of #12243 for 4.1.x

cstamas and others added 30 commits October 10, 2025 13:00
Resolver 2.0.13 has fixed several bugs and issues from 2.0.11 causing endless loops/stack overflow with some more complex graphs.

Changes in ITs:
* classpath string is now levelOrder (not preOrder as Maven 3)
* error string comparison that fits apache and jdk transport (error message is slightly different)

Backport of 14d6d44
Bumps [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.13 to 0.8.14.
- [Release notes](https://github.com/jacoco/jacoco/releases)
- [Commits](jacoco/jacoco@v0.8.13...v0.8.14)

---
updated-dependencies:
- dependency-name: org.jacoco:jacoco-maven-plugin
  dependency-version: 0.8.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eu.maveniverse.maven.mimir:testing](https://github.com/maveniverse/mimir) from 0.9.3 to 0.9.4.
- [Release notes](https://github.com/maveniverse/mimir/releases)
- [Commits](maveniverse/mimir@release-0.9.3...release-0.9.4)

---
updated-dependencies:
- dependency-name: eu.maveniverse.maven.mimir:testing
  dependency-version: 0.9.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
As this makes us "escape" from paths that are symbolic links, and also causes inconsistencies among paths (like maven home, and system settings and system toolchains).

Backport of 92d53cb
Bumps [org.apache.maven:maven-archiver](https://github.com/apache/maven-archiver) from 3.6.4 to 3.6.5.
- [Release notes](https://github.com/apache/maven-archiver/releases)
- [Commits](apache/maven-archiver@maven-archiver-3.6.4...maven-archiver-3.6.5)

---
updated-dependencies:
- dependency-name: org.apache.maven:maven-archiver
  dependency-version: 3.6.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.codehaus.plexus:plexus-testing](https://github.com/codehaus-plexus/plexus-testing) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/codehaus-plexus/plexus-testing/releases)
- [Commits](codehaus-plexus/plexus-testing@plexus-testing-1.6.0...plexus-testing-1.6.1)

---
updated-dependencies:
- dependency-name: org.codehaus.plexus:plexus-testing
  dependency-version: 1.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Tidy up executor UTs as they are problematic. Output as much as possible as Maven in this case is used in quiet mode.

Also update Toolbox version and centralize it (one exception: tool deprecated and unused ctor).

Backport of 059731a
Maven-Embedder uses system default encoding, making builds non portable. This was "inherited" by maven-cli.

Now all config files are made UTF8.

Fixes #11258

Backport of 5e9d4f7
Bumps [org.codehaus.plexus:plexus-testing](https://github.com/codehaus-plexus/plexus-testing) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/codehaus-plexus/plexus-testing/releases)
- [Commits](codehaus-plexus/plexus-testing@plexus-testing-1.6.1...plexus-testing-1.7.0)

---
updated-dependencies:
- dependency-name: org.codehaus.plexus:plexus-testing
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [com.github.siom79.japicmp:japicmp-maven-plugin](https://github.com/siom79/japicmp) from 0.24.1 to 0.24.2.
- [Release notes](https://github.com/siom79/japicmp/releases)
- [Changelog](https://github.com/siom79/japicmp/blob/master/release.py)
- [Commits](siom79/japicmp@japicmp-base-0.24.1...japicmp-base-0.24.2)

---
updated-dependencies:
- dependency-name: com.github.siom79.japicmp:japicmp-maven-plugin
  dependency-version: 0.24.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.codehaus.plexus:plexus-velocity](https://github.com/codehaus-plexus/plexus-velocity) from 2.2.1 to 2.3.0.
- [Release notes](https://github.com/codehaus-plexus/plexus-velocity/releases)
- [Commits](codehaus-plexus/plexus-velocity@plexus-velocity-2.2.1...plexus-velocity-2.3.0)

---
updated-dependencies:
- dependency-name: org.codehaus.plexus:plexus-velocity
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
And collect more information, and we seems loose some information in case of IT failures.

Changes:
* upgrade to Mimir 0.10.0
* GH action collects IT failsafe outputs as well (as I sus we have something on stdout or stderr)
* centrally manage Toolbox and Mimir versions
* make Maven 3 tests use Mimir as well (by doing UW or PW setup for it); so far those did not use Mimir, but went directly to Central instead
* in maven-executor and maven-cli test disable prefix RRF (for now)

Backport of 58dea98
Backport of e92746c
…11279) (#11285)

The check is working when using `modules`, but has been forgotten when introducing `subprojects`.
Fixes #11160

(cherry picked from commit e60d230)
…sitory (#11287) (#11288)

Restore the mechanism to load prefixes from configured plugins
and use it when the prefix cannot be found from the repository.

Fixes #11252

(cherry picked from commit 0621de2)
Bumps [org.codehaus.mojo:exec-maven-plugin](https://github.com/mojohaus/exec-maven-plugin) from 3.6.1 to 3.6.2.
- [Release notes](https://github.com/mojohaus/exec-maven-plugin/releases)
- [Commits](mojohaus/exec-maven-plugin@3.6.1...3.6.2)

---
updated-dependencies:
- dependency-name: org.codehaus.mojo:exec-maven-plugin
  dependency-version: 3.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.19 to 1.5.20.
- [Release notes](https://github.com/qos-ch/logback/releases)
- [Commits](qos-ch/logback@v_1.5.19...v_1.5.20)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-classic
  dependency-version: 1.5.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) (#11310)

When `--raw-streams` is used (especially when combined with options like `--quiet` and `-DforceStdout`) there is no guarantee that anything touches terminal. Hence, in case of embedded executor it is quite possible that cached/warm code arrives quickly at the place that would do system out **before** the thread with `FastTerminal` finishes system install.

In other words, when `--raw-streams` are used, we cannot guarantee that system streams are already properly set up. This PR changes that, and makes sure (by triggering a dummy call to terminal), at the cost of "jline3 install lag" for CLI invocation. OTOH, this lag in case of embedded executors does not exists (it exists only on first invocation).

My suspicion that this is the cause of IT instability issues, when Verifier used Toolbox output ends up on Surefire stdout and not on "grabbed" output, as simply streams are not yet set up properly. Also, this usually happens "around the second half" of ITs, when cached and warmed up embedded instance is already uber optimized.

Backport of bb94de0
Changes:
* update to Mimir 0.10.3 (that allows combining cache-purge and pre-seed features)
* uses pre-seed local reposes
* cache purge enabled on outer build

Bacport of 448a6d7
Fix build when mimir is not used. Disable cache purge for now; still Windows issues

Backport of ec8d98c
A dot is already automatically added by Javadoc, so these trailing
dots were causing dots to appear twice in the generated Javadoc.
… the code and forces

us to be more consistent since all constructions must pass by the canonical constructor.
This refactored class should have the same behavior as the previous class (no new feature).
…cation in `maven.mdo`

requires that we resolve against `${project.build.outputDirectory}`, which is not `baseDir`.

Also modify the specification for resolving against `${project.build.testOutputDirectory}`
if the scope is test and `${project.build.directory}` is the scope is neither main or test.

Add a `Project.getOutputDirectory(ProjectScope)` for avoiding the need to repeat the same code in the plugins.
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@634f93c...018cc2c)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.2 to 5.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@ea165f8...330a01c)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `xmlunitVersion` from 2.10.4 to 2.11.0.

Updates `org.xmlunit:xmlunit-assertj` from 2.10.4 to 2.11.0
- [Release notes](https://github.com/xmlunit/xmlunit/releases)
- [Changelog](https://github.com/xmlunit/xmlunit/blob/main/RELEASE_NOTES.md)
- [Commits](xmlunit/xmlunit@v2.10.4...v2.11.0)

Updates `org.xmlunit:xmlunit-core` from 2.10.4 to 2.11.0
- [Release notes](https://github.com/xmlunit/xmlunit/releases)
- [Changelog](https://github.com/xmlunit/xmlunit/blob/main/RELEASE_NOTES.md)
- [Commits](xmlunit/xmlunit@v2.10.4...v2.11.0)

Updates `org.xmlunit:xmlunit-matchers` from 2.10.4 to 2.11.0
- [Release notes](https://github.com/xmlunit/xmlunit/releases)
- [Changelog](https://github.com/xmlunit/xmlunit/blob/main/RELEASE_NOTES.md)
- [Commits](xmlunit/xmlunit@v2.10.4...v2.11.0)

---
updated-dependencies:
- dependency-name: org.xmlunit:xmlunit-assertj
  dependency-version: 2.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.xmlunit:xmlunit-core
  dependency-version: 2.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
- dependency-name: org.xmlunit:xmlunit-matchers
  dependency-version: 2.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps org.apache.maven.plugin-tools:maven-plugin-tools-java from 3.15.1 to 3.15.2.

---
updated-dependencies:
- dependency-name: org.apache.maven.plugin-tools:maven-plugin-tools-java
  dependency-version: 3.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.apache.maven.plugin-tools:maven-plugin-annotations](https://github.com/apache/maven-plugin-tools) from 3.15.1 to 3.15.2.
- [Release notes](https://github.com/apache/maven-plugin-tools/releases)
- [Commits](apache/maven-plugin-tools@maven-plugin-tools-3.15.1...maven-plugin-tools-3.15.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugin-tools:maven-plugin-annotations
  dependency-version: 3.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
)

* Add backward compatibility dependencies to maven-compat

(fixes #11299)

* Add aopalliance to sisu box

---------



(cherry picked from commit 151d576)

Co-authored-by: Christoph Läubrich <mail@laeubi-soft.de>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
dependabot Bot and others added 28 commits May 29, 2026 09:25
Bumps `jlineVersion` from 4.1.0 to 4.1.2.

Updates `org.jline:jline-reader` from 4.1.0 to 4.1.2
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.0...4.1.2)

Updates `org.jline:jline-style` from 4.1.0 to 4.1.2
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.0...4.1.2)

Updates `org.jline:jline-builtins` from 4.1.0 to 4.1.2
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.0...4.1.2)

Updates `org.jline:jline-console` from 4.1.0 to 4.1.2
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.0...4.1.2)

Updates `org.jline:jline-console-ui` from 4.1.0 to 4.1.2
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.0...4.1.2)

Updates `org.jline:jline-terminal` from 4.1.0 to 4.1.2
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.0...4.1.2)

Updates `org.jline:jline-terminal-ffm` from 4.1.0 to 4.1.2
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.0...4.1.2)

Updates `org.jline:jline-terminal-jni` from 4.1.0 to 4.1.2
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.0...4.1.2)

Updates `org.jline:jline-native` from 4.1.0 to 4.1.2
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.0...4.1.2)

Updates `org.jline:jansi-core` from 4.1.0 to 4.1.2
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.0...4.1.2)

---
updated-dependencies:
- dependency-name: org.jline:jline-reader
  dependency-version: 4.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-style
  dependency-version: 4.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-builtins
  dependency-version: 4.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-console
  dependency-version: 4.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-console-ui
  dependency-version: 4.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-terminal
  dependency-version: 4.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-terminal-ffm
  dependency-version: 4.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-terminal-jni
  dependency-version: 4.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-native
  dependency-version: 4.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: org.jline:jansi-core
  dependency-version: 4.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The main goal of `maven-executor` is ability to execute Maven 3/4 in "embedded" and "forked" mode, and has not related with Maven release lifecycle itself (and is dependency-less as well). So, let's move it out into own project.

https://github.com/apache/maven-executor

The new library executes Maven in:
* forked or embedded mode, but introduces other providers as well
* supports Maven 3 and 4
* the main `maven-executor` module is Java 8, dependency-less library (is MR-JAR, and on 9+ is modular and provides ToolProvider SPI integration as well)

Backport from master: 15d19f2
Bumps [net.sourceforge.pmd:pmd-core](https://github.com/pmd/pmd) from 7.24.0 to 7.25.0.
- [Release notes](https://github.com/pmd/pmd/releases)
- [Commits](pmd/pmd@pmd_releases/7.24.0...pmd_releases/7.25.0)

---
updated-dependencies:
- dependency-name: net.sourceforge.pmd:pmd-core
  dependency-version: 7.25.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `domtripVersion` from 1.5.1 to 1.5.2.

Updates `eu.maveniverse.maven.domtrip:domtrip-core` from 1.5.1 to 1.5.2
- [Release notes](https://github.com/maveniverse/domtrip/releases)
- [Commits](maveniverse/domtrip@1.5.1...1.5.2)

Updates `eu.maveniverse.maven.domtrip:domtrip-maven` from 1.5.1 to 1.5.2
- [Release notes](https://github.com/maveniverse/domtrip/releases)
- [Commits](maveniverse/domtrip@1.5.1...1.5.2)

---
updated-dependencies:
- dependency-name: eu.maveniverse.maven.domtrip:domtrip-core
  dependency-version: 1.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: eu.maveniverse.maven.domtrip:domtrip-maven
  dependency-version: 1.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `xmlunitVersion` from 2.11.0 to 2.12.0.

Updates `org.xmlunit:xmlunit-assertj` from 2.11.0 to 2.12.0
- [Release notes](https://github.com/xmlunit/xmlunit/releases)
- [Changelog](https://github.com/xmlunit/xmlunit/blob/main/RELEASE_NOTES.md)
- [Commits](xmlunit/xmlunit@v2.11.0...v2.12.0)

Updates `org.xmlunit:xmlunit-core` from 2.11.0 to 2.12.0
- [Release notes](https://github.com/xmlunit/xmlunit/releases)
- [Changelog](https://github.com/xmlunit/xmlunit/blob/main/RELEASE_NOTES.md)
- [Commits](xmlunit/xmlunit@v2.11.0...v2.12.0)

Updates `org.xmlunit:xmlunit-matchers` from 2.11.0 to 2.12.0
- [Release notes](https://github.com/xmlunit/xmlunit/releases)
- [Changelog](https://github.com/xmlunit/xmlunit/blob/main/RELEASE_NOTES.md)
- [Commits](xmlunit/xmlunit@v2.11.0...v2.12.0)

---
updated-dependencies:
- dependency-name: org.xmlunit:xmlunit-assertj
  dependency-version: 2.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.xmlunit:xmlunit-core
  dependency-version: 2.12.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
- dependency-name: org.xmlunit:xmlunit-matchers
  dependency-version: 2.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.18.8 to 1.18.10.
- [Release notes](https://github.com/raphw/byte-buddy/releases)
- [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md)
- [Commits](raphw/byte-buddy@byte-buddy-1.18.8...byte-buddy-1.18.10)

---
updated-dependencies:
- dependency-name: net.bytebuddy:byte-buddy
  dependency-version: 1.18.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.33 to 1.5.34.
- [Release notes](https://github.com/qos-ch/logback/releases)
- [Commits](qos-ch/logback@v_1.5.33...v_1.5.34)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-classic
  dependency-version: 1.5.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@de0fac2...df4cb1c)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `jlineVersion` from 4.1.2 to 4.1.3.

Updates `org.jline:jline-reader` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.2...4.1.3)

Updates `org.jline:jline-style` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.2...4.1.3)

Updates `org.jline:jline-builtins` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.2...4.1.3)

Updates `org.jline:jline-console` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.2...4.1.3)

Updates `org.jline:jline-console-ui` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.2...4.1.3)

Updates `org.jline:jline-terminal` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.2...4.1.3)

Updates `org.jline:jline-terminal-ffm` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.2...4.1.3)

Updates `org.jline:jline-terminal-jni` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.2...4.1.3)

Updates `org.jline:jline-native` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.2...4.1.3)

Updates `org.jline:jansi-core` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@4.1.2...4.1.3)

---
updated-dependencies:
- dependency-name: org.jline:jline-reader
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-style
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-builtins
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-console
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-console-ui
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-terminal
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-terminal-ffm
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-terminal-jni
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jline:jline-native
  dependency-version: 4.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: org.jline:jansi-core
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…adlock, mutable properties) (#12166)

* Fix deadlock in AbstractRequestCache.requests() due to unstable hashCode

The `requests()` method uses a HashMap to coordinate batch results between
the batch supplier and the individual CachingSupplier instances. When a
request object's hashCode() changes between HashMap.put() and
HashMap.containsKey() (e.g., because ResolverRequest includes a
RequestTrace with mutable ModelBuilderRequest data), the key is stored
in one bucket but looked up in another, causing containsKey() to return
false. The individualSupplier then waits forever for a result that is
already in the map but unreachable.

Switch to IdentityHashMap which uses System.identityHashCode() and
reference equality (==), both of which are stable regardless of
mutable object state. This is safe because the code always uses the
same object reference for put and get.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix re-entrant self-deadlock in CachingSupplier during batch cache computation

When requests() stores CachingSuppliers wrapping individualSupplier in the
session cache, a re-entrant call from the same thread can self-deadlock:
the batch computation triggers request() which finds the cached entry,
calls individualSupplier.apply() which wait()s for the batch to complete,
but the batch can't complete because this thread is now blocked.

Track the computing thread in CachingSupplier and throw
CyclicCacheAccessException on re-entrant access. The request() method
catches this and falls back to computing directly with the caller's
supplier, bypassing the cache for that one call.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Always snapshot system/user properties in ModelBuilderRequest

When systemProperties or userProperties are null, the constructor fell
through to session.getSystemProperties() without Map.copyOf(). That
returns a live view over java.util.Properties, whose hashCode() mutates
if System.setProperty() is called. Since ModelBuilderRequest ends up as
RequestTrace.data in parent traces, and ResolverRequest.hashCode()
recurses through the entire trace chain, this made cache keys unstable.

Always wrap in Map.copyOf() regardless of the source.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…mvnup (#12158) (#12222)

The undefined property detection in CompatibilityFixStrategy only performed
static analysis of reactor POMs, missing properties inherited from remote
parent POMs. This caused valid dependencyManagement entries to be incorrectly
commented out, breaking child modules relying on them for version resolution.

Now uses buildEffectiveModel to collect properties from the full parent chain,
including remote parents resolved via relativePath or Maven repositories.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…plugins (#12223)

* Fix mvnup plugin upgrade for versions locked by parent's build/plugins (#12165)

When a remote parent POM declares a plugin with an explicit version in
build/plugins (not via pluginManagement), adding a pluginManagement
entry in the child is insufficient — the parent's explicit version
takes precedence.

The analysis now compares each plugin's effective version in
build/plugins against build/pluginManagement/plugins:
- Same version: version comes from PM, pluginManagement override works
- Different version (or absent from PM): explicit version in parent's
  plugins, needs a direct build/plugins entry to override

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* spotless

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…f converting them (#12160) (#12224)

Maven 3 silently ignored invalid combine.self and combine.children
attribute values, so removing them entirely preserves actual Maven 3
behavior. Previously mvnup converted specific invalid values (e.g.
combine.self="append" → "merge"), which could miss other invalid values
and subtly changed semantics. Now both fixers detect any invalid value
against the full set of valid values (combine.self: override/merge/remove;
combine.children: append/merge), remove the attribute, and collect to a
list before mutating to avoid potential stream processing issues.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…ns (#12172) (#12225)

maven-compiler-plugin was listed as 3.2.0 but Maven Central only has 3.2,
causing resolution failures. exec-maven-plugin had wrong groupId
(org.apache.maven.plugins) and artifactId (maven-exec-plugin), inconsistent
with getPluginUpgradesMap() which correctly uses org.codehaus.mojo:exec-maven-plugin.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…12226)

Version 4.9.2 still calls add() on immutable lists returned by
Maven 4 API. The fix (commit e6d922eb) landed in 4.9.5, the first
version published to Maven Central after the fix.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…tion (#12184) (#12227)

The model builder inconsistently used session properties for CI-friendly
version replacement and model property merging, while model interpolation
used request properties. When user properties on the ModelBuilderRequest
differ from the Session (e.g. -Drevision=2.0.0 overriding a POM-defined
revision), ${revision} in dependency versions and distributionManagement
was not properly resolved.

Fix three places in DefaultModelBuilder to use request properties:
- getPropertiesWithProfiles(): use request system+user properties
  instead of session.getEffectiveProperties()
- doReadFileModel(): use request.getUserProperties() instead of
  session.getUserProperties() for model property and profile merging

Also fix DefaultConsumerPomBuilder.buildModel() to pass API Session
properties (iSession) instead of RepositorySystemSession properties
to the model builder request, ensuring consumer POM builds have
access to the full set of user properties.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…istencies (#12200) (#12228)

- exec-maven-plugin: bump from 3.2.0 to 3.5.0 (3.1.0 and earlier use
  MavenSession.getContainer() which returns null in Maven 4)
- Fix PLUGIN_UPGRADES list: exec-maven-plugin had wrong groupId
  (org.apache.maven.plugins) and artifactId (maven-exec-plugin)
- Fix compiler-plugin min version in PLUGIN_UPGRADES: 3.2.0 → 3.2
  (3.2.0 does not exist on Maven Central)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
#12229)

* mvnup: comment out repositories with undefined property expressions

Projects like uima-uimaj, opennlp-sandbox, and seatunnel-shade define
repositories with ${eclipseP2RepoId} in the repo ID. This property is
never defined — it was used as a literal string in Maven 3. Maven 4
rejects it with IllegalArgumentException at runtime.

Extend the mvnup compatibility fix strategy to detect and comment out
repositories and plugin repositories whose id or url contain undefined
property expressions, following the same pattern used for dependencies
(#12080). Handles both root-level and profile-level repositories.



* Filter project repositories with uninterpolated property expressions

When a project POM defines repositories with ${...} expressions that
cannot be resolved (e.g. ${eclipseP2RepoId}), Maven 4 previously
failed with InternalErrorException. This change downgrades the model
validation from ERROR to WARNING and filters such repositories before
they reach the resolver, logging a warning instead of failing the build.



---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…12205) (#12230)

* Fix mvnup effective model analysis for CI-friendly parent versions

mvnup's PluginUpgradeStrategy copied POMs to a temp directory for
effective model analysis. That temp directory lacked .mvn, so root
detection failed for child modules with ${revision} parent versions,
producing "Parent POM is located above the root directory" errors.

Eliminate the temp directory entirely — build effective models from
the original file paths, which already have proper .mvn and project
structure for root detection.

Also fix DefaultModelBuilder.doReadFileModel() to:
- Enter the parent resolution block when parent version contains
  expressions (${revision}, etc.)
- Only enforce isParentWithinRootDirectory when rootDirectory came
  from the session, not the fallback heuristic
- Accept parent version match when version contains an expression



* Fix Spotless formatting violation



---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Add required super("[4.0.0-rc-1,)") constructor call. On 4.0.x,
AbstractMavenIntegrationTestCase has no no-arg constructor unlike
master, so cherry-picked tests need the version range argument.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Static filed in Junit extension can impact on tests executed in parallel.
For static methods preserver current test context in local thread.

(cherry picked from commit 52c4d43)
…ory override (#11826) (#12231)

The test was disabled in 2021 after the fix was reverted twice.
Maven 4's session-based architecture fixes the root cause: the new
DefaultModelBuilder properly propagates user-configured repositories
(including central overrides) through nested import scope resolution.

Both test scenarios (testitInProject and testitInDependency) now pass.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…osal (#11825) (#12232)

* [MNG-8572] Fix @PreDestroy ClassNotFoundException caused by premature ClassRealm disposal

The Plexus Disposable.dispose() lifecycle runs before Sisu's @PreDestroy
callbacks. When dispose() called flush(), it disposed ClassRealms before
@PreDestroy methods on beans loaded from those realms could execute,
causing ClassNotFoundException.

Change dispose() to only clear the cache map without disposing realms.
The flush() method (used for explicit cache clearing between builds)
remains unchanged. ClassRealms are disposed when the PlexusContainer
shuts down after all lifecycle callbacks complete.



* Add test for dispose() vs flush() ClassRealm behavior

Verifies that dispose() clears the cache without disposing ClassRealms
(so @PreDestroy callbacks can still execute), while flush() disposes
both the cache and the realms.



---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…hases (#11889) (#12233)

When a custom lifecycle registered via components.xml maps plugin goals
to standard lifecycle phases (e.g., process-sources) via <default-phases>,
the LifecycleWrapperProvider now includes those entries as additional
phases in the wrapped API Lifecycle. The v3phases() method is overridden
to return only the custom lifecycle's own phases, ensuring computePhases()
is unaffected while getDefaultPhases() correctly picks up the bindings.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…filtering errors (#11888) (#12234)

* Fix #11856: Improve error message for prefix-based remote repository filtering errors



* Fix #11856: Mention both prefixes and groupId filters in error message

The ArtifactFilteredOutException can be triggered by either the prefixes
or the groupId remote repository filter. Update the error message to
mention both properties so users know which to disable.



* Refactor: Convert error message string concatenation to text block

Replace multi-line string concatenation with System.lineSeparator()
calls with a cleaner text block in DefaultExceptionHandler. The error
message for ArtifactFilteredOutException now uses Java text blocks
(triple-quoted strings) instead of the + operator, improving
readability and maintainability.



---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Code <claude@anthropic.com>
The DefaultModelPathTranslator was aligning Source.targetPath to the
project basedir, converting relative paths like "META-INF/tags/rdc"
into absolute paths. This caused maven-resources-plugin to copy
resources to wrong locations (e.g., /META-INF/tags/rdc instead of
target/classes/META-INF/tags/rdc).

The targetPath is relative to the output directory (target/classes or
target/test-classes), not the project basedir, so it must not be
resolved against basedir during model path translation.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…ions (#11780) (#12236)

* [GH-11772] Fail-fast consumer POM validation for non-4.0.0 model versions

When a POM-packaged project (parent POM) uses Maven 4.1.0 features
like profile conditions that cannot be stripped during consumer POM
transformation, the build now fails fast with actionable guidance
instead of silently deploying a consumer POM that Maven 3 and Gradle
cannot resolve.

The validation applies only to:
- POM-packaged projects (parent POMs) on the non-flatten path
- Projects without preserve.model.version=true

Also adds a maven.consumer.pom.removeUnusedManagedDependencies property
(default: true) to control whether unused managed dependencies are
removed during consumer POM flattening.

* Refactor consumer POM validation error message to use text blocks

Convert string concatenation in the consumer POM model version validation
error message to use Java text blocks for improved readability and
maintainability. The multi-line error message is now expressed as a
text block with .formatted() for parameter substitution.

This change affects the validation that ensures POM-packaged projects
can be downgraded to model version 4.0.0 for Maven 3/Gradle compatibility.

* Fix Spotless formatting violation



---------

Co-authored-by: Claude Code <claude@anthropic.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
@hboutemy hboutemy closed this Jun 6, 2026
@hboutemy hboutemy deleted the bugfix/reportSet-inheritance-4.0.x branch June 6, 2026 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants