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:31 UTC
[4/5] ant git commit: fail early if javah is used with java 10+
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());
}