3287 Commits

Author SHA1 Message Date
Niels Basjes
328ea1be31
[MNG-7750] Ensure no unwanted interpolation in plugins from profiles. (#1076)
This is the port of https://github.com/apache/maven/pull/1075 to the master branch.

The good thing is that this is ONLY the tests because the maven 4 does not have the problem of MNG-7750.

A few small changes in the tests were needed to handle the internal differences between maven 3.x and maven 4.x.

---

https://issues.apache.org/jira/browse/MNG-7750
2023-04-12 12:26:40 +02:00
Tamas Cservenak
53b6473237 [MNG-7754] Improvement and extension of plugin validation (#1079)
This is general rework of current Maven 3.9.x line how it handles plugin and mojo validations.

Changes:
* added plugin validations for dependencies
* introduced pluginValidationManager that gathers violations
* manager creates a report at build end, with dense and non repeating data
* this is in spirit to lessen already too verbose logging, as current solution would report violations as many times plugin is used in reactor, and that can be many (ie. a plugin from parent for each module)

Example report of Maven 3.9.x build: https://gist.github.com/cstamas/b62fdcd53eaf316123cf183f5a24e6a5

---

https://issues.apache.org/jira/browse/MNG-7754
2023-04-12 11:55:40 +02:00
Guillaume Nodet
b2ee29e03e [MNG-6825] Get rid of commons-lang 2023-04-06 10:51:18 +02:00
Tim te Beek
8421a36592
[MNG-6825] Replace StringUtils (#1078)
Co-authored-by: Moderne <team@moderne.io>
2023-04-01 01:56:03 +00:00
Elliotte Rusty Harold
54afd174ef
remove unused branches in fake (#1069)
* remove unused branches in a fake object
2023-03-23 10:36:23 +00:00
Guillaume Nodet
ae933fe68d
[MNG-7720] Simplify code (#1063) 2023-03-23 06:31:49 +01:00
Elliotte Rusty Harold
cadeab53f6
MNG-7738 don't dump raw stack traces to System.err (#1064) 2023-03-22 12:44:37 +00:00
Tim te Beek
703f814e34
[MNG-6825] Replace FileUtils with Commons IO (#1067)
* [MNG-6825] Replace FileUtils with Commons IO

Co-authored-by: Moderne <team@moderne.io>

* Minor fixes and reverts where cases are not handled yet

* Drop explicit dependencies on plexus-utils

---------

Co-authored-by: Moderne <team@moderne.io>
2023-03-19 20:19:22 +00:00
Guillaume Nodet
8052c720e7 [maven-release-plugin] prepare for next development iteration 2023-03-15 17:06:58 +01:00
Guillaume Nodet
26d10a4bf9 [maven-release-plugin] prepare release maven-4.0.0-alpha-5 2023-03-15 17:06:43 +01:00
Slawomir Jaranowski
e9e0a51738 [MNG-7725] Update surefire to 3.0.0 in default binding 2023-03-14 16:42:10 +01:00
Guillaume Nodet
10128b4484
Remove references to Xpp3DomBuilder and use XmlNodeBuilder instead (#1045) 2023-03-09 16:26:58 +01:00
Hervé Boutemy
ea21d6f6fc [MNG-7666] update documentation 2023-03-08 18:45:23 +01:00
Tamas Cservenak
1ffd68b802
[MNG-7720] Wrong build order of forked projects (#1040)
The original fix MNG-7672 matched the "scope" but missed the "order". `project.collectedProjects` are in order as loaded (POM order), is not topologically sorted.

Fix is to use DAG of projects, ask for downstream projects (will return more then we need but sorted) and narrow that list to only contain collected projects.

---

https://issues.apache.org/jira/browse/MNG-7720
2023-03-08 09:04:35 +01:00
Andrey Bruykhov
f7d3e30d10 Using Set<>() for contains()
This closes #998
2023-03-07 17:54:07 +01:00
Tamas Cservenak
c1dfb947b5
[MNG-7715] Update to resolver 1.9.6 (#1036)
Adjust some UTs as error message did change.

---

https://issues.apache.org/jira/browse/MNG-7715
2023-03-06 11:17:56 +01:00
Christoph Läubrich
f41d533e71 [MNG-7716] ConcurrencyDependencyGraph deadlock if no root is selected
If ConcurrencyDependencyGraph#getRootSchedulableBuilds returns an empty
list then MultiThreadedBuilder is locked forever as it never gets a
build result (because nothing is scheduled).

This changes the method, that in such case just the first project is
returned, this might not give the best performance, but ensures that
there is at least one build scheduled and the build-loop can proceed.

This closes #1029
2023-03-03 18:04:36 +01:00
Tamas Cservenak
65d95f08a6
[MNG-7717] Maven warns wrongly about deprecated parameter (#1031)
The implementation for MNG-7706 is wrong: it changes parameter NAME,
where it should check type and defaultValue instead.

---

https://issues.apache.org/jira/browse/MNG-7717
2023-03-03 08:52:40 +01:00
Tamas Cservenak
afc1a2bd86
[MNG-7713] Drop legacy-local-repository option (#1020)
There is really no need for it, and there is a resolver option if really must (but really should not, local repo is and should be considered as transient).

---

https://issues.apache.org/jira/browse/MNG-7713
2023-03-01 11:17:55 +01:00
Tamas Cservenak
22d2b47c04
[MNG-7706] Deprecate 'localRepository' parameter expression (#1009) (#1012)
This PR deprecates the 'localRepository' mojo parameter expression, and Core will emit warning if used by any Mojo.

---

https://issues.apache.org/jira/browse/MNG-7706
2023-02-23 18:14:45 +01:00
Tamas Cservenak
a35307771c
[MNG-7702] Use latest deploy plugin (#1007)
And have it aligned with install plugin. These two now provides all the fixes and new functionalities like working deployAtEnd etc.

---

https://issues.apache.org/jira/browse/MNG-7702
2023-02-22 13:21:34 +01:00
Guillaume Nodet
1d9dd4a364 [MNG-7679] [REGRESSION] Build fails when executing a single mojo without a POM
This closes #993
2023-02-20 21:21:34 +01:00
Alexey Venderov
b82479bf11
[MNG-7689] Check if execution lifecycle phase is not null (#996) 2023-02-15 08:49:39 +01:00
Andrey Bruykhov
7b38457506 Normalize regex patterns
This #990
2023-02-09 18:47:51 +01:00
Andrey Bruykhov
6e25a2674b [MNG-7686] Speed up by replacing non-pattern #replaceAll() with #replace() or precompiled patterns
This closes #984
2023-02-07 21:55:12 +01:00
Andrey Bruykhov
ef3cf56b51 Added missing @Deprecated/@deprecated annotations
@Deprecated annotatio is helpful to prevent usage of deprecated API.
For example: developer can see crossed out method/field name if this item
is deprecated.

This closes #985
2023-02-07 20:46:28 +01:00
Christoph Läubrich
0525d90d42 [MNG-7544] MavenMetadataSource#retrieve(MetadataResolutionRequest) does not check for null when reading from project map
Currently, if a project is returned from the workspace reader, but is not part
of the reactor, a NPE occurs. In this case, the repositories are read from
the model instead.

This closes #981
2023-02-05 13:17:09 +01:00
Tamas Cservenak
dfb406c5b3
Fix site plugin warning (#974)
As date format in these two files were not parsed.
2023-01-30 16:20:35 +01:00
Guillaume Nodet
41429b15ab
[MNG-7673] IllegalArgumentException thrown for invalid checksum 'never' (#972) 2023-01-30 15:11:30 +01:00
Guillaume Nodet
30fafa6741
[MNG-7672] Fork should only execute the project and its submodules (#968) 2023-01-30 15:08:08 +01:00
Guillaume Nodet
fbeefb85ab [maven-release-plugin] prepare for next development iteration 2023-01-27 16:33:47 +01:00
Guillaume Nodet
009cf4a721 [maven-release-plugin] prepare release maven-4.0.0-alpha-4 2023-01-27 16:33:38 +01:00
Guillaume Nodet
f153ac134c
[MNG-7598] Fix compatibility issues with toolchains and settings (#971)
* Split the header on two lines
* Properly delegates equals/hashCode to the v4 models
* Introduce object tracking in settings / toolchains
* Get back to a single template for v3 models
* Switch settings / toolchains mergers to deep merge
* Fix binary compatibility with 3.x
2023-01-27 15:56:16 +01:00
Guillaume Nodet
f77de570b7
[MNG-7646] Do not parse the whole reactor unless required by command line options (#963) 2023-01-26 11:42:23 +01:00
Tamas Cservenak
8918c8144f
[MNG-7622] Maven Transformation and Consumer POM (#907)
Maven Consumer POM redone, it happens only in "maven3 realm" (before resolver), and allows use cases like m-gog-p and checksum-m-p work as before.

Key aspects:
* consumer POM is injected to build earliest possible as attached artifact
* it lives and is visible just like any other attached artifact (so m-gpg-p can process it)
* just before the install/deploy, they are "swapped out" to replace POM along with all "extras" it may have (checksum, signature)
* to support use cases like MNG-7067 (in memory model is changed, but not POM file), OnChangeTransformer could be extended to take into account both: file content and model content.

---

https://issues.apache.org/jira/browse/MNG-7622
2023-01-25 11:27:00 +01:00
Guillaume Nodet
c1a900190f
[MNG-7629] Change reactor reader to copy packaged artifacts and reuse them across builds if needed (#954) 2023-01-19 11:55:20 +01:00
Tamas Cservenak
01ba8291cd
[MNG-7666] Update default binding and lifecycle plugin versions (#956)
Finally use 3.x plugins for all.

---

https://issues.apache.org/jira/browse/MNG-7666
2023-01-16 14:30:48 +01:00
Guillaume Nodet
a00a44f75b
[MNG-7660] Rename Dom to XmlNode in the v4 api (#946)
* Rename Dom to XmlNode and Xpp3Dom to XmlNodeImpl
* Use XmlNodeBuilder instead of DomBuilder
2023-01-03 16:52:23 +01:00
Hervé Boutemy
fbdf109b34
[MNG-7571] add Maven API javadoc (#830) 2022-12-31 17:32:07 +01:00
Pavel Horal
6178f6ed86
[MNG-7648] Fix locationTracking in DefaultModelBuildingRequest copy constructor (#940)
- Fix locationTracking in DefaultModelBuildingRequest copy constructor
- Add location tracking unit test
2022-12-29 14:02:33 +01:00
Guillaume Nodet
8150c62749 [MNG-7650] Reformat 2022-12-26 16:12:32 +01:00
Michael Osipov
538a6b40a5 [MNG-7352] org.apache.maven.toolchain.java.JavaToolchainImpl should be public
This closes #934
2022-12-23 09:16:13 +01:00
Michael Osipov
f0364acb2f Directories, not folders 2022-12-18 16:36:16 +01:00
Michael Osipov
3eec6b82d3 [MNG-7636] Document MavenProject#getAttachedArtifacts() as read-only
This closes #918
2022-12-18 13:11:20 +01:00
Christoph Läubrich
7a1cc12a47 [MNG-7637] Possible NPE in MavenProject#hashCode()
This closes #921
2022-12-18 11:59:51 +01:00
Konrad Windszus
ce18c56206
[MNG-7598] Enforce binary backwards-compatibility (#874)
For now only enabled in core and plugin-api

Co-authored-by: Guillaume Nodet <gnodet@gmail.com>
2022-12-15 10:50:39 +01:00
Olivier Lamy
984f73dc7c fix pom format
Signed-off-by: Olivier Lamy <olamy@apache.org>
2022-12-13 09:59:33 +10:00
Guillaume Nodet
0e82026f2a [maven-release-plugin] prepare for next development iteration 2022-12-12 11:37:35 +01:00
Guillaume Nodet
2ccf57baa5 [maven-release-plugin] prepare release maven-4.0.0-alpha-3 2022-12-12 11:36:07 +01:00
Guillaume Nodet
adf89ef63f
[MNG-7505] Remove ReportingConverter (#906) 2022-12-11 18:57:15 +01:00