[NO ISSUE] Prevent cross-compilation to Java 8 unless bootstrap jar is provided
To prevent unexpected runtime errors, force the target version to the
java version, unless 'java8-bootclasspath' is defined, in which case the
target version is 8
Change-Id: Id4f924a91ded6b3e55e5d74b8340bfe8a3b8bf63
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2811
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mblow@apache.org>
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
diff --git a/asterixdb/pom.xml b/asterixdb/pom.xml
index 5195967..3d8d805 100644
--- a/asterixdb/pom.xml
+++ b/asterixdb/pom.xml
@@ -46,7 +46,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<file.encoding>UTF-8</file.encoding>
<jvm.extraargs />
- <jdk.version>1.8</jdk.version>
+ <source.jdk.version>1.8</source.jdk.version>
<javac.xlint.value>all</javac.xlint.value>
<source-format.goal>format</source-format.goal>
<source-format.skip>false</source-format.skip>
@@ -197,8 +197,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <source>${jdk.version}</source>
- <target>${jdk.version}</target>
+ <source>${source.jdk.version}</source>
+ <target>${target.jdk.version}</target>
<compilerArgument>-Xlint:${javac.xlint.value}</compilerArgument>
</configuration>
</plugin>
@@ -523,7 +523,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
- <version>3.0.2</version>
+ <version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -533,7 +533,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
- <version>3.5.1</version>
+ <version>3.5.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -765,6 +765,67 @@
<failIfNoTests>false</failIfNoTests>
</properties>
</profile>
+ <profile>
+ <id>java8</id>
+ <activation>
+ <jdk>1.8</jdk>
+ </activation>
+ <properties>
+ <target.jdk.version>8</target.jdk.version>
+ </properties>
+ </profile>
+ <profile>
+ <id>java9</id>
+ <activation>
+ <jdk>9</jdk>
+ </activation>
+ <properties>
+ <target.jdk.version>9</target.jdk.version>
+ </properties>
+ </profile>
+ <profile>
+ <id>java10</id>
+ <activation>
+ <jdk>10</jdk>
+ </activation>
+ <properties>
+ <target.jdk.version>10</target.jdk.version>
+ </properties>
+ </profile>
+ <profile>
+ <id>java11</id>
+ <activation>
+ <jdk>11</jdk>
+ </activation>
+ <properties>
+ <target.jdk.version>11</target.jdk.version>
+ </properties>
+ </profile>
+ <profile>
+ <id>java8-bootclasspath</id>
+ <activation>
+ <property>
+ <name>java8-bootclasspath</name>
+ </property>
+ </activation>
+ <properties>
+ <target.jdk.version>8</target.jdk.version>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <compilerArgs combine.children="append">
+ <arg>-bootclasspath</arg>
+ <arg>${java8-bootclasspath}</arg>
+ </compilerArgs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
<modules>
diff --git a/hyracks-fullstack/hyracks/pom.xml b/hyracks-fullstack/hyracks/pom.xml
index 7bef19e..6255d85 100644
--- a/hyracks-fullstack/hyracks/pom.xml
+++ b/hyracks-fullstack/hyracks/pom.xml
@@ -35,7 +35,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
- <version>3.5.1</version>
+ <version>3.5.2</version>
</plugin>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>
diff --git a/hyracks-fullstack/pom.xml b/hyracks-fullstack/pom.xml
index 69739ba..1de4c6b 100644
--- a/hyracks-fullstack/pom.xml
+++ b/hyracks-fullstack/pom.xml
@@ -48,7 +48,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<file.encoding>UTF-8</file.encoding>
- <jdk.version>1.8</jdk.version>
+ <source.jdk.version>1.8</source.jdk.version>
<javac.xlint.value>all</javac.xlint.value>
<jvm.extraargs />
<sonar.jacoco.reportPath>${env.PWD}/target/jacoco-merged.exec</sonar.jacoco.reportPath>
@@ -318,8 +318,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <source>${jdk.version}</source>
- <target>${jdk.version}</target>
+ <source>${source.jdk.version}</source>
+ <target>${target.jdk.version}</target>
<compilerArgument>-Xlint:${javac.xlint.value}</compilerArgument>
</configuration>
</plugin>
@@ -559,7 +559,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
- <version>3.0.2</version>
+ <version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.doxia</groupId>
@@ -697,6 +697,67 @@
<failIfNoTests>false</failIfNoTests>
</properties>
</profile>
+ <profile>
+ <id>java8</id>
+ <activation>
+ <jdk>1.8</jdk>
+ </activation>
+ <properties>
+ <target.jdk.version>8</target.jdk.version>
+ </properties>
+ </profile>
+ <profile>
+ <id>java9</id>
+ <activation>
+ <jdk>9</jdk>
+ </activation>
+ <properties>
+ <target.jdk.version>9</target.jdk.version>
+ </properties>
+ </profile>
+ <profile>
+ <id>java10</id>
+ <activation>
+ <jdk>10</jdk>
+ </activation>
+ <properties>
+ <target.jdk.version>10</target.jdk.version>
+ </properties>
+ </profile>
+ <profile>
+ <id>java11</id>
+ <activation>
+ <jdk>11</jdk>
+ </activation>
+ <properties>
+ <target.jdk.version>11</target.jdk.version>
+ </properties>
+ </profile>
+ <profile>
+ <id>java8-bootclasspath</id>
+ <activation>
+ <property>
+ <name>java8-bootclasspath</name>
+ </property>
+ </activation>
+ <properties>
+ <target.jdk.version>8</target.jdk.version>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <compilerArgs combine.children="append">
+ <arg>-bootclasspath</arg>
+ <arg>${java8-bootclasspath}</arg>
+ </compilerArgs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
<modules>
<module>hyracks</module>