Browse Source

Merge branch '1.9.x'

master
Stefan Bodewig 9 years ago
parent
commit
b746f1e7d0
5 changed files with 41 additions and 5 deletions
  1. +4
    -0
      WHATSNEW
  2. +1
    -0
      bootstrap.bat
  3. +3
    -1
      manual/Tasks/rmic.html
  4. +14
    -0
      src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java
  5. +19
    -4
      src/tests/junit/org/apache/tools/ant/taskdefs/RmicAdvancedTest.java

+ 4
- 0
WHATSNEW View File

@@ -21,6 +21,10 @@ Changes that could break older environments:
* The ant.java.version property will now hold the value "9" rather
than "1.9" if running on Java 9.

* <rmic> will no longer allow the -Xnew option (or xmic compiler) to
be used when running on Java 9 since this option has been removed.
Bugzilla Report 59906

Fixed bugs:
-----------



+ 1
- 0
bootstrap.bat View File

@@ -53,6 +53,7 @@ echo JAVA_HOME=%JAVA_HOME%
echo JAVA=%JAVA%
echo JAVAC=%JAVAC%
echo CLASSPATH=%CLASSPATH%
echo ANT_HOME=%ANT_HOME%

if "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul rmdir/s/q %CLASSDIR%
if not "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul deltree/y %CLASSDIR%


+ 3
- 1
manual/Tasks/rmic.html View File

@@ -61,7 +61,9 @@ attribute. or a nested element.
running on JDK 9+.</li>
<li>xnew - the sun compiler forked into a separate process,
with the -Xnew option (since Ant 1.7).
This is the most reliable way to use -Xnew</li>
This is the most reliable way to use -Xnew.
<br></br>JDK9 has removed support for -Xnew and starting with Ant
1.9.8 this option will be rejected by ant when running on JDK9.</li>
<li> "" (empty string). This has the same behaviour as not setting the compiler attribute.
First the value of <tt>build.rmic</tt> is used if defined, and if not, the default
for the platform is chosen. If build.rmic is set to this, you get the default.


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

@@ -24,11 +24,13 @@ import java.util.List;
import java.util.Random;
import java.util.Vector;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Rmic;
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.util.FileNameMapper;
import org.apache.tools.ant.util.JavaEnvUtils;
import org.apache.tools.ant.util.StringUtils;

/**
@@ -248,6 +250,8 @@ public abstract class DefaultRmicAdapter implements RmicAdapter {
compilerArgs = preprocessCompilerArgs(compilerArgs);
cmd.addArguments(compilerArgs);

verifyArguments(cmd);

logAndAddFilesToCompile(cmd);
return cmd;
}
@@ -349,6 +353,16 @@ public abstract class DefaultRmicAdapter implements RmicAdapter {
attributes.log(niceSourceList.toString(), Project.MSG_VERBOSE);
}

private void verifyArguments(Commandline cmd) {
if (JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_9)) {
for (String arg : cmd.getArguments()) {
if ("-Xnew".equals(arg)) {
throw new BuildException("JDK9 has removed support for -Xnew");
}
}
}
}

/**
* Mapper that may return up to two file names.
*


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

@@ -24,11 +24,13 @@ import org.apache.tools.ant.BuildFileRule;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.rmic.RmicAdapterFactory;
import org.apache.tools.ant.taskdefs.rmic.DefaultRmicAdapter;
import org.apache.tools.ant.util.JavaEnvUtils;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

/**
@@ -352,7 +354,7 @@ public class RmicAdvancedTest {
*/
@Test
public void testXnewForked() throws Exception {
buildRule.executeTarget("testXnewForked");
xnewTest("testXnewForked");
}

/**
@@ -362,7 +364,7 @@ public class RmicAdvancedTest {
*/
@Test
public void testXnewForkedDest() throws Exception {
buildRule.executeTarget("testXnewForkedDest");
xnewTest("testXnewForkedDest");
}

/**
@@ -372,7 +374,7 @@ public class RmicAdvancedTest {
*/
@Test
public void testXnewCompiler() throws Exception {
buildRule.executeTarget("testXnewCompiler");
xnewTest("testXnewCompiler");
}

/**
@@ -382,7 +384,7 @@ public class RmicAdvancedTest {
*/
@Test
public void testXnewCompilerDest() throws Exception {
buildRule.executeTarget("testXnewCompilerDest");
xnewTest("testXnewCompilerDest");
}

/**
@@ -425,6 +427,19 @@ public class RmicAdvancedTest {
buildRule.executeTarget("testIIOPDest");
}

private void xnewTest(String target) {
if (!JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_9)) {
buildRule.executeTarget(target);
} else {
try {
buildRule.executeTarget(target);
fail("Target should have thrown a BuildException");
} catch (BuildException ex) {
assertEquals("JDK9 has removed support for -Xnew", ex.getMessage());
}
}
}

/**
* this little bunny verifies that we can load stuff, and that
* a failure to execute is turned into a fault


Loading…
Cancel
Save