Skip to content

Commit 8fe3b56

Browse files
committed
Fix merge conflicts
1 parent 3d8363c commit 8fe3b56

File tree

2 files changed

+35
-22
lines changed

2 files changed

+35
-22
lines changed

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/GlobalBuildInfoPlugin.java

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import org.elasticsearch.gradle.Architecture;
1515
import org.elasticsearch.gradle.OS;
1616
import org.elasticsearch.gradle.Version;
17-
import org.elasticsearch.gradle.VersionProperties;
1817
import org.elasticsearch.gradle.internal.BwcVersions;
1918
import org.elasticsearch.gradle.internal.Jdk;
2019
import org.elasticsearch.gradle.internal.JdkDownloadPlugin;
@@ -108,7 +107,6 @@ public GlobalBuildInfoPlugin(
108107

109108
@Override
110109
public void apply(Project project) {
111-
112110
if (project != project.getRootProject()) {
113111
throw new IllegalStateException(this.getClass().getName() + " can only be applied to the root project.");
114112
}
@@ -128,6 +126,8 @@ public void apply(Project project) {
128126
JavaVersion minimumCompilerVersion = JavaVersion.toVersion(versionProperties.get("minimumCompilerJava"));
129127
JavaVersion minimumRuntimeVersion = JavaVersion.toVersion(versionProperties.get("minimumRuntimeJava"));
130128

129+
Version elasticsearchVersionProperty = Version.fromString(versionProperties.getProperty("elasticsearch"));
130+
131131
RuntimeJava runtimeJavaHome = findRuntimeJavaHome();
132132
AtomicReference<BwcVersions> cache = new AtomicReference<>();
133133
Provider<BwcVersions> bwcVersionsProvider = providers.provider(
@@ -356,59 +356,65 @@ private static void assertMinimumCompilerVersion(JavaVersion minimumCompilerVers
356356
}
357357

358358
private RuntimeJava findRuntimeJavaHome() {
359+
Properties versionProperties = (Properties) project.getExtensions().getByName(VERSIONS_EXT);
360+
String bundledJdkVersion = versionProperties.getProperty("bundled_jdk");
361+
String bundledJdkMajorVersion = bundledJdkVersion.split("[.+]")[0];
362+
359363
String runtimeJavaProperty = System.getProperty("runtime.java");
360364
if (runtimeJavaProperty != null) {
361365
if (runtimeJavaProperty.toLowerCase().endsWith("-pre")) {
362366
// handle pre-release builds differently due to lack of support in Gradle toolchain service
363367
// we resolve them using JdkDownloadPlugin for now.
364-
return resolvePreReleaseRuntimeJavaHome(runtimeJavaProperty);
368+
return resolvePreReleaseRuntimeJavaHome(runtimeJavaProperty, bundledJdkMajorVersion);
365369
} else {
366-
return runtimeJavaHome(resolveJavaHomeFromToolChainService(runtimeJavaProperty), true);
370+
return runtimeJavaHome(resolveJavaHomeFromToolChainService(runtimeJavaProperty), true, bundledJdkMajorVersion);
367371
}
368372
}
369373
if (System.getenv("RUNTIME_JAVA_HOME") != null) {
370-
return runtimeJavaHome(providers.provider(() -> new File(System.getenv("RUNTIME_JAVA_HOME"))), true);
374+
return runtimeJavaHome(providers.provider(() -> new File(System.getenv("RUNTIME_JAVA_HOME"))), true, bundledJdkVersion);
371375
}
372376
// fall back to tool chain if set.
373377
String env = System.getenv("JAVA_TOOLCHAIN_HOME");
374378
boolean explicitlySet = env != null;
375379
Provider<File> javaHome = explicitlySet
376380
? providers.provider(() -> new File(env))
377-
: resolveJavaHomeFromToolChainService(VersionProperties.getBundledJdkMajorVersion());
378-
return runtimeJavaHome(javaHome, explicitlySet);
381+
: resolveJavaHomeFromToolChainService(bundledJdkMajorVersion);
382+
return runtimeJavaHome(javaHome, explicitlySet, bundledJdkMajorVersion);
379383
}
380384

381-
private RuntimeJava runtimeJavaHome(Provider<File> fileProvider, boolean explicitlySet) {
382-
return runtimeJavaHome(fileProvider, explicitlySet, null);
385+
private RuntimeJava runtimeJavaHome(Provider<File> fileProvider, boolean explicitlySet, String bundledJdkMajorVersion) {
386+
return runtimeJavaHome(fileProvider, explicitlySet, null, null, bundledJdkMajorVersion);
383387
}
384388

385-
private RuntimeJava runtimeJavaHome(Provider<File> fileProvider, boolean explicitlySet, String preReleasePostfix) {
389+
private RuntimeJava runtimeJavaHome(
390+
Provider<File> fileProvider,
391+
boolean explicitlySet,
392+
String preReleasePostfix,
393+
Integer buildNumber,
394+
String bundledJdkMajorVersion
395+
) {
386396
Provider<JavaVersion> javaVersion = fileProvider.map(
387397
javaHome -> determineJavaVersion(
388398
"runtime java.home",
389399
javaHome,
390400
fileProvider.isPresent()
391401
? JavaVersion.toVersion(getResourceContents("/minimumRuntimeVersion"))
392-
: JavaVersion.toVersion(VersionProperties.getBundledJdkMajorVersion())
402+
: JavaVersion.toVersion(bundledJdkMajorVersion)
393403
)
394404
);
395405

396406
Provider<String> vendorDetails = fileProvider.map(j -> metadataDetector.getMetadata(getJavaInstallation(j)))
397407
.map(m -> formatJavaVendorDetails(m));
398408

399-
return new RuntimeJava(fileProvider, javaVersion, vendorDetails, explicitlySet, preReleasePostfix);
409+
return new RuntimeJava(fileProvider, javaVersion, vendorDetails, explicitlySet, preReleasePostfix, buildNumber);
400410
}
401411

402-
private RuntimeJava resolvePreReleaseRuntimeJavaHome(String runtimeJavaProperty) {
412+
private RuntimeJava resolvePreReleaseRuntimeJavaHome(String runtimeJavaProperty, String bundledJdkMajorVersion) {
403413
var major = JavaLanguageVersion.of(Integer.parseInt(runtimeJavaProperty.substring(0, runtimeJavaProperty.length() - 4)));
404414
Integer buildNumber = Integer.getInteger("runtime.java.build");
405415
var jdkbuild = buildNumber == null ? findLatestPreReleaseBuild(major) : findPreReleaseBuild(major, buildNumber);
406-
String prVersionString = String.format("%d-%s+%d", major.asInt(), jdkbuild.type(), jdkbuild.buildNumber());
407-
return resolveJavaHomeFromJdkDownloadPlugin(jdkbuild.type(), major, prVersionString);
408-
409-
}
410-
411-
private RuntimeJava resolveJavaHomeFromJdkDownloadPlugin(String preReleaseType, JavaLanguageVersion major, String prVersionString) {
416+
String preReleaseType = jdkbuild.type();
417+
String prVersionString = String.format("%d-%s+%d", major.asInt(), preReleaseType, jdkbuild.buildNumber());
412418
NamedDomainObjectContainer<Jdk> container = (NamedDomainObjectContainer<Jdk>) project.getExtensions().getByName("jdks");
413419
Jdk jdk = container.create(preReleaseType + "_" + major.asInt(), j -> {
414420
j.setVersion(prVersionString);
@@ -420,7 +426,7 @@ private RuntimeJava resolveJavaHomeFromJdkDownloadPlugin(String preReleaseType,
420426
// We on purpose resolve this here eagerly to ensure we resolve the jdk configuration in the context of the root project.
421427
// If we keep this lazy we can not guarantee in which project context this is resolved which will fail the build.
422428
File file = new File(jdk.getJavaHomePath().toString());
423-
return runtimeJavaHome(providers.provider(() -> file), true, preReleaseType);
429+
return runtimeJavaHome(providers.provider(() -> file), true, preReleaseType, jdkbuild.buildNumber(), bundledJdkMajorVersion);
424430
}
425431

426432
private Provider<File> resolveJavaHomeFromToolChainService(String version) {

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/RuntimeJava.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,26 @@ public class RuntimeJava {
2121
private final boolean explicitlySet;
2222
private final String preReleaseType;
2323
private final Provider<String> vendorDetails;
24+
private final Integer buildNumber;
2425

2526
RuntimeJava(Provider<File> javahome, Provider<JavaVersion> javaVersion, Provider<String> vendorDetails, boolean explicitlySet) {
26-
this(javahome, javaVersion, vendorDetails, explicitlySet, null);
27+
this(javahome, javaVersion, vendorDetails, explicitlySet, null, null);
2728
}
2829

2930
RuntimeJava(
3031
Provider<File> javahome,
3132
Provider<JavaVersion> javaVersion,
3233
Provider<String> vendorDetails,
3334
boolean explicitlySet,
34-
String preReleaseType
35+
String preReleaseType,
36+
Integer buildNumber
3537
) {
3638
this.javahome = javahome;
3739
this.javaVersion = javaVersion;
3840
this.vendorDetails = vendorDetails;
3941
this.explicitlySet = explicitlySet;
4042
this.preReleaseType = preReleaseType;
43+
this.buildNumber = buildNumber;
4144
}
4245

4346
public Provider<File> getJavahome() {
@@ -63,4 +66,8 @@ public boolean isExplicitlySet() {
6366
public String getPreReleaseType() {
6467
return preReleaseType;
6568
}
69+
70+
public Integer getBuildNumber() {
71+
return buildNumber;
72+
}
6673
}

0 commit comments

Comments
 (0)