You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by lk...@apache.org on 2022/12/15 00:19:35 UTC

[netbeans] branch release160 updated (321935444b -> 6c11e077a6)

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

lkishalmi pushed a change to branch release160
in repository https://gitbox.apache.org/repos/asf/netbeans.git


    from 321935444b Merge pull request #4937 from apache/delivery
     new df9ce551fb Fixed some Gradle introspection problems wit pre-6.1 Gradle Versions
     new 182ca8590f Fix #5015: Fix Gradle/broken task dependency and serialization (#5022)
     new 367ae9dea0 #4965: Fix issues with gradle pre-6.4 (#4995)
     new 435e86ad7b [#4865] Register JDPA and Java Compiler Output on Project level
     new c729a4f1b6 Made Gradle JavaCompilerProcessorFactory work in absence of a ClasspathProvider
     new c7b7d4a09f Use Project Dictated JVM for Gradle Discovery (#4985)
     new 4a37b3625a Make Java Platform available on non-java Gradle Projects
     new 6c11e077a6 Upgrade version numbers for the affected modules

The 8 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 extide/gradle/manifest.mf                          |   2 +-
 .../gradle/tooling/GradleInternalAdapter.java      |   4 +-
 .../gradle/tooling/NbProjectInfoBuilder.java       | 118 ++++++++++++---------
 .../gradle/GradleJavaCompatProblemsProvider.java   |  90 +++++++++++++---
 .../modules/gradle/GradleProjectConnection.java    |  61 ++++++-----
 .../gradle/api/GradleBaseProjectBuilder.java       |   2 +-
 .../api/execute/GradleDistributionManager.java     |  29 ++---
 .../gradle/execute/GradleDaemonExecutor.java       |   1 -
 .../modules/gradle/spi/execute/package-info.java   |  43 +++-----
 .../modules/gradle/api/GradleBaseProjectTest.java  |   5 +
 java/gradle.java/nbproject/project.properties      |   2 +-
 .../gradle/java/execute/LookupProviders.java       |  13 ++-
 .../java/output/JavaCompilerProcessorFactory.java  |  16 +--
 .../gradle/java/output/LookupProviders.java        |  14 +--
 14 files changed, 234 insertions(+), 166 deletions(-)
 copy ide/languages.diff/src/org/netbeans/modules/languages/diff/DiffLanguageHierarchy.java => extide/gradle/src/org/netbeans/modules/gradle/spi/execute/package-info.java (58%)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

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


[netbeans] 01/08: Fixed some Gradle introspection problems wit pre-6.1 Gradle Versions

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit df9ce551fbe95ed4726f122e3d19e3d93c5ce6f2
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Sun Nov 27 08:37:10 2022 -0800

    Fixed some Gradle introspection problems wit pre-6.1 Gradle Versions
---
 .../gradle/tooling/NbProjectInfoBuilder.java       | 95 +++++++++++++---------
 .../gradle/api/GradleBaseProjectBuilder.java       |  2 +-
 2 files changed, 57 insertions(+), 40 deletions(-)

diff --git a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
index dae86ef964..fbd02232a9 100644
--- a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
+++ b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
@@ -91,7 +91,6 @@ import org.gradle.api.logging.Logging;
 import org.gradle.api.plugins.ExtensionAware;
 import org.gradle.api.plugins.ExtensionContainer;
 import org.gradle.api.plugins.ExtensionsSchema.ExtensionSchema;
-import org.gradle.api.plugins.JavaPlatformPlugin;
 import org.gradle.api.provider.Provider;
 import org.gradle.api.reflect.HasPublicType;
 import org.gradle.api.reflect.TypeOf;
@@ -105,7 +104,7 @@ import org.gradle.jvm.JvmLibrary;
 import org.gradle.language.base.artifact.SourcesArtifact;
 import org.gradle.language.java.artifact.JavadocArtifact;
 import org.gradle.plugin.use.PluginId;
-import org.gradle.util.VersionNumber;
+import org.gradle.util.GradleVersion;
 import org.netbeans.modules.gradle.tooling.internal.NbProjectInfo;
 
 /**
@@ -176,8 +175,9 @@ class NbProjectInfoBuilder {
         "war"
     }));
 
+    private static final GradleVersion GRADLE_VERSION = GradleVersion.current().getBaseVersion();
+
     final Project project;
-    final VersionNumber gradleVersion;
     final GradleInternalAdapter adapter;
 
     public static final class ValueAndType {
@@ -197,9 +197,7 @@ class NbProjectInfoBuilder {
 
     NbProjectInfoBuilder(Project project) {
         this.project = project;
-        this.gradleVersion = VersionNumber.parse(project.getGradle().getGradleVersion());
-        // checked that version 7.6.0 > 7.6.0-rc-1 in the VersionNumber order
-        this.adapter = sinceGradleOrDefault("7.6.0-rc-1", () -> new GradleInternalAdapter.Gradle76(project), () -> new GradleInternalAdapter(project));
+        this.adapter = sinceGradleOrDefault("7.6", () -> new GradleInternalAdapter.Gradle76(project), () -> new GradleInternalAdapter(project));
     }
     
     private NbProjectInfoModel model = new NbProjectInfoModel();
@@ -864,7 +862,7 @@ class NbProjectInfoBuilder {
         model.getInfo().put("project_subProjects", sp);
         
         Map<String, File> ib = new HashMap<>();
-        LOG.lifecycle("Gradle Version: {}", gradleVersion);
+        LOG.lifecycle("Gradle Version: {}", GradleVersion.current());
         sinceGradle("3.1", () -> {
             for(IncludedBuild p: project.getGradle().getIncludedBuilds()) {
                 LOG.lifecycle("Include Build: {}", p.getName());
@@ -1016,36 +1014,44 @@ class NbProjectInfoBuilder {
                         }
                         if (Boolean.TRUE.equals(available.get(langId))) {
                             model.getInfo().put(propBase + lang, storeSet(getProperty(sourceSet, langId, "srcDirs")));
-                            DirectoryProperty dirProp = (DirectoryProperty)getProperty(sourceSet, langId, "classesDirectory");
-                            if (dirProp != null) {
-                                File outDir;
-                                
-                                if (dirProp.isPresent()) {
-                                    outDir = dirProp.get().getAsFile();
-                                } else {
-                                    // kotlin plugin uses some weird late binding, so it has the output item, but it cannot be resolved to a 
-                                    // concrete file path at this time. Let's make an approximation from 
-                                    Path candidate = null;
-                                    if (base != null) {
-                                        Path prefix = base.resolve(langId);
-                                        // assume the language has just one output dir in the source set:
-                                        for (int i = 0; i < outPaths.size(); i++) {
-                                            Path p = outPaths.get(i);
-                                            if (p.startsWith(prefix)) {
-                                                if (candidate != null) {
-                                                    candidate = null;
-                                                    break;
-                                                } else {
-                                                    candidate = p;
+                            asGradle("4.0", "6.1", () -> {
+                                File outDir = (File) getProperty(sourceSet, langId, "outputDir");
+                                model.getInfo().put(propBase + lang + "_output_classes", outDir);
+                            });
+                            sinceGradle("6.1", () -> {
+                                DirectoryProperty dirProp = (DirectoryProperty)getProperty(sourceSet, langId, "classesDirectory");
+                                if (dirProp != null) {
+                                    File outDir;
+
+                                    if (dirProp.isPresent()) {
+                                        outDir = dirProp.get().getAsFile();
+                                    } else {
+                                        // kotlin plugin uses some weird late binding, so it has the output item, but it cannot be resolved to a
+                                        // concrete file path at this time. Let's make an approximation from
+                                        Path candidate = null;
+                                        if (base != null) {
+                                            Path prefix = base.resolve(langId);
+                                            // assume the language has just one output dir in the source set:
+                                            for (int i = 0; i < outPaths.size(); i++) {
+                                                Path p = outPaths.get(i);
+                                                if (p.startsWith(prefix)) {
+                                                    if (candidate != null) {
+                                                        candidate = null;
+                                                        break;
+                                                    } else {
+                                                        candidate = p;
+                                                    }
                                                 }
                                             }
                                         }
+                                        outDir = candidate != null ? candidate.toFile() : new File("");
                                     }
-                                    outDir = candidate != null ? candidate.toFile() : new File("");
+
+                                    model.getInfo().put(propBase + lang + "_output_classes", outDir);
                                 }
-                                
-                                model.getInfo().put(propBase + lang + "_output_classes", outDir);
-                            }
+                            });
+
+
                         }
                     }
    
@@ -1295,7 +1301,7 @@ class NbProjectInfoBuilder {
 
         // NETBEANS-5846: if this project uses javaPlatform plugin with dependencies enabled, 
         // do not report unresolved problems
-        boolean ignoreUnresolvable = (project.getPlugins().hasPlugin(JavaPlatformPlugin.class) && 
+        boolean ignoreUnresolvable = (project.getPlugins().hasPlugin("java-platform") &&
             Boolean.TRUE.equals(getProperty(project, "javaPlatform", "allowDependencies")));
 
         visibleConfigurations.forEach(it -> {
@@ -1606,7 +1612,7 @@ class NbProjectInfoBuilder {
     }        
     
     private <T, E extends Throwable> T sinceGradleOrDefault(String version, ExceptionCallable<T, E> c, Supplier<T> def) {
-        if (gradleVersion.compareTo(VersionNumber.parse(version)) >= 0) {
+        if (GRADLE_VERSION.compareTo(GradleVersion.version(version)) >= 0) {
             try {
                 return c.call();
             } catch (RuntimeException | Error e) {
@@ -1625,23 +1631,34 @@ class NbProjectInfoBuilder {
     }
     
     private void sinceGradle(String version, Runnable r) {
-        if (gradleVersion.compareTo(VersionNumber.parse(version)) >= 0) {
+        if (GRADLE_VERSION.compareTo(GradleVersion.version(version)) >= 0) {
             r.run();
         }
     }
 
     private void beforeGradle(String version, Runnable r) {
-        if (gradleVersion.compareTo(VersionNumber.parse(version)) < 0) {
+        if (GRADLE_VERSION.compareTo(GradleVersion.version(version)) < 0) {
+            r.run();
+        }
+    }
+
+    private void asGradle(String fromVersion, String toVersion, Runnable r) {
+        if ((GRADLE_VERSION.compareTo(GradleVersion.version(fromVersion)) >= 0)
+                && (GRADLE_VERSION.compareTo(GradleVersion.version(toVersion)) < 0)) {
             r.run();
         }
     }
 
     private static Object getProperty(Object obj, String... propPath) {
         Object currentObject = obj;
-        for(String prop: propPath) {
-            currentObject = InvokerHelper.getPropertySafe(currentObject, prop);
+        try {
+            for(String prop: propPath) {
+                currentObject = InvokerHelper.getPropertySafe(currentObject, prop);
+            }
+            return currentObject;
+        } catch (MissingPropertyException ex) {
+            return null;
         }
-        return currentObject;
     }
 }
 
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProjectBuilder.java b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProjectBuilder.java
index 0b98521530..d299a47989 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProjectBuilder.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProjectBuilder.java
@@ -154,7 +154,7 @@ class GradleBaseProjectBuilder implements ProjectInfoExtractor.Result {
         if (sourceSetNames != null) {
             for (String name : sourceSetNames) {
                 Set<File> dirs = (Set<File>) info.get("sourceset_" + name + "_output_classes");
-                sourceSetOutputs.addAll(dirs);
+                sourceSetOutputs.addAll(dirs != null ? dirs : Collections.emptySet());
                 sourceSetOutputs.add((File) info.get("sourceset_" + name + "_output_resources"));
             }
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

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


[netbeans] 08/08: Upgrade version numbers for the affected modules

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 6c11e077a65d7ba9e5317ae954955b9cbe5f37c5
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Sun Nov 27 15:56:26 2022 -0800

    Upgrade version numbers for the affected modules
---
 extide/gradle/manifest.mf                     | 2 +-
 java/gradle.java/nbproject/project.properties | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/extide/gradle/manifest.mf b/extide/gradle/manifest.mf
index 30e090e4c6..ada6ca95f7 100644
--- a/extide/gradle/manifest.mf
+++ b/extide/gradle/manifest.mf
@@ -3,4 +3,4 @@ AutoUpdate-Show-In-Client: false
 OpenIDE-Module: org.netbeans.modules.gradle/2
 OpenIDE-Module-Layer: org/netbeans/modules/gradle/layer.xml
 OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/gradle/Bundle.properties
-OpenIDE-Module-Specification-Version: 2.29
+OpenIDE-Module-Specification-Version: 2.29.1
diff --git a/java/gradle.java/nbproject/project.properties b/java/gradle.java/nbproject/project.properties
index 859cdc0105..9ef6374316 100644
--- a/java/gradle.java/nbproject/project.properties
+++ b/java/gradle.java/nbproject/project.properties
@@ -25,5 +25,5 @@ javadoc.apichanges=${basedir}/apichanges.xml
 test-unit-sys-prop.test.netbeans.dest.dir=${netbeans.dest.dir}
 test-unit-sys-prop.java.awt.headless=true
 test.use.jdk.javac=true
-spec.version.base=1.20.0
+spec.version.base=1.20.1
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

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


[netbeans] 05/08: Made Gradle JavaCompilerProcessorFactory work in absence of a ClasspathProvider

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c729a4f1b6007f2ac140a837cc000e4a80be2c1b
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Fri Dec 2 08:45:36 2022 -0800

    Made Gradle JavaCompilerProcessorFactory work in absence of a ClasspathProvider
---
 .../gradle/java/output/JavaCompilerProcessorFactory.java | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/java/gradle.java/src/org/netbeans/modules/gradle/java/output/JavaCompilerProcessorFactory.java b/java/gradle.java/src/org/netbeans/modules/gradle/java/output/JavaCompilerProcessorFactory.java
index 294face367..3b099f6f29 100644
--- a/java/gradle.java/src/org/netbeans/modules/gradle/java/output/JavaCompilerProcessorFactory.java
+++ b/java/gradle.java/src/org/netbeans/modules/gradle/java/output/JavaCompilerProcessorFactory.java
@@ -68,12 +68,16 @@ public final class JavaCompilerProcessorFactory implements OutputProcessorFactor
         private StackTraceProcessor(RunConfig cfg) {
             project = cfg.getProject();
             ProjectSourcesClassPathProvider cpProvider = project.getLookup().lookup(ProjectSourcesClassPathProvider.class);
-            ClassPath[] projectClassPath = cpProvider.getProjectClassPath(ClassPath.EXECUTE);
-            ClassPath[] bootClassPath = cpProvider.getProjectClassPath(ClassPath.BOOT);
-            classPath = ClassPathSupport.createProxyClassPath(
-                    ClassPathSupport.createProxyClassPath(projectClassPath),
-                    ClassPathSupport.createProxyClassPath(bootClassPath)
-            );
+            if (cpProvider != null) {
+                ClassPath[] projectClassPath = cpProvider.getProjectClassPath(ClassPath.EXECUTE);
+                ClassPath[] bootClassPath = cpProvider.getProjectClassPath(ClassPath.BOOT);
+                classPath = ClassPathSupport.createProxyClassPath(
+                        ClassPathSupport.createProxyClassPath(projectClassPath),
+                        ClassPathSupport.createProxyClassPath(bootClassPath)
+                );
+            } else {
+                classPath = ClassPath.EMPTY;
+            }
         }
 
         @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

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


[netbeans] 06/08: Use Project Dictated JVM for Gradle Discovery (#4985)

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c7b7d4a09f9e62c30fb8f84b17d4b59462319b44
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Mon Dec 5 20:11:25 2022 -0800

    Use Project Dictated JVM for Gradle Discovery (#4985)
---
 .../gradle/GradleJavaCompatProblemsProvider.java   | 90 ++++++++++++++++++----
 .../modules/gradle/GradleProjectConnection.java    | 61 +++++++++------
 .../api/execute/GradleDistributionManager.java     | 29 ++-----
 .../gradle/execute/GradleDaemonExecutor.java       |  1 -
 .../modules/gradle/spi/execute/package-info.java   | 35 +++++++++
 5 files changed, 154 insertions(+), 62 deletions(-)

diff --git a/extide/gradle/src/org/netbeans/modules/gradle/GradleJavaCompatProblemsProvider.java b/extide/gradle/src/org/netbeans/modules/gradle/GradleJavaCompatProblemsProvider.java
index 52c7d2e382..66711bb0bd 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/GradleJavaCompatProblemsProvider.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/GradleJavaCompatProblemsProvider.java
@@ -21,17 +21,23 @@ package org.netbeans.modules.gradle;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Properties;
 import org.netbeans.api.project.Project;
 import org.netbeans.modules.gradle.api.NbGradleProject;
 import org.netbeans.modules.gradle.api.execute.GradleDistributionManager;
 import org.netbeans.modules.gradle.api.execute.GradleDistributionManager.GradleDistribution;
 import org.netbeans.modules.gradle.spi.execute.GradleDistributionProvider;
+import org.netbeans.modules.gradle.spi.execute.GradleJavaPlatformProvider;
 import org.netbeans.spi.project.ProjectServiceProvider;
 import org.netbeans.spi.project.ui.ProjectProblemsProvider;
 import static org.netbeans.spi.project.ui.ProjectProblemsProvider.PROP_PROBLEMS;
-import org.openide.util.NbBundle;
 import org.openide.util.NbBundle.Messages;
 
 /**
@@ -71,26 +77,82 @@ public final class GradleJavaCompatProblemsProvider implements ProjectProblemsPr
         "# {1} - Supported Java Version",
         "# {2} - Required Gradle Version",
         "# {3} - Forced Gradle Version",
-        "TXT_JavaVersionMismatch=The IDE is running on Java {0} that is not supported by Gradle {2}.\n"
-                + "The IDE will attempt to use Gradle {3} to gather the project information.\n\n"
-                + "Either upgrade your Gradle version on your project or run the IDE on "
-                + "Java {1} to avoid this problem!"
+        "TXT_JavaVersionMismatch=<html>The Java version: {0}, that is seletced 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:"
+                + "<ul><li>Upgrade your Gradle version on your project"
+                + "<li>Select Java Platform {1} (or below), on Build&nbsp;>&nbsp;Compile settings, to avoid this problem!"
+                + "</ul>"
     })
     @Override
     public Collection<? extends ProjectProblem> getProblems() {
+        GradleDistribution dist = getGradleDistribution();
+        int javaVersion = getJavaVersion();
+        if (!dist.isCompatibleWithJava(javaVersion)) {
+            GradleDistribution compatDist = GradleDistributionManager.get(dist.getGradleUserHome()).defaultDistribution();
+            ProjectProblem problem = ProjectProblem.createWarning(
+                    Bundle.LBL_JavaVersionMismatch(), 
+                    Bundle.TXT_JavaVersionMismatch(javaVersion, dist.lastSupportedJava(),dist.getVersion(), compatDist.getVersion()));
+            return Collections.singleton(problem);
+        }
+        return Collections.emptySet();
+    }
+
+    private GradleDistribution getGradleDistribution() {
+        GradleDistribution dist = null;
         GradleDistributionProvider pvd = project.getLookup().lookup(GradleDistributionProvider.class);
         if (pvd != null) {
-            GradleDistribution dist = pvd.getGradleDistribution();
-            if ((dist != null) && !dist.isCompatibleWithSystemJava()) {
-                String javaVersion = System.getProperty("java.specification.version", System.getProperty("java.version")); //NOI18N
-                GradleDistribution compatDist = GradleDistributionManager.get(dist.getGradleUserHome()).defaultDistribution();
-                ProjectProblem problem = ProjectProblem.createWarning(
-                        Bundle.LBL_JavaVersionMismatch(), 
-                        Bundle.TXT_JavaVersionMismatch(javaVersion, dist.lastSupportedJava(),dist.getVersion(), compatDist.getVersion()));
-                return Collections.singleton(problem);
+            dist = pvd.getGradleDistribution();
+        }
+        return dist != null ? dist : GradleDistributionManager.get().defaultDistribution();
+    }
+
+    private int getJavaVersion() {
+        File javaHome = null;
+        GradleJavaPlatformProvider pvd = project.getLookup().lookup(GradleJavaPlatformProvider.class);
+        try {
+            javaHome = pvd != null ? pvd.getJavaHome() : null;
+        } catch (FileNotFoundException ex) {
+            // That's a broken Java Home, other Problem Provider should pick that up
+        }
+
+        if (javaHome == null) {
+            String javaVersion = System.getProperty("java.specification.version");
+            int dot = javaVersion.indexOf('.');
+            if (dot > 0) {
+                javaVersion = javaVersion.substring(0, dot);
             }
+            return Integer.parseInt(javaVersion);
+        } else {
+            return getJavaMajorVersion(javaHome);
         }
-        return Collections.emptySet();
+    }
+
+    private static int getJavaMajorVersion(File javaHome) {
+        // If anything goes wrong just assume Java 8
+        int ret = 8;
+
+        // The release file was introduced in JDK 9 and provided ever since
+        File release = new File(javaHome, "release"); //NOI18N
+        if (release.isFile()) {
+            Properties releasePros = new Properties();
+            try (InputStream is = new FileInputStream(release)) {
+                releasePros.load(is);
+            } catch (IOException ex) {
+
+            }
+            String javaVersion = releasePros.getProperty("JAVA_VERSION"); //NOI18N
+            if ((javaVersion != null) && javaVersion.startsWith("\"") && javaVersion.endsWith("\"")) {
+                javaVersion = javaVersion.substring(1, javaVersion.indexOf('.'));
+                try {
+                    ret = Integer.parseInt(javaVersion);
+                } catch (NumberFormatException ex) {
+                    // Do nothing return empty
+                }
+            }
+        }
+        return ret;
     }
 
 }
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectConnection.java b/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectConnection.java
index b0a40c65fa..d74535dcd9 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectConnection.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectConnection.java
@@ -19,13 +19,17 @@
 package org.netbeans.modules.gradle;
 
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.nio.file.Path;
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import org.gradle.tooling.BuildAction;
 import org.gradle.tooling.BuildActionExecuter;
 import org.gradle.tooling.BuildLauncher;
+import org.gradle.tooling.ConfigurableLauncher;
 import org.gradle.tooling.GradleConnectionException;
 import org.gradle.tooling.GradleConnector;
 import org.gradle.tooling.ModelBuilder;
@@ -37,6 +41,7 @@ import org.netbeans.modules.gradle.api.NbGradleProject;
 import org.netbeans.modules.gradle.api.execute.GradleDistributionManager;
 import org.netbeans.modules.gradle.api.execute.GradleDistributionManager.GradleDistribution;
 import org.netbeans.modules.gradle.spi.execute.GradleDistributionProvider;
+import org.netbeans.modules.gradle.spi.execute.GradleJavaPlatformProvider;
 import org.netbeans.spi.project.ProjectServiceProvider;
 import org.openide.filesystems.FileUtil;
 import org.openide.util.WeakListeners;
@@ -48,9 +53,11 @@ import org.openide.util.WeakListeners;
 @ProjectServiceProvider(service = ProjectConnection.class, projectType = NbGradleProject.GRADLE_PROJECT_TYPE)
 public final class GradleProjectConnection implements ProjectConnection {
 
+    private static final Logger LOG = Logger.getLogger(GradleProjectConnection.class.getName());
+
     final Project project;
     ProjectConnection conn;
-    ProjectConnection compatConn;
+
     final ChangeListener listener = (ChangeEvent e) -> {
         close();
     };
@@ -61,42 +68,42 @@ public final class GradleProjectConnection implements ProjectConnection {
     
     @Override
     public <T> T getModel(Class<T> type) throws GradleConnectionException, IllegalStateException {
-        return getConnection(true).getModel(type);
+        return getConnection().getModel(type);
     }
 
     @Override
     public <T> void getModel(Class<T> type, ResultHandler<? super T> rh) throws IllegalStateException {
-        getConnection(true).getModel(type, rh);
+        getConnection().getModel(type, rh);
     }
 
     @Override
     public BuildLauncher newBuild() {
-        return getConnection(false).newBuild();
+        return setJavaHome(getConnection().newBuild());
     }
 
     @Override
     public TestLauncher newTestLauncher() {
-        return getConnection(false).newTestLauncher();
+        return setJavaHome(getConnection().newTestLauncher());
     }
 
     @Override
     public <T> ModelBuilder<T> model(Class<T> type) {
-        return getConnection(true).model(type);
+        return setJavaHome(getConnection().model(type));
     }
 
     @Override
     public <T> BuildActionExecuter<T> action(BuildAction<T> action) {
-        return getConnection(true).action(action);
+        return setJavaHome(getConnection().action(action));
     }
 
     @Override
     public BuildActionExecuter.Builder action() {
-        return getConnection(true).action();
+        return getConnection().action();
     }
 
     @Override
     public void notifyDaemonsAboutChangedPaths(List<Path> list) {
-        getConnection(false).notifyDaemonsAboutChangedPaths(list);
+        getConnection().notifyDaemonsAboutChangedPaths(list);
     }
 
     @Override
@@ -104,41 +111,44 @@ public final class GradleProjectConnection implements ProjectConnection {
         if (conn != null) {
             conn.close();
         }
-        if (conn != compatConn) {
-            compatConn.close();
-        }
         conn = null;
-        compatConn = null;
     }
 
     synchronized boolean hasConnection() {
-        return conn != null || compatConn != null;
+        return conn != null;
     }
     
-    private synchronized ProjectConnection getConnection(boolean compatible) {
+    private synchronized ProjectConnection getConnection() {
         if (conn == null) {
             File projectDir = FileUtil.toFile(project.getProjectDirectory());
-            GradleConnector gconn = GradleConnector.newConnector();
             GradleDistributionProvider pvd = project.getLookup().lookup(GradleDistributionProvider.class);
+
             if (pvd != null) {
                 pvd.addChangeListener(WeakListeners.change(listener, pvd));
                 GradleDistribution dist = pvd.getGradleDistribution();
                 if (dist != null) {
                     conn = createConnection(dist, projectDir);
-                    if (dist.isCompatibleWithSystemJava()) {
-                        compatConn = conn;
-                    } else {
-                        GradleDistribution compatDist = GradleDistributionManager.get(dist.getGradleUserHome()).defaultDistribution();
-                        compatConn = createConnection(compatDist, projectDir);
-                    }
                 }
             }
             if (conn == null) {
-                conn = gconn.forProjectDirectory(projectDir).connect();
-                compatConn = conn;
+                conn = createConnection(GradleDistributionManager.get().defaultDistribution(), projectDir);
             }
         }
-        return compatible ? compatConn : conn;
+        return conn;
+    }
+
+    private <T extends ConfigurableLauncher<?>> T setJavaHome(T launcher) {
+        GradleJavaPlatformProvider pvd = project.getLookup().lookup(GradleJavaPlatformProvider.class);
+        if (pvd != null) {
+            try {
+                File javaHome = pvd.getJavaHome();
+                launcher.setJavaHome(javaHome);
+                LOG.log(Level.FINE, "Using JAVA_HOME=''{0}'' for project info load for: {1}", new Object[]{javaHome, project});
+            } catch (FileNotFoundException ex) {
+                LOG.log(Level.WARNING, "JAVA_HOME for project " + project + " not found.", ex);
+            }
+        }
+        return launcher;
     }
 
     private static ProjectConnection createConnection(GradleDistribution dist, File projectDir) {
@@ -151,4 +161,5 @@ public final class GradleProjectConnection implements ProjectConnection {
         }
         return gconn.forProjectDirectory(projectDir).connect();
     }
+
 }
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleDistributionManager.java b/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleDistributionManager.java
index 6228015b2f..28ec81b85a 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleDistributionManager.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleDistributionManager.java
@@ -69,7 +69,6 @@ import org.netbeans.modules.gradle.spi.GradleFiles;
 import org.netbeans.modules.gradle.spi.GradleSettings;
 import org.openide.awt.Notification;
 import org.openide.awt.NotificationDisplayer;
-import org.openide.util.Exceptions;
 import org.openide.util.NbBundle;
 import org.openide.util.RequestProcessor;
 
@@ -99,25 +98,8 @@ public final class GradleDistributionManager {
         GradleVersion.version("7.0"), // JDK-16
         GradleVersion.version("7.3"), // JDK-17
         GradleVersion.version("7.5"), // JDK-18
+        GradleVersion.version("7.6"), // JDK-19
     };
-    private static final int JAVA_VERSION;
-
-    static {
-        int ver = 8;
-        String version = System.getProperty("java.specification.version", System.getProperty("java.version")); //NOI18N
-        try {
-            int dot = version.indexOf('.');
-            ver = dot > 0 ? Integer.parseInt(version.substring(0, dot)) : Integer.parseInt(version);
-            if (ver == 1) {
-                version = version.substring(dot + 1);
-                dot = version.indexOf('.');
-                ver = dot > 0 ? Integer.parseInt(version.substring(0, dot)) : Integer.parseInt(version);
-            }
-        } catch (NumberFormatException ex) {
-            Exceptions.printStackTrace(ex);
-        }
-        JAVA_VERSION = ver;
-    }
 
     final File gradleUserHome;
 
@@ -379,7 +361,7 @@ public final class GradleDistributionManager {
         return new File(dist.getDistributionDir(), "gradle-" + version);
     }
 
-    
+    @SuppressWarnings("PackageVisibleInnerClass")
     static final class GradleVersionRange {
 
         public final GradleVersion lowerBound;
@@ -528,10 +510,12 @@ public final class GradleDistributionManager {
          * Checks if this Gradle distribution is compatible the NetBeans
          * runtime JDK.
          *
-         * @return <code>true</code> if this version is supported with the runtime JDK.
+         * @return <code>true</code>.
+         * @deprecated shall be no reason to be used.
          */
+        @Deprecated
         public boolean isCompatibleWithSystemJava() {
-            return isCompatibleWithJava(JAVA_VERSION);
+            return true;
         }
 
         /**
@@ -668,6 +652,7 @@ public final class GradleDistributionManager {
         }
 
         @Override
+        @SuppressWarnings("NestedAssignment")
         public void download(URI uri, File file) throws Exception {
             URL url = uri.toURL();
             URLConnection conn = url.openConnection();
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/execute/GradleDaemonExecutor.java b/extide/gradle/src/org/netbeans/modules/gradle/execute/GradleDaemonExecutor.java
index cd10f28c59..a16f530139 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/execute/GradleDaemonExecutor.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/execute/GradleDaemonExecutor.java
@@ -283,7 +283,6 @@ public final class GradleDaemonExecutor extends AbstractGradleExecutor {
         String javaHome = null;
         if (platformProvider != null) {
             try {
-                buildLauncher.setJavaHome(platformProvider.getJavaHome());
                 javaHome = platformProvider.getJavaHome().getCanonicalPath();
             } catch (IOException ex) {
                 io.getErr().println(Bundle.NO_PLATFORM(ex.getMessage()));
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/spi/execute/package-info.java b/extide/gradle/src/org/netbeans/modules/gradle/spi/execute/package-info.java
new file mode 100644
index 0000000000..b798cae9b1
--- /dev/null
+++ b/extide/gradle/src/org/netbeans/modules/gradle/spi/execute/package-info.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/**
+ * If a project needs direct access to Gradle, there is a
+ * {@link org.gradle.tooling.ProjectConnection}
+ * can be retrieved from the project's lookup. The returned implementation
+ * takes account the {@link org.netbeans.modules.gradle.spi.execute.GradleJavaPlatformProvider} and the {@link org.netbeans.modules.gradle.spi.execute.GradleDistributionProvider}
+ * implementations if they are available in the project lookup.
+ * <pre>
+ *  ProjectConnection connection = project.getLookup().lookup(ProjectConnection.class);
+ *
+ *  connection.newBuild()
+ *    .forTasks("tasks")
+ *    .setStandardOutput(System.out)
+ *    .run();
+ *
+ * </pre>
+ */
+package org.netbeans.modules.gradle.spi.execute;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

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


[netbeans] 02/08: Fix #5015: Fix Gradle/broken task dependency and serialization (#5022)

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 182ca8590f462e9f62ce8c59fcc39c5cecdfb227
Author: Svatopluk Dedic <sv...@oracle.com>
AuthorDate: Fri Dec 2 19:20:07 2022 +0100

    Fix #5015: Fix Gradle/broken task dependency and serialization (#5022)
    
    * Avoid failing on broken tasks during dependency inspection
    
    * Corrected bad check for primitive class that passed also generated proxies (fixes #5015)
---
 .../modules/gradle/tooling/NbProjectInfoBuilder.java  | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
index fbd02232a9..0c50fbfd40 100644
--- a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
+++ b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
@@ -330,11 +330,16 @@ class NbProjectInfoBuilder {
     }
     
     private String dependenciesAsString(Task t, TaskDependency td) {
-        Set<? extends Task> deps = td.getDependencies(t);
-        if (deps.isEmpty()) {
+        try {
+            Set<? extends Task> deps = td.getDependencies(t);
+            if (deps.isEmpty()) {
+                return "";
+            }
+            return deps.stream().map(Task::getPath).collect(Collectors.joining(","));
+        } catch (LinkageError | RuntimeException ex) {
+            LOG.warn("Error getting dependencies for task {}: {}", t.getName(), ex.getLocalizedMessage(), ex);
             return "";
         }
-        return deps.stream().map(Task::getPath).collect(Collectors.joining(","));
     }
     
     private void detectConfigurationArtifacts(NbProjectInfoModel model) {
@@ -503,13 +508,7 @@ class NbProjectInfoBuilder {
             return false;
         }
         String n = c.getName();
-        if (n.indexOf('.') == -1) {
-            return true;
-        } else if (n.startsWith("java.lang.")) {
-            return true;
-        }
-        
-        return false;
+        return c.isPrimitive() || n.startsWith("java.lang.");
     }
     
     /**


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

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


[netbeans] 04/08: [#4865] Register JDPA and Java Compiler Output on Project level

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 435e86ad7b2a83d4d3e2bedd106bba5341b539b5
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Fri Nov 18 06:43:20 2022 -0800

    [#4865] Register JDPA and Java Compiler Output on Project level
---
 .../modules/gradle/java/output/LookupProviders.java        | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/java/gradle.java/src/org/netbeans/modules/gradle/java/output/LookupProviders.java b/java/gradle.java/src/org/netbeans/modules/gradle/java/output/LookupProviders.java
index c652320244..5e05551a23 100644
--- a/java/gradle.java/src/org/netbeans/modules/gradle/java/output/LookupProviders.java
+++ b/java/gradle.java/src/org/netbeans/modules/gradle/java/output/LookupProviders.java
@@ -29,7 +29,7 @@ import org.openide.util.lookup.Lookups;
  */
 public class LookupProviders {
 
-    @LookupProvider.Registration(projectType = NbGradleProject.GRADLE_PLUGIN_TYPE + "/java-base")
+    @LookupProvider.Registration(projectType = NbGradleProject.GRADLE_PROJECT_TYPE)
     public static LookupProvider createJavaBaseProvider() {
         return new LookupProvider() {
             @Override
@@ -41,16 +41,4 @@ public class LookupProviders {
             }
         };
     }
-
-    @LookupProvider.Registration(projectTypes = {
-        @LookupProvider.Registration.ProjectType(id = NbGradleProject.GRADLE_PLUGIN_TYPE + "/com.github.lkishalmi.gatling"),
-        @LookupProvider.Registration.ProjectType(id = NbGradleProject.GRADLE_PLUGIN_TYPE + "/io.gatling.gradle")
-    })
-    public static LookupProvider createGatlingProvider() {
-        return (baseContext) -> {
-            return Lookups.fixed(
-                    new JDPAProcessorFactory()
-            );
-        };
-    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

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


[netbeans] 03/08: #4965: Fix issues with gradle pre-6.4 (#4995)

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 367ae9dea0c01855f8a8eb076e220aa4cd15cff1
Author: Svatopluk Dedic <sv...@oracle.com>
AuthorDate: Sun Nov 27 03:15:34 2022 +0100

    #4965: Fix issues with gradle pre-6.4 (#4995)
    
    * Fix #4965: Avoid NPE: return null for no supplier.
    
    * Improve compatibility for Gradle < 6.4
---
 .../org/netbeans/modules/gradle/tooling/GradleInternalAdapter.java   | 4 ++--
 .../org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java    | 4 +++-
 .../src/org/netbeans/modules/gradle/api/GradleBaseProjectTest.java   | 5 +++++
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/GradleInternalAdapter.java b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/GradleInternalAdapter.java
index 515cfc7f1b..632321d772 100644
--- a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/GradleInternalAdapter.java
+++ b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/GradleInternalAdapter.java
@@ -111,7 +111,7 @@ public class GradleInternalAdapter {
     }
     
     public ValueAndType findPropertyValueInternal(String propName, Object val) {
-        return safeCall(() -> {
+        return sinceGradleOrDefault("6.4",() -> safeCall(() -> {
             if (val instanceof ProviderInternal) {
                 ProviderInternal provided = (ProviderInternal)val;
                 ValueSupplier.ExecutionTimeValue etv;
@@ -129,7 +129,7 @@ public class GradleInternalAdapter {
             } else {
                 return new ValueAndType(val != null ? val.getClass() : null, val);
             }
-        }, "property " + propName).orElse(null);
+        }, "property " + propName).orElse(null), null);
     }
     
     @SuppressWarnings("unchecked")
diff --git a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
index 0c50fbfd40..0fd561a2cd 100644
--- a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
+++ b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
@@ -1620,8 +1620,10 @@ class NbProjectInfoBuilder {
                 sneakyThrow(t);
                 return null;
             }
-        } else {
+        } else if (def != null) {
             return def.get();
+        } else {
+            return null;
         }
     }
     
diff --git a/extide/gradle/test/unit/src/org/netbeans/modules/gradle/api/GradleBaseProjectTest.java b/extide/gradle/test/unit/src/org/netbeans/modules/gradle/api/GradleBaseProjectTest.java
index 2fe874a4b1..64778be87b 100644
--- a/extide/gradle/test/unit/src/org/netbeans/modules/gradle/api/GradleBaseProjectTest.java
+++ b/extide/gradle/test/unit/src/org/netbeans/modules/gradle/api/GradleBaseProjectTest.java
@@ -247,6 +247,11 @@ public class GradleBaseProjectTest extends AbstractGradleProjectTestCase {
         return p;
     }
     
+    public void testOldGradle611ProjectLoads() throws Exception {
+        Project p = makeProjectWithWrapper("projects/oldgradle/basic", "6.1.1");
+        assertProjectLoadedWithNoProblems(p, "6.1.1");
+    }
+
     public void testOldGradle683ProjectLoads() throws Exception {
         Project p = makeProjectWithWrapper("projects/oldgradle/basic", "6.8.3");
         assertProjectLoadedWithNoProblems(p, "6.8.3");


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

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


[netbeans] 07/08: Make Java Platform available on non-java Gradle Projects

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 4a37b3625a1af8261b610bb535f74b09c3c37272
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Mon Dec 5 22:45:43 2022 -0800

    Make Java Platform available on non-java Gradle Projects
---
 .../modules/gradle/java/execute/LookupProviders.java        | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/java/gradle.java/src/org/netbeans/modules/gradle/java/execute/LookupProviders.java b/java/gradle.java/src/org/netbeans/modules/gradle/java/execute/LookupProviders.java
index 1dc7f74878..41462bc76e 100644
--- a/java/gradle.java/src/org/netbeans/modules/gradle/java/execute/LookupProviders.java
+++ b/java/gradle.java/src/org/netbeans/modules/gradle/java/execute/LookupProviders.java
@@ -29,6 +29,18 @@ import org.openide.util.lookup.Lookups;
  * @author lkishalmi
  */
 public class LookupProviders {
+
+    @LookupProvider.Registration(projectType = NbGradleProject.GRADLE_PROJECT_TYPE)
+    public static LookupProvider createProvider() {
+        return new LookupProvider() {
+            @Override
+            public Lookup createAdditionalLookup(Lookup baseContext) {
+                Project project = baseContext.lookup(Project.class);
+                return Lookups.singleton(new GradleJavaPlatformProviderImpl(project));
+            }
+        };
+    }
+
     @LookupProvider.Registration(projectType = NbGradleProject.GRADLE_PLUGIN_TYPE + "/java-base")
     public static LookupProvider createJavaBaseProvider() {
         return new LookupProvider() {
@@ -37,7 +49,6 @@ public class LookupProviders {
                 Project project = baseContext.lookup(Project.class);
                 return Lookups.fixed(
                         new DebugFixHooks(project),
-                        new GradleJavaPlatformProviderImpl(project),
                         new ShowJavadocHook(project)
                 );
             }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

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