SOLR-17205 De-couple SolrJ Java version from server Java version (#2360)
diff --git a/build.gradle b/build.gradle
index 8569c86..9da30ad 100644
--- a/build.gradle
+++ b/build.gradle
@@ -30,6 +30,10 @@
id 'com.github.node-gradle.node' version '7.0.1' apply false
}
+// Declare default Java versions for the entire project and for SolrJ separately
+rootProject.ext.minJavaVersionDefault = JavaVersion.VERSION_11
+rootProject.ext.minJavaVersionSolrJ = JavaVersion.VERSION_11
+
apply from: file('gradle/globals.gradle')
// General metadata.
@@ -85,8 +89,6 @@
buildTime = DateTimeFormatter.ofPattern("HH:mm:ss").format(tstamp)
buildYear = DateTimeFormatter.ofPattern("yyyy").format(tstamp)
- minJavaVersion = JavaVersion.VERSION_11
-
// Allow definiting external tool locations using system props.
externalTool = { name ->
def resolved = propertyOrDefault("${name}.exe", name as String)
diff --git a/gradle/globals.gradle b/gradle/globals.gradle
index 48131b3..30eaa08 100644
--- a/gradle/globals.gradle
+++ b/gradle/globals.gradle
@@ -169,5 +169,9 @@
// "CI": Github (https://docs.github.com/en/actions/learn-github-actions/environment-variables)
// anything starting with "JENKINS_" or "HUDSON_": Jenkins/Hudson (https://jenkins.thetaphi.de/env-vars.html/)
isCIBuild = System.getenv().keySet().any { it ==~ /(?i)((JENKINS|HUDSON)(_\w+)?|CI)/ }
+
+ // Assign different java version for client-side modules 'api' and 'solrj*'
+ var isSolrJ = project.name.matches("^(solrj.*|api)\$")
+ minJavaVersion = isSolrJ ? rootProject.minJavaVersionSolrJ : rootProject.minJavaVersionDefault
}
}
diff --git a/gradle/ide/eclipse.gradle b/gradle/ide/eclipse.gradle
index 1c1b626..a088c8b 100644
--- a/gradle/ide/eclipse.gradle
+++ b/gradle/ide/eclipse.gradle
@@ -69,9 +69,9 @@
}
jdt {
- sourceCompatibility = rootProject.minJavaVersion
- targetCompatibility = rootProject.minJavaVersion
- javaRuntimeName = "JavaSE-${rootProject.minJavaVersion}"
+ sourceCompatibility = rootProject.minJavaVersionDefault
+ targetCompatibility = rootProject.minJavaVersionDefault
+ javaRuntimeName = "JavaSE-${rootProject.minJavaVersionDefault}"
}
}
diff --git a/gradle/java/javac.gradle b/gradle/java/javac.gradle
index 9812ed5..53320cc 100644
--- a/gradle/java/javac.gradle
+++ b/gradle/java/javac.gradle
@@ -19,12 +19,12 @@
allprojects {
plugins.withType(JavaPlugin) {
- sourceCompatibility = rootProject.minJavaVersion
- targetCompatibility = rootProject.minJavaVersion
+ sourceCompatibility = project.minJavaVersion
+ targetCompatibility = project.minJavaVersion
// Use 'release' flag instead of 'source' and 'target'
tasks.withType(JavaCompile) {
- options.compilerArgs += ["--release", rootProject.minJavaVersion.toString()]
+ options.compilerArgs += ["--release", project.minJavaVersion.toString()]
}
// Configure warnings.
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index ce9cd2c..107f7a9 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -86,6 +86,8 @@
* SOLR-14410: Switch from SysV init script to systemd service definition (Marius Ghita via janhoy)
+* SOLR-17205: De-couple SolrJ required Java version from server Java version (janhoy)
+
================== 9.6.0 ==================
New Features
---------------------