You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2017/12/09 19:03:45 UTC

[1/4] ant git commit: add test for Java10 version support

Repository: ant
Updated Branches:
  refs/heads/1.9.x dd1ac8f23 -> 79e9d1043


add test for Java10 version support


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/4ea39464
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/4ea39464
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/4ea39464

Branch: refs/heads/1.9.x
Commit: 4ea39464abb7633cfc68d43da5791e5c4897fd03
Parents: dd1ac8f
Author: Stefan Bodewig <bo...@apache.org>
Authored: Sat Dec 9 19:28:56 2017 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Sat Dec 9 19:28:56 2017 +0100

----------------------------------------------------------------------
 .../junit/org/apache/tools/ant/util/JavaEnvUtilsTest.java   | 9 +++++++++
 1 file changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/4ea39464/src/tests/junit/org/apache/tools/ant/util/JavaEnvUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/util/JavaEnvUtilsTest.java b/src/tests/junit/org/apache/tools/ant/util/JavaEnvUtilsTest.java
index 6b27652..e26a7cb 100644
--- a/src/tests/junit/org/apache/tools/ant/util/JavaEnvUtilsTest.java
+++ b/src/tests/junit/org/apache/tools/ant/util/JavaEnvUtilsTest.java
@@ -145,4 +145,13 @@ public class JavaEnvUtilsTest {
                 JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_9));
     }
 
+    @Test
+    public void java10IsDetectedProperly() {
+        assumeTrue("10".equals(System.getProperty("java.specification.version")));
+        assertEquals("10", JavaEnvUtils.getJavaVersion());
+        assertEquals(100, JavaEnvUtils.getJavaVersionNumber());
+        assertEquals(new DeweyDecimal("10"), JavaEnvUtils.getParsedJavaVersion());
+        assertTrue(JavaEnvUtils.isJavaVersion("10"));
+        assertTrue(JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_9));
+    }
 }


[2/4] ant git commit: deal with theoretical case of version scheme changing again

Posted by bo...@apache.org.
deal with theoretical case of version scheme changing again


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/6cd989e5
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/6cd989e5
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/6cd989e5

Branch: refs/heads/1.9.x
Commit: 6cd989e534dd52130f932ce04d3ca8aafe387cc9
Parents: 4ea3946
Author: Stefan Bodewig <bo...@apache.org>
Authored: Sat Dec 9 19:29:09 2017 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Sat Dec 9 19:29:09 2017 +0100

----------------------------------------------------------------------
 src/main/org/apache/tools/ant/util/JavaEnvUtils.java | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/6cd989e5/src/main/org/apache/tools/ant/util/JavaEnvUtils.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/util/JavaEnvUtils.java b/src/main/org/apache/tools/ant/util/JavaEnvUtils.java
index 7c980c8..359174a 100644
--- a/src/main/org/apache/tools/ant/util/JavaEnvUtils.java
+++ b/src/main/org/apache/tools/ant/util/JavaEnvUtils.java
@@ -187,8 +187,12 @@ public final class JavaEnvUtils {
             javaVersionNumber = VERSION_9;
             // at least Java9 and this should properly support the purely numeric version property
             String v = System.getProperty("java.specification.version");
-            javaVersionNumber = Integer.parseInt(v) * 10;
-            javaVersion = v;
+            DeweyDecimal pv = new DeweyDecimal(v);
+            javaVersionNumber = pv.get(0) * 10;
+            if (pv.getSize() > 1) {
+                javaVersionNumber += pv.get(1);
+            }
+            javaVersion = pv.toString();
         } catch (Throwable t) {
             // swallow as we've hit the max class version that
             // we have


[4/4] ant git commit: fail early if javah is used with java 10+

Posted by bo...@apache.org.
fail early if javah is used with java 10+


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/79e9d104
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/79e9d104
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/79e9d104

Branch: refs/heads/1.9.x
Commit: 79e9d104350c4c3db04ccb7d53a6a9a1544d17fa
Parents: 8191d7e
Author: Stefan Bodewig <bo...@apache.org>
Authored: Sat Dec 9 20:03:15 2017 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Sat Dec 9 20:03:15 2017 +0100

----------------------------------------------------------------------
 WHATSNEW                                            |  3 +++
 manual/Tasks/javah.html                             |  3 ++-
 .../optional/javah/JavahAdapterFactory.java         |  4 ++++
 src/tests/antunit/taskdefs/optional/javah-test.xml  | 16 ++++++++++++----
 .../tools/ant/taskdefs/optional/JavahTest.java      |  4 ++++
 5 files changed, 25 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/79e9d104/WHATSNEW
----------------------------------------------------------------------
diff --git a/WHATSNEW b/WHATSNEW
index 0f5e9bf..e855833 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -52,6 +52,9 @@ Other changes:
 
  * added "javac10+" as new supported value for javac's compiler attribute.
 
+ * javah has been removed from Java 10. The task will now throw an
+   exception if you try to use it while running Java 10 or newer.
+
 Changes from Ant 1.9.8 TO Ant 1.9.9
 ===================================
 

http://git-wip-us.apache.org/repos/asf/ant/blob/79e9d104/manual/Tasks/javah.html
----------------------------------------------------------------------
diff --git a/manual/Tasks/javah.html b/manual/Tasks/javah.html
index 4d3979b..d1daa7c 100644
--- a/manual/Tasks/javah.html
+++ b/manual/Tasks/javah.html
@@ -39,7 +39,8 @@ systems are used.</p>
   generate the native header files with a single step.</p>
 
 <p><b>Note</b> the <code>javah</code> has been deprecated as of Java 9
-  and is scheduled to be removed with Java 10.</p>
+  and removed as of Java 10. Trying to use it with Java10 will
+  fail.</p>
 
 <p>It is possible to use different compilers. This can be selected
 with the <code>implementation</code> attribute or a nested element.  <a

http://git-wip-us.apache.org/repos/asf/ant/blob/79e9d104/src/main/org/apache/tools/ant/taskdefs/optional/javah/JavahAdapterFactory.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/javah/JavahAdapterFactory.java b/src/main/org/apache/tools/ant/taskdefs/optional/javah/JavahAdapterFactory.java
index cc4419c..d40e595 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/javah/JavahAdapterFactory.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/javah/JavahAdapterFactory.java
@@ -89,6 +89,10 @@ public class JavahAdapterFactory {
         } else if ((JavaEnvUtils.isGij() && choice == null)
             || Gcjh.IMPLEMENTATION_NAME.equals(choice)) {
             return new Gcjh();
+        } else if (JavaEnvUtils.isAtLeastJavaVersion("10") &&
+                   (choice == null || ForkingJavah.IMPLEMENTATION_NAME.equals(choice))) {
+            throw new BuildException("javah does not exist under Java 10 and higher,"
+                + " use the javac task with nativeHeaderDir instead");
         } else if ((JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_9)
                     && choice == null)
                    || ForkingJavah.IMPLEMENTATION_NAME.equals(choice)) {

http://git-wip-us.apache.org/repos/asf/ant/blob/79e9d104/src/tests/antunit/taskdefs/optional/javah-test.xml
----------------------------------------------------------------------
diff --git a/src/tests/antunit/taskdefs/optional/javah-test.xml b/src/tests/antunit/taskdefs/optional/javah-test.xml
index 884523d..82d91c8 100644
--- a/src/tests/antunit/taskdefs/optional/javah-test.xml
+++ b/src/tests/antunit/taskdefs/optional/javah-test.xml
@@ -101,12 +101,12 @@ public class Foo {
     </presetdef>
   </target>
 
-  <target name="testSimpleCompile" depends="-setupForRealJavahTests">
+  <target name="testSimpleCompile" depends="-setupForRealJavahTests" unless="jdk10+">
     <javah-single/>
     <au:assertFileExists file="${output}/org_example_Foo.h"/>
   </target>
 
-  <target name="testCompileUsingFileset" depends="-setupForRealJavahTests">
+  <target name="testCompileUsingFileset" depends="-setupForRealJavahTests" unless="jdk10+">
     <javah-fileset/>
     <au:assertFileExists file="${output}/org_example_Foo.h"/>
   </target>
@@ -123,13 +123,21 @@ public class Foo {
     <au:assertFileExists file="${output}/org_example_Foo.h"/>
   </target>
 
-  <target name="testSimpleCompileForking" depends="-setupForRealJavahTests">
+  <target name="testSimpleCompileForking" depends="-setupForRealJavahTests" unless="jdk10+">
     <javah-single implementation="forking"/>
     <au:assertFileExists file="${output}/org_example_Foo.h"/>
   </target>
 
-  <target name="testCompileUsingFilesetForking" depends="-setupForRealJavahTests">
+  <target name="testCompileUsingFilesetForking" depends="-setupForRealJavahTests" unless="jdk10+">
     <javah-fileset implementation="forking"/>
     <au:assertFileExists file="${output}/org_example_Foo.h"/>
   </target>
+
+  <target name="testSimpleCompileFailsOnJava10+" depends="-setupForRealJavahTests"
+          if="jdk10+">
+    <au:expectfailure>
+      <javah-single/>
+    </au:expectfailure>
+  </target>
+
 </project>

http://git-wip-us.apache.org/repos/asf/ant/blob/79e9d104/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JavahTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JavahTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JavahTest.java
index 40472de..91f7b32 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JavahTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JavahTest.java
@@ -18,6 +18,8 @@
 package org.apache.tools.ant.taskdefs.optional;
 
 import org.apache.tools.ant.BuildFileRule;
+import org.apache.tools.ant.util.JavaEnvUtils;
+import org.junit.Assume;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -47,6 +49,7 @@ public class JavahTest {
 
     @Test
     public void testSimpleCompile() {
+        Assume.assumeFalse(JavaEnvUtils.isAtLeastJavaVersion("10"));
         buildRule.executeTarget("simple-compile");
         assertTrue(new File(buildRule.getProject().getProperty("output"), "org_example_Foo.h")
                 .exists());
@@ -54,6 +57,7 @@ public class JavahTest {
 
     @Test
     public void testCompileFileset() {
+        Assume.assumeFalse(JavaEnvUtils.isAtLeastJavaVersion("10"));
         buildRule.executeTarget("test-fileset");
         assertTrue(new File(buildRule.getProject().getProperty("output"), "org_example_Foo.h").exists());
     }


[3/4] ant git commit: use cleaner methid to detect current java version in

Posted by bo...@apache.org.
use cleaner methid to detect current java version in <apt>


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/8191d7e0
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/8191d7e0
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/8191d7e0

Branch: refs/heads/1.9.x
Commit: 8191d7e0f2e961953bbbb9bfd7003d6d32f3182c
Parents: 6cd989e
Author: Stefan Bodewig <bo...@apache.org>
Authored: Sat Dec 9 19:34:17 2017 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Sat Dec 9 19:34:17 2017 +0100

----------------------------------------------------------------------
 src/main/org/apache/tools/ant/taskdefs/Apt.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/8191d7e0/src/main/org/apache/tools/ant/taskdefs/Apt.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/Apt.java b/src/main/org/apache/tools/ant/taskdefs/Apt.java
index 52154a8..ab527b8 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Apt.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Apt.java
@@ -262,7 +262,7 @@ public class Apt
      */
     public void execute()
             throws BuildException {
-        if (JavaEnvUtils.getJavaVersionNumber() >= 18) {
+        if (JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_1_8)) {
            throw new BuildException("apt does not exist under Java 1.8 and higher");
         }
         super.execute();