Skip to content

Commit 373ee20

Browse files
committed
Fix ea based distribution building
1 parent 374b96b commit 373ee20

File tree

4 files changed

+17
-20
lines changed

4 files changed

+17
-20
lines changed

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

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ public GlobalBuildInfoPlugin(
9898

9999
@Override
100100
public void apply(Project project) {
101-
102101
if (project != project.getRootProject()) {
103102
throw new IllegalStateException(this.getClass().getName() + " can only be applied to the root project.");
104103
}
@@ -350,10 +349,10 @@ private RuntimeJava findRuntimeJavaHome() {
350349
}
351350

352351
private RuntimeJava runtimeJavaHome(Provider<File> fileProvider, boolean explicitlySet) {
353-
return runtimeJavaHome(fileProvider, explicitlySet, null);
352+
return runtimeJavaHome(fileProvider, explicitlySet, null, null);
354353
}
355354

356-
private RuntimeJava runtimeJavaHome(Provider<File> fileProvider, boolean explicitlySet, String preReleasePostfix) {
355+
private RuntimeJava runtimeJavaHome(Provider<File> fileProvider, boolean explicitlySet, String preReleasePostfix, Integer buildNumber) {
357356
Provider<JavaVersion> javaVersion = fileProvider.map(
358357
javaHome -> determineJavaVersion(
359358
"runtime java.home",
@@ -367,19 +366,15 @@ private RuntimeJava runtimeJavaHome(Provider<File> fileProvider, boolean explici
367366
Provider<String> vendorDetails = fileProvider.map(j -> metadataDetector.getMetadata(getJavaInstallation(j)))
368367
.map(m -> formatJavaVendorDetails(m));
369368

370-
return new RuntimeJava(fileProvider, javaVersion, vendorDetails, explicitlySet, preReleasePostfix);
369+
return new RuntimeJava(fileProvider, javaVersion, vendorDetails, explicitlySet, preReleasePostfix, buildNumber);
371370
}
372371

373372
private RuntimeJava resolvePreReleaseRuntimeJavaHome(String runtimeJavaProperty) {
374373
var major = JavaLanguageVersion.of(Integer.parseInt(runtimeJavaProperty.substring(0, runtimeJavaProperty.length() - 4)));
375374
Integer buildNumber = Integer.getInteger("runtime.java.build");
376375
var jdkbuild = buildNumber == null ? findLatestPreReleaseBuild(major) : findPreReleaseBuild(major, buildNumber);
377-
String prVersionString = String.format("%d-%s+%d", major.asInt(), jdkbuild.type(), jdkbuild.buildNumber());
378-
return resolveJavaHomeFromJdkDownloadPlugin(jdkbuild.type(), major, prVersionString);
379-
380-
}
381-
382-
private RuntimeJava resolveJavaHomeFromJdkDownloadPlugin(String preReleaseType, JavaLanguageVersion major, String prVersionString) {
376+
String preReleaseType = jdkbuild.type();
377+
String prVersionString = String.format("%d-%s+%d", major.asInt(), preReleaseType, jdkbuild.buildNumber());
383378
NamedDomainObjectContainer<Jdk> container = (NamedDomainObjectContainer<Jdk>) project.getExtensions().getByName("jdks");
384379
Jdk jdk = container.create(preReleaseType + "_" + major.asInt(), j -> {
385380
j.setVersion(prVersionString);
@@ -391,7 +386,7 @@ private RuntimeJava resolveJavaHomeFromJdkDownloadPlugin(String preReleaseType,
391386
// We on purpose resolve this here eagerly to ensure we resolve the jdk configuration in the context of the root project.
392387
// If we keep this lazy we can not guarantee in which project context this is resolved which will fail the build.
393388
File file = new File(jdk.getJavaHomePath().toString());
394-
return runtimeJavaHome(providers.provider(() -> file), true, preReleaseType);
389+
return runtimeJavaHome(providers.provider(() -> file), true, preReleaseType, jdkbuild.buildNumber());
395390
}
396391

397392
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
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/toolchain/EarlyAccessCatalogJdkToolchainResolver.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,6 @@ static List<PreReleaseJdkBuild> findRecentPreReleaseBuild(JavaLanguageVersion la
142142
ObjectMapper mapper = new ObjectMapper();
143143
JsonNode node = mapper.readTree(is);
144144
ObjectNode majors = (ObjectNode) node.get("majors");
145-
System.out.println(majors.getClass());
146145
ObjectNode perVersion = (ObjectNode) majors.get("" + languageVersion.asInt());
147146
ArrayNode buildsNode = (ArrayNode) perVersion.get("builds");
148147
List<JsonNode> buildsList = new ArrayList<>();

distribution/build.gradle

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import org.elasticsearch.gradle.transform.FilteringJarTransform
2020
import java.nio.file.Files
2121
import java.nio.file.Path
2222

23-
import static org.elasticsearch.gradle.internal.toolchain.EarlyAccessCatalogJdkToolchainResolver.findLatestPreReleaseBuildNumber
23+
import static org.elasticsearch.gradle.internal.toolchain.EarlyAccessCatalogJdkToolchainResolver.findLatestPreReleaseBuild
2424

2525
plugins {
2626
id 'base'
@@ -250,13 +250,9 @@ configure(subprojects.findAll { ['archives', 'packages'].contains(it.name) }) {
250250
apply plugin: 'elasticsearch.repositories'
251251

252252
if (buildParams.runtimeJava.preRelease) {
253-
Integer buildNumber = Integer.getInteger("runtime.java.build")
254253
String preReleaseType = buildParams.runtimeJava.preReleaseType
255254
def runtimeJavaMajorVersion = Integer.parseInt(buildParams.runtimeJavaVersion.get().getMajorVersion())
256-
if (buildNumber == null) {
257-
buildNumber = findLatestPreReleaseBuildNumber(runtimeJavaMajorVersion, preReleaseType);
258-
}
259-
String preReleaseVersionString = String.format("%d-%s+%d", runtimeJavaMajorVersion, preReleaseType, buildNumber);
255+
String preReleaseVersionString = String.format("%d-%s+%d", runtimeJavaMajorVersion, preReleaseType, buildParams.runtimeJava.buildNumber)
260256

261257
project.jdks {
262258
['darwin', 'windows', 'linux'].each { platform ->

0 commit comments

Comments
 (0)