Browse Source

Merge branch '1.9.x'

master
Stefan Bodewig 5 years ago
parent
commit
bc9fed1198
6 changed files with 84 additions and 27 deletions
  1. +3
    -0
      WHATSNEW
  2. +5
    -0
      manual/Tasks/rmic.html
  3. +33
    -25
      src/etc/testcases/taskdefs/rmic/rmic.xml
  4. +5
    -0
      src/main/org/apache/tools/ant/taskdefs/rmic/ForkingSunRmic.java
  5. +20
    -2
      src/tests/antunit/taskdefs/rmic-test.xml
  6. +18
    -0
      src/tests/junit/org/apache/tools/ant/taskdefs/RmicAdvancedTest.java

+ 3
- 0
WHATSNEW View File

@@ -54,6 +54,9 @@ Other changes:
reproducible builds (https://reproducible-builds.org/specs/source-date-epoch/#idm55)
Bugzilla Report 62617

* rmic has been removed from Java 15. The task will now throw an
exception if you try to use it while running Java 15 or newer.

Changes from Ant 1.10.6 TO Ant 1.10.7
=====================================



+ 5
- 0
manual/Tasks/rmic.html View File

@@ -27,6 +27,11 @@
<h2 id="rmic">Rmic</h2>
<h3>Description</h3>
<p>Runs the <kbd>rmic</kbd> compiler for a certain class.</p>

<p><b>Note</b> <kbd>rmic</kbd> has been deprecated as of Java 13 and
removed as of Java 15. Trying to use it with Java15 will fail unless
you specifiy the execxutable or rmic-adapter explicitly.</p>

<p><code>Rmic</code> can be run on a single class (as specified with the classname attribute) or a
number of classes at once (all classes below base that are neither <code>_Stub</code>
nor <code>_Skel</code> classes). If you want to <code>rmic</code> a single class and this class is


+ 33
- 25
src/etc/testcases/taskdefs/rmic/rmic.xml View File

@@ -201,67 +201,75 @@
<target name="probe-rmic">
<available property="kaffe.present" classname="jkaffe.rmi.rmic.RMIC"/>
<condition property="rmic.present">
<or>
<available classname="sun.rmi.rmic.Main"/>
<!-- we'll use forking as default for Java9 -->
<available classname="java.lang.module.ModuleDescriptor"/>
</or>
<and>
<or>
<available classname="sun.rmi.rmic.Main"/>
<!-- we'll use forking as default for Java9 -->
<available classname="java.lang.module.ModuleDescriptor"/>
</or>
<not>
<javaversion atleast="15"/>
</not>
</and>
</condition>
<condition property="rmic.compiler" value="forking">
<available classname="java.lang.module.ModuleDescriptor"/>
</condition>
<property name="rmic.compiler" value="sun"/>
<available property="wlrmic.present" classname="weblogic.rmic"/>
<condition property="java15+">
<javaversion atleast="15"/>
</condition>
</target>

<target name="testDefault" depends="init">
<target name="testDefault" depends="init" unless="java15+">
<base-rmic compiler="default" listfiles="true"/>
<assertBaseCompiled/>
</target>

<target name="testDefaultDest" depends="init">
<target name="testDefaultDest" depends="init" unless="java15+">
<dest-rmic compiler="default"/>
<assertBaseCompiledInDest/>
</target>

<target name="testEmpty" depends="init">
<target name="testEmpty" depends="init" unless="java15+">
<base-rmic compiler=""/>
<assertBaseCompiled/>
</target>

<target name="testEmptyDest" depends="init">
<target name="testEmptyDest" depends="init" unless="java15+">
<dest-rmic compiler=""/>
<assertBaseCompiledInDest/>
</target>

<target name="testVersion11" depends="init">
<target name="testVersion11" depends="init" unless="java15+">
<base-rmic compiler="default" stubversion="1.1" />
<assertBaseCompiled/>
</target>

<target name="testVersion11Dest" depends="init">
<target name="testVersion11Dest" depends="init" unless="java15+">
<dest-rmic compiler="default" stubversion="1.1" />
<assertBaseCompiledInDest/>
</target>

<target name="testVersion12" depends="init">
<target name="testVersion12" depends="init" unless="java15+">
<base-rmic compiler="default" stubversion="1.2" />
<assertStubCompiled/>
<assertSkelAbsent/>
</target>
<target name="testVersion12Dest" depends="init">
<target name="testVersion12Dest" depends="init" unless="java15+">
<dest-rmic compiler="default" stubversion="1.2" />
<assertStubCompiledInDest/>
<assertSkelAbsentInDest/>
</target>
<target name="testVersionCompat" depends="init">
<target name="testVersionCompat" depends="init" unless="java15+">
<base-rmic compiler="default" stubversion="compat" />
<assertBaseCompiled/>
</target>
<target name="testVersionCompatDest" depends="init">
<target name="testVersionCompatDest" depends="init" unless="java15+">
<dest-rmic compiler="default" stubversion="compat" />
<assertBaseCompiledInDest/>
</target>
@@ -379,35 +387,35 @@
</javac>
</target>

<target name="testAntClasspath" depends="compileAntTimestamp">
<target name="testAntClasspath" depends="compileAntTimestamp" unless="java15+">
<base-rmic
compiler="default"
/>
<assertAntCompiled/>
</target>

<target name="testAntClasspathDest" depends="compileAntTimestamp">
<target name="testAntClasspathDest" depends="compileAntTimestamp" unless="java15+">
<dest-rmic
compiler="default"
/>
<assertAntCompiledInDest/>
</target>

<target name="testForkingAntClasspath" depends="compileAntTimestamp">
<target name="testForkingAntClasspath" depends="compileAntTimestamp" unless="java15+">
<base-rmic
compiler="forking"
/>
<assertAntCompiled />
</target>

<target name="testForkingAntClasspathDest" depends="compileAntTimestamp">
<target name="testForkingAntClasspathDest" depends="compileAntTimestamp" unless="java15+">
<dest-rmic
compiler="forking"
/>
<assertAntCompiledInDest />
</target>

<target name="testDefaultBadClass" depends="init">
<target name="testDefaultBadClass" depends="init" unless="java15+">
<rmic-bad-class compiler="default"/>
</target>

@@ -423,7 +431,7 @@
/>
</target>

<target name="testMagicPropertyIsEmptyString" depends="init">
<target name="testMagicPropertyIsEmptyString" depends="init" unless="java15+">
<property name="build.rmic" value=""/>
<base-rmic />
<assertBaseCompiled/>
@@ -455,23 +463,23 @@
<assertBaseCompiledInDest/>
</target>

<target name="testIDL" depends="init">
<target name="testIDL" depends="init" unless="java15+">
<base-rmic compiler="default" idl="true"/>
<assertFileCreated file="RemoteTimestamp.idl"/>
</target>

<target name="testIDLDest" depends="init">
<target name="testIDLDest" depends="init" unless="java15+">
<dest-rmic compiler="default" idl="true"/>
<assertFileCreatedInDest file="RemoteTimestamp.idl"/>
</target>

<target name="testIIOP" depends="init">
<target name="testIIOP" depends="init" unless="java15+">
<base-rmic compiler="default" iiop="true"/>
<assertFileCreated file="_RemoteTimestamp_Stub.class"/>
<assertFileCreated file="_RemoteTimestampImpl_Tie.class"/>
</target>

<target name="testIIOPDest" depends="init">
<target name="testIIOPDest" depends="init" unless="java15+">
<dest-rmic compiler="default" iiop="true"/>
<assertFileCreatedInDest file="_RemoteTimestamp_Stub.class"/>
<assertFileCreatedInDest file="_RemoteTimestampImpl_Tie.class"/>


+ 5
- 0
src/main/org/apache/tools/ant/taskdefs/rmic/ForkingSunRmic.java View File

@@ -72,6 +72,11 @@ public class ForkingSunRmic extends DefaultRmicAdapter {
Project project = owner.getProject();
String executable = owner.getExecutable();
if (executable == null) {
if (JavaEnvUtils.isAtLeastJavaVersion("15")) {
throw new BuildException("rmic does not exist under Java 15 and higher,"
+ " use rmic of an older JDK and explicitly set the executable attribute");
}

// no explicitly specified executable
// rely on RMIC being on the path
executable = JavaEnvUtils.getJdkExecutable(getExecutableName());


+ 20
- 2
src/tests/antunit/taskdefs/rmic-test.xml View File

@@ -76,8 +76,13 @@ public class Adapter implements RmicAdapter {
<au:assertLogContains text="adapter called"/>
</target>

<target name="testSourceBase"
description="https://issues.apache.org/bugzilla/show_bug.cgi?id=48970">
<target name="-check-jdk">
<condition property="java15+">
<javaversion atleast="15"/>
</condition>
</target>

<target name="-setup-real-test">
<mkdir dir="${input}/org/example"/>
<mkdir dir="${output}"/>
<echo file="${input}/org/example/Foo.java"><![CDATA[
@@ -96,10 +101,23 @@ public class FooImpl implements Foo {
}
}]]></echo>
<javac srcdir="${input}" destdir="${output}"/>
</target>

<target name="testSourceBase" depends="-check-jdk, -setup-real-test" unless="java15+"
description="https://issues.apache.org/bugzilla/show_bug.cgi?id=48970">
<rmic sourcebase="${input}" base="${output}">
<include name="**/*Impl.class"/>
</rmic>
<au:assertFileExists file="${input}/org/example/FooImpl_Stub.java"/>
<au:assertFileDoesntExist file="${output}/org/example/FooImpl_Stub.java"/>
</target>

<target name="testSimpleCompileFailsOnJava15+" depends="-check-jdk, -setup-real-test"
if="java15+">
<au:expectfailure>
<rmic sourcebase="${input}" base="${output}">
<include name="**/*Impl.class"/>
</rmic>
</au:expectfailure>
</target>
</project>

+ 18
- 0
src/tests/junit/org/apache/tools/ant/taskdefs/RmicAdvancedTest.java View File

@@ -229,6 +229,8 @@ public class RmicAdvancedTest {
*/
@Test
public void testDefaultBadClass() {
assumeFalse("Current system is Java 15 or newer",
JavaEnvUtils.isAtLeastJavaVersion("15"));
thrown.expect(BuildException.class);
thrown.expectMessage(Rmic.ERROR_RMIC_FAILED);
try {
@@ -337,6 +339,8 @@ public class RmicAdvancedTest {
public void testXnewForkedJava9plus() {
assumeTrue("Current system is Java 8 or older",
JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_9));
assumeFalse("Current system is Java 15 or newer",
JavaEnvUtils.isAtLeastJavaVersion("15"));
thrown.expect(BuildException.class);
thrown.expectMessage("JDK9 has removed support for -Xnew");
buildRule.executeTarget("testXnewForked");
@@ -359,6 +363,8 @@ public class RmicAdvancedTest {
public void testXnewForkedDestJava9plus() {
assumeTrue("Current system is Java 8 or older",
JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_9));
assumeFalse("Current system is Java 15 or newer",
JavaEnvUtils.isAtLeastJavaVersion("15"));
thrown.expect(BuildException.class);
thrown.expectMessage("JDK9 has removed support for -Xnew");
buildRule.executeTarget("testXnewForkedDest");
@@ -381,6 +387,8 @@ public class RmicAdvancedTest {
public void testXnewCompilerJava9plus() {
assumeTrue("Current system is Java 8 or older",
JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_9));
assumeFalse("Current system is Java 15 or newer",
JavaEnvUtils.isAtLeastJavaVersion("15"));
thrown.expect(BuildException.class);
thrown.expectMessage("JDK9 has removed support for -Xnew");
buildRule.executeTarget("testXnewCompiler");
@@ -403,6 +411,8 @@ public class RmicAdvancedTest {
public void testXnewCompilerDestJava9plus() {
assumeTrue("Current system is Java 8 or older",
JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_9));
assumeFalse("Current system is Java 15 or newer",
JavaEnvUtils.isAtLeastJavaVersion("15"));
thrown.expect(BuildException.class);
thrown.expectMessage("JDK9 has removed support for -Xnew");
buildRule.executeTarget("testXnewCompilerDest");
@@ -423,6 +433,8 @@ public class RmicAdvancedTest {
@Test
public void testIDLJava11plus() {
assumeTrue("Current system is Java 10 or older", JavaEnvUtils.isAtLeastJavaVersion("11"));
assumeFalse("Current system is Java 15 or newer",
JavaEnvUtils.isAtLeastJavaVersion("15"));
thrown.expect(BuildException.class);
thrown.expectMessage("this rmic implementation doesn't support the -idl switch");
buildRule.executeTarget("testIDL");
@@ -443,6 +455,8 @@ public class RmicAdvancedTest {
@Test
public void testIDLDestJava11plus() {
assumeTrue("Current system is Java 10 or older", JavaEnvUtils.isAtLeastJavaVersion("11"));
assumeFalse("Current system is Java 15 or newer",
JavaEnvUtils.isAtLeastJavaVersion("15"));
thrown.expect(BuildException.class);
thrown.expectMessage("this rmic implementation doesn't support the -idl switch");
buildRule.executeTarget("testIDL");
@@ -463,6 +477,8 @@ public class RmicAdvancedTest {
@Test
public void testIIOPJava11plus() {
assumeTrue("Current system is Java 10 or older", JavaEnvUtils.isAtLeastJavaVersion("11"));
assumeFalse("Current system is Java 15 or newer",
JavaEnvUtils.isAtLeastJavaVersion("15"));
thrown.expect(BuildException.class);
thrown.expectMessage("this rmic implementation doesn't support the -iiop switch");
buildRule.executeTarget("testIIOP");
@@ -483,6 +499,8 @@ public class RmicAdvancedTest {
@Test
public void testIIOPDestJava11plus() {
assumeTrue("Current system is Java 10 or older", JavaEnvUtils.isAtLeastJavaVersion("11"));
assumeFalse("Current system is Java 15 or newer",
JavaEnvUtils.isAtLeastJavaVersion("15"));
thrown.expect(BuildException.class);
thrown.expectMessage("this rmic implementation doesn't support the -iiop switch");
buildRule.executeTarget("testIIOP");


Loading…
Cancel
Save