Commit Graph

3386 Commits

Author SHA1 Message Date
Tamas Cservenak 6773c05128
[MNG-7619] Reverse Dependency Tree (#902)
Adds Maven feature that is able to explain why an artifact is present in local repository.

Usable for diagnosing resolution issues.

In local repository, for each artifact it records `.tracking` folder, containing farthest artifact that got to this artifact, and the list of graph nodes that lead to it.

Note: this is based on by @grgrzybek proposal and reuses some code he provided. See https://github.com/apache/maven-resolver/pull/182

---

https://issues.apache.org/jira/browse/MNG-7619
2022-12-05 16:19:31 +01:00
Konrad Windszus 0d4a1a1257
[MNG-7609] Clarify extension descriptor documentation (#896) 2022-12-05 10:04:35 +01:00
Tamas Cservenak 69ef6a61ba [MNG-7612] Chained LRM
Adds new feature: Chained Local Repository Manager.

Cherry-pick 2dc7a356d3

---

https://issues.apache.org/jira/browse/MNG-7612
2022-12-03 16:55:05 +01:00
Tamas Cservenak a840ba91e3
[MNG-7608] Make native transport the default (#892)
This immediately cuts in "half" the count of HTTP requests against Maven Central or any major MRM.

Altering the meaning of "default": is now same as "auto", but still leaving it in place for future, as "default" at some point may again become something different than "native".

---

https://issues.apache.org/jira/browse/MNG-7608
2022-12-02 16:12:48 +01:00
Guillaume Nodet 249c0fe0f1
[MNG-7617] Small optimisations and cleanup in the project/model building (#816)
* Clean a bit DefaultProfileActivationContext
* Cleanup DefaultProjectBuildingResult
* Cache the injected list to avoid repetitive lookups
* Lazily compute the MavenBuildTimestamp
* Use a single loop to select active profiles
2022-12-02 14:58:56 +01:00
Guillaume Nodet f0cc176b33
[MNG-7616] Add missing exported artifacts for the new API (#894) 2022-12-02 14:56:02 +01:00
Konrad Windszus 3d0939662a
[MNG-7611] Change semantics of plugin descriptor's "requiredJavaVersion" (#888)
Always assume version constraint (the same as in requiredMavenVersion)
2022-12-01 21:54:09 +01:00
Tamas Cservenak f70b0019cc
[MNG-7607] Add M4 Transport API (#884)
Something simple to use and would reuse all the auth/proxy etc data from Maven. Intentionally super-trivial API.

If something more "serious" needed, plugin should probably roll it's own solution.

---

https://issues.apache.org/jira/browse/MNG-7607
2022-12-01 13:53:08 +01:00
Tamas Cservenak c6ecff9923
[MNG-7586] Update Maven Resolver to 1.9.2 (#882)
Updates resolver to latest release.

---

https://issues.apache.org/jira/browse/MNG-7586
2022-11-26 20:08:34 +01:00
Guillaume Nodet de19cfcd2b [MNG-7601] Reformat sources 2022-11-22 14:26:01 +01:00
Slawomir Jaranowski b1c1f7556d [MNG-7600] LocalRepositoryManager is created too early
LocalRepositoryManager needs configurations from RepositorySystemSession
so must be created after session configuration is finished.
2022-11-21 16:45:35 +01:00
Guillaume Nodet dc88c6193c
[MNG-7580] Introduce new SettingsBuilder and ToolchainsBuilder services (#852) 2022-11-21 09:51:28 +01:00
Guillaume Nodet 3f03f0e7b2
[MNG-7576] Restore compatibility with maven 3.x (#841) 2022-11-21 09:50:33 +01:00
Guillaume Nodet 6a27f5f2f6
[MNG-7597] Fix infinite loop when iterating PropertiesAsMap (#872) 2022-11-21 09:37:42 +01:00
Tamas Cservenak 724ac0b541 Revert "[MNG-7586] Update Maven Resolver to 1.9.1 (#870)"
This reverts commit 113919a5ef.
2022-11-17 17:46:08 +01:00
Tamas Cservenak 113919a5ef
[MNG-7586] Update Maven Resolver to 1.9.1 (#870)
Changes:
- hook in lifecycle

---

https://issues.apache.org/jira/browse/MNG-7586
2022-11-17 16:26:42 +01:00
Slawomir Jaranowski fa15fcf153 [MNG-7590] Allow to configure resolver by properties in settings.xml 2022-11-09 23:15:25 +01:00
Guillaume Nodet dfcf5791fc
[MNG-7583] Allow concurrent access to the MavenPluginManager (#855) 2022-11-09 14:13:18 +01:00
Michael Osipov 9c60138915 [MNG-7556] Clean up notion between user properties and system properties
This closes #810
2022-10-29 20:44:15 +02:00
Abdel Hajou bc8c6be269 [MNG-7564] Check if session is null when generating metadata
Closes #857.
2022-10-29 13:38:47 +02:00
Konrad Windszus daa8e16902
[MNG-7570] Plugin descriptor can carry the required Maven version (#832)
Its value takes precedence over POMs Maven prerequisite
2022-10-19 08:15:28 +02:00
Konrad Windszus d857c3a915
[MNG-7566] Allow a Maven plugin to require a Java version (#827) 2022-10-18 11:45:54 +02:00
Guillaume Nodet 77312f323b [maven-release-plugin] prepare for next development iteration 2022-10-15 01:41:39 +02:00
Guillaume Nodet c07700ffc9 [maven-release-plugin] prepare release maven-4.0.0-alpha-2 2022-10-15 01:41:31 +02:00
Guillaume Nodet 550f0c90fc Restore compatibility for the maven-release-plugin 2022-10-15 01:33:17 +02:00
Guillaume Nodet a492c9a4ff
Fix the repackaged plexus-utils groupId (#829)
* Fix plexus gav
* Install maven instead of just building it

The plugins need to be available in the local repo, else the build may download old snapshots
2022-10-15 01:20:24 +02:00
Guillaume Nodet 66851463f6 [maven-release-plugin] prepare for next development iteration 2022-10-14 22:57:05 +02:00
Guillaume Nodet 0d973fb624 [maven-release-plugin] prepare release maven-4.0.0-alpha-1 2022-10-14 22:36:41 +02:00
Guillaume Nodet 2b6977a85f
Fix site generation (#828) 2022-10-14 21:52:26 +02:00
Guillaume Nodet 3f90e7028e
Restore compatibility on SettingsBuilder, ToolchainsBuilder and MojoDescriptorCreator (#820) 2022-10-11 16:31:57 +02:00
Tamas Cservenak 3bc2cf6a7a
[MNG-7547] Simpler G level metadata generation (#806) 2022-10-11 14:11:17 +02:00
Guillaume Nodet ae655e0e83
[MNG-7553] v4 api enhancements
* Fix DefaultArtifactManager to allow using both Artifact and Dependency
* Add a TODO for an EventSpy related api
* Add simple string/model conversion on the XmlFactory
* Decouple services creation
* Move services to @Singleton scope
* Add protected constructors as builders should not be created directly
* Fix typos "can not" -> "cannot"
* Add some null checks on build(xx) shortcut methods
* Add a some missing conversion to immutable collections for requests
2022-10-10 20:47:26 +02:00
Guillaume Nodet bff84bd634
Replace Properties with Map<String, String> in the v4 api (#808) 2022-10-05 16:52:17 +02:00
Guillaume Nodet 2a9f39336c
[MNG-7553] New clean API with immutable model (#703) 2022-10-02 10:41:25 +02:00
Martin Kanters 7e0e9f9fbe [MNG-7310] Using the plexusContainer to prevent loading lifecycles from defined by extensions from other submodules.
This resolves #639.
2022-09-16 14:46:01 +02:00
Sylwester Lachiewicz 5502c0c8db [MNG-7502] Upgrade to Guice 5.1.0 2022-09-10 21:27:25 +02:00
Guillaume Nodet 631f1c7611 [MNG-7401] [MNG-7474] Remove unused commented code 2022-08-23 11:54:18 +02:00
Guillaume Nodet e02e0c84ce [MNG-7401] [MNG-7474] Keep a single maven session and fix session scope (#743)
* [MNG-7474] SessionScoped beans should be singletons for a given session

Now that the Session is not cloned anymore, we can revert to the original
(Maven < 3.3) behavior of the session scoped components.

Co-authored-by: Christoph Läubrich <christoph@laeubi-soft.de>

This closes #743

* Remove setting a value which is the default already

Co-authored-by: Christoph Läubrich <christoph@laeubi-soft.de>
# Conflicts:
#	maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
#	maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java
2022-08-23 11:51:44 +02:00
Giovanni van der Schelde a53a1aa232 [MNG-7443] Implement consistent logging between optional projects and optional profiles
This closes #701
2022-07-29 11:06:26 +02:00
Michael Osipov 0f8f22e404 [MNG-7020] Remove Maven 2 WagonExcluder backward compat code
This closes #394
2022-07-24 10:47:35 +02:00
Michael Osipov 2d9918a2d1 Clean up dependency warnings by dependency:analyze
This closes #769
2022-07-24 10:44:43 +02:00
Hervé Boutemy 35b93b0a58 [MNG-7353] Add support for "mvn pluginPrefix:version:goal"
This closes #757
2022-07-21 14:38:30 -07:00
Marc Wrobel 8125b3131f Fix typos in code
Fix minor typos in code :

- test method names,
- method parameter names,
- variable names.
2022-07-19 00:45:13 +02:00
Marc Wrobel 5ce5591ae3 Fix minor typos
Fix various minor typos in :

- project documentations,
- javadoc and comments,
- test files.
2022-07-18 19:22:19 +02:00
Michael Osipov efa9f0c678 [MNG-7513] Address commons-io_commons-io vulnerability found in maven latest version
We can safely remove Commons IO altogether because it is not used in any direct or
transitive usecase at compile time or runtime.

This closes #771
2022-07-18 17:26:54 +02:00
Josef Cacek 03b1faff7e [MNG-7511] Ensure the degreeOfConcurrency is a positive number in MavenExecutionRequest
This closes #767
2022-07-18 13:35:27 +02:00
Tamas Cservenak f05397a88d
Pull out lifecycle plugin versions (#766)
To lessen mistake (copy-paste vs forgotten update) but also just to
make things less redundant. This also makes possible "experimenting"
much more easier.

This is merely a refactoring that does not takes or gives anything, just tidies up.
2022-07-12 15:13:55 +02:00
Guillaume Nodet 415eaf31de
[MNG-7160] Ability to customize core extensions classloaders (#616) 2022-06-15 10:43:17 +02:00
Slawomir Jaranowski 54f9d91ebb [MNG-7468] Check unsupported plugins parameters in configuration 2022-06-03 20:54:27 +02:00
Guillaume Nodet 7da0214d1d [MNG-7476] Display a warning when an aggregator mojo is locking other mojos executions
# Conflicts:
#	maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
2022-05-30 13:29:43 +02:00
Guillaume Nodet 2a276d0dcf [MNG-7487] Fix deadlock during forked lifecycle executions
# Conflicts:
#	maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java

# Conflicts:
#	maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
2022-05-30 13:15:06 +02:00
Guillaume Nodet 6767f2500f [MNG-7486] Create a multiline message helper for boxed log messages
This closes #746
2022-05-29 13:35:24 +02:00
Tamas Cservenak fc1962e659
[MNG-7478] Transport selection should use config properties (#739)
Instead of user properties, as this allows making "permanent" the
selection by using MAVEN_OPTS and other places as well. Currently
only via command line works.

Also, do not modify existing Maven behavior, so introduce "default" branch
in selection. See comment in code
2022-05-17 08:54:29 +02:00
Tamas Cservenak a83ed86c48 [MNG-7471] Make Resolver util and connector-basic provided (#732)
Problem: resolver spi, impl and connector-basic has changes in 1.8.0 (SPI interface RepositoryLayout got new method, that is implemented in connector-basic, and code from impl is using it). But, Maven core exports only resolver api, spi and impl packages, while the rest is at mercy of a plugin. This means ,that these artifacts (api, spi and impl) will always come from Maven core, whatever version plugin declares, while the "rest" (connector-basic and util) will be of version that plugin declares. The current state hence prevented ANY KIND of changes on SPI interfaces that would be implemented in connector-basic (which is the case in Resolver 1.8.0).

Solution: make all these resolver artifacts "provided" (to behave like maven-core or maven-plugin-api is behaving): simply put, whatever resolver artifact plugin depends on, it should NOT use it's own version, but the version from Maven. This ensures that api-spi-impl-connector-basic as "aligned" and are same version.

Details:

The change is to make util is exportedArtifact AND exportedPackage, while connector-basic is only exportedArtifact.

Reasoning:
* exportedArtifact -- prevents "own" artifact to be added to realm
* exportedPackage -- makes it "visible" in realm

So, this basically prevents bad versions of util and connector-basic
enter the plugin realm (as they will be not added to it), while
util remains "visible" to plugins, as the intent was, most
common due GenericVersions etc.

This change also results in simpler expectations to plugin developers:
resolver libraries should really behave like maven-core or maven-compat:
when plugin declares dependency on these (w/ scope provided as best
practice), they really get version of these that are of version that
maven runs in, not version they declare. So same thing happens now with
resolver: you will get same version of resolver that maven uses your plugin
runs in.

Before this change, it was a mixed bag: api, spi and impl was from maven,
while util and connector-basic was version you pulled in as dep.
2022-05-11 16:09:52 +02:00
Guillaume Nodet 1c22f94522 [MNG-7459] Revert "[MNG-7347] SessionScoped beans should be singletons for a given session (#621)"
This reverts commit faf5d5d274.
2022-05-09 10:11:54 +02:00
Slawomir Jaranowski 3dd0afd897 [MNG-7464] Warn about using read-only parameters for Mojo in configuration 2022-05-05 21:12:25 +02:00
Giovanni van der Schelde 93196d4bb7 [MNG-7404] Drop deprecated prefixless expressions
Fixed failing unit tests to use the 'project.' prefix and removed legacy
unit tests that tested support for prefixless expressions.

Closes #696.
2022-04-27 20:12:57 +02:00
Slawomir Jaranowski 702f52d0ea [MNG-7457] Warn about deprecated plugin Mojo 2022-04-24 09:57:10 +02:00
Slawomir Jaranowski 9ac2d08dc7 [MNG-5222] Improvement in deprecated params detection 2022-04-23 09:24:22 +02:00
Tamas Cservenak 551009ab49
[MNG-7454] Include resolver-transport-http in Maven (#720)
Addendum to be2b7f890d98af20eb0753650b6605a68a97ac05:
* fix property name to align with existing ones
* fix logging configuration as no more shaded httpClient
* fix constant names
2022-04-16 18:19:23 +02:00
Hervé Boutemy 643d1e7828 [MNG-7438] add execution id to "configuring mojo" debug message
[DEBUG] Configuring mojo execution
'org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test:default-test'
with basic configurator

rephrase "Configuring" to "Loading" mojo "from plugin realm"
to differentiate from "configuring mojo" = apply configuration

rename populatePluginFields(..) private method
to populateMojoExecutionFields(..) to better match the intent
2022-04-15 18:42:02 +02:00
Tamas Cservenak be2b7f890d
[MNG-7454] Include resolver-transport-http in Maven (#711)
But keep Wagon as default transport. This PR merely includes
resolver http and file transport and switches wagon-http
to non-shaded one.

Changes:
* switch to non-shaded wagon-http (as httpClient is now shared)
* include resolver http and file transport
* override resolver default behaviour (native transport preferred over wagon, when both on classpath)
* provide simplistic means to choose transport

The chosen transport can be seen in debug (-X) output on line
`[DEBUG] Using transporter XXX...`

The `-Dmaven.transport` simplistic switch can be used to choose transport:
* not set: default, that is Wagon
* `wagon`: explicitly sets Wagon
* `resolver`: explicitly sets resolver native transports (file and http)
* `auto`: relies on resolver "auto discovery" (priorities, etc). This is MUST to keep transport pluggable with 3rd party transports. In fact, this was the default so far in Maven, along with the fact that native resolver transports were not included (as resolver prefers native ones over Wagon).
2022-04-13 12:51:37 +02:00
Gabriel Belingueres c99028b9fb [MNG-5222] Maven 3 no longer logs warnings about deprecated plugin parameters
- Added warning when setting deprecated parameter with value different
than the default.
- Changed Logger to SLF4J.
2022-04-12 20:49:24 +02:00
Tamas Cservenak bdb35f2deb [MNG-7432] Resolver session contains non-MavenWorkspaceReader
As Resolver session contains non-MavenWorkspaceReader, the reactor models (already resolved w/ profiles applied) are re-built when using Resolver within Mojo, instead to get them via ReactorReader as expected. The rebuilt models will lack explicit (-P on CLI) profiles applied, as resolver itself is not maven aware, hence there is no way to "tell" resolver to apply them. Building reactor models w/ profiles applied is NOT done using resolver, but by Maven when loading up reactor, as profiles are NOT applied for downstream transitive dependencies (see discussion on MNG-1388 why).

Signed-off-by: Christoph Läubrich <christoph@laeubi-soft.de>
Co-authored-by: Christoph Läubrich <christoph@laeubi-soft.de>
Co-authored-by: Tamas Cservenak <tamas@cservenak.net>
2022-04-08 10:46:30 +02:00
Karl Heinz Marbaise 896c707d32
[MNG-7447] - Several Improvements by using Stream API 2022-04-04 20:39:14 +02:00
Jacky d92538b80f
[MNG-7445] - Refactoring, remove the useless line
Contribution by JakcyHu Gakiii

Signed-off-by: Karl Heinz Marbaise <khmarbaise@apache.org>
2022-04-01 22:20:38 +02:00
Guillaume Nodet 31193cbf0c
[MNG-7391] Fix MojosExecutionStrategy lookup to be able to look into the SessionScope (#693) 2022-03-15 06:56:07 +01:00
Guillaume Nodet 97c1e4b4aa
Remove unused test which should have been removed with MNG-7047 (#686) 2022-03-09 13:44:01 +01:00
Guillaume Nodet b3d5c12c7a
[master][MNG-7350] Introduce a factory for ModelCache (#629)
* [MNG-7350] Introduce a factory for ModelCache
* [MNG-7350] Introduce a factory for ModelCache
Fix missing javadoc and binding
2022-03-09 13:29:51 +01:00
Hervé Boutemy 8e5676c84a
[MNG-7391] add execution strategy+runner required by Maven Build Cache (#661)
* [MNG-7391] add execution strategy+runner required by Maven Build Cache
* Fix previous commit
* Fix javadoc
* Fix checkstyle
Co-authored-by: Guillaume Nodet <gnodet@gmail.com>
2022-03-09 11:35:05 +01:00
Maarten Mulders 09e51544df Remove unused import 2022-03-03 10:40:03 +01:00
Michael Osipov 83bbbb3cfb [MNG-6960] Use RuntimeInformation instead of reading properties
This closes #685
2022-02-27 19:27:25 +01:00
Karsten Thoms 5394e750d9 (refactoring) Resolve usage of deprecated method
Replace usage of
  MavenExecutionRequest#getSelectedProjects()
by
  MavenExecutionRequest#getProjectActivation().getOptionalActiveProjectSelectors()

Signed-off-by: Karsten Thoms <karsten.thoms@karakun.com>

This closes #664
2022-02-27 12:58:35 +01:00
Christoph Läubrich e327be3d85 [MNG-7402] BuildListCalculator never detaches the classloader
This closes #683
2022-02-26 21:38:56 +01:00
Sylwester Lachiewicz 69d6c6d5a2 [MNG-7417] Several classes do not set properties properly for building requests
This closes #306
2022-02-20 19:17:47 +01:00
Martin Kanters 03df5f7c63 [MNG-7390] Allow selecting modules outside the cwd into the reactor using --projects
This closes #677
2022-02-19 23:59:40 +01:00
Maarten Mulders 0be5e406d7 [MNG-7406] Do not include formatted details in Exception message
Closes #672
2022-02-16 22:11:52 +01:00
Christoph Läubrich a4729755ae [MNG-7400] Allow more WorkspaceReaders to participate
This closes #667
2022-02-12 21:42:08 +01:00
Guillaume Nodet 1d473233f2 [MNG-6727] Using version range in parent and CI Friendly Version fails 2022-02-01 14:35:07 +01:00
Guillaume Nodet 6b607109d3 [MNG-7349] Limit relocation warning message to direct dependencies only
# Conflicts:
#	maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
2022-01-24 07:57:43 +01:00
Guillaume Nodet 9d4b2b23f0
[MNG-7345] Fix exported packages (#618) 2022-01-18 10:42:47 +01:00
Falko Modler ab4fec0a33 [MNG-7381] Shorten parallel builder thread name to artifactId, conditionally with groupId
This closes #662
2022-01-17 20:39:11 +01:00
Falko Modler 18725ec1e0 [MNG-7380] Don't log non-threadsafe warning if only building a single module
This closes #655
2022-01-11 15:30:52 +01:00
Guillaume Nodet faf5d5d274
[MNG-7347] SessionScoped beans should be singletons for a given session (#621) 2022-01-10 08:19:33 +01:00
Hervé Boutemy c229278477 rework javadoc 2022-01-08 17:27:28 +01:00
Hervé Boutemy f30a0ab4dd [MNG-7267] update artifact handlers documentation 2022-01-08 16:03:57 +01:00
Hervé Boutemy 8bde888dc8 [MNG-7267] update lifecycle documentation after switch from Plexus XML 2022-01-08 15:57:39 +01:00
Hervé Boutemy e617d51bd4 [MNG-7264] packaging plugins bindings cannot be empty 2022-01-08 15:25:54 +01:00
Tamas Cservenak 7180d68a18 Proposal to change abstract provider
Changes:
* validate input
* do not modify loop invariant within loop body
2022-01-08 15:25:54 +01:00
Hervé Boutemy a53083db6c [MNG-7264] refactor packaging bindings providers to ease maintenance 2022-01-08 15:25:54 +01:00
Hervé Boutemy a7375a0eff [MNG-7263] use constants instead of copy/paste 2022-01-08 15:25:13 +01:00
Hervé Boutemy 94af1d99f8 [MNG-7263] improve AbstractLifecycleProvider 2022-01-08 15:25:13 +01:00
Hervé Boutemy 711d5fbbf2 [MNG-7263] introduce AbstractLifecycleProvider 2022-01-08 15:25:13 +01:00
Hervé Boutemy e5b0831c10 [MNG-7263] refactor lifecycle providers to ease documentation
- lifecycle id
- phases
- default plugins bindings
2022-01-08 15:25:13 +01:00
Michael Osipov 2670c00751 [MNG-5561] Plugin relocation loses configuration
Previously, to locate plugin configuration in a project the plugin descriptor
was read first and then the GA were extracted. This always worked because the
GA from the model and the GA from plugin descriptor (plugin.xml) were identical.
When a plugin is relocated the target artifact is read, thus its plugin
descriptor as well. Naturally, the GA of new (relocated) does not correspond to
the old (static) one in the model. Therefore, the configuration is not found.
New approach is to use the original plugin GA to locate the configuration in
the model regardless of the relocation.

This closes #642
2022-01-06 16:54:03 +01:00
Hervé Boutemy d6b9108f58 [MNG-6917] upgrade maven-wrapper-plugin to 3.1.0 2022-01-05 00:09:35 +01:00
Guillaume Nodet 33aedfc28b
[MNG-7156][MNG-7285] Add locking in MojoExecutor (#627) 2021-12-17 09:18:40 +01:00
Guillaume Nodet ae8aebea19
[MNG-7182] Use the MX xpp parser instead of a STAX transformation (#486) 2021-11-29 13:31:55 +01:00
Michael Osipov 8784812cf6 [MNG-7312] Revert ThreadLocal approach from MNG-6843 and MNG-7251
Revert "[MNG-7251] Fix threadLocalArtifactsHolder leaking into cloned project"

This reverts commit a6e462b53a.

Revert "[MNG-6843] Parallel build fails due to missing JAR artifacts in compilePath"

This reverts commit 73e00ed85d.

===

This closes #594
2021-10-22 21:57:09 +02:00
Karl Heinz Marbaise 965aaa53da
[MNG-7314] - Refactoring - Remove unused MavenExecutionResult 2021-10-18 20:47:55 +02:00
Hervé Boutemy f46a9131d5 fix javadoc errors 2021-10-17 12:07:50 +02:00
Arturo Bernal 274388fc0f [MNG-7303] - Replace Throwable.initCause() with constructor. 2021-10-13 22:52:02 +02:00
Giovanni van der Schelde ffc2b99e3e [MNG-6389] Move the toolchains model to a separate artifactId
Closes #586
2021-10-13 16:10:22 +02:00
Arturo Bernal 0080e84588
[MNG-7297] Remove redundant type arguments (#581) 2021-10-11 20:58:38 +02:00
Arturo Bernal 4daa48e0f6 [MNG-7287] Simplify assertion with simpler and equivalent calls
Closes #576
2021-10-10 22:34:07 +02:00
Arturo Bernal b31f3aeef3
[MNG-7291] Avoid String concatenation in loops (#572) 2021-10-10 22:12:41 +02:00
Arturo Bernal 16afe061c9 [MNG-7290] Java8 improvements
Closes #571
2021-10-10 12:50:42 +02:00
Arturo Bernal d61fcf7da1 [MNG-7288] Remove redundant local variables
Closes #569
2021-10-10 12:42:12 +02:00
Arturo Bernal b9fb762215 [MNG-7292] Unnecessarily escaped character
Closes #573
2021-10-10 12:18:15 +02:00
Arturo Bernal 4fafe44112 MNG-7296 - Remove redundant 'if' statement 2021-10-10 10:53:58 +02:00
Arturo Bernal e50d65d228 MNG-7295 - Remove redundant/unused import statements. 2021-10-09 16:26:14 +02:00
Tamas Cservenak 3017b85141
Refactor MavenSession#getPluginContext to be thread safe (#575)
This PR introduce no API change, merely refactors MavenSession
getPluginContext method to truly thread-safe.

Also added Javadoc to affected field and method.
2021-10-09 12:11:36 +02:00
Tamas Cservenak d75bea4154
[MNG-7279] Drop deprecated constructor (#564)
This constructor was deprecated in Maven 3.0-RC1 (!!!).
Removal also means that Maven4 will NOT work with
(Maven2 compatible) m-enforcer-p 2.x, only with
modern m-enforcer-p 3.x line.
2021-10-04 11:56:09 +02:00
Tamas Cservenak 69ee0c8b59
[MNG-7103] VersionScheme provider (#563)
This PR makes VersionScheme a component, is injected where needed
(instead of ad-hoc instantiation), but provides room for
different schemas, as GenericVersionScheme is "default"
but now nothing stops to add other schemes as well.
2021-10-04 11:55:18 +02:00
Tamas Cservenak c3962c1a6c
[MNG-7278] Clean up core logging (#562)
We had all kind of Loggers in Core, some Plexus
injected, some acquired using SLF4J LoggerFactory,
some static, some final, etc.

This PR aligns all those uses to SLF4J finals.

Notices:
* maven-core does NOT use Plexus Logger anymore
* did not touch maven-compat
2021-10-02 20:33:55 +02:00
Tamas Cservenak af9c64f80d
[MNG-6898] Drop plexus-component-metadata plugin from maven-core (#554)
Now that Plexus XMLs (and components) are out, no need
for this plugin in maven-core module anymore.

Changes:
* convert DefaultLifecyclePluginAnalyzer to JSR330 (last plexus component in core)
* drop dependency on plexus-component-annotations (note: it is still there but only as transitive dep of plexus-shim, needed to boot up Plexus Shim in tests)
* remove plexus-component-metadata plugin from build
* drop unused test Plexus XML
2021-10-02 15:40:58 +02:00
Tamas Cservenak d141957ff5
[MNG-7055] Fix G level metadata handling (#555)
Maven Artifact Transfer silently prevents group level metadata to reach Resolver and causes metadata loss on install/deploy. Fix is to "bridge" this from maven-resolver-provider (and core) by reusing the actual metadata that m-plugin-p:addPluginArtifactMetadata mojo adds, but m-a-t filters out.
2021-10-02 15:22:32 +02:00
Karl Heinz Marbaise 71a0a49904
[MNG-7272] - Code Improvement - II 2021-10-02 12:39:52 +02:00
Guillaume Nodet 35e5a4d71d [MNG-5577] Use JSR 330 constructor injection
# Conflicts:
#	maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
2021-10-02 12:26:22 +02:00
Karl Heinz Marbaise 25cf1576cc
[MNG-7271] - Code Improvement 2021-09-29 22:27:07 +02:00
Guillaume Nodet c8d5ba3705 [MNG-7235] Speed improvements when calculating the sorted project graph
This closes #532
2021-09-27 20:17:08 +02:00
Tamas Cservenak 6c7d105916
[MNG-7264] Convert maven-core default-bindings to Providers (#550)
This change get rids of Plexus components defined in META-INF/plexus/default-bindings.xml and converts them to Providers.
2021-09-26 13:34:27 +02:00
Tamas Cservenak 6c343136b0
Merge pull request #549 from apache/drop-components-xml
[MNG-7263] Convert maven-core components XML to Providers
2021-09-25 12:29:35 +02:00
Tamas Cservenak 2926f033cb [MNG-7265] Convert maven-core artifact-handlers.xml to Providers
Gets rid of another set of Plexus components defined in XML.

Changes:
* DefaultArtifactHandler was declared as component but it is not needed; not
  a component anymore
* Sanitize DefaultArtifactHandler class but retain Plexus XML provisioning
  compatiblity (as plugins does have it declared in Plexus XML) and update its
  uses within Maven code (be explicit)
* Use new "full" constructors in handler providers for easier comparison and
  inspection (be explicit)

This closes #551
2021-09-24 22:09:23 +02:00
Guoxiong Li 5fd536853f [MNG-7248] Fix warnings issued by dependency:analyze
This changeset does intentionally not touch Guice and its dependencies
as well as test-scoped dependencies.

This closes #546
2021-09-24 20:55:03 +02:00
Tamas Cservenak c647dbc665 Get rid of guava 2021-09-23 21:19:50 +02:00
Tamas Cservenak 4cb8909336 Convert maven-core components XML to Providers
This change get's rid of component.xml in maven-core
2021-09-23 11:13:46 +02:00
George Gastaldi a1ba33069f [MNG-7253] Display relocation message defined in model
Move logging to DefaultArtifactDescriptorReader

This closes #543
2021-09-18 20:39:37 +02:00
Guillaume Nodet 23ffe3349f [MNG-7236] The DefaultPluginVersionResolver should cache results for the session 2021-09-14 20:10:13 +02:00
Michael Osipov 6b6589bf1c [MNG-7219] [Regression] plexus-cipher missing from transitive dependencies 2021-09-14 19:21:08 +02:00
Falko Modler a6e462b53a [MNG-7251] Fix threadLocalArtifactsHolder leaking into cloned project
This closes #535
2021-09-14 17:22:42 +02:00
Tamas Cservenak 406c525ec4 [MNG-7250] Upgrade Sisu Inject/Plexus to 0.3.5
Since we have replaced the old JSR 250 library with javax.annotation library we
go straight to 1.3.2 because Maven Resolver 1.7.0 introduced this already as a
transitive dependency in fc806a25eb.
The only difference between version 1.2 and 1.3.2 is a Java upgrade from 6 to 8.

This closes #539
2021-09-13 22:57:31 +02:00
Tamas Cservenak 067171d28a [MNG-7246] Upgrade Plexus Cipher and Sec Dispatcher to 2.0
Both plexus-cipher and plexus-sec-dispatcher have had a
groupId change, but plexus-cipher change was implemented
for 1.8 version.

Latest versions of artifacts are 2.0. This PR
ups plexus-cipher version and adds proper changes
for plexus-sec-dispatcher groupId change.

This closes #534
2021-09-11 10:52:20 +02:00
Mickael Istria f594c0b916 Add ModelSource test for MNG-5669
This closes #525
2021-08-17 10:59:48 +02:00
Michael Osipov a2a3df3d02 [MNG-7203] Introduce a long option --verbose and deprecate --debug
This closes #519
2021-08-01 22:33:33 +02:00
rfscholte a2f81065ff [MNG-6656] Features must use userProperties instead of systemProperties 2021-07-23 11:21:18 +02:00
Michael Osipov e9a54c6d02 Use proper term: directory 2021-07-19 23:45:50 +02:00
Michael Osipov 78fc3734f9 Trim trailing whitespace 2021-07-02 18:47:10 +02:00
Michael Osipov b551be7445 Document hacks as such 2021-07-02 17:50:44 +02:00
Falko Modler 73e00ed85d [MNG-6843] Parallel build fails due to missing JAR artifacts in compilePath
Signed-off-by: rfscholte <rfscholte@apache.org>
2021-06-25 19:28:40 +02:00
Sylwester Lachiewicz ab95197436 Fix Checkstyle reported issues with maven-shared-resources 3 2021-05-30 12:00:03 +02:00
rfscholte 12f3e7e878 Remove maven-test-support in favor of plexus-testing 2021-05-28 18:26:03 +02:00
Michael Simacek 83e36649c0 [MNG-6294] Convert MavenPluginValidator into a JSR 330 component
Modified by: Guillaume Dufour <guillaume.duff@gmail.com>

This closes #134 and closes #470
2021-05-03 08:09:58 +02:00
Michael Osipov 1a65351b43 Revert "[MNG-6772] Prevent Super POM central entry from overriding"
This reverts commit 2a23d7bf16.
2021-04-22 18:45:57 +02:00
rfscholte d6e70e297a [MNG-6917] Update maven-wrapper-plugin to 3.0.2 2021-04-08 19:41:43 +02:00
Hervé Boutemy b08e4d277e [MNG-6917] add wrapper lifecycle to reference documentation 2021-04-05 19:48:39 +02:00
Hervé Boutemy c4df060c26 fix javadoc 2021-04-05 10:11:39 +02:00
Hervé Boutemy 1b6caed1ea [MNG-6656] rename build+consumer filters to buildToRaw+rawToConsumer 2021-04-04 19:49:51 +02:00
Hervé Boutemy e25cf17d3b [MNG-6656] move to o.a.m.model.transform + .sax 2021-04-04 19:39:05 +02:00
Hervé Boutemy 22954a04ff [MNG-6656] rename maven-xml module to maven-model-transform 2021-04-04 13:24:41 +02:00
Martin Kanters 7c742c298b [MNG-7112] Do not select child modules when --non-recursive is given.
Closes #459
2021-04-02 16:11:49 +02:00
Martin Kanters c4cd93d55f [MNG-7102] Exclude all children of aggregators, even if the aggregator was already removed from the reactor. 2021-03-27 17:38:05 +01:00
Hervé Boutemy 1ab29f5485 [MNG-7128] keep blocked attribute from mirrors in artifact repositories 2021-03-27 03:00:25 +01:00
Maarten Mulders c3cf29438e [MNG-6511] Optional project selection
Closes #446.
2021-03-22 14:41:59 +01:00
Martin Kanters a02834611b [MNG-7102] The child modules of excluded projects are now excluded as well, making the behavior consistent with MNG-6981. 2021-03-22 13:16:42 +01:00
Michael Osipov 1e19805097 [MNG-6075] Increase the model validation level to the next minor level version
This closes #455
2021-03-20 15:09:33 +01:00
Hervé Boutemy 28b4ea92d3 [MNG-7117] add support for blocked mirror 2021-03-19 20:36:00 +01:00
Hervé Boutemy 3b21386c3f [MNG-7116] add support for mirrorOf external:http:* 2021-03-19 20:35:50 +01:00
Michael Osipov a5c68f7a4a Revert "[MNG-7046] Revert MNG-5639 and make repo config static only"
This reverts commit 8c9c303f9c.
2021-03-13 17:09:40 +01:00
Maarten Mulders ad24f599ce [MNG-7051] Return unmodifiable profile lists
This helps deprecation and keeps the code consistent.

Closes #452.
2021-03-08 16:52:28 +01:00
Martin Kanters 9643ac630c [MNG-7051] When an optional profile could not be found, an info message should be thrown instead of a warning. 2021-03-08 16:24:16 +01:00
Hervé Boutemy 0e75baae25 improve and fix javadoc 2021-03-05 21:23:44 +01:00
Romain Manni-Bucau a242c1a912 [MNG-6471] Parallel builder should use the module name as thread name
This closes #177
2021-02-28 19:59:45 +01:00
rfscholte 8ceb6c6e99 [MNG-7063] Infinite loop using Shade plugin and JUnit 5 dependency 2021-02-21 11:23:08 +01:00
Hervé Boutemy 9b5b8d4082 extract AbstractMavenLifecycleParticipant dispatch methods 2021-02-20 19:55:40 +01:00
Hervé Boutemy 441cf73c06 improve documentation 2021-02-20 19:34:43 +01:00
rfscholte 84a1ff2d5c [MNG-7063] Add unittest to ensure rereading a pom won't return the cached Model 2021-02-14 16:56:25 +01:00
Guillaume Nodet 619973b91c [MNG-7063] Infinite loop using Shade plugin and JUnit 5 dependency
Signed-off-by: rfscholte <rfscholte@apache.org>
2021-02-14 15:52:04 +01:00
Guillaume Nodet f820b41aed [MNG-7095] Fix resume for parallel builds
Resolves #444
2021-02-13 11:32:34 +01:00
Guillaume Nodet 48fc10889e [MNG-7077] Use JUnit 5 extension
Signed-off-by: rfscholte <rfscholte@apache.org>
2021-02-12 17:21:59 +01:00
boris-unckel 1e575a2bd7 [MNG-7068] Active dependency management for Google Guice/Guava
This closes #462
2021-02-02 14:17:43 +01:00
Maarten Mulders 8defd16965 [MNG-7051] Optionally skip non-existing profiles and break on missing required profiles. 2021-02-02 08:20:21 +01:00
Michael Osipov 8df10f93be Test for empty value and avoid needless space 2021-01-31 20:20:23 +01:00
Michael Osipov ceb08cfa77 Test for empty locations and avoid printing them 2021-01-30 23:04:46 +01:00
Guillaume Nodet bb916d0784 [MNG-7035] Migrate unit tests to Unit 5
Signed-off-by: rfscholte <rfscholte@apache.org>
2021-01-15 15:07:06 +01:00
Martin Kanters 83dc6909aa [MNG-7071] Remove the profiles.xml warning, since the functionality is ignored since Maven 3. 2021-01-11 19:17:16 +01:00
Sylwester Lachiewicz b877445cb9 [MNG-6909] Convert to JSR330 in tests - maven-core
Closes #346
2021-01-08 03:55:24 +01:00
Michael Osipov a6d5e86155 Use consistent static final loggers 2021-01-05 15:47:20 +01:00
Michael Osipov 2201698234 Apply consistent log argument quoting for sigle- and multi-valued args 2021-01-05 15:47:20 +01:00
rfscholte 94612f96fa [MNG-7060] Let build fail fast in case any maven-gpg-plugin goal is called 2021-01-03 13:09:59 +01:00
Michael Osipov 31ad2ff43a Use system line separator wherever possible
This closes #424
2021-01-01 12:55:01 +01:00
Maarten Mulders 2caed6218a [MNG-4660] Increase usefulness of logging
Closes #416
2020-12-28 11:27:28 +01:00
Michael Osipov c79682bca9 [MNG-7057] Param style of Javadoc in ReactorModelPool is wrong 2020-12-27 01:00:25 +01:00
Michael Osipov 8eda091d4e Replace tabs with proper count of spaces 2020-12-24 19:50:27 +01:00
Michael Osipov 673a7d1fef Trim trailing whitespace 2020-12-24 19:09:10 +01:00
Michael Osipov 8c9c303f9c [MNG-7046] Revert MNG-5639 and make repo config static only
This closes #409
2020-12-24 15:23:59 +01:00
Michael Osipov 7f63daccc7 [MNG-7021] Remove old MHELP backward compat code
This closes #395
2020-12-24 13:40:58 +01:00
Michael Osipov 72a125ef04 [MNG-7022] Remove o.a.m.lifecycle.mapping.Lifecycle optional mojos backward compat code
This closes #396
2020-12-24 00:52:57 +01:00
Christian Schulte d2adab7bf3 [MNG-6054] Remove super POM plugin management section
This closes #410
2020-12-24 00:05:32 +01:00
Maarten Mulders 7e21a521c7 [MNG-4660] Increase usefulness of logging 2020-12-23 16:45:58 +01:00
rfscholte 9f88494b60 [MNG-6957] Versionless reactor dependencies/parent should work even if modules are aggregated in reverse order
This closes #391
2020-12-22 16:30:37 +01:00
Romain Manni-Bucau 2609cdcbc0 [MNG-7045] Drop CDI API from Maven
This closes #408
2020-12-22 09:58:55 +01:00
Martin Kanters d8c2cc7e4a [MNG-6566] Plugins that require a certain phase should not fork goals that are already in the execution plan.
This closes #397
2020-12-15 09:21:16 +01:00
Nicolas Juneau 95ee890837 [MNG-5728] Switch the default checksum policy from "warn" to "fail"
Signed-off-by: rfscholte <rfscholte@apache.org>
Signed-off-by: Michael Osipov <michaelo@apache.org>
2020-12-02 20:49:46 +01:00
Robert Scholte 251ba225c6 Revert "[MNG-5728] Switch the default checksum policy from "warn" to "fail"" 2020-12-02 20:28:04 +01:00
rfscholte 06c3217899 Merge branch 'MNG-5728' of https://gitbox.apache.org/repos/asf/maven 2020-12-02 19:57:23 +01:00
Nicolas Juneau d8ad76b9cb [MNG-5728] Switch the default checksum policy from "warn" to "fail"
Signed-off-by: rfscholte <rfscholte@apache.org>
Signed-off-by: Michael Osipov <michaelo@apache.org>
2020-11-30 21:12:14 +01:00
Michael Osipov b24c34bb23 [MNG-7041] Update @since, version ranges and other version related strings
This closes #404
2020-11-29 11:23:53 +01:00
rfscholte 3736be9c15 Updating version in preparation for Maven 4 2020-11-27 12:22:47 +01:00
Michael Osipov 827224c7c8 [MNG-7019] Notify also at start when profile is missing 2020-11-13 19:49:35 +01:00