-
Notifications
You must be signed in to change notification settings - Fork 840
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gradle Project shall use the Java from the tooling not runtime. #7024
Conversation
4ebe5a2
to
a3c6b40
Compare
Did some limited testing on Java 20, and Java 21 as toolchains with Gradle 8.3 and Gradle 8.4 running NetBeans with Java 21 |
I wonder if some more integration with NB IDE would be useful: suggest to install gradle-detected JVMs as java platforms into the IDE, or pass Java platforms configured in the IDE to the gradle build to choose from. |
please make sure that tests don't start to install JDKs edit: what i mean by that is that existing tests should not suddenly start setting up their own env |
a3c6b40
to
f42ce9a
Compare
This PR has no effect on the existing tests. |
f42ce9a
to
272d75c
Compare
Well, @sdedic I've put that node back. |
Thanks ! |
272d75c
to
e65cadf
Compare
It seems the paperwork check needs #7117 |
e65cadf
to
e7c7651
Compare
The build is finally green now. If no one objects, I'm going to merge this tomorrow! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ran a quick test and it seems to be working fine. Code looks good to me.
on first attempt I had an outdated org.gradle.java.home
in my global gradle.properties
which caused an exception during new project creation (since the deamon couldn't start) and the dialog simply closed:
SEVERE [org.openide.util.Exceptions]
java.lang.IllegalArgumentException: Value '/home/mbien/dev/java/jdk-17.0.10.7.1-corretto' given for org.gradle.java.home Gradle property is invalid (Java home supplied is invalid)
at org.gradle.internal.buildoption.Origin$GradlePropertyOrigin.handleInvalidValue(Origin.java:58)
at org.gradle.launcher.daemon.configuration.DaemonBuildOptions$JavaHomeOption.applyTo(DaemonBuildOptions.java:137)
at org.gradle.launcher.daemon.configuration.DaemonBuildOptions$JavaHomeOption.applyTo(DaemonBuildOptions.java:126)
at org.gradle.internal.buildoption.StringBuildOption.applyFromProperty(StringBuildOption.java:44)
at org.gradle.internal.buildoption.BuildOptionSet$2.convert(BuildOptionSet.java:64)
at org.gradle.tooling.internal.provider.ProviderConnection.initParams(ProviderConnection.java:305)
at org.gradle.tooling.internal.provider.ProviderConnection.run(ProviderConnection.java:135)
at org.gradle.tooling.internal.provider.DefaultConnection.getModel(DefaultConnection.java:149)
at org.gradle.tooling.internal.consumer.connection.CancellableModelBuilderBackedModelProducer.produceModel(CancellableModelBuilderBackedModelProducer.java:54)
at org.gradle.tooling.internal.consumer.connection.PluginClasspathInjectionSupportedCheckModelProducer.produceModel(PluginClasspathInjectionSupportedCheckModelProducer.java:38)
at org.gradle.tooling.internal.consumer.connection.AbstractConsumerConnection.run(AbstractConsumerConnection.java:64)
at org.gradle.tooling.internal.consumer.connection.ParameterValidatingConsumerConnection.run(ParameterValidatingConsumerConnection.java:49)
at org.gradle.tooling.internal.consumer.DefaultBuildLauncher$1.run(DefaultBuildLauncher.java:97)
at org.gradle.tooling.internal.consumer.DefaultBuildLauncher$1.run(DefaultBuildLauncher.java:89)
at org.gradle.tooling.internal.consumer.connection.LazyConsumerActionExecutor.run(LazyConsumerActionExecutor.java:143)
at org.gradle.tooling.internal.consumer.connection.CancellableConsumerActionExecutor.run(CancellableConsumerActionExecutor.java:45)
at org.gradle.tooling.internal.consumer.connection.ProgressLoggingConsumerActionExecutor.run(ProgressLoggingConsumerActionExecutor.java:61)
at org.gradle.tooling.internal.consumer.connection.RethrowingErrorsConsumerActionExecutor.run(RethrowingErrorsConsumerActionExecutor.java:38)
at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:67)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused: org.gradle.tooling.GradleConnectionException: Could not execute build using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-8.6-bin.zip'.
at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:55)
at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:29)
at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:43)
at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:69)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46)
at org.gradle.tooling.internal.consumer.DefaultBuildLauncher.run(DefaultBuildLauncher.java:83)
[catch] at org.netbeans.modules.gradle.spi.newproject.TemplateOperation$InitStep.execute(TemplateOperation.java:321)
at org.netbeans.modules.gradle.spi.newproject.TemplateOperation.run(TemplateOperation.java:117)
at org.netbeans.modules.gradle.spi.newproject.BaseGradleWizardIterator.instantiate(BaseGradleWizardIterator.java:76)
at org.openide.loaders.TemplateWizard$InstantiatingIteratorBridge.instantiate(TemplateWizard.java:1048)
at org.openide.loaders.TemplateWizard.handleInstantiate(TemplateWizard.java:602)
at org.netbeans.modules.project.ui.NewProjectWizard.handleInstantiate(NewProjectWizard.java:51)
at org.openide.loaders.TemplateWizard.instantiateNewObjects(TemplateWizard.java:436)
at org.openide.loaders.TemplateWizardIterImpl.instantiate(TemplateWizardIterImpl.java:228)
at org.openide.loaders.TemplateWizardIteratorWrapper$ProgressInstantiatingIterator.instantiate(TemplateWizardIteratorWrapper.java:155)
at org.openide.WizardDescriptor.callInstantiateOpen(WizardDescriptor.java:1602)
at org.openide.WizardDescriptor.callInstantiate(WizardDescriptor.java:1546)
at org.openide.WizardDescriptor.access$2300(WizardDescriptor.java:67)
at org.openide.WizardDescriptor$Listener$2$1.run(WizardDescriptor.java:2233)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1420)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:287)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2035)
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.XMLDataObject@960e46c[MultiFileObject@6c55e663[Actions/Help/master-help.xml]]
Ideally the wizard would print some useful msg to the user instead of simply disappearing, but nb wizard code is a mess, so I am not sure if this can be easily achieved.
...s-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
Outdated
Show resolved
Hide resolved
.../gradle.java/src/org/netbeans/modules/gradle/java/classpath/AbstractGradleClassPathImpl.java
Outdated
Show resolved
Hide resolved
e7c7651
to
13d9f13
Compare
Gradle Java tooling is the recommended way to set the Java version for source sets since provably version 7.x. Java Tooling has been introduced in Gradle 6.7. In order to be able to split the Java compilation form the java runtime.
NetBeans haven't respected the tooling version from Gradle so far, rlied on that people would use the same tooling as runtime. This really needed to be fixed.