From 789422e131b6c2c003d94f394169a64297e986c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Mat=C3=A8rne?= Date: Fri, 4 Jul 2014 15:05:12 +0200 Subject: [PATCH] oops - make it compile under Java5 again --- .../ant/filters/util/JavaClassHelper.java | 3 +- .../ant/listener/CommonsLoggingListener.java | 70 ++++++------ .../tools/ant/listener/Log4jListener.java | 39 +++---- .../tools/ant/taskdefs/email/MimeMailer.java | 80 +++++++------- .../taskdefs/optional/Xalan2TraceSupport.java | 12 +-- .../junit/XMLJUnitResultFormatter.java | 86 ++++++++------- .../optional/ssh/AbstractSshMessage.java | 52 ++++----- .../ant/taskdefs/optional/ssh/SSHBase.java | 31 +++--- .../ant/taskdefs/optional/ssh/SSHExec.java | 1 + .../ant/taskdefs/optional/ssh/SSHSession.java | 87 +++++++-------- .../tools/ant/taskdefs/optional/ssh/Scp.java | 81 +++++++------- .../taskdefs/optional/ssh/ScpFromMessage.java | 102 +++++++++--------- .../optional/ssh/ScpFromMessageBySftp.java | 73 ++++++------- .../taskdefs/optional/ssh/ScpToMessage.java | 98 ++++++++--------- .../optional/ssh/ScpToMessageBySftp.java | 85 +++++++-------- .../ant/types/resolver/ApacheCatalog.java | 23 ++-- .../types/resolver/ApacheCatalogResolver.java | 34 +++--- .../util/depend/bcel/DependencyVisitor.java | 42 ++++---- .../ant/util/regexp/JakartaOroMatcher.java | 30 +++--- .../ant/util/regexp/JakartaOroRegexp.java | 14 +-- 20 files changed, 536 insertions(+), 507 deletions(-) diff --git a/src/main/org/apache/tools/ant/filters/util/JavaClassHelper.java b/src/main/org/apache/tools/ant/filters/util/JavaClassHelper.java index 1b87b9c0d..e01c2df8a 100644 --- a/src/main/org/apache/tools/ant/filters/util/JavaClassHelper.java +++ b/src/main/org/apache/tools/ant/filters/util/JavaClassHelper.java @@ -22,6 +22,7 @@ import java.io.IOException; import com.sun.org.apache.bcel.internal.classfile.ClassParser; import com.sun.org.apache.bcel.internal.classfile.ConstantValue; +import com.sun.org.apache.bcel.internal.classfile.Field; import com.sun.org.apache.bcel.internal.classfile.JavaClass; // CheckStyle:HideUtilityClassConstructorCheck OFF - bc @@ -40,7 +41,7 @@ public final class JavaClassHelper { * @return a StringBuffer contains the name=value pairs * @exception IOException if an error occurs */ - public static StringBuffer getConstants(byte[] bytes) + public static StringBuffer getConstants(final byte[] bytes) throws IOException { final StringBuffer sb = new StringBuffer(); final ByteArrayInputStream bis = new ByteArrayInputStream(bytes); diff --git a/src/main/org/apache/tools/ant/listener/CommonsLoggingListener.java b/src/main/org/apache/tools/ant/listener/CommonsLoggingListener.java index 57f53a93d..32474eea3 100644 --- a/src/main/org/apache/tools/ant/listener/CommonsLoggingListener.java +++ b/src/main/org/apache/tools/ant/listener/CommonsLoggingListener.java @@ -20,6 +20,7 @@ package org.apache.tools.ant.listener; import java.io.PrintStream; +import org.apache.commons.logging.Log; import org.apache.commons.logging.LogConfigurationException; import org.apache.commons.logging.LogFactory; import org.apache.tools.ant.BuildEvent; @@ -29,7 +30,6 @@ import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.UnknownElement; -import sun.rmi.runtime.Log; /** * Jakarta Commons Logging listener. @@ -80,31 +80,31 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { suffix = suffix.replace(' ', '-'); cat = cat + "." + suffix; } - PrintStream tmpOut = System.out; - PrintStream tmpErr = System.err; + final PrintStream tmpOut = System.out; + final PrintStream tmpErr = System.err; System.setOut(out); System.setErr(err); if (!initialized) { try { logFactory = LogFactory.getFactory(); - } catch (LogConfigurationException e) { + } catch (final LogConfigurationException e) { e.printStackTrace(System.err); return null; } } initialized = true; - Log log = logFactory.getInstance(cat); + final Log log = logFactory.getInstance(cat); System.setOut(tmpOut); System.setErr(tmpErr); return log; } /** {@inheritDoc}. */ - public void buildStarted(BuildEvent event) { - String categoryString = PROJECT_LOG; - Log log = getLog(categoryString, null); + public void buildStarted(final BuildEvent event) { + final String categoryString = PROJECT_LOG; + final Log log = getLog(categoryString, null); if (initialized) { realLog(log, "Build started.", Project.MSG_INFO, null); @@ -112,10 +112,10 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { } /** {@inheritDoc}. */ - public void buildFinished(BuildEvent event) { + public void buildFinished(final BuildEvent event) { if (initialized) { - String categoryString = PROJECT_LOG; - Log log = getLog(categoryString, event.getProject().getName()); + final String categoryString = PROJECT_LOG; + final Log log = getLog(categoryString, event.getProject().getName()); if (event.getException() == null) { realLog(log, "Build finished.", Project.MSG_INFO, null); @@ -130,9 +130,9 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { * @see BuildListener#targetStarted */ /** {@inheritDoc}. */ - public void targetStarted(BuildEvent event) { + public void targetStarted(final BuildEvent event) { if (initialized) { - Log log = getLog(TARGET_LOG, + final Log log = getLog(TARGET_LOG, event.getTarget().getName()); // Since task log category includes target, we don't really // need this message @@ -145,10 +145,10 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { * @see BuildListener#targetFinished */ /** {@inheritDoc}. */ - public void targetFinished(BuildEvent event) { + public void targetFinished(final BuildEvent event) { if (initialized) { - String targetName = event.getTarget().getName(); - Log log = getLog(TARGET_LOG, + final String targetName = event.getTarget().getName(); + final Log log = getLog(TARGET_LOG, event.getTarget().getName()); if (event.getException() == null) { realLog(log, "Target end: " + targetName, Project.MSG_DEBUG, null); @@ -164,17 +164,17 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { * @see BuildListener#taskStarted */ /** {@inheritDoc}. */ - public void taskStarted(BuildEvent event) { + public void taskStarted(final BuildEvent event) { if (initialized) { - Task task = event.getTask(); + final Task task = event.getTask(); Object real = task; if (task instanceof UnknownElement) { - Object realObj = ((UnknownElement) task).getTask(); + final Object realObj = ((UnknownElement) task).getTask(); if (realObj != null) { real = realObj; } } - Log log = getLog(real.getClass().getName(), null); + final Log log = getLog(real.getClass().getName(), null); if (log.isTraceEnabled()) { realLog(log, "Task \"" + task.getTaskName() + "\" started ", Project.MSG_VERBOSE, null); @@ -186,17 +186,17 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { * @see BuildListener#taskFinished */ /** {@inheritDoc}. */ - public void taskFinished(BuildEvent event) { + public void taskFinished(final BuildEvent event) { if (initialized) { - Task task = event.getTask(); + final Task task = event.getTask(); Object real = task; if (task instanceof UnknownElement) { - Object realObj = ((UnknownElement) task).getTask(); + final Object realObj = ((UnknownElement) task).getTask(); if (realObj != null) { real = realObj; } } - Log log = getLog(real.getClass().getName(), null); + final Log log = getLog(real.getClass().getName(), null); if (event.getException() == null) { if (log.isTraceEnabled()) { realLog(log, "Task \"" + task.getTaskName() + "\" finished.", @@ -215,7 +215,7 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { * @see BuildListener#messageLogged */ /** {@inheritDoc}. */ - public void messageLogged(BuildEvent event) { + public void messageLogged(final BuildEvent event) { if (initialized) { Object categoryObject = event.getTask(); String categoryString = null; @@ -242,16 +242,16 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { } - Log log = getLog(categoryString, categoryDetail); - int priority = event.getPriority(); - String message = event.getMessage(); + final Log log = getLog(categoryString, categoryDetail); + final int priority = event.getPriority(); + final String message = event.getMessage(); realLog(log, message, priority , null); } } - private void realLog(Log log, String message, int priority, Throwable t) { - PrintStream tmpOut = System.out; - PrintStream tmpErr = System.err; + private void realLog(final Log log, final String message, final int priority, final Throwable t) { + final PrintStream tmpOut = System.out; + final PrintStream tmpErr = System.err; System.setOut(out); System.setErr(err); switch (priority) { @@ -300,7 +300,7 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { * This is not used, the logger config is used instead. * @param level ignored */ - public void setMessageOutputLevel(int level) { + public void setMessageOutputLevel(final int level) { // Use the logger config } @@ -308,7 +308,7 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { * Set the output print stream. * @param output the output stream */ - public void setOutputPrintStream(PrintStream output) { + public void setOutputPrintStream(final PrintStream output) { this.out = output; } @@ -317,7 +317,7 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { * This is ignored. * @param emacsMode ignored */ - public void setEmacsMode(boolean emacsMode) { + public void setEmacsMode(final boolean emacsMode) { // Doesn't make sense for c-l. Use the logger config } @@ -325,7 +325,7 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { * Set the error print stream. * @param err the error stream */ - public void setErrorPrintStream(PrintStream err) { + public void setErrorPrintStream(final PrintStream err) { this.err = err; } diff --git a/src/main/org/apache/tools/ant/listener/Log4jListener.java b/src/main/org/apache/tools/ant/listener/Log4jListener.java index 5e8acaa87..829f11834 100644 --- a/src/main/org/apache/tools/ant/listener/Log4jListener.java +++ b/src/main/org/apache/tools/ant/listener/Log4jListener.java @@ -18,6 +18,7 @@ package org.apache.tools.ant.listener; +import org.apache.log4j.Logger; import org.apache.log4j.helpers.NullEnumeration; import org.apache.tools.ant.BuildEvent; import org.apache.tools.ant.BuildListener; @@ -44,8 +45,8 @@ public class Log4jListener implements BuildListener { * Construct the listener and make sure there is a valid appender. */ public Log4jListener() { - Logger log = Logger.getLogger(LOG_ANT); - Logger rootLog = Logger.getRootLogger(); + final Logger log = Logger.getLogger(LOG_ANT); + final Logger rootLog = Logger.getRootLogger(); initialized = !(rootLog.getAllAppenders() instanceof NullEnumeration); if (!initialized) { log.error("No log4j.properties in build area"); @@ -56,9 +57,9 @@ public class Log4jListener implements BuildListener { * @see BuildListener#buildStarted */ /** {@inheritDoc}. */ - public void buildStarted(BuildEvent event) { + public void buildStarted(final BuildEvent event) { if (initialized) { - Logger log = Logger.getLogger(Project.class.getName()); + final Logger log = Logger.getLogger(Project.class.getName()); log.info("Build started."); } } @@ -67,9 +68,9 @@ public class Log4jListener implements BuildListener { * @see BuildListener#buildFinished */ /** {@inheritDoc}. */ - public void buildFinished(BuildEvent event) { + public void buildFinished(final BuildEvent event) { if (initialized) { - Logger log = Logger.getLogger(Project.class.getName()); + final Logger log = Logger.getLogger(Project.class.getName()); if (event.getException() == null) { log.info("Build finished."); } else { @@ -82,9 +83,9 @@ public class Log4jListener implements BuildListener { * @see BuildListener#targetStarted */ /** {@inheritDoc}. */ - public void targetStarted(BuildEvent event) { + public void targetStarted(final BuildEvent event) { if (initialized) { - Logger log = Logger.getLogger(Target.class.getName()); + final Logger log = Logger.getLogger(Target.class.getName()); log.info("Target \"" + event.getTarget().getName() + "\" started."); } } @@ -93,10 +94,10 @@ public class Log4jListener implements BuildListener { * @see BuildListener#targetFinished */ /** {@inheritDoc}. */ - public void targetFinished(BuildEvent event) { + public void targetFinished(final BuildEvent event) { if (initialized) { - String targetName = event.getTarget().getName(); - Logger cat = Logger.getLogger(Target.class.getName()); + final String targetName = event.getTarget().getName(); + final Logger cat = Logger.getLogger(Target.class.getName()); if (event.getException() == null) { cat.info("Target \"" + targetName + "\" finished."); } else { @@ -110,10 +111,10 @@ public class Log4jListener implements BuildListener { * @see BuildListener#taskStarted */ /** {@inheritDoc}. */ - public void taskStarted(BuildEvent event) { + public void taskStarted(final BuildEvent event) { if (initialized) { - Task task = event.getTask(); - Logger log = Logger.getLogger(task.getClass().getName()); + final Task task = event.getTask(); + final Logger log = Logger.getLogger(task.getClass().getName()); log.info("Task \"" + task.getTaskName() + "\" started."); } } @@ -122,10 +123,10 @@ public class Log4jListener implements BuildListener { * @see BuildListener#taskFinished */ /** {@inheritDoc}. */ - public void taskFinished(BuildEvent event) { + public void taskFinished(final BuildEvent event) { if (initialized) { - Task task = event.getTask(); - Logger log = Logger.getLogger(task.getClass().getName()); + final Task task = event.getTask(); + final Logger log = Logger.getLogger(task.getClass().getName()); if (event.getException() == null) { log.info("Task \"" + task.getTaskName() + "\" finished."); } else { @@ -139,7 +140,7 @@ public class Log4jListener implements BuildListener { * @see BuildListener#messageLogged */ /** {@inheritDoc}. */ - public void messageLogged(BuildEvent event) { + public void messageLogged(final BuildEvent event) { if (initialized) { Object categoryObject = event.getTask(); if (categoryObject == null) { @@ -149,7 +150,7 @@ public class Log4jListener implements BuildListener { } } - Logger log + final Logger log = Logger.getLogger(categoryObject.getClass().getName()); switch (event.getPriority()) { case Project.MSG_ERR: diff --git a/src/main/org/apache/tools/ant/taskdefs/email/MimeMailer.java b/src/main/org/apache/tools/ant/taskdefs/email/MimeMailer.java index 4e4b86d5c..186d71e08 100644 --- a/src/main/org/apache/tools/ant/taskdefs/email/MimeMailer.java +++ b/src/main/org/apache/tools/ant/taskdefs/email/MimeMailer.java @@ -25,7 +25,6 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; import java.io.UnsupportedEncodingException; -import java.net.PasswordAuthentication; import java.security.Provider; import java.security.Security; import java.util.Enumeration; @@ -37,19 +36,23 @@ import java.util.Vector; import javax.activation.DataHandler; import javax.activation.FileDataSource; +import javax.mail.Address; +import javax.mail.Authenticator; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.PasswordAuthentication; import javax.mail.SendFailedException; +import javax.mail.Session; +import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; +import javax.mail.internet.MimeMultipart; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; -import sun.rmi.transport.Transport; - -import com.sun.xml.internal.messaging.saaj.packaging.mime.MessagingException; -import com.sun.xml.internal.messaging.saaj.packaging.mime.internet.MimeBodyPart; -import com.sun.xml.internal.messaging.saaj.packaging.mime.internet.MimeMultipart; /** * Uses the JavaMail classes to send Mime format email. @@ -83,7 +86,7 @@ public class MimeMailer extends Mailer { throw new IOException("No data"); } if (out != null) { - String encodedOut = out.toString(charset); + final String encodedOut = out.toString(charset); data = (data != null) ? data.concat(encodedOut) : encodedOut; out = null; } @@ -95,7 +98,7 @@ public class MimeMailer extends Mailer { return out; } - public void setContentType(String type) { + public void setContentType(final String type) { this.type = type.toLowerCase(Locale.ENGLISH); } @@ -113,7 +116,7 @@ public class MimeMailer extends Mailer { return "StringDataSource"; } - public void setCharset(String charset) { + public void setCharset(final String charset) { this.charset = charset; } @@ -129,7 +132,7 @@ public class MimeMailer extends Mailer { */ public void send() { try { - Properties props = new Properties(); + final Properties props = new Properties(); props.put("mail.smtp.host", host); props.put("mail.smtp.port", String.valueOf(port)); @@ -141,10 +144,10 @@ public class MimeMailer extends Mailer { Authenticator auth = null; if (SSL) { try { - Provider p = (Provider) Class.forName( + final Provider p = (Provider) Class.forName( "com.sun.net.ssl.internal.ssl.Provider").newInstance(); Security.addProvider(p); - } catch (Exception e) { + } catch (final Exception e) { throw new BuildException("could not instantiate ssl " + "security provider, check that you have JSSE in " + "your classpath"); @@ -169,8 +172,8 @@ public class MimeMailer extends Mailer { sesh = Session.getInstance(props, auth); //create the message - MimeMessage msg = new MimeMessage(sesh); - MimeMultipart attachments = new MimeMultipart(); + final MimeMessage msg = new MimeMessage(sesh); + final MimeMultipart attachments = new MimeMultipart(); //set the sender if (from.getName() == null) { @@ -204,7 +207,7 @@ public class MimeMailer extends Mailer { } } // Using javax.activation.DataSource paradigm - StringDataSource sds = new StringDataSource(); + final StringDataSource sds = new StringDataSource(); sds.setContentType(message.getMimeType()); sds.setCharset(charset); @@ -214,23 +217,23 @@ public class MimeMailer extends Mailer { msg.addHeader("Date", getDate()); if (headers != null) { - for (Iterator iter = headers.iterator(); iter.hasNext();) { - Header h = (Header) iter.next(); + for (final Iterator iter = headers.iterator(); iter.hasNext();) { + final Header h = (Header) iter.next(); msg.addHeader(h.getName(), h.getValue()); } } - PrintStream out = new PrintStream(sds.getOutputStream()); + final PrintStream out = new PrintStream(sds.getOutputStream()); message.print(out); out.close(); - MimeBodyPart textbody = new MimeBodyPart(); + final MimeBodyPart textbody = new MimeBodyPart(); textbody.setDataHandler(new DataHandler(sds)); attachments.addBodyPart(textbody); - Enumeration e = files.elements(); + final Enumeration e = files.elements(); while (e.hasMoreElements()) { - File file = (File) e.nextElement(); + final File file = (File) e.nextElement(); MimeBodyPart body; @@ -240,8 +243,8 @@ public class MimeMailer extends Mailer { + "\" does not exist or is not " + "readable."); } - FileDataSource fileData = new FileDataSource(file); - DataHandler fileDataHandler = new DataHandler(fileData); + final FileDataSource fileData = new FileDataSource(file); + final DataHandler fileDataHandler = new DataHandler(fileData); body.setDataHandler(fileDataHandler); body.setFileName(file.getName()); @@ -250,10 +253,10 @@ public class MimeMailer extends Mailer { msg.setContent(attachments); try { // Send the message using SMTP, or SMTPS if the host uses SSL - Transport transport = sesh.getTransport(SSL ? "smtps" : "smtp"); + final Transport transport = sesh.getTransport(SSL ? "smtps" : "smtp"); transport.connect(host, user, password); transport.sendMessage(msg, msg.getAllRecipients()); - } catch (SendFailedException sfe) { + } catch (final SendFailedException sfe) { if (!shouldIgnoreInvalidRecipients()) { throw new BuildException(GENERIC_ERROR, sfe); } else if (sfe.getValidSentAddresses() == null @@ -277,22 +280,22 @@ public class MimeMailer extends Mailer { } } } - } catch (MessagingException e) { + } catch (final MessagingException e) { throw new BuildException(GENERIC_ERROR, e); - } catch (IOException e) { + } catch (final IOException e) { throw new BuildException(GENERIC_ERROR, e); } } - private static InternetAddress[] internetAddresses(Vector list) + private static InternetAddress[] internetAddresses(final Vector list) throws AddressException, UnsupportedEncodingException { final int size = list.size(); - InternetAddress[] addrs = new InternetAddress[size]; + final InternetAddress[] addrs = new InternetAddress[size]; for (int i = 0; i < size; ++i) { - EmailAddress addr = (EmailAddress) list.elementAt(i); + final EmailAddress addr = (EmailAddress) list.elementAt(i); - String name = addr.getName(); + final String name = addr.getName(); addrs[i] = (name == null) ? new InternetAddress(addr.getAddress()) : new InternetAddress(addr.getAddress(), name); @@ -300,23 +303,23 @@ public class MimeMailer extends Mailer { return addrs; } - private String parseCharSetFromMimeType(String type) { + private String parseCharSetFromMimeType(final String type) { if (type == null) { return null; } - int pos = type.indexOf("charset"); + final int pos = type.indexOf("charset"); if (pos < 0) { return null; } // Assuming mime type in form "text/XXXX; charset=XXXXXX" - StringTokenizer token = new StringTokenizer(type.substring(pos), "=; "); + final StringTokenizer token = new StringTokenizer(type.substring(pos), "=; "); token.nextToken(); // Skip 'charset=' return token.nextToken(); } - private void didntReach(Address addr, String category, - MessagingException ex) { - String msg = "Failed to send mail to " + category + " address " + private void didntReach(final Address addr, final String category, + final MessagingException ex) { + final String msg = "Failed to send mail to " + category + " address " + addr + " because of " + ex.getMessage(); if (task != null) { task.log(msg, Project.MSG_WARN); @@ -328,12 +331,11 @@ public class MimeMailer extends Mailer { static class SimpleAuthenticator extends Authenticator { private String user = null; private String password = null; - public SimpleAuthenticator(String user, String password) { + public SimpleAuthenticator(final String user, final String password) { this.user = user; this.password = password; } public PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(user, password); } } diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/Xalan2TraceSupport.java b/src/main/org/apache/tools/ant/taskdefs/optional/Xalan2TraceSupport.java index 96804e67f..0553060e3 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/Xalan2TraceSupport.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/Xalan2TraceSupport.java @@ -26,8 +26,8 @@ import javax.xml.transform.Transformer; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.taskdefs.XSLTProcess; import org.apache.xalan.trace.PrintTraceListener; +import org.apache.xalan.transformer.TransformerImpl; -import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl; /** * Sets up trace support for a given transformer. @@ -35,11 +35,11 @@ import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl; * @since Ant 1.8.0 */ public class Xalan2TraceSupport implements XSLTTraceSupport { - public void configureTrace(Transformer t, - XSLTProcess.TraceConfiguration conf) { + public void configureTrace(final Transformer t, + final XSLTProcess.TraceConfiguration conf) { if (t instanceof TransformerImpl && conf != null) { - PrintWriter w = new PrintWriter(conf.getOutputStream(), false); - PrintTraceListener tl = new PrintTraceListener(w); + final PrintWriter w = new PrintWriter(conf.getOutputStream(), false); + final PrintTraceListener tl = new PrintTraceListener(w); tl.m_traceElements = conf.getElements(); tl.m_traceExtension = conf.getExtension(); tl.m_traceGeneration = conf.getGeneration(); @@ -47,7 +47,7 @@ public class Xalan2TraceSupport implements XSLTTraceSupport { tl.m_traceTemplates = conf.getTemplates(); try { ((TransformerImpl) t).getTraceManager().addTraceListener(tl); - } catch (TooManyListenersException tml) { + } catch (final TooManyListenersException tml) { throw new BuildException(tml); } } diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java index 7b4ffbcac..159026df5 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java @@ -61,7 +61,7 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan private static DocumentBuilder getDocumentBuilder() { try { return DocumentBuilderFactory.newInstance().newDocumentBuilder(); - } catch (Exception exc) { + } catch (final Exception exc) { throw new ExceptionInInitializerError(exc); } } @@ -70,10 +70,12 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan * The XML document. */ private Document doc; + /** * The wrapper for the whole testsuite. */ private Element rootElement; + /** * Element for the current test. * @@ -82,23 +84,25 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan * so we can't easily match Test objects without manually iterating over all keys and checking * individual fields. */ - private Hashtable testElements = new Hashtable(); + private final Hashtable testElements = new Hashtable(); + /** * tests that failed. */ - private Hashtable failedTests = new Hashtable(); + private final Hashtable failedTests = new Hashtable(); + /** * Tests that were skipped. */ - private Hashtable skippedTests = new Hashtable(); + private final Hashtable skippedTests = new Hashtable(); /** * Tests that were ignored. See the note above about the key being a bit of a hack. */ - private Hashtable ignoredTests = new Hashtable(); + private final Hashtable ignoredTests = new Hashtable(); /** * Timing helper. */ - private Hashtable testStarts = new Hashtable(); + private final Hashtable testStarts = new Hashtable(); /** * Where to write the log to. */ @@ -109,17 +113,17 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan } /** {@inheritDoc}. */ - public void setOutput(OutputStream out) { + public void setOutput(final OutputStream out) { this.out = out; } /** {@inheritDoc}. */ - public void setSystemOutput(String out) { + public void setSystemOutput(final String out) { formatOutput(SYSTEM_OUT, out); } /** {@inheritDoc}. */ - public void setSystemError(String out) { + public void setSystemError(final String out) { formatOutput(SYSTEM_ERR, out); } @@ -127,10 +131,10 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan * The whole testsuite started. * @param suite the testsuite. */ - public void startTestSuite(JUnitTest suite) { + public void startTestSuite(final JUnitTest suite) { doc = getDocumentBuilder().newDocument(); rootElement = doc.createElement(TESTSUITE); - String n = suite.getName(); + final String n = suite.getName(); rootElement.setAttribute(ATTR_NAME, n == null ? UNKNOWN : n); //add the timestamp @@ -141,14 +145,14 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan rootElement.setAttribute(HOSTNAME, getHostname()); // Output properties - Element propsElement = doc.createElement(PROPERTIES); + final Element propsElement = doc.createElement(PROPERTIES); rootElement.appendChild(propsElement); - Properties props = suite.getProperties(); + final Properties props = suite.getProperties(); if (props != null) { - Enumeration e = props.propertyNames(); + final Enumeration e = props.propertyNames(); while (e.hasMoreElements()) { - String name = (String) e.nextElement(); - Element propElement = doc.createElement(PROPERTY); + final String name = (String) e.nextElement(); + final Element propElement = doc.createElement(PROPERTY); propElement.setAttribute(ATTR_NAME, name); propElement.setAttribute(ATTR_VALUE, props.getProperty(name)); propsElement.appendChild(propElement); @@ -163,11 +167,11 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan private String getHostname() { String hostname = "localhost"; try { - InetAddress localHost = InetAddress.getLocalHost(); + final InetAddress localHost = InetAddress.getLocalHost(); if (localHost != null) { hostname = localHost.getHostName(); } - } catch (UnknownHostException e) { + } catch (final UnknownHostException e) { // fall back to default 'localhost' } return hostname; @@ -178,7 +182,7 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan * @param suite the testsuite. * @throws BuildException on error. */ - public void endTestSuite(JUnitTest suite) throws BuildException { + public void endTestSuite(final JUnitTest suite) throws BuildException { rootElement.setAttribute(ATTR_TESTS, "" + suite.runCount()); rootElement.setAttribute(ATTR_FAILURES, "" + suite.failureCount()); rootElement.setAttribute(ATTR_ERRORS, "" + suite.errorCount()); @@ -191,13 +195,13 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan wri = new BufferedWriter(new OutputStreamWriter(out, "UTF8")); wri.write("\n"); (new DOMElementWriter()).write(rootElement, wri, 0, " "); - } catch (IOException exc) { + } catch (final IOException exc) { throw new BuildException("Unable to write log file", exc); } finally { if (wri != null) { try { wri.flush(); - } catch (IOException ex) { + } catch (final IOException ex) { // ignore } } @@ -214,11 +218,11 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan *

A new Test is started. * @param t the test. */ - public void startTest(Test t) { + public void startTest(final Test t) { testStarts.put(createDescription(t), System.currentTimeMillis()); } - private static String createDescription(Test test) throws BuildException { + private static String createDescription(final Test test) throws BuildException { return JUnitVersionHelper.getTestCaseName(test) + "(" + JUnitVersionHelper.getTestCaseClassName(test) + ")"; } @@ -228,8 +232,8 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan *

A Test is finished. * @param test the test. */ - public void endTest(Test test) { - String testDescription = createDescription(test); + public void endTest(final Test test) { + final String testDescription = createDescription(test); // Fix for bug #5637 - if a junit.extensions.TestSetup is // used and throws an exception during setUp then startTest @@ -240,7 +244,7 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan Element currentTest; if (!failedTests.containsKey(test) && !skippedTests.containsKey(testDescription) && !ignoredTests.containsKey(testDescription)) { currentTest = doc.createElement(TESTCASE); - String n = JUnitVersionHelper.getTestCaseName(test); + final String n = JUnitVersionHelper.getTestCaseName(test); currentTest.setAttribute(ATTR_NAME, n == null ? UNKNOWN : n); // a TestSuite can contain Tests from multiple classes, @@ -253,7 +257,7 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan currentTest = testElements.get(testDescription); } - Long l = testStarts.get(createDescription(test)); + final Long l = testStarts.get(createDescription(test)); currentTest.setAttribute(ATTR_TIME, "" + ((System.currentTimeMillis() - l) / ONE_SECOND)); } @@ -265,7 +269,7 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan * @param test the test. * @param t the exception. */ - public void addFailure(Test test, Throwable t) { + public void addFailure(final Test test, final Throwable t) { formatError(FAILURE, test, t); } @@ -276,7 +280,7 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan * @param test the test. * @param t the assertion. */ - public void addFailure(Test test, AssertionFailedError t) { + public void addFailure(final Test test, final AssertionFailedError t) { addFailure(test, (Throwable) t); } @@ -287,17 +291,17 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan * @param test the test. * @param t the error. */ - public void addError(Test test, Throwable t) { + public void addError(final Test test, final Throwable t) { formatError(ERROR, test, t); } - private void formatError(String type, Test test, Throwable t) { + private void formatError(final String type, final Test test, final Throwable t) { if (test != null) { endTest(test); failedTests.put(test, test); } - Element nested = doc.createElement(type); + final Element nested = doc.createElement(type); Element currentTest; if (test != null) { currentTest = testElements.get(createDescription(test)); @@ -307,24 +311,24 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan currentTest.appendChild(nested); - String message = t.getMessage(); + final String message = t.getMessage(); if (message != null && message.length() > 0) { nested.setAttribute(ATTR_MESSAGE, t.getMessage()); } nested.setAttribute(ATTR_TYPE, t.getClass().getName()); - String strace = JUnitTestRunner.getFilteredTrace(t); - Text trace = doc.createTextNode(strace); + final String strace = JUnitTestRunner.getFilteredTrace(t); + final Text trace = doc.createTextNode(strace); nested.appendChild(trace); } - private void formatOutput(String type, String output) { - Element nested = doc.createElement(type); + private void formatOutput(final String type, final String output) { + final Element nested = doc.createElement(type); rootElement.appendChild(nested); nested.appendChild(doc.createCDATASection(output)); } - public void testIgnored(Test test) { + public void testIgnored(final Test test) { formatSkip(test, JUnitVersionHelper.getIgnoreMessage(test)); if (test != null) { ignoredTests.put(createDescription(test), test); @@ -332,12 +336,12 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan } - public void formatSkip(Test test, String message) { + public void formatSkip(final Test test, final String message) { if (test != null) { endTest(test); } - Element nested = doc.createElement("skipped"); + final Element nested = doc.createElement("skipped"); if (message != null) { nested.setAttribute("message", message); @@ -354,7 +358,7 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan } - public void testAssumptionFailure(Test test, Throwable failure) { + public void testAssumptionFailure(final Test test, final Throwable failure) { formatSkip(test, failure.getMessage()); skippedTests.put(createDescription(test), test); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/AbstractSshMessage.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/AbstractSshMessage.java index c925fc652..9365e8cd2 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/AbstractSshMessage.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/AbstractSshMessage.java @@ -25,9 +25,11 @@ import java.text.NumberFormat; import org.apache.tools.ant.BuildException; +import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelExec; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; import com.jcraft.jsch.SftpProgressMonitor; /** @@ -36,10 +38,10 @@ import com.jcraft.jsch.SftpProgressMonitor; public abstract class AbstractSshMessage { private static final double ONE_SECOND = 1000.0; - private Session session; - private boolean verbose; + private final Session session; + private final boolean verbose; private LogListener listener = new LogListener() { - public void log(String message) { + public void log(final String message) { // do nothing; } }; @@ -48,7 +50,7 @@ public abstract class AbstractSshMessage { * Constructor for AbstractSshMessage * @param session the ssh session to use */ - public AbstractSshMessage(Session session) { + public AbstractSshMessage(final Session session) { this(false, session); } @@ -58,7 +60,7 @@ public abstract class AbstractSshMessage { * @param session the ssh session to use * @since Ant 1.6.2 */ - public AbstractSshMessage(boolean verbose, Session session) { + public AbstractSshMessage(final boolean verbose, final Session session) { this.verbose = verbose; this.session = session; } @@ -69,8 +71,8 @@ public abstract class AbstractSshMessage { * @return the channel * @throws JSchException on error */ - protected Channel openExecChannel(String command) throws JSchException { - ChannelExec channel = (ChannelExec) session.openChannel("exec"); + protected Channel openExecChannel(final String command) throws JSchException { + final ChannelExec channel = (ChannelExec) session.openChannel("exec"); channel.setCommand(command); return channel; @@ -82,7 +84,7 @@ public abstract class AbstractSshMessage { * @throws JSchException on error */ protected ChannelSftp openSftpChannel() throws JSchException { - ChannelSftp channel = (ChannelSftp) session.openChannel("sftp"); + final ChannelSftp channel = (ChannelSftp) session.openChannel("sftp"); return channel; } @@ -92,8 +94,8 @@ public abstract class AbstractSshMessage { * @param out the output stream to use * @throws IOException on error */ - protected void sendAck(OutputStream out) throws IOException { - byte[] buf = new byte[1]; + protected void sendAck(final OutputStream out) throws IOException { + final byte[] buf = new byte[1]; buf[0] = 0; out.write(buf); out.flush(); @@ -106,9 +108,9 @@ public abstract class AbstractSshMessage { * @throws IOException on I/O error * @throws BuildException on other errors */ - protected void waitForAck(InputStream in) + protected void waitForAck(final InputStream in) throws IOException, BuildException { - int b = in.read(); + final int b = in.read(); // b may be 0 for success, // 1 for error, @@ -118,7 +120,7 @@ public abstract class AbstractSshMessage { // didn't receive any response throw new BuildException("No response from server"); } else if (b != 0) { - StringBuffer sb = new StringBuffer(); + final StringBuffer sb = new StringBuffer(); int c = in.read(); while (c > 0 && c != '\n') { @@ -150,7 +152,7 @@ public abstract class AbstractSshMessage { * Set a log listener. * @param aListener the log listener */ - public void setLogListener(LogListener aListener) { + public void setLogListener(final LogListener aListener) { listener = aListener; } @@ -158,7 +160,7 @@ public abstract class AbstractSshMessage { * Log a message to the log listener. * @param message the message to log */ - protected void log(String message) { + protected void log(final String message) { listener.log(message); } @@ -168,11 +170,11 @@ public abstract class AbstractSshMessage { * @param timeEnded the finishing time * @param totalLength the total length */ - protected void logStats(long timeStarted, - long timeEnded, - long totalLength) { - double duration = (timeEnded - timeStarted) / ONE_SECOND; - NumberFormat format = NumberFormat.getNumberInstance(); + protected void logStats(final long timeStarted, + final long timeEnded, + final long totalLength) { + final double duration = (timeEnded - timeStarted) / ONE_SECOND; + final NumberFormat format = NumberFormat.getNumberInstance(); format.setMaximumFractionDigits(2); format.setMinimumFractionDigits(1); listener.log("File transfer time: " + format.format(duration) @@ -197,11 +199,11 @@ public abstract class AbstractSshMessage { * @param percentTransmitted the current percent transmitted * @return the percent that the file is of the total */ - protected final int trackProgress(long filesize, long totalLength, - int percentTransmitted) { + protected final int trackProgress(final long filesize, final long totalLength, + final int percentTransmitted) { // CheckStyle:MagicNumber OFF - int percent = (int) Math.round(Math.floor((totalLength + final int percent = (int) Math.round(Math.floor((totalLength / (double) filesize) * 100)); if (percent > percentTransmitted) { @@ -246,13 +248,13 @@ public abstract class AbstractSshMessage { private long totalLength = 0; private int percentTransmitted = 0; - public void init(int op, String src, String dest, long max) { + public void init(final int op, final String src, final String dest, final long max) { initFileSize = max; totalLength = 0; percentTransmitted = 0; } - public boolean count(long len) { + public boolean count(final long len) { totalLength += len; percentTransmitted = trackProgress(initFileSize, totalLength, diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHBase.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHBase.java index f36b1343b..bd98b3aa0 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHBase.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHBase.java @@ -24,6 +24,7 @@ import org.apache.tools.ant.Task; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; /** * Base class for Ant tasks using jsch. @@ -40,7 +41,7 @@ public abstract class SSHBase extends Task implements LogListener { private int port = SSH_PORT; private boolean failOnError = true; private boolean verbose; - private SSHUserInfo userInfo; + private final SSHUserInfo userInfo; /** * Constructor for SSHBase. @@ -55,7 +56,7 @@ public abstract class SSHBase extends Task implements LogListener { * * @param host The new host value */ - public void setHost(String host) { + public void setHost(final String host) { this.host = host; } @@ -73,7 +74,7 @@ public abstract class SSHBase extends Task implements LogListener { * @param failure if true throw a build exception when a failure occuries, * otherwise just log the failure and continue */ - public void setFailonerror(boolean failure) { + public void setFailonerror(final boolean failure) { failOnError = failure; } @@ -90,7 +91,7 @@ public abstract class SSHBase extends Task implements LogListener { * @param verbose if true output more verbose logging * @since Ant 1.6.2 */ - public void setVerbose(boolean verbose) { + public void setVerbose(final boolean verbose) { this.verbose = verbose; } @@ -108,7 +109,7 @@ public abstract class SSHBase extends Task implements LogListener { * * @param username The new username value */ - public void setUsername(String username) { + public void setUsername(final String username) { userInfo.setName(username); } @@ -118,7 +119,7 @@ public abstract class SSHBase extends Task implements LogListener { * * @param password The new password value */ - public void setPassword(String password) { + public void setPassword(final String password) { userInfo.setPassword(password); } @@ -127,7 +128,7 @@ public abstract class SSHBase extends Task implements LogListener { * * @param keyfile The new keyfile value */ - public void setKeyfile(String keyfile) { + public void setKeyfile(final String keyfile) { userInfo.setKeyfile(keyfile); } @@ -136,7 +137,7 @@ public abstract class SSHBase extends Task implements LogListener { * * @param passphrase The new passphrase value */ - public void setPassphrase(String passphrase) { + public void setPassphrase(final String passphrase) { userInfo.setPassphrase(passphrase); } @@ -148,7 +149,7 @@ public abstract class SSHBase extends Task implements LogListener { * * @param knownHosts a path to the known hosts file. */ - public void setKnownhosts(String knownHosts) { + public void setKnownhosts(final String knownHosts) { this.knownHosts = knownHosts; } @@ -157,7 +158,7 @@ public abstract class SSHBase extends Task implements LogListener { * * @param yesOrNo if true trust the identity of unknown hosts. */ - public void setTrust(boolean yesOrNo) { + public void setTrust(final boolean yesOrNo) { userInfo.setTrust(yesOrNo); } @@ -166,7 +167,7 @@ public abstract class SSHBase extends Task implements LogListener { * * @param port port number of remote host. */ - public void setPort(int port) { + public void setPort(final int port) { this.port = port; } @@ -195,14 +196,14 @@ public abstract class SSHBase extends Task implements LogListener { * @throws JSchException on error */ protected Session openSession() throws JSchException { - JSch jsch = new JSch(); + final JSch jsch = new JSch(); final SSHBase base = this; if(verbose) { JSch.setLogger(new com.jcraft.jsch.Logger(){ - public boolean isEnabled(int level){ + public boolean isEnabled(final int level){ return true; } - public void log(int level, String message){ + public void log(final int level, final String message){ base.log(message, Project.MSG_INFO); } }); @@ -216,7 +217,7 @@ public abstract class SSHBase extends Task implements LogListener { jsch.setKnownHosts(knownHosts); } - Session session = jsch.getSession(userInfo.getName(), host, port); + final Session session = jsch.getSession(userInfo.getName(), host, port); session.setConfig("PreferredAuthentications", "publickey,keyboard-interactive,password"); session.setUserInfo(userInfo); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java index 564d07d87..0fd252eed 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java @@ -41,6 +41,7 @@ import org.apache.tools.ant.util.TeeOutputStream; import com.jcraft.jsch.ChannelExec; import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; /** * Executes a command on a remote machine via ssh. diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHSession.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHSession.java index b39aa6b70..15d7b7e58 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHSession.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHSession.java @@ -31,6 +31,8 @@ import org.apache.tools.ant.Task; import org.apache.tools.ant.TaskContainer; import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; + /** * Establishes an ssh session with a remote machine, optionally @@ -43,10 +45,10 @@ public class SSHSession extends SSHBase { /** units are milliseconds, default is 0=infinite */ private long maxwait = 0; - private Vector localTunnels = new Vector(); - private Set localPortsUsed = new TreeSet(); - private Vector remoteTunnels = new Vector(); - private Set remotePortsUsed = new TreeSet(); + private final Vector localTunnels = new Vector(); + private final Set localPortsUsed = new TreeSet(); + private final Vector remoteTunnels = new Vector(); + private final Set remotePortsUsed = new TreeSet(); private NestedSequential nestedSequential = null; private static final String TIMEOUT_MESSAGE = @@ -54,7 +56,7 @@ public class SSHSession extends SSHBase { /** Optional Vector holding the nested tasks */ - private Vector nestedTasks = new Vector(); + private final Vector nestedTasks = new Vector(); /** * Add a nested task to Sequential. @@ -62,7 +64,7 @@ public class SSHSession extends SSHBase { * @param nestedTask Nested task to execute Sequential *

*/ - public void addTask(Task nestedTask) { + public void addTask(final Task nestedTask) { nestedTasks.addElement(nestedTask); } @@ -73,7 +75,7 @@ public class SSHSession extends SSHBase { * * @param timeout The new timeout value in seconds */ - public void setTimeout(long timeout) { + public void setTimeout(final long timeout) { maxwait = timeout; } @@ -84,15 +86,15 @@ public class SSHSession extends SSHBase { * @param tunnels a comma-delimited list of lport:rhost:rport * tunnel specifications */ - public void setLocaltunnels(String tunnels) { - String[] specs = tunnels.split(", "); + public void setLocaltunnels(final String tunnels) { + final String[] specs = tunnels.split(", "); for (int i = 0; i < specs.length; i++) { if (specs[i].length() > 0) { - String[] spec = specs[i].split(":", 3); - int lport = Integer.parseInt(spec[0]); - String rhost = spec[1]; - int rport = Integer.parseInt(spec[2]); - LocalTunnel tunnel = createLocalTunnel(); + final String[] spec = specs[i].split(":", 3); + final int lport = Integer.parseInt(spec[0]); + final String rhost = spec[1]; + final int rport = Integer.parseInt(spec[2]); + final LocalTunnel tunnel = createLocalTunnel(); tunnel.setLPort(lport); tunnel.setRHost(rhost); tunnel.setRPort(rport); @@ -107,15 +109,15 @@ public class SSHSession extends SSHBase { * @param tunnels a comma-delimited list of rport:lhost:lport * tunnel specifications */ - public void setRemotetunnels(String tunnels) { - String[] specs = tunnels.split(", "); + public void setRemotetunnels(final String tunnels) { + final String[] specs = tunnels.split(", "); for (int i = 0; i < specs.length; i++) { if (specs[i].length() > 0) { - String[] spec = specs[i].split(":", 3); - int rport = Integer.parseInt(spec[0]); - String lhost = spec[1]; - int lport = Integer.parseInt(spec[2]); - RemoteTunnel tunnel = createRemoteTunnel(); + final String[] spec = specs[i].split(":", 3); + final int rport = Integer.parseInt(spec[0]); + final String lhost = spec[1]; + final int lport = Integer.parseInt(spec[2]); + final RemoteTunnel tunnel = createRemoteTunnel(); tunnel.setRPort(rport); tunnel.setLHost(lhost); tunnel.setLPort(lport); @@ -153,28 +155,28 @@ public class SSHSession extends SSHBase { session = openSession(); session.setTimeout((int) maxwait); - for (Iterator i = localTunnels.iterator(); i.hasNext();) { - LocalTunnel tunnel = (LocalTunnel) i.next(); + for (final Iterator i = localTunnels.iterator(); i.hasNext();) { + final LocalTunnel tunnel = (LocalTunnel) i.next(); session.setPortForwardingL(tunnel.getLPort(), tunnel.getRHost(), tunnel.getRPort()); } - for (Iterator i = remoteTunnels.iterator(); i.hasNext();) { - RemoteTunnel tunnel = (RemoteTunnel) i.next(); + for (final Iterator i = remoteTunnels.iterator(); i.hasNext();) { + final RemoteTunnel tunnel = (RemoteTunnel) i.next(); session.setPortForwardingR(tunnel.getRPort(), tunnel.getLHost(), tunnel.getLPort()); } - for (Iterator i = nestedSequential.getNested().iterator(); + for (final Iterator i = nestedSequential.getNested().iterator(); i.hasNext();) { - Task nestedTask = (Task) i.next(); + final Task nestedTask = (Task) i.next(); nestedTask.perform(); } // completed successfully - } catch (JSchException e) { + } catch (final JSchException e) { if (e.getMessage().indexOf("session is down") >= 0) { if (getFailonerror()) { throw new BuildException(TIMEOUT_MESSAGE, e); @@ -189,10 +191,10 @@ public class SSHSession extends SSHBase { Project.MSG_ERR); } } - } catch (BuildException e) { + } catch (final BuildException e) { // avoid wrapping it into yet another BuildException further down throw e; - } catch (Exception e) { + } catch (final Exception e) { if (getFailonerror()) { throw new BuildException(e); } else { @@ -206,13 +208,13 @@ public class SSHSession extends SSHBase { } public LocalTunnel createLocalTunnel() { - LocalTunnel tunnel = new LocalTunnel(); + final LocalTunnel tunnel = new LocalTunnel(); localTunnels.add(tunnel); return tunnel; } public RemoteTunnel createRemoteTunnel() { - RemoteTunnel tunnel = new RemoteTunnel(); + final RemoteTunnel tunnel = new RemoteTunnel(); remoteTunnels.add(tunnel); return tunnel; } @@ -223,8 +225,8 @@ public class SSHSession extends SSHBase { int lport = 0; String rhost = null; int rport = 0; - public void setLPort(int lport) { - Integer portKey = new Integer(lport); + public void setLPort(final int lport) { + final Integer portKey = new Integer(lport); if (localPortsUsed.contains(portKey)) { throw new BuildException("Multiple local tunnels defined to" + " use same local port " + lport); @@ -232,8 +234,8 @@ public class SSHSession extends SSHBase { localPortsUsed.add(portKey); this.lport = lport; } - public void setRHost(String rhost) { this.rhost = rhost; } - public void setRPort(int rport) { this.rport = rport; } + public void setRHost(final String rhost) { this.rhost = rhost; } + public void setRPort(final int rport) { this.rport = rport; } public int getLPort() { if (lport == 0) { throw new BuildException("lport is required for LocalTunnel."); @@ -260,10 +262,10 @@ public class SSHSession extends SSHBase { int lport = 0; String lhost = null; int rport = 0; - public void setLPort(int lport) { this.lport = lport; } - public void setLHost(String lhost) { this.lhost = lhost; } - public void setRPort(int rport) { - Integer portKey = new Integer(rport); + public void setLPort(final int lport) { this.lport = lport; } + public void setLHost(final String lhost) { this.lhost = lhost; } + public void setRPort(final int rport) { + final Integer portKey = new Integer(rport); if (remotePortsUsed.contains(portKey)) { throw new BuildException("Multiple remote tunnels defined to" + " use same remote port " + rport); @@ -309,15 +311,14 @@ public class SSHSession extends SSHBase { * This is a simple task container. */ public static class NestedSequential implements TaskContainer { - private List nested = new ArrayList(); + private final List nested = new ArrayList(); /** * Add a task or type to the container. * * @param task an unknown element. */ - @Override - public void addTask(Task task) { + public void addTask(final Task task) { nested.add(task); } diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java index 74cd2c865..9676467dc 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java @@ -31,6 +31,7 @@ import org.apache.tools.ant.Project; import org.apache.tools.ant.types.FileSet; import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; /** * Ant task for sending files to remote machine over ssh/scp. @@ -61,7 +62,7 @@ public class Scp extends SSHBase { * user:password@host:/directory/path/*
* @param aFromUri a string representing the file to transfer. */ - public void setFile(String aFromUri) { + public void setFile(final String aFromUri) { setFromUri(aFromUri); this.isFromRemote = isRemoteUri(this.fromUri); } @@ -75,7 +76,7 @@ public class Scp extends SSHBase { * @param aToUri a string representing the target of the copy. */ - public void setTodir(String aToUri) { + public void setTodir(final String aToUri) { setToUri(aToUri); this.isToRemote = isRemoteUri(this.toUri); } @@ -87,7 +88,7 @@ public class Scp extends SSHBase { * @param aFromUri a string representing the source of the copy. * @since Ant 1.6.2 */ - public void setLocalFile(String aFromUri) { + public void setLocalFile(final String aFromUri) { setFromUri(aFromUri); this.isFromRemote = false; } @@ -98,7 +99,7 @@ public class Scp extends SSHBase { * @param aFromUri a string representing the source of the copy. * @since Ant 1.6.2 */ - public void setRemoteFile(String aFromUri) { + public void setRemoteFile(final String aFromUri) { validateRemoteUri("remoteFile", aFromUri); setFromUri(aFromUri); this.isFromRemote = true; @@ -111,7 +112,7 @@ public class Scp extends SSHBase { * @param aToUri a string representing the target of the copy. * @since Ant 1.6.2 */ - public void setLocalTodir(String aToUri) { + public void setLocalTodir(final String aToUri) { setToUri(aToUri); this.isToRemote = false; } @@ -121,7 +122,7 @@ public class Scp extends SSHBase { * remote system is to be preserved during copy. * @since Ant 1.8.0 */ - public void setPreservelastmodified(boolean yesOrNo) { + public void setPreservelastmodified(final boolean yesOrNo) { this.preserveLastModified = yesOrNo; } @@ -131,13 +132,13 @@ public class Scp extends SSHBase { * @param aToUri a string representing the target of the copy. * @since Ant 1.6.2 */ - public void setRemoteTodir(String aToUri) { + public void setRemoteTodir(final String aToUri) { validateRemoteUri("remoteToDir", aToUri); setToUri(aToUri); this.isToRemote = true; } - private static void validateRemoteUri(String type, String aToUri) { + private static void validateRemoteUri(final String type, final String aToUri) { if (!isRemoteUri(aToUri)) { throw new BuildException(type + " '" + aToUri + "' is invalid. " + "The 'remoteToDir' attribute must " @@ -153,7 +154,7 @@ public class Scp extends SSHBase { * @param aToUri a string representing the target of the copy. * @since Ant 1.6.2 */ - public void setLocalTofile(String aToUri) { + public void setLocalTofile(final String aToUri) { setToUri(aToUri); this.isToRemote = false; } @@ -164,7 +165,7 @@ public class Scp extends SSHBase { * @param aToUri a string representing the target of the copy. * @since Ant 1.6.2 */ - public void setRemoteTofile(String aToUri) { + public void setRemoteTofile(final String aToUri) { validateRemoteUri("remoteToFile", aToUri); setToUri(aToUri); this.isToRemote = true; @@ -175,7 +176,7 @@ public class Scp extends SSHBase { * * @param yesOrNo if true sftp protocol will be used. */ - public void setSftp(boolean yesOrNo) { + public void setSftp(final boolean yesOrNo) { isSftp = yesOrNo; } @@ -185,7 +186,7 @@ public class Scp extends SSHBase { * * @param set FileSet to send to remote host. */ - public void addFileset(FileSet set) { + public void addFileset(final FileSet set) { if (fileSets == null) { fileSets = new LinkedList(); } @@ -233,10 +234,10 @@ public class Scp extends SSHBase { + "must have syntax like the following: " + "user:password@host:/path"); } - } catch (Exception e) { + } catch (final Exception e) { if (getFailonerror()) { if(e instanceof BuildException) { - BuildException be = (BuildException) e; + final BuildException be = (BuildException) e; if(be.getLocation() == null) { be.setLocation(getLocation()); } @@ -250,9 +251,9 @@ public class Scp extends SSHBase { } } - private void download(String fromSshUri, String toPath) + private void download(final String fromSshUri, final String toPath) throws JSchException, IOException { - String file = parseUri(fromSshUri); + final String file = parseUri(fromSshUri); Session session = null; try { @@ -281,16 +282,16 @@ public class Scp extends SSHBase { } } - private void upload(List fileSet, String toSshUri) + private void upload(final List fileSet, final String toSshUri) throws IOException, JSchException { - String file = parseUri(toSshUri); + final String file = parseUri(toSshUri); Session session = null; try { - List list = new ArrayList(fileSet.size()); - for (Iterator i = fileSet.iterator(); i.hasNext();) { - FileSet set = (FileSet) i.next(); - Directory d = createDirectory(set); + final List list = new ArrayList(fileSet.size()); + for (final Iterator i = fileSet.iterator(); i.hasNext();) { + final FileSet set = (FileSet) i.next(); + final Directory d = createDirectory(set); if (d != null) { list.add(d); } @@ -315,9 +316,9 @@ public class Scp extends SSHBase { } } - private void upload(String fromPath, String toSshUri) + private void upload(final String fromPath, final String toSshUri) throws IOException, JSchException { - String file = parseUri(toSshUri); + final String file = parseUri(toSshUri); Session session = null; try { @@ -342,17 +343,17 @@ public class Scp extends SSHBase { } } - private String parseUri(String uri) { + private String parseUri(final String uri) { int indexOfAt = uri.indexOf('@'); - int indexOfColon = uri.indexOf(':'); + final int indexOfColon = uri.indexOf(':'); if (indexOfColon > -1 && indexOfColon < indexOfAt) { // user:password@host:/path notation // everything upto the last @ before the last : is considered // password. (so if the path contains an @ and a : it will not work) int indexOfCurrentAt = indexOfAt; - int indexOfLastColon = uri.lastIndexOf(':'); + final int indexOfLastColon = uri.lastIndexOf(':'); while (indexOfCurrentAt > -1 && indexOfCurrentAt < indexOfLastColon) { indexOfAt = indexOfCurrentAt; @@ -374,7 +375,7 @@ public class Scp extends SSHBase { + "given. Can't authenticate."); } - int indexOfPath = uri.indexOf(':', indexOfAt + 1); + final int indexOfPath = uri.indexOf(':', indexOfAt + 1); if (indexOfPath == -1) { throw new BuildException("no remote path in " + uri); } @@ -387,26 +388,26 @@ public class Scp extends SSHBase { return remotePath; } - private static boolean isRemoteUri(String uri) { + private static boolean isRemoteUri(final String uri) { boolean isRemote = true; - int indexOfAt = uri.indexOf('@'); + final int indexOfAt = uri.indexOf('@'); if (indexOfAt < 0) { isRemote = false; } return isRemote; } - private Directory createDirectory(FileSet set) { - DirectoryScanner scanner = set.getDirectoryScanner(getProject()); + private Directory createDirectory(final FileSet set) { + final DirectoryScanner scanner = set.getDirectoryScanner(getProject()); Directory root = new Directory(scanner.getBasedir()); - String[] files = scanner.getIncludedFiles(); + final String[] files = scanner.getIncludedFiles(); if (files.length != 0) { for (int j = 0; j < files.length; j++) { - String[] path = Directory.getPath(files[j]); + final String[] path = Directory.getPath(files[j]); Directory current = root; File currentParent = scanner.getBasedir(); for (int i = 0; i < path.length; i++) { - File file = new File(currentParent, path[i]); + final File file = new File(currentParent, path[i]); if (file.isDirectory()) { current.addDirectory(new Directory(file)); current = current.getChild(file); @@ -423,26 +424,26 @@ public class Scp extends SSHBase { return root; } - private void setFromUri(String fromUri) { + private void setFromUri(final String fromUri) { if (this.fromUri != null) { throw exactlyOne(FROM_ATTRS); } this.fromUri = fromUri; } - private void setToUri(String toUri) { + private void setToUri(final String toUri) { if (this.toUri != null) { throw exactlyOne(TO_ATTRS); } this.toUri = toUri; } - private BuildException exactlyOne(String[] attrs) { + private BuildException exactlyOne(final String[] attrs) { return exactlyOne(attrs, null); } - private BuildException exactlyOne(String[] attrs, String alt) { - StringBuffer buf = new StringBuffer("Exactly one of ").append( + private BuildException exactlyOne(final String[] attrs, final String alt) { + final StringBuffer buf = new StringBuffer("Exactly one of ").append( '[').append(attrs[0]); for (int i = 1; i < attrs.length; i++) { buf.append('|').append(attrs[i]); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessage.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessage.java index c6130f36f..0cc997036 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessage.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessage.java @@ -28,8 +28,10 @@ import java.io.OutputStream; import org.apache.tools.ant.util.FileUtils; +import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; import com.jcraft.jsch.SftpATTRS; import com.jcraft.jsch.SftpException; @@ -51,7 +53,7 @@ public class ScpFromMessage extends AbstractSshMessage { * Constructor for ScpFromMessage * @param session the ssh session to use */ - public ScpFromMessage(Session session) { + public ScpFromMessage(final Session session) { super(session); } @@ -61,7 +63,7 @@ public class ScpFromMessage extends AbstractSshMessage { * @param session the ssh session to use * @since Ant 1.7 */ - public ScpFromMessage(boolean verbose, Session session) { + public ScpFromMessage(final boolean verbose, final Session session) { super(verbose, session); } @@ -74,11 +76,11 @@ public class ScpFromMessage extends AbstractSshMessage { * @param recursive if true use recursion (-r option to scp) * @since Ant 1.6.2 */ - public ScpFromMessage(boolean verbose, - Session session, - String aRemoteFile, - File aLocalFile, - boolean recursive) { + public ScpFromMessage(final boolean verbose, + final Session session, + final String aRemoteFile, + final File aLocalFile, + final boolean recursive) { this(false, session, aRemoteFile, aLocalFile, recursive, false); } @@ -89,10 +91,10 @@ public class ScpFromMessage extends AbstractSshMessage { * @param aLocalFile the local file * @param recursive if true use recursion (-r option to scp) */ - public ScpFromMessage(Session session, - String aRemoteFile, - File aLocalFile, - boolean recursive) { + public ScpFromMessage(final Session session, + final String aRemoteFile, + final File aLocalFile, + final boolean recursive) { this(false, session, aRemoteFile, aLocalFile, recursive); } @@ -107,12 +109,12 @@ public class ScpFromMessage extends AbstractSshMessage { * modification times * @since Ant 1.8.0 */ - public ScpFromMessage(boolean verbose, - Session session, - String aRemoteFile, - File aLocalFile, - boolean recursive, - boolean preserveLastModified) { + public ScpFromMessage(final boolean verbose, + final Session session, + final String aRemoteFile, + final File aLocalFile, + final boolean recursive, + final boolean preserveLastModified) { super(verbose, session); this.remoteFile = aRemoteFile; this.localFile = aLocalFile; @@ -131,11 +133,11 @@ public class ScpFromMessage extends AbstractSshMessage { command += "-r "; } command += remoteFile; - Channel channel = openExecChannel(command); + final Channel channel = openExecChannel(command); try { // get I/O streams for remote scp - OutputStream out = channel.getOutputStream(); - InputStream in = channel.getInputStream(); + final OutputStream out = channel.getOutputStream(); + final InputStream in = channel.getInputStream(); channel.connect(); @@ -153,18 +155,18 @@ public class ScpFromMessage extends AbstractSshMessage { return preserveLastModified; } - private void startRemoteCpProtocol(InputStream in, - OutputStream out, - File localFile) + private void startRemoteCpProtocol(final InputStream in, + final OutputStream out, + final File localFile) throws IOException, JSchException { File startFile = localFile; while (true) { // C0644 filesize filename - header for a regular file // T time 0 time 0\n - present if perserve time. // D directory - this is the header for a directory. - ByteArrayOutputStream stream = new ByteArrayOutputStream(); + final ByteArrayOutputStream stream = new ByteArrayOutputStream(); while (true) { - int read = in.read(); + final int read = in.read(); if (read < 0) { return; } @@ -173,7 +175,7 @@ public class ScpFromMessage extends AbstractSshMessage { } stream.write(read); } - String serverResponse = stream.toString("UTF-8"); + final String serverResponse = stream.toString("UTF-8"); if (serverResponse.charAt(0) == 'C') { parseAndFetchFile(serverResponse, startFile, out, in); } else if (serverResponse.charAt(0) == 'D') { @@ -191,14 +193,14 @@ public class ScpFromMessage extends AbstractSshMessage { } } - private File parseAndCreateDirectory(String serverResponse, - File localFile) { + private File parseAndCreateDirectory(final String serverResponse, + final File localFile) { int start = serverResponse.indexOf(" "); // appears that the next token is not used and it's zero. start = serverResponse.indexOf(" ", start + 1); - String directoryName = serverResponse.substring(start + 1); + final String directoryName = serverResponse.substring(start + 1); if (localFile.isDirectory()) { - File dir = new File(localFile, directoryName); + final File dir = new File(localFile, directoryName); dir.mkdir(); log("Creating: " + dir); return dir; @@ -206,19 +208,19 @@ public class ScpFromMessage extends AbstractSshMessage { return null; } - private void parseAndFetchFile(String serverResponse, - File localFile, - OutputStream out, - InputStream in) + private void parseAndFetchFile(final String serverResponse, + final File localFile, + final OutputStream out, + final InputStream in) throws IOException, JSchException { int start = 0; int end = serverResponse.indexOf(" ", start + 1); start = end + 1; end = serverResponse.indexOf(" ", start + 1); - long filesize = Long.parseLong(serverResponse.substring(start, end)); - String filename = serverResponse.substring(end + 1); + final long filesize = Long.parseLong(serverResponse.substring(start, end)); + final String filename = serverResponse.substring(end + 1); log("Receiving: " + filename + " : " + filesize); - File transferFile = (localFile.isDirectory()) + final File transferFile = (localFile.isDirectory()) ? new File(localFile, filename) : localFile; fetchFile(transferFile, filesize, out, in); @@ -226,25 +228,25 @@ public class ScpFromMessage extends AbstractSshMessage { sendAck(out); } - private void fetchFile(File localFile, + private void fetchFile(final File localFile, long filesize, - OutputStream out, - InputStream in) + final OutputStream out, + final InputStream in) throws IOException, JSchException { - byte[] buf = new byte[BUFFER_SIZE]; + final byte[] buf = new byte[BUFFER_SIZE]; sendAck(out); // read a content of lfile - FileOutputStream fos = new FileOutputStream(localFile); + final FileOutputStream fos = new FileOutputStream(localFile); int length; long totalLength = 0; - long startTime = System.currentTimeMillis(); + final long startTime = System.currentTimeMillis(); // only track progress for files larger than 100kb in verbose mode - boolean trackProgress = getVerbose() && filesize > HUNDRED_KILOBYTES; + final boolean trackProgress = getVerbose() && filesize > HUNDRED_KILOBYTES; // since filesize keeps on decreasing we have to store the // initial filesize - long initFilesize = filesize; + final long initFilesize = filesize; int percentTransmitted = 0; try { @@ -269,7 +271,7 @@ public class ScpFromMessage extends AbstractSshMessage { } } } finally { - long endTime = System.currentTimeMillis(); + final long endTime = System.currentTimeMillis(); logStats(startTime, endTime, totalLength); fos.flush(); fos.close(); @@ -280,14 +282,14 @@ public class ScpFromMessage extends AbstractSshMessage { } } - private void setLastModified(File localFile) throws JSchException { + private void setLastModified(final File localFile) throws JSchException { SftpATTRS fileAttributes = null; - ChannelSftp channel = openSftpChannel(); + final ChannelSftp channel = openSftpChannel(); channel.connect(); try { fileAttributes = channel.lstat(remoteDir(remoteFile) + localFile.getName()); - } catch (SftpException e) { + } catch (final SftpException e) { throw new JSchException("failed to stat remote file", e); } FileUtils.getFileUtils().setFileLastModified(localFile, @@ -299,7 +301,7 @@ public class ScpFromMessage extends AbstractSshMessage { /** * returns the directory part of the remote file, if any. */ - private static String remoteDir(String remoteFile) { + private static String remoteDir(final String remoteFile) { int index = remoteFile.lastIndexOf("/"); if (index < 0) { index = remoteFile.lastIndexOf("\\"); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessageBySftp.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessageBySftp.java index 8366db227..04f72d235 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessageBySftp.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessageBySftp.java @@ -25,6 +25,7 @@ import org.apache.tools.ant.util.FileUtils; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; import com.jcraft.jsch.SftpATTRS; import com.jcraft.jsch.SftpException; import com.jcraft.jsch.SftpProgressMonitor; @@ -37,7 +38,7 @@ public class ScpFromMessageBySftp extends ScpFromMessage { private static final int HUNDRED_KILOBYTES = 102400; private String remoteFile; - private File localFile; + private final File localFile; private boolean isRecursive = false; private boolean verbose = false; @@ -50,11 +51,11 @@ public class ScpFromMessageBySftp extends ScpFromMessage { * @param recursive if true use recursion * @since Ant 1.7 */ - public ScpFromMessageBySftp(boolean verbose, - Session session, - String aRemoteFile, - File aLocalFile, - boolean recursive) { + public ScpFromMessageBySftp(final boolean verbose, + final Session session, + final String aRemoteFile, + final File aLocalFile, + final boolean recursive) { this(verbose, session, aRemoteFile, aLocalFile, recursive, false); } @@ -65,10 +66,10 @@ public class ScpFromMessageBySftp extends ScpFromMessage { * @param aLocalFile the local file * @param recursive if true use recursion */ - public ScpFromMessageBySftp(Session session, - String aRemoteFile, - File aLocalFile, - boolean recursive) { + public ScpFromMessageBySftp(final Session session, + final String aRemoteFile, + final File aLocalFile, + final boolean recursive) { this(false, session, aRemoteFile, aLocalFile, recursive); } @@ -83,12 +84,12 @@ public class ScpFromMessageBySftp extends ScpFromMessage { * modification times * @since Ant 1.8.0 */ - public ScpFromMessageBySftp(boolean verbose, - Session session, - String aRemoteFile, - File aLocalFile, - boolean recursive, - boolean preserveLastModified) { + public ScpFromMessageBySftp(final boolean verbose, + final Session session, + final String aRemoteFile, + final File aLocalFile, + final boolean recursive, + final boolean preserveLastModified) { super(verbose, session, aRemoteFile, aLocalFile, recursive, preserveLastModified); this.verbose = verbose; @@ -103,20 +104,20 @@ public class ScpFromMessageBySftp extends ScpFromMessage { * @throws JSchException on errors detected by scp */ public void execute() throws IOException, JSchException { - ChannelSftp channel = openSftpChannel(); + final ChannelSftp channel = openSftpChannel(); try { channel.connect(); try { - SftpATTRS attrs = channel.stat(remoteFile); + final SftpATTRS attrs = channel.stat(remoteFile); if (attrs.isDir() && !remoteFile.endsWith("/")) { remoteFile = remoteFile + "/"; } - } catch (SftpException ee) { + } catch (final SftpException ee) { // Ignored } getDir(channel, remoteFile, localFile); - } catch (SftpException e) { - JSchException schException = new JSchException("Could not get '"+ remoteFile + } catch (final SftpException e) { + final JSchException schException = new JSchException("Could not get '"+ remoteFile +"' to '"+localFile+"' - " +e.toString()); schException.initCause(e); @@ -129,9 +130,9 @@ public class ScpFromMessageBySftp extends ScpFromMessage { log("done\n"); } - private void getDir(ChannelSftp channel, - String remoteFile, - File localFile) throws IOException, SftpException { + private void getDir(final ChannelSftp channel, + final String remoteFile, + final File localFile) throws IOException, SftpException { String pwd = remoteFile; if (remoteFile.lastIndexOf('/') != -1) { if (remoteFile.length() > 1) { @@ -142,11 +143,11 @@ public class ScpFromMessageBySftp extends ScpFromMessage { if (!localFile.exists()) { localFile.mkdirs(); } - java.util.Vector files = channel.ls(remoteFile); + final java.util.Vector files = channel.ls(remoteFile); final int size = files.size(); for (int i = 0; i < size; i++) { - ChannelSftp.LsEntry le = (ChannelSftp.LsEntry) files.elementAt(i); - String name = le.getFilename(); + final ChannelSftp.LsEntry le = (ChannelSftp.LsEntry) files.elementAt(i); + final String name = le.getFilename(); if (le.getAttrs().isDir()) { if (name.equals(".") || name.equals("..")) { continue; @@ -161,13 +162,13 @@ public class ScpFromMessageBySftp extends ScpFromMessage { channel.cd(".."); } - private void getFile(ChannelSftp channel, - ChannelSftp.LsEntry le, + private void getFile(final ChannelSftp channel, + final ChannelSftp.LsEntry le, File localFile) throws IOException, SftpException { - String remoteFile = le.getFilename(); + final String remoteFile = le.getFilename(); if (!localFile.exists()) { - String path = localFile.getAbsolutePath(); - int i = path.lastIndexOf(File.pathSeparator); + final String path = localFile.getAbsolutePath(); + final int i = path.lastIndexOf(File.pathSeparator); if (i != -1) { if (path.length() > File.pathSeparator.length()) { new File(path.substring(0, i)).mkdirs(); @@ -179,11 +180,11 @@ public class ScpFromMessageBySftp extends ScpFromMessage { localFile = new File(localFile, remoteFile); } - long startTime = System.currentTimeMillis(); - long totalLength = le.getAttrs().getSize(); + final long startTime = System.currentTimeMillis(); + final long totalLength = le.getAttrs().getSize(); SftpProgressMonitor monitor = null; - boolean trackProgress = getVerbose() && totalLength > HUNDRED_KILOBYTES; + final boolean trackProgress = getVerbose() && totalLength > HUNDRED_KILOBYTES; if (trackProgress) { monitor = getProgressMonitor(); } @@ -191,7 +192,7 @@ public class ScpFromMessageBySftp extends ScpFromMessage { log("Receiving: " + remoteFile + " : " + le.getAttrs().getSize()); channel.get(remoteFile, localFile.getAbsolutePath(), monitor); } finally { - long endTime = System.currentTimeMillis(); + final long endTime = System.currentTimeMillis(); logStats(startTime, endTime, (int) totalLength); } if (getPreserveLastModified()) { diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessage.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessage.java index 0ff6bc8aa..c1b6b8c7b 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessage.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessage.java @@ -26,7 +26,9 @@ import java.io.OutputStream; import java.util.Iterator; import java.util.List; +import com.jcraft.jsch.Channel; import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; /** * Utility class to carry out an upload scp transfer. @@ -44,7 +46,7 @@ public class ScpToMessage extends AbstractSshMessage { * Constructor for ScpToMessage * @param session the ssh session to use */ - public ScpToMessage(Session session) { + public ScpToMessage(final Session session) { super(session); } @@ -54,7 +56,7 @@ public class ScpToMessage extends AbstractSshMessage { * @param session the ssh session to use * @since Ant 1.7 */ - public ScpToMessage(boolean verbose, Session session) { + public ScpToMessage(final boolean verbose, final Session session) { super(verbose, session); } @@ -66,10 +68,10 @@ public class ScpToMessage extends AbstractSshMessage { * @param aRemotePath the remote path * @since Ant 1.6.2 */ - public ScpToMessage(boolean verbose, - Session session, - File aLocalFile, - String aRemotePath) { + public ScpToMessage(final boolean verbose, + final Session session, + final File aLocalFile, + final String aRemotePath) { this(verbose, session, aRemotePath); this.localFile = aLocalFile; @@ -83,10 +85,10 @@ public class ScpToMessage extends AbstractSshMessage { * @param aRemotePath the remote path * @since Ant 1.6.2 */ - public ScpToMessage(boolean verbose, - Session session, - List aDirectoryList, - String aRemotePath) { + public ScpToMessage(final boolean verbose, + final Session session, + final List aDirectoryList, + final String aRemotePath) { this(verbose, session, aRemotePath); this.directoryList = aDirectoryList; @@ -99,9 +101,9 @@ public class ScpToMessage extends AbstractSshMessage { * @param aRemotePath the remote path * @since Ant 1.6.2 */ - private ScpToMessage(boolean verbose, - Session session, - String aRemotePath) { + private ScpToMessage(final boolean verbose, + final Session session, + final String aRemotePath) { super(verbose, session); this.remotePath = aRemotePath; } @@ -112,9 +114,9 @@ public class ScpToMessage extends AbstractSshMessage { * @param aLocalFile the local file * @param aRemotePath the remote path */ - public ScpToMessage(Session session, - File aLocalFile, - String aRemotePath) { + public ScpToMessage(final Session session, + final File aLocalFile, + final String aRemotePath) { this(false, session, aLocalFile, aRemotePath); } @@ -124,9 +126,9 @@ public class ScpToMessage extends AbstractSshMessage { * @param aDirectoryList a list of directories * @param aRemotePath the remote path */ - public ScpToMessage(Session session, - List aDirectoryList, - String aRemotePath) { + public ScpToMessage(final Session session, + final List aDirectoryList, + final String aRemotePath) { this(false, session, aDirectoryList, aRemotePath); } @@ -146,12 +148,12 @@ public class ScpToMessage extends AbstractSshMessage { } private void doSingleTransfer() throws IOException, JSchException { - String cmd = "scp -t " + remotePath; - Channel channel = openExecChannel(cmd); + final String cmd = "scp -t " + remotePath; + final Channel channel = openExecChannel(cmd); try { - OutputStream out = channel.getOutputStream(); - InputStream in = channel.getInputStream(); + final OutputStream out = channel.getOutputStream(); + final InputStream in = channel.getInputStream(); channel.connect(); @@ -165,16 +167,16 @@ public class ScpToMessage extends AbstractSshMessage { } private void doMultipleTransfer() throws IOException, JSchException { - Channel channel = openExecChannel("scp -r -d -t " + remotePath); + final Channel channel = openExecChannel("scp -r -d -t " + remotePath); try { - OutputStream out = channel.getOutputStream(); - InputStream in = channel.getInputStream(); + final OutputStream out = channel.getOutputStream(); + final InputStream in = channel.getInputStream(); channel.connect(); waitForAck(in); - for (Iterator i = directoryList.iterator(); i.hasNext();) { - Directory current = (Directory) i.next(); + for (final Iterator i = directoryList.iterator(); i.hasNext();) { + final Directory current = (Directory) i.next(); sendDirectory(current, in, out); } } finally { @@ -184,21 +186,21 @@ public class ScpToMessage extends AbstractSshMessage { } } - private void sendDirectory(Directory current, - InputStream in, - OutputStream out) throws IOException { - for (Iterator fileIt = current.filesIterator(); fileIt.hasNext();) { + private void sendDirectory(final Directory current, + final InputStream in, + final OutputStream out) throws IOException { + for (final Iterator fileIt = current.filesIterator(); fileIt.hasNext();) { sendFileToRemote((File) fileIt.next(), in, out); } - for (Iterator dirIt = current.directoryIterator(); dirIt.hasNext();) { - Directory dir = (Directory) dirIt.next(); + for (final Iterator dirIt = current.directoryIterator(); dirIt.hasNext();) { + final Directory dir = (Directory) dirIt.next(); sendDirectoryToRemote(dir, in, out); } } - private void sendDirectoryToRemote(Directory directory, - InputStream in, - OutputStream out) throws IOException { + private void sendDirectoryToRemote(final Directory directory, + final InputStream in, + final OutputStream out) throws IOException { String command = "D0755 0 "; command += directory.getDirectory().getName(); command += "\n"; @@ -213,11 +215,11 @@ public class ScpToMessage extends AbstractSshMessage { waitForAck(in); } - private void sendFileToRemote(File localFile, - InputStream in, - OutputStream out) throws IOException { + private void sendFileToRemote(final File localFile, + final InputStream in, + final OutputStream out) throws IOException { // send "C0644 filesize filename", where filename should not include '/' - long filesize = localFile.length(); + final long filesize = localFile.length(); String command = "C0644 " + filesize + " "; command += localFile.getName(); command += "\n"; @@ -228,16 +230,16 @@ public class ScpToMessage extends AbstractSshMessage { waitForAck(in); // send a content of lfile - FileInputStream fis = new FileInputStream(localFile); - byte[] buf = new byte[BUFFER_SIZE]; - long startTime = System.currentTimeMillis(); + final FileInputStream fis = new FileInputStream(localFile); + final byte[] buf = new byte[BUFFER_SIZE]; + final long startTime = System.currentTimeMillis(); long totalLength = 0; // only track progress for files larger than 100kb in verbose mode - boolean trackProgress = getVerbose() && filesize > HUNDRED_KILOBYTES; + final boolean trackProgress = getVerbose() && filesize > HUNDRED_KILOBYTES; // since filesize keeps on decreasing we have to store the // initial filesize - long initFilesize = filesize; + final long initFilesize = filesize; int percentTransmitted = 0; try { @@ -245,7 +247,7 @@ public class ScpToMessage extends AbstractSshMessage { log("Sending: " + localFile.getName() + " : " + localFile.length()); } while (true) { - int len = fis.read(buf, 0, buf.length); + final int len = fis.read(buf, 0, buf.length); if (len <= 0) { break; } @@ -263,7 +265,7 @@ public class ScpToMessage extends AbstractSshMessage { waitForAck(in); } finally { if (this.getVerbose()) { - long endTime = System.currentTimeMillis(); + final long endTime = System.currentTimeMillis(); logStats(startTime, endTime, totalLength); } fis.close(); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessageBySftp.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessageBySftp.java index e78c27680..a3a35fa93 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessageBySftp.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpToMessageBySftp.java @@ -25,6 +25,7 @@ import java.util.List; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; import com.jcraft.jsch.SftpException; import com.jcraft.jsch.SftpProgressMonitor; @@ -36,7 +37,7 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { private static final int HUNDRED_KILOBYTES = 102400; private File localFile; - private String remotePath; + private final String remotePath; private List directoryList; /** @@ -47,10 +48,10 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { * @param aRemotePath the remote path * @since Ant 1.7 */ - public ScpToMessageBySftp(boolean verbose, - Session session, - File aLocalFile, - String aRemotePath) { + public ScpToMessageBySftp(final boolean verbose, + final Session session, + final File aLocalFile, + final String aRemotePath) { this(verbose, session, aRemotePath); this.localFile = aLocalFile; @@ -64,10 +65,10 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { * @param aRemotePath the remote path * @since Ant 1.7 */ - public ScpToMessageBySftp(boolean verbose, - Session session, - List aDirectoryList, - String aRemotePath) { + public ScpToMessageBySftp(final boolean verbose, + final Session session, + final List aDirectoryList, + final String aRemotePath) { this(verbose, session, aRemotePath); this.directoryList = aDirectoryList; @@ -80,9 +81,9 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { * @param aRemotePath the remote path * @since Ant 1.6.2 */ - private ScpToMessageBySftp(boolean verbose, - Session session, - String aRemotePath) { + private ScpToMessageBySftp(final boolean verbose, + final Session session, + final String aRemotePath) { super(verbose, session); this.remotePath = aRemotePath; } @@ -93,9 +94,9 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { * @param aLocalFile the local file * @param aRemotePath the remote path */ - public ScpToMessageBySftp(Session session, - File aLocalFile, - String aRemotePath) { + public ScpToMessageBySftp(final Session session, + final File aLocalFile, + final String aRemotePath) { this(false, session, aLocalFile, aRemotePath); } @@ -105,9 +106,9 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { * @param aDirectoryList a list of directories * @param aRemotePath the remote path */ - public ScpToMessageBySftp(Session session, - List aDirectoryList, - String aRemotePath) { + public ScpToMessageBySftp(final Session session, + final List aDirectoryList, + final String aRemotePath) { this(false, session, aDirectoryList, aRemotePath); } @@ -127,13 +128,13 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { } private void doSingleTransfer() throws IOException, JSchException { - ChannelSftp channel = openSftpChannel(); + final ChannelSftp channel = openSftpChannel(); try { channel.connect(); try { sendFileToRemote(channel, localFile, remotePath); - } catch (SftpException e) { - JSchException schException = new JSchException("Could not send '" + localFile + } catch (final SftpException e) { + final JSchException schException = new JSchException("Could not send '" + localFile + "' to '" + remotePath + "' - " + e.toString()); schException.initCause(e); @@ -147,14 +148,14 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { } private void doMultipleTransfer() throws IOException, JSchException { - ChannelSftp channel = openSftpChannel(); + final ChannelSftp channel = openSftpChannel(); try { channel.connect(); try { try { channel.stat(remotePath); - } catch (SftpException e) { + } catch (final SftpException e) { if (e.id == ChannelSftp.SSH_FX_NO_SUCH_FILE) { // dir does not exist. channel.mkdir(remotePath); @@ -164,20 +165,20 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { } } channel.cd(remotePath); - } catch (SftpException e) { + } catch (final SftpException e) { throw new JSchException("Could not CD to '" + remotePath + "' - " + e.toString(), e); } Directory current = null; try { - for (Iterator i = directoryList.iterator(); i.hasNext();) { + for (final Iterator i = directoryList.iterator(); i.hasNext();) { current = (Directory) i.next(); if (getVerbose()) { log("Sending directory " + current); } sendDirectory(channel, current); } - } catch (SftpException e) { + } catch (final SftpException e) { String msg = "Error sending directory"; if (current != null && current.getDirectory() != null) { msg += " '" + current.getDirectory().getName() + "'"; @@ -191,25 +192,25 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { } } - private void sendDirectory(ChannelSftp channel, - Directory current) + private void sendDirectory(final ChannelSftp channel, + final Directory current) throws IOException, SftpException { - for (Iterator fileIt = current.filesIterator(); fileIt.hasNext();) { + for (final Iterator fileIt = current.filesIterator(); fileIt.hasNext();) { sendFileToRemote(channel, (File) fileIt.next(), null); } - for (Iterator dirIt = current.directoryIterator(); dirIt.hasNext();) { - Directory dir = (Directory) dirIt.next(); + for (final Iterator dirIt = current.directoryIterator(); dirIt.hasNext();) { + final Directory dir = (Directory) dirIt.next(); sendDirectoryToRemote(channel, dir); } } - private void sendDirectoryToRemote(ChannelSftp channel, - Directory directory) + private void sendDirectoryToRemote(final ChannelSftp channel, + final Directory directory) throws IOException, SftpException { - String dir = directory.getDirectory().getName(); + final String dir = directory.getDirectory().getName(); try { channel.stat(dir); - } catch (SftpException e) { + } catch (final SftpException e) { // dir does not exist. if (e.id == ChannelSftp.SSH_FX_NO_SUCH_FILE) { channel.mkdir(dir); @@ -220,21 +221,21 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { channel.cd(".."); } - private void sendFileToRemote(ChannelSftp channel, - File localFile, + private void sendFileToRemote(final ChannelSftp channel, + final File localFile, String remotePath) throws IOException, SftpException { - long filesize = localFile.length(); + final long filesize = localFile.length(); if (remotePath == null) { remotePath = localFile.getName(); } - long startTime = System.currentTimeMillis(); - long totalLength = filesize; + final long startTime = System.currentTimeMillis(); + final long totalLength = filesize; // only track progress for files larger than 100kb in verbose mode - boolean trackProgress = getVerbose() && filesize > HUNDRED_KILOBYTES; + final boolean trackProgress = getVerbose() && filesize > HUNDRED_KILOBYTES; SftpProgressMonitor monitor = null; if (trackProgress) { @@ -248,7 +249,7 @@ public class ScpToMessageBySftp extends ScpToMessage/*AbstractSshMessage*/ { channel.put(localFile.getAbsolutePath(), remotePath, monitor); } finally { if (this.getVerbose()) { - long endTime = System.currentTimeMillis(); + final long endTime = System.currentTimeMillis(); logStats(startTime, endTime, (int) totalLength); } } diff --git a/src/main/org/apache/tools/ant/types/resolver/ApacheCatalog.java b/src/main/org/apache/tools/ant/types/resolver/ApacheCatalog.java index af1f5bf99..cbf3f3fe3 100644 --- a/src/main/org/apache/tools/ant/types/resolver/ApacheCatalog.java +++ b/src/main/org/apache/tools/ant/types/resolver/ApacheCatalog.java @@ -18,9 +18,10 @@ package org.apache.tools.ant.types.resolver; -import com.sun.org.apache.xml.internal.resolver.Catalog; -import com.sun.org.apache.xml.internal.resolver.CatalogEntry; -import com.sun.org.apache.xml.internal.resolver.helpers.PublicId; +import org.apache.xml.resolver.Catalog; +import org.apache.xml.resolver.CatalogEntry; +import org.apache.xml.resolver.helpers.PublicId; + /** * This class extends the Catalog class provided by Norman Walsh's @@ -54,7 +55,7 @@ public class ApacheCatalog extends Catalog { * @return the catalog. */ protected Catalog newCatalog() { - ApacheCatalog cat = (ApacheCatalog) super.newCatalog(); + final ApacheCatalog cat = (ApacheCatalog) super.newCatalog(); cat.setResolver(resolver); return cat; } @@ -63,7 +64,7 @@ public class ApacheCatalog extends Catalog { * Set the resolver object to callback. * @param resolver the apache catalog resolver. */ - public void setResolver(ApacheCatalogResolver resolver) { + public void setResolver(final ApacheCatalogResolver resolver) { this.resolver = resolver; } @@ -84,14 +85,14 @@ public class ApacheCatalog extends Catalog { * * @param entry The CatalogEntry to process. */ - public void addEntry(CatalogEntry entry) { + public void addEntry(final CatalogEntry entry) { - int type = entry.getEntryType(); + final int type = entry.getEntryType(); if (type == PUBLIC) { - String publicid = PublicId.normalize(entry.getEntryArg(0)); - String systemid = normalizeURI(entry.getEntryArg(1)); + final String publicid = PublicId.normalize(entry.getEntryArg(0)); + final String systemid = normalizeURI(entry.getEntryArg(1)); if (resolver == null) { catalogManager.debug @@ -102,8 +103,8 @@ public class ApacheCatalog extends Catalog { } else if (type == URI) { - String uri = normalizeURI(entry.getEntryArg(0)); - String altURI = normalizeURI(entry.getEntryArg(1)); + final String uri = normalizeURI(entry.getEntryArg(0)); + final String altURI = normalizeURI(entry.getEntryArg(1)); if (resolver == null) { catalogManager.debug diff --git a/src/main/org/apache/tools/ant/types/resolver/ApacheCatalogResolver.java b/src/main/org/apache/tools/ant/types/resolver/ApacheCatalogResolver.java index 17b1e8a2f..2312d3dcc 100644 --- a/src/main/org/apache/tools/ant/types/resolver/ApacheCatalogResolver.java +++ b/src/main/org/apache/tools/ant/types/resolver/ApacheCatalogResolver.java @@ -25,10 +25,10 @@ import java.net.URL; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.types.ResourceLocation; import org.apache.tools.ant.types.XMLCatalog; +import org.apache.xml.resolver.Catalog; +import org.apache.xml.resolver.CatalogManager; +import org.apache.xml.resolver.tools.CatalogResolver; -import com.sun.org.apache.xml.internal.resolver.Catalog; -import com.sun.org.apache.xml.internal.resolver.CatalogManager; -import com.sun.org.apache.xml.internal.resolver.tools.CatalogResolver; /** *

This class extends the CatalogResolver class provided by Norman @@ -91,7 +91,7 @@ public class ApacheCatalogResolver extends CatalogResolver { * Set the XMLCatalog object to callback. * @param xmlCatalog the XMLCatalog to use. */ - public void setXMLCatalog(XMLCatalog xmlCatalog) { + public void setXMLCatalog(final XMLCatalog xmlCatalog) { this.xmlCatalog = xmlCatalog; } @@ -100,22 +100,22 @@ public class ApacheCatalogResolver extends CatalogResolver { * file within a <catalogfiles> fileset. * @param file the external catalog file. */ - public void parseCatalog(String file) { + public void parseCatalog(final String file) { - Catalog catalog = getCatalog(); + final Catalog catalog = getCatalog(); if (!(catalog instanceof ApacheCatalog)) { throw new BuildException("Wrong catalog type found: " + catalog.getClass().getName()); } - ApacheCatalog apacheCatalog = (ApacheCatalog) catalog; + final ApacheCatalog apacheCatalog = (ApacheCatalog) catalog; // Pass in reference to ourselves so we can be called back. apacheCatalog.setResolver(this); try { apacheCatalog.parseCatalog(file); - } catch (MalformedURLException ex) { + } catch (final MalformedURLException ex) { throw new BuildException(ex); - } catch (IOException ex) { + } catch (final IOException ex) { throw new BuildException(ex); } } @@ -133,11 +133,11 @@ public class ApacheCatalogResolver extends CatalogResolver { * directory in which the catalog is located. * */ - public void addPublicEntry(String publicid, - String systemid, - URL base) { + public void addPublicEntry(final String publicid, + final String systemid, + final URL base) { - ResourceLocation dtd = new ResourceLocation(); + final ResourceLocation dtd = new ResourceLocation(); dtd.setBase(base); dtd.setPublicId(publicid); dtd.setLocation(systemid); @@ -159,11 +159,11 @@ public class ApacheCatalogResolver extends CatalogResolver { * directory in which the catalog is located. * */ - public void addURIEntry(String uri, - String altURI, - URL base) { + public void addURIEntry(final String uri, + final String altURI, + final URL base) { - ResourceLocation entity = new ResourceLocation(); + final ResourceLocation entity = new ResourceLocation(); entity.setBase(base); entity.setPublicId(uri); entity.setLocation(altURI); diff --git a/src/main/org/apache/tools/ant/util/depend/bcel/DependencyVisitor.java b/src/main/org/apache/tools/ant/util/depend/bcel/DependencyVisitor.java index f086b1f7a..38bb72867 100644 --- a/src/main/org/apache/tools/ant/util/depend/bcel/DependencyVisitor.java +++ b/src/main/org/apache/tools/ant/util/depend/bcel/DependencyVisitor.java @@ -23,7 +23,11 @@ import java.util.StringTokenizer; import com.sun.org.apache.bcel.internal.classfile.ConstantClass; import com.sun.org.apache.bcel.internal.classfile.ConstantNameAndType; +import com.sun.org.apache.bcel.internal.classfile.ConstantPool; +import com.sun.org.apache.bcel.internal.classfile.EmptyVisitor; +import com.sun.org.apache.bcel.internal.classfile.Field; import com.sun.org.apache.bcel.internal.classfile.JavaClass; +import com.sun.org.apache.bcel.internal.classfile.Method; /** * A BCEL visitor implementation to collect class dependency information @@ -31,7 +35,7 @@ import com.sun.org.apache.bcel.internal.classfile.JavaClass; */ public class DependencyVisitor extends EmptyVisitor { /** The collected dependencies */ - private Hashtable dependencies = new Hashtable(); + private final Hashtable dependencies = new Hashtable(); /** * The current class's constant pool - used to determine class names * from class references. @@ -58,7 +62,7 @@ public class DependencyVisitor extends EmptyVisitor { * * @param constantPool the constant pool of the class being visited. */ - public void visitConstantPool(ConstantPool constantPool) { + public void visitConstantPool(final ConstantPool constantPool) { this.constantPool = constantPool; } @@ -67,8 +71,8 @@ public class DependencyVisitor extends EmptyVisitor { * * @param constantClass the constantClass entry for the class reference */ - public void visitConstantClass(ConstantClass constantClass) { - String classname + public void visitConstantClass(final ConstantClass constantClass) { + final String classname = constantClass.getConstantValue(constantPool).toString(); addSlashClass(classname); } @@ -80,18 +84,18 @@ public class DependencyVisitor extends EmptyVisitor { * * @param obj the name and type reference being visited. */ - public void visitConstantNameAndType(ConstantNameAndType obj) { - String name = obj.getName(constantPool); + public void visitConstantNameAndType(final ConstantNameAndType obj) { + final String name = obj.getName(constantPool); if (obj.getSignature(constantPool).equals("Ljava/lang/Class;") && name.startsWith("class$")) { String classname = name.substring("class$".length()).replace('$', '.'); // does the class have a package structure - int index = classname.lastIndexOf("."); + final int index = classname.lastIndexOf("."); if (index > 0) { char start; // check if the package structure is more than 1 level deep - int index2 = classname.lastIndexOf(".", index - 1); + final int index2 = classname.lastIndexOf(".", index - 1); if (index2 != -1) { // class name has more than 1 package level 'com.company.Class' start = classname.charAt(index2 + 1); @@ -124,7 +128,7 @@ public class DependencyVisitor extends EmptyVisitor { * * @param field the field being visited */ - public void visitField(Field field) { + public void visitField(final Field field) { addClasses(field.getSignature()); } @@ -133,7 +137,7 @@ public class DependencyVisitor extends EmptyVisitor { * * @param javaClass the class being visited. */ - public void visitJavaClass(JavaClass javaClass) { + public void visitJavaClass(final JavaClass javaClass) { addClass(javaClass.getClassName()); } @@ -142,9 +146,9 @@ public class DependencyVisitor extends EmptyVisitor { * * @param method the method being visited. */ - public void visitMethod(Method method) { - String signature = method.getSignature(); - int pos = signature.indexOf(")"); + public void visitMethod(final Method method) { + final String signature = method.getSignature(); + final int pos = signature.indexOf(")"); addClasses(signature.substring(1, pos)); addClasses(signature.substring(pos + 1)); } @@ -154,7 +158,7 @@ public class DependencyVisitor extends EmptyVisitor { * * @param classname the class to be added to the list of dependencies. */ - void addClass(String classname) { + void addClass(final String classname) { dependencies.put(classname, classname); } @@ -164,11 +168,11 @@ public class DependencyVisitor extends EmptyVisitor { * @param string the descriptor string, being descriptors separated by * ';' characters. */ - private void addClasses(String string) { - StringTokenizer tokens = new StringTokenizer(string, ";"); + private void addClasses(final String string) { + final StringTokenizer tokens = new StringTokenizer(string, ";"); while (tokens.hasMoreTokens()) { - String descriptor = tokens.nextToken(); - int pos = descriptor.indexOf('L'); + final String descriptor = tokens.nextToken(); + final int pos = descriptor.indexOf('L'); if (pos != -1) { addSlashClass(descriptor.substring(pos + 1)); } @@ -181,7 +185,7 @@ public class DependencyVisitor extends EmptyVisitor { * * @param classname the class name in slash format */ - private void addSlashClass(String classname) { + private void addSlashClass(final String classname) { addClass(classname.replace('/', '.')); } } diff --git a/src/main/org/apache/tools/ant/util/regexp/JakartaOroMatcher.java b/src/main/org/apache/tools/ant/util/regexp/JakartaOroMatcher.java index 643afaf20..5c43376cc 100644 --- a/src/main/org/apache/tools/ant/util/regexp/JakartaOroMatcher.java +++ b/src/main/org/apache/tools/ant/util/regexp/JakartaOroMatcher.java @@ -19,12 +19,14 @@ package org.apache.tools.ant.util.regexp; import java.util.Vector; -import java.util.regex.MatchResult; +import org.apache.oro.text.regex.MatchResult; +import org.apache.oro.text.regex.Pattern; import org.apache.oro.text.regex.Perl5Compiler; import org.apache.oro.text.regex.Perl5Matcher; import org.apache.tools.ant.BuildException; + /** * Implementation of RegexpMatcher for Jakarta-ORO. * @@ -47,7 +49,7 @@ public class JakartaOroMatcher implements RegexpMatcher { * Set the regexp pattern from the String description. * @param pattern the pattern to match */ - public void setPattern(String pattern) { + public void setPattern(final String pattern) { this.pattern = pattern; } @@ -65,13 +67,13 @@ public class JakartaOroMatcher implements RegexpMatcher { * @return the compiled pattern * @throws BuildException on error */ - protected Pattern getCompiledPattern(int options) + protected Pattern getCompiledPattern(final int options) throws BuildException { try { // compute the compiler options based on the input options first - Pattern p = compiler.compile(pattern, getCompilerOptions(options)); + final Pattern p = compiler.compile(pattern, getCompilerOptions(options)); return p; - } catch (Exception e) { + } catch (final Exception e) { throw new BuildException(e); } } @@ -82,7 +84,7 @@ public class JakartaOroMatcher implements RegexpMatcher { * @return true if the pattern matches * @throws BuildException on error */ - public boolean matches(String argument) throws BuildException { + public boolean matches(final String argument) throws BuildException { return matches(argument, MATCH_DEFAULT); } @@ -93,9 +95,9 @@ public class JakartaOroMatcher implements RegexpMatcher { * @return true if the pattern matches * @throws BuildException on error */ - public boolean matches(String input, int options) + public boolean matches(final String input, final int options) throws BuildException { - Pattern p = getCompiledPattern(options); + final Pattern p = getCompiledPattern(options); return matcher.contains(input, p); } @@ -110,7 +112,7 @@ public class JakartaOroMatcher implements RegexpMatcher { * @return the vector of groups * @throws BuildException on error */ - public Vector getGroups(String argument) throws BuildException { + public Vector getGroups(final String argument) throws BuildException { return getGroups(argument, MATCH_DEFAULT); } @@ -125,14 +127,14 @@ public class JakartaOroMatcher implements RegexpMatcher { * @return the vector of groups * @throws BuildException on error */ - public Vector getGroups(String input, int options) + public Vector getGroups(final String input, final int options) throws BuildException { if (!matches(input, options)) { return null; } - Vector v = new Vector(); - MatchResult mr = matcher.getMatch(); - int cnt = mr.groups(); + final Vector v = new Vector(); + final MatchResult mr = matcher.getMatch(); + final int cnt = mr.groups(); for (int i = 0; i < cnt; i++) { String match = mr.group(i); // treat non-matching groups as empty matches @@ -149,7 +151,7 @@ public class JakartaOroMatcher implements RegexpMatcher { * @param options the generic options * @return the specific options */ - protected int getCompilerOptions(int options) { + protected int getCompilerOptions(final int options) { int cOptions = Perl5Compiler.DEFAULT_MASK; if (RegexpUtil.hasFlag(options, MATCH_CASE_INSENSITIVE)) { diff --git a/src/main/org/apache/tools/ant/util/regexp/JakartaOroRegexp.java b/src/main/org/apache/tools/ant/util/regexp/JakartaOroRegexp.java index 156b4522b..529a78ae6 100644 --- a/src/main/org/apache/tools/ant/util/regexp/JakartaOroRegexp.java +++ b/src/main/org/apache/tools/ant/util/regexp/JakartaOroRegexp.java @@ -18,6 +18,8 @@ package org.apache.tools.ant.util.regexp; import org.apache.oro.text.regex.Perl5Substitution; +import org.apache.oro.text.regex.Substitution; +import org.apache.oro.text.regex.Util; import org.apache.tools.ant.BuildException; /*** @@ -40,10 +42,10 @@ public class JakartaOroRegexp extends JakartaOroMatcher implements Regexp { * @return the result of the operation * @throws BuildException on error */ - public String substitute(String input, String argument, int options) + public String substitute(final String input, final String argument, final int options) throws BuildException { // translate \1 to $1 so that the Perl5Substitution will work - StringBuffer subst = new StringBuffer(); + final StringBuffer subst = new StringBuffer(); for (int i = 0; i < argument.length(); i++) { char c = argument.charAt(i); if (c == '$') { @@ -52,7 +54,7 @@ public class JakartaOroRegexp extends JakartaOroMatcher implements Regexp { } else if (c == '\\') { if (++i < argument.length()) { c = argument.charAt(i); - int value = Character.digit(c, DECIMAL); + final int value = Character.digit(c, DECIMAL); if (value > -1) { subst.append("$").append(value); } else { @@ -68,7 +70,7 @@ public class JakartaOroRegexp extends JakartaOroMatcher implements Regexp { } // Do the substitution - Substitution s = + final Substitution s = new Perl5Substitution(subst.toString(), Perl5Substitution.INTERPOLATE_ALL); return Util.substitute(matcher, @@ -84,8 +86,8 @@ public class JakartaOroRegexp extends JakartaOroMatcher implements Regexp { * @param options the ant regexp options * @return the oro substition options */ - protected int getSubsOptions(int options) { - boolean replaceAll = RegexpUtil.hasFlag(options, REPLACE_ALL); + protected int getSubsOptions(final int options) { + final boolean replaceAll = RegexpUtil.hasFlag(options, REPLACE_ALL); int subsOptions = 1; if (replaceAll) { subsOptions = Util.SUBSTITUTE_ALL;