You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by co...@apache.org on 2002/03/06 09:17:07 UTC
cvs commit: jakarta-ant/proposal/mutant/src/java/common/org/apache/ant/common/util FileUtils.java
conor 02/03/06 00:17:07
Modified: proposal/mutant build.xml
proposal/mutant/build ant1compat.xml
proposal/mutant/src/java/antcore/org/apache/ant/antcore/execution
CoreFileService.java Frame.java
proposal/mutant/src/java/antlibs/ant1compat/org/apache/tools/ant
Project.java Task.java
proposal/mutant/src/java/antlibs/ant1compat/org/apache/tools/ant/taskdefs
Ant.java CallTarget.java
proposal/mutant/src/java/antlibs/system/org/apache/ant/antlib/system
Ant.java
proposal/mutant/src/java/bootstrap/org/apache/ant/builder
Ant1CompatBuilder.java MutantBuilder.java
proposal/mutant/src/java/common/org/apache/ant/common/util
FileUtils.java
Log:
Facade tasks for Ant1 tasks implemented by the system antlib
Revision Changes Path
1.15 +1 -1 jakarta-ant/proposal/mutant/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/build.xml,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -w -u -r1.14 -r1.15
--- build.xml 4 Mar 2002 15:17:31 -0000 1.14
+++ build.xml 6 Mar 2002 08:17:06 -0000 1.15
@@ -155,7 +155,7 @@
<javac destdir="${bin.dir}/antlibs/${libset}" srcdir="${java.dir}/antlibs/${libset}" debug="${debug}">
<classpath refid="classpath.antlibs"/>
</javac>
- <jar basedir="${bin.dir}/antlibs/${libset}" jarfile="${distlib.dir}/antlibs/${libset}.tsk">
+ <jar basedir="${bin.dir}/antlibs/${libset}" jarfile="${distlib.dir}/antlibs/${libset}.jar">
<metainf dir="${java.dir}/antlibs/${libset}"
includes="antlib.xml"/>
</jar>
1.6 +1 -1 jakarta-ant/proposal/mutant/build/ant1compat.xml
Index: ant1compat.xml
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/build/ant1compat.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -w -u -r1.5 -r1.6
--- ant1compat.xml 4 Mar 2002 15:17:31 -0000 1.5
+++ ant1compat.xml 6 Mar 2002 08:17:06 -0000 1.6
@@ -66,7 +66,7 @@
<fileset dir="${lib.dir}/parser" includes="*.jar"/>
<fileset dir="${lib.dir}/ant1compat" includes="*.jar"/>
<pathelement location="${distlib.dir}/common/common.jar"/>
- <pathelement location="${distlib.dir}/antlibs/system.tsk"/>
+ <pathelement location="${distlib.dir}/antlibs/system.jar"/>
</path>
<target name="check_for_optional_packages">
1.3 +1 -1 jakarta-ant/proposal/mutant/src/java/antcore/org/apache/ant/antcore/execution/CoreFileService.java
Index: CoreFileService.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/src/java/antcore/org/apache/ant/antcore/execution/CoreFileService.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -u -r1.2 -r1.3
--- CoreFileService.java 18 Feb 2002 12:36:04 -0000 1.2
+++ CoreFileService.java 6 Mar 2002 08:17:06 -0000 1.3
@@ -69,7 +69,7 @@
private Frame frame;
/** General file utilities */
- private FileUtils fileUtils = new FileUtils();
+ private FileUtils fileUtils = FileUtils.newFileUtils();
/**
* Constructor
1.9 +1 -1 jakarta-ant/proposal/mutant/src/java/antcore/org/apache/ant/antcore/execution/Frame.java
Index: Frame.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/src/java/antcore/org/apache/ant/antcore/execution/Frame.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -w -u -r1.8 -r1.9
--- Frame.java 26 Feb 2002 13:43:53 -0000 1.8
+++ Frame.java 6 Mar 2002 08:17:06 -0000 1.9
@@ -744,7 +744,7 @@
if (base == null) {
baseDir = projectFileParent;
} else {
- FileUtils fileUtils = new FileUtils();
+ FileUtils fileUtils = FileUtils.newFileUtils();
baseDir = fileUtils.resolveFile(projectFileParent, base);
}
} else {
1.11 +42 -32 jakarta-ant/proposal/mutant/src/java/antlibs/ant1compat/org/apache/tools/ant/Project.java
Index: Project.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/src/java/antlibs/ant1compat/org/apache/tools/ant/Project.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -w -u -r1.10 -r1.11
--- Project.java 4 Mar 2002 15:17:31 -0000 1.10
+++ Project.java 6 Mar 2002 08:17:06 -0000 1.11
@@ -64,11 +64,11 @@
import java.util.Vector;
import org.apache.ant.common.antlib.AntContext;
import org.apache.ant.common.antlib.AntLibFactory;
+import org.apache.ant.common.event.MessageLevel;
import org.apache.ant.common.service.ComponentService;
import org.apache.ant.common.service.DataService;
import org.apache.ant.common.service.FileService;
import org.apache.ant.common.util.ExecutionException;
-import org.apache.ant.common.event.MessageLevel;
import org.apache.ant.common.util.PropertyUtils;
import org.apache.tools.ant.types.FilterSet;
import org.apache.tools.ant.types.FilterSetCollection;
@@ -83,42 +83,44 @@
public class Project implements org.apache.ant.common.event.BuildListener {
/** String which indicates Java version 1.0 */
- public static final String JAVA_1_0 = "1.0";
+ public final static String JAVA_1_0 = "1.0";
/** String which indicates Java version 1.1 */
- public static final String JAVA_1_1 = "1.1";
+ public final static String JAVA_1_1 = "1.1";
/** String which indicates Java version 1.2 */
- public static final String JAVA_1_2 = "1.2";
+ public final static String JAVA_1_2 = "1.2";
/** String which indicates Java version 1.3 */
- public static final String JAVA_1_3 = "1.3";
+ public final static String JAVA_1_3 = "1.3";
/** String which indicates Java version 1.4 */
- public static final String JAVA_1_4 = "1.4";
+ public final static String JAVA_1_4 = "1.4";
/**
* @see MessageLevel.MSG_ERR
*/
- public static final int MSG_ERR = MessageLevel.MSG_ERR;
+ public final static int MSG_ERR = MessageLevel.MSG_ERR;
/**
* @see MessageLevel.MSG_WARN
*/
- public static final int MSG_WARN = MessageLevel.MSG_WARN;
+ public final static int MSG_WARN = MessageLevel.MSG_WARN;
/**
* @see MessageLevel.MSG_INFO
*/
- public static final int MSG_INFO = MessageLevel.MSG_INFO;
+ public final static int MSG_INFO = MessageLevel.MSG_INFO;
/**
* @see MessageLevel.MSG_VERBOSE
*/
- public static final int MSG_VERBOSE = MessageLevel.MSG_VERBOSE;
+ public final static int MSG_VERBOSE = MessageLevel.MSG_VERBOSE;
/**
* @see MessageLevel.MSG_DEBUG
*/
- public static final int MSG_DEBUG = MessageLevel.MSG_DEBUG;
+ public final static int MSG_DEBUG = MessageLevel.MSG_DEBUG;
/** The java version detected that Ant is running on */
private static String javaVersion;
- /** the factory which created this project instance. This is used to
- define new types and tasks */
+ /**
+ * the factory which created this project instance. This is used to
+ * define new types and tasks
+ */
private AntLibFactory factory;
/** Collection of Ant1 type definitions */
@@ -200,14 +202,6 @@
}
/**
- * get the target hashtable
- * @return hashtable, the contents of which can be cast to Target
- */
- public Hashtable getTargets() {
- return new Hashtable(); // XXX can't get targets
- }
-
- /**
* returns the boolean equivalent of a string, which is considered true
* if either "on", "true", or "yes" is found, ignoring case.
*
@@ -303,6 +297,24 @@
}
/**
+ * Gets the Antlib factory of the Project
+ *
+ * @return The project's associated factory object
+ */
+ public AntLibFactory getFactory() {
+ return factory;
+ }
+
+ /**
+ * get the target hashtable
+ *
+ * @return hashtable, the contents of which can be cast to Target
+ */
+ public Hashtable getTargets() {
+ return new Hashtable();// XXX can't get targets
+ }
+
+ /**
* Gets the buildListeners of the Project
*
* @return A Vector of BuildListener instances
@@ -900,10 +912,8 @@
*
* @param typeName The name of the data type to create an instance of.
* Must not be <code>null</code>.
- *
- * @return an instance of the specified data type, or <code>null</code> if
- * the data type name is not recognised.
- *
+ * @return an instance of the specified data type, or <code>null</code>
+ * if the data type name is not recognised.
* @exception BuildException if the data type name is recognised but
* instance creation fails.
*/
1.10 +1 -0 jakarta-ant/proposal/mutant/src/java/antlibs/ant1compat/org/apache/tools/ant/Task.java
Index: Task.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/src/java/antlibs/ant1compat/org/apache/tools/ant/Task.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -w -u -r1.9 -r1.10
--- Task.java 4 Mar 2002 15:17:31 -0000 1.9
+++ Task.java 6 Mar 2002 08:17:06 -0000 1.10
@@ -170,6 +170,7 @@
taskType = componentType;
taskName = componentType;
+ init();
}
1.3 +152 -1 jakarta-ant/proposal/mutant/src/java/antlibs/ant1compat/org/apache/tools/ant/taskdefs/Ant.java
Index: Ant.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/src/java/antlibs/ant1compat/org/apache/tools/ant/taskdefs/Ant.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -u -r1.2 -r1.3
--- Ant.java 5 Mar 2002 14:03:05 -0000 1.2
+++ Ant.java 6 Mar 2002 08:17:06 -0000 1.3
@@ -52,6 +52,17 @@
* <http://www.apache.org/>.
*/
package org.apache.tools.ant.taskdefs;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import org.apache.ant.antlib.system.AntBase;
+import org.apache.ant.common.antlib.AntContext;
+import org.apache.ant.common.antlib.AntLibFactory;
+import org.apache.ant.common.service.ComponentService;
+import org.apache.ant.common.util.ExecutionException;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
/**
* Ant facade over system version of Ant
@@ -59,6 +70,146 @@
* @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
* @created 31 January 2002
*/
-public class Ant extends org.apache.ant.antlib.system.Ant {
+public class Ant extends Task {
+ /** The core Ant implementation to actually use */
+ private org.apache.ant.antlib.system.Ant realAnt = null;
+
+ /** The properties created by this task */
+ private List properties = new ArrayList();
+
+ /**
+ * If true, inherit all properties from parent Project If false, inherit
+ * only userProperties and those defined inside the ant call itself
+ *
+ * @param value true if the sub-build should receive all properties from
+ * this build
+ */
+ public void setInheritAll(boolean value) {
+ realAnt.setInheritAll(value);
+ }
+
+ /**
+ * If true, inherit all references from parent Project If false, inherit
+ * only those defined inside the ant call itself
+ *
+ * @param value true if the subbuild should receive all references from
+ * the current build.
+ */
+ public void setInheritRefs(boolean value) {
+ realAnt.setInheritRefs(value);
+ }
+
+ /**
+ * The directory which will be the base directory for the build
+ *
+ * @param d the base directory for the new build
+ */
+ public void setDir(File d) {
+ realAnt.setDir(d);
+ }
+
+ /**
+ * set the build file, it can be either absolute or relative. If it is
+ * absolute, <tt>dir</tt> will be ignored, if it is relative it will be
+ * resolved relative to <tt>dir</tt> .
+ *
+ * @param s the name of the ant file either absolute or relative to the
+ * sub-build's basedir
+ */
+ public void setAntfile(String s) {
+ realAnt.setAntFile(s);
+ }
+
+ /**
+ * set the target to execute. If none is defined it will execute the
+ * default target of the build file
+ *
+ * @param s the target to eb executed in the sub-build
+ */
+ public void setTarget(String s) {
+ realAnt.setTarget(s);
+ }
+
+ /**
+ * XXX Sets the output of the Ant
+ *
+ * @param s name of the file to store output.
+ */
+ public void setOutput(String s) {
+ // realAnt.setOutput(s);
+ }
+
+ /** Initialize the task */
+ public void init() {
+ AntContext context = getAntContext();
+ try {
+ ComponentService componentService = getComponentService();
+ AntLibFactory factory = getProject().getFactory();
+ realAnt = (org.apache.ant.antlib.system.Ant)
+ componentService.createComponent(factory,
+ context.getClassLoader(),
+ org.apache.ant.antlib.system.Ant.class, false, "antcall");
+ } catch (ExecutionException e) {
+ throw new BuildException(e);
+ }
+ }
+
+
+ /**
+ * Do the execution.
+ *
+ * @exception BuildException XXX Description of Exception
+ */
+ public void execute() throws BuildException {
+ for (Iterator i = properties.iterator(); i.hasNext(); ) {
+ Property property = (Property)i.next();
+ AntBase.Property newProperty = new AntBase.Property();
+ newProperty.setName(property.getName());
+ newProperty.setValue(property.getValue());
+ realAnt.addProperty(newProperty);
+ }
+ try {
+ realAnt.execute();
+ } catch (ExecutionException e) {
+ throw new BuildException(e);
+ }
+ }
+
+ /**
+ * Create a nested property element.
+ *
+ * @return the Property object to be configured.
+ */
+ public Property createProperty() {
+ Property property = new Property();
+ properties.add(property);
+ return property;
+ }
+
+ /**
+ * create a reference element that identifies a data type that should be
+ * carried over to the new project.
+ *
+ * @param r the reference to be added to the call
+ */
+ public void addReference(AntBase.Reference r) {
+ try {
+ realAnt.addReference(r);
+ } catch (ExecutionException e) {
+ throw new BuildException(e);
+ }
+ }
+
+ /**
+ * Gets the componentService
+ *
+ * @return the componentService instance provided by the core
+ * @exception ExecutionException if the service is not available.
+ */
+ private ComponentService getComponentService() throws ExecutionException {
+ AntContext context = getAntContext();
+ return (ComponentService)context.getCoreService(ComponentService.class);
+ }
+
}
1.3 +100 -2 jakarta-ant/proposal/mutant/src/java/antlibs/ant1compat/org/apache/tools/ant/taskdefs/CallTarget.java
Index: CallTarget.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/src/java/antlibs/ant1compat/org/apache/tools/ant/taskdefs/CallTarget.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -u -r1.2 -r1.3
--- CallTarget.java 5 Mar 2002 14:03:05 -0000 1.2
+++ CallTarget.java 6 Mar 2002 08:17:06 -0000 1.3
@@ -52,8 +52,17 @@
* <http://www.apache.org/>.
*/
package org.apache.tools.ant.taskdefs;
-
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import org.apache.ant.antlib.system.AntBase;
import org.apache.ant.antlib.system.AntCall;
+import org.apache.ant.common.antlib.AntContext;
+import org.apache.ant.common.antlib.AntLibFactory;
+import org.apache.ant.common.service.ComponentService;
+import org.apache.ant.common.util.ExecutionException;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
/**
* CallTarget facade over AntCall
@@ -61,6 +70,95 @@
* @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
* @created 31 January 2002
*/
-public class CallTarget extends AntCall {
+public class CallTarget extends Task {
+ /** The core AntCall implementation to actually use */
+ private AntCall antCall = null;
+
+ /** The properties created by this task */
+ private List properties = new ArrayList();
+
+ /**
+ * If true, inherit all properties from parent Project If false, inherit
+ * only userProperties and those defined inside the antcall call itself
+ *
+ * @param inherit the new inheritAll value
+ */
+ public void setInheritAll(boolean inherit) {
+ antCall.setInheritAll(inherit);
+ }
+
+ /**
+ * Sets the target of the CallTarget
+ *
+ * @param target the new target value
+ */
+ public void setTarget(String target) {
+ antCall.setTarget(target);
+ }
+
+ /** Initialize the task */
+ public void init() {
+ AntContext context = getAntContext();
+ try {
+ ComponentService componentService = getComponentService();
+ AntLibFactory factory = getProject().getFactory();
+ antCall = (AntCall)componentService.createComponent(factory,
+ context.getClassLoader(), AntCall.class, false, "antcall");
+ } catch (ExecutionException e) {
+ throw new BuildException(e);
+ }
+ }
+
+ /** execute the call */
+ public void execute() {
+ for (Iterator i = properties.iterator(); i.hasNext(); ) {
+ Property property = (Property)i.next();
+ AntBase.Property newProperty = new AntBase.Property();
+ newProperty.setName(property.getName());
+ newProperty.setValue(property.getValue());
+ antCall.addProperty(newProperty);
+ }
+ try {
+ antCall.execute();
+ } catch (ExecutionException e) {
+ throw new BuildException(e);
+ }
+ }
+
+ /**
+ * Create a nested param element.
+ *
+ * @return the Property object to be configured.
+ */
+ public Property createParam() {
+ Property property = new Property();
+ properties.add(property);
+ return property;
+ }
+
+ /**
+ * create a reference element that identifies a data type that should be
+ * carried over to the new project.
+ *
+ * @param r the reference to be added to the call
+ */
+ public void addReference(AntBase.Reference r) {
+ try {
+ antCall.addReference(r);
+ } catch (ExecutionException e) {
+ throw new BuildException(e);
+ }
+ }
+
+ /**
+ * Gets the componentService
+ *
+ * @return the componentService instance provided by the core
+ * @exception ExecutionException if the service is not available.
+ */
+ private ComponentService getComponentService() throws ExecutionException {
+ AntContext context = getAntContext();
+ return (ComponentService)context.getCoreService(ComponentService.class);
+ }
}
1.3 +12 -5 jakarta-ant/proposal/mutant/src/java/antlibs/system/org/apache/ant/antlib/system/Ant.java
Index: Ant.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/src/java/antlibs/system/org/apache/ant/antlib/system/Ant.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -u -r1.2 -r1.3
--- Ant.java 20 Feb 2002 13:43:15 -0000 1.2
+++ Ant.java 6 Mar 2002 08:17:06 -0000 1.3
@@ -56,6 +56,7 @@
import org.apache.ant.common.service.ExecService;
import org.apache.ant.common.util.ExecutionException;
import org.apache.ant.common.service.MagicProperties;
+import org.apache.ant.common.util.FileUtils;
/**
* The Ant task - used to execute a different build file
@@ -65,7 +66,7 @@
*/
public class Ant extends AntBase {
/** The ant file to be run */
- private File antFile;
+ private String antFileName;
/** the base directory to use for the run */
private File baseDir;
/** File to capture any output */
@@ -74,10 +75,10 @@
/**
* sets the file containing the XML representation model to build
*
- * @param antFile the file to build
+ * @param antFileName the file to build
*/
- public void setAntFile(File antFile) {
- this.antFile = antFile;
+ public void setAntFile(String antFileName) {
+ this.antFileName = antFileName;
}
/**
@@ -107,12 +108,18 @@
if (baseDir == null) {
baseDir = getAntContext().getBaseDir();
}
- if (antFile == null) {
+
+ File antFile = null;
+ if (antFileName == null) {
antFile = new File(baseDir, "build.ant");
if (!antFile.exists()) {
antFile = new File(baseDir, "build.xml");
}
+ } else {
+ antFile
+ = FileUtils.newFileUtils().resolveFile(baseDir, antFileName);
}
+
setProperty(MagicProperties.BASEDIR, baseDir.getAbsolutePath());
ExecService execService
1.3 +1 -1 jakarta-ant/proposal/mutant/src/java/bootstrap/org/apache/ant/builder/Ant1CompatBuilder.java
Index: Ant1CompatBuilder.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/src/java/bootstrap/org/apache/ant/builder/Ant1CompatBuilder.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -u -r1.2 -r1.3
--- Ant1CompatBuilder.java 4 Mar 2002 15:17:32 -0000 1.2
+++ Ant1CompatBuilder.java 6 Mar 2002 08:17:07 -0000 1.3
@@ -21,7 +21,7 @@
"${lib.dir}/ant1compat", "*.jar");
helper.addPathElementToPath("classpath", "${distlib.dir}/init.jar");
helper.addPathElementToPath("classpath", "${distlib.dir}/common/common.jar");
- helper.addPathElementToPath("classpath", "${distlib.dir}/antlibs/system.tsk");
+ helper.addPathElementToPath("classpath", "${distlib.dir}/antlibs/system.jar");
}
protected void check_for_optional_packages(BuildHelper helper) {
}
1.3 +1 -1 jakarta-ant/proposal/mutant/src/java/bootstrap/org/apache/ant/builder/MutantBuilder.java
Index: MutantBuilder.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/src/java/bootstrap/org/apache/ant/builder/MutantBuilder.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -u -r1.2 -r1.3
--- MutantBuilder.java 4 Mar 2002 15:17:32 -0000 1.2
+++ MutantBuilder.java 6 Mar 2002 08:17:07 -0000 1.3
@@ -83,7 +83,7 @@
helper.addPathElementToPath("classpath.antlibs", "${distlib.dir}/common/common.jar");
helper.addPathToPath("classpath.antlibs", "classpath.common");
helper.javac("${java.dir}/antlibs/${libset}", "${bin.dir}/antlibs/${libset}", "classpath.antlibs");
- helper.jar("${bin.dir}/antlibs/${libset}", "${distlib.dir}/antlibs/${libset}.tsk",
+ helper.jar("${bin.dir}/antlibs/${libset}", "${distlib.dir}/antlibs/${libset}.jar",
"${java.dir}/antlibs/${libset}", "antlib.xml");
}
protected void main(BuildHelper helper) {
1.4 +18 -4 jakarta-ant/proposal/mutant/src/java/common/org/apache/ant/common/util/FileUtils.java
Index: FileUtils.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/mutant/src/java/common/org/apache/ant/common/util/FileUtils.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -w -u -r1.3 -r1.4
--- FileUtils.java 6 Feb 2002 10:15:05 -0000 1.3
+++ FileUtils.java 6 Mar 2002 08:17:07 -0000 1.4
@@ -68,6 +68,21 @@
* @created 21 January 2002
*/
public class FileUtils {
+
+ /** Empty constructor. */
+ protected FileUtils() {
+ }
+
+ /**
+ * Factory method.
+ *
+ * @return The FileUtils instance to actually use. May be a subclass of
+ * this class.
+ */
+ public static FileUtils newFileUtils() {
+ return new FileUtils();
+ }
+
/**
* Interpret the filename as a file relative to the given file - unless
* the filename already represents an absolute filename.
@@ -76,8 +91,7 @@
* must be an absolute file and must not contain "./" or
* "../" sequences (same for \ instead of /). If it is
* null, this call is equivalent to
- * <code>new java.io.File(filename)</code>
- * .
+ * <code>new java.io.File(filename)</code>.
* @param filename the filename to be resolved
* @return an absolute file that doesn't contain "./" or
* "../" sequences and uses the correct separator for the
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>