You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by mb...@apache.org on 2017/04/13 15:16:19 UTC
[19/34] ant git commit: java 5-8
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
index f46af0a..c08b089 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
@@ -23,10 +23,18 @@ import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
+import java.io.PrintWriter;
import java.net.URL;
+import java.util.ArrayList;
import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Vector;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.stream.Stream;
import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.BuildException;
@@ -37,6 +45,9 @@ import org.apache.tools.ant.taskdefs.rmic.DefaultRmicAdapter;
import org.apache.tools.ant.taskdefs.rmic.WLRmic;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference;
+import org.apache.tools.ant.types.ResourceCollection;
+import org.apache.tools.ant.types.resources.Difference;
+import org.apache.tools.ant.types.resources.FileProvider;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.depend.DependencyAnalyzer;
@@ -74,26 +85,23 @@ public class Depend extends MatchingTask {
/** The directory which contains the dependency cache. */
private File cache;
- /** The list of source paths derived from the srcPath field. */
- private String[] srcPathList;
-
/**
* A map which gives for every class a list of the class which it
* affects.
*/
- private Hashtable affectedClassMap;
+ private Map<String, Map<String, ClassFileInfo>> affectedClassMap;
/** A map which gives information about a class */
- private Hashtable classFileInfoMap;
+ private Map<String, ClassFileInfo> classFileInfoMap;
/**
* A map which gives the list of jars and classes from the classpath
* that a class depends upon
*/
- private Hashtable classpathDependencies;
+ private Map<String, Set<File>> classpathDependencies;
/** The list of classes which are out of date. */
- private Hashtable outOfDateClasses;
+ private Map<String, String> outOfDateClasses;
/**
* indicates that the dependency relationships should be extended beyond
@@ -182,29 +190,24 @@ public class Depend extends MatchingTask {
* @return a collection of class dependencies
* @exception IOException if the dependency file cannot be read
*/
- private Hashtable readCachedDependencies(File depFile) throws IOException {
- Hashtable dependencyMap = new Hashtable();
+ private Map<String, List<String>> readCachedDependencies(File depFile) throws IOException {
+ Map<String, List<String>> dependencyMap = new HashMap<>();
- BufferedReader in = null;
- try {
- in = new BufferedReader(new FileReader(depFile));
- String line = null;
- Vector dependencyList = null;
- String className = null;
- int prependLength = CLASSNAME_PREPEND.length();
+ int prependLength = CLASSNAME_PREPEND.length();
+
+ try (BufferedReader in = new BufferedReader(new FileReader(depFile))) {
+ List<String> dependencyList = null;
+ String line;
while ((line = in.readLine()) != null) {
if (line.startsWith(CLASSNAME_PREPEND)) {
- dependencyList = new Vector();
- className = line.substring(prependLength);
- dependencyMap.put(className, dependencyList);
+ String className = line.substring(prependLength);
+ dependencyList = dependencyMap.computeIfAbsent(className,
+ k -> new ArrayList<>());
} else if (dependencyList != null) {
- dependencyList.addElement(line);
+ dependencyList.add(line);
}
}
- } finally {
- FileUtils.close(in);
}
-
return dependencyMap;
}
@@ -214,32 +217,18 @@ public class Depend extends MatchingTask {
* @param dependencyMap the map of dependencies to be written out.
* @exception IOException if the dependency file cannot be written out.
*/
- private void writeCachedDependencies(Hashtable dependencyMap)
+ private void writeCachedDependencies(Map<String, List<String>> dependencyMap)
throws IOException {
if (cache != null) {
- BufferedWriter pw = null;
- try {
- cache.mkdirs();
- File depFile = new File(cache, CACHE_FILE_NAME);
-
- pw = new BufferedWriter(new FileWriter(depFile));
- Enumeration e = dependencyMap.keys();
- while (e.hasMoreElements()) {
- String className = (String) e.nextElement();
-
- pw.write(CLASSNAME_PREPEND + className);
- pw.newLine();
-
- Vector dependencyList
- = (Vector) dependencyMap.get(className);
- int size = dependencyList.size();
- for (int x = 0; x < size; x++) {
- pw.write(String.valueOf(dependencyList.elementAt(x)));
- pw.newLine();
- }
+ cache.mkdirs();
+ File depFile = new File(cache, CACHE_FILE_NAME);
+ try (PrintWriter pw =
+ new PrintWriter(new BufferedWriter(new FileWriter(depFile)))) {
+ for (Map.Entry<String, List<String>> e : dependencyMap
+ .entrySet()) {
+ pw.printf("%s%s%n", CLASSNAME_PREPEND, e.getKey());
+ e.getValue().forEach(pw::println);
}
- } finally {
- FileUtils.close(pw);
}
}
}
@@ -253,28 +242,16 @@ public class Depend extends MatchingTask {
if (dependClasspath == null) {
return null;
}
-
- String[] destPathElements = destPath.list();
- String[] classpathElements = dependClasspath.list();
- String checkPath = "";
- for (int i = 0; i < classpathElements.length; ++i) {
- String element = classpathElements[i];
- boolean inDestPath = false;
- for (int j = 0; j < destPathElements.length && !inDestPath; ++j) {
- inDestPath = destPathElements[j].equals(element);
- }
- if (!inDestPath) {
- if (checkPath.length() == 0) {
- checkPath = element;
- } else {
- checkPath += ":" + element;
- }
- }
- }
-
- Path p = null;
- if (checkPath.length() > 0) {
- p = new Path(getProject(), checkPath);
+ Difference diff = new Difference();
+ diff.add(destPath);
+ diff.add(dependClasspath);
+
+ Path p;
+ if (diff.isEmpty()) {
+ p = null;
+ } else {
+ p = new Path(getProject());
+ p.add(diff);
}
log("Classpath without dest dir is " + p, Project.MSG_DEBUG);
@@ -300,11 +277,11 @@ public class Depend extends MatchingTask {
* files cannot be read or written
*/
private void determineDependencies() throws IOException {
- affectedClassMap = new Hashtable();
- classFileInfoMap = new Hashtable();
+ affectedClassMap = new HashMap<>();
+ classFileInfoMap = new HashMap<>();
boolean cacheDirty = false;
- Hashtable dependencyMap = new Hashtable();
+ Map<String, List<String>> dependencyMap = new HashMap<>();
File cacheFile = null;
boolean cacheFileExists = true;
long cacheLastModified = Long.MAX_VALUE;
@@ -318,13 +295,11 @@ public class Depend extends MatchingTask {
dependencyMap = readCachedDependencies(cacheFile);
}
}
- Enumeration classfileEnum = getClassFiles(destPath).elements();
- while (classfileEnum.hasMoreElements()) {
- ClassFileInfo info = (ClassFileInfo) classfileEnum.nextElement();
+ for (ClassFileInfo info : getClassFiles()) {
log("Adding class info for " + info.className, Project.MSG_DEBUG);
classFileInfoMap.put(info.className, info);
- Vector dependencyList = null;
+ List<String> dependencyList = null;
if (cache != null) {
// try to read the dependency info from the map if it is
@@ -333,7 +308,7 @@ public class Depend extends MatchingTask {
&& cacheLastModified > info.absoluteFile.lastModified()) {
// depFile exists and is newer than the class file
// need to get dependency list from the map.
- dependencyList = (Vector) dependencyMap.get(info.className);
+ dependencyList = dependencyMap.get(info.className);
}
}
@@ -343,11 +318,11 @@ public class Depend extends MatchingTask {
analyzer.addRootClass(info.className);
analyzer.addClassPath(destPath);
analyzer.setClosure(false);
- dependencyList = new Vector();
- Enumeration depEnum = analyzer.getClassDependencies();
+ dependencyList = new ArrayList<>();
+ Enumeration<String> depEnum = analyzer.getClassDependencies();
while (depEnum.hasMoreElements()) {
- Object o = depEnum.nextElement();
- dependencyList.addElement(o);
+ String o = depEnum.nextElement();
+ dependencyList.add(o);
log("Class " + info.className + " depends on " + o,
Project.MSG_DEBUG);
}
@@ -357,18 +332,10 @@ public class Depend extends MatchingTask {
// This class depends on each class in the dependency list. For each
// one of those, add this class into their affected classes list
- Enumeration depEnum = dependencyList.elements();
- while (depEnum.hasMoreElements()) {
- String dependentClass = (String) depEnum.nextElement();
-
- Hashtable affectedClasses
- = (Hashtable) affectedClassMap.get(dependentClass);
- if (affectedClasses == null) {
- affectedClasses = new Hashtable();
- affectedClassMap.put(dependentClass, affectedClasses);
- }
-
- affectedClasses.put(info.className, info);
+ for (String dependentClass : dependencyList) {
+ affectedClassMap
+ .computeIfAbsent(dependentClass, k -> new HashMap<>())
+ .put(info.className, info);
log(dependentClass + " affects " + info.className,
Project.MSG_DEBUG);
}
@@ -378,21 +345,19 @@ public class Depend extends MatchingTask {
Path checkPath = getCheckClassPath();
if (checkPath != null) {
// now determine which jars each class depends upon
- classpathDependencies = new Hashtable();
+ classpathDependencies = new HashMap<>();
try (AntClassLoader loader = getProject().createClassLoader(checkPath)) {
- Hashtable classpathFileCache = new Hashtable();
+ Map<String, Object> classpathFileCache = new HashMap<>();
Object nullFileMarker = new Object();
- for (Enumeration e = dependencyMap.keys(); e.hasMoreElements();) {
- String className = (String) e.nextElement();
+ for (Map.Entry<String, List<String>> e : dependencyMap.entrySet()) {
+ String className = e.getKey();
log("Determining classpath dependencies for " + className,
Project.MSG_DEBUG);
- Vector dependencyList = (Vector) dependencyMap.get(className);
- Hashtable dependencies = new Hashtable();
+ List<String> dependencyList = e.getValue();
+ Set<File> dependencies = new HashSet<>();
classpathDependencies.put(className, dependencies);
- Enumeration e2 = dependencyList.elements();
- while (e2.hasMoreElements()) {
- String dependency = (String) e2.nextElement();
+ for (String dependency : dependencyList) {
log("Looking for " + dependency, Project.MSG_DEBUG);
Object classpathFileObject
= classpathFileCache.get(dependency);
@@ -405,22 +370,23 @@ public class Depend extends MatchingTask {
= loader.getResource(dependency.replace('.', '/') + ".class");
log("URL is " + classURL, Project.MSG_DEBUG);
if (classURL != null) {
- if (classURL.getProtocol().equals("jar")) {
+ if ("jar".equals(classURL.getProtocol())) {
String jarFilePath = classURL.getFile();
int classMarker = jarFilePath.indexOf('!');
jarFilePath = jarFilePath.substring(0, classMarker);
if (jarFilePath.startsWith("file:")) {
classpathFileObject = new File(
- FileUtils.getFileUtils().fromURI(jarFilePath));
+ FileUtils.getFileUtils()
+ .fromURI(jarFilePath));
} else {
throw new IOException(
- "Bizarre nested path in jar: protocol: "
- + jarFilePath);
+ "Bizarre nested path in jar: protocol: "
+ + jarFilePath);
}
- } else if (classURL.getProtocol().equals("file")) {
+ } else if ("file".equals(classURL.getProtocol())) {
classpathFileObject = new File(
- FileUtils.getFileUtils()
- .fromURI(classURL.toExternalForm()));
+ FileUtils.getFileUtils().fromURI(
+ classURL.toExternalForm()));
}
log("Class " + className
+ " depends on " + classpathFileObject
@@ -437,7 +403,7 @@ public class Depend extends MatchingTask {
File jarFile = (File) classpathFileObject;
log("Adding a classpath dependency on " + jarFile,
Project.MSG_DEBUG);
- dependencies.put(jarFile, jarFile);
+ dependencies.add(jarFile);
}
}
}
@@ -460,11 +426,9 @@ public class Depend extends MatchingTask {
*/
private int deleteAllAffectedFiles() {
int count = 0;
- for (Enumeration e = outOfDateClasses.elements(); e.hasMoreElements();) {
- String className = (String) e.nextElement();
+ for (String className : outOfDateClasses.keySet()) {
count += deleteAffectedFiles(className);
- ClassFileInfo classInfo
- = (ClassFileInfo) classFileInfoMap.get(className);
+ ClassFileInfo classInfo = classFileInfoMap.get(className);
if (classInfo != null && classInfo.absoluteFile.exists()) {
if (classInfo.sourceFile == null) {
warnOutOfDateButNotDeleted(classInfo, className, className);
@@ -487,14 +451,13 @@ public class Depend extends MatchingTask {
private int deleteAffectedFiles(String className) {
int count = 0;
- Hashtable affectedClasses = (Hashtable) affectedClassMap.get(className);
+ Map<String, ClassFileInfo> affectedClasses = affectedClassMap.get(className);
if (affectedClasses == null) {
return count;
}
- for (Enumeration e = affectedClasses.keys(); e.hasMoreElements();) {
- String affectedClass = (String) e.nextElement();
- ClassFileInfo affectedClassInfo
- = (ClassFileInfo) affectedClasses.get(affectedClass);
+ for (Map.Entry<String, ClassFileInfo> e : affectedClasses.entrySet()) {
+ String affectedClass = e.getKey();
+ ClassFileInfo affectedClassInfo = e.getValue();
if (!affectedClassInfo.absoluteFile.exists()) {
continue;
@@ -516,16 +479,16 @@ public class Depend extends MatchingTask {
// without closure we may delete an inner class but not the
// top level class which would not trigger a recompile.
- if (affectedClass.indexOf("$") == -1) {
+ if (affectedClass.indexOf('$') == -1) {
continue;
}
// need to delete the main class
String topLevelClassName
- = affectedClass.substring(0, affectedClass.indexOf("$"));
+ = affectedClass.substring(0, affectedClass.indexOf('$'));
log("Top level class = " + topLevelClassName,
Project.MSG_VERBOSE);
ClassFileInfo topLevelClassInfo
- = (ClassFileInfo) classFileInfoMap.get(topLevelClassName);
+ = classFileInfoMap.get(topLevelClassName);
if (topLevelClassInfo != null
&& topLevelClassInfo.absoluteFile.exists()) {
log("Deleting file "
@@ -569,8 +532,8 @@ public class Depend extends MatchingTask {
log("The class " + affectedClass + " in file "
+ affectedClassInfo.absoluteFile.getPath()
+ " is out of date due to " + className
- + " but has not been deleted because its source file"
- + " could not be determined", level);
+ + " but has not been deleted because its source file could not be determined",
+ level);
affectedClassInfo.isUserWarned = true;
}
@@ -598,75 +561,48 @@ public class Depend extends MatchingTask {
log("Reverse Dependency Dump for " + affectedClassMap.size()
+ " classes:", Project.MSG_DEBUG);
- Enumeration classEnum = affectedClassMap.keys();
- while (classEnum.hasMoreElements()) {
- String className = (String) classEnum.nextElement();
+ affectedClassMap.forEach((className, affectedClasses) -> {
log(" Class " + className + " affects:", Project.MSG_DEBUG);
- Hashtable affectedClasses
- = (Hashtable) affectedClassMap.get(className);
- Enumeration affectedClassEnum = affectedClasses.keys();
- while (affectedClassEnum.hasMoreElements()) {
- String affectedClass = (String) affectedClassEnum.nextElement();
- ClassFileInfo info
- = (ClassFileInfo) affectedClasses.get(affectedClass);
- log(" " + affectedClass + " in "
- + info.absoluteFile.getPath(), Project.MSG_DEBUG);
- }
- }
+ affectedClasses.forEach((affectedClass, info) -> log(
+ " " + affectedClass + " in " + info.absoluteFile.getPath(),
+ Project.MSG_DEBUG));
+ });
if (classpathDependencies != null) {
log("Classpath file dependencies (Forward):", Project.MSG_DEBUG);
- Enumeration classpathEnum = classpathDependencies.keys();
- while (classpathEnum.hasMoreElements()) {
- String className = (String) classpathEnum.nextElement();
+ classpathDependencies.forEach((className, dependencies) -> {
log(" Class " + className + " depends on:", Project.MSG_DEBUG);
- Hashtable dependencies
- = (Hashtable) classpathDependencies.get(className);
-
- Enumeration classpathFileEnum = dependencies.elements();
- while (classpathFileEnum.hasMoreElements()) {
- File classpathFile = (File) classpathFileEnum.nextElement();
- log(" " + classpathFile.getPath(), Project.MSG_DEBUG);
- }
- }
+ dependencies.forEach(f -> log(" " + f.getPath(), Project.MSG_DEBUG));
+ });
}
}
private void determineOutOfDateClasses() {
- outOfDateClasses = new Hashtable();
- for (int i = 0; i < srcPathList.length; i++) {
- File srcDir = getProject().resolveFile(srcPathList[i]);
- if (srcDir.exists()) {
- DirectoryScanner ds = this.getDirectoryScanner(srcDir);
- String[] files = ds.getIncludedFiles();
- scanDir(srcDir, files);
- }
- }
+ outOfDateClasses = new HashMap<>();
+ directories(srcPath).forEach(srcDir -> {
+ DirectoryScanner ds = this.getDirectoryScanner(srcDir);
+ scanDir(srcDir, ds.getIncludedFiles());
+ });
// now check classpath file dependencies
if (classpathDependencies == null) {
return;
}
- Enumeration classpathDepsEnum = classpathDependencies.keys();
- while (classpathDepsEnum.hasMoreElements()) {
- String className = (String) classpathDepsEnum.nextElement();
+ for (Map.Entry<String, Set<File>> e : classpathDependencies.entrySet()) {
+ String className = e.getKey();
if (outOfDateClasses.containsKey(className)) {
continue;
}
- ClassFileInfo info
- = (ClassFileInfo) classFileInfoMap.get(className);
+ ClassFileInfo info = classFileInfoMap.get(className);
// if we have no info about the class - it may have been deleted already and we
// are using cached info.
if (info != null) {
- Hashtable dependencies
- = (Hashtable) classpathDependencies.get(className);
- for (Enumeration e2 = dependencies.elements(); e2.hasMoreElements();) {
- File classpathFile = (File) e2.nextElement();
- if (classpathFile.lastModified()
- > info.absoluteFile.lastModified()) {
+ for (File classpathFile : e.getValue()) {
+ if (classpathFile.lastModified() > info.absoluteFile
+ .lastModified()) {
log("Class " + className
+ " is out of date with respect to "
+ classpathFile, Project.MSG_DEBUG);
@@ -683,6 +619,7 @@ public class Depend extends MatchingTask {
*
* @exception BuildException Thrown in case of an unrecoverable error.
*/
+ @Override
public void execute() throws BuildException {
try {
long start = System.currentTimeMillis();
@@ -691,8 +628,7 @@ public class Depend extends MatchingTask {
getLocation());
}
- srcPathList = srcPath.list();
- if (srcPathList.length == 0) {
+ if (!directories(srcPath).findAny().isPresent()) {
throw new BuildException("srcdir attribute must be non-empty",
getLocation());
}
@@ -702,8 +638,8 @@ public class Depend extends MatchingTask {
}
if (cache != null && cache.exists() && !cache.isDirectory()) {
- throw new BuildException("The cache, if specified, must "
- + "point to a directory");
+ throw new BuildException(
+ "The cache, if specified, must point to a directory");
}
if (cache != null && !cache.exists()) {
@@ -743,50 +679,38 @@ public class Depend extends MatchingTask {
* checked.
*/
protected void scanDir(File srcDir, String[] files) {
-
- for (int i = 0; i < files.length; i++) {
- File srcFile = new File(srcDir, files[i]);
- if (files[i].endsWith(".java")) {
+ for (String f : files) {
+ File srcFile = new File(srcDir, f);
+ if (f.endsWith(".java")) {
String filePath = srcFile.getPath();
String className
= filePath.substring(srcDir.getPath().length() + 1,
filePath.length() - ".java".length());
className = ClassFileUtils.convertSlashName(className);
ClassFileInfo info
- = (ClassFileInfo) classFileInfoMap.get(className);
+ = classFileInfoMap.get(className);
if (info == null) {
// there was no class file. add this class to the list
outOfDateClasses.put(className, className);
- } else {
- if (srcFile.lastModified()
- > info.absoluteFile.lastModified()) {
- outOfDateClasses.put(className, className);
- }
+ } else if (srcFile.lastModified() > info.absoluteFile
+ .lastModified()) {
+ outOfDateClasses.put(className, className);
}
}
}
}
-
/**
* Get the list of class files we are going to analyse.
*
- * @param classLocations a path structure containing all the directories
- * where classes can be found.
* @return a vector containing the classes to analyse.
*/
- private Vector getClassFiles(Path classLocations) {
+ private List<ClassFileInfo> getClassFiles() {
// break the classLocations into its components.
- String[] classLocationsList = classLocations.list();
+ List<ClassFileInfo> classFileList = new ArrayList<>();
- Vector classFileList = new Vector();
-
- for (int i = 0; i < classLocationsList.length; ++i) {
- File dir = new File(classLocationsList[i]);
- if (dir.isDirectory()) {
- addClassFiles(classFileList, dir, dir);
- }
- }
+ directories(destPath)
+ .forEach(dir -> addClassFiles(classFileList, dir, dir));
return classFileList;
}
@@ -800,21 +724,17 @@ public class Depend extends MatchingTask {
*/
private File findSourceFile(String classname, File sourceFileKnownToExist) {
String sourceFilename;
- int innerIndex = classname.indexOf("$");
+ int innerIndex = classname.indexOf('$');
if (innerIndex != -1) {
sourceFilename = classname.substring(0, innerIndex) + ".java";
} else {
sourceFilename = classname + ".java";
}
-
// search the various source path entries
- for (int i = 0; i < srcPathList.length; ++i) {
- File sourceFile = new File(srcPathList[i], sourceFilename);
- if (sourceFile.equals(sourceFileKnownToExist) || sourceFile.exists()) {
- return sourceFile;
- }
- }
- return null;
+ return directories(srcPath)
+ .map(d -> new File(d, sourceFilename)).filter(Predicate
+ .<File> isEqual(sourceFileKnownToExist).or(File::exists))
+ .findFirst().orElse(null);
}
/**
@@ -829,36 +749,34 @@ public class Depend extends MatchingTask {
* the absolute class name from the relative position in the
* source tree
*/
- private void addClassFiles(Vector classFileList, File dir, File root) {
- String[] filesInDir = dir.list();
+ private void addClassFiles(List<ClassFileInfo> classFileList, File dir, File root) {
+ File[] children = dir.listFiles();
- if (filesInDir == null) {
+ if (children == null) {
return;
}
- int length = filesInDir.length;
int rootLength = root.getPath().length();
File sourceFileKnownToExist = null; // speed optimization
- for (int i = 0; i < length; ++i) {
- File file = new File(dir, filesInDir[i]);
- if (filesInDir[i].endsWith(".class")) {
+ for (File file : children) {
+ if (file.getName().endsWith(".class")) {
ClassFileInfo info = new ClassFileInfo();
info.absoluteFile = file;
- String relativeName = file.getPath().substring(
- rootLength + 1,
- file.getPath().length() - ".class".length());
+
+ String relativeName = file.getPath().substring(rootLength + 1,
+ file.getPath().length() - ".class".length());
+
info.className
= ClassFileUtils.convertSlashName(relativeName);
- info.sourceFile = sourceFileKnownToExist = findSourceFile(
- relativeName, sourceFileKnownToExist);
- classFileList.addElement(info);
+ info.sourceFile = sourceFileKnownToExist =
+ findSourceFile(relativeName, sourceFileKnownToExist);
+ classFileList.add(info);
} else {
addClassFiles(classFileList, file, root);
}
}
}
-
/**
* Set the directories path to find the Java source files.
*
@@ -907,5 +825,10 @@ public class Depend extends MatchingTask {
public void setDump(boolean dump) {
this.dump = dump;
}
-}
+ private Stream<File> directories(ResourceCollection rc) {
+ return rc.stream().map(r -> r.as(FileProvider.class))
+ .filter(Objects::nonNull).map(FileProvider::getFile)
+ .filter(File::isDirectory);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/DirectoryIterator.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/DirectoryIterator.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/DirectoryIterator.java
index 4401f1c..7137918 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/DirectoryIterator.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/DirectoryIterator.java
@@ -19,11 +19,14 @@ package org.apache.tools.ant.taskdefs.optional.depend;
import java.io.File;
import java.io.IOException;
+import java.util.ArrayDeque;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Deque;
+import java.util.Iterator;
+import java.util.List;
import java.io.InputStream;
import java.nio.file.Files;
-import java.util.Enumeration;
-import java.util.Stack;
-import java.util.Vector;
/**
* An iterator which iterates through the contents of a java directory. The
@@ -37,7 +40,7 @@ public class DirectoryIterator implements ClassFileIterator {
* This is a stack of current iterators supporting the depth first
* traversal of the directory tree.
*/
- private Stack enumStack;
+ private Deque<Iterator<File>> enumStack;
/**
* The current directory iterator. As directories encounter lower level
@@ -46,7 +49,7 @@ public class DirectoryIterator implements ClassFileIterator {
* directory. This implements a depth first traversal of the directory
* namespace.
*/
- private Enumeration currentEnum;
+ private Iterator<File> currentIterator;
/**
* Creates a directory iterator. The directory iterator is created to
@@ -64,12 +67,8 @@ public class DirectoryIterator implements ClassFileIterator {
public DirectoryIterator(File rootDirectory, boolean changeInto)
throws IOException {
super();
-
- enumStack = new Stack();
-
- Vector filesInRoot = getDirectoryEntries(rootDirectory);
-
- currentEnum = filesInRoot.elements();
+ enumStack = new ArrayDeque<>();
+ currentIterator = getDirectoryEntries(rootDirectory).iterator();
}
/**
@@ -80,21 +79,12 @@ public class DirectoryIterator implements ClassFileIterator {
* @return a vector containing File objects for each entry in the
* directory.
*/
- private Vector getDirectoryEntries(File directory) {
- Vector files = new Vector();
-
- // File[] filesInDir = directory.listFiles();
- String[] filesInDir = directory.list();
-
- if (filesInDir != null) {
- int length = filesInDir.length;
-
- for (int i = 0; i < length; ++i) {
- files.addElement(new File(directory, filesInDir[i]));
- }
+ private List<File> getDirectoryEntries(File directory) {
+ File[] filesInDir = directory.listFiles();
+ if (filesInDir == null) {
+ return Collections.emptyList();
}
-
- return files;
+ return Arrays.asList(filesInDir);
}
/**
@@ -111,25 +101,25 @@ public class DirectoryIterator implements ClassFileIterator {
*
* @return the next ClassFile in the iteration.
*/
+ @Override
public ClassFile getNextClassFile() {
ClassFile nextElement = null;
try {
while (nextElement == null) {
- if (currentEnum.hasMoreElements()) {
- File element = (File) currentEnum.nextElement();
+ if (currentIterator.hasNext()) {
+ File element = currentIterator.next();
if (element.isDirectory()) {
// push the current iterator onto the stack and then
// iterate through this directory.
- enumStack.push(currentEnum);
+ enumStack.push(currentIterator);
- Vector files = getDirectoryEntries(element);
+ List<File> files = getDirectoryEntries(element);
- currentEnum = files.elements();
+ currentIterator = files.iterator();
} else {
-
// we have a file. create a stream for it
try (InputStream inFileStream
= Files.newInputStream(element.toPath())) {
@@ -145,13 +135,11 @@ public class DirectoryIterator implements ClassFileIterator {
}
}
}
+ } else // this iterator is exhausted. Can we pop one off the stack
+ if (enumStack.isEmpty()) {
+ break;
} else {
- // this iterator is exhausted. Can we pop one off the stack
- if (enumStack.empty()) {
- break;
- } else {
- currentEnum = (Enumeration) enumStack.pop();
- }
+ currentIterator = enumStack.pop();
}
}
} catch (IOException e) {
@@ -162,4 +150,3 @@ public class DirectoryIterator implements ClassFileIterator {
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/JarFileIterator.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/JarFileIterator.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/JarFileIterator.java
index c468b95..cc2d60d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/JarFileIterator.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/JarFileIterator.java
@@ -41,7 +41,6 @@ public class JarFileIterator implements ClassFileIterator {
*/
public JarFileIterator(InputStream stream) throws IOException {
super();
-
jarStream = new ZipInputStream(stream);
}
@@ -50,6 +49,7 @@ public class JarFileIterator implements ClassFileIterator {
*
* @return a ClassFile object describing the class from the jar
*/
+ @Override
public ClassFile getNextClassFile() {
ZipEntry jarEntry;
ClassFile nextElement = null;
@@ -69,7 +69,6 @@ public class JarFileIterator implements ClassFileIterator {
nextElement = javaClass;
} else {
-
jarEntry = jarStream.getNextEntry();
}
}
@@ -83,9 +82,7 @@ public class JarFileIterator implements ClassFileIterator {
throw new BuildException("Problem reading JAR file: " + text);
}
-
return nextElement;
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ClassCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ClassCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ClassCPInfo.java
index 8abbfc8..a870fc7 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ClassCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ClassCPInfo.java
@@ -54,6 +54,7 @@ public class ClassCPInfo extends ConstantPoolEntry {
* @exception IOException thrown if there is a problem reading the entry
* from the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
index = cpStream.readUnsignedShort();
className = "unresolved";
@@ -64,6 +65,7 @@ public class ClassCPInfo extends ConstantPoolEntry {
*
* @return string representation of this constant pool entry
*/
+ @Override
public String toString() {
return "Class Constant Pool Entry for " + className + "[" + index + "]";
}
@@ -74,6 +76,7 @@ public class ClassCPInfo extends ConstantPoolEntry {
* @param constantPool the constant pool with which to resolve the
* class.
*/
+ @Override
public void resolve(ConstantPool constantPool) {
className = ((Utf8CPInfo) constantPool.getEntry(index)).getValue();
@@ -90,4 +93,3 @@ public class ClassCPInfo extends ConstantPoolEntry {
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantCPInfo.java
index 6103422..1865c07 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantCPInfo.java
@@ -60,4 +60,3 @@ public abstract class ConstantCPInfo extends ConstantPoolEntry {
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPool.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPool.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPool.java
index 9bec0ed..ec7ed64 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPool.java
@@ -23,6 +23,8 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
/**
* The constant pool of a Java class. The constant pool is a collection of
@@ -343,16 +345,11 @@ public class ConstantPool {
*
* @return the constant pool entries as strings
*/
+ @Override
public String toString() {
- StringBuilder sb = new StringBuilder("\n");
- final int size = entries.size();
-
- for (int i = 0; i < size; ++i) {
- sb.append('[').append(i).append("] = ").append(getEntry(i)).append('\n');
- }
-
- return sb.toString();
+ return IntStream.range(0, entries.size())
+ .mapToObj(i -> String.format("[%d] = %s", i, getEntry(i)))
+ .collect(Collectors.joining("\n", "\n", "\n"));
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPoolEntry.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPoolEntry.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPoolEntry.java
index 26a0d09..b639fa9 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPoolEntry.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPoolEntry.java
@@ -115,72 +115,57 @@ public abstract class ConstantPoolEntry {
*/
public static ConstantPoolEntry readEntry(DataInputStream cpStream)
throws IOException {
- ConstantPoolEntry cpInfo = null;
int cpTag = cpStream.readUnsignedByte();
+ ConstantPoolEntry cpInfo;
switch (cpTag) {
case CONSTANT_UTF8:
cpInfo = new Utf8CPInfo();
-
break;
case CONSTANT_INTEGER:
cpInfo = new IntegerCPInfo();
-
break;
case CONSTANT_FLOAT:
cpInfo = new FloatCPInfo();
-
break;
case CONSTANT_LONG:
cpInfo = new LongCPInfo();
-
break;
case CONSTANT_DOUBLE:
cpInfo = new DoubleCPInfo();
-
break;
case CONSTANT_CLASS:
cpInfo = new ClassCPInfo();
-
break;
case CONSTANT_STRING:
cpInfo = new StringCPInfo();
-
break;
case CONSTANT_FIELDREF:
cpInfo = new FieldRefCPInfo();
-
break;
case CONSTANT_METHODREF:
cpInfo = new MethodRefCPInfo();
-
break;
case CONSTANT_INTERFACEMETHODREF:
cpInfo = new InterfaceMethodRefCPInfo();
-
break;
case CONSTANT_NAMEANDTYPE:
cpInfo = new NameAndTypeCPInfo();
-
break;
case CONSTANT_METHODHANDLE:
cpInfo = new MethodHandleCPInfo();
-
break;
case CONSTANT_METHODTYPE:
cpInfo = new MethodTypeCPInfo();
-
break;
case CONSTANT_INVOKEDYNAMIC:
cpInfo = new InvokeDynamicCPInfo();
-
break;
default:
throw new ClassFormatError("Invalid Constant Pool entry Type "
+ cpTag);
}
-
cpInfo.read(cpStream);
return cpInfo;
@@ -239,4 +224,3 @@ public abstract class ConstantPoolEntry {
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/DoubleCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/DoubleCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/DoubleCPInfo.java
index a21c0d6..5f28999 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/DoubleCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/DoubleCPInfo.java
@@ -41,8 +41,9 @@ public class DoubleCPInfo extends ConstantCPInfo {
* @exception IOException if there is a problem reading the entry from the
* stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
- setValue(new Double(cpStream.readDouble()));
+ setValue(Double.valueOf(cpStream.readDouble()));
}
/**
@@ -50,9 +51,9 @@ public class DoubleCPInfo extends ConstantCPInfo {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
return "Double Constant Pool Entry: " + getValue();
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/FieldRefCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/FieldRefCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/FieldRefCPInfo.java
index 06c0925..1367b62 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/FieldRefCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/FieldRefCPInfo.java
@@ -49,6 +49,7 @@ public class FieldRefCPInfo extends ConstantPoolEntry {
* @exception IOException if there is a problem reading the entry from
* the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
classIndex = cpStream.readUnsignedShort();
nameAndTypeIndex = cpStream.readUnsignedShort();
@@ -61,6 +62,7 @@ public class FieldRefCPInfo extends ConstantPoolEntry {
* @param constantPool the constant pool of which this entry is a member
* and against which this entry is to be resolved.
*/
+ @Override
public void resolve(ConstantPool constantPool) {
ClassCPInfo fieldClass
= (ClassCPInfo) constantPool.getEntry(classIndex);
@@ -85,18 +87,14 @@ public class FieldRefCPInfo extends ConstantPoolEntry {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
- String value;
-
if (isResolved()) {
- value = "Field : Class = " + fieldClassName + ", name = "
- + fieldName + ", type = " + fieldType;
- } else {
- value = "Field : Class index = " + classIndex
- + ", name and type index = " + nameAndTypeIndex;
+ return "Field : Class = " + fieldClassName + ", name = " + fieldName
+ + ", type = " + fieldType;
}
-
- return value;
+ return "Field : Class index = " + classIndex
+ + ", name and type index = " + nameAndTypeIndex;
}
/**
@@ -127,4 +125,3 @@ public class FieldRefCPInfo extends ConstantPoolEntry {
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/FloatCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/FloatCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/FloatCPInfo.java
index 532b672..d9bf465 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/FloatCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/FloatCPInfo.java
@@ -39,8 +39,9 @@ public class FloatCPInfo extends ConstantCPInfo {
* @exception IOException if there is a problem reading the entry from
* the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
- setValue(new Float(cpStream.readFloat()));
+ setValue(Float.valueOf(cpStream.readFloat()));
}
/**
@@ -48,9 +49,9 @@ public class FloatCPInfo extends ConstantCPInfo {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
return "Float Constant Pool Entry: " + getValue();
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/IntegerCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/IntegerCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/IntegerCPInfo.java
index 3beaa8c..a3ecdaa 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/IntegerCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/IntegerCPInfo.java
@@ -39,8 +39,9 @@ public class IntegerCPInfo extends ConstantCPInfo {
* @exception IOException if there is a problem reading the entry from
* the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
- setValue(new Integer(cpStream.readInt()));
+ setValue(Integer.valueOf(cpStream.readInt()));
}
/**
@@ -48,9 +49,9 @@ public class IntegerCPInfo extends ConstantCPInfo {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
return "Integer Constant Pool Entry: " + getValue();
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/InterfaceMethodRefCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/InterfaceMethodRefCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/InterfaceMethodRefCPInfo.java
index fbc23c1..4f7246c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/InterfaceMethodRefCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/InterfaceMethodRefCPInfo.java
@@ -55,6 +55,7 @@ public class InterfaceMethodRefCPInfo extends ConstantPoolEntry {
* @exception IOException if there is a problem reading the entry from
* the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
classIndex = cpStream.readUnsignedShort();
nameAndTypeIndex = cpStream.readUnsignedShort();
@@ -67,6 +68,7 @@ public class InterfaceMethodRefCPInfo extends ConstantPoolEntry {
* @param constantPool the constant pool of which this entry is a member
* and against which this entry is to be resolved.
*/
+ @Override
public void resolve(ConstantPool constantPool) {
ClassCPInfo interfaceMethodClass
= (ClassCPInfo) constantPool.getEntry(classIndex);
@@ -91,19 +93,16 @@ public class InterfaceMethodRefCPInfo extends ConstantPoolEntry {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
- String value;
-
if (isResolved()) {
- value = "InterfaceMethod : Class = " + interfaceMethodClassName
+ return "InterfaceMethod : Class = " + interfaceMethodClassName
+ ", name = " + interfaceMethodName + ", type = "
+ interfaceMethodType;
- } else {
- value = "InterfaceMethod : Class index = " + classIndex
- + ", name and type index = " + nameAndTypeIndex;
- }
+ }
+ return "InterfaceMethod : Class index = " + classIndex
+ + ", name and type index = " + nameAndTypeIndex;
- return value;
}
/**
@@ -134,4 +133,3 @@ public class InterfaceMethodRefCPInfo extends ConstantPoolEntry {
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/InvokeDynamicCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/InvokeDynamicCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/InvokeDynamicCPInfo.java
index 3795db7..176b99a 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/InvokeDynamicCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/InvokeDynamicCPInfo.java
@@ -32,7 +32,7 @@ public class InvokeDynamicCPInfo extends ConstantCPInfo {
private int nameAndTypeIndex;
/** the name and type CP info pointed to */
private NameAndTypeCPInfo nameAndTypeCPInfo;
- /** */
+
/** Constructor. */
public InvokeDynamicCPInfo() {
super(CONSTANT_INVOKEDYNAMIC, 1);
@@ -46,6 +46,7 @@ public class InvokeDynamicCPInfo extends ConstantCPInfo {
* @exception java.io.IOException if there is a problem reading the entry from
* the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
bootstrapMethodAttrIndex = cpStream.readUnsignedShort();
nameAndTypeIndex = cpStream.readUnsignedShort();
@@ -56,16 +57,14 @@ public class InvokeDynamicCPInfo extends ConstantCPInfo {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
- String value;
if (isResolved()) {
- value = "Name = " + nameAndTypeCPInfo.getName() + ", type = " + nameAndTypeCPInfo.getType();
- } else {
- value = "BootstrapMethodAttrIndex inx = " + bootstrapMethodAttrIndex
- + "NameAndType index = " + nameAndTypeIndex;
+ return "Name = " + nameAndTypeCPInfo.getName() + ", type = "
+ + nameAndTypeCPInfo.getType();
}
-
- return value;
+ return "BootstrapMethodAttrIndex inx = " + bootstrapMethodAttrIndex
+ + "NameAndType index = " + nameAndTypeIndex;
}
/**
* Resolve this constant pool entry with respect to its dependents in
@@ -74,6 +73,7 @@ public class InvokeDynamicCPInfo extends ConstantCPInfo {
* @param constantPool the constant pool of which this entry is a member
* and against which this entry is to be resolved.
*/
+ @Override
public void resolve(ConstantPool constantPool) {
nameAndTypeCPInfo
= (NameAndTypeCPInfo) constantPool.getEntry(nameAndTypeIndex);
@@ -82,4 +82,3 @@ public class InvokeDynamicCPInfo extends ConstantCPInfo {
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/LongCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/LongCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/LongCPInfo.java
index e854f04..9e57a39 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/LongCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/LongCPInfo.java
@@ -39,8 +39,9 @@ public class LongCPInfo extends ConstantCPInfo {
* @exception IOException if there is a problem reading the entry from
* the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
- setValue(new Long(cpStream.readLong()));
+ setValue(Long.valueOf(cpStream.readLong()));
}
/**
@@ -48,9 +49,9 @@ public class LongCPInfo extends ConstantCPInfo {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
return "Long Constant Pool Entry: " + getValue();
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodHandleCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodHandleCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodHandleCPInfo.java
index e11e3aa..e304d41 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodHandleCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodHandleCPInfo.java
@@ -36,22 +36,23 @@ public class MethodHandleCPInfo extends ConstantPoolEntry {
* signature of the method
*/
private int nameAndTypeIndex;
+
public enum ReferenceKind {
- REF_getField(1),
- REF_getStatic(2),
- REF_putField(3),
- REF_putStatic(4),
- REF_invokeVirtual(5),
- REF_invokeStatic(6),
- REF_invokeSpecial(7),
- REF_newInvokeSpecial(8),
- REF_invokeInterface(9);
- private final int referenceKind;
- ReferenceKind(int referenceKind) {
- this.referenceKind = referenceKind;
- }
+ REF_getField,
+ REF_getStatic,
+ REF_putField,
+ REF_putStatic,
+ REF_invokeVirtual,
+ REF_invokeStatic,
+ REF_invokeSpecial,
+ REF_newInvokeSpecial,
+ REF_invokeInterface;
+ public int value() {
+ return ordinal() + 1;
+ }
}
+
/** Constructor. */
public MethodHandleCPInfo() {
super(CONSTANT_METHODHANDLE, 1);
@@ -65,9 +66,9 @@ public class MethodHandleCPInfo extends ConstantPoolEntry {
* @exception java.io.IOException if there is a problem reading the entry from
* the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
referenceKind = ReferenceKind.values()[cpStream.readUnsignedByte() - 1];
-
referenceIndex = cpStream.readUnsignedShort();
}
@@ -76,17 +77,13 @@ public class MethodHandleCPInfo extends ConstantPoolEntry {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
- String value;
-
if (isResolved()) {
- value = "MethodHandle : " + reference.toString();
- } else {
- value = "MethodHandle : Reference kind = " + referenceKind
- + "Reference index = " + referenceIndex;
+ return "MethodHandle : " + reference.toString();
}
-
- return value;
+ return "MethodHandle : Reference kind = " + referenceKind
+ + "Reference index = " + referenceIndex;
}
/**
@@ -96,12 +93,11 @@ public class MethodHandleCPInfo extends ConstantPoolEntry {
* @param constantPool the constant pool of which this entry is a member
* and against which this entry is to be resolved.
*/
+ @Override
public void resolve(ConstantPool constantPool) {
reference = constantPool.getEntry(referenceIndex);
reference.resolve(constantPool);
super.resolve(constantPool);
}
-
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodRefCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodRefCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodRefCPInfo.java
index 6b33521..b90169f 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodRefCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodRefCPInfo.java
@@ -52,6 +52,7 @@ public class MethodRefCPInfo extends ConstantPoolEntry {
* @exception IOException if there is a problem reading the entry from
* the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
classIndex = cpStream.readUnsignedShort();
nameAndTypeIndex = cpStream.readUnsignedShort();
@@ -62,18 +63,14 @@ public class MethodRefCPInfo extends ConstantPoolEntry {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
- String value;
-
if (isResolved()) {
- value = "Method : Class = " + methodClassName + ", name = "
- + methodName + ", type = " + methodType;
- } else {
- value = "Method : Class index = " + classIndex
- + ", name and type index = " + nameAndTypeIndex;
+ return "Method : Class = " + methodClassName + ", name = "
+ + methodName + ", type = " + methodType;
}
-
- return value;
+ return "Method : Class index = " + classIndex
+ + ", name and type index = " + nameAndTypeIndex;
}
/**
@@ -83,6 +80,7 @@ public class MethodRefCPInfo extends ConstantPoolEntry {
* @param constantPool the constant pool of which this entry is a member
* and against which this entry is to be resolved.
*/
+ @Override
public void resolve(ConstantPool constantPool) {
ClassCPInfo methodClass
= (ClassCPInfo) constantPool.getEntry(classIndex);
@@ -130,4 +128,3 @@ public class MethodRefCPInfo extends ConstantPoolEntry {
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodTypeCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodTypeCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodTypeCPInfo.java
index d3c35ce..7b6f9a6 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodTypeCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/MethodTypeCPInfo.java
@@ -30,6 +30,7 @@ public class MethodTypeCPInfo extends ConstantCPInfo {
private int methodDescriptorIndex;
/** the value of the method descriptor pointed to */
private String methodDescriptor;
+
/** Constructor. */
public MethodTypeCPInfo() {
super(CONSTANT_METHODTYPE, 1);
@@ -63,6 +64,7 @@ public class MethodTypeCPInfo extends ConstantCPInfo {
methodDescriptor = methodClass.getValue();
super.resolve(constantPool);
}
+
/**
* Print a readable version of the constant pool entry.
*
@@ -70,13 +72,10 @@ public class MethodTypeCPInfo extends ConstantCPInfo {
*/
@Override
public String toString() {
- if (!isResolved()) {
- return "MethodDescriptorIndex: " + methodDescriptorIndex;
- } else {
+ if (isResolved()) {
return "MethodDescriptor: " + methodDescriptor;
-
}
+ return "MethodDescriptorIndex: " + methodDescriptorIndex;
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/NameAndTypeCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/NameAndTypeCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/NameAndTypeCPInfo.java
index 47f454d..761808b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/NameAndTypeCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/NameAndTypeCPInfo.java
@@ -25,6 +25,20 @@ import java.io.IOException;
*
*/
public class NameAndTypeCPInfo extends ConstantPoolEntry {
+ /** the name component of this entry */
+ private String name;
+ /** the type component of this entry */
+ private String type;
+ /**
+ * the index into the constant pool at which the name component's string
+ * value is stored
+ */
+ private int nameIndex;
+ /**
+ * the index into the constant pool where the type descriptor string is
+ * stored.
+ */
+ private int descriptorIndex;
/** Constructor. */
public NameAndTypeCPInfo() {
@@ -39,6 +53,7 @@ public class NameAndTypeCPInfo extends ConstantPoolEntry {
* @exception IOException if there is a problem reading the entry from
* the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
nameIndex = cpStream.readUnsignedShort();
descriptorIndex = cpStream.readUnsignedShort();
@@ -49,17 +64,13 @@ public class NameAndTypeCPInfo extends ConstantPoolEntry {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
- String value;
-
if (isResolved()) {
- value = "Name = " + name + ", type = " + type;
- } else {
- value = "Name index = " + nameIndex
- + ", descriptor index = " + descriptorIndex;
+ return "Name = " + name + ", type = " + type;
}
-
- return value;
+ return "Name index = " + nameIndex + ", descriptor index = "
+ + descriptorIndex;
}
/**
@@ -69,6 +80,7 @@ public class NameAndTypeCPInfo extends ConstantPoolEntry {
* @param constantPool the constant pool of which this entry is a member
* and against which this entry is to be resolved.
*/
+ @Override
public void resolve(ConstantPool constantPool) {
name = ((Utf8CPInfo) constantPool.getEntry(nameIndex)).getValue();
type = ((Utf8CPInfo) constantPool.getEntry(descriptorIndex)).getValue();
@@ -94,19 +106,4 @@ public class NameAndTypeCPInfo extends ConstantPoolEntry {
return type;
}
- /** the name component of this entry */
- private String name;
- /** the type component of this entry */
- private String type;
- /**
- * the index into the constant pool at which the name component's string
- * value is stored
- */
- private int nameIndex;
- /**
- * the index into the constant pool where the type descriptor string is
- * stored.
- */
- private int descriptorIndex;
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/StringCPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/StringCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/StringCPInfo.java
index bc9ee24..7503403 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/StringCPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/StringCPInfo.java
@@ -26,6 +26,8 @@ import java.io.IOException;
*
*/
public class StringCPInfo extends ConstantCPInfo {
+ /** the index into the constant pool containing the string's content */
+ private int index;
/** Constructor. */
public StringCPInfo() {
@@ -40,9 +42,9 @@ public class StringCPInfo extends ConstantCPInfo {
* @exception IOException if there is a problem reading the entry from
* the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
index = cpStream.readUnsignedShort();
-
setValue("unresolved");
}
@@ -51,6 +53,7 @@ public class StringCPInfo extends ConstantCPInfo {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
return "String Constant Pool Entry for "
+ getValue() + "[" + index + "]";
@@ -63,12 +66,11 @@ public class StringCPInfo extends ConstantCPInfo {
* @param constantPool the constant pool of which this entry is a member
* and against which this entry is to be resolved.
*/
+ @Override
public void resolve(ConstantPool constantPool) {
setValue(((Utf8CPInfo) constantPool.getEntry(index)).getValue());
super.resolve(constantPool);
}
- /** the index into the constant pool containing the string's content */
- private int index;
}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/Utf8CPInfo.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/Utf8CPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/Utf8CPInfo.java
index 5471ccd..724bc9f 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/Utf8CPInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/Utf8CPInfo.java
@@ -41,6 +41,7 @@ public class Utf8CPInfo extends ConstantPoolEntry {
* @exception IOException if there is a problem reading the entry from
* the stream.
*/
+ @Override
public void read(DataInputStream cpStream) throws IOException {
value = cpStream.readUTF();
}
@@ -50,6 +51,7 @@ public class Utf8CPInfo extends ConstantPoolEntry {
*
* @return the string representation of this constant pool entry.
*/
+ @Override
public String toString() {
return "UTF8 Value = " + value;
}
@@ -64,4 +66,3 @@ public class Utf8CPInfo extends ConstantPoolEntry {
}
}
-
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandDeploymentTool.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandDeploymentTool.java
index 4eefaeb..c1e5799 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandDeploymentTool.java
@@ -26,16 +26,18 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Vector;
-
+import java.util.List;
+import java.util.Map;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.ExecTask;
import org.apache.tools.ant.taskdefs.Execute;
import org.apache.tools.ant.taskdefs.ExecuteStreamHandler;
import org.apache.tools.ant.taskdefs.Java;
+import org.apache.tools.ant.taskdefs.optional.ejb.EjbJar.DTDLocation;
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.Path;
@@ -78,19 +80,18 @@ import org.apache.tools.ant.types.Path;
public class BorlandDeploymentTool extends GenericDeploymentTool
implements ExecuteStreamHandler {
/** Borland 1.1 ejb id */
- public static final String PUBLICID_BORLAND_EJB
- = "-//Inprise Corporation//DTD Enterprise JavaBeans 1.1//EN";
+ public static final String PUBLICID_BORLAND_EJB =
+ "-//Inprise Corporation//DTD Enterprise JavaBeans 1.1//EN";
- protected static final String DEFAULT_BAS45_EJB11_DTD_LOCATION
- = "/com/inprise/j2ee/xml/dtds/ejb-jar.dtd";
+ protected static final String DEFAULT_BAS45_EJB11_DTD_LOCATION =
+ "/com/inprise/j2ee/xml/dtds/ejb-jar.dtd";
- protected static final String DEFAULT_BAS_DTD_LOCATION
- = "/com/inprise/j2ee/xml/dtds/ejb-inprise.dtd";
+ protected static final String DEFAULT_BAS_DTD_LOCATION =
+ "/com/inprise/j2ee/xml/dtds/ejb-inprise.dtd";
protected static final String BAS_DD = "ejb-inprise.xml";
protected static final String BES_DD = "ejb-borland.xml";
-
/** Java2iiop executable **/
protected static final String JAVA2IIOP = "java2iiop";
@@ -114,13 +115,13 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
/** Borland Enterprise Server = version 5 */
static final int BES = 5;
+
/** Borland Application Server or Inprise Application Server = version 4 */
static final int BAS = 4;
/** borland appserver version 4 or 5 */
private int version = BAS;
-
/**
* Instance variable that determines whether it is necessary to verify the
* produced jar
@@ -128,7 +129,7 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
private boolean verify = true;
private String verifyArgs = "";
- private Hashtable genfiles = new Hashtable();
+ private Map<String, File> genfiles = new Hashtable<>();
/**
* set the debug mode for java2iiop (default false)
@@ -146,7 +147,6 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
this.verify = verify;
}
-
/**
* Setter used to store the suffix for the generated borland jar file.
* @param inString the string to use as the suffix.
@@ -155,7 +155,6 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
this.jarSuffix = inString;
}
-
/**
* sets some additional args to send to verify command
* @param args additional command line parameters
@@ -173,7 +172,6 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
this.borlandDTD = inString;
}
-
/**
* setter used to store whether the task will include the generate client task.
* (see : BorlandGenerateClient task)
@@ -200,7 +198,6 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
this.java2iioparams = params;
}
-
/**
* Get the borland descriptor handler.
* @param srcDir the source directory.
@@ -209,8 +206,9 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
protected DescriptorHandler getBorlandDescriptorHandler(final File srcDir) {
DescriptorHandler handler =
new DescriptorHandler(getTask(), srcDir) {
+ @Override
protected void processElement() {
- if (currentElement.equals("type-storage")) {
+ if ("type-storage".equals(currentElement)) {
// Get the filename of vendor specific descriptor
String fileNameWithMETA = currentText;
//trim the META_INF\ off of the file name
@@ -226,8 +224,7 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
handler.registerDTD(PUBLICID_BORLAND_EJB,
borlandDTD == null ? DEFAULT_BAS_DTD_LOCATION : borlandDTD);
- for (Iterator i = getConfig().dtdLocations.iterator(); i.hasNext();) {
- EjbJar.DTDLocation dtdLocation = (EjbJar.DTDLocation) i.next();
+ for (DTDLocation dtdLocation : getConfig().dtdLocations) {
handler.registerDTD(dtdLocation.getPublicId(), dtdLocation.getLocation());
}
return handler;
@@ -239,14 +236,15 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
* @param ejbFiles the map to add the files to.
* @param ddPrefix the prefix to use.
*/
- protected void addVendorFiles(Hashtable ejbFiles, String ddPrefix) {
+ @Override
+ protected void addVendorFiles(Hashtable<String, File> ejbFiles, String ddPrefix) {
//choose the right vendor DD
if (!(version == BES || version == BAS)) {
throw new BuildException("version " + version + " is not supported");
}
- String dd = (version == BES ? BES_DD : BAS_DD);
+ String dd = (version == BES) ? BES_DD : BAS_DD;
log("vendor file : " + ddPrefix + dd, Project.MSG_DEBUG);
@@ -266,6 +264,7 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
* Get the vendor specific name of the Jar that will be output. The modification date
* of this jar will be checked against the dependent bean classes.
*/
+ @Override
File getVendorOutputJarFile(String baseName) {
return new File(getDestDir(), baseName + jarSuffix);
}
@@ -294,8 +293,7 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
private void verifyBorlandJarV5(File sourceJar) {
log("verify BES " + sourceJar, Project.MSG_INFO);
try {
- ExecTask execTask = null;
- execTask = new ExecTask(getTask());
+ ExecTask execTask = new ExecTask(getTask());
execTask.setDir(new File("."));
execTask.setExecutable("iastool");
//classpath
@@ -315,9 +313,7 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
execTask.execute();
} catch (Exception e) {
// Have to catch this because of the semantics of calling main()
- String msg = "Exception while calling generateclient Details: "
- + e.toString();
- throw new BuildException(msg, e);
+ throw new BuildException("Exception while calling generateclient Details: ", e);
}
}
@@ -354,7 +350,6 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
}
}
-
/**
* Generate the client jar corresponding to the jar file passed as parameter
* the method uses the BorlandGenerateClient task.
@@ -364,7 +359,7 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
getTask().getProject().addTaskDefinition("internal_bas_generateclient",
org.apache.tools.ant.taskdefs.optional.ejb.BorlandGenerateClient.class);
- org.apache.tools.ant.taskdefs.optional.ejb.BorlandGenerateClient gentask = null;
+ BorlandGenerateClient gentask;
log("generate client for " + sourceJar, Project.MSG_INFO);
try {
Project project = getTask().getProject();
@@ -381,9 +376,7 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
gentask.execute();
} catch (Exception e) {
//TO DO : delete the file if it is not a valid file.
- String msg = "Exception while calling " + VERIFY + " Details: "
- + e.toString();
- throw new BuildException(msg, e);
+ throw new BuildException("Exception while calling " + VERIFY, e);
}
}
@@ -392,10 +385,8 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
* Add all the generate class file into the ejb files
* @param ithomes : iterator on home class
*/
- private void buildBorlandStubs(Iterator ithomes) {
- Execute execTask = null;
-
- execTask = new Execute(this);
+ private void buildBorlandStubs(Collection<String> ithomes) {
+ Execute execTask = new Execute(this);
Project project = getTask().getProject();
execTask.setAntRun(project);
execTask.setWorkingDirectory(project.getBaseDir());
@@ -419,16 +410,14 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
commandline.createArgument().setLine(java2iioparams);
}
-
//root dir
commandline.createArgument().setValue("-root_dir");
commandline.createArgument().setValue(getConfig().srcDir.getAbsolutePath());
//compiling order
commandline.createArgument().setValue("-compile");
//add the home class
- while (ithomes.hasNext()) {
- commandline.createArgument().setValue(ithomes.next().toString());
- }
+ ithomes.stream().map(Object::toString)
+ .forEach(v -> commandline.createArgument().setValue(v));
try {
log("Calling java2iiop", Project.MSG_VERBOSE);
@@ -436,11 +425,11 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
execTask.setCommandline(commandline.getCommandline());
int result = execTask.execute();
if (Execute.isFailure(result)) {
- String msg = "Failed executing java2iiop (ret code is "
- + result + ")";
- throw new BuildException(msg, getTask().getLocation());
+ throw new BuildException(
+ "Failed executing java2iiop (ret code is " + result + ")",
+ getTask().getLocation());
}
- } catch (java.io.IOException e) {
+ } catch (IOException e) {
log("java2iiop exception :" + e.getMessage(), Project.MSG_ERR);
throw new BuildException(e, getTask().getLocation());
}
@@ -456,13 +445,13 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
* @param publicId the id to use.
* @throws BuildException if there is an error.
*/
- protected void writeJar(String baseName, File jarFile, Hashtable files, String publicId)
+ @Override
+ protected void writeJar(String baseName, File jarFile, Hashtable<String, File> files, String publicId)
throws BuildException {
//build the home classes list.
- Vector homes = new Vector();
- Iterator it = files.keySet().iterator();
- while (it.hasNext()) {
- String clazz = (String) it.next();
+ List<String> homes = new ArrayList<>();
+
+ for (String clazz : files.keySet()) {
if (clazz.endsWith("Home.class")) {
//remove .class extension
String home = toClass(clazz);
@@ -471,7 +460,7 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
}
}
- buildBorlandStubs(homes.iterator());
+ buildBorlandStubs(homes);
//add the gen files to the collection
files.putAll(genfiles);
@@ -494,9 +483,8 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
*/
private String toClass(String filename) {
//remove the .class
- String classname = filename.substring(0, filename.lastIndexOf(".class"));
- classname = classname.replace('\\', '.');
- return classname;
+ return filename.substring(0, filename.lastIndexOf(".class"))
+ .replace('\\', '.').replace('/', '.');
}
/**
@@ -505,28 +493,35 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
*/
private String toClassFile(String filename) {
//remove the .class
- String classfile = filename.substring(0, filename.lastIndexOf(".java"));
- classfile = classfile + ".class";
- return classfile;
+ return filename.replaceFirst("\\.java$", ".class");
}
// implementation of org.apache.tools.ant.taskdefs.ExecuteStreamHandler interface
/** {@inheritDoc}. */
- public void start() throws IOException { }
+ @Override
+ public void start() throws IOException {
+ }
+
/** {@inheritDoc}. */
- public void stop() { }
+ @Override
+ public void stop() {
+ }
+
/** {@inheritDoc}. */
- public void setProcessInputStream(OutputStream param1) throws IOException { }
+ @Override
+ public void setProcessInputStream(OutputStream param1) throws IOException {
+ }
/**
* Set the output stream of the process.
* @param is the input stream.
* @throws IOException if there is an error.
*/
+ @Override
public void setProcessOutputStream(InputStream is) throws IOException {
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(is));
+ try (BufferedReader reader =
+ new BufferedReader(new InputStreamReader(is))) {
String javafile;
while ((javafile = reader.readLine()) != null) {
if (javafile.endsWith(".java")) {
@@ -536,10 +531,8 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
genfiles.put(key, new File(classfile));
}
}
- reader.close();
} catch (Exception e) {
- String msg = "Exception while parsing java2iiop output. Details: " + e.toString();
- throw new BuildException(msg, e);
+ throw new BuildException("Exception while parsing java2iiop output.", e);
}
}
@@ -548,6 +541,7 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
* @param is the input stream.
* @throws IOException if there is an error.
*/
+ @Override
public void setProcessErrorStream(InputStream is) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String s = reader.readLine();
@@ -556,4 +550,3 @@ public class BorlandDeploymentTool extends GenericDeploymentTool
}
}
}
-