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