The MavenITmng6562WarnDefaultBindings IT tests new Maven4 feature "fail on severity" (for WARN level).
The stub core plugin maven-resources-plugin depends on maven-compat, and it emits plugin validation warning.
BEFORE MNG-7788 was merged, the warnings were logged AFTER build summary and was not picked up by "fail on severity".
AFTER MNG-7788 merged, it causes that warnings breaks the build, as "fail on severity" is set to WARN level.
Fix:
The stub maven-resources-plugin does NOT need to depend on maven-compat, what it really needs is maven-core (for MavenProject).
The MNG-7706 deprecates ancient ArtifactRepository type use to get access to local repository, and issues warning as for any other deprecated Mojo parameters.
But alas, in ITs the MNG-5576 completely unrelated IT there is an assertion to have WARNING-free log. This IT uses the IT-plugins/IT-plugin-expression EvalMojo, that in turn uses the deprecated `${localRepository}` parameter (but does not use it). Result is, Maven 3.9.1 emits a WARNING about use of deprecated parameter and the IT fails.
Further inspection shows, that while EvalMojo injects ArtifactRepository for local repository, there is only one IT that actually uses it, the MNG-4305, but even that one is interested in basedir of the local repository only. So to say, the use of deprecated ArtifactRepository type is not needed at all.
Fix:
* change EvalMojo to not expose in context the localRepository (w/ type ArtifactRepository), but a new expression `localRepositoryBasedir` only, that is injected in non-deprecated way (in real life repoSysSession would be injected, but in IT we keep all super-safe and use Object types).
* adjusted MNG-4305 to use new epxression instead to use object reflection in template to get basedir from ArtifactRepository
* This makes the originally failing MNG-5576 pass, as warning due EvalMojo is gone.
See
https://issues.apache.org/jira/browse/MNG-7706https://github.com/apache/maven/pull/1009
The m-p-p depends on m-p-tools-ant and m-p-tools-beanshell as runtime/optional, and the way DownloadMojo resolves every artifact causes that OptionalDependencySelector filter these out even at "collection" stage (as depth >= 2).
Hence, fix DownloadMojo to resolve properly, that actually shifts all the tree "one level up", and hence result is same as in Maven, as the optional dependencies become "first level sibling".
---
https://issues.apache.org/jira/browse/MNG-7667
This change extends Bootstrap IT (1st IT that fills in local repo) to hunt down some plugins that are bound in lifecycles provided by Maven under test.
Changes:
* the Bootstrap IT invokes only the phase where DownloadMojo is bound
* DownloadMojo (the "bootstrap") changed to do "this or that": it either resolves all artifacts from provided file OR collects plugins for given project packaging plugin versions provided by tested Maven default lifecycle.
* Split more Bootstrap project POMs, now we have 4 modules, we can add more (even extension if needed)
---
https://issues.apache.org/jira/browse/MNG-7667
* Modernize IT plugins to use annotations
* Align some tests to maven 3.8.6
# Conflicts:
# core-it-suite/src/test/resources-filtered/bootstrap.txt
# core-it-suite/src/test/resources/mng-3221/report/pom.xml
# core-it-suite/src/test/resources/mng-3428/pom.xml
# core-it-suite/src/test/resources/mng-3530/build-path/plugin/pom.xml
# core-it-suite/src/test/resources/mng-3530/pom-property/plugin/pom.xml
# core-it-suite/src/test/resources/mng-3530/resource-object/plugin/pom.xml
# core-it-suite/src/test/resources/mng-3704/maven-mng3704-plugin/pom.xml
# core-it-suite/src/test/resources/mng-3743/plugins/maven-mng3743-check-plugin/pom.xml
# core-it-suite/src/test/resources/mng-3743/plugins/maven-mng3743-report-plugin/pom.xml
# core-it-suite/src/test/resources/mng-3743/project/pom.xml
# core-it-suite/src/test/resources/mng-4086/repo/org/apache/maven/its/mng4086/maven-it-plugin-a/0.1/maven-it-plugin-a-0.1.pom
# core-it-suite/src/test/resources/mng-4086/repo/org/apache/maven/its/mng4086/maven-it-plugin-a/0.2-SNAPSHOT/maven-it-plugin-a-0.2-20090315.124508-1.pom
# core-it-suite/src/test/resources/mng-5581-lifecycle-mapping-delegate/extension/pom.xml
# core-it-suite/src/test/resources/mng-7310-lifecycle-activated-in-specified-module/project/pom.xml
* Add dependencies on all support artifacts to ensure multithreaded builds can use correct ordering
* Add missing dependencies on plexus-utils
* Fix for mng-7335 test
* Fix ITs for maven 4
* Rename Component -> TestComponent to leave room for the annotation
* Upgrade a few plugin versions
* Upgrade some JDK requirements to 1.8
* Remove unwanted parentheseses
* Convert the last mojo to annotations
* Force timestamped build
* Fix ITs following Component -> TestComponent rename
* Remove commented block
* Remove versions infered from plugin management
* The implementation parameter is not supported anymore
* Align maven core version
* Fix bad merge
* Move ITs to JDK 8 / JUnit 5
* Add missing tests, move disabled test comments to the test itself
* Add unreferenced tests (Unreferenced tests are automatically added at the beginning, but it looks more coherent to add them anyway)
* Reset verifier to run fresh test in MNG-5581
* Remove useless lines
* Minimize changes in imports
Co-authored-by: Michael Osipov <michaelo@apache.org>
This test checks whether version range resolution with multiple repositories maps releases onto repos that
are not enabled for releases.
Tested with 3.8.x, 3.9.x and master. Reliably fails without the MNG-7529 fix applies, reliable passes with
the fix applied.