This is an automated email from the ASF dual-hosted git repository.

neilcsmith pushed a commit to branch delivery
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/delivery by this push:
     new 9a3513fc2e Run gradle wrapper init with version latest to skip using a 
Gradle release candidate.
     new 69b65896f4 Merge pull request #6333 from 
neilcsmith-net/gradle-wrapper-latest
9a3513fc2e is described below

commit 9a3513fc2e1634cb4f28a6977a44b88161a41340
Author: Neil C Smith <[email protected]>
AuthorDate: Sat Aug 12 14:53:37 2023 +0100

    Run gradle wrapper init with version latest to skip using a Gradle release 
candidate.
    
    Fix typo in Gradle project problems message.
    
    Document the API changes.
---
 extide/gradle/apichanges.xml                       | 15 ++++++++++
 .../gradle/GradleJavaCompatProblemsProvider.java   |  2 +-
 .../gradle/spi/newproject/TemplateOperation.java   | 35 ++++++++++++++++++++--
 .../newproject/SimpleApplicationProjectWizard.java |  5 +++-
 4 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/extide/gradle/apichanges.xml b/extide/gradle/apichanges.xml
index 04f5dd0ce7..219ebd3c0b 100644
--- a/extide/gradle/apichanges.xml
+++ b/extide/gradle/apichanges.xml
@@ -83,6 +83,21 @@ is the proper place.
     <!-- ACTUAL CHANGES BEGIN HERE: -->
 
     <changes>
+        <change id="gradle-wrapper-version">
+            <api name="general"/>
+            <summary>Method to set the Gradle version when initalizing the 
wrapper</summary>
+            <version major="2" minor="34"/>
+            <date day="14" month="8" year="2023"/>
+            <author login="neilcsmith"/>
+            <compatibility semantic="compatible" addition="yes"/>
+            <description>
+                <p>
+                Added additional <a 
href="@TOP@/org/netbeans/modules/gradle/spi/newproject/TemplateOperation.html#addWrapperInit-java.io.File-java.lang.String-">addWrapperInit</a>
+                method allowing to request a specific version or version label 
when initializing the Gradle wrapper.
+                </p>
+            </description>
+            <class package="org.netbeans.modules.gradle.spi.newproject" 
name="TemplateOperation"/>
+        </change>
         <change id="java-runtime-manager">
             <api name="general"/>
             <summary>Adding JavaRuntimeManager abstracting the Gradle Runtime 
from Java Platform</summary>
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/GradleJavaCompatProblemsProvider.java
 
b/extide/gradle/src/org/netbeans/modules/gradle/GradleJavaCompatProblemsProvider.java
index b1108a875b..98fe3addd2 100644
--- 
a/extide/gradle/src/org/netbeans/modules/gradle/GradleJavaCompatProblemsProvider.java
+++ 
b/extide/gradle/src/org/netbeans/modules/gradle/GradleJavaCompatProblemsProvider.java
@@ -77,7 +77,7 @@ public final class GradleJavaCompatProblemsProvider 
implements ProjectProblemsPr
         "# {1} - Supported Java Version",
         "# {2} - Required Gradle Version",
         "# {3} - Forced Gradle Version",
-        "TXT_JavaVersionMismatch=<html>The Java version: {0}, that is seletced 
for the project "
+        "TXT_JavaVersionMismatch=<html>The Java version: {0}, that is selected 
for the project "
                 + "is not supported by Gradle {2}."
                 + "The IDE will attempt to use Gradle {3} to gather the 
project information.<p>"
                 + "Possible solutions:"
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/TemplateOperation.java
 
b/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/TemplateOperation.java
index 7fdc1dd378..b8afbfbb41 100644
--- 
a/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/TemplateOperation.java
+++ 
b/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/TemplateOperation.java
@@ -149,8 +149,29 @@ public final class TemplateOperation implements Runnable {
         steps.add(new ConfigureProjectStep(projectDir, configurator));
     }
 
+    /**
+     * Initialize the Gradle wrapper in the target project. Equivalent to
+     * executing <code>gradle wrapper</code>.
+     *
+     * @param target project directory
+     */
     public void addWrapperInit(File target) {
-        steps.add(new InitGradleWrapper(target));
+        steps.add(new InitGradleWrapper(target, null));
+    }
+
+    /**
+     * Initialize the Gradle wrapper in the target project with the requested
+     * version of Gradle. Equivalent to executing
+     * <code>gradle wrapper --gradle-version $version</code>. The version may 
be
+     * the specific Gradle version required, or one of the labels supported by
+     * the wrapper task, eg. <code>latest</code>.
+     *
+     * @param target project directory
+     * @param version Gradle version or version label
+     * @since 2.34
+     */
+    public void addWrapperInit(File target, String version) {
+        steps.add(new InitGradleWrapper(target, version));
     }
 
     /** *  Begin creation of new project using Gradle's 
@@ -443,9 +464,11 @@ public final class TemplateOperation implements Runnable {
     private static final class InitGradleWrapper extends BaseOperationStep {
 
         final File projectDir;
+        final String version;
 
-        public InitGradleWrapper(File projectDir) {
+        public InitGradleWrapper(File projectDir, String version) {
             this.projectDir = projectDir;
+            this.version = version;
         }
 
         @Override
@@ -458,7 +481,13 @@ public final class TemplateOperation implements Runnable {
         public Set<FileObject> execute() {
             GradleConnector gconn = GradleConnector.newConnector();
             try (ProjectConnection pconn = 
gconn.forProjectDirectory(projectDir).connect()) {
-                
pconn.newBuild().withArguments("--offline").forTasks("wrapper").run(); //NOI18N
+                List<String> args = new ArrayList<>();
+                args.add("wrapper"); //NOI18N
+                if (version != null) {
+                    args.add("--gradle-version"); //NOI18N
+                    args.add(version);
+                }
+                
pconn.newBuild().withArguments("--offline").forTasks(args.toArray(new 
String[0])).run(); //NOI18N
             } catch (GradleConnectionException | IllegalStateException ex) {
                 // Well for some reason we were  not able to load Gradle.
                 // Ignoring that for now
diff --git 
a/java/gradle.java/src/org/netbeans/modules/gradle/java/newproject/SimpleApplicationProjectWizard.java
 
b/java/gradle.java/src/org/netbeans/modules/gradle/java/newproject/SimpleApplicationProjectWizard.java
index f5ba6d5c55..33235fc27c 100644
--- 
a/java/gradle.java/src/org/netbeans/modules/gradle/java/newproject/SimpleApplicationProjectWizard.java
+++ 
b/java/gradle.java/src/org/netbeans/modules/gradle/java/newproject/SimpleApplicationProjectWizard.java
@@ -71,7 +71,10 @@ public class SimpleApplicationProjectWizard extends 
BaseGradleWizardIterator {
 
         Boolean initWrapper = (Boolean) params.get(PROP_INIT_WRAPPER);
         if (initWrapper == null || initWrapper) {
-            ops.addWrapperInit(root);
+            // @TODO allow configuration of wrapper version
+            ops.addWrapperInit(root, "latest"); // NOI18N
+        } else {
+            // @TODO delete wrapper added by init?
         }
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to