<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/39eedf9401a12944cc6f00208f32967a24ea83f7">https://github.com/macports/macports-ports/commit/39eedf9401a12944cc6f00208f32967a24ea83f7</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 39eedf9401a mvnd: new submission
</span>39eedf9401a is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 39eedf9401a12944cc6f00208f32967a24ea83f7
</span>Author: Nils Breunese <nils@breun.nl>
AuthorDate: Wed Sep 8 23:30:11 2021 +0200

<span style='display:block; white-space:pre;color:#404040;'>    mvnd: new submission
</span>---
 java/mvnd/Portfile | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/java/mvnd/Portfile b/java/mvnd/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..dee3f8c15da
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/java/mvnd/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,83 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem      1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup       github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup       java 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup    mvndaemon mvnd 0.6.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision        0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name            mvnd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories      java
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms       darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers     {breun.nl:nils @breun} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license         Apache-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description     mvnd aims at providing faster Maven builds using techniques known from Gradle and Takari.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description mvnd aims at providing faster Maven builds using techniques known from Gradle and Takari.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                \n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                \n* mvnd embeds Maven (so there is no need to install Maven separately).\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                \n* The actual builds happen inside a long living background process, a.k.a. daemon.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                \n* One daemon instance can serve multiple consecutive requests from the mvnd client.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                \n* The mvnd client is a native executable built using GraalVM.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                It starts faster and uses less memory compared to starting a traditional JVM.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                \n* Multiple daemons can be spawned in parallel if there is no idle daemon to serve a build request.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                \n* The JVM for running the actual builds does not need to get started anew for each build.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                \n* The classloaders holding classes of Maven plugins are cached over multiple builds.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                The plugin jars are thus read and parsed just once. SNAPSHOT versions of Maven plugins are not cached.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                \n* The native code produced by the Just-In-Time (JIT) compiler inside the JVM is kept too.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                Compared to stock Maven, less time is spent by the JIT compilation.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                During the repeated builds the JIT-optimized code is available immediately.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                This applies not only to the code coming from Maven plugins and Maven Core,\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                but also to all code coming from the JDK itself.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from releases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname        ${name}-${version}-darwin-amd64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums       rmd160  db88edf9e65012e79de6db5dfdf4bb0338247015 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                sha256  7547bc5e1eff17f38b818813723ee25ceef07fe868bbabafdcea9e8fe1513613 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                size    31840173
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_zip         yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_configure   no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${configure.build_arch} eq "x86_64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # mvnd native client is used on x86_64 systems, which doesn't need a separate JDK to run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Only requires a JDK to compile Maven projects
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    java.version    1.7+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    java.fallback   openjdk11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # mvnd JVM client is used on non-x86_64 systems, which requires Java 11 to run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    java.version    11+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    java.fallback   openjdk11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set target ${prefix}/share/java/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set dest_target ${destroot}${target}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Create the target directory in the destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 755 -d ${dest_target}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Copy files into destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach f [glob -directory ${worksrcpath} *] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        copy ${f} ${dest_target}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Remove files that are not needed on macOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    delete ${dest_target}/bin/mvnd.cmd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Create launch script
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set launch_script [open ${destroot}${prefix}/bin/mvnd w 0755]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts $launch_script "#!/usr/bin/env bash"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${configure.build_arch} eq "x86_64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Use mvnd native client
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        puts $launch_script "${target}/bin/mvnd $@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Use mvnd JVM client
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        puts $launch_script "${target}/bin/mvnd.sh $@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    close $launch_script
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span></pre><pre style='margin:0'>

</pre>