|
| 1 | +diff --git a/extide/gradle/nbproject/project.properties b/extide/gradle/nbproject/project.properties |
| 2 | +index aa352d0d3fd9..d22871c0a89b 100644 |
| 3 | +--- a/extide/gradle/nbproject/project.properties |
| 4 | ++++ b/extide/gradle/nbproject/project.properties |
| 5 | +@@ -17,8 +17,7 @@ |
| 6 | + |
| 7 | + file.reference.netbeans-gradle-tooling.jar=release/modules/gradle/netbeans-gradle-tooling.jar |
| 8 | + is.autoload=true |
| 9 | +-javac.source=1.8 |
| 10 | +-javac.target=1.8 |
| 11 | ++javac.release=17 |
| 12 | + javac.compilerargs=-Xlint -Xlint:-serial |
| 13 | + javadoc.arch=${basedir}/arch.xml |
| 14 | + javadoc.apichanges=${basedir}/apichanges.xml |
| 15 | +@@ -37,4 +36,9 @@ release.build/tooling/nb-tooling.gradle=modules/gradle/nb-tooling.gradle |
| 16 | + |
| 17 | + extra.module.files=\ |
| 18 | + modules/gradle/netbeans-gradle-tooling.jar,\ |
| 19 | +- modules/gradle/nb-tooling.gradle |
| 20 | +\ No newline at end of file |
| 21 | ++ modules/gradle/nb-tooling.gradle |
| 22 | ++ |
| 23 | ++# These properties are used for compiling the netbeans-gradle-tooling library |
| 24 | ++# It shall be built on the lowest language level that the Gradle integration supports |
| 25 | ++tooling.javac.release=8 |
| 26 | ++tooling.gradle.version=7.4 |
| 27 | +diff --git a/extide/gradle/netbeans-gradle-tooling/build.xml b/extide/gradle/netbeans-gradle-tooling/build.xml |
| 28 | +index 7c994be3b7f3..96f6bbb3f535 100644 |
| 29 | +--- a/extide/gradle/netbeans-gradle-tooling/build.xml |
| 30 | ++++ b/extide/gradle/netbeans-gradle-tooling/build.xml |
| 31 | +@@ -23,7 +23,7 @@ |
| 32 | + <description>Builds, tests, and runs the project org.netbeans.modules.gradle</description> |
| 33 | + |
| 34 | + <property name="tooling" value="netbeans-gradle-tooling"/> |
| 35 | +- <property name="gradle.version" value="7.4" /> |
| 36 | ++ <property file="../nbproject/project.properties"/> |
| 37 | + |
| 38 | + <available property="has.gradle-libs" file="build/gradle-libs" type="dir"/> |
| 39 | + |
| 40 | +@@ -33,16 +33,16 @@ |
| 41 | + |
| 42 | + <target name="prepare-libs" unless="has.gradle-libs"> |
| 43 | + <mkdir dir="build/gradle-libs"/> |
| 44 | +- <unzip src="../external/gradle-${gradle.version}-bin.zip" dest="build/gradle-libs"> |
| 45 | ++ <unzip src="../external/gradle-${tooling.gradle.version}-bin.zip" dest="build/gradle-libs"> |
| 46 | + <patternset> |
| 47 | +- <include name="gradle-${gradle.version}/lib/**/*.jar"/> |
| 48 | ++ <include name="gradle-${tooling.gradle.version}/lib/**/*.jar"/> |
| 49 | + </patternset> |
| 50 | + <mapper type="flatten"/> |
| 51 | + </unzip> |
| 52 | + </target> |
| 53 | + <target name="compile" depends="prepare-libs"> |
| 54 | + <mkdir dir="build/classes/java/main"/> |
| 55 | +- <javac srcdir="src/main/java" destdir="build/classes/java/main" classpathref="compile.classpath" release="8" includeantruntime="false" debug="true"/> |
| 56 | ++ <javac srcdir="src/main/java" destdir="build/classes/java/main" classpathref="compile.classpath" release="${tooling.javac.release}" includeantruntime="false" debug="true"/> |
| 57 | + </target> |
| 58 | + |
| 59 | + <target name="jar" depends="compile"> |
| 60 | +diff --git a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/internal/NbProjectInfo.java b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/internal/NbProjectInfo.java |
| 61 | +index afceb0878207..a5a10170dfa6 100644 |
| 62 | +--- a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/internal/NbProjectInfo.java |
| 63 | ++++ b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/internal/NbProjectInfo.java |
| 64 | +@@ -20,6 +20,7 @@ |
| 65 | + package org.netbeans.modules.gradle.tooling.internal; |
| 66 | + |
| 67 | + import org.netbeans.modules.gradle.tooling.Model; |
| 68 | ++import org.gradle.tooling.BuildAction; |
| 69 | + import java.util.Map; |
| 70 | + import java.util.Set; |
| 71 | + |
| 72 | +@@ -68,4 +69,8 @@ enum Severity { |
| 73 | + public String getDetail(); |
| 74 | + public Report getCause(); |
| 75 | + } |
| 76 | ++ |
| 77 | ++ public static BuildAction<NbProjectInfo> createAction() { |
| 78 | ++ return new NbProjectInfoAction(); |
| 79 | ++ } |
| 80 | + } |
| 81 | +diff --git a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/internal/NbProjectInfoAction.java b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/internal/NbProjectInfoAction.java |
| 82 | +new file mode 100644 |
| 83 | +index 000000000000..e6de7fc029a3 |
| 84 | +--- /dev/null |
| 85 | ++++ b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/internal/NbProjectInfoAction.java |
| 86 | +@@ -0,0 +1,35 @@ |
| 87 | ++/* |
| 88 | ++ * Licensed to the Apache Software Foundation (ASF) under one |
| 89 | ++ * or more contributor license agreements. See the NOTICE file |
| 90 | ++ * distributed with this work for additional information |
| 91 | ++ * regarding copyright ownership. The ASF licenses this file |
| 92 | ++ * to you under the Apache License, Version 2.0 (the |
| 93 | ++ * "License"); you may not use this file except in compliance |
| 94 | ++ * with the License. You may obtain a copy of the License at |
| 95 | ++ * |
| 96 | ++ * http://www.apache.org/licenses/LICENSE-2.0 |
| 97 | ++ * |
| 98 | ++ * Unless required by applicable law or agreed to in writing, |
| 99 | ++ * software distributed under the License is distributed on an |
| 100 | ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| 101 | ++ * KIND, either express or implied. See the License for the |
| 102 | ++ * specific language governing permissions and limitations |
| 103 | ++ * under the License. |
| 104 | ++ */ |
| 105 | ++package org.netbeans.modules.gradle.tooling.internal; |
| 106 | ++ |
| 107 | ++import java.io.Serializable; |
| 108 | ++import org.gradle.tooling.BuildAction; |
| 109 | ++import org.gradle.tooling.BuildController; |
| 110 | ++ |
| 111 | ++/** |
| 112 | ++ * |
| 113 | ++ * @author lkishalmi |
| 114 | ++ */ |
| 115 | ++class NbProjectInfoAction implements Serializable, BuildAction<NbProjectInfo>{ |
| 116 | ++ |
| 117 | ++ @Override |
| 118 | ++ public NbProjectInfo execute(BuildController bc) { |
| 119 | ++ return bc.getModel(NbProjectInfo.class); |
| 120 | ++ } |
| 121 | ++} |
| 122 | +diff --git a/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java b/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java |
| 123 | +index 518aab7bd6b4..7fdfb72b129f 100644 |
| 124 | +--- a/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java |
| 125 | ++++ b/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java |
| 126 | +@@ -481,7 +481,7 @@ private static GradleReport createReport(File p, Throwable e, boolean top, boole |
| 127 | + } |
| 128 | + |
| 129 | + private static BuildActionExecuter<NbProjectInfo> createInfoAction(ProjectConnection pconn, GradleCommandLine cmd, CancellationToken token, ProgressListener pl) { |
| 130 | +- BuildActionExecuter<NbProjectInfo> ret = pconn.action(new NbProjectInfoAction()); |
| 131 | ++ BuildActionExecuter<NbProjectInfo> ret = pconn.action(NbProjectInfo.createAction()); |
| 132 | + cmd.configure(ret); |
| 133 | + if (DEBUG_GRADLE_INFO_ACTION) { |
| 134 | + // This would start the Gradle Daemon in Debug Mode, so the Tooling API can be debugged as well |
| 135 | +@@ -652,14 +652,6 @@ public void run() { |
| 136 | + } |
| 137 | + } |
| 138 | + |
| 139 | +- private static class NbProjectInfoAction implements Serializable, BuildAction<NbProjectInfo> { |
| 140 | +- |
| 141 | +- @Override |
| 142 | +- public NbProjectInfo execute(BuildController bc) { |
| 143 | +- return bc.getModel(NbProjectInfo.class); |
| 144 | +- } |
| 145 | +- } |
| 146 | +- |
| 147 | + private static class ProjectLoaderTask implements Callable<GradleProject>, Cancellable { |
| 148 | + |
| 149 | + private final ReloadContext ctx; |
| 150 | +diff --git a/extide/gradle/src/org/netbeans/modules/gradle/newproject/GradleInitPanelVisual.java b/extide/gradle/src/org/netbeans/modules/gradle/newproject/GradleInitPanelVisual.java |
| 151 | +index 61e9a964a11b..af9a859de853 100644 |
| 152 | +--- a/extide/gradle/src/org/netbeans/modules/gradle/newproject/GradleInitPanelVisual.java |
| 153 | ++++ b/extide/gradle/src/org/netbeans/modules/gradle/newproject/GradleInitPanelVisual.java |
| 154 | +@@ -228,7 +228,7 @@ void read(WizardDescriptor settings) { |
| 155 | + |
| 156 | + if (settings.getProperty(PROP_JAVA_VERSIONS) != null) { |
| 157 | + List<Integer> javaVersions = (List<Integer>) settings.getProperty(PROP_JAVA_VERSIONS); |
| 158 | +- DefaultComboBoxModel<Integer> versionModel = new DefaultComboBoxModel<>(javaVersions.toArray(new Integer[0])); |
| 159 | ++ DefaultComboBoxModel<Integer> versionModel = new DefaultComboBoxModel<>(javaVersions.toArray(Integer[]::new)); |
| 160 | + cbJavaVersion.setModel(versionModel); |
| 161 | + |
| 162 | + if (settings.getProperty(PROP_JAVA_VERSION) != null) { |
| 163 | +@@ -241,7 +241,7 @@ void read(WizardDescriptor settings) { |
| 164 | + |
| 165 | + if (settings.getProperty(PROP_TEST_FRAMEWORKS) != null) { |
| 166 | + List<TestFramework> testframeworks = (List<TestFramework>) settings.getProperty(PROP_TEST_FRAMEWORKS); |
| 167 | +- DefaultComboBoxModel<TestFramework> frameworkModel = new DefaultComboBoxModel<>(testframeworks.toArray(new TestFramework[0])); |
| 168 | ++ DefaultComboBoxModel<TestFramework> frameworkModel = new DefaultComboBoxModel<>(testframeworks.toArray(TestFramework[]::new)); |
| 169 | + cbTestFramework.setModel(frameworkModel); |
| 170 | + if (settings.getProperty(PROP_TEST_FRAMEWORK) != null) { |
| 171 | + cbTestFramework.setSelectedItem(settings.getProperty(PROP_TEST_FRAMEWORK)); |
| 172 | +diff --git a/extide/gradle/src/org/netbeans/modules/gradle/output/GradleProcessorFactory.java b/extide/gradle/src/org/netbeans/modules/gradle/output/GradleProcessorFactory.java |
| 173 | +index fd528f433bbb..d61325d77c47 100644 |
| 174 | +--- a/extide/gradle/src/org/netbeans/modules/gradle/output/GradleProcessorFactory.java |
| 175 | ++++ b/extide/gradle/src/org/netbeans/modules/gradle/output/GradleProcessorFactory.java |
| 176 | +@@ -59,12 +59,12 @@ public class GradleProcessorFactory implements OutputProcessorFactory { |
| 177 | + |
| 178 | + @Override |
| 179 | + public Set<? extends OutputProcessor> createOutputProcessors(RunConfig cfg) { |
| 180 | +- return Collections.unmodifiableSet(new HashSet<>(Arrays.asList( |
| 181 | ++ return Set.of( |
| 182 | + GRADLE_PROCESSOR, |
| 183 | + JAVAC_PROCESSOR, |
| 184 | + GROOVYC_PROCESSOR, |
| 185 | + new WarningModeAllProcessor(cfg) |
| 186 | +- ))); |
| 187 | ++ ); |
| 188 | + } |
| 189 | + |
| 190 | + private static final Pattern GRADLE_ERROR = Pattern.compile("(Build file|Script) '(.*)\\.gradle' line: ([0-9]+)"); |
| 191 | +diff --git a/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/GradleInitWizard.java b/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/GradleInitWizard.java |
| 192 | +index 56fdfe17e459..15b861ecbbfa 100644 |
| 193 | +--- a/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/GradleInitWizard.java |
| 194 | ++++ b/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/GradleInitWizard.java |
| 195 | +@@ -19,10 +19,8 @@ |
| 196 | + package org.netbeans.modules.gradle.spi.newproject; |
| 197 | + |
| 198 | + import java.io.File; |
| 199 | +-import java.util.Collections; |
| 200 | + import java.util.List; |
| 201 | + import java.util.Map; |
| 202 | +-import java.util.stream.Collectors; |
| 203 | + import org.netbeans.modules.gradle.newproject.GradleInitPanel; |
| 204 | + import org.netbeans.spi.project.ui.support.CommonProjectActions; |
| 205 | + import org.openide.WizardDescriptor; |
| 206 | +@@ -51,11 +49,10 @@ public enum GradleDSL { |
| 207 | + |
| 208 | + @Override |
| 209 | + public String toString() { |
| 210 | +- switch(this) { |
| 211 | +- case GROOVY: return Bundle.LBL_DSL_GROOVY(); |
| 212 | +- case KOTLIN: return Bundle.LBL_DSL_KOTLIN(); |
| 213 | +- default: throw new IllegalStateException("update switch"); |
| 214 | +- } |
| 215 | ++ return switch(this) { |
| 216 | ++ case GROOVY -> Bundle.LBL_DSL_GROOVY(); |
| 217 | ++ case KOTLIN -> Bundle.LBL_DSL_KOTLIN(); |
| 218 | ++ }; |
| 219 | + } |
| 220 | + } |
| 221 | + |
| 222 | +@@ -91,17 +88,16 @@ public String getId() { |
| 223 | + |
| 224 | + @Override |
| 225 | + public String toString() { |
| 226 | +- switch(this) { |
| 227 | +- case CPP_TEST: return Bundle.LBL_TFW_CPP_TEST(); |
| 228 | +- case JUNIT: return Bundle.LBL_TFW_JUNIT(); |
| 229 | +- case JUNIT_5: return Bundle.LBL_TFW_JUNIT_5(); |
| 230 | +- case KOTLIN_TEST: return Bundle.LBL_TFW_KOTLIN_TEST(); |
| 231 | +- case SCALA_TEST: return Bundle.LBL_TFW_SCALA_TEST(); |
| 232 | +- case SPOCK: return Bundle.LBL_TFW_SPOCK(); |
| 233 | +- case TESTNG: return Bundle.LBL_TFW_TESTNG(); |
| 234 | +- case XCTEST: return Bundle.LBL_TFW_XCTEST(); |
| 235 | +- default: throw new IllegalStateException("update switch"); |
| 236 | +- } |
| 237 | ++ return switch(this) { |
| 238 | ++ case CPP_TEST -> Bundle.LBL_TFW_CPP_TEST(); |
| 239 | ++ case JUNIT -> Bundle.LBL_TFW_JUNIT(); |
| 240 | ++ case JUNIT_5 -> Bundle.LBL_TFW_JUNIT_5(); |
| 241 | ++ case KOTLIN_TEST -> Bundle.LBL_TFW_KOTLIN_TEST(); |
| 242 | ++ case SCALA_TEST -> Bundle.LBL_TFW_SCALA_TEST(); |
| 243 | ++ case SPOCK -> Bundle.LBL_TFW_SPOCK(); |
| 244 | ++ case TESTNG -> Bundle.LBL_TFW_TESTNG(); |
| 245 | ++ case XCTEST-> Bundle.LBL_TFW_XCTEST(); |
| 246 | ++ }; |
| 247 | + } |
| 248 | + } |
| 249 | + |
| 250 | +@@ -112,7 +108,7 @@ public String toString() { |
| 251 | + private TestFramework preferredTestFramework; |
| 252 | + private List<Integer> javaVersions; |
| 253 | + private List<TestFramework> testFrameworks; |
| 254 | +- private List<String> important = Collections.emptyList(); |
| 255 | ++ private List<String> important = List.of(); |
| 256 | + |
| 257 | + private GradleInitWizard(String type, String title) { |
| 258 | + this.type = type; |
| 259 | +@@ -215,14 +211,14 @@ protected void collectOperations(TemplateOperation ops, Map<String, Object> para |
| 260 | + List<String> open = important.stream() |
| 261 | + .map((s) -> packageBase != null ? s.replace("${package}", packageBase.replace('.', '/')) : s) //NOI18N |
| 262 | + .map((s) -> s.replace("${projectName}", name)) //NOI18N |
| 263 | +- .collect(Collectors.toList()); |
| 264 | ++ .toList(); |
| 265 | + ops.addProjectPreload(root, open); |
| 266 | + } |
| 267 | + |
| 268 | + |
| 269 | + @Override |
| 270 | + protected List<? extends WizardDescriptor.Panel<WizardDescriptor>> createPanels() { |
| 271 | +- return Collections.singletonList(new GradleInitPanel()); |
| 272 | ++ return List.of(new GradleInitPanel()); |
| 273 | + } |
| 274 | + |
| 275 | + @Override |
| 276 | +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 |
| 277 | +index 8eeadadc7121..32832f8f5fcb 100644 |
| 278 | +--- a/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/TemplateOperation.java |
| 279 | ++++ b/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/TemplateOperation.java |
| 280 | +@@ -479,7 +479,7 @@ public final Set<FileObject> execute() { |
| 281 | + } catch (IOException ex) { |
| 282 | + } |
| 283 | + } |
| 284 | +- return Collections.<FileObject>emptySet(); |
| 285 | ++ return Set.of(); |
| 286 | + } |
| 287 | + |
| 288 | + } |
| 289 | +@@ -489,7 +489,7 @@ private static final class PreloadProject extends BaseOperationStep { |
| 290 | + final List<String> importantFiles; |
| 291 | + |
| 292 | + public PreloadProject(File dir) { |
| 293 | +- this(dir, Collections.emptyList()); |
| 294 | ++ this(dir, List.of()); |
| 295 | + } |
| 296 | + |
| 297 | + public PreloadProject(File dir, List<String> importantFiles) { |
| 298 | +@@ -643,7 +643,7 @@ public Set<FileObject> execute() { |
| 299 | + } catch (IOException | ScriptException ex) { |
| 300 | + throw new IOException(ex.getMessage(), ex); |
| 301 | + } |
| 302 | +- return important ? Collections.singleton(fo) : null; |
| 303 | ++ return important ? Set.of(fo) : null; |
| 304 | + } catch (IOException ex) {} |
| 305 | + } catch (IOException ex) {} |
| 306 | + return null; |
| 307 | +@@ -680,7 +680,7 @@ public Set<FileObject> execute() { |
| 308 | + DataFolder targetFolder = DataFolder.findFolder(targetParent); |
| 309 | + DataObject o = DataObject.find(template); |
| 310 | + DataObject newData = o.createFromTemplate(targetFolder, targetName, tokens); |
| 311 | +- return important ? Collections.singleton(newData.getPrimaryFile()) : null; |
| 312 | ++ return important ? Set.of(newData.getPrimaryFile()) : null; |
| 313 | + } catch (IOException ex) { |
| 314 | + |
| 315 | + } |
0 commit comments