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:08:28 UTC

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

Repository: ant
Updated Branches:
  refs/heads/master 1166420e3 -> 1c5a92fb1


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/master
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));
+    }
 }


[3/5] 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/master
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();


[5/5] ant git commit: Merge branch '1.9.x'

Posted by bo...@apache.org.
Merge branch '1.9.x'


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

Branch: refs/heads/master
Commit: 1c5a92fb1f6bfe673ba5239185a8ce0a2ceda277
Parents: 1166420 79e9d10
Author: Stefan Bodewig <bo...@apache.org>
Authored: Sat Dec 9 20:08:10 2017 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Sat Dec 9 20:08:10 2017 +0100

----------------------------------------------------------------------
 WHATSNEW                                            |  3 +++
 manual/Tasks/javah.html                             |  3 ++-
 .../optional/javah/JavahAdapterFactory.java         |  5 +++++
 .../org/apache/tools/ant/util/JavaEnvUtils.java     |  8 ++++++--
 src/tests/antunit/taskdefs/optional/javah-test.xml  | 16 ++++++++++++----
 .../tools/ant/taskdefs/optional/JavahTest.java      |  4 ++++
 .../org/apache/tools/ant/util/JavaEnvUtilsTest.java | 11 +++++++++++
 7 files changed, 43 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/1c5a92fb/WHATSNEW
----------------------------------------------------------------------
diff --cc WHATSNEW
index d191f9f,e855833..ce969f4
--- a/WHATSNEW
+++ b/WHATSNEW
@@@ -75,8 -52,11 +75,11 @@@ 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
 -===================================
 +Changes from Ant 1.10.0 TO Ant 1.10.1
 +=====================================
  
  Fixed bugs:
  -----------

http://git-wip-us.apache.org/repos/asf/ant/blob/1c5a92fb/manual/Tasks/javah.html
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ant/blob/1c5a92fb/src/main/org/apache/tools/ant/taskdefs/optional/javah/JavahAdapterFactory.java
----------------------------------------------------------------------
diff --cc src/main/org/apache/tools/ant/taskdefs/optional/javah/JavahAdapterFactory.java
index 2244e5b,d40e595..931131b
--- a/src/main/org/apache/tools/ant/taskdefs/optional/javah/JavahAdapterFactory.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/javah/JavahAdapterFactory.java
@@@ -85,18 -86,20 +85,23 @@@ public class JavahAdapterFactory 
          if ((JavaEnvUtils.isKaffe() && choice == null)
              || Kaffeh.IMPLEMENTATION_NAME.equals(choice)) {
              return new Kaffeh();
 -        } else if ((JavaEnvUtils.isGij() && choice == null)
 +        }
 +        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))) {
 +        }
++        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)) {
++        }
 +        if (ForkingJavah.IMPLEMENTATION_NAME.equals(choice)) {
              return new ForkingJavah();
 -        } else if (SunJavah.IMPLEMENTATION_NAME.equals(choice)) {
 +        }
 +        if (SunJavah.IMPLEMENTATION_NAME.equals(choice)) {
              return new SunJavah();
 -        } else if (choice != null) {
 +        }
 +        if (choice != null) {
              return resolveClassName(choice,
                                      // Memory leak in line below
                                      log.getProject()

http://git-wip-us.apache.org/repos/asf/ant/blob/1c5a92fb/src/main/org/apache/tools/ant/util/JavaEnvUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ant/blob/1c5a92fb/src/tests/junit/org/apache/tools/ant/util/JavaEnvUtilsTest.java
----------------------------------------------------------------------
diff --cc src/tests/junit/org/apache/tools/ant/util/JavaEnvUtilsTest.java
index 28e1386,e26a7cb..57d45e5
--- a/src/tests/junit/org/apache/tools/ant/util/JavaEnvUtilsTest.java
+++ b/src/tests/junit/org/apache/tools/ant/util/JavaEnvUtilsTest.java
@@@ -143,4 -144,14 +143,15 @@@ public class JavaEnvUtilsTest 
          assertTrue("JAVA_1_9 is not considered equal to JAVA_9",
                  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));
+     }
++
  }


[4/5] 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/master
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());
     }


[2/5] 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/master
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