@@ -59,7 +59,7 @@ import org.apache.tools.ant.util.FileUtils; | |||
*/ | |||
public class ComponentHelper { | |||
/** Map of component name to lists of restricted definitions */ | |||
private Map<String, List<AntTypeDefinition>> restrictedDefinitions = new HashMap<>(); | |||
private Map<String, List<AntTypeDefinition>> restrictedDefinitions = new HashMap<>(); | |||
/** Map from component name to anttypedefinition */ | |||
private final Hashtable<String, AntTypeDefinition> antTypeTable = new Hashtable<>(); | |||
@@ -146,8 +146,8 @@ public class ComponentHelper { | |||
if (project == null) { | |||
return null; | |||
} | |||
// Singleton for now, it may change ( per/classloader ) | |||
ComponentHelper ph = (ComponentHelper) project.getReference(COMPONENT_HELPER_REFERENCE); | |||
// Singleton for now, it may change (per/classloader) | |||
ComponentHelper ph = project.getReference(COMPONENT_HELPER_REFERENCE); | |||
if (ph != null) { | |||
return ph; | |||
} | |||
@@ -969,7 +969,7 @@ public class ComponentHelper { | |||
out.println("Cause: The constructor threw the exception"); | |||
out.println(t.toString()); | |||
t.printStackTrace(out); //NOSONAR | |||
} catch (NoClassDefFoundError ncdfe) { | |||
} catch (NoClassDefFoundError ncdfe) { | |||
jars = true; | |||
out.println("Cause: A class needed by class " + classname | |||
+ " cannot be found: "); | |||
@@ -122,7 +122,7 @@ public class DemuxOutputStream extends OutputStream { | |||
*/ | |||
private void removeBuffer() { | |||
Thread current = Thread.currentThread(); | |||
buffers.remove (current); | |||
buffers.remove(current); | |||
} | |||
/** | |||
@@ -765,8 +765,8 @@ public class DirectoryScanner | |||
if (excludes == null) { | |||
this.excludes = null; | |||
} else { | |||
this.excludes = Stream.of(excludes) | |||
.map(DirectoryScanner::normalizePattern).toArray(String[]::new); | |||
this.excludes = Stream.of(excludes).map(DirectoryScanner::normalizePattern) | |||
.toArray(String[]::new); | |||
} | |||
} | |||
@@ -788,11 +788,9 @@ public class DirectoryScanner | |||
if (this.excludes == null || this.excludes.length == 0) { | |||
setExcludes(excludes); | |||
} else { | |||
this.excludes = Stream | |||
.concat(Stream.of(this.excludes), | |||
Stream.of(excludes) | |||
.map(DirectoryScanner::normalizePattern)) | |||
.toArray(String[]::new); | |||
this.excludes = Stream.concat(Stream.of(this.excludes), | |||
Stream.of(excludes).map(DirectoryScanner::normalizePattern)) | |||
.toArray(String[]::new); | |||
} | |||
} | |||
} | |||
@@ -853,8 +851,7 @@ public class DirectoryScanner | |||
while (scanning) { | |||
try { | |||
scanLock.wait(); | |||
} catch (final InterruptedException e) { | |||
continue; | |||
} catch (final InterruptedException ignored) { | |||
} | |||
} | |||
if (illegal != null) { | |||
@@ -872,8 +869,7 @@ public class DirectoryScanner | |||
// set in/excludes to reasonable defaults if needed: | |||
final boolean nullIncludes = includes == null; | |||
includes = nullIncludes | |||
? new String[] { SelectorUtils.DEEP_TREE_MATCH } : includes; | |||
includes = nullIncludes ? new String[] {SelectorUtils.DEEP_TREE_MATCH} : includes; | |||
final boolean nullExcludes = excludes == null; | |||
excludes = nullExcludes ? new String[0] : excludes; | |||
@@ -948,8 +944,7 @@ public class DirectoryScanner | |||
for (TokenizedPattern includePattern : includePatterns) { | |||
final String pattern = includePattern.toString(); | |||
if (!shouldSkipPattern(pattern)) { | |||
newroots.put(includePattern.rtrimWildcardTokens(), | |||
pattern); | |||
newroots.put(includePattern.rtrimWildcardTokens(), pattern); | |||
} | |||
} | |||
for (final Map.Entry<String, TokenizedPath> entry : includeNonPatterns | |||
@@ -978,8 +973,7 @@ public class DirectoryScanner | |||
for (final Map.Entry<TokenizedPath, String> entry : newroots.entrySet()) { | |||
TokenizedPath currentPath = entry.getKey(); | |||
String currentelement = currentPath.toString(); | |||
if (basedir == null | |||
&& !FileUtils.isAbsolutePath(currentelement)) { | |||
if (basedir == null && !FileUtils.isAbsolutePath(currentelement)) { | |||
continue; | |||
} | |||
File myfile = new File(basedir, currentelement); | |||
@@ -998,10 +992,8 @@ public class DirectoryScanner | |||
if (myfile != null && basedir != null) { | |||
currentelement = FILE_UTILS.removeLeadingPath( | |||
basedir, myfile); | |||
if (!currentPath.toString() | |||
.equals(currentelement)) { | |||
currentPath = | |||
new TokenizedPath(currentelement); | |||
if (!currentPath.toString().equals(currentelement)) { | |||
currentPath = new TokenizedPath(currentelement); | |||
} | |||
} | |||
} | |||
@@ -1117,8 +1109,7 @@ public class DirectoryScanner | |||
// set in/excludes to reasonable defaults if needed: | |||
final boolean nullIncludes = (includes == null); | |||
includes = nullIncludes | |||
? new String[] {SelectorUtils.DEEP_TREE_MATCH} : includes; | |||
includes = nullIncludes ? new String[] {SelectorUtils.DEEP_TREE_MATCH} : includes; | |||
final boolean nullExcludes = (excludes == null); | |||
excludes = nullExcludes ? new String[0] : excludes; | |||
@@ -1288,10 +1279,8 @@ public class DirectoryScanner | |||
} else { | |||
everythingIncluded = false; | |||
dirsNotIncluded.addElement(name); | |||
if (fast && couldHoldIncluded(newPath) | |||
&& !contentsExcluded(newPath)) { | |||
scandir(file, newPath, fast, children, | |||
directoryNamesFollowed); | |||
if (fast && couldHoldIncluded(newPath) && !contentsExcluded(newPath)) { | |||
scandir(file, newPath, fast, children, directoryNamesFollowed); | |||
} | |||
} | |||
if (!fast) { | |||
@@ -1345,10 +1334,8 @@ public class DirectoryScanner | |||
} | |||
private void accountForNotFollowedSymlink(final TokenizedPath name, final File file) { | |||
if (!isExcluded(name) && | |||
(isIncluded(name) | |||
|| (file.isDirectory() && couldHoldIncluded(name) | |||
&& !contentsExcluded(name)))) { | |||
if (!isExcluded(name) && (isIncluded(name) | |||
|| (file.isDirectory() && couldHoldIncluded(name) && !contentsExcluded(name)))) { | |||
notFollowedSymlinks.add(file.getAbsolutePath()); | |||
} | |||
} | |||
@@ -1376,7 +1363,7 @@ public class DirectoryScanner | |||
* Test whether or not a name matches against at least one include | |||
* pattern. | |||
* | |||
* @param name The name to match. Must not be <code>null</code>. | |||
* @param name The path to match. Must not be <code>null</code>. | |||
* @return <code>true</code> when the name matches against at least one | |||
* include pattern, or <code>false</code> otherwise. | |||
*/ | |||
@@ -1400,8 +1387,7 @@ public class DirectoryScanner | |||
toMatch = toMatch.toUpperCase(); | |||
} | |||
return includeNonPatterns.containsKey(toMatch) | |||
|| Stream.of(includePatterns) | |||
.anyMatch(p -> p.matchPath(path, isCaseSensitive())); | |||
|| Stream.of(includePatterns).anyMatch(p -> p.matchPath(path, isCaseSensitive())); | |||
} | |||
/** | |||
@@ -1425,11 +1411,9 @@ public class DirectoryScanner | |||
* least one include pattern, or <code>false</code> otherwise. | |||
*/ | |||
private boolean couldHoldIncluded(final TokenizedPath tokenizedName) { | |||
return Stream | |||
.concat(Stream.of(includePatterns), | |||
includeNonPatterns.values().stream() | |||
.map(TokenizedPath::toPattern)) | |||
.anyMatch(pat -> couldHoldIncluded(tokenizedName, pat)); | |||
return Stream.concat(Stream.of(includePatterns), | |||
includeNonPatterns.values().stream().map(TokenizedPath::toPattern)) | |||
.anyMatch(pat -> couldHoldIncluded(tokenizedName, pat)); | |||
} | |||
/** | |||
@@ -1477,8 +1461,7 @@ public class DirectoryScanner | |||
* @since Ant 1.6 | |||
*/ | |||
private boolean isMorePowerfulThanExcludes(final String name) { | |||
final String soughtexclude = | |||
name + File.separatorChar + SelectorUtils.DEEP_TREE_MATCH; | |||
final String soughtexclude = name + File.separatorChar + SelectorUtils.DEEP_TREE_MATCH; | |||
return Stream.of(excludePatterns).map(Object::toString) | |||
.noneMatch(Predicate.isEqual(soughtexclude)); | |||
} | |||
@@ -1523,8 +1506,7 @@ public class DirectoryScanner | |||
toMatch = toMatch.toUpperCase(); | |||
} | |||
return excludeNonPatterns.containsKey(toMatch) | |||
|| Stream.of(excludePatterns) | |||
.anyMatch(p -> p.matchPath(name, isCaseSensitive())); | |||
|| Stream.of(excludePatterns).anyMatch(p -> p.matchPath(name, isCaseSensitive())); | |||
} | |||
/** | |||
@@ -1536,8 +1518,8 @@ public class DirectoryScanner | |||
* should not be selected, <code>true</code> otherwise. | |||
*/ | |||
protected boolean isSelected(final String name, final File file) { | |||
return selectors == null || Stream.of(selectors) | |||
.allMatch(sel -> sel.isSelected(basedir, name, file)); | |||
return selectors == null | |||
|| Stream.of(selectors).allMatch(sel -> sel.isSelected(basedir, name, file)); | |||
} | |||
/** | |||
@@ -1718,8 +1700,7 @@ public class DirectoryScanner | |||
public synchronized String[] getNotFollowedSymlinks() { | |||
String[] links; | |||
synchronized (this) { | |||
links = notFollowedSymlinks | |||
.toArray(new String[notFollowedSymlinks.size()]); | |||
links = notFollowedSymlinks.toArray(new String[notFollowedSymlinks.size()]); | |||
} | |||
Arrays.sort(links); | |||
return links; | |||
@@ -1730,9 +1711,8 @@ public class DirectoryScanner | |||
*/ | |||
@Override | |||
public synchronized void addDefaultExcludes() { | |||
Stream<String> s = Stream.of(getDefaultExcludes()) | |||
.map(p -> p.replace('/', File.separatorChar).replace('\\', | |||
File.separatorChar)); | |||
Stream<String> s = Stream.of(getDefaultExcludes()).map(p -> p.replace('/', | |||
File.separatorChar).replace('\\', File.separatorChar)); | |||
if (excludes != null) { | |||
s = Stream.concat(Stream.of(excludes), s); | |||
} | |||
@@ -1807,14 +1787,14 @@ public class DirectoryScanner | |||
* @param patterns String[] of patterns. | |||
* @since Ant 1.8.0 | |||
*/ | |||
private TokenizedPattern[] fillNonPatternSet(final Map<String, TokenizedPath> map, final String[] patterns) { | |||
private TokenizedPattern[] fillNonPatternSet(final Map<String, TokenizedPath> map, | |||
final String[] patterns) { | |||
final List<TokenizedPattern> al = new ArrayList<>(patterns.length); | |||
for (String pattern : patterns) { | |||
if (SelectorUtils.hasWildcards(pattern)) { | |||
al.add(new TokenizedPattern(pattern)); | |||
} else { | |||
final String s = isCaseSensitive() | |||
? pattern : pattern.toUpperCase(); | |||
final String s = isCaseSensitive() ? pattern : pattern.toUpperCase(); | |||
map.put(s, new TokenizedPath(s)); | |||
} | |||
} | |||
@@ -1836,8 +1816,7 @@ public class DirectoryScanner | |||
final Deque<String> directoryNamesFollowed) { | |||
try { | |||
if (directoryNamesFollowed.size() >= maxLevelsOfSymlinks | |||
&& Collections.frequency(directoryNamesFollowed, dirName) | |||
>= maxLevelsOfSymlinks | |||
&& Collections.frequency(directoryNamesFollowed, dirName) >= maxLevelsOfSymlinks | |||
&& SYMLINK_UTILS.isSymbolicLink(parent, dirName)) { | |||
final List<String> files = new ArrayList<>(); | |||
@@ -1852,8 +1831,7 @@ public class DirectoryScanner | |||
f = FILE_UTILS.resolveFile(parent, relPath + dir); | |||
files.add(f.getCanonicalPath()); | |||
if (files.size() > maxLevelsOfSymlinks | |||
&& Collections.frequency(files, target) | |||
> maxLevelsOfSymlinks) { | |||
&& Collections.frequency(files, target) > maxLevelsOfSymlinks) { | |||
return true; | |||
} | |||
} | |||
@@ -1135,7 +1135,7 @@ public final class IntrospectionHelper { | |||
void set(final Project p, final Object parent, final String value) throws InvocationTargetException, | |||
IllegalAccessException, BuildException { | |||
m.invoke(parent, new Object[] {new FileResource(p, p.resolveFile(value))}); | |||
}; | |||
} | |||
}; | |||
} | |||
// EnumeratedAttributes have their own helper class | |||
@@ -192,12 +192,12 @@ public class Project implements ResourceFactory { | |||
private ClassLoader coreLoader = null; | |||
/** Records the latest task to be executed on a thread. */ | |||
private final Map<Thread,Task> threadTasks = | |||
Collections.synchronizedMap(new WeakHashMap<>()); | |||
private final Map<Thread, Task> threadTasks | |||
= Collections.synchronizedMap(new WeakHashMap<>()); | |||
/** Records the latest task to be executed on a thread group. */ | |||
private final Map<ThreadGroup,Task> threadGroupTasks | |||
= Collections.synchronizedMap(new WeakHashMap<>()); | |||
private final Map<ThreadGroup, Task> threadGroupTasks | |||
= Collections.synchronizedMap(new WeakHashMap<>()); | |||
/** | |||
* Called to handle any input requests. | |||
@@ -592,8 +592,7 @@ public class RuntimeConfigurable implements Serializable { | |||
// Children (this is a shadow of UnknownElement#children) | |||
if (r.children != null) { | |||
List<RuntimeConfigurable> newChildren = new ArrayList<>(); | |||
newChildren.addAll(r.children); | |||
List<RuntimeConfigurable> newChildren = new ArrayList<>(r.children); | |||
if (children != null) { | |||
newChildren.addAll(children); | |||
} | |||
@@ -398,8 +398,7 @@ public class UnknownElement extends Task { | |||
// Do the runtime | |||
getWrapper().applyPreSet(u.getWrapper()); | |||
if (u.children != null) { | |||
List<UnknownElement> newChildren = new ArrayList<>(); | |||
newChildren.addAll(u.children); | |||
List<UnknownElement> newChildren = new ArrayList<>(u.children); | |||
if (children != null) { | |||
newChildren.addAll(children); | |||
} | |||
@@ -466,7 +466,7 @@ public class XmlLogger implements BuildLogger { | |||
} | |||
private void synchronizedAppend(Node parent, Node child) { | |||
synchronized(parent) { | |||
synchronized (parent) { | |||
parent.appendChild(child); | |||
} | |||
} | |||
@@ -176,7 +176,7 @@ public abstract class BaseFilterReader extends FilterReader { | |||
StringBuffer line = new StringBuffer(); | |||
while (ch != -1) { | |||
line.append ((char) ch); | |||
line.append((char) ch); | |||
if (ch == '\n') { | |||
break; | |||
} | |||
@@ -87,7 +87,8 @@ public final class ReplaceTokens | |||
* | |||
* @see BaseFilterReader#BaseFilterReader() | |||
*/ | |||
public ReplaceTokens() {} | |||
public ReplaceTokens() { | |||
} | |||
/** | |||
* Creates a new filtered reader. | |||
@@ -138,12 +139,12 @@ public final class ReplaceTokens | |||
if (next == -1) { | |||
return next; // end of stream. all buffers empty. | |||
} | |||
readBuffer += (char)next; | |||
readBuffer += (char) next; | |||
} | |||
for (;;) { | |||
// get the closest tokens | |||
SortedMap<String,String> possibleTokens = resolvedTokens.tailMap(readBuffer); | |||
SortedMap<String, String> possibleTokens = resolvedTokens.tailMap(readBuffer); | |||
if (possibleTokens.isEmpty() || !possibleTokens.firstKey().startsWith(readBuffer)) { // if there is none, then deliver the first char from the buffer. | |||
return getFirstCharacterFromReadBuffer(); | |||
} else if (readBuffer.equals(possibleTokens.firstKey())) { // there exists a nearest token - is it an exact match? | |||
@@ -156,7 +157,7 @@ public final class ReplaceTokens | |||
} else { // nearest token is not matching exactly - read one character more. | |||
int next = in.read(); | |||
if (next != -1) { | |||
readBuffer += (char)next; | |||
readBuffer += (char) next; | |||
} else { | |||
return getFirstCharacterFromReadBuffer(); // end of stream. deliver remaining characters from buffer. | |||
} | |||
@@ -109,7 +109,7 @@ public class Launcher { | |||
} | |||
if (exitCode != 0) { | |||
if (launchDiag) { | |||
System.out.println("Exit code: "+exitCode); | |||
System.out.println("Exit code: " + exitCode); | |||
} | |||
System.exit(exitCode); | |||
} | |||
@@ -234,7 +234,7 @@ public class Launcher { | |||
} | |||
} | |||
logPath("Launcher JAR",sourceJar); | |||
logPath("Launcher JAR", sourceJar); | |||
logPath("Launcher JAR directory", sourceJar.getParentFile()); | |||
logPath("java.home", new File(System.getProperty("java.home"))); | |||
@@ -253,7 +253,7 @@ public class Launcher { | |||
final URL[] userURLs = noUserLib ? new URL[0] : getUserURLs(); | |||
final File toolsJAR = Locator.getToolsJar(); | |||
logPath("tools.jar",toolsJAR); | |||
logPath("tools.jar", toolsJAR); | |||
final URL[] jars = getJarArray( | |||
libURLs, userURLs, systemURLs, toolsJAR); | |||
@@ -276,7 +276,7 @@ public class Launcher { | |||
Thread.currentThread().setContextClassLoader(loader); | |||
Class<? extends AntMain> mainClass = null; | |||
int exitCode = 0; | |||
Throwable thrown=null; | |||
Throwable thrown = null; | |||
try { | |||
mainClass = loader.loadClass(mainClassname).asSubclass(AntMain.class); | |||
final AntMain main = mainClass.newInstance(); | |||
@@ -294,10 +294,10 @@ public class Launcher { | |||
thrown = cnfe; | |||
} catch (final Throwable t) { | |||
t.printStackTrace(System.err); //NOSONAR | |||
thrown=t; | |||
thrown = t; | |||
} | |||
if(thrown!=null) { | |||
System.err.println(ANTHOME_PROPERTY+": "+antHome.getAbsolutePath()); | |||
if (thrown != null) { | |||
System.err.println(ANTHOME_PROPERTY + ": " + antHome.getAbsolutePath()); | |||
System.err.println("Classpath: " + baseClassPath.toString()); | |||
System.err.println("Launcher JAR: " + sourceJar.getAbsolutePath()); | |||
System.err.println("Launcher Directory: " + jarDir.getAbsolutePath()); | |||
@@ -371,8 +371,8 @@ public class Launcher { | |||
* @return a combined array | |||
* @throws MalformedURLException if there is a problem. | |||
*/ | |||
private URL[] getJarArray ( | |||
final URL[] libJars, final URL[] userJars, final URL[] systemJars, final File toolsJar) | |||
private URL[] getJarArray(final URL[] libJars, final URL[] userJars, | |||
final URL[] systemJars, final File toolsJar) | |||
throws MalformedURLException { | |||
int numJars = libJars.length + userJars.length + systemJars.length; | |||
if (toolsJar != null) { | |||
@@ -402,7 +402,7 @@ public class Launcher { | |||
System.setProperty(name, value); | |||
} | |||
private void logPath(final String name,final File path) { | |||
private void logPath(final String name, final File path) { | |||
if (launchDiag) { | |||
System.out.println(name + "= \"" + path + "\""); | |||
} | |||
@@ -388,8 +388,7 @@ public final class Locator { | |||
* @deprecated since 1.9, use <code>FileUtils.getFileURL(File)</code> | |||
*/ | |||
@Deprecated | |||
public static URL fileToURL(File file) | |||
throws MalformedURLException { | |||
public static URL fileToURL(File file) throws MalformedURLException { | |||
return new URL(file.toURI().toASCIIString()); | |||
} | |||
@@ -104,8 +104,7 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { | |||
/** {@inheritDoc}. */ | |||
@Override | |||
public void buildStarted(final BuildEvent event) { | |||
final String categoryString = PROJECT_LOG; | |||
final Log log = getLog(categoryString, null); | |||
final Log log = getLog(PROJECT_LOG, null); | |||
if (initialized) { | |||
realLog(log, "Build started.", Project.MSG_INFO, null); | |||
@@ -116,8 +115,7 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { | |||
@Override | |||
public void buildFinished(final BuildEvent event) { | |||
if (initialized) { | |||
final String categoryString = PROJECT_LOG; | |||
final Log log = getLog(categoryString, event.getProject().getName()); | |||
final Log log = getLog(PROJECT_LOG, event.getProject().getName()); | |||
if (event.getException() == null) { | |||
realLog(log, "Build finished.", Project.MSG_INFO, null); | |||
@@ -251,7 +249,7 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { | |||
final Log log = getLog(categoryString, categoryDetail); | |||
final int priority = event.getPriority(); | |||
final String message = event.getMessage(); | |||
realLog(log, message, priority , null); | |||
realLog(log, message, priority, null); | |||
} | |||
} | |||
@@ -378,7 +378,7 @@ public class Ant extends Task { | |||
log("calling target(s) " | |||
+ (!locals.isEmpty() ? locals.toString() : "[default]") | |||
+ " in build file " + antFile, Project.MSG_VERBOSE); | |||
newProject.setUserProperty(MagicNames.ANT_FILE , antFile); | |||
newProject.setUserProperty(MagicNames.ANT_FILE, antFile); | |||
String thisAntFile = getProject().getProperty(MagicNames.ANT_FILE); | |||
// Are we trying to call the target in which we are defined (or | |||
@@ -494,7 +494,7 @@ public class Available extends Task implements Condition { | |||
*/ | |||
public static class FileDir extends EnumeratedAttribute { | |||
private static final String[] VALUES = { "file", "dir" }; | |||
private static final String[] VALUES = {"file", "dir"}; | |||
/** | |||
* @see EnumeratedAttribute#getValues | |||
@@ -21,7 +21,6 @@ package org.apache.tools.ant.taskdefs; | |||
import java.io.BufferedOutputStream; | |||
import java.io.IOException; | |||
import java.io.OutputStream; | |||
import java.nio.file.Files; | |||
import org.apache.tools.ant.BuildException; | |||
@@ -77,8 +77,8 @@ public class BindTargets extends Task { | |||
ProjectHelper.PROJECTHELPER_REFERENCE); | |||
for (String target : targets) { | |||
helper.getExtensionStack().add(new String[] { extensionPoint, | |||
target, onMissingExtensionPoint.name() }); | |||
helper.getExtensionStack().add(new String[] {extensionPoint, | |||
target, onMissingExtensionPoint.name()}); | |||
} | |||
} | |||
} |
@@ -115,7 +115,7 @@ public class CVSPass extends Task { | |||
String pwdfile = buf.toString() + cvsRoot + " A" | |||
+ mangle(password); | |||
log("Writing -> " + pwdfile , Project.MSG_DEBUG); | |||
log("Writing -> " + pwdfile, Project.MSG_DEBUG); | |||
writer = new BufferedWriter(new FileWriter(passFile)); | |||
@@ -492,7 +492,7 @@ public class Checksum extends MatchingTask implements Condition { | |||
dis.close(); | |||
fis.close(); | |||
fis = null; | |||
byte[] fileDigest = messageDigest.digest (); | |||
byte[] fileDigest = messageDigest.digest(); | |||
if (totalproperty != null) { | |||
allDigests.put(src, fileDigest); | |||
} | |||
@@ -693,7 +693,7 @@ public class Checksum extends MatchingTask implements Condition { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { CHECKSUM, MD5SUM, SVF }; | |||
return new String[] {CHECKSUM, MD5SUM, SVF}; | |||
} | |||
} | |||
} |
@@ -225,7 +225,7 @@ public class Classloader extends Task { | |||
for (int i = 0; i < list.length; i++) { | |||
File f = new File(list[i]); | |||
if (f.exists()) { | |||
log("Adding to class loader " + acl + " " + f.getAbsolutePath(), | |||
log("Adding to class loader " + acl + " " + f.getAbsolutePath(), | |||
Project.MSG_DEBUG); | |||
acl.addPathElement(f.getAbsolutePath()); | |||
} | |||
@@ -123,8 +123,8 @@ public abstract class Definer extends DefBase { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { POLICY_FAIL, POLICY_REPORT, POLICY_IGNORE, | |||
POLICY_FAILALL }; | |||
return new String[] {POLICY_FAIL, POLICY_REPORT, POLICY_IGNORE, | |||
POLICY_FAILALL}; | |||
} | |||
} | |||
@@ -143,7 +143,7 @@ public abstract class Definer extends DefBase { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "properties", "xml" }; | |||
return new String[] {"properties", "xml"}; | |||
} | |||
} | |||
@@ -596,8 +596,7 @@ public class Delete extends MatchingTask { | |||
if (quiet && failonerror) { | |||
throw new BuildException( | |||
"quiet and failonerror cannot both be set to true", | |||
getLocation()); | |||
"quiet and failonerror cannot both be set to true", getLocation()); | |||
} | |||
// delete the single file | |||
@@ -646,8 +645,7 @@ public class Delete extends MatchingTask { | |||
+ " which looks like a broken symlink.", | |||
quiet ? Project.MSG_VERBOSE : verbosity); | |||
if (!delete(dir)) { | |||
handle("Unable to delete directory " | |||
+ dir.getAbsolutePath()); | |||
handle("Unable to delete directory " + dir.getAbsolutePath()); | |||
} | |||
} | |||
} | |||
@@ -675,13 +673,11 @@ public class Delete extends MatchingTask { | |||
fs.setProject(getProject()); | |||
} | |||
final File fsDir = fs.getDir(); | |||
if (!fs.getErrorOnMissingDir() && | |||
(fsDir == null || !fsDir.exists())) { | |||
if (!fs.getErrorOnMissingDir() && (fsDir == null || !fsDir.exists())) { | |||
continue; | |||
} | |||
if (fsDir == null) { | |||
throw new BuildException( | |||
"File or Resource without directory or file specified"); | |||
throw new BuildException("File or Resource without directory or file specified"); | |||
} else if (!fsDir.isDirectory()) { | |||
handle("Directory does not exist: " + fsDir); | |||
} else { | |||
@@ -691,24 +687,25 @@ public class Delete extends MatchingTask { | |||
// iterating, capture the results now and store them | |||
final String[] files = ds.getIncludedFiles(); | |||
resourcesToDelete.add(new ResourceCollection() { | |||
@Override | |||
public boolean isFilesystemOnly() { | |||
return true; | |||
} | |||
@Override | |||
public int size() { | |||
return files.length; | |||
} | |||
@Override | |||
public Iterator<Resource> iterator() { | |||
return new FileResourceIterator(getProject(), | |||
fsDir, files); | |||
} | |||
}); | |||
@Override | |||
public boolean isFilesystemOnly() { | |||
return true; | |||
} | |||
@Override | |||
public int size() { | |||
return files.length; | |||
} | |||
@Override | |||
public Iterator<Resource> iterator() { | |||
return new FileResourceIterator(getProject(), | |||
fsDir, files); | |||
} | |||
}); | |||
if (includeEmpty) { | |||
filesetDirs.add(new ReverseDirs(getProject(), fsDir, | |||
ds | |||
.getIncludedDirectories())); | |||
ds.getIncludedDirectories())); | |||
} | |||
if (removeNotFollowedSymlinks) { | |||
@@ -746,8 +743,7 @@ public class Delete extends MatchingTask { | |||
for (Resource r : resourcesToDelete) { | |||
// nonexistent resources could only occur if we already | |||
// deleted something from a fileset: | |||
File f = r.as(FileProvider.class) | |||
.getFile(); | |||
File f = r.as(FileProvider.class).getFile(); | |||
if (!f.exists()) { | |||
continue; | |||
} | |||
@@ -781,8 +777,7 @@ public class Delete extends MatchingTask { | |||
private void handle(Exception e) { | |||
if (failonerror) { | |||
throw (e instanceof BuildException) | |||
? (BuildException) e : new BuildException(e); | |||
throw (e instanceof BuildException) ? (BuildException) e : new BuildException(e); | |||
} | |||
log(e, quiet ? Project.MSG_VERBOSE : verbosity); | |||
} | |||
@@ -865,8 +860,7 @@ public class Delete extends MatchingTask { | |||
log("Deleting " + currDir.getAbsolutePath(), | |||
quiet ? Project.MSG_VERBOSE : verbosity); | |||
if (!delete(currDir)) { | |||
handle("Unable to delete directory " | |||
+ currDir.getAbsolutePath()); | |||
handle("Unable to delete directory " + currDir.getAbsolutePath()); | |||
} else { | |||
dirCount++; | |||
} | |||
@@ -874,8 +868,7 @@ public class Delete extends MatchingTask { | |||
} | |||
if (dirCount > 0) { | |||
log("Deleted " | |||
+ dirCount | |||
log("Deleted " + dirCount | |||
+ " director" + (dirCount == 1 ? "y" : "ies") | |||
+ " form " + d.getAbsolutePath(), | |||
quiet ? Project.MSG_VERBOSE : verbosity); | |||
@@ -107,7 +107,8 @@ public class EchoXML extends XMLFragment { | |||
public static final NamespacePolicy DEFAULT | |||
= new NamespacePolicy(IGNORE); | |||
public NamespacePolicy() {} | |||
public NamespacePolicy() { | |||
} | |||
public NamespacePolicy(String s) { | |||
setValue(s); | |||
@@ -116,7 +117,7 @@ public class EchoXML extends XMLFragment { | |||
/** {@inheritDoc}. */ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { IGNORE, ELEMENTS, ALL }; | |||
return new String[] {IGNORE, ELEMENTS, ALL}; | |||
} | |||
public DOMElementWriter.XmlNamespacePolicy getPolicy() { | |||
@@ -194,16 +194,16 @@ public class Execute { | |||
private static String[] getProcEnvCommand() { | |||
if (Os.isFamily("os/2")) { | |||
// OS/2 - use same mechanism as Windows 2000 | |||
return new String[] { "cmd", "/c", "set" }; | |||
return new String[] {"cmd", "/c", "set"}; | |||
} | |||
if (Os.isFamily("windows")) { | |||
// Determine if we're running under XP/2000/NT or 98/95 | |||
if (Os.isFamily("win9x")) { | |||
// Windows 98/95 | |||
return new String[] { "command.com", "/c", "set" }; | |||
return new String[] {"command.com", "/c", "set"}; | |||
} | |||
// Windows XP/2000/NT/2003 | |||
return new String[] { "cmd", "/c", "set" }; | |||
return new String[] {"cmd", "/c", "set"}; | |||
} | |||
if (Os.isFamily("z/os") || Os.isFamily("unix")) { | |||
// On most systems one could use: /bin/sh -c env | |||
@@ -222,10 +222,10 @@ public class Execute { | |||
} | |||
if (Os.isFamily("netware") || Os.isFamily("os/400")) { | |||
// rely on PATH | |||
return new String[] { "env" }; | |||
return new String[] {"env"}; | |||
} | |||
if (Os.isFamily("openvms")) { | |||
return new String[] { "show", "logical" }; | |||
return new String[] {"show", "logical"}; | |||
} | |||
// MAC OS 9 and previous | |||
// TODO: I have no idea how to get it, someone must fix it | |||
@@ -329,7 +329,7 @@ public class ExecuteJava implements Runnable, TimeoutObserver { | |||
//after execution finished, which is much better for long-lived runtimes | |||
//though spawning complicates things... | |||
vmsJavaOptionFile.deleteOnExit(); | |||
String[] vmsCmd = { command[0], "-V", vmsJavaOptionFile.getPath() }; | |||
String[] vmsCmd = {command[0], "-V", vmsJavaOptionFile.getPath()}; | |||
exe.setCommandline(vmsCmd); | |||
} catch (IOException e) { | |||
throw new BuildException("Failed to create a temporary file for \"-V\" switch"); | |||
@@ -334,8 +334,7 @@ public class ExecuteOn extends ExecTask { | |||
@Override | |||
protected ExecuteStreamHandler createHandler() throws BuildException { | |||
//if we have a RedirectorElement, return a decoy | |||
return (redirectorElement == null) | |||
? super.createHandler() : new PumpStreamHandler(); | |||
return (redirectorElement == null) ? super.createHandler() : new PumpStreamHandler(); | |||
} | |||
/** | |||
@@ -397,8 +396,7 @@ public class ExecuteOn extends ExecTask { | |||
if (!parallel) { | |||
for (String srcFile : fileNames) { | |||
String[] command = getCommandline(srcFile, base); | |||
log(Commandline.describeCommand(command), | |||
Project.MSG_VERBOSE); | |||
log(Commandline.describeCommand(command), Project.MSG_VERBOSE); | |||
exe.setCommandline(command); | |||
if (redirectorElement != null) { | |||
@@ -441,11 +439,9 @@ public class ExecuteOn extends ExecTask { | |||
continue; | |||
} | |||
if ((!res.isDirectory() || !res.isExists()) | |||
&& !FileDirBoth.DIR.equals(type)) { | |||
if ((!res.isDirectory() || !res.isExists()) && !FileDirBoth.DIR.equals(type)) { | |||
totalFiles++; | |||
} else if (res.isDirectory() | |||
&& !FileDirBoth.FILE.equals(type)) { | |||
} else if (res.isDirectory() && !FileDirBoth.FILE.equals(type)) { | |||
totalDirs++; | |||
} else { | |||
continue; | |||
@@ -456,8 +452,7 @@ public class ExecuteOn extends ExecTask { | |||
if (!parallel) { | |||
String[] command = getCommandline(name, base); | |||
log(Commandline.describeCommand(command), | |||
Project.MSG_VERBOSE); | |||
log(Commandline.describeCommand(command), Project.MSG_VERBOSE); | |||
exe.setCommandline(command); | |||
if (redirectorElement != null) { | |||
@@ -482,10 +477,8 @@ public class ExecuteOn extends ExecTask { | |||
haveExecuted = true; | |||
} | |||
if (haveExecuted) { | |||
log("Applied " + cmdl.getExecutable() + " to " | |||
+ totalFiles + " file" | |||
+ (totalFiles != 1 ? "s" : "") + " and " | |||
+ totalDirs + " director" | |||
log("Applied " + cmdl.getExecutable() + " to " + totalFiles + " file" | |||
+ (totalFiles != 1 ? "s" : "") + " and " + totalDirs + " director" | |||
+ (totalDirs != 1 ? "ies" : "y") + ".", | |||
verbose ? Project.MSG_INFO : Project.MSG_VERBOSE); | |||
} | |||
@@ -507,11 +500,8 @@ public class ExecuteOn extends ExecTask { | |||
*/ | |||
private void logSkippingFileset( | |||
String currentType, DirectoryScanner ds, File base) { | |||
int includedCount | |||
= ((!FileDirBoth.DIR.equals(currentType)) | |||
? ds.getIncludedFilesCount() : 0) | |||
+ ((!FileDirBoth.FILE.equals(currentType)) | |||
? ds.getIncludedDirsCount() : 0); | |||
int includedCount = (!FileDirBoth.DIR.equals(currentType) ? ds.getIncludedFilesCount() : 0) | |||
+ (!FileDirBoth.FILE.equals(currentType) ? ds.getIncludedDirsCount() : 0); | |||
log("Skipping fileset for directory " + base + ". It is " | |||
+ ((includedCount > 0) ? "up to date." : "empty."), | |||
@@ -627,9 +617,8 @@ public class ExecuteOn extends ExecTask { | |||
if (forwardSlash && fileSeparator != '/') { | |||
src = src.replace(fileSeparator, '/'); | |||
} | |||
if (srcFilePos != null && | |||
(srcFilePos.getPrefix().length() > 0 | |||
|| srcFilePos.getSuffix().length() > 0)) { | |||
if (srcFilePos != null && (srcFilePos.getPrefix().length() > 0 | |||
|| srcFilePos.getSuffix().length() > 0)) { | |||
src = srcFilePos.getPrefix() + src + srcFilePos.getSuffix(); | |||
} | |||
result[srcIndex + i] = src; | |||
@@ -645,7 +634,7 @@ public class ExecuteOn extends ExecTask { | |||
* @return the command line in the form of a String[]. | |||
*/ | |||
protected String[] getCommandline(String srcFile, File baseDir) { | |||
return getCommandline(new String[] { srcFile }, new File[] { baseDir }); | |||
return getCommandline(new String[] {srcFile}, new File[] {baseDir}); | |||
} | |||
/** | |||
@@ -703,8 +692,7 @@ public class ExecuteOn extends ExecTask { | |||
String[] s = fileNames.toArray(new String[fileNames.size()]); | |||
File[] b = baseDirs.toArray(new File[baseDirs.size()]); | |||
if (maxParallel <= 0 | |||
|| s.length == 0 /* this is skipEmpty == false */) { | |||
if (maxParallel <= 0 || s.length == 0 /* this is skipEmpty == false */) { | |||
String[] command = getCommandline(s, b); | |||
log(Commandline.describeCommand(command), Project.MSG_VERBOSE); | |||
exe.setCommandline(command); | |||
@@ -780,7 +768,7 @@ public class ExecuteOn extends ExecTask { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { FILE, DIR, "both" }; | |||
return new String[] {FILE, DIR, "both"}; | |||
} | |||
} | |||
@@ -680,7 +680,7 @@ public class FixCRLF extends MatchingTask implements ChainableReader { | |||
/** {@inheritDoc}. */ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "add", "asis", "remove" }; | |||
return new String[] {"add", "asis", "remove"}; | |||
} | |||
} | |||
@@ -694,8 +694,8 @@ public class FixCRLF extends MatchingTask implements ChainableReader { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "asis", "cr", "lf", "crlf", "mac", "unix", | |||
"dos" }; | |||
return new String[] {"asis", "cr", "lf", "crlf", "mac", "unix", | |||
"dos"}; | |||
} | |||
} | |||
@@ -19,7 +19,6 @@ | |||
package org.apache.tools.ant.taskdefs; | |||
import java.io.File; | |||
import java.io.FileNotFoundException; | |||
import java.io.IOException; | |||
import java.io.InputStream; | |||
import java.io.OutputStream; | |||
@@ -358,7 +357,7 @@ public class Get extends Task { | |||
* @param v if "true" then be quiet | |||
* @since Ant 1.9.4 | |||
*/ | |||
public void setQuiet(final boolean v){ | |||
public void setQuiet(final boolean v) { | |||
this.quiet = v; | |||
} | |||
@@ -655,8 +654,8 @@ public class Get extends Task { | |||
private int redirections = 0; | |||
private String userAgent = null; | |||
GetThread(final URL source, final File dest, | |||
final boolean h, final long t, final DownloadProgress p, final int l, final String userAgent) { | |||
GetThread(final URL source, final File dest, final boolean h, | |||
final long t, final DownloadProgress p, final int l, final String userAgent) { | |||
this.source = source; | |||
this.dest = dest; | |||
hasTimestamp = h; | |||
@@ -699,30 +698,29 @@ public class Get extends Task { | |||
private boolean redirectionAllowed(final URL aSource, final URL aDest) { | |||
if (!(aSource.getProtocol().equals(aDest.getProtocol()) || (HTTP | |||
.equals(aSource.getProtocol()) && HTTPS.equals(aDest | |||
.getProtocol())))) { | |||
final String message = "Redirection detected from " | |||
+ aSource.getProtocol() + " to " + aDest.getProtocol() | |||
+ ". Protocol switch unsafe, not allowed."; | |||
if (ignoreErrors) { | |||
log(message, logLevel); | |||
return false; | |||
if (aSource.getProtocol().equals(aDest.getProtocol()) | |||
&& (HTTP.equals(aSource.getProtocol()) || HTTPS.equals(aDest.getProtocol()))) { | |||
redirections++; | |||
if (redirections > REDIRECT_LIMIT) { | |||
final String message = "More than " + REDIRECT_LIMIT | |||
+ " times redirected, giving up"; | |||
if (ignoreErrors) { | |||
log(message, logLevel); | |||
return false; | |||
} | |||
throw new BuildException(message); | |||
} | |||
throw new BuildException(message); | |||
return true; | |||
} | |||
redirections++; | |||
if (redirections > REDIRECT_LIMIT) { | |||
final String message = "More than " + REDIRECT_LIMIT | |||
+ " times redirected, giving up"; | |||
if (ignoreErrors) { | |||
log(message, logLevel); | |||
return false; | |||
} | |||
throw new BuildException(message); | |||
final String message = "Redirection detected from " | |||
+ aSource.getProtocol() + " to " + aDest.getProtocol() | |||
+ ". Protocol switch unsafe, not allowed."; | |||
if (ignoreErrors) { | |||
log(message, logLevel); | |||
return false; | |||
} | |||
return true; | |||
throw new BuildException(message); | |||
} | |||
private URLConnection openConnection(final URL aSource) throws IOException { | |||
@@ -746,8 +744,7 @@ public class Get extends Task { | |||
// testing | |||
final Base64Converter encoder = new Base64Converter(); | |||
encoding = encoder.encode(up.getBytes()); | |||
connection.setRequestProperty("Authorization", "Basic " | |||
+ encoding); | |||
connection.setRequestProperty("Authorization", "Basic " + encoding); | |||
} | |||
if (tryGzipEncoding) { | |||
@@ -761,10 +758,8 @@ public class Get extends Task { | |||
} | |||
if (connection instanceof HttpURLConnection) { | |||
((HttpURLConnection) connection) | |||
.setInstanceFollowRedirects(false); | |||
((HttpURLConnection) connection) | |||
.setUseCaches(httpUseCaches); | |||
((HttpURLConnection) connection).setInstanceFollowRedirects(false); | |||
connection.setUseCaches(httpUseCaches); | |||
} | |||
// connect to the remote site (may take some time) | |||
try { | |||
@@ -821,14 +816,13 @@ public class Get extends Task { | |||
} | |||
private boolean isMoved(final int responseCode) { | |||
return responseCode == HttpURLConnection.HTTP_MOVED_PERM || | |||
responseCode == HttpURLConnection.HTTP_MOVED_TEMP || | |||
responseCode == HttpURLConnection.HTTP_SEE_OTHER || | |||
responseCode == HTTP_MOVED_TEMP; | |||
return responseCode == HttpURLConnection.HTTP_MOVED_PERM | |||
|| responseCode == HttpURLConnection.HTTP_MOVED_TEMP | |||
|| responseCode == HttpURLConnection.HTTP_SEE_OTHER | |||
|| responseCode == HTTP_MOVED_TEMP; | |||
} | |||
private boolean downloadFile() | |||
throws FileNotFoundException, IOException { | |||
private boolean downloadFile() throws IOException { | |||
for (int i = 0; i < numberRetries; i++) { | |||
// this three attempt trick is to get round quirks in different | |||
// Java implementations. Some of them take a few goes to bind | |||
@@ -885,9 +879,7 @@ public class Get extends Task { | |||
if (verbose) { | |||
final Date t = new Date(remoteTimestamp); | |||
log("last modified = " + t.toString() | |||
+ ((remoteTimestamp == 0) | |||
? " - using current time instead" | |||
: ""), logLevel); | |||
+ ((remoteTimestamp == 0) ? " - using current time instead" : ""), logLevel); | |||
} | |||
if (remoteTimestamp != 0) { | |||
FILE_UTILS.setFileLastModified(dest, remoteTimestamp); | |||
@@ -241,7 +241,7 @@ public class HostInfo extends Task { | |||
int idx = fqdn.indexOf('.'); | |||
if (idx > 0) { | |||
setProperty(NAME, fqdn.substring(0, idx)); | |||
setProperty(DOMAIN, fqdn.substring(idx+1)); | |||
setProperty(DOMAIN, fqdn.substring(idx + 1)); | |||
} else { | |||
setProperty(NAME, fqdn); | |||
setProperty(DOMAIN, DEF_DOMAIN); | |||
@@ -125,14 +125,12 @@ public class Input extends Task { | |||
* "default", "propertyfile", "greedy", "secure" (since Ant 1.8). | |||
*/ | |||
public static class HandlerType extends EnumeratedAttribute { | |||
private static final String[] VALUES = | |||
{ "default", "propertyfile", "greedy", "secure" }; | |||
private static final String[] VALUES = {"default", "propertyfile", "greedy", "secure"}; | |||
private static final InputHandler[] HANDLERS | |||
= { new DefaultInputHandler(), | |||
private static final InputHandler[] HANDLERS = {new DefaultInputHandler(), | |||
new PropertyFileInputHandler(), | |||
new GreedyInputHandler(), | |||
new SecureInputHandler() }; | |||
new SecureInputHandler()}; | |||
/** {@inheritDoc} */ | |||
@Override | |||
@@ -160,7 +158,7 @@ public class Input extends Task { | |||
* | |||
* @param validargs A comma separated String defining valid input args. | |||
*/ | |||
public void setValidargs (final String validargs) { | |||
public void setValidargs(final String validargs) { | |||
this.validargs = validargs; | |||
} | |||
@@ -171,7 +169,7 @@ public class Input extends Task { | |||
* | |||
* @param addproperty Name for the property to be created from input | |||
*/ | |||
public void setAddproperty (final String addproperty) { | |||
public void setAddproperty(final String addproperty) { | |||
this.addproperty = addproperty; | |||
} | |||
@@ -179,7 +177,7 @@ public class Input extends Task { | |||
* Sets the Message which gets displayed to the user during the build run. | |||
* @param message The message to be displayed. | |||
*/ | |||
public void setMessage (final String message) { | |||
public void setMessage(final String message) { | |||
this.message = message; | |||
messageAttribute = true; | |||
} | |||
@@ -191,7 +189,7 @@ public class Input extends Task { | |||
* @param defaultvalue Default value for the property if no input | |||
* is received | |||
*/ | |||
public void setDefaultvalue (final String defaultvalue) { | |||
public void setDefaultvalue(final String defaultvalue) { | |||
this.defaultvalue = defaultvalue; | |||
} | |||
@@ -211,7 +209,7 @@ public class Input extends Task { | |||
* @throws BuildException on error | |||
*/ | |||
@Override | |||
public void execute () throws BuildException { | |||
public void execute() throws BuildException { | |||
if (addproperty != null | |||
&& getProject().getProperty(addproperty) != null) { | |||
log("skipping " + getTaskName() + " as property " + addproperty | |||
@@ -969,7 +969,7 @@ public class Jar extends Zip { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "skip", "merge", "mergewithoutmain" }; | |||
return new String[] {"skip", "merge", "mergewithoutmain"}; | |||
} | |||
} | |||
@@ -1104,10 +1104,10 @@ public class Jar extends Zip { | |||
for (int i = 0; i < rcs.length; i++) { | |||
Resource[][] resources; | |||
if (rcs[i] instanceof FileSet) { | |||
resources = grabResources(new FileSet[] { (FileSet) rcs[i] }); | |||
resources = grabResources(new FileSet[] {(FileSet) rcs[i]}); | |||
} else { | |||
resources = grabNonFileSetResources( | |||
new ResourceCollection[] { rcs[i] }); | |||
new ResourceCollection[] {rcs[i]}); | |||
} | |||
for (int j = 0; j < resources[0].length; j++) { | |||
String name = resources[0][j].getName().replace('\\', '/'); | |||
@@ -1169,7 +1169,7 @@ public class Jar extends Zip { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "fail", "warn", "ignore" }; | |||
return new String[] {"fail", "warn", "ignore"}; | |||
} | |||
/** | |||
@@ -1231,7 +1231,7 @@ public class Javac extends MatchingTask { | |||
} | |||
if (extensions == null) { | |||
extensions = new String[] { "java" }; | |||
extensions = new String[] {"java"}; | |||
} | |||
// now process the extensions to ensure that they are the | |||
@@ -1669,9 +1669,8 @@ public class Javac extends MatchingTask { | |||
throw new BuildException("The modulesourcepath entry must contain at most one module mark"); | |||
} | |||
final String pathToModule = pattern.substring(0, startIndex); | |||
final String pathInModule = endIndex == pattern.length() ? | |||
null : | |||
pattern.substring(endIndex + 1); //+1 the separator | |||
final String pathInModule = endIndex == pattern.length() | |||
? null : pattern.substring(endIndex + 1); //+1 the separator | |||
findModules(root, pathToModule, pathInModule, collector); | |||
} | |||
@@ -368,7 +368,7 @@ public class Javadoc extends Task { | |||
public String[] getValues() { | |||
// Protected first so if any GUI tool offers a default | |||
// based on enum #0, it will be right. | |||
return new String[] { "protected", "public", "package", "private" }; | |||
return new String[] {"protected", "public", "package", "private"}; | |||
} | |||
} | |||
@@ -1339,7 +1339,7 @@ public class Javadoc extends Task { | |||
private String scope = "a"; | |||
/** Sole constructor. */ | |||
public TagArgument () { | |||
public TagArgument() { | |||
//empty | |||
} | |||
@@ -1349,7 +1349,7 @@ public class Javadoc extends Task { | |||
* @param name The name of the tag. | |||
* Must not be <code>null</code> or empty. | |||
*/ | |||
public void setName (final String name) { | |||
public void setName(final String name) { | |||
this.name = name; | |||
} | |||
@@ -1369,7 +1369,7 @@ public class Javadoc extends Task { | |||
* elements are specified, or if any unrecognised elements are | |||
* specified. | |||
*/ | |||
public void setScope (String verboseScope) throws BuildException { | |||
public void setScope(String verboseScope) throws BuildException { | |||
verboseScope = verboseScope.toLowerCase(Locale.ENGLISH); | |||
final boolean[] elements = new boolean[SCOPE_ELEMENTS.length]; | |||
@@ -1379,7 +1379,7 @@ public class Javadoc extends Task { | |||
// Go through the tokens one at a time, updating the | |||
// elements array and issuing warnings where appropriate. | |||
final StringTokenizer tok = new StringTokenizer (verboseScope, ","); | |||
final StringTokenizer tok = new StringTokenizer(verboseScope, ","); | |||
while (tok.hasMoreTokens()) { | |||
final String next = tok.nextToken().trim(); | |||
if ("all".equals(next)) { | |||
@@ -1434,7 +1434,7 @@ public class Javadoc extends Task { | |||
* | |||
* @param enabled Whether or not this tag is enabled. | |||
*/ | |||
public void setEnabled (final boolean enabled) { | |||
public void setEnabled(final boolean enabled) { | |||
this.enabled = enabled; | |||
} | |||
@@ -176,18 +176,18 @@ public class KeySubst extends Task { | |||
while ((index = origString.indexOf("${", i)) > -1) { | |||
key = origString.substring(index + 2, origString.indexOf("}", | |||
index + 3)); | |||
finalString.append (origString.substring(i, index)); | |||
finalString.append(origString.substring(i, index)); | |||
if (keys.containsKey(key)) { | |||
finalString.append (keys.get(key)); | |||
finalString.append(keys.get(key)); | |||
} else { | |||
finalString.append ("${"); | |||
finalString.append (key); | |||
finalString.append ("}"); | |||
finalString.append("${"); | |||
finalString.append(key); | |||
finalString.append("}"); | |||
} | |||
i = index + 3 + key.length(); | |||
} | |||
// CheckStyle:MagicNumber ON | |||
finalString.append (origString.substring(i)); | |||
finalString.append(origString.substring(i)); | |||
return finalString.toString(); | |||
} | |||
} |
@@ -255,7 +255,7 @@ public class Length extends Task implements Condition { | |||
/** EnumeratedAttribute operation mode */ | |||
public static class FileMode extends EnumeratedAttribute { | |||
static final String[] MODES = new String[] { EACH, ALL }; //NOSONAR | |||
static final String[] MODES = new String[] {EACH, ALL}; //NOSONAR | |||
/** | |||
* Return the possible values for FileMode. | |||
@@ -92,7 +92,7 @@ public class ManifestTask extends Task { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "update", "replace" }; | |||
return new String[] {"update", "replace"}; | |||
} | |||
} | |||
@@ -170,7 +170,7 @@ public class Move extends Copy { | |||
int createCount = 0; | |||
for (Map.Entry<String, String[]> entry : dirCopyMap.entrySet()) { | |||
String fromDirName = entry.getKey(); | |||
String[] toDirNames = entry.getValue();; | |||
String[] toDirNames = entry.getValue(); | |||
boolean selfMove = false; | |||
for (int i = 0; i < toDirNames.length; i++) { | |||
if (fromDirName.equals(toDirNames[i])) { | |||
@@ -163,8 +163,7 @@ public class PathConvert extends Task { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "windows", "unix", "netware", "os/2", | |||
"tandem" }; | |||
return new String[] {"windows", "unix", "netware", "os/2", "tandem"}; | |||
} | |||
} | |||
@@ -516,7 +516,7 @@ public class Replace extends MatchingTask { | |||
Properties props = getProperties(replaceFilterResource); | |||
Iterator<Object> e = getOrderedIterator(props); | |||
while (e.hasNext()) { | |||
String tok = e.next().toString(); | |||
String tok = e.next().toString(); | |||
Replacefilter replaceFilter = createReplacefilter(); | |||
replaceFilter.setToken(tok); | |||
replaceFilter.setValue(props.getProperty(tok)); | |||
@@ -91,7 +91,7 @@ public class SQLExec extends JDBCTask { | |||
/** @return the enumerated strings */ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { NORMAL, ROW }; | |||
return new String[] {NORMAL, ROW}; | |||
} | |||
} | |||
@@ -987,7 +987,7 @@ public class SQLExec extends JDBCTask { | |||
/** @return the enumerated values */ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "continue", "stop", "abort" }; | |||
return new String[] {"continue", "stop", "abort"}; | |||
} | |||
} | |||
@@ -1071,9 +1071,9 @@ public class SQLExec extends JDBCTask { | |||
public int lastDelimiterPosition(StringBuffer buf, String currentLine) { | |||
if (strictDelimiterMatching) { | |||
if ((delimiterType.equals(DelimiterType.NORMAL) | |||
&& StringUtils.endsWith(buf, delimiter)) || | |||
(delimiterType.equals(DelimiterType.ROW) | |||
&& currentLine.equals(delimiter))) { | |||
&& StringUtils.endsWith(buf, delimiter)) | |||
|| (delimiterType.equals(DelimiterType.ROW) | |||
&& currentLine.equals(delimiter))) { | |||
return buf.length() - delimiter.length(); | |||
} | |||
// no match | |||
@@ -1085,17 +1085,15 @@ public class SQLExec extends JDBCTask { | |||
// StringUtils.endsWith | |||
int endIndex = delimiter.length() - 1; | |||
int bufferIndex = buf.length() - 1; | |||
while (bufferIndex >= 0 | |||
&& Character.isWhitespace(buf.charAt(bufferIndex))) { | |||
while (bufferIndex >= 0 && Character.isWhitespace(buf.charAt(bufferIndex))) { | |||
--bufferIndex; | |||
} | |||
if (bufferIndex < endIndex) { | |||
return -1; | |||
} | |||
while (endIndex >= 0) { | |||
if (buf.substring(bufferIndex, bufferIndex + 1) | |||
.toLowerCase(Locale.ENGLISH).charAt(0) | |||
!= d.charAt(endIndex)) { | |||
if (buf.substring(bufferIndex, bufferIndex + 1).toLowerCase(Locale.ENGLISH) | |||
.charAt(0) != d.charAt(endIndex)) { | |||
return -1; | |||
} | |||
bufferIndex--; | |||
@@ -76,7 +76,7 @@ public class SetPermissions extends Task { | |||
* Try DosFilePermissions - setting the read-only flag - and | |||
* log an error and go on if that fails as well. | |||
*/ | |||
tryDosOrPass; | |||
tryDosOrPass | |||
} | |||
/** | |||
@@ -153,11 +153,11 @@ public class SetPermissions extends Task { | |||
} | |||
} | |||
} catch (ClassCastException cce) { | |||
maybeThrowException(null, | |||
"some specified permissions are not of type PosixFilePermission: %s", | |||
maybeThrowException(null, | |||
"some specified permissions are not of type PosixFilePermission: %s", | |||
StringUtils.join(permissions, ", ")); | |||
} catch (SecurityException se) { | |||
maybeThrowException(null, | |||
maybeThrowException(null, | |||
"the SecurityManager denies role accessUserInformation or write access for SecurityManager.checkWrite for resource '%s'", | |||
currentResource); | |||
} catch (BuildException be) { | |||
@@ -143,7 +143,7 @@ public class StreamPumper implements Runnable { | |||
} | |||
// On completion, drain any available data (which might be the first data available for quick executions) | |||
if (finish) { | |||
while((length = is.available()) > 0) { | |||
while ((length = is.available()) > 0) { | |||
if (Thread.interrupted()) { | |||
break; | |||
} | |||
@@ -188,7 +188,7 @@ public class Sync extends Task { | |||
*/ | |||
private int[] removeOrphanFiles(Set<String> nonOrphans, File toDir, | |||
Set<File> preservedDirectories) { | |||
int[] removedCount = new int[] { 0, 0 }; | |||
int[] removedCount = new int[] {0, 0}; | |||
String[] excls = | |||
nonOrphans.toArray(new String[nonOrphans.size() + 1]); | |||
// want to keep toDir itself | |||
@@ -980,7 +980,7 @@ public class Tar extends MatchingTask { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { NONE, GZIP, BZIP2, XZ }; | |||
return new String[] {NONE, GZIP, BZIP2, XZ}; | |||
} | |||
/** | |||
@@ -24,7 +24,6 @@ import java.text.DateFormat; | |||
import java.text.ParseException; | |||
import java.text.SimpleDateFormat; | |||
import java.util.List; | |||
import java.util.Locale; | |||
import java.util.Vector; | |||
import org.apache.tools.ant.BuildException; | |||
@@ -78,14 +78,14 @@ public class Tstamp extends Task { | |||
customFormats.forEach(cts -> cts.execute(getProject(), d, getLocation())); | |||
SimpleDateFormat dstamp = new SimpleDateFormat ("yyyyMMdd"); | |||
SimpleDateFormat dstamp = new SimpleDateFormat("yyyyMMdd"); | |||
setProperty("DSTAMP", dstamp.format(d)); | |||
SimpleDateFormat tstamp = new SimpleDateFormat ("HHmm"); | |||
SimpleDateFormat tstamp = new SimpleDateFormat("HHmm"); | |||
setProperty("TSTAMP", tstamp.format(d)); | |||
SimpleDateFormat today | |||
= new SimpleDateFormat ("MMMM d yyyy", Locale.US); | |||
= new SimpleDateFormat("MMMM d yyyy", Locale.US); | |||
setProperty("TODAY", today.format(d)); | |||
} catch (Exception e) { | |||
@@ -131,11 +131,7 @@ public class Tstamp extends Task { | |||
s -> new Date(1000 * Long.parseLong(s)), | |||
(k, v) -> "magic property " + k + " ignored as " + v + " is not a valid number" | |||
); | |||
if (now.isPresent()) { | |||
return now.get(); | |||
} | |||
return new Date(); | |||
return now.orElseGet(Date::new); | |||
} | |||
/** | |||
@@ -213,16 +209,14 @@ public class Tstamp extends Task { | |||
if (st.hasMoreElements()) { | |||
variant = st.nextToken(); | |||
if (st.hasMoreElements()) { | |||
throw new BuildException("bad locale format", | |||
getLocation()); | |||
throw new BuildException("bad locale format", getLocation()); | |||
} | |||
} | |||
} else { | |||
country = ""; | |||
} | |||
} catch (NoSuchElementException e) { | |||
throw new BuildException("bad locale format", e, | |||
getLocation()); | |||
throw new BuildException("bad locale format", e, getLocation()); | |||
} | |||
} | |||
@@ -290,25 +284,20 @@ public class Tstamp extends Task { | |||
*/ | |||
public void execute(Project project, Date date, Location location) { | |||
if (propertyName == null) { | |||
throw new BuildException("property attribute must be provided", | |||
location); | |||
throw new BuildException("property attribute must be provided", location); | |||
} | |||
if (pattern == null) { | |||
throw new BuildException("pattern attribute must be provided", | |||
location); | |||
throw new BuildException("pattern attribute must be provided", location); | |||
} | |||
SimpleDateFormat sdf; | |||
if (language == null) { | |||
sdf = new SimpleDateFormat(pattern); | |||
} else if (variant == null) { | |||
sdf = new SimpleDateFormat(pattern, | |||
new Locale(language, country)); | |||
sdf = new SimpleDateFormat(pattern, new Locale(language, country)); | |||
} else { | |||
sdf = new SimpleDateFormat(pattern, | |||
new Locale(language, country, | |||
variant)); | |||
sdf = new SimpleDateFormat(pattern, new Locale(language, country, variant)); | |||
} | |||
if (offset != 0) { | |||
Calendar calendar = Calendar.getInstance(); | |||
@@ -204,7 +204,7 @@ public class Untar extends Expand { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { NONE, GZIP, BZIP2, XZ }; | |||
return new String[] {NONE, GZIP, BZIP2, XZ}; | |||
} | |||
/** | |||
@@ -1290,7 +1290,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger { | |||
((XSLTLiaison4) liaison).addParam(p.getName(), | |||
evaluatedParam); | |||
} else if (evaluatedParam == null || evaluatedParam instanceof String) { | |||
liaison.addParam(p.getName(), (String)evaluatedParam); | |||
liaison.addParam(p.getName(), (String) evaluatedParam); | |||
} else { | |||
log("XSLTLiaison '" + liaison.getClass().getName() | |||
+ "' supports only String parameters. Converting parameter '" + p.getName() | |||
@@ -1373,7 +1373,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger { | |||
final String fileName = FileUtils.getRelativePath(baseDir, inFile); | |||
final File file = new File(fileName); | |||
// Give always a slash as file separator, so the stylesheet could be sure about that | |||
// Use '.' so a dir+"/"+name would not result in an absolute path | |||
// Use '.' so a dir + "/" + name would not result in an absolute path | |||
liaison.addParam(fileDirParameter, file.getParent() != null ? file.getParent().replace( | |||
'\\', '/') : "."); | |||
} | |||
@@ -330,7 +330,7 @@ public class XmlProperty extends org.apache.tools.ant.Task { | |||
* either a String if this node resulted in setting an attribute, | |||
* or a Path. | |||
*/ | |||
public Object processNode (Node node, String prefix, Object container) { | |||
public Object processNode(Node node, String prefix, Object container) { | |||
// Parse the attribute(s) and text of this node, adding | |||
// properties for each. | |||
@@ -460,7 +460,7 @@ public class XmlProperty extends org.apache.tools.ant.Task { | |||
* Actually add the given property/value to the project | |||
* after writing a log message. | |||
*/ | |||
private void addProperty (String name, String value, String id) { | |||
private void addProperty(String name, String value, String id) { | |||
String msg = name + ":" + value; | |||
if (id != null) { | |||
msg += ("(id=" + id + ")"); | |||
@@ -497,7 +497,7 @@ public class XmlProperty extends org.apache.tools.ant.Task { | |||
* Otherwise, we return "(nodename)". This is long-standing | |||
* (and default) <xmlproperty> behavior. | |||
*/ | |||
private String getAttributeName (Node attributeNode) { | |||
private String getAttributeName(Node attributeNode) { | |||
String attributeName = attributeNode.getNodeName(); | |||
if (semanticAttributes) { | |||
@@ -518,7 +518,7 @@ public class XmlProperty extends org.apache.tools.ant.Task { | |||
/** | |||
* Return whether the provided attribute name is recognized or not. | |||
*/ | |||
private static boolean isSemanticAttribute (String attributeName) { | |||
private static boolean isSemanticAttribute(String attributeName) { | |||
return Arrays.asList(ATTRIBUTES).contains(attributeName); | |||
} | |||
@@ -534,7 +534,7 @@ public class XmlProperty extends org.apache.tools.ant.Task { | |||
* resolved to absolute file names. Also for refid values, look | |||
* up the referenced object from the project.</p> | |||
*/ | |||
private String getAttributeValue (Node attributeNode) { | |||
private String getAttributeValue(Node attributeNode) { | |||
String nodeValue = attributeNode.getNodeValue().trim(); | |||
if (semanticAttributes) { | |||
String attributeName = attributeNode.getNodeName(); | |||
@@ -663,7 +663,7 @@ public class XmlProperty extends org.apache.tools.ant.Task { | |||
/** | |||
* @return the file attribute. | |||
*/ | |||
protected File getFile () { | |||
protected File getFile() { | |||
FileProvider fp = src.as(FileProvider.class); | |||
return fp != null ? fp.getFile() : null; | |||
} | |||
@@ -683,42 +683,42 @@ public class XmlProperty extends org.apache.tools.ant.Task { | |||
/** | |||
* @return the prefix attribute. | |||
*/ | |||
protected String getPrefix () { | |||
protected String getPrefix() { | |||
return this.prefix; | |||
} | |||
/** | |||
* @return the keeproot attribute. | |||
*/ | |||
protected boolean getKeeproot () { | |||
protected boolean getKeeproot() { | |||
return this.keepRoot; | |||
} | |||
/** | |||
* @return the validate attribute. | |||
*/ | |||
protected boolean getValidate () { | |||
protected boolean getValidate() { | |||
return this.validate; | |||
} | |||
/** | |||
* @return the collapse attributes attribute. | |||
*/ | |||
protected boolean getCollapseAttributes () { | |||
protected boolean getCollapseAttributes() { | |||
return this.collapseAttributes; | |||
} | |||
/** | |||
* @return the semantic attributes attribute. | |||
*/ | |||
protected boolean getSemanticAttributes () { | |||
protected boolean getSemanticAttributes() { | |||
return this.semanticAttributes; | |||
} | |||
/** | |||
* @return the root directory attribute. | |||
*/ | |||
protected File getRootDirectory () { | |||
protected File getRootDirectory() { | |||
return this.rootDirectory; | |||
} | |||
@@ -89,7 +89,7 @@ public class Zip extends MatchingTask { | |||
private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); | |||
// For directories: | |||
private static final long EMPTY_CRC = new CRC32 ().getValue (); | |||
private static final long EMPTY_CRC = new CRC32().getValue(); | |||
private static final ResourceSelector MISSING_SELECTOR = | |||
target -> !target.isExists(); | |||
@@ -387,7 +387,7 @@ public class Zip extends MatchingTask { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "fail", "skip", "create" }; | |||
return new String[] {"fail", "skip", "create"}; | |||
} | |||
} | |||
@@ -765,7 +765,7 @@ public class Zip extends MatchingTask { | |||
// temporary file | |||
if (doUpdate) { | |||
if (!renamedFile.delete()) { | |||
log ("Warning: unable to delete temporary file " | |||
log("Warning: unable to delete temporary file " | |||
+ renamedFile.getName(), Project.MSG_WARN); | |||
} | |||
} | |||
@@ -1708,7 +1708,7 @@ public class Zip extends MatchingTask { | |||
addedDirs.put(vPath, vPath); | |||
if (!skipWriting) { | |||
final ZipEntry ze = new ZipEntry (vPath); | |||
final ZipEntry ze = new ZipEntry(vPath); | |||
// ZIPs store time with a granularity of 2 seconds, round up | |||
final int millisToAdd = roundUp ? ROUNDUP_MILLIS : 0; | |||
@@ -1720,10 +1720,10 @@ public class Zip extends MatchingTask { | |||
} else { | |||
ze.setTime(System.currentTimeMillis() + millisToAdd); | |||
} | |||
ze.setSize (0); | |||
ze.setMethod (ZipEntry.STORED); | |||
ze.setSize(0); | |||
ze.setMethod(ZipEntry.STORED); | |||
// This is faintly ridiculous: | |||
ze.setCrc (EMPTY_CRC); | |||
ze.setCrc(EMPTY_CRC); | |||
ze.setUnixMode(mode); | |||
if (extra != null) { | |||
@@ -1983,7 +1983,7 @@ public class Zip extends MatchingTask { | |||
entries.clear(); | |||
addingNewFiles = false; | |||
doUpdate = savedDoUpdate; | |||
filesetsFromGroupfilesets.forEach(resources::remove); | |||
resources.removeAll(filesetsFromGroupfilesets); | |||
filesetsFromGroupfilesets.clear(); | |||
HAVE_NON_FILE_SET_RESOURCES_TO_ADD.set(Boolean.FALSE); | |||
} | |||
@@ -2101,7 +2101,7 @@ public class Zip extends MatchingTask { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "add", "preserve", "fail" }; | |||
return new String[] {"add", "preserve", "fail"}; | |||
} | |||
} | |||
@@ -2234,7 +2234,7 @@ public class Zip extends MatchingTask { | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { NEVER_KEY, ALWAYS_KEY, A_N_KEY }; | |||
return new String[] {NEVER_KEY, ALWAYS_KEY, A_N_KEY}; | |||
} | |||
public static final Zip64ModeAttribute NEVER = | |||
@@ -150,7 +150,7 @@ public abstract class DefaultCompilerAdapter | |||
*/ | |||
@Override | |||
public String[] getSupportedFileExtensions() { | |||
return new String[] { "java" }; | |||
return new String[] {"java"}; | |||
} | |||
/** | |||
@@ -432,8 +432,8 @@ public abstract class DefaultCompilerAdapter | |||
cmd.createArgument().setPath(ump); | |||
} | |||
if (attributes.getNativeHeaderDir() != null) { | |||
if (assumeJava13() || assumeJava14() || assumeJava15() | |||
|| assumeJava16() || assumeJava17()) { | |||
if (assumeJava13() || assumeJava14() || assumeJava15() || assumeJava16() | |||
|| assumeJava17()) { | |||
attributes.log( | |||
"Support for javac -h has been added in Java8, ignoring it"); | |||
} else { | |||
@@ -484,20 +484,15 @@ public abstract class DefaultCompilerAdapter | |||
* @param cmd the command line | |||
*/ | |||
protected void logAndAddFilesToCompile(final Commandline cmd) { | |||
attributes.log("Compilation " + cmd.describeArguments(), | |||
Project.MSG_VERBOSE); | |||
attributes.log("Compilation " + cmd.describeArguments(), Project.MSG_VERBOSE); | |||
attributes.log( | |||
String.format("%s to be compiled:", | |||
compileList.length == 1 ? "File" : "Files"), | |||
Project.MSG_VERBOSE); | |||
attributes.log(String.format("%s to be compiled:", | |||
compileList.length == 1 ? "File" : "Files"), Project.MSG_VERBOSE); | |||
attributes.log( | |||
Stream.of(compileList).map(File::getAbsolutePath) | |||
.peek(arg -> cmd.createArgument().setValue(arg)) | |||
.map(arg -> " " + arg) | |||
.collect(Collectors.joining(StringUtils.LINE_SEP)), | |||
Project.MSG_VERBOSE); | |||
attributes.log(Stream.of(compileList).map(File::getAbsolutePath) | |||
.peek(arg -> cmd.createArgument().setValue(arg)) | |||
.map(arg -> " " + arg) | |||
.collect(Collectors.joining(StringUtils.LINE_SEP)), Project.MSG_VERBOSE); | |||
} | |||
/** | |||
@@ -723,10 +718,10 @@ public abstract class DefaultCompilerAdapter | |||
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()))); | |||
|| (JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_9) | |||
&& ("classic".equals(attributes.getCompilerVersion()) | |||
|| "modern".equals(attributes.getCompilerVersion()) | |||
|| "extJavac".equals(attributes.getCompilerVersion()))); | |||
} | |||
/** | |||
@@ -735,8 +730,8 @@ public abstract class DefaultCompilerAdapter | |||
*/ | |||
private boolean assumeJavaXY(final String javacXY, final String javaEnvVersionXY) { | |||
return javacXY.equals(attributes.getCompilerVersion()) | |||
|| (JavaEnvUtils.isJavaVersion(javaEnvVersionXY) && | |||
("classic".equals(attributes.getCompilerVersion()) | |||
|| (JavaEnvUtils.isJavaVersion(javaEnvVersionXY) | |||
&& ("classic".equals(attributes.getCompilerVersion()) | |||
|| "modern".equals(attributes.getCompilerVersion()) | |||
|| "extJavac".equals(attributes.getCompilerVersion()))); | |||
} | |||
@@ -825,11 +820,10 @@ public abstract class DefaultCompilerAdapter | |||
t = t.substring(2); | |||
} | |||
return "1".equals(t) || "2".equals(t) || "3".equals(t) || "4".equals(t) | |||
|| (("5".equals(t) || "6".equals(t)) | |||
&& !assumeJava15() && !assumeJava16()) | |||
|| ("7".equals(t) && !assumeJava17()) | |||
|| ("8".equals(t) && !assumeJava18()) | |||
|| ("9".equals(t) && !assumeJava9Plus()); | |||
|| (("5".equals(t) || "6".equals(t)) && !assumeJava15() && !assumeJava16()) | |||
|| ("7".equals(t) && !assumeJava17()) | |||
|| ("8".equals(t) && !assumeJava18()) | |||
|| ("9".equals(t) && !assumeJava9Plus()); | |||
} | |||
/** | |||
@@ -31,9 +31,7 @@ import org.apache.tools.ant.types.Path; | |||
* @since Ant 1.4 | |||
*/ | |||
public class Gcj extends DefaultCompilerAdapter { | |||
private static final String [] CONFLICT_WITH_DASH_C = { | |||
"-o" , "--main=", "-D", "-fjni", "-L" | |||
}; | |||
private static final String[] CONFLICT_WITH_DASH_C = {"-o", "--main=", "-D", "-fjni", "-L"}; | |||
/** | |||
* Performs a compile using the gcj compiler. | |||
@@ -145,10 +143,9 @@ public class Gcj extends DefaultCompilerAdapter { | |||
int argsLength = 0; | |||
while (!nativeBuild && argsLength < additionalArguments.length) { | |||
int conflictLength = 0; | |||
while (!nativeBuild | |||
&& conflictLength < CONFLICT_WITH_DASH_C.length) { | |||
nativeBuild = (additionalArguments[argsLength].startsWith | |||
(CONFLICT_WITH_DASH_C[conflictLength])); | |||
while (!nativeBuild && conflictLength < CONFLICT_WITH_DASH_C.length) { | |||
nativeBuild = additionalArguments[argsLength] | |||
.startsWith(CONFLICT_WITH_DASH_C[conflictLength]); | |||
conflictLength++; | |||
} | |||
argsLength++; | |||
@@ -68,7 +68,7 @@ public class Javac12 extends DefaultCompilerAdapter { | |||
new Object[] {cmd.getArguments()}); | |||
return ok.booleanValue(); | |||
} catch (ClassNotFoundException ex) { | |||
throw new BuildException("Cannot use classic compiler , as it is " | |||
throw new BuildException("Cannot use classic compiler, as it is " | |||
+ "not available. \n" | |||
+ " A common solution is " | |||
+ "to set the environment variable" | |||
@@ -51,7 +51,7 @@ public class Javac13 extends DefaultCompilerAdapter { | |||
// Use reflection to be able to build on all JDKs >= 1.1: | |||
try { | |||
Class<?> c = Class.forName ("com.sun.tools.javac.Main"); | |||
Class<?> c = Class.forName("com.sun.tools.javac.Main"); | |||
Object compiler = c.newInstance(); | |||
Method compile = c.getMethod("compile", String[].class); | |||
int result = ((Integer) compile.invoke(compiler, | |||
@@ -21,6 +21,7 @@ package org.apache.tools.ant.taskdefs.condition; | |||
import java.io.IOException; | |||
import java.net.HttpURLConnection; | |||
import java.net.MalformedURLException; | |||
import java.net.ProtocolException; | |||
import java.net.URL; | |||
import java.net.URLConnection; | |||
import java.util.Locale; | |||
@@ -117,7 +118,7 @@ public class Http extends ProjectComponent implements Condition { | |||
} | |||
return false; | |||
} | |||
} catch (java.net.ProtocolException pe) { | |||
} catch (ProtocolException pe) { | |||
throw new BuildException("Invalid HTTP protocol: " | |||
+ requestMethod, pe); | |||
} catch (IOException e) { | |||
@@ -160,7 +160,7 @@ public class IsLastModified extends ProjectComponent implements Condition { | |||
long expected = getMillis(); | |||
long actual = resource.getLastModified(); | |||
log("expected timestamp: " + expected + " (" + new Date(expected) + ")" | |||
+ ", actual timestamp: " + actual + " (" + new Date(actual) + ")" , | |||
+ ", actual timestamp: " + actual + " (" + new Date(actual) + ")", | |||
Project.MSG_VERBOSE); | |||
if (CompareMode.EQUALS_TEXT.equals(mode.getValue())) { | |||
return expected == actual; | |||
@@ -61,7 +61,7 @@ public class EmailTask extends Task { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { AUTO, MIME, UU, PLAIN }; | |||
return new String[] {AUTO, MIME, UU, PLAIN}; | |||
} | |||
} | |||
@@ -154,7 +154,7 @@ public class Message extends ProjectComponent { | |||
* @since Ant 1.6 | |||
*/ | |||
public void setCharset(String charset) { | |||
this.charset = charset; | |||
this.charset = charset; | |||
} | |||
/** | |||
@@ -164,7 +164,7 @@ public class Message extends ProjectComponent { | |||
* @since Ant 1.6 | |||
*/ | |||
public String getCharset() { | |||
return charset; | |||
return charset; | |||
} | |||
/** | |||
@@ -56,9 +56,9 @@ public class Java13CommandLauncher extends CommandLauncher { | |||
Project.MSG_DEBUG); | |||
} | |||
return Runtime.getRuntime().exec(cmd, env, workingDir); | |||
} catch(IOException ioex) { | |||
} catch (IOException ioex) { | |||
throw ioex; | |||
} catch(Exception exc) { | |||
} catch (Exception exc) { | |||
// IllegalAccess, IllegalArgument, ClassCast | |||
throw new BuildException("Unable to execute command", exc); | |||
} | |||
@@ -50,7 +50,7 @@ public class VmsCommandLauncher extends Java13CommandLauncher { | |||
throws IOException { | |||
File cmdFile = createCommandFile(cmd, env); | |||
Process p = | |||
super.exec(project, new String[] { cmdFile.getPath() }, env); | |||
super.exec(project, new String[] {cmdFile.getPath()}, env); | |||
deleteAfter(cmdFile, p); | |||
return p; | |||
} | |||
@@ -77,7 +77,7 @@ public class VmsCommandLauncher extends Java13CommandLauncher { | |||
public Process exec(Project project, String[] cmd, String[] env, | |||
File workingDir) throws IOException { | |||
File cmdFile = createCommandFile(cmd, env); | |||
Process p = super.exec(project, new String[] { cmdFile.getPath() }, env, | |||
Process p = super.exec(project, new String[] {cmdFile.getPath()}, env, | |||
workingDir); | |||
deleteAfter(cmdFile, p); | |||
return p; | |||
@@ -244,7 +244,7 @@ public class Cab extends MatchingTask { | |||
try { | |||
Process p = Execute.launch(getProject(), | |||
new String[] { "listcab" }, null, | |||
new String[] {"listcab"}, null, | |||
baseDir != null ? baseDir : getProject().getBaseDir(), | |||
true); | |||
OutputStream out = p.getOutputStream(); | |||
@@ -240,7 +240,7 @@ public class EchoProperties extends Task { | |||
* The values are "xml" and "text". | |||
*/ | |||
public static class FormatAttribute extends EnumeratedAttribute { | |||
private String[] formats = new String[] { "xml", "text" }; | |||
private String[] formats = new String[] {"xml", "text"}; | |||
/** | |||
* @see EnumeratedAttribute#getValues() | |||
@@ -357,7 +357,7 @@ public class EchoProperties extends Task { | |||
} | |||
@Override | |||
public Set<Map.Entry<Object,Object>> entrySet() { | |||
public Set<Map.Entry<Object, Object>> entrySet() { | |||
Set<Map.Entry<Object, Object>> result = super.entrySet(); | |||
if (JavaEnvUtils.isKaffe()) { | |||
Set<Map.Entry<Object, Object>> t = | |||
@@ -455,11 +455,9 @@ public class Javah extends Task { | |||
classpath = classpath.concatSystemClasspath("ignore"); | |||
} | |||
JavahAdapter ad = | |||
nestedAdapter != null ? nestedAdapter : | |||
JavahAdapterFactory.getAdapter(facade.getImplementation(), | |||
this, | |||
createImplementationClasspath()); | |||
JavahAdapter ad = nestedAdapter != null ? nestedAdapter | |||
: JavahAdapterFactory.getAdapter(facade.getImplementation(), this, | |||
createImplementationClasspath()); | |||
if (!ad.compile(this)) { | |||
throw new BuildException("compilation failed"); | |||
} | |||
@@ -294,11 +294,9 @@ public class Native2Ascii extends MatchingTask { | |||
} | |||
log("converting " + srcName, Project.MSG_VERBOSE); | |||
Native2AsciiAdapter ad = | |||
nestedAdapter != null ? nestedAdapter : | |||
Native2AsciiAdapterFactory.getAdapter(facade.getImplementation(), | |||
this, | |||
createImplementationClasspath()); | |||
Native2AsciiAdapter ad = nestedAdapter != null ? nestedAdapter | |||
: Native2AsciiAdapterFactory.getAdapter(facade.getImplementation(), this, | |||
createImplementationClasspath()); | |||
if (!ad.convert(this, srcFile, destFile)) { | |||
throw new BuildException("conversion failed"); | |||
} | |||
@@ -328,10 +326,9 @@ public class Native2Ascii extends MatchingTask { | |||
public String[] mapFileName(String fileName) { | |||
int lastDot = fileName.lastIndexOf('.'); | |||
if (lastDot >= 0) { | |||
return new String[] { | |||
fileName.substring(0, lastDot) + extension }; | |||
return new String[] {fileName.substring(0, lastDot) + extension}; | |||
} | |||
return new String[] { fileName + extension }; | |||
return new String[] {fileName + extension}; | |||
} | |||
} | |||
} |
@@ -946,7 +946,7 @@ public class NetRexxC extends MatchingTask { | |||
/** {@inheritDoc}. */ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "trace", "trace1", "trace2", "notrace" }; | |||
return new String[] {"trace", "trace1", "trace2", "notrace"}; | |||
} | |||
} | |||
@@ -957,8 +957,8 @@ public class NetRexxC extends MatchingTask { | |||
/** {@inheritDoc}. */ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "verbose", "verbose0", "verbose1", "verbose2", | |||
"verbose3", "verbose4", "verbose5", "noverbose" }; | |||
return new String[] {"verbose", "verbose0", "verbose1", "verbose2", | |||
"verbose3", "verbose4", "verbose5", "noverbose"}; | |||
} | |||
} | |||
} |
@@ -283,14 +283,14 @@ public class PropertyFile extends Task { | |||
private static final String DEFAULT_DATE_VALUE = "now"; | |||
private static final String DEFAULT_STRING_VALUE = ""; | |||
private String key = null; | |||
private int type = Type.STRING_TYPE; | |||
private int operation = Operation.EQUALS_OPER; | |||
private String value = null; | |||
private String defaultValue = null; | |||
private String newValue = null; | |||
private String pattern = null; | |||
private int field = Calendar.DATE; | |||
private String key = null; | |||
private int type = Type.STRING_TYPE; | |||
private int operation = Operation.EQUALS_OPER; | |||
private String value = null; | |||
private String defaultValue = null; | |||
private String newValue = null; | |||
private String pattern = null; | |||
private int field = Calendar.DATE; | |||
/** | |||
* Name of the property name/value pair | |||
@@ -389,8 +389,7 @@ public class PropertyFile extends Task { | |||
} else if (type == Type.STRING_TYPE) { | |||
executeString(oldValue); | |||
} else { | |||
throw new BuildException("Unknown operation type: %d", | |||
type); | |||
throw new BuildException("Unknown operation type: %d", type); | |||
} | |||
} catch (NullPointerException npe) { | |||
// Default to string type | |||
@@ -600,18 +599,18 @@ public class PropertyFile extends Task { | |||
// Property type operations | |||
/** + */ | |||
public static final int INCREMENT_OPER = 0; | |||
public static final int INCREMENT_OPER = 0; | |||
/** - */ | |||
public static final int DECREMENT_OPER = 1; | |||
public static final int DECREMENT_OPER = 1; | |||
/** = */ | |||
public static final int EQUALS_OPER = 2; | |||
public static final int EQUALS_OPER = 2; | |||
/** del */ | |||
public static final int DELETE_OPER = 3; | |||
public static final int DELETE_OPER = 3; | |||
/** {@inheritDoc}. */ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "+", "-", "=", "del" }; | |||
return new String[] {"+", "-", "=", "del"}; | |||
} | |||
/** | |||
@@ -640,16 +639,16 @@ public class PropertyFile extends Task { | |||
// Property types | |||
/** int */ | |||
public static final int INTEGER_TYPE = 0; | |||
public static final int INTEGER_TYPE = 0; | |||
/** date */ | |||
public static final int DATE_TYPE = 1; | |||
public static final int DATE_TYPE = 1; | |||
/** string */ | |||
public static final int STRING_TYPE = 2; | |||
public static final int STRING_TYPE = 2; | |||
/** {@inheritDoc} */ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "int", "date", "string" }; | |||
return new String[] {"int", "date", "string"}; | |||
} | |||
/** | |||
@@ -685,8 +684,8 @@ public class PropertyFile extends Task { | |||
private static final String MONTH = "month"; | |||
private static final String YEAR = "year"; | |||
private static final String[] UNITS = | |||
{ MILLISECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR }; | |||
private static final String[] UNITS = {MILLISECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, | |||
YEAR}; | |||
private Map<String, Integer> calendarFields = new HashMap<>(); | |||
@@ -115,9 +115,8 @@ public class Rpm extends Task { | |||
Commandline toExecute = new Commandline(); | |||
toExecute.setExecutable(rpmBuildCommand == null | |||
? guessRpmBuildCommand() | |||
: rpmBuildCommand); | |||
toExecute.setExecutable(rpmBuildCommand == null ? guessRpmBuildCommand() | |||
: rpmBuildCommand); | |||
if (topDir != null) { | |||
toExecute.createArgument().setValue("--define"); | |||
toExecute.createArgument().setValue("_topdir " + topDir); | |||
@@ -170,7 +169,7 @@ public class Rpm extends Task { | |||
fos = Files.newOutputStream(error.toPath()); | |||
BufferedOutputStream bos = new BufferedOutputStream(fos); | |||
errorstream = new PrintStream(bos); | |||
} catch (IOException e) { | |||
} catch (IOException e) { | |||
FileUtils.close(fos); | |||
throw new BuildException(e, getLocation()); | |||
} | |||
@@ -251,12 +251,11 @@ public class BorlandDeploymentTool extends GenericDeploymentTool | |||
File borlandDD = new File(getConfig().descriptorDir, ddPrefix + dd); | |||
if (borlandDD.exists()) { | |||
log("Borland specific file found " + borlandDD, Project.MSG_VERBOSE); | |||
ejbFiles.put(META_DIR + dd , borlandDD); | |||
ejbFiles.put(META_DIR + dd, borlandDD); | |||
} else { | |||
log("Unable to locate borland deployment descriptor. " | |||
+ "It was expected to be in " | |||
+ borlandDD.getPath(), Project.MSG_WARN); | |||
return; | |||
} | |||
} | |||
@@ -29,6 +29,7 @@ import java.util.Map; | |||
import org.apache.tools.ant.Project; | |||
import org.apache.tools.ant.Task; | |||
import org.xml.sax.AttributeList; | |||
import org.xml.sax.HandlerBase; | |||
import org.xml.sax.InputSource; | |||
import org.xml.sax.SAXException; | |||
@@ -40,7 +41,7 @@ import org.xml.sax.SAXException; | |||
* inserted into an EJB jar as to a File representing the file on disk. This | |||
* list can then be accessed through the getFiles() method. | |||
*/ | |||
public class DescriptorHandler extends org.xml.sax.HandlerBase { | |||
public class DescriptorHandler extends HandlerBase { | |||
private static final int DEFAULT_HASH_TABLE_SIZE = 10; | |||
private static final int STATE_LOOKING_EJBJAR = 1; | |||
private static final int STATE_IN_EJBJAR = 2; | |||
@@ -221,7 +222,7 @@ public class DescriptorHandler extends org.xml.sax.HandlerBase { | |||
} | |||
} | |||
owningTask.log("Could not resolve ( publicId: " + publicId | |||
owningTask.log("Could not resolve (publicId: " + publicId | |||
+ ", systemId: " + systemId + ") to a local entity", Project.MSG_INFO); | |||
return null; | |||
@@ -163,8 +163,7 @@ public class EjbJar extends MatchingTask { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { EJB_NAME, DIRECTORY, DESCRIPTOR, | |||
BASEJARNAME }; | |||
return new String[] {EJB_NAME, DIRECTORY, DESCRIPTOR, BASEJARNAME}; | |||
} | |||
} | |||
@@ -749,7 +749,7 @@ public class GenericDeploymentTool implements EJBDeploymentTool { | |||
} | |||
manifest = new Manifest(in); | |||
} catch (IOException e) { | |||
throw new BuildException ("Unable to read manifest", e, getLocation()); | |||
throw new BuildException("Unable to read manifest", e, getLocation()); | |||
} finally { | |||
if (in != null) { | |||
in.close(); | |||
@@ -706,7 +706,7 @@ public class IPlanetEjbc { | |||
inputStream = Files.newInputStream(Paths.get(location)); //NOSONAR | |||
} | |||
} | |||
} catch (IOException e) { | |||
} catch (IOException ignored) { | |||
} | |||
if (inputStream == null) { | |||
return super.resolveEntity(publicId, systemId); | |||
@@ -114,7 +114,7 @@ public class IPlanetEjbcTask extends Task { | |||
* @param iasdescriptor The name and location of the iAS-specific EJB | |||
* descriptor. | |||
*/ | |||
public void setIasdescriptor (File iasdescriptor) { | |||
public void setIasdescriptor(File iasdescriptor) { | |||
this.iasdescriptor = iasdescriptor; | |||
} | |||
@@ -590,7 +590,7 @@ public class JonasDeploymentTool extends GenericDeploymentTool { | |||
log("Cannot find GenIC class in classpath.", Project.MSG_ERR); | |||
throw new BuildException("GenIC class not found, please check the classpath."); | |||
} | |||
log("Using '" + genicClass + "' GenIC class." , Project.MSG_VERBOSE); | |||
log("Using '" + genicClass + "' GenIC class.", Project.MSG_VERBOSE); | |||
genicTask.setClassname(genicClass); | |||
// keepgenerated | |||
@@ -46,7 +46,7 @@ public class OrionDeploymentTool extends GenericDeploymentTool { | |||
* @param baseName String | |||
*/ | |||
protected void addVendorFiles(Hashtable ejbFiles, String baseName) { | |||
String ddPrefix = (usingBaseJarName() ? "" : baseName ); | |||
String ddPrefix = usingBaseJarName() ? "" : baseName; | |||
File orionDD = new File(getConfig().descriptorDir, ddPrefix + ORION_DD); | |||
if (orionDD.exists()) { | |||
@@ -173,7 +173,7 @@ public class ExtensionAdapter extends DataType { | |||
} | |||
/** | |||
* Convert this adpater object into an extension object. | |||
* Convert this adapter object into an extension object. | |||
* | |||
* @return the extension object | |||
*/ | |||
@@ -236,7 +236,7 @@ public class Image extends MatchingTask { | |||
for (String dstName : dstNames) { | |||
final File dstFile = new File(dstDir, dstName).getAbsoluteFile(); | |||
if (dstFile.exists()){ | |||
if (dstFile.exists()) { | |||
// avoid overwriting unless necessary | |||
if(!overwrite | |||
&& srcFile.lastModified() <= dstFile.lastModified()) { | |||
@@ -249,7 +249,7 @@ public class Image extends MatchingTask { | |||
} | |||
// avoid extra work while overwriting | |||
if (!srcFile.equals(dstFile)){ | |||
if (!srcFile.equals(dstFile)) { | |||
dstFile.delete(); | |||
} | |||
} | |||
@@ -309,7 +309,7 @@ public class Image extends MatchingTask { | |||
dstParent); | |||
} | |||
if ((overwrite && newFile.exists()) && (!newFile.equals(file))) { | |||
if (overwrite && newFile.exists() && !newFile.equals(file)) { | |||
newFile.delete(); | |||
} | |||
@@ -319,7 +319,7 @@ public class Image extends MatchingTask { | |||
stream.flush(); | |||
} | |||
} catch (IOException | RuntimeException err) { | |||
if (!file.equals(newFile)){ | |||
if (!file.equals(newFile)) { | |||
newFile.delete(); | |||
} | |||
if (!failonerror) { | |||
@@ -340,7 +340,7 @@ public class Image extends MatchingTask { | |||
validateAttributes(); | |||
try { | |||
File dest = destDir != null ? destDir : srcDir; | |||
File dest = (destDir != null) ? destDir : srcDir; | |||
int writeCount = 0; | |||
@@ -361,9 +361,8 @@ public class Image extends MatchingTask { | |||
dest, mapper); | |||
} | |||
if (writeCount>0){ | |||
log("Processed " + writeCount + | |||
(writeCount == 1 ? " image." : " images.")); | |||
if (writeCount > 0) { | |||
log("Processed " + writeCount + (writeCount == 1 ? " image." : " images.")); | |||
} | |||
} catch (Exception err) { | |||
@@ -53,8 +53,8 @@ public class JonasHotDeploymentTool extends GenericHotDeploymentTool implements | |||
/** | |||
* All the valid actions that weblogic.deploy permits * | |||
*/ | |||
private static final String[] VALID_ACTIONS = { ACTION_DELETE, | |||
ACTION_DEPLOY, ACTION_LIST, ACTION_UNDEPLOY, ACTION_UPDATE }; | |||
private static final String[] VALID_ACTIONS = {ACTION_DELETE, ACTION_DEPLOY, ACTION_LIST, | |||
ACTION_UNDEPLOY, ACTION_UPDATE}; | |||
/** | |||
* Description of the Field | |||
@@ -326,7 +326,7 @@ public class JDependTask extends Task { | |||
* @see EnumeratedAttribute | |||
*/ | |||
public static class FormatAttribute extends EnumeratedAttribute { | |||
private String[] formats = new String[] { "xml", "text" }; | |||
private String[] formats = new String[] {"xml", "text"}; | |||
/** | |||
* @return the enumerated values | |||
@@ -633,9 +633,7 @@ public class JDependTask extends Task { | |||
return result; | |||
} | |||
result = Optional.ofNullable(getSourcespath()); | |||
if (result.isPresent()) { | |||
log("nested sourcespath is deprecated; please use classespath"); | |||
} | |||
result.ifPresent(resources -> log("nested sourcespath is deprecated; please use classespath")); | |||
return result; | |||
} | |||
@@ -456,7 +456,7 @@ public class JspC extends MatchingTask { | |||
throw new BuildException("srcdir attribute must be set!", | |||
getLocation()); | |||
} | |||
String [] list = src.list(); | |||
String[] list = src.list(); | |||
if (list.length == 0) { | |||
throw new BuildException("srcdir attribute must be set!", | |||
getLocation()); | |||
@@ -68,7 +68,7 @@ public class JspNameMangler implements JspMangler { | |||
* map from a jsp file to a base name; does not deal with extensions | |||
* | |||
* @param jspFile jspFile file | |||
* @return exensionless potentially remapped name | |||
* @return extensionless potentially remapped name | |||
*/ | |||
private String mapJspToBaseName(File jspFile) { | |||
String className = stripExtension(jspFile); | |||
@@ -225,7 +225,7 @@ public class WLJspc extends MatchingTask { | |||
* Set the directory containing the source jsp's | |||
* | |||
* | |||
* @param dirName the directory containg the source jsp's | |||
* @param dirName the directory containing the source jsp's | |||
*/ | |||
public void setSrc(File dirName) { | |||
sourceDirectory = dirName; | |||
@@ -235,7 +235,7 @@ public class WLJspc extends MatchingTask { | |||
* Set the directory containing the source jsp's | |||
* | |||
* | |||
* @param dirName the directory containg the source jsp's | |||
* @param dirName the directory containing the source jsp's | |||
*/ | |||
public void setDest(File dirName) { | |||
destinationDirectory = dirName; | |||
@@ -126,7 +126,7 @@ public class AggregateTransformer { | |||
/** | |||
* Used to ensure the uniqueness of a property | |||
*/ | |||
private volatile static int counter = 0; | |||
private static volatile int counter = 0; | |||
/** the format to use for the report. Must be <tt>FRAMES</tt> or <tt>NOFRAMES</tt> */ | |||
protected String format = FRAMES; | |||
@@ -41,7 +41,8 @@ public abstract class BaseTest { | |||
protected String errorProperty; | |||
// CheckStyle:VisibilityModifier ON | |||
private Object ifCond, unlessCond; | |||
private Object ifCond; | |||
private Object unlessCond; | |||
private boolean skipNonTests; | |||
/** | |||
@@ -39,8 +39,8 @@ public class Constants { | |||
static final String LOGTESTLISTENEREVENTS = "logtestlistenerevents="; | |||
static final String TESTSFILE = "testsfile="; | |||
static final String TERMINATED_SUCCESSFULLY = "terminated successfully"; | |||
static final String LOG_FAILED_TESTS="logfailedtests="; | |||
static final String LOG_FAILED_TESTS = "logfailedtests="; | |||
static final String SKIP_NON_TESTS = "skipNonTests="; | |||
/** @since Ant 1.9.4 */ | |||
static final String THREADID="threadid="; | |||
static final String THREADID = "threadid="; | |||
} |
@@ -137,7 +137,7 @@ public final class DOMUtil { | |||
* the parent is <tt>null</tt> or if a child does not match the | |||
* given name. | |||
*/ | |||
public static Element getChildByTagName (Node parent, String tagname) { | |||
public static Element getChildByTagName(Node parent, String tagname) { | |||
if (parent == null) { | |||
return null; | |||
} | |||
@@ -53,8 +53,8 @@ import org.apache.tools.ant.util.StringUtils; | |||
* } | |||
* public static Test suite() { | |||
* TestSuite suite = new TestSuite(); | |||
* suite.addTest( new B("test04") ); | |||
* suite.addTest( new org.D("test10") ); | |||
* suite.addTest(new B("test04")); | |||
* suite.addTest(new org.D("test10")); | |||
* return suite; | |||
* } | |||
* } | |||
@@ -359,7 +359,7 @@ public class FormatterElement { | |||
/** {@inheritDoc}. */ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "plain", "xml", "brief", "failure" }; | |||
return new String[] {"plain", "xml", "brief", "failure"}; | |||
} | |||
} | |||
@@ -44,7 +44,7 @@ public class IgnoredTestResult extends TestResult { | |||
@Override | |||
public synchronized void addListener(TestListener listener) { | |||
if (listener instanceof IgnoredTestListener) { | |||
listeners.add((IgnoredTestListener)listener); | |||
listeners.add((IgnoredTestListener) listener); | |||
} | |||
super.addListener(listener); | |||
} | |||
@@ -371,8 +371,7 @@ public class JUnitTask extends Task { | |||
*/ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { "true", "yes", "false", "no", "on", "off", | |||
"withOutAndErr" }; | |||
return new String[] {"true", "yes", "false", "no", "on", "off", "withOutAndErr"}; | |||
} | |||
/** | |||
@@ -820,16 +819,13 @@ public class JUnitTask extends Task { | |||
mirrorLoader = AccessController.doPrivileged( | |||
(PrivilegedAction<ClassLoader>) () -> new SplitClassLoader( | |||
myLoader, path, getProject(), | |||
new String[] { "BriefJUnitResultFormatter", | |||
"JUnit4TestMethodAdapter", "JUnitResultFormatter", | |||
"JUnitTaskMirrorImpl", "JUnitTestRunner", | |||
"JUnitVersionHelper", | |||
"OutErrSummaryJUnitResultFormatter", | |||
"PlainJUnitResultFormatter", | |||
"SummaryJUnitResultFormatter", "TearDownOnVmCrash", | |||
"XMLJUnitResultFormatter", "IgnoredTestListener", | |||
"IgnoredTestResult", "CustomJUnit4TestAdapterCache", | |||
"TestListenerWrapper" })); | |||
new String[] {"BriefJUnitResultFormatter", "JUnit4TestMethodAdapter", | |||
"JUnitResultFormatter", "JUnitTaskMirrorImpl", "JUnitTestRunner", | |||
"JUnitVersionHelper", "OutErrSummaryJUnitResultFormatter", | |||
"PlainJUnitResultFormatter", "SummaryJUnitResultFormatter", | |||
"TearDownOnVmCrash", "XMLJUnitResultFormatter", "IgnoredTestListener", | |||
"IgnoredTestResult", "CustomJUnit4TestAdapterCache", | |||
"TestListenerWrapper"})); | |||
} else { | |||
mirrorLoader = myLoader; | |||
} | |||
@@ -850,9 +846,7 @@ public class JUnitTask extends Task { | |||
final List<List<JUnitTest>> testLists = new ArrayList<>(); | |||
/* parallel test execution is only supported for multi-process execution */ | |||
final int threads = ((!fork) || (forkMode.getValue().equals(ForkMode.ONCE)) | |||
? 1 | |||
: this.threads); | |||
final int threads = !fork || forkMode.getValue().equals(ForkMode.ONCE) ? 1 : this.threads; | |||
final boolean forkPerTest = ForkMode.PER_TEST.equals(forkMode.getValue()); | |||
if (forkPerTest || ForkMode.ONCE.equals(forkMode.getValue())) { | |||
@@ -991,7 +985,7 @@ public class JUnitTask extends Task { | |||
/* create 1 thread using the passthrough class, and let each thread start */ | |||
for (i = 0; i < numThreads; i++) { | |||
threads[i] = new Thread(new JunitTestThread(this, iter, i+1)); | |||
threads[i] = new Thread(new JunitTestThread(this, iter, i + 1)); | |||
threads[i].start(); | |||
} | |||
@@ -2166,7 +2160,7 @@ public class JUnitTask extends Task { | |||
/** {@inheritDoc}. */ | |||
@Override | |||
public String[] getValues() { | |||
return new String[] { ONCE, PER_TEST, PER_BATCH }; | |||
return new String[] {ONCE, PER_TEST, PER_BATCH}; | |||
} | |||
} | |||
@@ -77,7 +77,7 @@ public interface JUnitTaskMirror { | |||
/** The interface that JUnitResultFormatter extends. */ | |||
public interface JUnitResultFormatterMirror { | |||
interface JUnitResultFormatterMirror { | |||
/** | |||
* Set the output stream. | |||
* @param outputStream the stream to use. | |||
@@ -86,7 +86,7 @@ public interface JUnitTaskMirror { | |||
} | |||
/** The interface that SummaryJUnitResultFormatter extends. */ | |||
public interface SummaryJUnitResultFormatterMirror | |||
interface SummaryJUnitResultFormatterMirror | |||
extends JUnitResultFormatterMirror { | |||
/** | |||
@@ -97,7 +97,7 @@ public interface JUnitTaskMirror { | |||
} | |||
/** Interface that test runners implement. */ | |||
public interface JUnitTestRunnerMirror { | |||
interface JUnitTestRunnerMirror { | |||
/** | |||
* Used in formatter arguments as a placeholder for the basename | |||
@@ -481,7 +481,7 @@ public class JUnitTest extends BaseTest implements Cloneable { | |||
* @param p the properties. | |||
* This is a copy of the projects ant properties. | |||
*/ | |||
public void setProperties(Hashtable<?,?> p) { | |||
public void setProperties(Hashtable<?, ?> p) { | |||
props = new Properties(); | |||
p.forEach(props::put); | |||
} | |||
@@ -22,6 +22,7 @@ import java.io.BufferedReader; | |||
import java.io.BufferedWriter; | |||
import java.io.ByteArrayOutputStream; | |||
import java.io.File; | |||
import java.io.FileReader; | |||
import java.io.FileWriter; | |||
import java.io.IOException; | |||
import java.io.InputStream; | |||
@@ -73,11 +74,9 @@ import org.apache.tools.ant.util.TeeOutputStream; | |||
*/ | |||
public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestRunnerMirror { | |||
private static final String JUNIT_4_TEST_ADAPTER | |||
= "junit.framework.JUnit4TestAdapter"; | |||
private static final String JUNIT_4_TEST_ADAPTER = "junit.framework.JUnit4TestAdapter"; | |||
private static final String[] DEFAULT_TRACE_FILTERS = new String[] { | |||
"junit.framework.TestCase", | |||
private static final String[] DEFAULT_TRACE_FILTERS = new String[] {"junit.framework.TestCase", | |||
"junit.framework.TestResult", | |||
"junit.framework.TestSuite", | |||
"junit.framework.Assert.", // don't filter AssertionFailure | |||
@@ -90,8 +89,7 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
// JUnit 4 support: | |||
"org.junit.", | |||
"junit.framework.JUnit4TestAdapter", | |||
" more", | |||
}; | |||
" more"}; | |||
/** | |||
* Do we filter junit.*.* stack frames out of failure and error exceptions. | |||
@@ -446,8 +444,7 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
junit4TestAdapterCacheClass = Class.forName( | |||
"org.apache.tools.ant.taskdefs.optional.junit.CustomJUnit4TestAdapterCache"); | |||
if (loader == null) { | |||
junit4TestAdapterClass = | |||
Class.forName(JUNIT_4_TEST_ADAPTER); | |||
junit4TestAdapterClass = Class.forName(JUNIT_4_TEST_ADAPTER); | |||
if (testMethodsSpecified) { | |||
/* | |||
* We cannot try to load the JUnit4TestAdapter | |||
@@ -465,8 +462,7 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
Class.forName(JUNIT_4_TEST_ADAPTER, | |||
true, loader); | |||
if (testMethodsSpecified) { | |||
junit4TestAdapterClass = | |||
Class.forName( | |||
junit4TestAdapterClass = Class.forName( | |||
"org.apache.tools.ant.taskdefs.optional.junit.JUnit4TestMethodAdapter", | |||
true, loader); | |||
useSingleMethodAdapter = true; | |||
@@ -488,22 +484,16 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
Class<?>[] formalParams; | |||
Object[] actualParams; | |||
if (useSingleMethodAdapter) { | |||
formalParams = | |||
new Class[] { Class.class, String[].class }; | |||
actualParams = new Object[] { testClass, methods }; | |||
formalParams = new Class[] {Class.class, String[].class}; | |||
actualParams = new Object[] {testClass, methods}; | |||
} else { | |||
formalParams = | |||
new Class[] { Class.class, Class.forName( | |||
"junit.framework.JUnit4TestAdapterCache") }; | |||
actualParams = | |||
new Object[] { testClass, | |||
junit4TestAdapterCacheClass | |||
.getMethod("getInstance") | |||
.invoke(null) }; | |||
formalParams = new Class[] {Class.class, Class.forName( | |||
"junit.framework.JUnit4TestAdapterCache")}; | |||
actualParams = new Object[] {testClass, junit4TestAdapterCacheClass | |||
.getMethod("getInstance").invoke(null)}; | |||
} | |||
suite = junit4TestAdapterClass.asSubclass(Test.class) | |||
.getConstructor(formalParams) | |||
.newInstance(actualParams); | |||
.getConstructor(formalParams).newInstance(actualParams); | |||
} else { | |||
// Use JUnit 3. | |||
@@ -536,8 +526,7 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
if (exception != null) { // had an exception constructing suite | |||
final int formatterSize = formatters.size(); | |||
for (int i = 0; i < formatterSize; i++) { | |||
((TestListener) formatters.elementAt(i)) | |||
.addError(null, exception); | |||
((TestListener) formatters.elementAt(i)).addError(null, exception); | |||
} | |||
junitTest.setCounts(1, 0, 1, 0); | |||
junitTest.setRunTime(0); | |||
@@ -546,10 +535,10 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
logTestListenerEvent("tests to run: " + suite.countTestCases()); | |||
suite.run(res); | |||
} finally { | |||
if (junit4 || | |||
suite.getClass().getName().equals(JUNIT_4_TEST_ADAPTER)) { | |||
if (junit4 || suite.getClass().getName().equals(JUNIT_4_TEST_ADAPTER)) { | |||
final int[] cnts = findJUnit4FailureErrorCount(res); | |||
junitTest.setCounts(res.runCount() + res.ignoredCount(), cnts[0], cnts[1], res.ignoredCount() + res.skippedCount()); | |||
junitTest.setCounts(res.runCount() + res.ignoredCount(), cnts[0], cnts[1], | |||
res.ignoredCount() + res.skippedCount()); | |||
} else { | |||
junitTest.setCounts(res.runCount() + res.ignoredCount(), res.failureCount(), | |||
res.errorCount(), res.ignoredCount() + res.skippedCount()); | |||
@@ -616,13 +605,13 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
try { | |||
suiteAnnotation = Class.forName("org.junit.Suite.SuiteClasses") | |||
.asSubclass(Annotation.class); | |||
} catch(final ClassNotFoundException ex) { | |||
} catch (final ClassNotFoundException ex) { | |||
// ignore - we don't have this annotation so make sure we don't check for it | |||
} | |||
try { | |||
runWithAnnotation = Class.forName("org.junit.runner.RunWith") | |||
.asSubclass(Annotation.class); | |||
} catch(final ClassNotFoundException ex) { | |||
} catch (final ClassNotFoundException ex) { | |||
// also ignore as this annotation doesn't exist so tests can't use it | |||
} | |||
@@ -633,32 +622,30 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
// check if we have any inner classes that contain suitable test methods | |||
for (final Class<?> innerClass : testClass.getDeclaredClasses()) { | |||
if (containsTests(innerClass, isJUnit4) | |||
|| containsTests(innerClass, !isJUnit4)) { | |||
if (containsTests(innerClass, isJUnit4) || containsTests(innerClass, !isJUnit4)) { | |||
return true; | |||
} | |||
} | |||
if (Modifier.isAbstract(testClass.getModifiers()) | |||
|| Modifier.isInterface(testClass.getModifiers())) { | |||
|| Modifier.isInterface(testClass.getModifiers())) { | |||
// can't instantiate class and no inner classes are tests either | |||
return false; | |||
} | |||
if (isJUnit4) { | |||
if (suiteAnnotation != null | |||
&& testClass.getAnnotation(suiteAnnotation) != null) { | |||
if (suiteAnnotation != null && testClass.getAnnotation(suiteAnnotation) != null) { | |||
// class is marked as a suite. Let JUnit try and work its magic on it. | |||
return true; | |||
} | |||
if (runWithAnnotation != null | |||
&& testClass.getAnnotation(runWithAnnotation) != null) { | |||
/* Class is marked with @RunWith. If this class is badly written (no test methods, multiple | |||
* constructors, private constructor etc) then the class is automatically run and fails in the | |||
* IDEs I've tried... so I'm happy handing the class to JUnit to try and run, and let JUnit | |||
* report a failure if a bad test case is provided. Trying to do anything else is likely to | |||
* result in us filtering out cases that could be valid for future versions of JUnit so would | |||
* just increase future maintenance work. | |||
if (runWithAnnotation != null && testClass.getAnnotation(runWithAnnotation) != null) { | |||
/* Class is marked with @RunWith. If this class is badly written (no test methods, | |||
* multiple constructors, private constructor etc) then the class is automatically | |||
* run and fails in the IDEs I've tried... so I'm happy handing the class to JUnit | |||
* to try and run, and let JUnit report a failure if a bad test case is provided. | |||
* Trying to do anything else is likely to result in us filtering out cases that | |||
* could be valid for future versions of JUnit so would just increase future | |||
* maintenance work. | |||
*/ | |||
return true; | |||
} | |||
@@ -671,7 +658,8 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
return true; | |||
} | |||
} else { | |||
// check if JUnit3 class have public or protected no-args methods starting with names starting with test | |||
// check if JUnit3 class have public or protected no-args methods starting with | |||
// names starting with test | |||
if (m.getName().startsWith("test") | |||
&& m.getParameterTypes().length == 0 | |||
&& (Modifier.isProtected(m.getModifiers()) | |||
@@ -729,13 +717,13 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
private void logTestListenerEvent(String msg) { | |||
if (logTestListenerEvents) { | |||
@SuppressWarnings("resource") | |||
final PrintStream out = savedOut != null ? savedOut : System.out; | |||
out.flush(); | |||
final StringTokenizer msgLines = | |||
new StringTokenizer(String.valueOf(msg), "\r\n", false); | |||
while (msgLines.hasMoreTokens()) { | |||
out.println(JUnitTask.TESTLISTENER_PREFIX | |||
+ msgLines.nextToken()); | |||
out.println(JUnitTask.TESTLISTENER_PREFIX + msgLines.nextToken()); | |||
} | |||
out.flush(); | |||
} | |||
@@ -862,16 +850,14 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
private void fireStartTestSuite() { | |||
final int size = formatters.size(); | |||
for (int i = 0; i < size; i++) { | |||
((JUnitResultFormatter) formatters.elementAt(i)) | |||
.startTestSuite(junitTest); | |||
((JUnitResultFormatter) formatters.elementAt(i)).startTestSuite(junitTest); | |||
} | |||
} | |||
private void fireEndTestSuite() { | |||
final int size = formatters.size(); | |||
for (int i = 0; i < size; i++) { | |||
((JUnitResultFormatter) formatters.elementAt(i)) | |||
.endTestSuite(junitTest); | |||
((JUnitResultFormatter) formatters.elementAt(i)).endTestSuite(junitTest); | |||
} | |||
} | |||
@@ -938,7 +924,8 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
boolean logFailedTests = true; | |||
boolean logTestListenerEvents = false; | |||
boolean skipNonTests = false; | |||
int antThreadID = 0; /* Ant id of thread running this unit test, 0 in single-threaded mode */ | |||
/* Ant id of thread running this unit test, 0 in single-threaded mode */ | |||
int antThreadID = 0; | |||
if (args.length == 0) { | |||
System.err.println("required argument TestClassName missing"); | |||
@@ -977,7 +964,7 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
} | |||
} else if (args[i].startsWith(Constants.PROPSFILE)) { | |||
final InputStream in = Files.newInputStream(Paths.get(args[i] | |||
.substring(Constants.PROPSFILE.length()))); | |||
.substring(Constants.PROPSFILE.length()))); | |||
props.load(in); | |||
in.close(); | |||
} else if (args[i].startsWith(Constants.SHOWOUTPUT)) { | |||
@@ -1004,9 +991,7 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
int returnCode = SUCCESS; | |||
if (multipleTests) { | |||
try ( | |||
final BufferedReader reader = | |||
new BufferedReader(new java.io.FileReader(args[0]))){ | |||
try (final BufferedReader reader = new BufferedReader(new FileReader(args[0]))) { | |||
int code = 0; | |||
boolean errorOccurred = false; | |||
boolean failureOccurred = false; | |||
@@ -1039,8 +1024,7 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
errorOccurred = (code == ERRORS); | |||
failureOccurred = (code != SUCCESS); | |||
if (errorOccurred || failureOccurred) { | |||
if ((errorOccurred && haltError) | |||
|| (failureOccurred && haltFail)) { | |||
if ((errorOccurred && haltError) || (failureOccurred && haltFail)) { | |||
registerNonCrash(); | |||
System.exit(code); | |||
} else { | |||
@@ -1048,8 +1032,7 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
returnCode = code; | |||
} | |||
if (logFailedTests) { | |||
System.out.println("TEST " + t.getName() | |||
+ " FAILED"); | |||
System.out.println("TEST " + t.getName() + " FAILED"); | |||
} | |||
} | |||
} | |||
@@ -1062,9 +1045,8 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
t.setThread(antThreadID); | |||
t.setProperties(props); | |||
t.setSkipNonTests(skipNonTests); | |||
returnCode = launch( | |||
t, methods, haltError, stackfilter, haltFail, | |||
showOut, outputToFormat, logTestListenerEvents); | |||
returnCode = launch(t, methods, haltError, stackfilter, haltFail, showOut, | |||
outputToFormat, logTestListenerEvents); | |||
} | |||
registerNonCrash(); | |||
@@ -1118,9 +1100,8 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
for (int i = 0; i < size; i++) { | |||
final FormatterElement fe = fromCmdLine.elementAt(i); | |||
if (multipleTests && fe.getUseFile()) { | |||
final File destFile = | |||
new File(test.getTodir(), | |||
test.getOutfile() + fe.getExtension()); | |||
final File destFile = new File(test.getTodir(), | |||
test.getOutfile() + fe.getExtension()); | |||
fe.setOutfile(destFile); | |||
} | |||
runner.addFormatter((JUnitResultFormatter) fe.createFormatter()); | |||
@@ -1147,9 +1128,8 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
} else { | |||
final int fName = line.indexOf(IGNORED_FILE_NAME); | |||
if (fName > -1) { | |||
fe.setExtension(line | |||
.substring(fName | |||
+ IGNORED_FILE_NAME.length())); | |||
fe.setExtension(line.substring(fName | |||
+ IGNORED_FILE_NAME.length())); | |||
} | |||
} | |||
} | |||
@@ -1340,7 +1320,7 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR | |||
errors++; | |||
} | |||
} | |||
return new int[] { failures, errors }; | |||
return new int[] {failures, errors}; | |||
} | |||
} |
@@ -45,8 +45,7 @@ public class TearDownOnVmCrash implements JUnitResultFormatter { | |||
@Override | |||
public void startTestSuite(final JUnitTest suite) { | |||
suiteName = suite.getName(); | |||
if (suiteName != null && | |||
suiteName.endsWith(JUnitTask.NAME_OF_DUMMY_TEST)) { | |||
if (suiteName != null && suiteName.endsWith(JUnitTask.NAME_OF_DUMMY_TEST)) { | |||
// no way to know which class caused the timeout | |||
suiteName = null; | |||
} | |||
@@ -59,35 +58,42 @@ public class TearDownOnVmCrash implements JUnitResultFormatter { | |||
*/ | |||
@Override | |||
public void addError(final Test fakeTest, final Throwable t) { | |||
if (suiteName != null | |||
&& fakeTest instanceof JUnitTaskMirrorImpl.VmExitErrorTest) { | |||
if (suiteName != null && fakeTest instanceof JUnitTaskMirrorImpl.VmExitErrorTest) { | |||
tearDown(); | |||
} | |||
} | |||
// no need to implement the rest | |||
public void addFailure(Test test, Throwable t) {} | |||
public void addFailure(Test test, Throwable t) { | |||
} | |||
@Override | |||
public void addFailure(Test test, AssertionFailedError t) {} | |||
public void addFailure(Test test, AssertionFailedError t) { | |||
} | |||
@Override | |||
public void startTest(Test test) {} | |||
public void startTest(Test test) { | |||
} | |||
@Override | |||
public void endTest(Test test) {} | |||
public void endTest(Test test) { | |||
} | |||
@Override | |||
public void endTestSuite(JUnitTest suite) {} | |||
public void endTestSuite(JUnitTest suite) { | |||
} | |||
@Override | |||
public void setOutput(OutputStream out) {} | |||
public void setOutput(OutputStream out) { | |||
} | |||
@Override | |||
public void setSystemOutput(String out) {} | |||
public void setSystemOutput(String out) { | |||
} | |||
@Override | |||
public void setSystemError(String err) {} | |||
public void setSystemError(String err) { | |||
} | |||
private void tearDown() { | |||
try { | |||
@@ -104,8 +110,7 @@ public class TearDownOnVmCrash implements JUnitResultFormatter { | |||
} | |||
if (testClass == null && getClass().getClassLoader() != null) { | |||
try { | |||
testClass = | |||
getClass().getClassLoader().loadClass(suiteName); | |||
testClass = getClass().getClassLoader().loadClass(suiteName); | |||
} catch (ClassNotFoundException cnfe) { | |||
// ignore | |||
} | |||
@@ -27,8 +27,8 @@ import java.io.InputStreamReader; | |||
import java.io.OutputStreamWriter; | |||
import java.io.PrintWriter; | |||
import java.io.Writer; | |||
import java.util.function.UnaryOperator; | |||
import java.nio.file.Files; | |||
import java.util.function.UnaryOperator; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.taskdefs.optional.Native2Ascii; | |||
@@ -424,7 +424,7 @@ public class FTP extends Task implements FTPTaskConfig { | |||
} else { | |||
// only scan directories that can include matched files or | |||
// directories | |||
newroots.forEach((k,v) -> scanRoots(baseFTPFile, k, v)); | |||
newroots.forEach((k, v) -> scanRoots(baseFTPFile, k, v)); | |||
} | |||
} | |||
@@ -448,7 +448,7 @@ public class FTP extends Task implements FTPTaskConfig { | |||
try { | |||
path = myfile.getRelativePath(); | |||
traversesSymlinks = myfile.isTraverseSymlinks(); | |||
} catch (IOException be) { | |||
} catch (IOException be) { | |||
throw new BuildException(be, getLocation()); | |||
} catch (BuildException be) { | |||
isOK = false; | |||
@@ -1827,25 +1827,25 @@ public class FTP extends Task implements FTPTaskConfig { | |||
final String dsfile = dsfiles[i]; | |||
executeRetryable(h, () -> { | |||
switch (action) { | |||
case SEND_FILES: | |||
sendFile(ftp, fdir, dsfile); | |||
break; | |||
case GET_FILES: | |||
getFile(ftp, fdir, dsfile); | |||
break; | |||
case DEL_FILES: | |||
delFile(ftp, dsfile); | |||
break; | |||
case LIST_FILES: | |||
listFile(ftp, fbw, dsfile); | |||
break; | |||
case CHMOD: | |||
doSiteCommand(ftp, "chmod " + chmod | |||
+ " " + resolveFile(dsfile)); | |||
transferred++; | |||
break; | |||
default: | |||
throw new BuildException("unknown ftp action " + action); | |||
case SEND_FILES: | |||
sendFile(ftp, fdir, dsfile); | |||
break; | |||
case GET_FILES: | |||
getFile(ftp, fdir, dsfile); | |||
break; | |||
case DEL_FILES: | |||
delFile(ftp, dsfile); | |||
break; | |||
case LIST_FILES: | |||
listFile(ftp, fbw, dsfile); | |||
break; | |||
case CHMOD: | |||
doSiteCommand(ftp, "chmod " + chmod | |||
+ " " + resolveFile(dsfile)); | |||
transferred++; | |||
break; | |||
default: | |||
throw new BuildException("unknown ftp action " + action); | |||
} | |||
}, dsfile); | |||
} | |||
@@ -339,7 +339,7 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror { | |||
try { | |||
path = myfile.getRelativePath(); | |||
traversesSymlinks = myfile.isTraverseSymlinks(); | |||
} catch (IOException be) { | |||
} catch (IOException be) { | |||
throw new BuildException(be, task.getLocation()); | |||
} catch (BuildException be) { | |||
isOK = false; | |||
@@ -1200,26 +1200,26 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror { | |||
final String dsfile = dsfiles[i]; | |||
executeRetryable(h, () -> { | |||
switch (task.getAction()) { | |||
case FTPTask.SEND_FILES: | |||
sendFile(ftp, fdir, dsfile); | |||
break; | |||
case FTPTask.GET_FILES: | |||
getFile(ftp, fdir, dsfile); | |||
break; | |||
case FTPTask.DEL_FILES: | |||
delFile(ftp, dsfile); | |||
break; | |||
case FTPTask.LIST_FILES: | |||
listFile(ftp, fbw, dsfile); | |||
break; | |||
case FTPTask.CHMOD: | |||
doSiteCommand(ftp, "chmod " + task.getChmod() + " " | |||
+ resolveFile(dsfile)); | |||
transferred++; | |||
break; | |||
default: | |||
throw new BuildException("unknown ftp action %s", | |||
task.getAction()); | |||
case FTPTask.SEND_FILES: | |||
sendFile(ftp, fdir, dsfile); | |||
break; | |||
case FTPTask.GET_FILES: | |||
getFile(ftp, fdir, dsfile); | |||
break; | |||
case FTPTask.DEL_FILES: | |||
delFile(ftp, dsfile); | |||
break; | |||
case FTPTask.LIST_FILES: | |||
listFile(ftp, fbw, dsfile); | |||
break; | |||
case FTPTask.CHMOD: | |||
doSiteCommand(ftp, "chmod " + task.getChmod() + " " | |||
+ resolveFile(dsfile)); | |||
transferred++; | |||
break; | |||
default: | |||
throw new BuildException("unknown ftp action %s", | |||
task.getAction()); | |||
} | |||
}, dsfile); | |||
} | |||
@@ -1461,20 +1461,20 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror { | |||
+ task.getGranularityMillis(); | |||
StringBuilder msg; | |||
synchronized(TIMESTAMP_LOGGING_SDF) { | |||
synchronized (TIMESTAMP_LOGGING_SDF) { | |||
msg = new StringBuilder(" [") | |||
.append(TIMESTAMP_LOGGING_SDF.format(new Date(localTimestamp))) | |||
.append("] local"); | |||
} | |||
task.log(msg.toString(), Project.MSG_VERBOSE); | |||
synchronized(TIMESTAMP_LOGGING_SDF) { | |||
synchronized (TIMESTAMP_LOGGING_SDF) { | |||
msg = new StringBuilder(" [") | |||
.append(TIMESTAMP_LOGGING_SDF.format(new Date(adjustedRemoteTimestamp))) | |||
.append("] remote"); | |||
} | |||
if (remoteTimestamp != adjustedRemoteTimestamp) { | |||
synchronized(TIMESTAMP_LOGGING_SDF) { | |||
synchronized (TIMESTAMP_LOGGING_SDF) { | |||
msg.append(" - (raw: ") | |||
.append(TIMESTAMP_LOGGING_SDF.format(new Date(remoteTimestamp))) | |||
.append(")"); | |||
@@ -200,8 +200,7 @@ public class Pvcs extends org.apache.tools.ant.Task { | |||
for (PvcsProject pvcsProject : getPvcsprojects()) { | |||
String projectName = pvcsProject.getName(); | |||
if (projectName == null || projectName.trim().isEmpty()) { | |||
throw new BuildException( | |||
"name is a required attribute of pvcsproject"); | |||
throw new BuildException("name is a required attribute of pvcsproject"); | |||
} | |||
commandLine.createArgument().setValue(projectName); | |||
} | |||
@@ -216,10 +215,8 @@ public class Pvcs extends org.apache.tools.ant.Task { | |||
tmp2 = new File("pvcs_ant_" + rand.nextLong() + ".log"); | |||
log(commandLine.describeCommand(), Project.MSG_VERBOSE); | |||
try { | |||
result = runCmd(commandLine, | |||
new PumpStreamHandler(fos, | |||
new LogOutputStream(this, | |||
Project.MSG_WARN))); | |||
result = runCmd(commandLine, new PumpStreamHandler(fos, | |||
new LogOutputStream(this, Project.MSG_WARN))); | |||
} finally { | |||
FileUtils.close(fos); | |||
} | |||
@@ -264,8 +261,7 @@ public class Pvcs extends org.apache.tools.ant.Task { | |||
commandLine.createArgument().setValue("-v" + getLabel()); | |||
} else { | |||
if (getRevision() != null) { | |||
commandLine.createArgument().setValue("-r" | |||
+ getRevision()); | |||
commandLine.createArgument().setValue("-r" + getRevision()); | |||
} | |||
} | |||
} | |||
@@ -316,10 +312,10 @@ public class Pvcs extends org.apache.tools.ant.Task { | |||
String line = in.readLine(); | |||
while (line != null) { | |||
log("Considering \"" + line + "\"", Project.MSG_VERBOSE); | |||
if (line.startsWith("\"\\") // Checking for "\ | |||
|| line.startsWith("\"/") // or "/ | |||
// or "X:\... | |||
|| (line.length() > POS_3 && line.startsWith("\"") | |||
if (line.startsWith("\"\\") // Checking for "\ | |||
|| line.startsWith("\"/") // or "/ | |||
// or "X:\... | |||
|| (line.length() > POS_3 && line.startsWith("\"") | |||
&& Character.isLetter(line.charAt(POS_1)) | |||
&& String.valueOf(line.charAt(POS_2)).equals(":") | |||
&& String.valueOf(line.charAt(POS_3)).equals("\\"))) { | |||
@@ -365,10 +361,9 @@ public class Pvcs extends org.apache.tools.ant.Task { | |||
private void massagePCLI(File in, File out) | |||
throws IOException { | |||
try (BufferedReader inReader = new BufferedReader(new FileReader(in)); | |||
BufferedWriter outWriter = | |||
new BufferedWriter(new FileWriter(out))) { | |||
BufferedWriter outWriter = new BufferedWriter(new FileWriter(out))) { | |||
for (String line : (Iterable<String>) () -> inReader.lines() | |||
.map(s -> s.replace('\\', '/')).iterator()) { | |||
.map(s -> s.replace('\\', '/')).iterator()) { | |||
outWriter.write(line); | |||
outWriter.newLine(); | |||
} | |||
@@ -49,7 +49,7 @@ public class Directory { | |||
* @param directory a directory | |||
* @param parent a parent Directory | |||
*/ | |||
public Directory(File directory , Directory parent) { | |||
public Directory(File directory, Directory parent) { | |||
this.parent = parent; | |||
this.childDirectories = new LinkedHashSet<>(); | |||
this.files = new ArrayList<>(); | |||
@@ -423,8 +423,7 @@ public class Scp extends SSHBase { | |||
// password. (so if the path contains an @ and a : it will not work) | |||
int indexOfCurrentAt = indexOfAt; | |||
final int indexOfLastColon = uri.lastIndexOf(':'); | |||
while (indexOfCurrentAt > -1 && indexOfCurrentAt < indexOfLastColon) | |||
{ | |||
while (indexOfCurrentAt > -1 && indexOfCurrentAt < indexOfLastColon) { | |||
indexOfAt = indexOfCurrentAt; | |||
indexOfCurrentAt = uri.indexOf('@', indexOfCurrentAt + 1); | |||
} | |||