Commit Graph

232 Commits

Author SHA1 Message Date
Guillaume Nodet
95b40a3d8a Provide distributions for both maven 3.9.x and 4.0.x (#796) 2023-03-08 00:03:49 +01:00
Petr Široký
1f99fb8cb7 Run client connection handler inside new thread, fixes #798 (#801)
* Run client connection handler inside new thread, fixes #798
* Execute CI build on ubuntu-22.04
 * ubuntu-18.04 image is now deprecated and there are brownout periods
   being introduced where the builds are failing
 * see https://github.com/actions/runner-images/issues/6002 for more
   details
2023-03-07 14:16:04 +01:00
Stefan Oehme
0b55c8f3e6 Add property to disable model caching
This is mostly for the integration tests of the Gradle Enterprise Maven extension,
which heavily test dependency resolution and reuse the same GAVs in many test,
e.g. a:b:1.0. It would be a lot of effort to rewrite all those tests and a shame
to restart the daemon every time. So I wanted to ask if you'd consider this flag
to disable the caching altogether.
2023-03-02 22:42:36 +01:00
Stefan Oehme
1bcfc29d45 Make Classworld setup more alike to vanilla Maven (#784)
Use the plexus Launcher to start the daemon server, just like we would
launch a normal Maven process.

This improves compatibility with any extensions or plugins that assume that
their ClassLoader is a ClassRealm.
2023-02-14 17:06:34 +01:00
Guillaume Nodet
ddc8ef9a10 Remove duplicate header 2023-02-14 16:53:05 +01:00
Guillaume Nodet
9d9f9c62f2 Workaround for MNG-7673 2023-01-28 02:11:14 +01:00
Guillaume Nodet
bf892cd1bf Upgrade to maven 4.0.0-m4 and resolver 1.9.4 2023-01-28 00:07:56 +01:00
Stefan Oehme
74df4b6b53 Fix core export provider (#764)
* Fix core export provider

Since https://github.com/apache/maven/pull/616, the default
CoreExportProvider no longer uses the provided CoreExports,
but instead tries (and fails) to discover them itself.

This change fixes that by providing our own custom instance
of CoreExportProvider. This allows core extension to contribute
exported artifacts and exported packages again, like it used to
do before the Maven 4.x upgrade.

* Add integration tests for API-providing extensions
2023-01-17 11:18:22 +01:00
Guillaume Nodet
f3c336adb9 Fix spotless config to include all java files (#768) 2023-01-10 18:39:29 +01:00
Guillaume Nodet
417ed7ec8b Fix performance problem with mvnd (fixes #758, #760) 2022-12-23 10:22:59 +01:00
Guillaume Nodet
89841adbcb Upgrade to maven parent 39 and reformat accordingly 2022-12-16 11:38:47 +01:00
Guillaume Nodet
55236739f8 Add a mvnd.rawStreams property (#719) 2022-12-16 11:33:59 +01:00
Guillaume Nodet
39ee2b6014 Move signal handling into its own class (#754)
This opens some room to per-jdk implementation
2022-12-16 11:11:04 +01:00
Tamas Cservenak
92cbc7d6cf Update Maven to 4.0.0-alpha-3 and Maven Resolver to 1.9.2 (#742)
https://issues.apache.org/jira/browse/MNG-7586

* Remove CliMavenPluginManager which has the changed needed in alpha-3
* Align slf4j api with maven
* Make sure the invoker being called from IT reuses the settings from the invoker running the IT
* Fix IT when mrm is disabled
* Fix InvalidingPluginRealmCache

Co-authored-by: Guillaume Nodet <gnodet@gmail.com>
2022-12-15 19:26:58 +01:00
James Z.M. Gao
f8d047bdae Use muti-release jar to fallback mvnd-client to original maven (#722)
* Use muti-release jar to fallback mvnd-client to original maven

The mvnd-client is built to a muti-release jar. The default version of
    DefaultClient is compiled against the same target version as the
   embedded maven (4.x, so JDK 1.8) which only invoke the MavenCli.main(). 
The java-11 version is the full qualified mvnd-client.

* update cmd scripts

* embedded maven now works under JDK 1.8

Build SimpleAppender for JDK 1.8 since it is the log appender only
   for the embedded maven

Co-authored-by: Guillaume Nodet <gnodet@gmail.com>
2022-12-14 17:41:02 +01:00
Guillaume Nodet
2b8076d1ed Support redirecting input from client to daemon, #541 (#581)
The implementation currently switches on the redirection when the daemon actually starts reading the System.in stream using InputStream.read() or InputStream.available().
2022-12-13 23:59:35 +01:00
Guillaume Nodet
2a8d18d119 Display plugin's goal prefix and version instead of artifactId (#748)
* Display plugin's goal prefix and version instead of artifactId
* Default to groupId:artifactId if goalPrefix is not present
2022-12-13 23:58:58 +01:00
Guillaume Nodet
25b5117749 Clean up some warnings during the build (#750) 2022-12-13 23:00:11 +01:00
Stefan Oehme
eedcb77e3c Reset system properties after calling event syps (#729)
Event spies may want to read system properties, which will fail if they are reset
too early. This change makes the behavior consistent with regular Maven.
2022-12-07 18:05:50 +01:00
Guillaume Nodet
d1d3cb0f65 Fix possible NullPointerException 2022-11-23 10:16:27 +01:00
Guillaume Nodet
a14a1eb80f Reformat 2022-11-22 15:44:53 +01:00
Guillaume Nodet
895381b43f Switch to maven 4.0.0-alpha-2 (#718) 2022-11-19 16:56:26 +01:00
Guillaume Nodet
48ca793014 Fix duplicate space in doc 2022-10-03 21:08:57 +02:00
Guillaume Nodet
192affadc6 Fix maven extensions' parent classloader (fixes #690) (#702) 2022-10-03 15:19:50 +02:00
Guillaume Nodet
8c9d1673de SimpleAppender omits stacktraces (fixes #696) (#700) 2022-10-03 11:25:10 +02:00
Guillaume Nodet
378a776166 Fix plugins' parent classloader to not include libraries, fixes #681 (#683) 2022-09-08 06:15:13 +02:00
Tamas Cservenak
53751d2069 Drop Maven dupe classes (#633)
That has been fixed in Maven version used by mvnd.
Last bit is MavenCli/DaemonCli that is currently
"almost" a copy, but they do not share any code.
2022-05-03 17:53:30 +02:00
Stephan Schroevers
0288988d63 Replace github.com/mvndaemon/mvnd references (#622)
As the repository is now hosted under `github.com/apache/maven-mvnd`.
2022-04-28 09:43:19 +02:00
Tamas Cservenak
d2365ee166 Mvnd with file locking (#508)
* Update mvnd to include Maven Resolver 1.7

As mvnd itself is Java8 lang level, it is completely
okay to up resolver to 1.7 (that is java8 as well).
The only reason why Maven 3.8.x CANNOT use resolver
1.7 is that it is still Java7 level.

* Move missing piece to SPI

* Add global exclusions

* Example of mvnd using file locking (of resolver)

* Drop irrelevant

* Upgrade to released 1.7.3

Co-authored-by: Guillaume Nodet <gnodet@gmail.com>
2022-04-11 13:29:42 +02:00
Guillaume Nodet
3b100839a8 Fix mvn/bin/mvn debug output (#606) 2022-03-05 09:03:14 +01:00
Guillaume Nodet
4755734708 Avoid caching parent with a version containing a property, fixes #594 (#602) 2022-03-03 13:22:27 +01:00
Guillaume Nodet
62d580b930 Daemon reuse ignores differences in .mvn/jvm.config, fixes #576 (#580) 2022-01-13 10:01:33 +01:00
Guillaume Nodet
8ae2ce3525 Remove wrong MavenProject, #561 (#566) 2022-01-11 08:14:31 +01:00
Guillaume Nodet
4c99b52e03 Make sure the maven.home and maven.conf properties are correctly set when the JVM is started, fixes #553 2022-01-11 08:12:18 +01:00
Guillaume Nodet
b3a55333a8 Fix NoSuchFileException when using the compile phase, fixes #564 2022-01-07 11:46:54 +01:00
Guillaume Nodet
9f651b1196 Improve setEnv logic, fixes #528 (#535) 2022-01-03 08:31:09 +01:00
Guillaume Nodet
06fa4fd227 Fix url cache (fixes #532 and #527) 2022-01-03 08:30:41 +01:00
Guillaume Nodet
4bb5c5d5b5 Fix resident extensions (#531) 2021-12-14 18:20:34 +01:00
Guillaume Nodet
588e87993d Replace the locking spy with locking in the MojoExecutor (#523)
This is a port of https://github.com/apache/maven/pull/628 to mvnd and it should go away when we upgrade to maven 3.8.4 which should include the fix
2021-12-06 18:00:33 +01:00
Tamas Cservenak
807409d507 Update mvnd to include Maven Resolver 1.7 (#507)
As mvnd itself is Java8 lang level, it is completely
okay to up resolver to 1.7 (that is java8 as well).
The only reason why Maven 3.8.x CANNOT use resolver
1.7 is that it is still Java7 level.
2021-11-26 17:34:10 +01:00
Guillaume Nodet
9b1dc66320 Code formatting 2021-10-20 18:11:57 +02:00
Guillaume Nodet
69c975fcd0 Provide a local (semaphore based) sync context and use it as the default (#480)
* Provide a local (semaphore based) sync context and use it as the default
* Use a ReentrantLock
* Update daemon/src/main/java/org/mvndaemon/mvnd/sync/MvndSyncContextFactory.java
Co-authored-by: Peter Palaga <ppalaga@redhat.com>
* Improve lock acquisition
Co-authored-by: Peter Palaga <ppalaga@redhat.com>
2021-10-20 10:23:13 +02:00
Guillaume Nodet
0a77ed06ba Fix path computation on cygwin, fixes #499 2021-10-20 08:30:17 +02:00
Guillaume Nodet
dae96da65e Negative local Maven repo lookup persists after installing the artifact, fixes #482 2021-10-07 05:09:13 +02:00
Guillaume Nodet
2aa5de2371 Support Maven 3.8.3, fixes #488 (#493) 2021-10-06 15:19:12 +02:00
Guillaume Nodet
a02286fc15 Reformat 2021-10-06 13:59:26 +02:00
Guillaume Nodet
8697cd6151 Add missing value in message ordering, fixes #486 2021-10-04 15:22:38 +02:00
Guillaume Nodet
93406a8ec4 Make sure the plugin eviction pattern also applies to extensions 2021-09-14 15:01:40 +02:00
Guillaume Nodet
58db967056 Align with maven PR 2021-09-14 14:57:54 +02:00
Guillaume Nodet
da714c98ac Speed improvement (MNG-7235) 2021-09-07 16:27:43 +02:00