replaced by an accessor way into tasks. Remove too some unused variable declaration and some unused imports. PR: 22515 Submitted by: Emmanuel Feller ( Emmanuel dot Feller at free dot fr) git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@275133 13f79535-47bb-0310-9956-ffa450edef68master
@@ -123,7 +123,6 @@ public class Antlib extends Task implements TaskContainer { | |||
// Instance | |||
// | |||
private ClassLoader classLoader; | |||
private String prefix; | |||
private String uri = ""; | |||
private List tasks = new ArrayList(); | |||
@@ -126,7 +126,7 @@ public class BuildNumber | |||
final String header = "Build Number for ANT. Do not edit!"; | |||
properties.save(output, header); | |||
properties.store(output, header); | |||
} catch (final IOException ioe) { | |||
final String message = "Error while writing " + myFile; | |||
@@ -153,7 +153,7 @@ public class Classloader extends Task { | |||
* the path will be added to the loader. | |||
*/ | |||
public void setClasspathRef(Reference pathRef) throws BuildException { | |||
classpath = (Path) pathRef.getReferencedObject(project); | |||
classpath = (Path) pathRef.getReferencedObject(getProject()); | |||
} | |||
/** | |||
@@ -180,7 +180,7 @@ public class Classloader extends Task { | |||
public void execute() { | |||
try { | |||
// Gump friendly - don't mess with the core loader if only classpath | |||
if ("only".equals(project.getProperty("build.sysclasspath")) | |||
if ("only".equals(getProject().getProperty("build.sysclasspath")) | |||
&& (name == null || SYSTEM_LOADER_REF.equals(name))) { | |||
log("Changing the system loader is disabled " | |||
+ "by build.sysclasspath=only", Project.MSG_WARN); | |||
@@ -189,7 +189,7 @@ public class Classloader extends Task { | |||
String loaderName = (name == null) ? SYSTEM_LOADER_REF : name; | |||
Object obj = project.getReference(loaderName); | |||
Object obj = getProject().getReference(loaderName); | |||
if (reset) { | |||
// Are any other references held ? Can we 'close' the loader | |||
// so it removes the locks on jars ? | |||
@@ -209,7 +209,7 @@ public class Classloader extends Task { | |||
// Construct a new class loader | |||
Object parent = null; | |||
if (parentName != null) { | |||
parent = project.getReference(parentName); | |||
parent = getProject().getReference(parentName); | |||
if (!(parent instanceof ClassLoader)) { | |||
parent = null; | |||
} | |||
@@ -223,20 +223,20 @@ public class Classloader extends Task { | |||
// The core loader must be reverse | |||
//reverse=true; | |||
} | |||
project.log("Setting parent loader " + name + " " | |||
getProject().log("Setting parent loader " + name + " " | |||
+ parent + " " + parentFirst, Project.MSG_DEBUG); | |||
// The param is "parentFirst" | |||
acl = new AntClassLoader((ClassLoader) parent, | |||
project, classpath, parentFirst); | |||
getProject(), classpath, parentFirst); | |||
project.addReference(loaderName, acl); | |||
getProject().addReference(loaderName, acl); | |||
if (name == null) { | |||
// This allows the core loader to load optional tasks | |||
// without delegating | |||
acl.addLoaderPackageRoot("org.apache.tools.ant.taskdefs.optional"); | |||
project.setCoreLoader(acl); | |||
getProject().setCoreLoader(acl); | |||
} | |||
} | |||
if (classpath != null) { | |||
@@ -780,7 +780,6 @@ public class Concat extends Task { | |||
throws IOException { | |||
int amountRead = 0; | |||
int iOff = off; | |||
while (pos < sourceFiles.size() || (needAddSeparator)) { | |||
if (needAddSeparator) { | |||
cbuf[off] = eolString.charAt(lastPos++); | |||
@@ -89,7 +89,6 @@ public abstract class Definer extends DefBase { | |||
private int format = Format.PROPERTIES; | |||
private boolean definerSet = false; | |||
private ClassLoader internalClassLoader; | |||
private int onError = OnError.FAIL; | |||
private String adapter; | |||
private String adaptTo; | |||
@@ -677,7 +677,7 @@ public class Execute { | |||
throws IOException { | |||
HashMap logicals = new HashMap(); | |||
String logName = null, logValue = null, newLogName; | |||
String line, lineSep = System.getProperty("line.separator"); | |||
String line = null; | |||
while ((line = in.readLine()) != null) { | |||
// parse the VMS logicals into required format ("VAR=VAL[,VAL2]") | |||
if (line.startsWith("\t=")) { | |||
@@ -437,9 +437,8 @@ public class FixCRLF extends MatchingTask { | |||
} // end of try-catch | |||
} else { // (tabs != ASIS) | |||
int ptr; | |||
while ((ptr = line.getNext()) < linelen) { | |||
while (line.getNext() < linelen) { | |||
switch (lines.getState()) { | |||
@@ -79,7 +79,6 @@ import org.apache.tools.ant.types.EnumeratedAttribute; | |||
public class MacroDef extends Task implements AntlibInterface, TaskContainer { | |||
private UnknownElement nestedTask; | |||
private String name; | |||
private String componentName; | |||
private List attributes = new ArrayList(); | |||
private Map elements = new HashMap(); | |||
private String uri; | |||
@@ -80,7 +80,6 @@ import org.apache.tools.ant.UnknownElement; | |||
public class PreSetDef extends Task implements AntlibInterface, TaskContainer { | |||
private UnknownElement nestedTask; | |||
private String name; | |||
private String componentName; | |||
private String uri; | |||
/** | |||
@@ -358,19 +358,19 @@ public class SQLExec extends JDBCTask { | |||
if (transactions.size() == 0) { | |||
throw new BuildException("Source file or fileset, " | |||
+ "transactions or sql statement " | |||
+ "must be set!", location); | |||
+ "must be set!", getLocation()); | |||
} | |||
} | |||
if (srcFile != null && !srcFile.exists()) { | |||
throw new BuildException("Source file does not exist!", location); | |||
throw new BuildException("Source file does not exist!", getLocation()); | |||
} | |||
// deal with the filesets | |||
for (int i = 0; i < filesets.size(); i++) { | |||
FileSet fs = (FileSet) filesets.elementAt(i); | |||
DirectoryScanner ds = fs.getDirectoryScanner(project); | |||
File srcDir = fs.getDir(project); | |||
DirectoryScanner ds = fs.getDirectoryScanner(getProject()); | |||
File srcDir = fs.getDir(getProject()); | |||
String[] srcFiles = ds.getIncludedFiles(); | |||
@@ -428,7 +428,7 @@ public class SQLExec extends JDBCTask { | |||
// ignore | |||
} | |||
} | |||
throw new BuildException(e, location); | |||
throw new BuildException(e, getLocation()); | |||
} catch (SQLException e) { | |||
if (!isAutocommit() && conn != null && onError.equals("abort")) { | |||
try { | |||
@@ -437,7 +437,7 @@ public class SQLExec extends JDBCTask { | |||
// ignore | |||
} | |||
} | |||
throw new BuildException(e, location); | |||
throw new BuildException(e, getLocation()); | |||
} finally { | |||
try { | |||
if (statement != null) { | |||
@@ -473,7 +473,7 @@ public class SQLExec extends JDBCTask { | |||
if (!keepformat) { | |||
line = line.trim(); | |||
} | |||
line = project.replaceProperties(line); | |||
line = getProject().replaceProperties(line); | |||
if (!keepformat) { | |||
if (line.startsWith("//")) { | |||
continue; | |||
@@ -418,59 +418,32 @@ public class EchoProperties extends Task { | |||
/** | |||
* JDK 1.2 allows for the safer method | |||
* <tt>Properties.store(OutputStream, String)</tt>, which throws an | |||
* <tt>IOException</tt> on an output error. This method attempts to | |||
* use the JDK 1.2 method first, and if that does not exist, then the | |||
* JDK 1.0 compatible method | |||
* <tt>Properties.save(OutputStream, String)</tt> is used instead. | |||
* <tt>IOException</tt> on an output error. | |||
* | |||
*@param props the properties to record | |||
*@param os record the properties to this output stream | |||
*@param header prepend this header to the property output | |||
*@exception IOException on an I/O error during a write. Only thrown | |||
* for JDK 1.2+. | |||
*@exception IOException on an I/O error during a write. | |||
*/ | |||
protected void jdkSaveProperties(Properties props, OutputStream os, | |||
String header) throws IOException { | |||
try { | |||
java.lang.reflect.Method m = props.getClass().getMethod( | |||
"store", new Class[]{OutputStream.class, String.class}); | |||
m.invoke(props, new Object[]{os, header}); | |||
} catch (java.lang.reflect.InvocationTargetException ite) { | |||
Throwable t = ite.getTargetException(); | |||
if (t instanceof IOException) { | |||
throw (IOException) t; | |||
} | |||
if (t instanceof RuntimeException) { | |||
throw (RuntimeException) t; | |||
} | |||
// not an expected exception. Resort to JDK 1.0 to execute | |||
// this method | |||
jdk10SaveProperties(props, os, header); | |||
} catch (ThreadDeath td) { | |||
// don't trap thread death errors. | |||
throw td; | |||
} catch (Throwable ex) { | |||
// this 'store' method is not available, so resort to the JDK 1.0 | |||
// compatible method. | |||
jdk10SaveProperties(props, os, header); | |||
} | |||
try { | |||
props.store(os, header); | |||
} catch (IOException ioe) { | |||
throw new BuildException(ioe, getLocation()); | |||
} finally { | |||
if (os != null) { | |||
try { | |||
os.close(); | |||
} catch (IOException ioex) { | |||
log("Failed to close output stream"); | |||
} | |||
} | |||
} | |||
} | |||
/** | |||
* Save the properties to the output stream using the JDK 1.0 compatible | |||
* method. This won't throw an <tt>IOException</tt> on an output error. | |||
* | |||
*@param props the properties to record | |||
*@param os record the properties to this output stream | |||
*@param header prepend this header to the property output | |||
*/ | |||
protected void jdk10SaveProperties(Properties props, OutputStream os, | |||
String header) { | |||
props.save(os, header); | |||
} | |||
/** | |||
* Uses the DocumentBuilderFactory to get a DocumentBuilder instance. | |||
* | |||
@@ -172,10 +172,10 @@ public class CCMCheck extends Continuus { | |||
int sizeofFileSet = filesets.size(); | |||
for (int i = 0; i < sizeofFileSet; i++) { | |||
FileSet fs = (FileSet) filesets.elementAt(i); | |||
DirectoryScanner ds = fs.getDirectoryScanner(project); | |||
DirectoryScanner ds = fs.getDirectoryScanner(getProject()); | |||
String[] srcFiles = ds.getIncludedFiles(); | |||
for (int j = 0; j < srcFiles.length; j++) { | |||
File src = new File(fs.getDir(project), srcFiles[j]); | |||
File src = new File(fs.getDir(getProject()), srcFiles[j]); | |||
setFile(src); | |||
doit(); | |||
} | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -103,7 +103,7 @@ public abstract class Continuus extends Task { | |||
* @param dir the directory containing the ccm executable | |||
*/ | |||
public final void setCcmDir(String dir) { | |||
ccmDir = getProject().translatePath(dir); | |||
ccmDir = Project.translatePath(dir); | |||
} | |||
/** | |||
@@ -67,7 +67,6 @@ import java.util.Vector; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.DirectoryScanner; | |||
import org.apache.tools.ant.Project; | |||
import org.apache.tools.ant.filters.TokenFilter; | |||
import org.apache.tools.ant.taskdefs.MatchingTask; | |||
import org.apache.tools.ant.types.FileSet; | |||
import org.apache.tools.ant.util.FileUtils; | |||
@@ -340,10 +340,12 @@ public class JJTree extends Task { | |||
return (outputDirectory + "/" + optionalOutputFile).replace('\\', '/'); | |||
} | |||
/* | |||
* Not used anymore | |||
private boolean isAbsolute(String fileName) { | |||
return (fileName.startsWith("/") || (new File(fileName).isAbsolute())); | |||
} | |||
*/ | |||
/** | |||
* When running JJTree from an Ant taskdesk the -OUTPUT_DIRECTORY must | |||
* always be set. But when -OUTPUT_DIRECTORY is set, -OUTPUT_FILE is | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -237,7 +237,7 @@ public class SplashTask extends Task { | |||
splash.toFront(); | |||
getProject().addBuildListener(splash); | |||
try { | |||
Thread.currentThread().sleep(showDuration); | |||
Thread.sleep(showDuration); | |||
} catch (InterruptedException e) { | |||
} | |||
@@ -107,7 +107,7 @@ public abstract class AbstractAccessTask | |||
* @param cmdl A user supplied command line that we won't accept. | |||
*/ | |||
public void setCommand(Commandline cmdl) { | |||
throw new BuildException(taskType | |||
throw new BuildException(getTaskType() | |||
+ " doesn\'t support the command attribute", | |||
getLocation()); | |||
} | |||
@@ -119,7 +119,7 @@ public abstract class AbstractAccessTask | |||
* @param skip A user supplied boolean we won't accept. | |||
*/ | |||
public void setSkipEmptyFilesets(boolean skip) { | |||
throw new BuildException(taskType + " doesn\'t support the " | |||
throw new BuildException(getTaskType() + " doesn\'t support the " | |||
+ "skipemptyfileset attribute", | |||
getLocation()); | |||
} | |||
@@ -116,7 +116,7 @@ public class Chgrp extends AbstractAccessTask { | |||
* @param e User supplied executable that we won't accept. | |||
*/ | |||
public void setExecutable(String e) { | |||
throw new BuildException(taskType | |||
throw new BuildException(getTaskType() | |||
+ " doesn\'t support the executable" | |||
+ " attribute", getLocation()); | |||
} | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2002-2003 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -116,7 +116,7 @@ public class Chown extends AbstractAccessTask { | |||
* @param e User supplied executable that we won't accept. | |||
*/ | |||
public void setExecutable(String e) { | |||
throw new BuildException(taskType | |||
throw new BuildException(getTaskType() | |||
+ " doesn\'t support the executable" | |||
+ " attribute", getLocation()); | |||
} | |||
@@ -67,10 +67,8 @@ package org.apache.tools.ant.taskdefs.optional.unix; | |||
import java.io.File; | |||
import java.io.IOException; | |||
import java.io.OutputStream; | |||
import java.io.FileInputStream; | |||
import java.io.FileOutputStream; | |||
import java.io.BufferedOutputStream; | |||
import java.io.FileNotFoundException; | |||
import java.util.Vector; | |||
@@ -78,9 +76,6 @@ import java.util.Properties; | |||
import java.util.Enumeration; | |||
import java.util.Hashtable; | |||
import java.lang.reflect.InvocationTargetException; | |||
import java.lang.reflect.Method; | |||
import org.apache.tools.ant.Task; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.DirectoryScanner; | |||
@@ -457,13 +452,10 @@ public class Symlink extends Task { | |||
/** | |||
* Writes a properties file. | |||
* | |||
* In jdk 1.2+ this method will use <code>Properties.store</code> | |||
* This method use <code>Properties.store</code> | |||
* and thus report exceptions that occur while writing the file. | |||
* In jdk 1.1 we are forced to use <code>Properties.save</code> | |||
* and therefore all exceptions are masked. This method was lifted | |||
* directly from the Proertyfile task with only slight editing. | |||
* sticking something like this in FileUtils might be | |||
* a good idea to avoid duplication. | |||
* | |||
* This is not jdk 1.1 compatible, but ant 1.6 is not anymore. | |||
* | |||
* @param properties The properties object to be written. | |||
* @param propertyfile The File to write to. | |||
@@ -475,32 +467,17 @@ public class Symlink extends Task { | |||
String comment) | |||
throws BuildException { | |||
BufferedOutputStream bos = null; | |||
FileOutputStream fos = null; | |||
try { | |||
bos = new BufferedOutputStream(new FileOutputStream(propertyfile)); | |||
// Properties.store is not available in JDK 1.1 | |||
Method m = | |||
Properties.class.getMethod("store", | |||
new Class[] { | |||
OutputStream.class, | |||
String.class}); | |||
m.invoke(properties, new Object[] {bos, comment}); | |||
} catch (NoSuchMethodException nsme) { | |||
properties.save(bos, comment); | |||
} catch (InvocationTargetException ite) { | |||
Throwable t = ite.getTargetException(); | |||
throw new BuildException(t, location); | |||
} catch (IllegalAccessException iae) { | |||
// impossible | |||
throw new BuildException(iae, location); | |||
fos = new FileOutputStream(propertyfile); | |||
properties.store(fos, comment); | |||
} catch (IOException ioe) { | |||
throw new BuildException(ioe, location); | |||
throw new BuildException(ioe, getLocation()); | |||
} finally { | |||
if (bos != null) { | |||
if (fos != null) { | |||
try { | |||
bos.close(); | |||
fos.close(); | |||
} catch (IOException ioex) { | |||
log("Failed to close output stream"); | |||
} | |||
@@ -124,7 +124,7 @@ public class Attrib extends ExecuteOn { | |||
* @ant.attribute ignore="true" | |||
*/ | |||
public void setExecutable(String e) { | |||
throw new BuildException(taskType | |||
throw new BuildException(getTaskType() | |||
+ " doesn\'t support the executable attribute", getLocation()); | |||
} | |||
@@ -132,7 +132,7 @@ public class Attrib extends ExecuteOn { | |||
* @ant.attribute ignore="true" | |||
*/ | |||
public void setCommand(String e) { | |||
throw new BuildException(taskType | |||
throw new BuildException(getTaskType() | |||
+ " doesn\'t support the command attribute", getLocation()); | |||
} | |||
@@ -148,7 +148,7 @@ public class Attrib extends ExecuteOn { | |||
* @ant.attribute ignore="true" | |||
*/ | |||
public void setSkipEmptyFilesets(boolean skip) { | |||
throw new BuildException(taskType + " doesn\'t support the " | |||
throw new BuildException(getTaskType() + " doesn\'t support the " | |||
+ "skipemptyfileset attribute", | |||
getLocation()); | |||
} | |||
@@ -80,7 +80,6 @@ import java.util.Vector; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.Project; | |||
import org.apache.tools.ant.filters.util.ChainReaderHelper; | |||
import org.apache.tools.ant.filters.TokenFilter; | |||
import org.apache.tools.ant.taskdefs.condition.Os; | |||
import org.apache.tools.ant.types.FilterSetCollection; | |||
import org.apache.tools.ant.launch.Locator; | |||
@@ -136,7 +136,7 @@ public class RegexpMatcherFactory { | |||
protected void testAvailability(String className) throws BuildException { | |||
try { | |||
Class implClass = Class.forName(className); | |||
Class.forName(className); | |||
} catch (Throwable t) { | |||
throw new BuildException(t); | |||
} | |||