Skip to content

Commit b71fcb2

Browse files
authored
fix - Use 'java.import.gradle.java.home' when it's specified (#1552)
1 parent 4b505ad commit b71fcb2

File tree

5 files changed

+19
-4
lines changed

5 files changed

+19
-4
lines changed

.vscode/launch.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"request": "attach",
3636
"hostName": "localhost",
3737
"port": "8089",
38-
"projectName": "com.github.badsyntax.gradle"
38+
"projectName": "gradle-server"
3939
},
4040
{
4141
"name": "Debug Gradle Server & Extension",

extension/src/util/config.ts

+4
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ export function getGradleConfig(): GradleConfig {
201201
const gradleUserHome = getConfigJavaImportGradleUserHome();
202202
const gradleJvmArguments = getConfigJavaImportGradleJvmArguments();
203203
const gradleVersion = getConfigJavaImportGradleVersion();
204+
const javaHome = getConfigJavaImportGradleJavaHome();
204205
if (gradleHome !== null) {
205206
gradleConfig.setGradleHome(gradleHome);
206207
}
@@ -213,6 +214,9 @@ export function getGradleConfig(): GradleConfig {
213214
if (gradleVersion !== null) {
214215
gradleConfig.setVersion(gradleVersion);
215216
}
217+
if (javaHome !== null) {
218+
gradleConfig.setJavaHome(javaHome);
219+
}
216220
gradleConfig.setWrapperEnabled(getConfigJavaImportGradleWrapperEnabled());
217221
const javaExtension = vscode.extensions.getExtension("redhat.java");
218222
if (javaExtension) {

gradle-server/src/main/java/com/github/badsyntax/gradle/GradleBuildRunner.java

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.github.badsyntax.gradle.exceptions.GradleBuildRunnerException;
44
import com.google.common.base.Strings;
5+
import java.io.File;
56
import java.io.IOException;
67
import java.io.InputStream;
78
import java.io.OutputStream;
@@ -112,6 +113,10 @@ private void runBuild(ProjectConnection connection) throws GradleBuildRunnerExce
112113
build.setJvmArguments(gradleConfig.getJvmArguments());
113114
}
114115

116+
if (!Strings.isNullOrEmpty(gradleConfig.getJavaHome())) {
117+
build.setJavaHome(new File(gradleConfig.getJavaHome()));
118+
}
119+
115120
build.run();
116121
}
117122

gradle-server/src/main/java/com/github/badsyntax/gradle/handlers/GetBuildHandler.java

+8-3
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ public void run() {
121121
action.withCancellationToken(cancellationToken).addProgressListener(progressListener, progressEvents)
122122
.setStandardOutput(standardOutputListener).setStandardError(standardErrorListener)
123123
.setColorOutput(req.getShowOutputColors());
124+
if (!Strings.isNullOrEmpty(req.getGradleConfig().getJavaHome())) {
125+
action.setJavaHome(new File(req.getGradleConfig().getJavaHome()));
126+
}
124127
GradleProjectModel gradleModel = action.run();
125128
if (gradleModel == null) {
126129
throw new Exception("Error occurs in querying custom model.");
@@ -193,13 +196,15 @@ private Environment buildEnvironment(ProjectConnection connection) {
193196
BuildEnvironment environment = buildEnvironment.get();
194197
org.gradle.tooling.model.build.GradleEnvironment gradleEnvironment = environment.getGradle();
195198
org.gradle.tooling.model.build.JavaEnvironment javaEnvironment = environment.getJava();
199+
String javaHome = Strings.isNullOrEmpty(req.getGradleConfig().getJavaHome())
200+
? javaEnvironment.getJavaHome().getAbsolutePath()
201+
: req.getGradleConfig().getJavaHome();
196202
return Environment.newBuilder()
197203
.setGradleEnvironment(GradleEnvironment.newBuilder()
198204
.setGradleUserHome(gradleEnvironment.getGradleUserHome().getAbsolutePath())
199205
.setGradleVersion(gradleEnvironment.getGradleVersion()))
200-
.setJavaEnvironment(
201-
JavaEnvironment.newBuilder().setJavaHome(javaEnvironment.getJavaHome().getAbsolutePath())
202-
.addAllJvmArgs(javaEnvironment.getJvmArguments()))
206+
.setJavaEnvironment(JavaEnvironment.newBuilder().setJavaHome(javaHome)
207+
.addAllJvmArgs(javaEnvironment.getJvmArguments()))
203208
.build();
204209
} finally {
205210
GradleBuildCancellation.clearToken(req.getCancellationKey());

proto/gradle.proto

+1
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ message GradleConfig {
153153
bool wrapper_enabled = 4;
154154
string version = 5;
155155
string java_extension_version = 6;
156+
string java_home = 7;
156157
}
157158

158159
message GradleBuild { GradleProject project = 1; }

0 commit comments

Comments
 (0)