@@ -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 | ||||
===================================== | ===================================== | ||||
@@ -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"/> | ||||
@@ -1095,5 +1095,44 @@ is redundant and will be ignored.</p> | |||||
<file file="${file}"/> | <file file="${file}"/> | ||||
</resourceexists> | </resourceexists> | ||||
</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> | |||||
<javaversion atleast="9"/> | |||||
</pre></blockquote> | |||||
<p>will evaluate to true if the current JVM is Java9 or above.</p> | |||||
</body> | </body> | ||||
</html> | </html> |
@@ -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 < 9.<br> | when running on JDK < 9.<br> | ||||
When set and running on JDK >= 9 the source and target | When set and running on JDK >= 9 the source and target | ||||
attributes as well as the bootclasspath will be ignored. | attributes as well as the bootclasspath will be ignored. | ||||
@@ -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" | ||||
@@ -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) | ||||
@@ -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(); | ||||
@@ -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()); | |||||
} | } | ||||
/** | /** | ||||
@@ -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; | |||||
} | |||||
} |
@@ -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" | ||||
@@ -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; | ||||
} | } | ||||
@@ -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); | ||||
} | } | ||||
@@ -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 { | |||||
} | } | ||||
} | } | ||||
@@ -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"/> | ||||
@@ -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> |
@@ -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" /> | ||||
@@ -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( | ||||
@@ -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(); | ||||
@@ -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 { | |||||
} | } | ||||
} | } | ||||
@@ -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"); | ||||
@@ -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(); | ||||
@@ -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"); | ||||
@@ -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; | ||||
} | } | ||||
} | } | ||||
} | } |
@@ -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"; | ||||
@@ -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(); | ||||
@@ -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(); | ||||
@@ -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); | ||||
@@ -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(); | ||||
@@ -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 { | ||||
@@ -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(); | ||||
@@ -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 { | ||||