bug "rmic always compiles on Java1.5" http://issues.apache.org/bugzilla/show_bug.cgi?id=33862 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277811 13f79535-47bb-0310-9956-ffa450edef68master
@@ -37,26 +37,71 @@ | |||
<macrodef name="assertFileCreated"> | |||
<attribute name="file" /> | |||
<sequential> | |||
<property name="file.to.find" location="${build.dir}/@{file}" /> | |||
<available property="file.found" file="${file.to.find}"/> | |||
<fail unless="file.found">Not found : ${file.to.find}</fail> | |||
<fail>Not found : ${build.dir}/@{file} | |||
<condition> | |||
<not><available file="${build.dir}/@{file}"/></not> | |||
</condition> | |||
</fail> | |||
</sequential> | |||
</macrodef> | |||
<macrodef name="assertBaseCompiled"> | |||
<macrodef name="assertFileAbsent"> | |||
<attribute name="file" /> | |||
<sequential> | |||
<fail>Expected to be missing : ${build.dir}/@{file} | |||
<condition> | |||
<available file="${build.dir}/@{file}"/> | |||
</condition> | |||
</fail> | |||
</sequential> | |||
</macrodef> | |||
<macrodef name="assertStubCompiled"> | |||
<sequential> | |||
<assertFileCreated file="RemoteTimestampImpl_Stub.class" /> | |||
<assertFileCreated file="RemoteTimestampImpl_Skel.class"/> | |||
</sequential> | |||
</macrodef> | |||
<macrodef name="assertAntCompiled"> | |||
<macrodef name="assertSkelCompiled"> | |||
<sequential> | |||
<assertFileCreated file="RemoteTimestampImpl_Skel.class" /> | |||
</sequential> | |||
</macrodef> | |||
<macrodef name="assertSkelAbsent"> | |||
<sequential> | |||
<assertFileAbsent file="RemoteTimestampImpl_Skel.class" /> | |||
</sequential> | |||
</macrodef> | |||
<macrodef name="assertBaseCompiled"> | |||
<sequential> | |||
<assertStubCompiled /> | |||
<assertSkelCompiled /> | |||
</sequential> | |||
</macrodef> | |||
<macrodef name="assertAntStubCompiled"> | |||
<sequential> | |||
<assertFileCreated file="AntTimestamp_Stub.class"/> | |||
</sequential> | |||
</macrodef> | |||
<macrodef name="assertAntSkelCompiled"> | |||
<sequential> | |||
<assertFileCreated file="AntTimestamp_Skel.class"/> | |||
</sequential> | |||
</macrodef> | |||
<macrodef name="assertAntCompiled"> | |||
<sequential> | |||
<assertAntStubCompiled /> | |||
<assertAntSkelCompiled /> | |||
</sequential> | |||
</macrodef> | |||
</target> | |||
<target name="probe-rmic"> | |||
@@ -75,6 +120,22 @@ | |||
<assertBaseCompiled/> | |||
</target> | |||
<target name="testVersion11" depends="init"> | |||
<base-rmic compiler="default" stubversion="1.1" /> | |||
<assertBaseCompiled/> | |||
</target> | |||
<target name="testVersion12" depends="init"> | |||
<base-rmic compiler="default" stubversion="1.2" /> | |||
<assertStubCompiled/> | |||
<assertSkelAbsent/> | |||
</target> | |||
<target name="testVersionCompat" depends="init"> | |||
<base-rmic compiler="default" stubversion="compat" /> | |||
<assertBaseCompiled/> | |||
</target> | |||
<target name="testRmic" if="rmic.present" depends="init"> | |||
<base-rmic compiler="sun"/> | |||
<assertBaseCompiled/> | |||
@@ -1,5 +1,5 @@ | |||
/* | |||
* Copyright 2001-2004 The Apache Software Foundation | |||
* Copyright 2001-2005 The Apache Software Foundation | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
@@ -44,6 +44,9 @@ public abstract class DefaultRmicAdapter implements RmicAdapter { | |||
public static final String RMI_SKEL_SUFFIX = "_Skel"; | |||
/** suffix denoting a tie file */ | |||
public static final String RMI_TIE_SUFFIX = "_Tie"; | |||
public static final String STUB_COMPAT = "-vcompat"; | |||
public static final String STUB_1_1 = "-v1.1"; | |||
public static final String STUB_1_2 = "-v1.2"; | |||
/** | |||
* Default constructor | |||
@@ -186,16 +189,24 @@ public abstract class DefaultRmicAdapter implements RmicAdapter { | |||
cmd.createArgument().setValue("-classpath"); | |||
cmd.createArgument().setPath(classpath); | |||
//handle the many different stub options. | |||
String stubVersion = attributes.getStubVersion(); | |||
//default is compatibility | |||
String stubOption=STUB_COMPAT; | |||
if (null != stubVersion) { | |||
if ("1.1".equals(stubVersion)) { | |||
cmd.createArgument().setValue("-v1.1"); | |||
stubOption = STUB_1_1; | |||
} else if ("1.2".equals(stubVersion)) { | |||
cmd.createArgument().setValue("-v1.2"); | |||
stubOption = STUB_1_2; | |||
} else if ("compat".equals(stubVersion)) { | |||
stubOption = STUB_COMPAT; | |||
} else { | |||
cmd.createArgument().setValue("-vcompat"); | |||
//anything else | |||
attributes.log("Unknown stub option "+stubVersion); | |||
//do nothing with the value? or go -v+stubVersion?? | |||
} | |||
} | |||
cmd.createArgument().setValue(stubOption); | |||
if (null != attributes.getSourceBase()) { | |||
cmd.createArgument().setValue("-keepgenerated"); | |||
@@ -1,5 +1,5 @@ | |||
/* | |||
* Copyright 2004 The Apache Software Foundation | |||
* Copyright 2004-2005 The Apache Software Foundation | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
@@ -92,7 +92,7 @@ public class RmicAdvancedTest extends BuildFileTest { | |||
/** | |||
* test the forking compiler | |||
*/ | |||
public void NotestForkingAntClasspath() throws Exception { | |||
public void testForkingAntClasspath() throws Exception { | |||
executeTarget("testForkingAntClasspath"); | |||
} | |||
@@ -154,7 +154,7 @@ public class RmicAdvancedTest extends BuildFileTest { | |||
/** | |||
* test the forking compiler | |||
* | |||
*/ | |||
public void testMagicPropertyIsEmptyString() throws Exception { | |||
executeTarget("testMagicPropertyIsEmptyString"); | |||
@@ -168,6 +168,32 @@ public class RmicAdvancedTest extends BuildFileTest { | |||
} | |||
/** | |||
* test that version 1.1 stubs are good | |||
* @throws Exception | |||
*/ | |||
public void testVersion11() throws Exception { | |||
executeTarget("testVersion11"); | |||
} | |||
/** | |||
* test that version 1.2 stubs are good | |||
* | |||
* @throws Exception | |||
*/ | |||
public void testVersion12() throws Exception { | |||
executeTarget("testVersion12"); | |||
} | |||
/** | |||
* test that version compat stubs are good | |||
* | |||
* @throws Exception | |||
*/ | |||
public void testVersionCompat() throws Exception { | |||
executeTarget("testVersionCompat"); | |||
} | |||
/** | |||
* this little bunny verifies that we can load stuff, and that | |||
* a failure to execute is turned into a fault | |||