Drop support for building or running on Java 7.
This patch does some initial work of adding support for building GWT
on Java >8, but until the javadoc wiring is rebuilt (or conditionally
disabled) a normal build won't be possible.
After Javadoc has been updated or guarded behind a flag, isJava8 can be
false when Java >8 JDK is used to build, and tests for those can be
guarded as makes sense.
The error-prone Java compiler is also temporarily disabled in this
commit, and will be restored and updated to latest in a follow-up patch.
Bug: 9683
Bug-Link: https://github.com/gwtproject/gwt/issues/9683
Change-Id: I5ec65e330409802368b2a60148d7ef1ee97c03d1
diff --git a/common.ant.xml b/common.ant.xml
index b77ea2a..9c19fa8 100755
--- a/common.ant.xml
+++ b/common.ant.xml
@@ -27,11 +27,12 @@
message="This build file is in an inconsistent state (${ant.file} != ${test.ant.file})."/>
<!-- Global Properties -->
- <condition property="isJava8">
- <not>
- <equals arg1="${ant.java.version}" arg2="1.7" />
- </not>
- </condition>
+ <!--
+ Now that Java8 is the baseline, this property indicates that the build should target the
+ baseline, excluding 11+ tests, etc. This is temporary, to remove Java7 support, but not yet
+ remove the various places that version may matter, while Java 9+ support is pending.
+ -->
+ <property name="isJava8" value="true" />
<property environment="env"/>
<condition property="gwt.version" value="${env.GWT_VERSION}" else="0.0.0">
<isset property="env.GWT_VERSION"/>
@@ -61,15 +62,10 @@
<property name="javac.debug" value="true"/>
<property name="javac.debuglevel" value="lines,vars,source"/>
<property name="javac.encoding" value="utf-8"/>
- <property name="javac.source" value="1.7"/>
- <property name="javac.target" value="1.7"/>
+ <property name="javac.source" value="8"/>
+ <property name="javac.target" value="8"/>
<property name="javac.nowarn" value="true"/>
- <condition property="javac.fork" value="true" else="false">
- <isfalse value="${isJava8}"/>
- </condition>
- <condition property="javac.compiler" value="modern" else="com.google.errorprone.ErrorProneAntCompilerAdapter">
- <isfalse value="${isJava8}"/>
- </condition>
+
<property name="junit.out" location="${project.build}/test"/>
<property name="emma.dir" value="${gwt.tools.redist}/emma"/>
<property name="emma.filter.exclude" value=""/>
@@ -155,10 +151,7 @@
<javac srcdir="src" destdir="${javac.out}" debug="${javac.debug}"
debuglevel="${javac.debuglevel}" source="${javac.source}" target="${javac.target}"
nowarn="${javac.nowarn}" encoding="${javac.encoding}"
- includeantruntime="false" fork="${javac.fork}" compiler="${javac.compiler}">
- <compilerclasspath if:true="${isJava8}">
- <pathelement location="${gwt.tools.lib}/errorprone/error_prone_ant-2.0.19.jar"/>
- </compilerclasspath>
+ includeantruntime="false" fork="true" compiler="modern">
</javac>
</presetdef>
diff --git a/user/build.xml b/user/build.xml
index 0ca16d6..615ea77 100755
--- a/user/build.xml
+++ b/user/build.xml
@@ -15,16 +15,18 @@
<property name="emma.merged.out" value="${junit.out}/emma-coverage"/>
<property name="gwt.junit.testcase.web.includes" value="${gwt.junit.testcase.includes}"/>
+ <!-- TODO once we compile with Java >8, update this to exclude tests based on running JDK version -->
<condition property="gwt.junit.testcase.web.excludes"
value="**/*JreSuite.class,**/OptimizedOnly*,**/*Java8Suite.class"
- else="**/*JreSuite.class,**/OptimizedOnly*">
+ else="**/*JreSuite.class,**/OptimizedOnly*,**/*Java8Suite.class">
<isfalse value="${isJava8}" />
</condition>
<property name="gwt.junit.testcase.dev.includes" value="${gwt.junit.testcase.includes}"/>
+ <!-- TODO once we compile with Java >8, update this to exclude tests based on running JDK version -->
<condition property="gwt.junit.testcase.dev.excludes"
value="**/EmulSuite.class,**/JSONSuite.class,**/RunAsyncSuite.class,**/*CompilerSuite.class,**/*JsInteropSuite.class,**/*JreSuite.class,**/OptimizedOnly*,**/*Java8Suite.class"
- else="**/EmulSuite.class,**/JSONSuite.class,**/RunAsyncSuite.class,**/*CompilerSuite.class,**/*JsInteropSuite.class,**/*JreSuite.class,**/OptimizedOnly*">
+ else="**/EmulSuite.class,**/JSONSuite.class,**/RunAsyncSuite.class,**/*CompilerSuite.class,**/*JsInteropSuite.class,**/*JreSuite.class,**/OptimizedOnly*,**/*Java8Suite.class">
<isfalse value="${isJava8}" />
</condition>
@@ -146,15 +148,14 @@
Compiles the test code for this project
-->
<target name="compile.tests"
- depends="-compile.tests.java7, -compile.tests.java8"
+ depends="-compile.tests.java8"
unless="compile.tests.complete">
</target>
- <target name="-compile.tests.java7"
- depends="compile.dev.tests, compile.emma.if.enabled">
+ <target name="-compile.tests.java8" if="isJava8" depends="compile.dev.tests, compile.emma.if.enabled">
<mkdir dir="${javac.junit.out}"/>
<gwt.javac srcdir="test" destdir="${javac.junit.out}"
- excludes="com/google/gwt/langtest/**,**/super/**,**/java8/**,**/*Java8Suite.java">
+ excludes="com/google/gwt/langtest/**,**/super/**">
<compilerarg value="-Xep:MissingCasesInEnumSwitch:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
<compilerarg value="-Xep:SelfComparison:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
<compilerarg value="-Xep:SelfEquals:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
@@ -176,25 +177,6 @@
</gwt.javac>
</target>
- <target name="-compile.tests.java8" if="isJava8" depends="-compile.tests.java7">
- <gwt.javac srcdir="test" destdir="${javac.junit.out}" source="1.8" target="1.8"
- includes="**/java8/**,**/*Java8Suite.java">
- <compilerarg value="-Xep:MissingCasesInEnumSwitch:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
- <compilerarg value="-Xep:SelfComparison:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
- <compilerarg value="-Xep:SelfEquals:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
- <compilerarg value="-Xep:FallThrough:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
- <compilerarg value="-Xep:ReturnValueIgnored:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
- <compilerarg value="-Xep:EqualsIncompatibleType:OFF" compiler="com.google.errorprone.ErrorProneAntCompilerAdapter"/>
- <classpath>
- <pathelement location="${javac.junit.out}"/>
- <pathelement location="${javac.out}"/>
- <pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.jar"/>
- <pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar"/>
- <path refid="test.extraclasspath"/>
- </classpath>
- </gwt.javac>
- </target>
-
<target name="build" depends="compile"
description="Build and package this project">
<mkdir dir="${gwt.build.lib}"/>