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
and scp Ant tasks.

* Added a new <javaversion> condition.

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



+ 3
- 0
build.xml View File

@@ -383,6 +383,9 @@
</condition>
<property name="ignoresystemclasses" value="false"/>
<available property="jdk9+" classname="java.lang.module.ModuleDescriptor"/>
<condition property="jdk10+">
<javaversion atleast="10"/>
</condition>
<available property="kaffe" classname="kaffe.util.NotImplemented"/>
<available property="harmony"
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;/resourceexists&gt;
</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>
</html>

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

@@ -78,9 +78,10 @@ attribute are:</a></p>
<code>javac1.5</code> and
<code>javac1.6</code> 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
href="http://jikes.sourceforge.net/" target="_top">Jikes</a>
compiler).</li>
@@ -525,7 +526,7 @@ invoking the compiler.</p>
<tr>
<td valign="top">release</td>
<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 set and running on JDK &gt;= 9 the source and target
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"/>
<componentdef name="istrue" onerror="ignore"
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"
classname="org.apache.tools.ant.taskdefs.condition.Matches"/>
<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
= "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 JAVAC19 = "javac1.9";
private static final String JAVAC18 = "javac1.8";
@@ -173,6 +174,9 @@ public class Javac extends MatchingTask {
if (JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_8)) {
return JAVAC18;
}
if (JavaEnvUtils.isAtLeastJavaVersion("10")) {
return JAVAC10_PLUS;
}
if (JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_9)) {
return JAVAC9;
}
@@ -221,7 +225,7 @@ public class Javac extends MatchingTask {
* must make sure that your version of jikes supports the -source
* 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>
*
* @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
* 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
*/
public void setTarget(final String target) {
@@ -964,7 +968,8 @@ public class Javac extends MatchingTask {
}

private String getAltCompilerName(final String anImplementation) {
if (JAVAC9.equalsIgnoreCase(anImplementation)
if (JAVAC10_PLUS.equalsIgnoreCase(anImplementation)
|| JAVAC9.equalsIgnoreCase(anImplementation)
|| JAVAC19.equalsIgnoreCase(anImplementation)
|| JAVAC18.equalsIgnoreCase(anImplementation)
|| JAVAC17.equalsIgnoreCase(anImplementation)
@@ -980,7 +985,8 @@ public class Javac extends MatchingTask {
}
if (MODERN.equalsIgnoreCase(anImplementation)) {
final String nextSelected = assumedJavaVersion();
if (JAVAC9.equalsIgnoreCase(nextSelected)
if (JAVAC10_PLUS.equalsIgnoreCase(anImplementation)
|| JAVAC9.equalsIgnoreCase(nextSelected)
|| JAVAC18.equalsIgnoreCase(nextSelected)
|| JAVAC17.equalsIgnoreCase(nextSelected)
|| JAVAC16.equalsIgnoreCase(nextSelected)
@@ -1183,7 +1189,7 @@ public class Javac extends MatchingTask {
scanDir(srcDir, destDir != null ? destDir : srcDir, files);
}
}
private void collectFileListFromModulePath() {
final FileUtils fu = FileUtils.getFileUtils();
for (String pathElement : moduleSourcepath.list()) {
@@ -1248,11 +1254,12 @@ public class Javac extends MatchingTask {
* @param compilerImpl the name of the compiler implementation
* @return true if compilerImpl is "modern", "classic",
* "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) {
return MODERN.equals(compilerImpl)
|| CLASSIC.equals(compilerImpl)
|| JAVAC10_PLUS.equals(compilerImpl)
|| JAVAC9.equals(compilerImpl)
|| JAVAC18.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.8".equalsIgnoreCase(compilerType)
|| "javac1.9".equalsIgnoreCase(compilerType)
|| "javac9".equalsIgnoreCase(compilerType)) {
|| "javac9".equalsIgnoreCase(compilerType)
|| "javac10+".equalsIgnoreCase(compilerType)) {
// does the modern compiler exist?
if (doesModernCompilerExist()) {
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().setPath(sourcepath);
}
if (release == null || !assumeJava19()) {
if (release == null || !assumeJava9Plus()) {
if (target != null) {
cmd.createArgument().setValue("-target");
cmd.createArgument().setValue(target);
@@ -394,7 +394,7 @@ public abstract class DefaultCompilerAdapter
if (!assumeJava13()) { // -source added with JDK 1.4
final String t = attributes.getTarget();
final String s = attributes.getSource();
if (release == null || !assumeJava19()) {
if (release == null || !assumeJava9Plus()) {
if (release != null) {
attributes.log(
"Support for javac --release has been added in Java9 ignoring it");
@@ -714,6 +714,21 @@ public abstract class DefaultCompilerAdapter
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?
* @since Ant 1.8.3
@@ -787,7 +802,7 @@ public abstract class DefaultCompilerAdapter
if (assumeJava18()) {
return "1.8 in JDK 1.8";
}
if (assumeJava9()) {
if (assumeJava9Plus()) {
return "9 in JDK 9";
}
return "";
@@ -814,7 +829,7 @@ public abstract class DefaultCompilerAdapter
&& !assumeJava15() && !assumeJava16())
|| ("7".equals(t) && !assumeJava17())
|| ("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"/>
<typedef name="istrue" onerror="ignore"
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"
classname="org.apache.tools.ant.taskdefs.condition.Not"/>
<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
* 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
*/
public final class JavaEnvUtils {
@@ -181,6 +185,10 @@ public final class JavaEnvUtils {
Class.forName("java.lang.module.ModuleDescriptor");
javaVersion = JAVA_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) {
// swallow as we've hit the max class version that
// we have
@@ -448,52 +456,46 @@ public final class JavaEnvUtils {
*/

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() {
Vector<String> tests = new Vector<>();
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;
}


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

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

/**
@@ -261,12 +261,12 @@ class BlockSort {
* @param eclass points from the index of a character inside the
* block to the first index in fmap that contains the
* 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) {
if (lo == hi) {
return;
@@ -336,12 +336,12 @@ class BlockSort {
* @param eclass points from the index of a character inside the
* block to the first index in fmap that contains the
* 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 lo, unLo, ltLo, hi, unHi, gtHi, n;

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

/* 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
is cheaper. Guidance for the magic constants
is cheaper. Guidance for the magic constants
7621 and 32768 is taken from Sedgewick's algorithms
book, chapter 35.
*/
r = ((r * 7621) + 1) % 32768;
long r3 = r % 3, med;
if (r3 == 0) {
med = eclass[fmap[lo]];
med = eclass[fmap[lo]];
} else if (r3 == 1) {
med = eclass[fmap[(lo + hi) >>> 1]];
} else {
@@ -386,10 +386,10 @@ class BlockSort {
break;
}
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) {
break;
@@ -402,9 +402,9 @@ class BlockSort {
}
n = eclass[fmap[unHi]] - (int) med;
if (n == 0) {
fswap(fmap, unHi, gtHi);
gtHi--; unHi--;
continue;
fswap(fmap, unHi, gtHi);
gtHi--; unHi--;
continue;
}
if (n < 0) {
break;
@@ -510,7 +510,7 @@ class BlockSort {
--*/

/*-- 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.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()
* read()} method exclusively. Thus you should consider to use a
* buffered source stream.</p>
*
*
* <p>Instances of this class are not threadsafe.</p>
*/
public class CBZip2InputStream extends InputStream implements BZip2Constants {
@@ -173,7 +173,7 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {

/*
* (non-Javadoc)
*
*
* @see java.io.InputStream#read(byte[], int, int)
*/
@Override
@@ -261,7 +261,7 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
if (null == in) {
throw new IOException("No InputStream");
}
if (isFirstStream) {
if (in.available() == 0) {
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="test4.jar" location="${antunit.tmpdir}/test4.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"/>
<condition property="build.sysclasspath.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"/>
<mkdir dir="${javac-dir}/classes"/>
</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">
<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}),
enum2List(acl.getResources(TEST_RESOURCE)));
}
private static List enum2List(Enumeration e) {
return Collections.list(e);
}
@@ -111,7 +111,7 @@ public class AntClassLoaderDelegationTest {

public ParentLoader() {
}
protected Enumeration findResources(String name) throws IOException {
if (name.equals(TEST_RESOURCE)) {
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 {
@Rule
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());
buildRule.executeTarget("antlib_uri_auto2");
}
public static class MyTask extends Task {
public void execute() {
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 {

@Rule
public BuildFileRule buildRule = new BuildFileRule();
@Before
public void setUp() {
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";
private static final String TIGRIS_URL =
":pserver:guest@cvs.tigris.org:/cvs AIbdZ,";
@Rule
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
public BuildFileRule buildRule = new BuildFileRule();
@Before
public void setUp() {
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 {
String lastLoggedMessage;
/**
* Create a new EchoTestLogger.
*/
@@ -99,6 +99,6 @@ public class EchoTest {
protected void log(String 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" +
"AProblemWithThatItIsNotABugInAnt";

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

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 {
@Rule
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 {
@Rule
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_FILENAME = "pathconvert.xml";
private static final String BUILD_FILE = BUILD_PATH + BUILD_FILENAME;
@Before
public void setUp() {
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 {
@Rule
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
public void testMultipleTargets() {
buildRule.executeTarget("multipleTargets");
@@ -93,13 +93,13 @@ public class SubAntTest {
assertContains("test2-one", buildRule.getLog());
assertContains("test2-two", buildRule.getLog());
}
@Test
public void testMultipleTargetsOneDoesntExist_FOEfalse() {
buildRule.executeTarget("multipleTargetsOneDoesntExist_FOEfalse");
assertContains("Target \"three\" does not exist in the project \"subant\"", buildRule.getLog());
}
@Test
public void testMultipleTargetsOneDoesntExist_FOEtrue() {
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;

public class TouchTest {
@Rule
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;

/**
*/
public class ParserSupportsTest {



Loading…
Cancel
Save