You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by jh...@apache.org on 2014/04/14 10:10:52 UTC

svn commit: r1587161 - in /ant/core/trunk/src: main/org/apache/tools/ant/taskdefs/compilers/ tests/antunit/ tests/antunit/taskdefs/ tests/junit/org/apache/tools/ant/taskdefs/ tests/junit/org/apache/tools/ant/taskdefs/compilers/

Author: jhm
Date: Mon Apr 14 08:10:51 2014
New Revision: 1587161

URL: http://svn.apache.org/r1587161
Log:
more Java9 stuff
- create the CompilerAdapter for J9
- tests of source and target 
- add detection of J9 to antunit-base.xml

Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java
    ant/core/trunk/src/tests/antunit/antunit-base.xml
    ant/core/trunk/src/tests/antunit/taskdefs/javac-test.xml
    ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/JavacTest.java
    ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapterTest.java

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java?rev=1587161&r1=1587160&r2=1587161&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java Mon Apr 14 08:10:51 2014
@@ -121,7 +121,8 @@ public final class CompilerAdapterFactor
                 || compilerType.equalsIgnoreCase("javac1.5")
                 || compilerType.equalsIgnoreCase("javac1.6")
                 || compilerType.equalsIgnoreCase("javac1.7")
-                || compilerType.equalsIgnoreCase("javac1.8")) {
+                || compilerType.equalsIgnoreCase("javac1.8")
+                || compilerType.equalsIgnoreCase("javac1.9")) {
                 // does the modern compiler exist?
                 if (doesModernCompilerExist()) {
                     return new Javac13();

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java?rev=1587161&r1=1587160&r2=1587161&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java Mon Apr 14 08:10:51 2014
@@ -606,6 +606,15 @@ public abstract class DefaultCompilerAda
     }
 
     /**
+     * Shall we assume JDK 1.9 command line switches?
+     * @return true if JDK 1.9
+     * @since Ant 1.9.4
+     */
+    protected boolean assumeJava19() {
+        return assumeJavaXY("javac1.9", JavaEnvUtils.JAVA_1_8);
+    }
+
+    /**
      * Shall we assume command line switches for the given version of Java?
      * @since Ant 1.8.3
      */

Modified: ant/core/trunk/src/tests/antunit/antunit-base.xml
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/antunit-base.xml?rev=1587161&r1=1587160&r2=1587161&view=diff
==============================================================================
--- ant/core/trunk/src/tests/antunit/antunit-base.xml (original)
+++ ant/core/trunk/src/tests/antunit/antunit-base.xml Mon Apr 14 08:10:51 2014
@@ -27,6 +27,9 @@
   <property name="test3.jar" location="${antunit.tmpdir}/test3.jar"/>
   <property name="test4.jar" location="${antunit.tmpdir}/test4.jar"/>
   <property name="test5.jar" location="${antunit.tmpdir}/test5.jar"/>
+  <condition property="jdk1.9+">
+    <contains string="${java.version}" substring="1.9."/>
+  </condition>
   <available property="jdk1.8+" classname="java.lang.reflect.Executable"/>
   <available property="jdk1.7+" classname="java.nio.file.FileSystem"/>
   <available property="jdk1.6+" classname="java.net.CookieStore"/>

Modified: ant/core/trunk/src/tests/antunit/taskdefs/javac-test.xml
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/javac-test.xml?rev=1587161&r1=1587160&r2=1587161&view=diff
==============================================================================
--- ant/core/trunk/src/tests/antunit/taskdefs/javac-test.xml (original)
+++ ant/core/trunk/src/tests/antunit/taskdefs/javac-test.xml Mon Apr 14 08:10:51 2014
@@ -197,4 +197,116 @@ public class Adapter implements Compiler
     </javac>
     <au:assertLogContains text="adapter called" />
   </target>
+
+  <target name="testSourceAttributes" xmlns:if="ant:if">
+    <delete dir="${javac-dir}/src" />
+    <mkdir dir="${javac-dir}/src" />
+    <mkdir dir="${javac-dir}/classes" />
+    <echo file="${javac-dir}/src/A.java">
+      public class A { }
+    </echo>
+  	<presetdef name="testJavac">
+      <javac srcdir="${javac-dir}/src" destdir="${javac-dir}/classes" includeantruntime="false"/>  	    
+  	</presetdef>
+
+    <au:expectfailure>
+      <testJavac source="notValid"/>
+    </au:expectfailure>
+  	
+  	<echo>JDK 1.4+</echo>
+    <testJavac source="1.4"/>
+    <delete dir="${javac-dir}/classes"/>
+    <mkdir dir="${javac-dir}/classes"/>
+  	
+  	<sequential if:set="jdk1.5+">
+      <echo>JDK 1.5+</echo>
+      <testJavac source="1.5"/>
+      <delete dir="${javac-dir}/classes"/>
+      <mkdir dir="${javac-dir}/classes"/>
+  	</sequential>
+    
+  	<sequential if:set="jdk1.6+">
+      <echo>JDK 1.6+</echo>
+      <testJavac source="1.6"/>
+      <delete dir="${javac-dir}/classes"/>
+      <mkdir dir="${javac-dir}/classes"/>
+  	</sequential>
+  		
+  	<sequential if:set="jdk1.7+">
+      <echo>JDK 1.7+</echo>
+      <testJavac source="1.7"/>
+      <delete dir="${javac-dir}/classes"/>
+      <mkdir dir="${javac-dir}/classes"/>
+  	</sequential>
+    
+    <sequential if:set="jdk1.8+">
+      <echo>JDK 1.8+</echo>
+      <testJavac source="1.8"/>
+      <delete dir="${javac-dir}/classes"/>
+      <mkdir dir="${javac-dir}/classes"/>
+    </sequential>
+            
+    <sequential if:set="jdk1.9+">
+      <echo>JDK 1.9+</echo>
+      <testJavac source="1.9"/>
+      <delete dir="${javac-dir}/classes"/>
+      <mkdir dir="${javac-dir}/classes"/>
+    </sequential>
+  </target>	
+	
+  <target name="testTargetAttributes" xmlns:if="ant:if">
+    <delete dir="${javac-dir}/src" />
+    <mkdir dir="${javac-dir}/src" />
+    <mkdir dir="${javac-dir}/classes" />
+    <echo file="${javac-dir}/src/A.java">
+      public class A { }
+    </echo>
+    <presetdef name="testJavac">
+      <javac srcdir="${javac-dir}/src" destdir="${javac-dir}/classes" includeantruntime="false"/>       
+    </presetdef>
+
+    <au:expectfailure>
+      <testJavac target="notValid"/>
+    </au:expectfailure>
+
+    <echo>JDK 1.4+</echo>
+    <testJavac source="1.4" target="1.4"/>
+    <delete dir="${javac-dir}/classes"/>
+    <mkdir dir="${javac-dir}/classes"/>
+  	
+    <sequential if:set="jdk1.5+">
+      <echo>JDK 1.5+</echo>
+      <testJavac source="1.5" target="1.5"/>
+      <delete dir="${javac-dir}/classes"/>
+      <mkdir dir="${javac-dir}/classes"/>
+    </sequential>
+    
+    <sequential if:set="jdk1.6+">
+      <echo>JDK 1.6+</echo>
+      <testJavac source="1.6" target="1.6"/>
+      <delete dir="${javac-dir}/classes"/>
+      <mkdir dir="${javac-dir}/classes"/>
+    </sequential>
+        
+    <sequential if:set="jdk1.7+">
+      <echo>JDK 1.7+</echo>
+      <testJavac source="1.7" target="1.7"/>
+      <delete dir="${javac-dir}/classes"/>
+      <mkdir dir="${javac-dir}/classes"/>
+    </sequential>
+    
+    <sequential if:set="jdk1.8+">
+      <echo>JDK 1.8+</echo>
+      <testJavac source="1.8" target="1.8"/>
+      <delete dir="${javac-dir}/classes"/>
+      <mkdir dir="${javac-dir}/classes"/>
+    </sequential>
+            
+    <sequential if:set="jdk1.9+">
+      <echo>JDK 1.9+</echo>
+      <testJavac source="1.9" target="1.9"/>
+      <delete dir="${javac-dir}/classes"/>
+      <mkdir dir="${javac-dir}/classes"/>
+    </sequential>
+  </target> 
 </project>

Modified: ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/JavacTest.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/JavacTest.java?rev=1587161&r1=1587160&r2=1587161&view=diff
==============================================================================
--- ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/JavacTest.java (original)
+++ ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/JavacTest.java Mon Apr 14 08:10:51 2014
@@ -18,13 +18,21 @@
 
 package org.apache.tools.ant.taskdefs;
 
+import java.io.File;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import junit.framework.TestCase;
+
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.compilers.CompilerAdapter;
 import org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory;
 import org.apache.tools.ant.taskdefs.compilers.Javac13;
 import org.apache.tools.ant.taskdefs.compilers.JavacExternal;
-
-import junit.framework.TestCase;
+import org.apache.tools.ant.types.Path;
 
 /**
  * Testcase for <javac>.

Modified: ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapterTest.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapterTest.java?rev=1587161&r1=1587160&r2=1587161&view=diff
==============================================================================
--- ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapterTest.java (original)
+++ ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapterTest.java Mon Apr 14 08:10:51 2014
@@ -133,6 +133,36 @@ public class DefaultCompilerAdapterTest 
         testSource(null, "javac1.8", "", "8");
     }
 
+    public void testImplicitSourceForJava19() {
+        commonSourceDowngrades("javac1.9");
+        testSource("1.5", "javac1.9",
+                   "If you specify -target 1.5 you now must also specify"
+                   + " -source 1.5", "1.5");
+        testSource("1.6", "javac1.9",
+                   "If you specify -target 1.6 you now must also specify"
+                   + " -source 1.6", "1.6");
+        testSource("1.7", "javac1.9",
+                   "If you specify -target 1.7 you now must also specify"
+                   + " -source 1.7", "1.7");
+        testSource("1.8", "javac1.9",
+                "If you specify -target 1.8 you now must also specify"
+                + " -source 1.8", "1.8");
+        testSource("5", "javac1.9",
+                   "If you specify -target 5 you now must also specify"
+                   + " -source 5", "5");
+        testSource("6", "javac1.9",
+                   "If you specify -target 6 you now must also specify"
+                   + " -source 6", "6");
+        testSource("7", "javac1.9",
+                   "If you specify -target 7 you now must also specify"
+                   + " -source 7", "7");
+        testSource("8", "javac1.9",
+                "If you specify -target 8 you now must also specify"
+                + " -source 8", "8");
+        testSource(null, "javac1.9", "", "1.8");
+        testSource(null, "javac1.9", "", "8");
+    }
+
     private void commonSourceDowngrades(String javaVersion) {
         testSource("1.3", javaVersion,
                    "If you specify -target 1.1 you now must also specify"