Browse Source

Merge branch '1.9.x'

master
Stefan Bodewig 7 years ago
parent
commit
228e2e25e7
31 changed files with 389 additions and 158 deletions
  1. +2
    -0
      WHATSNEW
  2. +3
    -0
      build.xml
  3. +39
    -0
      manual/Tasks/conditions.html
  4. +5
    -4
      manual/Tasks/javac.html
  5. +2
    -0
      src/main/org/apache/tools/ant/antlib.xml
  6. +13
    -6
      src/main/org/apache/tools/ant/taskdefs/Javac.java
  7. +2
    -1
      src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java
  8. +19
    -4
      src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java
  9. +115
    -0
      src/main/org/apache/tools/ant/taskdefs/condition/JavaVersion.java
  10. +2
    -0
      src/main/org/apache/tools/ant/types/conditions/antlib.xml
  11. +88
    -92
      src/main/org/apache/tools/ant/util/JavaEnvUtils.java
  12. +23
    -23
      src/main/org/apache/tools/bzip2/BlockSort.java
  13. +3
    -4
      src/main/org/apache/tools/bzip2/CBZip2InputStream.java
  14. +3
    -0
      src/tests/antunit/antunit-base.xml
  15. +40
    -0
      src/tests/antunit/taskdefs/condition/javaversion-test.xml
  16. +8
    -1
      src/tests/antunit/taskdefs/javac-test.xml
  17. +2
    -2
      src/tests/junit/org/apache/tools/ant/AntClassLoaderDelegationTest.java
  18. +1
    -1
      src/tests/junit/org/apache/tools/ant/taskdefs/AntTest.java
  19. +1
    -2
      src/tests/junit/org/apache/tools/ant/taskdefs/AntlibTest.java
  20. +2
    -2
      src/tests/junit/org/apache/tools/ant/taskdefs/AvailableTest.java
  21. +1
    -1
      src/tests/junit/org/apache/tools/ant/taskdefs/CVSPassTest.java
  22. +1
    -1
      src/tests/junit/org/apache/tools/ant/taskdefs/ChecksumTest.java
  23. +2
    -2
      src/tests/junit/org/apache/tools/ant/taskdefs/EchoTest.java
  24. +3
    -3
      src/tests/junit/org/apache/tools/ant/taskdefs/ManifestTest.java
  25. +1
    -1
      src/tests/junit/org/apache/tools/ant/taskdefs/MoveTest.java
  26. +1
    -1
      src/tests/junit/org/apache/tools/ant/taskdefs/MultiMapTest.java
  27. +1
    -1
      src/tests/junit/org/apache/tools/ant/taskdefs/PathConvertTest.java
  28. +1
    -1
      src/tests/junit/org/apache/tools/ant/taskdefs/RecorderTest.java
  29. +3
    -3
      src/tests/junit/org/apache/tools/ant/taskdefs/SubAntTest.java
  30. +1
    -1
      src/tests/junit/org/apache/tools/ant/taskdefs/TouchTest.java
  31. +1
    -1
      src/tests/junit/org/apache/tools/ant/taskdefs/condition/ParserSupportsTest.java

+ 2
- 0
WHATSNEW View File

@@ -71,6 +71,8 @@ Other changes:
upgraded to 0.1.54. Jsch is the library behind the sshexec upgraded to 0.1.54. Jsch is the library behind the sshexec
and scp Ant tasks. and scp Ant tasks.


* Added a new <javaversion> condition.

Changes from Ant 1.10.0 TO Ant 1.10.1 Changes from Ant 1.10.0 TO Ant 1.10.1
===================================== =====================================




+ 3
- 0
build.xml View File

@@ -383,6 +383,9 @@
</condition> </condition>
<property name="ignoresystemclasses" value="false"/> <property name="ignoresystemclasses" value="false"/>
<available property="jdk9+" classname="java.lang.module.ModuleDescriptor"/> <available property="jdk9+" classname="java.lang.module.ModuleDescriptor"/>
<condition property="jdk10+">
<javaversion atleast="10"/>
</condition>
<available property="kaffe" classname="kaffe.util.NotImplemented"/> <available property="kaffe" classname="kaffe.util.NotImplemented"/>
<available property="harmony" <available property="harmony"
classname="org.apache.harmony.luni.util.Base64"/> classname="org.apache.harmony.luni.util.Base64"/>


+ 39
- 0
manual/Tasks/conditions.html View File

@@ -1095,5 +1095,44 @@ is redundant and will be ignored.</p>
&lt;file file="${file}"/&gt; &lt;file file="${file}"/&gt;
&lt;/resourceexists&gt; &lt;/resourceexists&gt;
</pre></blockquote> </pre></blockquote>

<h4><a name="javaversion">javaversion</a></h4>

<p>Tests the version of the JVM executing Ant. <em>Since Ant
1.10.2</em></p>

<table border="1" cellpadding="2" cellspacing="0">
<tr>
<td width="12%" valign="top"><b>Attribute</b></td>
<td width="78%" valign="top"><b>Description</b></td>
<td width="10%" valign="top"><b>Required</b></td>
</tr>
<tr>
<td valign="top">atleast</td>
<td valign="top">The version that this JVM is at least.
The format is major.minor.point. Starting with Java9 really
only the major number is determined.</td>
<td valign="top" align="center">No</td>
<td valign="top" rowspan="2" align="center">One of these.</td>
</tr>
<tr>
<td valign="top">exactly</td>
<td valign="top">The version that this JVM is exactly.
The format is <tt>major.minor.point</tt>. Starting with Java9 really
only the major number is determined.</td>
<td valign="top" align="center">No</td>
</tr>
</table>

<p>
An example:
</p>

<blockquote><pre>
&lt;javaversion atleast=&quot;9&quot;/&gt;
</pre></blockquote>

<p>will evaluate to true if the current JVM is Java9 or above.</p>

</body> </body>
</html> </html>

+ 5
- 4
manual/Tasks/javac.html View File

@@ -78,9 +78,10 @@ attribute are:</a></p>
<code>javac1.5</code> and <code>javac1.5</code> and
<code>javac1.6</code> and <code>javac1.6</code> and
<code>javac1.7</code> (<em>since Ant 1.8.2</em>) and <code>javac1.7</code> (<em>since Ant 1.8.2</em>) and
<code>javac1.8</code> (<em>since Ant 1.8.3</em>) and</li>
<code>javac1.9</code> (<em>since Ant 1.9.5</em>) and</li>
<code>javac9</code> (<em>since Ant 1.9.8</em>) can be used as aliases.</li>
<code>javac1.8</code> (<em>since Ant 1.8.3</em>) and
<code>javac1.9</code> (<em>since Ant 1.9.5</em>) and
<code>javac9</code> (<em>since Ant 1.9.8</em>) and
<code>javac10+</code> (<em>since Ant 1.10.2</em>) can be used as aliases.</li>
<li><code>jikes</code> (the <a <li><code>jikes</code> (the <a
href="http://jikes.sourceforge.net/" target="_top">Jikes</a> href="http://jikes.sourceforge.net/" target="_top">Jikes</a>
compiler).</li> compiler).</li>
@@ -525,7 +526,7 @@ invoking the compiler.</p>
<tr> <tr>
<td valign="top">release</td> <td valign="top">release</td>
<td valign="top"> <td valign="top">
Specify the value for the <code>--release</code> switch.Ignored
Specify the value for the <code>--release</code> switch. Ignored
when running on JDK &lt; 9.<br> when running on JDK &lt; 9.<br>
When set and running on JDK &gt;= 9 the source and target When set and running on JDK &gt;= 9 the source and target
attributes as well as the bootclasspath will be ignored. attributes as well as the bootclasspath will be ignored.


+ 2
- 0
src/main/org/apache/tools/ant/antlib.xml View File

@@ -63,6 +63,8 @@
classname="org.apache.tools.ant.taskdefs.condition.IsSigned"/> classname="org.apache.tools.ant.taskdefs.condition.IsSigned"/>
<componentdef name="istrue" onerror="ignore" <componentdef name="istrue" onerror="ignore"
classname="org.apache.tools.ant.taskdefs.condition.IsTrue"/> classname="org.apache.tools.ant.taskdefs.condition.IsTrue"/>
<componentdef name="javaversion" onerror="ignore"
classname="org.apache.tools.ant.taskdefs.condition.JavaVersion"/>
<componentdef name="matches" onerror="ignore" <componentdef name="matches" onerror="ignore"
classname="org.apache.tools.ant.taskdefs.condition.Matches"/> classname="org.apache.tools.ant.taskdefs.condition.Matches"/>
<componentdef name="not" onerror="ignore" <componentdef name="not" onerror="ignore"


+ 13
- 6
src/main/org/apache/tools/ant/taskdefs/Javac.java View File

@@ -84,6 +84,7 @@ public class Javac extends MatchingTask {
private static final String FAIL_MSG private static final String FAIL_MSG
= "Compile failed; see the compiler error output for details."; = "Compile failed; see the compiler error output for details.";


private static final String JAVAC10_PLUS = "javac10+";
private static final String JAVAC9 = "javac9"; private static final String JAVAC9 = "javac9";
private static final String JAVAC19 = "javac1.9"; private static final String JAVAC19 = "javac1.9";
private static final String JAVAC18 = "javac1.8"; private static final String JAVAC18 = "javac1.8";
@@ -173,6 +174,9 @@ public class Javac extends MatchingTask {
if (JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_8)) { if (JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_8)) {
return JAVAC18; return JAVAC18;
} }
if (JavaEnvUtils.isAtLeastJavaVersion("10")) {
return JAVAC10_PLUS;
}
if (JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_9)) { if (JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_9)) {
return JAVAC9; return JAVAC9;
} }
@@ -221,7 +225,7 @@ public class Javac extends MatchingTask {
* must make sure that your version of jikes supports the -source * must make sure that your version of jikes supports the -source
* switch.</p> * switch.</p>
* *
* <p>Legal values are 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, and 5, 6, 7, 8 and 9
* <p>Legal values are 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, and any integral number bigger than 4
* - by default, no -source argument will be used at all.</p> * - by default, no -source argument will be used at all.</p>
* *
* @param v Value to assign to source. * @param v Value to assign to source.
@@ -774,7 +778,7 @@ public class Javac extends MatchingTask {
/** /**
* Sets the target VM that the classes will be compiled for. Valid * Sets the target VM that the classes will be compiled for. Valid
* values depend on the compiler, for jdk 1.4 the valid values are * values depend on the compiler, for jdk 1.4 the valid values are
* "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "5", "6", "7", "8", "9".
* "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9" and any integral number bigger than 4
* @param target the target VM * @param target the target VM
*/ */
public void setTarget(final String target) { public void setTarget(final String target) {
@@ -964,7 +968,8 @@ public class Javac extends MatchingTask {
} }


private String getAltCompilerName(final String anImplementation) { private String getAltCompilerName(final String anImplementation) {
if (JAVAC9.equalsIgnoreCase(anImplementation)
if (JAVAC10_PLUS.equalsIgnoreCase(anImplementation)
|| JAVAC9.equalsIgnoreCase(anImplementation)
|| JAVAC19.equalsIgnoreCase(anImplementation) || JAVAC19.equalsIgnoreCase(anImplementation)
|| JAVAC18.equalsIgnoreCase(anImplementation) || JAVAC18.equalsIgnoreCase(anImplementation)
|| JAVAC17.equalsIgnoreCase(anImplementation) || JAVAC17.equalsIgnoreCase(anImplementation)
@@ -980,7 +985,8 @@ public class Javac extends MatchingTask {
} }
if (MODERN.equalsIgnoreCase(anImplementation)) { if (MODERN.equalsIgnoreCase(anImplementation)) {
final String nextSelected = assumedJavaVersion(); final String nextSelected = assumedJavaVersion();
if (JAVAC9.equalsIgnoreCase(nextSelected)
if (JAVAC10_PLUS.equalsIgnoreCase(anImplementation)
|| JAVAC9.equalsIgnoreCase(nextSelected)
|| JAVAC18.equalsIgnoreCase(nextSelected) || JAVAC18.equalsIgnoreCase(nextSelected)
|| JAVAC17.equalsIgnoreCase(nextSelected) || JAVAC17.equalsIgnoreCase(nextSelected)
|| JAVAC16.equalsIgnoreCase(nextSelected) || JAVAC16.equalsIgnoreCase(nextSelected)
@@ -1183,7 +1189,7 @@ public class Javac extends MatchingTask {
scanDir(srcDir, destDir != null ? destDir : srcDir, files); scanDir(srcDir, destDir != null ? destDir : srcDir, files);
} }
} }
private void collectFileListFromModulePath() { private void collectFileListFromModulePath() {
final FileUtils fu = FileUtils.getFileUtils(); final FileUtils fu = FileUtils.getFileUtils();
for (String pathElement : moduleSourcepath.list()) { for (String pathElement : moduleSourcepath.list()) {
@@ -1248,11 +1254,12 @@ public class Javac extends MatchingTask {
* @param compilerImpl the name of the compiler implementation * @param compilerImpl the name of the compiler implementation
* @return true if compilerImpl is "modern", "classic", * @return true if compilerImpl is "modern", "classic",
* "javac1.1", "javac1.2", "javac1.3", "javac1.4", "javac1.5", * "javac1.1", "javac1.2", "javac1.3", "javac1.4", "javac1.5",
* "javac1.6", "javac1.7", "javac1.8", "javac1.9" or "javac9".
* "javac1.6", "javac1.7", "javac1.8", "javac1.9", "javac9" or "javac10+".
*/ */
protected boolean isJdkCompiler(final String compilerImpl) { protected boolean isJdkCompiler(final String compilerImpl) {
return MODERN.equals(compilerImpl) return MODERN.equals(compilerImpl)
|| CLASSIC.equals(compilerImpl) || CLASSIC.equals(compilerImpl)
|| JAVAC10_PLUS.equals(compilerImpl)
|| JAVAC9.equals(compilerImpl) || JAVAC9.equals(compilerImpl)
|| JAVAC18.equals(compilerImpl) || JAVAC18.equals(compilerImpl)
|| JAVAC17.equals(compilerImpl) || JAVAC17.equals(compilerImpl)


+ 2
- 1
src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java View File

@@ -121,7 +121,8 @@ public final class CompilerAdapterFactory {
|| "javac1.7".equalsIgnoreCase(compilerType) || "javac1.7".equalsIgnoreCase(compilerType)
|| "javac1.8".equalsIgnoreCase(compilerType) || "javac1.8".equalsIgnoreCase(compilerType)
|| "javac1.9".equalsIgnoreCase(compilerType) || "javac1.9".equalsIgnoreCase(compilerType)
|| "javac9".equalsIgnoreCase(compilerType)) {
|| "javac9".equalsIgnoreCase(compilerType)
|| "javac10+".equalsIgnoreCase(compilerType)) {
// does the modern compiler exist? // does the modern compiler exist?
if (doesModernCompilerExist()) { if (doesModernCompilerExist()) {
return new Javac13(); return new Javac13();


+ 19
- 4
src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java View File

@@ -321,7 +321,7 @@ public abstract class DefaultCompilerAdapter
cmd.createArgument().setValue("-sourcepath"); cmd.createArgument().setValue("-sourcepath");
cmd.createArgument().setPath(sourcepath); cmd.createArgument().setPath(sourcepath);
} }
if (release == null || !assumeJava19()) {
if (release == null || !assumeJava9Plus()) {
if (target != null) { if (target != null) {
cmd.createArgument().setValue("-target"); cmd.createArgument().setValue("-target");
cmd.createArgument().setValue(target); cmd.createArgument().setValue(target);
@@ -394,7 +394,7 @@ public abstract class DefaultCompilerAdapter
if (!assumeJava13()) { // -source added with JDK 1.4 if (!assumeJava13()) { // -source added with JDK 1.4
final String t = attributes.getTarget(); final String t = attributes.getTarget();
final String s = attributes.getSource(); final String s = attributes.getSource();
if (release == null || !assumeJava19()) {
if (release == null || !assumeJava9Plus()) {
if (release != null) { if (release != null) {
attributes.log( attributes.log(
"Support for javac --release has been added in Java9 ignoring it"); "Support for javac --release has been added in Java9 ignoring it");
@@ -714,6 +714,21 @@ public abstract class DefaultCompilerAdapter
return assumeJava19(); return assumeJava19();
} }


/**
* Shall we assume JDK 9+ command line switches?
* @return true if JDK 9+
* @since Ant 1.10.2
*/
protected boolean assumeJava9Plus() {
return "javac1.9".equals(attributes.getCompilerVersion())
|| "javac9".equals(attributes.getCompilerVersion())
|| "javac10+".equals(attributes.getCompilerVersion())
|| (JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_9) &&
("classic".equals(attributes.getCompilerVersion())
|| "modern".equals(attributes.getCompilerVersion())
|| "extJavac".equals(attributes.getCompilerVersion())));
}

/** /**
* Shall we assume command line switches for the given version of Java? * Shall we assume command line switches for the given version of Java?
* @since Ant 1.8.3 * @since Ant 1.8.3
@@ -787,7 +802,7 @@ public abstract class DefaultCompilerAdapter
if (assumeJava18()) { if (assumeJava18()) {
return "1.8 in JDK 1.8"; return "1.8 in JDK 1.8";
} }
if (assumeJava9()) {
if (assumeJava9Plus()) {
return "9 in JDK 9"; return "9 in JDK 9";
} }
return ""; return "";
@@ -814,7 +829,7 @@ public abstract class DefaultCompilerAdapter
&& !assumeJava15() && !assumeJava16()) && !assumeJava15() && !assumeJava16())
|| ("7".equals(t) && !assumeJava17()) || ("7".equals(t) && !assumeJava17())
|| ("8".equals(t) && !assumeJava18()) || ("8".equals(t) && !assumeJava18())
|| ("9".equals(t) && !assumeJava9());
|| ("9".equals(t) && !assumeJava9Plus());
} }


/** /**


+ 115
- 0
src/main/org/apache/tools/ant/taskdefs/condition/JavaVersion.java View File

@@ -0,0 +1,115 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.tools.ant.taskdefs.condition;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.util.DeweyDecimal;
import org.apache.tools.ant.util.JavaEnvUtils;

/**
* An Java version condition.
* @since Java 1.10.2
*/
public class JavaVersion implements Condition {

private String atLeast = null;
private String exactly = null;

/**
* Evaluate the condition.
* @return true if the condition is true.
* @throws BuildException if an error occurs.
*/
public boolean eval() throws BuildException {
validate();
DeweyDecimal actual = JavaEnvUtils.getParsedJavaVersion();
if (null != atLeast) {
return actual.isGreaterThanOrEqual(new DeweyDecimal(atLeast));
}
if (null != exactly) {
return actual.isEqual(new DeweyDecimal(exactly));
}
//default
return false;
}

private void validate() throws BuildException {
if (atLeast != null && exactly != null) {
throw new BuildException("Only one of atleast or exactly may be set.");
}
if (null == atLeast && null == exactly) {
throw new BuildException("One of atleast or exactly must be set.");
}
if (atLeast != null) {
try {
// only created for side effect
new DeweyDecimal(atLeast); //NOSONAR
} catch (NumberFormatException e) {
throw new BuildException(
"The 'atleast' attribute is not a Dewey Decimal eg 1.1.0 : "
+ atLeast);
}
} else {
try {
// only created for side effect
new DeweyDecimal(exactly); //NOSONAR
} catch (NumberFormatException e) {
throw new BuildException(
"The 'exactly' attribute is not a Dewey Decimal eg 1.1.0 : "
+ exactly);
}
}
}

/**
* Get the atleast attribute.
* @return the atleast attribute.
*/
public String getAtLeast() {
return atLeast;
}

/**
* Set the atleast attribute.
* This is of the form major.minor.point.
* For example 1.7.0.
* @param atLeast the version to check against.
*/
public void setAtLeast(String atLeast) {
this.atLeast = atLeast;
}

/**
* Get the exactly attribute.
* @return the exactly attribute.
*/
public String getExactly() {
return exactly;
}

/**
* Set the exactly attribute.
* This is of the form major.minor.point.
* For example 1.7.0.
* @param exactly the version to check against.
*/
public void setExactly(String exactly) {
this.exactly = exactly;
}

}

+ 2
- 0
src/main/org/apache/tools/ant/types/conditions/antlib.xml View File

@@ -66,6 +66,8 @@
classname="org.apache.tools.ant.taskdefs.condition.IsSigned"/> classname="org.apache.tools.ant.taskdefs.condition.IsSigned"/>
<typedef name="istrue" onerror="ignore" <typedef name="istrue" onerror="ignore"
classname="org.apache.tools.ant.taskdefs.condition.IsTrue"/> classname="org.apache.tools.ant.taskdefs.condition.IsTrue"/>
<typedef name="javaversion" onerror="ignore"
classname="org.apache.tools.ant.taskdefs.condition.JavaVersion"/>
<typedef name="not" onerror="ignore" <typedef name="not" onerror="ignore"
classname="org.apache.tools.ant.taskdefs.condition.Not"/> classname="org.apache.tools.ant.taskdefs.condition.Not"/>
<typedef name="matches" onerror="ignore" <typedef name="matches" onerror="ignore"


+ 88
- 92
src/main/org/apache/tools/ant/util/JavaEnvUtils.java View File

@@ -29,6 +29,10 @@ import org.apache.tools.ant.taskdefs.condition.Os;
* A set of helper methods related to locating executables or checking * A set of helper methods related to locating executables or checking
* conditions of a given Java installation. * conditions of a given Java installation.
* *
* <p>Starting with Java 10 we've stopped adding <code>JAVA_</code>
* and <code>VERSION_</code> attributes for new major version numbers
* of the JVM.</p>
*
* @since Ant 1.5 * @since Ant 1.5
*/ */
public final class JavaEnvUtils { public final class JavaEnvUtils {
@@ -181,6 +185,10 @@ public final class JavaEnvUtils {
Class.forName("java.lang.module.ModuleDescriptor"); Class.forName("java.lang.module.ModuleDescriptor");
javaVersion = JAVA_9; javaVersion = JAVA_9;
javaVersionNumber = VERSION_9; 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;
} catch (Throwable t) { } catch (Throwable t) {
// swallow as we've hit the max class version that // swallow as we've hit the max class version that
// we have // we have
@@ -448,52 +456,46 @@ public final class JavaEnvUtils {
*/ */


private static void buildJrePackages() { private static void buildJrePackages() {
jrePackages = new Vector<>();
switch(javaVersionNumber) {
case VERSION_9:
case VERSION_1_8:
case VERSION_1_7:
jrePackages.addElement("jdk");
// fall through
case VERSION_1_6:
case VERSION_1_5:
//In Java1.5, the apache stuff moved.
jrePackages.addElement("com.sun.org.apache");
//fall through.
case VERSION_1_4:
if (javaVersionNumber == VERSION_1_4) {
jrePackages.addElement("org.apache.crimson");
jrePackages.addElement("org.apache.xalan");
jrePackages.addElement("org.apache.xml");
jrePackages.addElement("org.apache.xpath");
}
jrePackages.addElement("org.ietf.jgss");
jrePackages.addElement("org.w3c.dom");
jrePackages.addElement("org.xml.sax");
// fall through
case VERSION_1_3:
jrePackages.addElement("org.omg");
jrePackages.addElement("com.sun.corba");
jrePackages.addElement("com.sun.jndi");
jrePackages.addElement("com.sun.media");
jrePackages.addElement("com.sun.naming");
jrePackages.addElement("com.sun.org.omg");
jrePackages.addElement("com.sun.rmi");
jrePackages.addElement("sunw.io");
jrePackages.addElement("sunw.util");
// fall through
case VERSION_1_2:
jrePackages.addElement("com.sun.java");
jrePackages.addElement("com.sun.image");
// are there any here that we forgot?
// fall through
case VERSION_1_1:
default:
//things like sun.reflection, sun.misc, sun.net
jrePackages.addElement("sun");
jrePackages.addElement("java");
jrePackages.addElement("javax");
break;
jrePackages = new Vector<String>();
if (isAtLeastJavaVersion(JAVA_1_1)) {
//things like sun.reflection, sun.misc, sun.net
jrePackages.addElement("sun");
jrePackages.addElement("java");
jrePackages.addElement("javax");
}
if (isAtLeastJavaVersion(JAVA_1_2)) {
jrePackages.addElement("com.sun.java");
jrePackages.addElement("com.sun.image");
// are there any here that we forgot?
}
if (isAtLeastJavaVersion(JAVA_1_3)) {
jrePackages.addElement("org.omg");
jrePackages.addElement("com.sun.corba");
jrePackages.addElement("com.sun.jndi");
jrePackages.addElement("com.sun.media");
jrePackages.addElement("com.sun.naming");
jrePackages.addElement("com.sun.org.omg");
jrePackages.addElement("com.sun.rmi");
jrePackages.addElement("sunw.io");
jrePackages.addElement("sunw.util");
}
if (isAtLeastJavaVersion(JAVA_1_4)) {
if (javaVersionNumber == VERSION_1_4) {
jrePackages.addElement("org.apache.crimson");
jrePackages.addElement("org.apache.xalan");
jrePackages.addElement("org.apache.xml");
jrePackages.addElement("org.apache.xpath");
}
jrePackages.addElement("org.ietf.jgss");
jrePackages.addElement("org.w3c.dom");
jrePackages.addElement("org.xml.sax");
}
if (isAtLeastJavaVersion(JAVA_1_5)) {
//In Java1.5, the apache stuff moved.
jrePackages.addElement("com.sun.org.apache");
}
if (isAtLeastJavaVersion(JAVA_1_7)) {
jrePackages.addElement("jdk");
} }
} }


@@ -504,52 +506,46 @@ public final class JavaEnvUtils {
public static Vector<String> getJrePackageTestCases() { public static Vector<String> getJrePackageTestCases() {
Vector<String> tests = new Vector<>(); Vector<String> tests = new Vector<>();
tests.addElement("java.lang.Object"); tests.addElement("java.lang.Object");
switch(javaVersionNumber) {
case VERSION_9:
case VERSION_1_8:
case VERSION_1_7:
tests.addElement("jdk.net.Sockets");
// fall through
case VERSION_1_6:
case VERSION_1_5:
tests.addElement(
"com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl ");
// Fall through
case VERSION_1_4:
tests.addElement("sun.audio.AudioPlayer");
if (javaVersionNumber == VERSION_1_4) {
// only for 1.4, not for higher versions which fall through
tests.addElement("org.apache.crimson.parser.ContentModel");
tests.addElement("org.apache.xalan.processor.ProcessorImport");
tests.addElement("org.apache.xml.utils.URI");
tests.addElement("org.apache.xpath.XPathFactory");
}
tests.addElement("org.ietf.jgss.Oid");
tests.addElement("org.w3c.dom.Attr");
tests.addElement("org.xml.sax.XMLReader");
// fall through
case VERSION_1_3:
tests.addElement("org.omg.CORBA.Any");
tests.addElement("com.sun.corba.se.internal.corba.AnyImpl");
tests.addElement("com.sun.jndi.ldap.LdapURL");
tests.addElement("com.sun.media.sound.Printer");
tests.addElement("com.sun.naming.internal.VersionHelper");
tests.addElement("com.sun.org.omg.CORBA.Initializer");
tests.addElement("sunw.io.Serializable");
tests.addElement("sunw.util.EventListener");
// fall through
case VERSION_1_2:
tests.addElement("javax.accessibility.Accessible");
tests.addElement("sun.misc.BASE64Encoder");
tests.addElement("com.sun.image.codec.jpeg.JPEGCodec");
// fall through
case VERSION_1_1:
default:
//things like sun.reflection, sun.misc, sun.net
tests.addElement("sun.reflect.SerializationConstructorAccessorImpl");
tests.addElement("sun.net.www.http.HttpClient");
tests.addElement("sun.audio.AudioPlayer");
break;
if (isAtLeastJavaVersion(JAVA_1_1)) {
//things like sun.reflection, sun.misc, sun.net
tests.addElement("sun.reflect.SerializationConstructorAccessorImpl");
tests.addElement("sun.net.www.http.HttpClient");
tests.addElement("sun.audio.AudioPlayer");
}
if (isAtLeastJavaVersion(JAVA_1_2)) {
tests.addElement("javax.accessibility.Accessible");
tests.addElement("sun.misc.BASE64Encoder");
tests.addElement("com.sun.image.codec.jpeg.JPEGCodec");
}
if (isAtLeastJavaVersion(JAVA_1_3)) {
tests.addElement("org.omg.CORBA.Any");
tests.addElement("com.sun.corba.se.internal.corba.AnyImpl");
tests.addElement("com.sun.jndi.ldap.LdapURL");
tests.addElement("com.sun.media.sound.Printer");
tests.addElement("com.sun.naming.internal.VersionHelper");
tests.addElement("com.sun.org.omg.CORBA.Initializer");
tests.addElement("sunw.io.Serializable");
tests.addElement("sunw.util.EventListener");
}
if (isAtLeastJavaVersion(JAVA_1_4)) {
tests.addElement("sun.audio.AudioPlayer");
if (javaVersionNumber == VERSION_1_4) {
// only for 1.4, not for higher versions
tests.addElement("org.apache.crimson.parser.ContentModel");
tests.addElement("org.apache.xalan.processor.ProcessorImport");
tests.addElement("org.apache.xml.utils.URI");
tests.addElement("org.apache.xpath.XPathFactory");
}
tests.addElement("org.ietf.jgss.Oid");
tests.addElement("org.w3c.dom.Attr");
tests.addElement("org.xml.sax.XMLReader");
}
if (isAtLeastJavaVersion(JAVA_1_5)) {
tests.addElement(
"com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl");
}
if (isAtLeastJavaVersion(JAVA_1_7)) {
tests.addElement("jdk.net.Sockets");
} }
return tests; return tests;
} }


+ 23
- 23
src/main/org/apache/tools/bzip2/BlockSort.java View File

@@ -36,7 +36,7 @@ import java.util.BitSet;
* <pre> * <pre>
* CompressCommons * CompressCommons
* Commons Compress * Commons Compress
* CompressCommons
* CompressCommons
* essCommons Compr * essCommons Compr
* mmons CompressCo * mmons CompressCo
* mons CompressCom * mons CompressCom
@@ -251,7 +251,7 @@ class BlockSort {
* bucket 'ra' with sort index 5. The fully sorted order then becomes. * bucket 'ra' with sort index 5. The fully sorted order then becomes.
* *
* fmap = { 5, 3, 0, 4, 1, 2 } * fmap = { 5, 3, 0, 4, 1, 2 }
*
*
*/ */


/** /**
@@ -261,12 +261,12 @@ class BlockSort {
* @param eclass points from the index of a character inside the * @param eclass points from the index of a character inside the
* block to the first index in fmap that contains the * block to the first index in fmap that contains the
* bucket of its suffix that is sorted in this step. * bucket of its suffix that is sorted in this step.
* @param lo lower boundary of the fmap-interval to be sorted
* @param hi upper boundary of the fmap-interval to be sorted
* @param lo lower boundary of the fmap-interval to be sorted
* @param hi upper boundary of the fmap-interval to be sorted
*/ */
private void fallbackSimpleSort(int[] fmap,
int[] eclass,
int lo,
private void fallbackSimpleSort(int[] fmap,
int[] eclass,
int lo,
int hi) { int hi) {
if (lo == hi) { if (lo == hi) {
return; return;
@@ -336,12 +336,12 @@ class BlockSort {
* @param eclass points from the index of a character inside the * @param eclass points from the index of a character inside the
* block to the first index in fmap that contains the * block to the first index in fmap that contains the
* bucket of its suffix that is sorted in this step. * bucket of its suffix that is sorted in this step.
* @param loSt lower boundary of the fmap-interval to be sorted
* @param hiSt upper boundary of the fmap-interval to be sorted
* @param loSt lower boundary of the fmap-interval to be sorted
* @param hiSt upper boundary of the fmap-interval to be sorted
*/ */
private void fallbackQSort3(int[] fmap,
int[] eclass,
int loSt,
private void fallbackQSort3(int[] fmap,
int[] eclass,
int loSt,
int hiSt) { int hiSt) {
int lo, unLo, ltLo, hi, unHi, gtHi, n; int lo, unLo, ltLo, hi, unHi, gtHi, n;


@@ -359,16 +359,16 @@ class BlockSort {
} }


/* LBZ2: Random partitioning. Median of 3 sometimes fails to /* LBZ2: Random partitioning. Median of 3 sometimes fails to
avoid bad cases. Median of 9 seems to help but
avoid bad cases. Median of 9 seems to help but
looks rather expensive. This too seems to work but looks rather expensive. This too seems to work but
is cheaper. Guidance for the magic constants
is cheaper. Guidance for the magic constants
7621 and 32768 is taken from Sedgewick's algorithms 7621 and 32768 is taken from Sedgewick's algorithms
book, chapter 35. book, chapter 35.
*/ */
r = ((r * 7621) + 1) % 32768; r = ((r * 7621) + 1) % 32768;
long r3 = r % 3, med; long r3 = r % 3, med;
if (r3 == 0) { if (r3 == 0) {
med = eclass[fmap[lo]];
med = eclass[fmap[lo]];
} else if (r3 == 1) { } else if (r3 == 1) {
med = eclass[fmap[(lo + hi) >>> 1]]; med = eclass[fmap[(lo + hi) >>> 1]];
} else { } else {
@@ -386,10 +386,10 @@ class BlockSort {
break; break;
} }
n = eclass[fmap[unLo]] - (int) med; n = eclass[fmap[unLo]] - (int) med;
if (n == 0) {
fswap(fmap, unLo, ltLo);
ltLo++; unLo++;
continue;
if (n == 0) {
fswap(fmap, unLo, ltLo);
ltLo++; unLo++;
continue;
} }
if (n > 0) { if (n > 0) {
break; break;
@@ -402,9 +402,9 @@ class BlockSort {
} }
n = eclass[fmap[unHi]] - (int) med; n = eclass[fmap[unHi]] - (int) med;
if (n == 0) { if (n == 0) {
fswap(fmap, unHi, gtHi);
gtHi--; unHi--;
continue;
fswap(fmap, unHi, gtHi);
gtHi--; unHi--;
continue;
} }
if (n < 0) { if (n < 0) {
break; break;
@@ -510,7 +510,7 @@ class BlockSort {
--*/ --*/


/*-- LBZ2: set sentinel bits for block-end detection --*/ /*-- LBZ2: set sentinel bits for block-end detection --*/
for (i = 0; i < 32; i++) {
for (i = 0; i < 32; i++) {
bhtab.set(nblock + 2 * i); bhtab.set(nblock + 2 * i);
bhtab.clear(nblock + 2 * i + 1); bhtab.clear(nblock + 2 * i + 1);
} }


+ 3
- 4
src/main/org/apache/tools/bzip2/CBZip2InputStream.java View File

@@ -40,7 +40,7 @@ import java.io.InputStream;
* source stream via the single byte {@link java.io.InputStream#read() * source stream via the single byte {@link java.io.InputStream#read()
* read()} method exclusively. Thus you should consider to use a * read()} method exclusively. Thus you should consider to use a
* buffered source stream.</p> * buffered source stream.</p>
*
*
* <p>Instances of this class are not threadsafe.</p> * <p>Instances of this class are not threadsafe.</p>
*/ */
public class CBZip2InputStream extends InputStream implements BZip2Constants { public class CBZip2InputStream extends InputStream implements BZip2Constants {
@@ -173,7 +173,7 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {


/* /*
* (non-Javadoc) * (non-Javadoc)
*
*
* @see java.io.InputStream#read(byte[], int, int) * @see java.io.InputStream#read(byte[], int, int)
*/ */
@Override @Override
@@ -261,7 +261,7 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
if (null == in) { if (null == in) {
throw new IOException("No InputStream"); throw new IOException("No InputStream");
} }
if (isFirstStream) { if (isFirstStream) {
if (in.available() == 0) { if (in.available() == 0) {
throw new IOException("Empty InputStream"); throw new IOException("Empty InputStream");
@@ -1059,4 +1059,3 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
} }


} }


+ 3
- 0
src/tests/antunit/antunit-base.xml View File

@@ -27,6 +27,9 @@
<property name="test3.jar" location="${antunit.tmpdir}/test3.jar"/> <property name="test3.jar" location="${antunit.tmpdir}/test3.jar"/>
<property name="test4.jar" location="${antunit.tmpdir}/test4.jar"/> <property name="test4.jar" location="${antunit.tmpdir}/test4.jar"/>
<property name="test5.jar" location="${antunit.tmpdir}/test5.jar"/> <property name="test5.jar" location="${antunit.tmpdir}/test5.jar"/>
<condition property="jdk10+">
<javaversion atleast="10"/>
</condition>
<available property="jdk9+" classname="java.lang.module.ModuleDescriptor"/> <available property="jdk9+" classname="java.lang.module.ModuleDescriptor"/>
<condition property="build.sysclasspath.only"> <condition property="build.sysclasspath.only">
<equals arg1="${build.sysclasspath}" arg2="only"/> <equals arg1="${build.sysclasspath}" arg2="only"/>


+ 40
- 0
src/tests/antunit/taskdefs/condition/javaversion-test.xml View File

@@ -0,0 +1,40 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="javaversion-test" default="antunit" xmlns:au="antlib:org.apache.ant.antunit">
<import file="../../antunit-base.xml" />

<target name="test-atleast">
<au:assertTrue message="Expected javaversion of ${ant.version} to be at least 1.7.0">
<!-- Ant 1.9.x requires Java5 at runtime - so this must be true -->
<javaversion atleast="1.5" />
</au:assertTrue>
</target>

<target name="test-exactly">
<au:assertTrue message="Expected javaversion of ${ant.java.version}">
<javaversion exactly="${ant.java.version}" />
</au:assertTrue>
</target>

<target name="test-atleast-fail">
<au:assertFalse>
<javaversion atleast="1000.0" />
</au:assertFalse>
</target>

</project>

+ 8
- 1
src/tests/antunit/taskdefs/javac-test.xml View File

@@ -265,7 +265,14 @@ public class Adapter implements CompilerAdapter {
<delete dir="${javac-dir}/classes"/> <delete dir="${javac-dir}/classes"/>
<mkdir dir="${javac-dir}/classes"/> <mkdir dir="${javac-dir}/classes"/>
</sequential> </sequential>
</target>

<sequential if:set="jdk10+">
<echo>JDK 10+</echo>
<testJavac source="10" target="10"/>
<delete dir="${javac-dir}/classes"/>
<mkdir dir="${javac-dir}/classes"/>
</sequential>
</target>


<target name="testJavacWithNativeHeaderGeneration" depends="setup"> <target name="testJavacWithNativeHeaderGeneration" depends="setup">
<mkdir dir="${javac-dir}/src/org/example" /> <mkdir dir="${javac-dir}/src/org/example" />


+ 2
- 2
src/tests/junit/org/apache/tools/ant/AntClassLoaderDelegationTest.java View File

@@ -101,7 +101,7 @@ public class AntClassLoaderDelegationTest {
Arrays.asList(new URL[] {urlFromPath}), Arrays.asList(new URL[] {urlFromPath}),
enum2List(acl.getResources(TEST_RESOURCE))); enum2List(acl.getResources(TEST_RESOURCE)));
} }
private static List enum2List(Enumeration e) { private static List enum2List(Enumeration e) {
return Collections.list(e); return Collections.list(e);
} }
@@ -111,7 +111,7 @@ public class AntClassLoaderDelegationTest {


public ParentLoader() { public ParentLoader() {
} }
protected Enumeration findResources(String name) throws IOException { protected Enumeration findResources(String name) throws IOException {
if (name.equals(TEST_RESOURCE)) { if (name.equals(TEST_RESOURCE)) {
return Collections.enumeration( return Collections.enumeration(


+ 1
- 1
src/tests/junit/org/apache/tools/ant/taskdefs/AntTest.java View File

@@ -45,7 +45,7 @@ import static org.junit.Assert.fail;
/** /**
*/ */
public class AntTest { public class AntTest {
@Rule @Rule
public BuildFileRule buildRule = new BuildFileRule(); public BuildFileRule buildRule = new BuildFileRule();




+ 1
- 2
src/tests/junit/org/apache/tools/ant/taskdefs/AntlibTest.java View File

@@ -89,7 +89,7 @@ public class AntlibTest {
Assume.assumeTrue("Test requires shared JVM", isSharedJVM()); Assume.assumeTrue("Test requires shared JVM", isSharedJVM());
buildRule.executeTarget("antlib_uri_auto2"); buildRule.executeTarget("antlib_uri_auto2");
} }
public static class MyTask extends Task { public static class MyTask extends Task {
public void execute() { public void execute() {
log("MyTask called"); log("MyTask called");
@@ -103,4 +103,3 @@ public class AntlibTest {
} }


} }


+ 2
- 2
src/tests/junit/org/apache/tools/ant/taskdefs/AvailableTest.java View File

@@ -34,10 +34,10 @@ import static org.junit.Assert.fail;
*/ */
public class AvailableTest { public class AvailableTest {


@Rule @Rule
public BuildFileRule buildRule = new BuildFileRule(); public BuildFileRule buildRule = new BuildFileRule();
@Before @Before
public void setUp() { public void setUp() {
buildRule.configureProject("src/etc/testcases/taskdefs/available.xml"); buildRule.configureProject("src/etc/testcases/taskdefs/available.xml");


+ 1
- 1
src/tests/junit/org/apache/tools/ant/taskdefs/CVSPassTest.java View File

@@ -44,7 +44,7 @@ public class CVSPassTest {
":pserver:anoncvs@xml.apache.org:/home/cvspublic Ay=0=h<Z"; ":pserver:anoncvs@xml.apache.org:/home/cvspublic Ay=0=h<Z";
private static final String TIGRIS_URL = private static final String TIGRIS_URL =
":pserver:guest@cvs.tigris.org:/cvs AIbdZ,"; ":pserver:guest@cvs.tigris.org:/cvs AIbdZ,";
@Rule @Rule
public final BuildFileRule buildRule = new BuildFileRule(); public final BuildFileRule buildRule = new BuildFileRule();




+ 1
- 1
src/tests/junit/org/apache/tools/ant/taskdefs/ChecksumTest.java View File

@@ -30,7 +30,7 @@ public class ChecksumTest {


@Rule @Rule
public BuildFileRule buildRule = new BuildFileRule(); public BuildFileRule buildRule = new BuildFileRule();
@Before @Before
public void setUp() { public void setUp() {
buildRule.configureProject("src/etc/testcases/taskdefs/checksum.xml"); buildRule.configureProject("src/etc/testcases/taskdefs/checksum.xml");


+ 2
- 2
src/tests/junit/org/apache/tools/ant/taskdefs/EchoTest.java View File

@@ -82,7 +82,7 @@ public class EchoTest {


private class EchoTestLogger extends DefaultLogger { private class EchoTestLogger extends DefaultLogger {
String lastLoggedMessage; String lastLoggedMessage;
/** /**
* Create a new EchoTestLogger. * Create a new EchoTestLogger.
*/ */
@@ -99,6 +99,6 @@ public class EchoTest {
protected void log(String message) { protected void log(String message) {
this.lastLoggedMessage = message; this.lastLoggedMessage = message;
} }
} }
} }

+ 3
- 3
src/tests/junit/org/apache/tools/ant/taskdefs/ManifestTest.java View File

@@ -58,11 +58,11 @@ public class ManifestTest {
"OfCourseTheAnswerIsThatIsWhatTheSpecRequiresAndIfAnythingHas" + "OfCourseTheAnswerIsThatIsWhatTheSpecRequiresAndIfAnythingHas" +
"AProblemWithThatItIsNotABugInAnt"; "AProblemWithThatItIsNotABugInAnt";


public static final String LONG_70_NAME
public static final String LONG_70_NAME
= "ThisNameIsJustSeventyCharactersWhichIsAllowedAccordingToTheSpecsFiller"; = "ThisNameIsJustSeventyCharactersWhichIsAllowedAccordingToTheSpecsFiller";
public static final String LONG_68_NAME
public static final String LONG_68_NAME
= "ThisNameIsJustSixtyEightCharactersWhichIsAllowedAccordingToTheSpecsX"; = "ThisNameIsJustSixtyEightCharactersWhichIsAllowedAccordingToTheSpecsX";
public static final String NOT_LONG_NAME
public static final String NOT_LONG_NAME
= "NameIsJustUnderSeventyCharactersWhichIsAllowedAccordingTheSpec"; = "NameIsJustUnderSeventyCharactersWhichIsAllowedAccordingTheSpec";


public static final String VALUE = "NOT_LONG"; public static final String VALUE = "NOT_LONG";


+ 1
- 1
src/tests/junit/org/apache/tools/ant/taskdefs/MoveTest.java View File

@@ -35,7 +35,7 @@ import static org.junit.Assert.assertTrue;
* *
*/ */
public class MoveTest { public class MoveTest {
@Rule @Rule
public final BuildFileRule buildRule = new BuildFileRule(); public final BuildFileRule buildRule = new BuildFileRule();




+ 1
- 1
src/tests/junit/org/apache/tools/ant/taskdefs/MultiMapTest.java View File

@@ -28,7 +28,7 @@ import org.junit.Test;
/** /**
*/ */
public class MultiMapTest { public class MultiMapTest {
@Rule @Rule
public final BuildFileRule buildRule = new BuildFileRule(); public final BuildFileRule buildRule = new BuildFileRule();




+ 1
- 1
src/tests/junit/org/apache/tools/ant/taskdefs/PathConvertTest.java View File

@@ -36,7 +36,7 @@ public class PathConvertTest {
private static final String BUILD_PATH = "src/etc/testcases/taskdefs/"; private static final String BUILD_PATH = "src/etc/testcases/taskdefs/";
private static final String BUILD_FILENAME = "pathconvert.xml"; private static final String BUILD_FILENAME = "pathconvert.xml";
private static final String BUILD_FILE = BUILD_PATH + BUILD_FILENAME; private static final String BUILD_FILE = BUILD_PATH + BUILD_FILENAME;
@Before @Before
public void setUp() { public void setUp() {
buildRule.configureProject(BUILD_FILE); buildRule.configureProject(BUILD_FILE);


+ 1
- 1
src/tests/junit/org/apache/tools/ant/taskdefs/RecorderTest.java View File

@@ -32,7 +32,7 @@ import static org.junit.Assert.assertTrue;
/** /**
*/ */
public class RecorderTest { public class RecorderTest {
@Rule @Rule
public final BuildFileRule buildRule = new BuildFileRule(); public final BuildFileRule buildRule = new BuildFileRule();




+ 3
- 3
src/tests/junit/org/apache/tools/ant/taskdefs/SubAntTest.java View File

@@ -84,7 +84,7 @@ public class SubAntTest {
}); });


} }
@Test @Test
public void testMultipleTargets() { public void testMultipleTargets() {
buildRule.executeTarget("multipleTargets"); buildRule.executeTarget("multipleTargets");
@@ -93,13 +93,13 @@ public class SubAntTest {
assertContains("test2-one", buildRule.getLog()); assertContains("test2-one", buildRule.getLog());
assertContains("test2-two", buildRule.getLog()); assertContains("test2-two", buildRule.getLog());
} }
@Test @Test
public void testMultipleTargetsOneDoesntExist_FOEfalse() { public void testMultipleTargetsOneDoesntExist_FOEfalse() {
buildRule.executeTarget("multipleTargetsOneDoesntExist_FOEfalse"); buildRule.executeTarget("multipleTargetsOneDoesntExist_FOEfalse");
assertContains("Target \"three\" does not exist in the project \"subant\"", buildRule.getLog()); assertContains("Target \"three\" does not exist in the project \"subant\"", buildRule.getLog());
} }
@Test @Test
public void testMultipleTargetsOneDoesntExist_FOEtrue() { public void testMultipleTargetsOneDoesntExist_FOEtrue() {
try { try {


+ 1
- 1
src/tests/junit/org/apache/tools/ant/taskdefs/TouchTest.java View File

@@ -33,7 +33,7 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;


public class TouchTest { public class TouchTest {
@Rule @Rule
public final BuildFileRule buildRule = new BuildFileRule(); public final BuildFileRule buildRule = new BuildFileRule();




+ 1
- 1
src/tests/junit/org/apache/tools/ant/taskdefs/condition/ParserSupportsTest.java View File

@@ -29,7 +29,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;


/** /**
*/ */
public class ParserSupportsTest { public class ParserSupportsTest {




Loading…
Cancel
Save