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:17 UTC
[17/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/ejb/InnerClassFilenameFilter.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/InnerClassFilenameFilter.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/InnerClassFilenameFilter.java
index e92d9879..b27eaa3 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/InnerClassFilenameFilter.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/InnerClassFilenameFilter.java
@@ -44,11 +44,9 @@ public class InnerClassFilenameFilter implements FilenameFilter {
* @param filename the filename to filter on.
* @return true if the filename is an inner class of the base class.
*/
+ @Override
public boolean accept(File dir, String filename) {
- if ((filename.lastIndexOf(".") != filename.lastIndexOf(".class"))
- || (filename.indexOf(baseClassName + "$") != 0)) {
- return false;
- }
- return true;
+ return filename.lastIndexOf('.') == filename.lastIndexOf(".class")
+ && filename.indexOf(baseClassName + "$") == 0;
}
}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JbossDeploymentTool.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JbossDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JbossDeploymentTool.java
index 79f4574..c3a48ec 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JbossDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JbossDeploymentTool.java
@@ -53,14 +53,14 @@ public class JbossDeploymentTool extends GenericDeploymentTool {
* @param ejbFiles the hashtable of files to populate.
* @param ddPrefix the prefix to use.
*/
- protected void addVendorFiles(Hashtable ejbFiles, String ddPrefix) {
+ @Override
+ protected void addVendorFiles(Hashtable<String, File> ejbFiles, String ddPrefix) {
File jbossDD = new File(getConfig().descriptorDir, ddPrefix + JBOSS_DD);
if (jbossDD.exists()) {
ejbFiles.put(META_DIR + JBOSS_DD, jbossDD);
} else {
- log("Unable to locate jboss deployment descriptor. "
- + "It was expected to be in " + jbossDD.getPath(),
- Project.MSG_WARN);
+ log("Unable to locate jboss deployment descriptor. It was expected to be in "
+ + jbossDD.getPath(), Project.MSG_WARN);
return;
}
String descriptorFileName = JBOSS_CMP10D;
@@ -73,8 +73,7 @@ public class JbossDeploymentTool extends GenericDeploymentTool {
if (jbossCMPD.exists()) {
ejbFiles.put(META_DIR + descriptorFileName, jbossCMPD);
} else {
- log("Unable to locate jboss cmp descriptor. "
- + "It was expected to be in "
+ log("Unable to locate jboss cmp descriptor. It was expected to be in "
+ jbossCMPD.getPath(), Project.MSG_VERBOSE);
return;
}
@@ -84,15 +83,15 @@ public class JbossDeploymentTool 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) {
if (getDestDir() == null && getParent().getDestdir() == null) {
throw new BuildException("DestDir not specified");
}
if (getDestDir() == null) {
return new File(getParent().getDestdir(), baseName + jarSuffix);
- } else {
- return new File(getDestDir(), baseName + jarSuffix);
}
+ return new File(getDestDir(), baseName + jarSuffix);
}
/**
@@ -102,6 +101,7 @@ public class JbossDeploymentTool extends GenericDeploymentTool {
* valid
* @since ant 1.6
*/
+ @Override
public void validateConfigured() throws BuildException {
}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java
index 0d9bd13..71c0860 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java
@@ -20,9 +20,9 @@ package org.apache.tools.ant.taskdefs.optional.ejb;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
-import java.util.Enumeration;
+import java.util.Arrays;
import java.util.Hashtable;
-
+import java.util.List;
import javax.xml.parsers.SAXParser;
import org.apache.tools.ant.AntClassLoader;
@@ -330,6 +330,7 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
/* ------------- */
/** {@inheritDoc}. */
+ @Override
public void processDescriptor(String aDescriptorName, SAXParser saxParser) {
descriptorName = aDescriptorName;
@@ -347,7 +348,8 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
}
/** {@inheritDoc}. */
- protected void writeJar(String baseName, File jarfile, Hashtable ejbFiles, String publicId)
+ @Override
+ protected void writeJar(String baseName, File jarfile, Hashtable<String, File> ejbFiles, String publicId)
throws BuildException {
// create the generic jar first
@@ -367,10 +369,11 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
}
/** {@inheritDoc}. */
- protected void addVendorFiles(Hashtable ejbFiles, String ddPrefix) {
+ @Override
+ protected void addVendorFiles(Hashtable<String, File> ejbFiles, String ddPrefix) {
- // JOnAS-specific descriptor deployment
- jonasDescriptorName = getJonasDescriptorName();
+ // JOnAS-specific descriptor deployment
+ jonasDescriptorName = getJonasDescriptorName();
File jonasDD = new File(getConfig().descriptorDir, jonasDescriptorName);
if (jonasDD.exists()) {
@@ -382,6 +385,7 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
}
/** {@inheritDoc}. */
+ @Override
protected File getVendorOutputJarFile(String baseName) {
return new File(getDestDir(), baseName + suffix);
}
@@ -459,6 +463,7 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
}
/** {@inheritDoc}. */
+ @Override
protected String getJarBaseName(String descriptorFileName) {
String baseName = null;
@@ -500,6 +505,7 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
}
/** {@inheritDoc}. */
+ @Override
protected void registerKnownDTDs(DescriptorHandler handler) {
handler.registerDTD(EJB_JAR_1_1_PUBLIC_ID,
jonasroot + File.separator + "xml" + File.separator + EJB_JAR_1_1_DTD);
@@ -519,15 +525,12 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
* @param ejbFiles the hashtable.
*/
private void addGenICGeneratedFiles(
- File genericJarFile, Hashtable ejbFiles) {
- Java genicTask = null; // GenIC task
- String genicClass = null; // GenIC class (3 are supported for various
- // versions
+ File genericJarFile, Hashtable<String, File> ejbFiles) {
if (nogenic) {
return;
}
- genicTask = new Java(getTask());
+ Java genicTask = new Java(getTask()); // GenIC task
genicTask.setTaskName("genic");
genicTask.setFork(true);
@@ -554,13 +557,8 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
genicTask.createArg().setValue("-d");
genicTask.createArg().setFile(outputdir);
- // work around a bug of GenIC 2.5
- String key;
- File f;
- Enumeration keys = ejbFiles.keys();
- while (keys.hasMoreElements()) {
- key = (String) keys.nextElement();
- f = new File(outputdir + File.separator + key);
+ for (String key : ejbFiles.keySet()) {
+ File f = new File(outputdir + File.separator + key);
f.getParentFile().mkdirs();
}
log("Worked around a bug of GenIC 2.5.", Project.MSG_VERBOSE);
@@ -582,15 +580,18 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
log("Using classpath: " + classpath.toString(), Project.MSG_VERBOSE);
genicTask.setClasspath(classpath);
+ String genicClass; // GenIC class (3 are supported for various
+ // versions
+ // work around a bug of GenIC 2.5
+
// class name (search in the classpath provided for the ejbjar element)
genicClass = getGenicClassName(classpath);
if (genicClass == null) {
log("Cannot find GenIC class in classpath.", Project.MSG_ERR);
throw new BuildException("GenIC class not found, please check the classpath.");
- } else {
- log("Using '" + genicClass + "' GenIC class." , Project.MSG_VERBOSE);
- genicTask.setClassname(genicClass);
- }
+ }
+ log("Using '" + genicClass + "' GenIC class." , Project.MSG_VERBOSE);
+ genicTask.setClassname(genicClass);
// keepgenerated
if (keepgenerated) {
@@ -731,33 +732,38 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
* @param saxParser not used.
* @throws BuildException if there is an error.
*/
+ @Override
protected void checkConfiguration(String descriptorFileName,
SAXParser saxParser) throws BuildException {
// jonasroot
if (jonasroot == null) {
- throw new BuildException("The jonasroot attribut is not set.");
- } else if (!jonasroot.isDirectory()) {
- throw new BuildException("The jonasroot attribut '" + jonasroot
- + "' is not a valid directory.");
+ throw new BuildException("The jonasroot attribute is not set.");
+ }
+ if (!jonasroot.isDirectory()) {
+ throw new BuildException(
+ "The jonasroot attribute '%s' is not a valid directory.",
+ jonasroot);
}
// orb
- if (orb != null && !orb.equals(RMI_ORB) && !orb.equals(JEREMIE_ORB)
- && !orb.equals(DAVID_ORB)) {
- throw new BuildException("The orb attribut '" + orb
- + "' is not valid (must be either "
- + RMI_ORB + ", " + JEREMIE_ORB + " or " + DAVID_ORB + ").");
+ final List<String> validOrbs =
+ Arrays.asList(RMI_ORB, JEREMIE_ORB, DAVID_ORB);
+
+ if (orb != null && !validOrbs.contains(orb)) {
+ throw new BuildException(
+ "The orb attribute '%s' is not valid (must be one of %s.", orb,
+ validOrbs);
}
// additionalargs
- if (additionalargs != null && additionalargs.equals("")) {
- throw new BuildException("Empty additionalargs attribut.");
+ if (additionalargs != null && additionalargs.isEmpty()) {
+ throw new BuildException("Empty additionalargs attribute.");
}
// javac
- if (javac != null && javac.equals("")) {
- throw new BuildException("Empty javac attribut.");
+ if (javac != null && javac.isEmpty()) {
+ throw new BuildException("Empty javac attribute.");
}
}
@@ -776,17 +782,15 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
}
/**
- * Delete a file. If the file is a directory, delete recursivly all the
+ * Delete a file. If the file is a directory, delete recursively all the
* files inside.
*
* @param aFile file to delete.
*/
private void deleteAllFiles(File aFile) {
if (aFile.isDirectory()) {
- File[] someFiles = aFile.listFiles();
-
- for (int i = 0; i < someFiles.length; i++) {
- deleteAllFiles(someFiles[i]);
+ for (File child : aFile.listFiles()) {
+ deleteAllFiles(child);
}
}
aFile.delete();
@@ -800,22 +804,19 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
* @param rootDir the current sub-directory to scan.
* @param hashtable the hashtable where to add the files.
*/
- private void addAllFiles(File file, String rootDir, Hashtable hashtable) {
-
+ private void addAllFiles(File file, String rootDir, Hashtable<String, File> hashtable) {
if (!file.exists()) {
throw new IllegalArgumentException();
}
-
String newRootDir;
if (file.isDirectory()) {
- File[] files = file.listFiles();
- for (int i = 0; i < files.length; i++) {
- if (rootDir.length() > 0) {
- newRootDir = rootDir + File.separator + files[i].getName();
+ for (File child : file.listFiles()) {
+ if (rootDir.isEmpty()) {
+ newRootDir = child.getName();
} else {
- newRootDir = files[i].getName();
+ newRootDir = rootDir + File.separator + child.getName();
}
- addAllFiles(files[i], newRootDir, hashtable);
+ addAllFiles(child, newRootDir, hashtable);
}
} else {
hashtable.put(rootDir, file);
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java
index cc1bd90..4b0116d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java
@@ -23,7 +23,7 @@ import java.io.InputStream;
import java.nio.file.Files;
import java.util.Enumeration;
import java.util.Hashtable;
-import java.util.Iterator;
+import java.util.List;
import java.util.Vector;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
@@ -36,7 +36,9 @@ import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Java;
+import org.apache.tools.ant.taskdefs.optional.ejb.EjbJar.DTDLocation;
import org.apache.tools.ant.types.Environment;
+import org.apache.tools.ant.types.Environment.Variable;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.util.FileUtils;
import org.xml.sax.InputSource;
@@ -140,7 +142,7 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
private Path wlClasspath = null;
/** System properties for the JVM. */
- private Vector sysprops = new Vector();
+ private List<Variable> sysprops = new Vector<>();
/**
* The weblogic.StdoutSeverityLevel to use when running the JVM that
@@ -159,7 +161,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
sysprops.add(sysp);
}
-
/**
* Get the classpath to the weblogic classpaths.
* @return the classpath to configure.
@@ -181,7 +182,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.outputDir = outputDir;
}
-
/**
* Optional classpath to WL6.0.
* Weblogic 6.0 will give a warning if the home and remote interfaces
@@ -196,7 +196,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.wlClasspath = wlClasspath;
}
-
/**
* The compiler (switch <code>-compiler</code>) to use; optional.
* This allows for the selection of a different compiler
@@ -213,7 +212,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.compiler = compiler;
}
-
/**
* Set the rebuild flag to false to only update changes in the jar rather
* than rerunning ejbc; optional, default true.
@@ -229,7 +227,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.alwaysRebuild = rebuild;
}
-
/**
* Sets the weblogic.StdoutSeverityLevel to use when running the JVM that
* executes ejbc; optional. Set to 16 to avoid the warnings about EJB Home and
@@ -240,7 +237,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.jvmDebugLevel = jvmDebugLevel;
}
-
/**
* Get the debug level.
* @return the jvm debug level (may be null).
@@ -249,8 +245,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
return jvmDebugLevel;
}
-
-
/**
* Setter used to store the suffix for the generated weblogic jar file.
*
@@ -260,7 +254,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.jarSuffix = inString;
}
-
/**
* controls whether the generic file used as input to
* ejbc is retained; defaults to false
@@ -271,7 +264,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.keepGeneric = inValue;
}
-
/**
* Controls whether weblogic will keep the generated Java
* files used to build the class files added to the
@@ -280,10 +272,9 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
* @param inValue either 'true' or 'false'
*/
public void setKeepgenerated(String inValue) {
- this.keepgenerated = Boolean.valueOf(inValue).booleanValue();
+ this.keepgenerated = Boolean.parseBoolean(inValue);
}
-
/**
* Any optional extra arguments pass to the weblogic.ejbc
* tool.
@@ -293,7 +284,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.additionalArgs = args;
}
-
/**
* Set any additional arguments to pass to the weblogic JVM; optional.
* @param args the arguments to be passed to the JVM
@@ -315,7 +305,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.ejbcClass = ejbcClass;
}
-
/**
* Get the ejbc compiler class.
* @return the name of the ejbc compiler class.
@@ -324,7 +313,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
return ejbcClass;
}
-
/**
* <b>Deprecated</b>. Defines the location of the ejb-jar DTD in
* the weblogic class hierarchy. Should not be needed, and the
@@ -336,7 +324,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
setEJBdtd(inString);
}
-
/**
* <b>Deprecated</b>. Defines the location of weblogic DTD in
* the weblogic class hierarchy. Should not be needed, and the
@@ -348,7 +335,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.weblogicDTD = inString;
}
-
/**
* <b>Deprecated</b>. Defines the location of Sun's EJB DTD in
* the weblogic class hierarchy. Should not be needed, and the
@@ -360,7 +346,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.ejb11DTD = inString;
}
-
/**
* Set the value of the oldCMP scheme. This is an antonym for newCMP
* @ant.attribute ignore="true'
@@ -370,7 +355,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.newCMP = !oldCMP;
}
-
/**
* If this is set to true, the new method for locating
* CMP descriptors will be used; optional, default false.
@@ -387,7 +371,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.newCMP = newCMP;
}
-
/**
* Do not EJBC the jar after it has been put together;
* optional, default false
@@ -397,11 +380,11 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
this.noEJBC = noEJBC;
}
-
/**
* Register the DTDs.
* @param handler the handler to use.
*/
+ @Override
protected void registerKnownDTDs(DescriptorHandler handler) {
// register all the known DTDs
handler.registerDTD(PUBLICID_EJB11, DEFAULT_WL51_EJB11_DTD_LOCATION);
@@ -410,7 +393,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
handler.registerDTD(PUBLICID_EJB20, DEFAULT_WL60_EJB20_DTD_LOCATION);
}
-
/**
* Get the weblogic descriptor handler.
* @param srcDir the source directory.
@@ -419,8 +401,9 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
protected DescriptorHandler getWeblogicDescriptorHandler(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
@@ -441,44 +424,39 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
handler.registerDTD(PUBLICID_WEBLOGIC_EJB510, weblogicDTD);
handler.registerDTD(PUBLICID_WEBLOGIC_EJB600, weblogicDTD);
- 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;
}
-
/**
* Add any vendor specific files which should be included in the EJB Jar.
* @param ejbFiles the hash table to be populated.
* @param ddPrefix the prefix to use.
*/
- protected void addVendorFiles(Hashtable ejbFiles, String ddPrefix) {
+ @Override
+ protected void addVendorFiles(Hashtable<String, File> ejbFiles, String ddPrefix) {
File weblogicDD = new File(getConfig().descriptorDir, ddPrefix + WL_DD);
if (weblogicDD.exists()) {
ejbFiles.put(META_DIR + WL_DD,
weblogicDD);
} else {
- log("Unable to locate weblogic deployment descriptor. "
- + "It was expected to be in "
+ log("Unable to locate weblogic deployment descriptor. It was expected to be in "
+ weblogicDD.getPath(), Project.MSG_WARN);
return;
}
if (!newCMP) {
log("The old method for locating CMP files has been DEPRECATED.", Project.MSG_VERBOSE);
- log("Please adjust your weblogic descriptor and set "
- + "newCMP=\"true\" to use the new CMP descriptor "
- + "inclusion mechanism. ", Project.MSG_VERBOSE);
+ log("Please adjust your weblogic descriptor and set newCMP=\"true\" to use the new CMP descriptor inclusion mechanism. ",
+ Project.MSG_VERBOSE);
// The the weblogic cmp deployment descriptor
File weblogicCMPDD = new File(getConfig().descriptorDir, ddPrefix + WL_CMP_DD);
if (weblogicCMPDD.exists()) {
- ejbFiles.put(META_DIR + WL_CMP_DD,
- weblogicCMPDD);
+ ejbFiles.put(META_DIR + WL_CMP_DD, weblogicCMPDD);
}
} else {
// now that we have the weblogic descriptor, we parse the file
@@ -486,7 +464,7 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
// this could be the weblogic-cmp-rdbms.xml or any other O/R
// mapping tool descriptors.
try {
- File ejbDescriptor = (File) ejbFiles.get(META_DIR + EJB_DD);
+ File ejbDescriptor = ejbFiles.get(META_DIR + EJB_DD);
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
saxParserFactory.setValidating(true);
@@ -495,36 +473,29 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
DescriptorHandler handler
= getWeblogicDescriptorHandler(ejbDescriptor.getParentFile());
- saxParser.parse(new InputSource(Files.newInputStream(weblogicDD.toPath())),
- handler);
-
- Hashtable ht = handler.getFiles();
- Enumeration e = ht.keys();
-
- while (e.hasMoreElements()) {
- String key = (String) e.nextElement();
-
- ejbFiles.put(key, ht.get(key));
+ try (InputStream in = Files.newInputStream(weblogicDD.toPath())) {
+ saxParser.parse(new InputSource(in), handler);
}
+ handler.getFiles().forEach(ejbFiles::put);
} catch (Exception e) {
- String msg = "Exception while adding Vendor specific files: " + e.toString();
-
- throw new BuildException(msg, e);
+ throw new BuildException(
+ "Exception while adding Vendor specific files: "
+ + e.toString(),
+ e);
}
}
}
-
/**
* 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);
}
-
/**
* Helper method invoked by execute() for each WebLogic jar to be built.
* Encapsulates the logic of constructing a java task for calling
@@ -535,7 +506,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
* jarfile.
*/
private void buildWeblogicJar(File sourceJar, File destJar, String publicId) {
- Java javaTask = null;
if (noEJBC) {
try {
@@ -552,17 +522,11 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
String ejbcClassName = ejbcClass;
try {
- javaTask = new Java(getTask());
+ Java javaTask = new Java(getTask());
javaTask.setTaskName("ejbc");
javaTask.createJvmarg().setLine(additionalJvmArgs);
- if (!(sysprops.isEmpty())) {
- for (Enumeration en = sysprops.elements(); en.hasMoreElements();) {
- Environment.Variable entry
- = (Environment.Variable) en.nextElement();
- javaTask.addSysproperty(entry);
- }
- }
+ sysprops.forEach(javaTask::addSysproperty);
if (getJvmDebugLevel() != null) {
javaTask.createJvmarg().setLine(" -Dweblogic.StdoutSeverityLevel=" + jvmDebugLevel);
@@ -592,20 +556,18 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
String buildCompiler
= getTask().getProject().getProperty("build.compiler");
- if (buildCompiler != null && buildCompiler.equals("jikes")) {
+ if ("jikes".equals(buildCompiler)) {
javaTask.createArg().setValue("-compiler");
javaTask.createArg().setValue("jikes");
}
- } else {
- if (!compiler.equals(DEFAULT_COMPILER)) {
- javaTask.createArg().setValue("-compiler");
- javaTask.createArg().setLine(compiler);
- }
+ } else if (!DEFAULT_COMPILER.equals(compiler)) {
+ javaTask.createArg().setValue("-compiler");
+ javaTask.createArg().setLine(compiler);
}
Path combinedClasspath = getCombinedClasspath();
- if (wlClasspath != null && combinedClasspath != null
- && combinedClasspath.toString().trim().length() > 0) {
+ if (!(wlClasspath == null || combinedClasspath == null
+ || combinedClasspath.toString().trim().isEmpty())) {
javaTask.createArg().setValue("-classpath");
javaTask.createArg().setPath(combinedClasspath);
}
@@ -636,14 +598,11 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
}
} catch (Exception e) {
// Have to catch this because of the semantics of calling main()
- String msg = "Exception while calling " + ejbcClassName
- + ". Details: " + e.toString();
-
- throw new BuildException(msg, e);
+ throw new BuildException("Exception while calling " + ejbcClassName
+ + ". Details: " + e.toString(), e);
}
}
-
/**
* Method used to encapsulate the writing of the JAR file. Iterates over
* the filenames/java.io.Files in the Hashtable stored on the instance
@@ -654,7 +613,8 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
* @param publicId the id to use.
* @throws BuildException if there is a problem.
*/
- protected void writeJar(String baseName, File jarFile, Hashtable files,
+ @Override
+ protected void writeJar(String baseName, File jarFile, Hashtable<String, File> files,
String publicId) throws BuildException {
// need to create a generic jar first.
File genericJarFile = super.getVendorOutputJarFile(baseName);
@@ -671,16 +631,15 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
}
}
-
/**
* Called to validate that the tool parameters have been configured.
* @throws BuildException if there is an error.
*/
+ @Override
public void validateConfigured() throws BuildException {
super.validateConfigured();
}
-
/**
* Helper method to check to see if a weblogic EBJ1.1 jar needs to be
* rebuilt using ejbc. Called from writeJar it sees if the "Bean" classes
@@ -726,35 +685,33 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
genericJar = new JarFile(genericJarFile);
wlJar = new JarFile(weblogicJarFile);
- Hashtable genericEntries = new Hashtable();
- Hashtable wlEntries = new Hashtable();
- Hashtable replaceEntries = new Hashtable();
+ Hashtable<String, JarEntry> genericEntries = new Hashtable<>();
+ Hashtable<String, JarEntry> wlEntries = new Hashtable<>();
+ Hashtable<String, JarEntry> replaceEntries = new Hashtable<>();
//get the list of generic jar entries
- for (Enumeration e = genericJar.entries(); e.hasMoreElements();) {
- JarEntry je = (JarEntry) e.nextElement();
-
+ for (Enumeration<JarEntry> e = genericJar.entries(); e.hasMoreElements();) {
+ JarEntry je = e.nextElement();
genericEntries.put(je.getName().replace('\\', '/'), je);
}
//get the list of weblogic jar entries
- for (Enumeration e = wlJar.entries(); e.hasMoreElements();) {
- JarEntry je = (JarEntry) e.nextElement();
-
+ for (Enumeration<JarEntry> e = wlJar.entries(); e.hasMoreElements();) {
+ JarEntry je = e.nextElement();
wlEntries.put(je.getName(), je);
}
//Cycle Through generic and make sure its in weblogic
genericLoader = getClassLoaderFromJar(genericJarFile);
- for (Enumeration e = genericEntries.keys(); e.hasMoreElements();) {
- String filepath = (String) e.nextElement();
+ for (Enumeration<String> e = genericEntries.keys(); e.hasMoreElements();) {
+ String filepath = e.nextElement();
if (wlEntries.containsKey(filepath)) {
// File name/path match
// Check files see if same
- JarEntry genericEntry = (JarEntry) genericEntries.get(filepath);
- JarEntry wlEntry = (JarEntry) wlEntries.get(filepath);
+ JarEntry genericEntry = genericEntries.get(filepath);
+ JarEntry wlEntry = wlEntries.get(filepath);
if ((genericEntry.getCrc() != wlEntry.getCrc())
|| (genericEntry.getSize() != wlEntry.getSize())) {
@@ -768,7 +725,7 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
classname = classname.substring(0, classname.lastIndexOf(".class"));
- Class genclass = genericLoader.loadClass(classname);
+ Class<?> genclass = genericLoader.loadClass(classname);
if (genclass.isInterface()) {
//Interface changed rebuild jar.
@@ -776,19 +733,17 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
+ " has changed", Project.MSG_VERBOSE);
rebuild = true;
break;
- } else {
- //Object class Changed update it.
- replaceEntries.put(filepath, genericEntry);
- }
- } else {
- // is it the manifest. If so ignore it
- if (!genericEntry.getName().equals("META-INF/MANIFEST.MF")) {
- //File other then class changed rebuild
- log("Non class file " + genericEntry.getName()
- + " has changed", Project.MSG_VERBOSE);
- rebuild = true;
- break;
}
+ //Object class Changed update it.
+ replaceEntries.put(filepath, genericEntry);
+ } else if (!genericEntry.getName()
+ .equals("META-INF/MANIFEST.MF")) {
+ // it is the manifest, so ignore it
+ //File other then class changed rebuild
+ log("Non class file " + genericEntry.getName()
+ + " has changed", Project.MSG_VERBOSE);
+ rebuild = true;
+ break;
}
}
} else {
@@ -812,11 +767,8 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
newJarStream.setLevel(0);
//Copy files from old weblogic jar
- for (Enumeration e = wlEntries.elements(); e.hasMoreElements();) {
- byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
- int bytesRead;
- InputStream is;
- JarEntry je = (JarEntry) e.nextElement();
+ for (Enumeration<JarEntry> e = wlEntries.elements(); e.hasMoreElements();) {
+ JarEntry je = e.nextElement();
if (je.getCompressedSize() == -1
|| je.getCompressedSize() == je.getSize()) {
@@ -825,12 +777,13 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
newJarStream.setLevel(JAR_COMPRESS_LEVEL);
}
+ InputStream is;
// Update with changed Bean class
if (replaceEntries.containsKey(je.getName())) {
log("Updating Bean class from generic Jar "
+ je.getName(), Project.MSG_VERBOSE);
// Use the entry from the generic jar
- je = (JarEntry) replaceEntries.get(je.getName());
+ je = replaceEntries.get(je.getName());
is = genericJar.getInputStream(je);
} else {
//use fle from original weblogic jar
@@ -839,6 +792,8 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
}
newJarStream.putNextEntry(new JarEntry(je.getName()));
+ byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
+ int bytesRead;
while ((bytesRead = is.read(buffer)) != -1) {
newJarStream.write(buffer, 0, bytesRead);
}
@@ -878,11 +833,11 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
}
if (genericLoader != null
&& genericLoader instanceof AntClassLoader) {
+ @SuppressWarnings("resource")
AntClassLoader loader = (AntClassLoader) genericLoader;
loader.cleanup();
}
}
-
return rebuild;
}
@@ -905,7 +860,6 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
if (classpath != null) {
lookupPath.append(classpath);
}
-
return getTask().getProject().createClassLoader(lookupPath);
}
}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicTOPLinkDeploymentTool.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicTOPLinkDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicTOPLinkDeploymentTool.java
index 0752bbe..15edf46 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicTOPLinkDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicTOPLinkDeploymentTool.java
@@ -62,14 +62,17 @@ public class WeblogicTOPLinkDeploymentTool extends WeblogicDeploymentTool {
* @param srcDir the source file.
* @return the descriptor handler.
*/
+ @Override
protected DescriptorHandler getDescriptorHandler(File srcDir) {
DescriptorHandler handler = super.getDescriptorHandler(srcDir);
if (toplinkDTD != null) {
- handler.registerDTD("-//The Object People, Inc.//"
- + "DTD TOPLink for WebLogic CMP 2.5.1//EN", toplinkDTD);
+ handler.registerDTD(
+ "-//The Object People, Inc.//DTD TOPLink for WebLogic CMP 2.5.1//EN",
+ toplinkDTD);
} else {
- handler.registerDTD("-//The Object People, Inc.//"
- + "DTD TOPLink for WebLogic CMP 2.5.1//EN", TL_DTD_LOC);
+ handler.registerDTD(
+ "-//The Object People, Inc.//DTD TOPLink for WebLogic CMP 2.5.1//EN",
+ TL_DTD_LOC);
}
return handler;
}
@@ -80,21 +83,20 @@ public class WeblogicTOPLinkDeploymentTool extends WeblogicDeploymentTool {
* @param ejbFiles the hashtable to add 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) {
super.addVendorFiles(ejbFiles, ddPrefix);
// Then the toplink deployment descriptor
// Setup a naming standard here?.
-
File toplinkDD = new File(getConfig().descriptorDir, ddPrefix + toplinkDescriptor);
if (toplinkDD.exists()) {
ejbFiles.put(META_DIR + toplinkDescriptor,
toplinkDD);
} else {
- log("Unable to locate toplink deployment descriptor. "
- + "It was expected to be in "
+ log("Unable to locate toplink deployment descriptor. It was expected to be in "
+ toplinkDD.getPath(), Project.MSG_WARN);
}
}
@@ -103,11 +105,12 @@ public class WeblogicTOPLinkDeploymentTool extends WeblogicDeploymentTool {
* Called to validate that the tool parameters have been configured.
* @throws BuildException if there is an error.
*/
+ @Override
public void validateConfigured() throws BuildException {
super.validateConfigured();
if (toplinkDescriptor == null) {
- throw new BuildException("The toplinkdescriptor attribute must "
- + "be specified");
+ throw new BuildException(
+ "The toplinkdescriptor attribute must be specified");
}
}
}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
index 63caf50..6acdc47 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
@@ -23,7 +23,6 @@ import java.io.InputStream;
import java.nio.file.Files;
import java.util.Enumeration;
import java.util.Hashtable;
-import java.util.Iterator;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.jar.JarOutputStream;
@@ -32,6 +31,7 @@ import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Java;
+import org.apache.tools.ant.taskdefs.optional.ejb.EjbJar.DTDLocation;
import org.apache.tools.ant.types.Environment;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.util.FileUtils;
@@ -148,7 +148,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
return wasClasspath.createPath();
}
-
/**
* Set the websphere classpath.
* @param wasClasspath the websphere classpath.
@@ -157,7 +156,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.wasClasspath = wasClasspath;
}
-
/** Sets the DB Vendor for the Entity Bean mapping ; optional.
* <p>
* Valid options can be obtained by running the following command:
@@ -177,7 +175,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.dbVendor = dbvendor;
}
-
/**
* Sets the name of the Database to create; optional.
*
@@ -187,7 +184,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.dbName = dbName;
}
-
/**
* Sets the name of the schema to create; optional.
*
@@ -197,7 +193,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.dbSchema = dbSchema;
}
-
/**
* Flag, default false, to only generate the deployment
* code, do not run RMIC or Javac
@@ -208,7 +203,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.codegen = codegen;
}
-
/**
* Flag, default true, to only output error messages.
*
@@ -218,7 +212,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.quiet = quiet;
}
-
/**
* Flag to disable the validation steps; optional, default false.
*
@@ -228,7 +221,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.novalidate = novalidate;
}
-
/**
* Flag to disable warning and informational messages; optional, default false.
*
@@ -238,7 +230,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.nowarn = nowarn;
}
-
/**
* Flag to disable informational messages; optional, default false.
*
@@ -248,7 +239,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.noinform = noinform;
}
-
/**
* Flag to enable internal tracing when set, optional, default false.
*
@@ -276,7 +266,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
use35MappingRules = attr;
}
-
/**
* Set the rebuild flag to false to only update changes in the jar rather
* than rerunning ejbdeploy; optional, default true.
@@ -286,7 +275,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.alwaysRebuild = rebuild;
}
-
/**
* String value appended to the basename of the deployment
* descriptor to create the filename of the WebLogic EJB
@@ -297,7 +285,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.jarSuffix = inString;
}
-
/**
* This controls whether the generic file used as input to
* ejbdeploy is retained; optional, default false.
@@ -307,7 +294,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.keepGeneric = inValue;
}
-
/**
* Decide, whether ejbdeploy should be called or not;
* optional, default true.
@@ -318,7 +304,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.ejbdeploy = ejbdeploy;
}
-
/**
* Setter used to store the location of the Sun's Generic EJB DTD. This
* can be a file on the system or a resource on the classpath.
@@ -329,7 +314,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.ejb11DTD = inString;
}
-
/**
* Set the value of the oldCMP scheme. This is an antonym for newCMP
* @ant.attribute ignore="true"
@@ -339,7 +323,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.newCMP = !oldCMP;
}
-
/**
* Set the value of the newCMP scheme. The old CMP scheme locates the
* websphere CMP descriptor based on the naming convention where the
@@ -353,7 +336,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.newCMP = newCMP;
}
-
/**
* The directory, where ejbdeploy will write temporary files;
* optional, defaults to '_ejbdeploy_temp'.
@@ -363,24 +345,20 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
this.tempdir = tempdir;
}
-
/** {@inheritDoc}. */
+ @Override
protected DescriptorHandler getDescriptorHandler(File srcDir) {
DescriptorHandler handler = new DescriptorHandler(getTask(), srcDir);
// register all the DTDs, both the ones that are known and
// any supplied by the user
handler.registerDTD(PUBLICID_EJB11, ejb11DTD);
- 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;
}
-
/**
* Get a description handler.
* @param srcDir the source directory.
@@ -389,13 +367,12 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
protected DescriptorHandler getWebsphereDescriptorHandler(final File srcDir) {
DescriptorHandler handler =
new DescriptorHandler(getTask(), srcDir) {
+ @Override
protected void processElement() {
}
};
- 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;
@@ -407,9 +384,10 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
* @param ejbFiles a hashtable entryname -> file.
* @param baseName a prefix to use.
*/
- protected void addVendorFiles(Hashtable ejbFiles, String baseName) {
+ @Override
+ protected void addVendorFiles(Hashtable<String, File> ejbFiles, String baseName) {
- String ddPrefix = (usingBaseJarName() ? "" : baseName);
+ String ddPrefix = usingBaseJarName() ? "" : baseName;
String dbPrefix = (dbVendor == null) ? "" : dbVendor + "-";
// Get the Extensions document
@@ -419,8 +397,7 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
ejbFiles.put(META_DIR + WAS_EXT,
websphereEXT);
} else {
- log("Unable to locate websphere extensions. "
- + "It was expected to be in "
+ log("Unable to locate websphere extensions. It was expected to be in "
+ websphereEXT.getPath(), Project.MSG_VERBOSE);
}
@@ -430,17 +407,15 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
ejbFiles.put(META_DIR + WAS_BND,
websphereBND);
} else {
- log("Unable to locate websphere bindings. "
- + "It was expected to be in "
+ log("Unable to locate websphere bindings. It was expected to be in "
+ websphereBND.getPath(), Project.MSG_VERBOSE);
}
if (!newCMP) {
log("The old method for locating CMP files has been DEPRECATED.",
Project.MSG_VERBOSE);
- log("Please adjust your websphere descriptor and set "
- + "newCMP=\"true\" to use the new CMP descriptor "
- + "inclusion mechanism. ", Project.MSG_VERBOSE);
+ log("Please adjust your websphere descriptor and set newCMP=\"true\" to use the new CMP descriptor inclusion mechanism. ",
+ Project.MSG_VERBOSE);
} else {
// We attempt to put in the MAP and Schema files of CMP beans
try {
@@ -468,25 +443,24 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
}
// Theres nothing else to see here...keep moving sonny
} catch (Exception e) {
- String msg = "Exception while adding Vendor specific files: "
- + e.toString();
-
- throw new BuildException(msg, e);
+ throw new BuildException(
+ "Exception while adding Vendor specific files: "
+ + e.toString(),
+ e);
}
}
}
-
/**
* 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);
}
-
/**
* Gets the options for the EJB Deploy operation
*
@@ -494,7 +468,7 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
*/
protected String getOptions() {
// Set the options
- StringBuffer options = new StringBuffer();
+ StringBuilder options = new StringBuilder();
if (dbVendor != null) {
options.append(" -dbvendor ").append(dbVendor);
@@ -542,7 +516,6 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
return options.toString();
}
-
/**
* Helper method invoked by execute() for each websphere jar to be built.
* Encapsulates the logic of constructing a java task for calling
@@ -603,15 +576,16 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
}
} catch (Exception e) {
// Have to catch this because of the semantics of calling main()
- String msg = "Exception while calling ejbdeploy. Details: " + e.toString();
-
- throw new BuildException(msg, e);
+ throw new BuildException(
+ "Exception while calling ejbdeploy. Details: " + e.toString(),
+ e);
}
}
/** {@inheritDoc}. */
- protected void writeJar(String baseName, File jarFile, Hashtable files, String publicId)
- throws BuildException {
+ @Override
+ protected void writeJar(String baseName, File jarFile,
+ Hashtable<String, File> files, String publicId) throws BuildException {
if (ejbdeploy) {
// create the -generic.jar, if required
File genericJarFile = super.getVendorOutputJarFile(baseName);
@@ -633,24 +607,23 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
}
}
-
/**
* Called to validate that the tool parameters have been configured.
* @throws BuildException if there is an error.
*/
+ @Override
public void validateConfigured() throws BuildException {
super.validateConfigured();
if (ejbdeploy) {
String home = getTask().getProject().getProperty("websphere.home");
if (home == null) {
- throw new BuildException("The 'websphere.home' property must "
- + "be set when 'ejbdeploy=true'");
+ throw new BuildException(
+ "The 'websphere.home' property must be set when 'ejbdeploy=true'");
}
websphereHome = getTask().getProject().resolveFile(home);
}
}
-
/**
* Helper method to check to see if a websphere EBJ1.1 jar needs to be
* rebuilt using ejbdeploy. Called from writeJar it sees if the "Bean"
@@ -696,34 +669,32 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
genericJar = new JarFile(genericJarFile);
wasJar = new JarFile(websphereJarFile);
- Hashtable genericEntries = new Hashtable();
- Hashtable wasEntries = new Hashtable();
- Hashtable replaceEntries = new Hashtable();
+ Hashtable<String, JarEntry> genericEntries = new Hashtable<>();
+ Hashtable<String, JarEntry> wasEntries = new Hashtable<>();
+ Hashtable<String, JarEntry> replaceEntries = new Hashtable<>();
//get the list of generic jar entries
- for (Enumeration e = genericJar.entries(); e.hasMoreElements();) {
- JarEntry je = (JarEntry) e.nextElement();
-
+ for (Enumeration<JarEntry> e = genericJar.entries(); e.hasMoreElements();) {
+ JarEntry je = e.nextElement();
genericEntries.put(je.getName().replace('\\', '/'), je);
}
//get the list of websphere jar entries
- for (Enumeration e = wasJar.entries(); e.hasMoreElements();) {
- JarEntry je = (JarEntry) e.nextElement();
-
+ for (Enumeration<JarEntry> e = wasJar.entries(); e.hasMoreElements();) {
+ JarEntry je = e.nextElement();
wasEntries.put(je.getName(), je);
}
//Cycle Through generic and make sure its in websphere
genericLoader = getClassLoaderFromJar(genericJarFile);
- for (Enumeration e = genericEntries.keys(); e.hasMoreElements();) {
- String filepath = (String) e.nextElement();
+ for (Enumeration<String> e = genericEntries.keys(); e.hasMoreElements();) {
+ String filepath = e.nextElement();
if (wasEntries.containsKey(filepath)) {
// File name/path match
// Check files see if same
- JarEntry genericEntry = (JarEntry) genericEntries.get(filepath);
- JarEntry wasEntry = (JarEntry) wasEntries.get(filepath);
+ JarEntry genericEntry = genericEntries.get(filepath);
+ JarEntry wasEntry = wasEntries.get(filepath);
if ((genericEntry.getCrc() != wasEntry.getCrc())
|| (genericEntry.getSize() != wasEntry.getSize())) {
@@ -735,7 +706,7 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
classname = classname.substring(0, classname.lastIndexOf(".class"));
- Class genclass = genericLoader.loadClass(classname);
+ Class<?> genclass = genericLoader.loadClass(classname);
if (genclass.isInterface()) {
//Interface changed rebuild jar.
@@ -743,14 +714,13 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
+ " has changed", Project.MSG_VERBOSE);
rebuild = true;
break;
- } else {
- //Object class Changed update it.
- replaceEntries.put(filepath, genericEntry);
}
+ //Object class Changed update it.
+ replaceEntries.put(filepath, genericEntry);
} else {
// is it the manifest. If so ignore it
if (!genericEntry.getName().equals("META-INF/MANIFEST.MF")) {
- //File other then class changed rebuild
+ //File other then class changed rebuild
log("Non class file " + genericEntry.getName()
+ " has changed", Project.MSG_VERBOSE);
rebuild = true;
@@ -779,11 +749,8 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
newJarStream.setLevel(0);
//Copy files from old websphere jar
- for (Enumeration e = wasEntries.elements(); e.hasMoreElements();) {
- byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
- int bytesRead;
- InputStream is;
- JarEntry je = (JarEntry) e.nextElement();
+ for (Enumeration<JarEntry> e = wasEntries.elements(); e.hasMoreElements();) {
+ JarEntry je = e.nextElement();
if (je.getCompressedSize() == -1
|| je.getCompressedSize() == je.getSize()) {
@@ -792,12 +759,13 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
newJarStream.setLevel(JAR_COMPRESS_LEVEL);
}
+ InputStream is;
// Update with changed Bean class
if (replaceEntries.containsKey(je.getName())) {
log("Updating Bean class from generic Jar " + je.getName(),
Project.MSG_VERBOSE);
// Use the entry from the generic jar
- je = (JarEntry) replaceEntries.get(je.getName());
+ je = replaceEntries.get(je.getName());
is = genericJar.getInputStream(je);
} else {
//use fle from original websphere jar
@@ -806,6 +774,8 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
}
newJarStream.putNextEntry(new JarEntry(je.getName()));
+ byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
+ int bytesRead;
while ((bytesRead = is.read(buffer)) != -1) {
newJarStream.write(buffer, 0, bytesRead);
}
@@ -819,17 +789,15 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
rebuild = true;
}
} catch (ClassNotFoundException cnfe) {
- String cnfmsg = "ClassNotFoundException while processing ejb-jar file"
- + ". Details: "
- + cnfe.getMessage();
-
- throw new BuildException(cnfmsg, cnfe);
+ throw new BuildException(
+ "ClassNotFoundException while processing ejb-jar file. Details: "
+ + cnfe.getMessage(),
+ cnfe);
} catch (IOException ioe) {
- String msg = "IOException while processing ejb-jar file "
- + ". Details: "
- + ioe.getMessage();
-
- throw new BuildException(msg, ioe);
+ throw new BuildException(
+ "IOException while processing ejb-jar file . Details: "
+ + ioe.getMessage(),
+ ioe);
} finally {
// need to close files and perhaps rename output
FileUtils.close(genericJar);
@@ -846,15 +814,14 @@ public class WebsphereDeploymentTool extends GenericDeploymentTool {
}
if (genericLoader != null
&& genericLoader instanceof AntClassLoader) {
+ @SuppressWarnings("resource")
AntClassLoader loader = (AntClassLoader) genericLoader;
loader.cleanup();
}
}
-
return rebuild;
}
-
/**
* Helper method invoked by isRebuildRequired to get a ClassLoader for a
* Jar File passed to it.
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/extension/Compatability.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/Compatability.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/Compatability.java
index 2c06daf..1d748e4 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/Compatability.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/Compatability.java
@@ -51,6 +51,7 @@ public final class Compatability {
*
* @return the name of compatibility level
*/
+ @Override
public String toString() {
return name;
}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/extension/Compatibility.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/Compatibility.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/Compatibility.java
index bb28cd6..5c3240d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/Compatibility.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/Compatibility.java
@@ -51,6 +51,7 @@ public final class Compatibility {
*
* @return the name of compatibility level
*/
+ @Override
public String toString() {
return name;
}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/extension/Extension.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/Extension.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/Extension.java
index d13d2f4..a0c7e9d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/Extension.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/Extension.java
@@ -18,11 +18,12 @@
package org.apache.tools.ant.taskdefs.optional.extension;
import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Map;
+import java.util.List;
+import java.util.Objects;
import java.util.StringTokenizer;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
+import java.util.stream.Stream;
import org.apache.tools.ant.util.DeweyDecimal;
import org.apache.tools.ant.util.StringUtils;
@@ -187,31 +188,13 @@ public final class Extension {
*/
public static Extension[] getAvailable(final Manifest manifest) {
if (null == manifest) {
- return new Extension[ 0 ];
+ return new Extension[0];
}
-
- final ArrayList results = new ArrayList();
-
- final Attributes mainAttributes = manifest.getMainAttributes();
- if (null != mainAttributes) {
- final Extension extension = getExtension("", mainAttributes);
- if (null != extension) {
- results.add(extension);
- }
- }
-
- final Map entries = manifest.getEntries();
- final Iterator keys = entries.keySet().iterator();
- while (keys.hasNext()) {
- final String key = (String) keys.next();
- final Attributes attributes = (Attributes) entries.get(key);
- final Extension extension = getExtension("", attributes);
- if (null != extension) {
- results.add(extension);
- }
- }
-
- return (Extension[]) results.toArray(new Extension[results.size()]);
+ return Stream
+ .concat(Stream.of(manifest.getMainAttributes()),
+ manifest.getEntries().values().stream())
+ .map(attrs -> getExtension("", attrs)).filter(Objects::nonNull)
+ .toArray(Extension[]::new);
}
/**
@@ -491,10 +474,11 @@ public final class Extension {
*
* @return string representation of object.
*/
+ @Override
public String toString() {
final String brace = ": ";
- final StringBuffer sb = new StringBuffer(EXTENSION_NAME.toString());
+ final StringBuilder sb = new StringBuilder(EXTENSION_NAME.toString());
sb.append(brace);
sb.append(extensionName);
sb.append(StringUtils.LINE_SEP);
@@ -567,22 +551,17 @@ public final class Extension {
*/
private static Extension[] getListed(final Manifest manifest,
final Attributes.Name listKey) {
- final ArrayList results = new ArrayList();
+ final List<Extension> results = new ArrayList<>();
final Attributes mainAttributes = manifest.getMainAttributes();
if (null != mainAttributes) {
getExtension(mainAttributes, results, listKey);
}
- final Map entries = manifest.getEntries();
- final Iterator keys = entries.keySet().iterator();
- while (keys.hasNext()) {
- final String key = (String) keys.next();
- final Attributes attributes = (Attributes) entries.get(key);
- getExtension(attributes, results, listKey);
- }
+ manifest.getEntries().values()
+ .forEach(attributes -> getExtension(attributes, results, listKey));
- return (Extension[]) results.toArray(new Extension[results.size()]);
+ return results.toArray(new Extension[results.size()]);
}
/**
@@ -595,18 +574,14 @@ public final class Extension {
* or OPTIONAL_EXTENSION_LIST
*/
private static void getExtension(final Attributes attributes,
- final ArrayList required,
+ final List<Extension> required,
final Attributes.Name listKey) {
final String names = attributes.getValue(listKey);
if (null == names) {
return;
}
-
- final String[] extensions = split(names, " ");
- for (int i = 0; i < extensions.length; i++) {
- final String prefix = extensions[ i ] + "-";
- final Extension extension = getExtension(prefix, attributes);
-
+ for (final String prefix : split(names, " ")) {
+ final Extension extension = getExtension(prefix + "-", attributes);
if (null != extension) {
required.add(extension);
}
@@ -623,10 +598,10 @@ public final class Extension {
private static String[] split(final String string,
final String onToken) {
final StringTokenizer tokenizer = new StringTokenizer(string, onToken);
- final String[] result = new String[ tokenizer.countTokens() ];
+ final String[] result = new String[tokenizer.countTokens()];
for (int i = 0; i < result.length; i++) {
- result[ i ] = tokenizer.nextToken();
+ result[i] = tokenizer.nextToken();
}
return result;
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionAdapter.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionAdapter.java
index b3cfddc..4747821 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionAdapter.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionAdapter.java
@@ -150,6 +150,7 @@ public class ExtensionAdapter extends DataType {
* @param reference the reference to which this instance is associated
* @exception BuildException if this instance already has been configured.
*/
+ @Override
public void setRefid(final Reference reference)
throws BuildException {
if (null != extensionName
@@ -183,8 +184,7 @@ public class ExtensionAdapter extends DataType {
}
dieOnCircularReference();
if (null == extensionName) {
- final String message = "Extension is missing name.";
- throw new BuildException(message);
+ throw new BuildException("Extension is missing name.");
}
String specificationVersionString = null;
@@ -209,7 +209,8 @@ public class ExtensionAdapter extends DataType {
* @return the extension in a string.
* @see java.lang.Object#toString()
*/
+ @Override
public String toString() {
- return "{" + toExtension().toString() + "}";
+ return "{" + toExtension() + "}";
}
}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionSet.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionSet.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionSet.java
index 5aba37c..2868027 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionSet.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionSet.java
@@ -19,7 +19,7 @@ package org.apache.tools.ant.taskdefs.optional.extension;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Iterator;
+import java.util.List;
import java.util.Stack;
import org.apache.tools.ant.BuildException;
@@ -39,12 +39,12 @@ public class ExtensionSet
/**
* ExtensionAdapter objects representing extensions.
*/
- private final ArrayList extensions = new ArrayList();
+ private final List<ExtensionAdapter> extensions = new ArrayList<>();
/**
* Filesets specifying all the extensions wanted.
*/
- private final ArrayList extensionsFilesets = new ArrayList();
+ private final List<FileSet> extensionsFilesets = new ArrayList<>();
/**
* Adds an extension that this library requires.
@@ -98,9 +98,9 @@ public class ExtensionSet
return ((ExtensionSet) getCheckedRef()).toExtensions(proj);
}
dieOnCircularReference();
- final ArrayList extensionsList = ExtensionUtil.toExtensions(extensions);
+ final List<Extension> extensionsList = ExtensionUtil.toExtensions(extensions);
ExtensionUtil.extractExtensions(proj, extensionsList, extensionsFilesets);
- return (Extension[]) extensionsList.toArray(new Extension[extensionsList.size()]);
+ return extensionsList.toArray(new Extension[extensionsList.size()]);
}
/**
@@ -123,7 +123,7 @@ public class ExtensionSet
}
@Override
- protected synchronized void dieOnCircularReference(Stack stk, Project p)
+ protected synchronized void dieOnCircularReference(Stack<Object> stk, Project p)
throws BuildException {
if (isChecked()) {
return;
@@ -131,12 +131,11 @@ public class ExtensionSet
if (isReference()) {
super.dieOnCircularReference(stk, p);
} else {
- for (Iterator i = extensions.iterator(); i.hasNext();) {
- pushAndInvokeCircularReferenceCheck((ExtensionAdapter) i.next(),
- stk, p);
+ for (ExtensionAdapter extensionAdapter : extensions) {
+ pushAndInvokeCircularReferenceCheck(extensionAdapter, stk, p);
}
- for (Iterator i = extensionsFilesets.iterator(); i.hasNext();) {
- pushAndInvokeCircularReferenceCheck((FileSet) i.next(), stk, p);
+ for (FileSet fileSet : extensionsFilesets) {
+ pushAndInvokeCircularReferenceCheck(fileSet, stk, p);
}
setChecked(true);
}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
index 00d4599..7f951d9 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
@@ -20,16 +20,15 @@ package org.apache.tools.ant.taskdefs.optional.extension;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
+import java.util.stream.Collectors;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.FileSet;
-import org.apache.tools.ant.util.FileUtils;
/**
* A set of useful methods relating to extensions.
@@ -49,19 +48,10 @@ public final class ExtensionUtil {
* @param adapters the list of ExtensionAdapterss to add to convert
* @throws BuildException if an error occurs
*/
- static ArrayList toExtensions(final List adapters)
+ static ArrayList<Extension> toExtensions(final List<? extends ExtensionAdapter> adapters)
throws BuildException {
- final ArrayList results = new ArrayList();
-
- final int size = adapters.size();
- for (int i = 0; i < size; i++) {
- final ExtensionAdapter adapter =
- (ExtensionAdapter) adapters.get(i);
- final Extension extension = adapter.toExtension();
- results.add(extension);
- }
-
- return results;
+ return adapters.stream().map(ExtensionAdapter::toExtension)
+ .collect(Collectors.toCollection(ArrayList::new));
}
/**
@@ -72,14 +62,12 @@ public final class ExtensionUtil {
* @throws BuildException if an error occurs
*/
static void extractExtensions(final Project project,
- final List libraries,
- final List fileset)
+ final List<Extension> libraries,
+ final List<FileSet> fileset)
throws BuildException {
if (!fileset.isEmpty()) {
- final Extension[] extensions = getExtensions(project,
- fileset);
- for (int i = 0; i < extensions.length; i++) {
- libraries.add(extensions[ i ]);
+ for (Extension extension : getExtensions(project, fileset)) {
+ libraries.add(extension);
}
}
}
@@ -92,13 +80,11 @@ public final class ExtensionUtil {
* @throws BuildException if failing to scan libraries
*/
private static Extension[] getExtensions(final Project project,
- final List libraries)
+ final List<FileSet> libraries)
throws BuildException {
- final ArrayList extensions = new ArrayList();
- final Iterator iterator = libraries.iterator();
- while (iterator.hasNext()) {
- final FileSet fileSet = (FileSet) iterator.next();
-
+ final List<Extension> extensions = new ArrayList<>();
+
+ for (FileSet fileSet : libraries) {
boolean includeImpl = true;
boolean includeURL = true;
@@ -116,7 +102,7 @@ public final class ExtensionUtil {
loadExtensions(file, extensions, includeImpl, includeURL);
}
}
- return (Extension[]) extensions.toArray(new Extension[extensions.size()]);
+ return extensions.toArray(new Extension[extensions.size()]);
}
/**
@@ -127,23 +113,17 @@ public final class ExtensionUtil {
* @throws BuildException if there is an error
*/
private static void loadExtensions(final File file,
- final List extensionList,
+ final List<Extension> extensionList,
final boolean includeImpl,
final boolean includeURL)
throws BuildException {
- JarFile jarFile = null;
- try {
- jarFile = new JarFile(file);
- final Extension[] extensions =
- Extension.getAvailable(jarFile.getManifest());
- for (int i = 0; i < extensions.length; i++) {
- final Extension extension = extensions[ i ];
+ try (JarFile jarFile = new JarFile(file)) {
+ for (Extension extension : Extension
+ .getAvailable(jarFile.getManifest())) {
addExtension(extensionList, extension, includeImpl, includeURL);
}
} catch (final Exception e) {
throw new BuildException(e.getMessage(), e);
- } finally {
- FileUtils.close(jarFile);
}
}
@@ -158,7 +138,7 @@ public final class ExtensionUtil {
* @param includeImpl false to exclude implementation details
* @param includeURL false to exclude implementation URL
*/
- private static void addExtension(final List extensionList,
+ private static void addExtension(final List<Extension> extensionList,
final Extension originalExtension,
final boolean includeImpl,
final boolean includeURL) {
@@ -205,18 +185,14 @@ public final class ExtensionUtil {
*/
static Manifest getManifest(final File file)
throws BuildException {
- JarFile jarFile = null;
- try {
- jarFile = new JarFile(file);
+ try (JarFile jarFile = new JarFile(file)) {
Manifest m = jarFile.getManifest();
if (m == null) {
- throw new BuildException(file + " doesn't have a MANIFEST");
+ throw new BuildException("%s doesn't have a MANIFEST", file);
}
return m;
} catch (final IOException ioe) {
throw new BuildException(ioe.getMessage(), ioe);
- } finally {
- FileUtils.close(jarFile);
}
}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtraAttribute.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtraAttribute.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtraAttribute.java
index d52bec4..21d1144 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtraAttribute.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtraAttribute.java
@@ -73,11 +73,11 @@ public class ExtraAttribute {
*/
public void validate() throws BuildException {
if (null == name) {
- final String message = "Missing name from parameter.";
- throw new BuildException(message);
- } else if (null == value) {
- final String message = "Missing value from parameter " + name + ".";
- throw new BuildException(message);
+ throw new BuildException("Missing name from parameter.");
+ }
+ if (null == value) {
+ throw new BuildException(
+ "Missing value from parameter " + name + ".");
}
}
}
http://git-wip-us.apache.org/repos/asf/ant/blob/b7d1e9bd/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibAvailableTask.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibAvailableTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibAvailableTask.java
index cebcf0d..84ba74a 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibAvailableTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibAvailableTask.java
@@ -18,11 +18,12 @@
package org.apache.tools.ant.taskdefs.optional.extension;
import java.io.File;
-import java.util.Iterator;
+import java.util.List;
import java.util.Vector;
-import java.util.jar.Manifest;
+import java.util.stream.Stream;
import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
/**
@@ -40,7 +41,7 @@ public class JarLibAvailableTask extends Task {
* Filesets specifying all the librarys
* to display information about.
*/
- private final Vector extensionFileSets = new Vector();
+ private final List<ExtensionSet> extensionFileSets = new Vector<>();
/**
* The name of the property to set if extension is available.
@@ -77,9 +78,8 @@ public class JarLibAvailableTask extends Task {
*/
public void addConfiguredExtension(final ExtensionAdapter extension) {
if (null != requiredExtension) {
- final String message = "Can not specify extension to "
- + "search for multiple times.";
- throw new BuildException(message);
+ throw new BuildException(
+ "Can not specify extension to search for multiple times.");
}
requiredExtension = extension;
}
@@ -90,7 +90,7 @@ public class JarLibAvailableTask extends Task {
* @param extensionSet a set of extensions to search in.
*/
public void addConfiguredExtensionSet(final ExtensionSet extensionSet) {
- extensionFileSets.addElement(extensionSet);
+ extensionFileSets.add(extensionSet);
}
/**
@@ -98,35 +98,24 @@ public class JarLibAvailableTask extends Task {
*
* @throws BuildException if something goes wrong.
*/
+ @Override
public void execute() throws BuildException {
validate();
- final Extension test = requiredExtension.toExtension();
+ final Project prj = getProject();
+ final Stream<Extension> extensions;
// Check if list of files to check has been specified
if (!extensionFileSets.isEmpty()) {
- final Iterator iterator = extensionFileSets.iterator();
- while (iterator.hasNext()) {
- final ExtensionSet extensionSet
- = (ExtensionSet) iterator.next();
- final Extension[] extensions =
- extensionSet.toExtensions(getProject());
- for (int i = 0; i < extensions.length; i++) {
- final Extension extension = extensions[ i ];
- if (extension.isCompatibleWith(test)) {
- getProject().setNewProperty(propertyName, "true");
- }
- }
- }
+ extensions = extensionFileSets.stream()
+ .map(xset -> xset.toExtensions(prj)).flatMap(Stream::of);
} else {
- final Manifest manifest = ExtensionUtil.getManifest(libraryFile);
- final Extension[] extensions = Extension.getAvailable(manifest);
- for (int i = 0; i < extensions.length; i++) {
- final Extension extension = extensions[ i ];
- if (extension.isCompatibleWith(test)) {
- getProject().setNewProperty(propertyName, "true");
- }
- }
+ extensions = Stream.of(
+ Extension.getAvailable(ExtensionUtil.getManifest(libraryFile)));
+ }
+ final Extension test = requiredExtension.toExtension();
+ if (extensions.anyMatch(x -> x.isCompatibleWith(test))) {
+ prj.setNewProperty(propertyName, "true");
}
}
@@ -137,21 +126,16 @@ public class JarLibAvailableTask extends Task {
*/
private void validate() throws BuildException {
if (null == requiredExtension) {
- final String message = "Extension element must be specified.";
- throw new BuildException(message);
+ throw new BuildException("Extension element must be specified.");
}
-
- if (null == libraryFile && extensionFileSets.isEmpty()) {
- final String message = "File attribute not specified.";
- throw new BuildException(message);
- }
- if (null != libraryFile && !libraryFile.exists()) {
- final String message = "File '" + libraryFile + "' does not exist.";
- throw new BuildException(message);
- }
- if (null != libraryFile && !libraryFile.isFile()) {
- final String message = "\'" + libraryFile + "\' is not a file.";
- throw new BuildException(message);
+ if (null == libraryFile) {
+ if (extensionFileSets.isEmpty()) {
+ throw new BuildException("File attribute not specified.");
+ }
+ } else if (!libraryFile.exists()) {
+ throw new BuildException("File '%s' does not exist.", libraryFile);
+ } else if (!libraryFile.isFile()) {
+ throw new BuildException("'%s' is not a file.", libraryFile);
}
}
}