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 e6ea7501e7 Be more friendly on 'runSingle' when 'run' task is missing. new 5ec24679f1 Merge pull request #6618 from lkishalmi/gradle-better-handle-runSingle e6ea7501e7 is described below commit e6ea7501e7e2010e4f056df0df90b3d552228815 Author: Laszlo Kishalmi <laszlo.kisha...@gmail.com> AuthorDate: Tue Oct 24 19:28:05 2023 +0200 Be more friendly on 'runSingle' when 'run' task is missing. --- .../gradle/tooling/NetBeansRunSinglePlugin.java | 95 +++++++++++----------- 1 file changed, 47 insertions(+), 48 deletions(-) diff --git a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NetBeansRunSinglePlugin.java b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NetBeansRunSinglePlugin.java index e68d087122..bf2bb72ac9 100644 --- a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NetBeansRunSinglePlugin.java +++ b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NetBeansRunSinglePlugin.java @@ -30,8 +30,8 @@ import org.gradle.api.Project; import org.gradle.api.Task; import org.gradle.api.tasks.JavaExec; import org.gradle.api.tasks.SourceSetContainer; +import org.gradle.api.tasks.TaskProvider; import org.gradle.process.CommandLineArgumentProvider; -import org.gradle.tooling.BuildException; import org.gradle.util.GradleVersion; /** * @@ -47,6 +47,8 @@ class NetBeansRunSinglePlugin implements Plugin<Project> { private static final String RUN_SINGLE_JVM_ARGS = "runJvmArgs"; private static final String RUN_SINGLE_CWD = "runWorkingDir"; + private static final String DEPRECATE_RUN_SINGLE = + "runSingle task is deprecated. Inspect your configuration and use just 'run' task instead of 'runSingle'"; @Override public void apply(Project project) { project.afterEvaluate(p -> { @@ -55,61 +57,58 @@ class NetBeansRunSinglePlugin implements Plugin<Project> { && project.hasProperty(RUN_SINGLE_MAIN)) { Set<Task> runTasks = p.getTasksByName("run", false); Task r = runTasks.isEmpty() ? null : runTasks.iterator().next(); - String mainClass = project.property(RUN_SINGLE_MAIN).toString(); - p.getTasks().withType(JavaExec.class).configureEach(je -> { - if (GRADLE_VERSION.compareTo(GradleVersion.version("6.4")) < 0) { - // Using setMain to keep the backward compatibility before Gradle 6.4 - je.setMain(mainClass); - } else { - je.getMainClass().set(mainClass); - } - if (project.hasProperty(RUN_SINGLE_ARGS)) { - je.setArgs(asList(project.property(RUN_SINGLE_ARGS).toString().split(" "))); - } - if (p.hasProperty(RUN_SINGLE_JVM_ARGS)) { - // Property jvmArgumentProviders should not be implemented as a lambda to allow execution optimizations. - // See https://docs.gradle.org/current/userguide/validation_problems.html#implementation_unknown - je.getJvmArgumentProviders().add(new CommandLineArgumentProvider() { - // Do not convert to lambda. - @Override - public Iterable<String> asArguments() { - return asList(p.property(RUN_SINGLE_JVM_ARGS).toString().split(" ")); - } - }); - } - try { - je.setStandardInput(System.in); - } catch (RuntimeException ex) { - if(LOG.isEnabled(LogLevel.DEBUG)) { - LOG.debug("Failed to set STDIN for Plugin: " + je.toString(), ex); - } else { - LOG.info("Failed to set STDIN for Plugin: " + je.toString()); - } - } - if (project.hasProperty(RUN_SINGLE_CWD)) { - je.setWorkingDir(project.property(RUN_SINGLE_CWD).toString()); - } - }); + p.getTasks().withType(JavaExec.class).configureEach(je -> configureJavaExec(project, je)); addTask(project, r); } }); } - public static class JE extends JavaExec { - @Override - public void exec() { + private void configureJavaExec(Project project, JavaExec je) { + String mainClass = project.property(RUN_SINGLE_MAIN).toString(); + if (GRADLE_VERSION.compareTo(GradleVersion.version("6.4")) < 0) { + // Using setMain to keep the backward compatibility before Gradle 6.4 + je.setMain(mainClass); + } else { + je.getMainClass().set(mainClass); } - } - - private void addTask(Project project, Task runTask) { - project.getTasks().register(RUN_SINGLE_TASK, JE.class, (je) -> { - if (runTask == null) { - throw new BuildException("Could not find \"run\" task to execute. Please upgrade your configuration to use standard run-style tasks instead of deprecated runSingle", null); + if (project.hasProperty(RUN_SINGLE_ARGS)) { + je.setArgs(asList(project.property(RUN_SINGLE_ARGS).toString().split(" "))); + } + if (project.hasProperty(RUN_SINGLE_JVM_ARGS)) { + // Property jvmArgumentProviders should not be implemented as a lambda to allow execution optimizations. + // See https://docs.gradle.org/current/userguide/validation_problems.html#implementation_unknown + je.getJvmArgumentProviders().add(new CommandLineArgumentProvider() { + // Do not convert to lambda. + @Override + public Iterable<String> asArguments() { + return asList(project.property(RUN_SINGLE_JVM_ARGS).toString().split(" ")); + } + }); + } + try { + je.setStandardInput(System.in); + } catch (RuntimeException ex) { + if(LOG.isEnabled(LogLevel.DEBUG)) { + LOG.debug("Failed to set STDIN for Plugin: " + je.toString(), ex); } else { - LOG.warn("runSingle task is deprecated. Inspect your configuration and use just 'run' task instead of 'runSingle'"); - je.finalizedBy(runTask); + LOG.info("Failed to set STDIN for Plugin: " + je.toString()); } - }); + } + if (project.hasProperty(RUN_SINGLE_CWD)) { + je.setWorkingDir(project.property(RUN_SINGLE_CWD).toString()); + } + } + + private void addTask(Project project, Task runTask) { + TaskProvider<? extends DefaultTask> runSingle = runTask == null + ? project.getTasks().register(RUN_SINGLE_TASK, JavaExec.class, (je) -> { + SourceSetContainer sourceSets = project.getExtensions().findByType(SourceSetContainer.class); + je.setClasspath(sourceSets.findByName("main").getRuntimeClasspath()); + configureJavaExec(project, je); + }) + : project.getTasks().register(RUN_SINGLE_TASK, DefaultTask.class, (task) -> task.finalizedBy(runTask)); + + runSingle.configure((task) -> task.doFirst((action) -> project.getLogger().warn(DEPRECATE_RUN_SINGLE))); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists