Skip to content

Commit 6fcc618

Browse files
authored
[7.x] Separate minimum compiler and runtime Java version properties (#79108) (#79183)
1 parent 05d6f64 commit 6fcc618

File tree

4 files changed

+29
-11
lines changed

4 files changed

+29
-11
lines changed

build-conventions/src/main/java/org/elasticsearch/gradle/internal/conventions/VersionPropertiesBuildService.java

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,11 @@
1515
import org.gradle.api.provider.ProviderFactory;
1616
import org.gradle.api.services.BuildService;
1717
import org.gradle.api.services.BuildServiceParameters;
18-
import org.gradle.initialization.layout.BuildLayout;
19-
import org.gradle.initialization.layout.BuildLayoutFactory;
2018

21-
import javax.inject.Inject;
2219
import java.io.File;
2320
import java.io.IOException;
2421
import java.util.Properties;
22+
import javax.inject.Inject;
2523

2624
abstract class VersionPropertiesBuildService implements BuildService<VersionPropertiesBuildService.Params>, AutoCloseable {
2725

@@ -33,12 +31,33 @@ public VersionPropertiesBuildService(ProviderFactory providerFactory) {
3331
try {
3432
File propertiesInputFile = new File(infoPath, "version.properties");
3533
properties = VersionPropertiesLoader.loadBuildSrcVersion(propertiesInputFile, providerFactory);
36-
properties.put("minimumJava", 11);
34+
properties.computeIfAbsent("minimumRuntimeJava", s -> resolveMinimumRuntimeJavaVersion(infoPath));
35+
properties.computeIfAbsent("minimumCompilerJava", s -> resolveMinimumCompilerJavaVersion(infoPath));
3736
} catch (IOException e) {
3837
throw new GradleException("Cannot load VersionPropertiesBuildService", e);
3938
}
4039
}
41-
40+
41+
private JavaVersion resolveMinimumRuntimeJavaVersion(File infoPath) {
42+
return resolveJavaVersion(infoPath, "src/main/resources/minimumRuntimeVersion");
43+
}
44+
45+
private JavaVersion resolveMinimumCompilerJavaVersion(File infoPath) {
46+
return resolveJavaVersion(infoPath, "src/main/resources/minimumCompilerVersion");
47+
}
48+
49+
private JavaVersion resolveJavaVersion(File infoPath, String path) {
50+
final JavaVersion minimumJavaVersion;
51+
File minimumJavaInfoSource = new File(infoPath, path);
52+
try {
53+
String versionString = FileUtils.readFileToString(minimumJavaInfoSource);
54+
minimumJavaVersion = JavaVersion.toVersion(versionString);
55+
} catch (IOException e) {
56+
throw new GradleException("Cannot resolve minimum compiler version via VersionPropertiesBuildService", e);
57+
}
58+
return minimumJavaVersion;
59+
}
60+
4261
public Properties getProperties() {
4362
return properties;
4463
}

build-tools-internal/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ gradlePlugin {
167167
* Java version *
168168
*****************************************************************************/
169169

170-
def minCompilerJava = versions.get("minimumJava")
170+
def minCompilerJava = versions.get("minimumCompilerJava")
171171
targetCompatibility = minCompilerJava
172172
sourceCompatibility = minCompilerJava
173173

build-tools/build.gradle

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
* in compliance with, at your election, the Elastic License 2.0 or the Server
66
* Side Public License, v 1.
77
*/
8-
import org.elasticsearch.gradle.internal.conventions.VersionPropertiesLoader
98

109
plugins {
1110
id 'java-gradle-plugin'
@@ -22,8 +21,8 @@ description = "The elasticsearch build tools"
2221

2322
group = "org.elasticsearch.gradle"
2423
version = versions.getProperty("elasticsearch")
25-
targetCompatibility = versions.get("minimumJava")
26-
sourceCompatibility = versions.get("minimumJava")
24+
targetCompatibility = 11
25+
sourceCompatibility = 11
2726

2827
gradlePlugin {
2928
// We already configure publication and we don't need or want the one that comes

build-tools/reaper/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ plugins {
77

88
group = "org.elasticsearch.gradle"
99
version = versions.getProperty("elasticsearch")
10-
targetCompatibility = versions.get("minimumJava")
11-
sourceCompatibility = versions.get("minimumJava")
10+
targetCompatibility = 11
11+
sourceCompatibility = 11
1212

1313
tasks.named("jar").configure {
1414
archiveFileName = "${project.name}.jar"

0 commit comments

Comments
 (0)