diff --git a/proposal/myrmidon/src/java/org/apache/antlib/xml/XMLValidateTask.java b/proposal/myrmidon/src/java/org/apache/antlib/xml/XMLValidateTask.java index a4ee0f0e1..f117d8aaf 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/xml/XMLValidateTask.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/xml/XMLValidateTask.java @@ -172,7 +172,10 @@ public class XMLValidateTask { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/java/org/apache/antlib/xml/XSLTProcess.java b/proposal/myrmidon/src/java/org/apache/antlib/xml/XSLTProcess.java index a00445f75..529e88a66 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/xml/XSLTProcess.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/xml/XSLTProcess.java @@ -166,7 +166,10 @@ public class XSLTProcess { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public XSLTParam createParam() diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Available.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Available.java index 9987d0cc8..251f2be31 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Available.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Available.java @@ -92,7 +92,10 @@ public class Available { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public Path createFilepath() @@ -102,7 +105,10 @@ public class Available { m_filepath = new Path(); } - return m_filepath.createPath(); + Path path1 = m_filepath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public boolean eval() diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Java.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Java.java index 1cc15545d..5895c3003 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Java.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Java.java @@ -117,7 +117,10 @@ public class Java public Path createClasspath() throws TaskException { - return m_cmdl.createClasspath().createPath(); + Path path1 = m_cmdl.createClasspath(); + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Javac.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Javac.java index 3902d7fca..b80cf05d5 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Javac.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Javac.java @@ -642,7 +642,10 @@ public class Javac extends MatchingTask { bootclasspath = new Path(); } - return bootclasspath.createPath(); + Path path1 = bootclasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -657,7 +660,10 @@ public class Javac extends MatchingTask { compileClasspath = new Path(); } - return compileClasspath.createPath(); + Path path1 = compileClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -685,7 +691,10 @@ public class Javac extends MatchingTask { extdirs = new Path(); } - return extdirs.createPath(); + Path path1 = extdirs; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -700,7 +709,10 @@ public class Javac extends MatchingTask { src = new Path(); } - return src.createPath(); + Path path1 = src; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/PathConvert.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/PathConvert.java index 1f53221f2..a68fed1b9 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/PathConvert.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/PathConvert.java @@ -105,7 +105,10 @@ public class PathConvert extends Task { m_path = new Path(); } - return m_path.createPath(); + Path path1 = m_path; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void execute() diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Property.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Property.java index 676d97ca8..fae81a76c 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Property.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Property.java @@ -75,7 +75,10 @@ public class Property { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void execute() diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Rmic.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Rmic.java index 9ab81a927..c563a662a 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Rmic.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Rmic.java @@ -471,7 +471,10 @@ public class Rmic extends MatchingTask { compileClasspath = new Path(); } - return compileClasspath.createPath(); + Path path1 = compileClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -486,7 +489,10 @@ public class Rmic extends MatchingTask { extdirs = new Path(); } - return extdirs.createPath(); + Path path1 = extdirs; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void execute() diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/SQLExec.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/SQLExec.java index 16da14686..28c46503c 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/SQLExec.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/SQLExec.java @@ -357,7 +357,10 @@ public class SQLExec { this.classpath = new Path(); } - return this.classpath.createPath(); + Path path1 = this.classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/javadoc/DocletInfo.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/javadoc/DocletInfo.java index ada5fca68..9065822f4 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/javadoc/DocletInfo.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/javadoc/DocletInfo.java @@ -65,6 +65,9 @@ public class DocletInfo { m_path = new Path(); } - return m_path.createPath(); + Path path1 = m_path; + final Path path = new Path(); + path1.addPath( path ); + return path; } } diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java index 76fbc1f24..15b869c43 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java @@ -471,7 +471,10 @@ public class Javadoc { m_bootclasspath = new Path(); } - return m_bootclasspath.createPath(); + Path path1 = m_bootclasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public Path createClasspath() @@ -481,7 +484,10 @@ public class Javadoc { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public DocletInfo createDoclet() @@ -511,7 +517,10 @@ public class Javadoc { m_sourcePath = new Path(); } - return m_sourcePath.createPath(); + Path path1 = m_sourcePath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void execute() diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java index 78be11380..c0b153c6e 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java @@ -92,7 +92,10 @@ public class ANTLR extends Task */ public Path createClasspath() { - return commandline.createClasspath().createPath(); + Path path1 = commandline.createClasspath(); + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java index f49f60ab6..899994647 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java @@ -155,7 +155,10 @@ public class Javah { m_bootclasspath = new Path(); } - return m_bootclasspath.createPath(); + Path path1 = m_bootclasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public ClassArgument createClass() @@ -172,7 +175,10 @@ public class Javah { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java index 42c794d60..287d8a2da 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java @@ -174,7 +174,10 @@ public class Depend extends MatchingTask { dependClasspath = new Path(); } - return dependClasspath.createPath(); + Path path1 = dependClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java index e61689d06..ace1f1ea0 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java @@ -92,7 +92,10 @@ public class BorlandGenerateClient extends Task { this.classpath = new Path(); } - return this.classpath.createPath(); + Path path1 = this.classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java index 6a94327ab..f1df04843 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java @@ -256,7 +256,10 @@ public class EjbJar extends MatchingTask { config.classpath = new Path(); } - return config.classpath.createPath(); + Path path1 = config.classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java index 0b87bd14e..fa9d8b0b1 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java @@ -200,7 +200,10 @@ public class GenericDeploymentTool { classpath = new Path(); } - return classpath.createPath(); + Path path1 = classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void processDescriptor( String descriptorFileName, SAXParser saxParser ) diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbcTask.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbcTask.java index cfab74a72..b160e780f 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbcTask.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbcTask.java @@ -178,7 +178,10 @@ public class IPlanetEjbcTask extends Task { classpath = new Path(); } - return classpath.createPath(); + Path path1 = classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLRun.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLRun.java index d723942ba..42f74ffb7 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLRun.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLRun.java @@ -239,7 +239,10 @@ public class WLRun extends Task { classpath = new Path(); } - return classpath.createPath(); + Path path1 = classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -253,7 +256,10 @@ public class WLRun extends Task { weblogicClasspath = new Path(); } - return weblogicClasspath.createPath(); + Path path1 = weblogicClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java index 9ac1fc643..b723c8292 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java @@ -122,7 +122,10 @@ public class WLStop extends Task { classpath = new Path(); } - return classpath.createPath(); + Path path1 = classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java index dd85408e9..c71d48551 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java @@ -298,7 +298,10 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { wlClasspath = new Path(); } - return wlClasspath.createPath(); + Path path1 = wlClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java index d867f0b88..09033c69b 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java @@ -378,7 +378,10 @@ public class WebsphereDeploymentTool { wasClasspath = new Path(); } - return wasClasspath.createPath(); + Path path1 = wasClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JJTree.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JJTree.java index 75147c655..30ffc7782 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JJTree.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JJTree.java @@ -17,6 +17,7 @@ import org.apache.tools.ant.taskdefs.exec.Execute2; import org.apache.tools.ant.types.Argument; import org.apache.tools.ant.types.CommandlineJava; import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.PathElement; /** * Taskdef for the JJTree compiler compiler. @@ -174,7 +175,9 @@ public class JJTree extends Task throw new TaskException( "Javacchome not set." ); } final Path classpath = cmdl.createClasspath(); - classpath.createPathElement().setPath( javaccHome.getAbsolutePath() + + final PathElement pathElement = new PathElement(); + classpath.addPathElement( pathElement ); + pathElement.setPath( javaccHome.getAbsolutePath() + "/JavaCC.zip" ); classpath.addJavaRuntime(); diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java index d3e25b64e..08ab55195 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java @@ -18,6 +18,7 @@ import org.apache.tools.ant.types.Argument; import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.CommandlineJava; import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.PathElement; import org.apache.avalon.excalibur.util.StringUtil; /** @@ -228,7 +229,9 @@ public class JavaCC extends Task throw new TaskException( "Javacchome not set." ); } final Path classpath = cmdl.createClasspath(); - classpath.createPathElement().setPath( javaccHome.getAbsolutePath() + + final PathElement pathElement = new PathElement(); + classpath.addPathElement( pathElement ); + pathElement.setPath( javaccHome.getAbsolutePath() + "/JavaCC.zip" ); classpath.addJavaRuntime(); diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java index a5f51cb35..401b68e7f 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java @@ -131,7 +131,10 @@ public class JDependTask { m_compileClasspath = new Path(); } - return m_compileClasspath.createPath(); + Path path1 = m_compileClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -156,7 +159,10 @@ public class JDependTask { m_sourcesPath = new Path(); } - return m_sourcesPath.createPath(); + Path path1 = m_sourcesPath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void execute() diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java index 5b51a0a5d..c18eb3669 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java @@ -300,7 +300,10 @@ public class JspC extends MatchingTask { if( classpath == null ) classpath = new Path(); - return classpath.createPath(); + Path path1 = classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /* diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java index 4cbb63bbd..b347b8293 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java @@ -348,7 +348,10 @@ public class JUnitTask extends Task */ public Path createClasspath() { - return commandline.createClasspath().createPath(); + Path path1 = commandline.createClasspath(); + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java index dc340cde8..cb4c04354 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java @@ -23,6 +23,7 @@ import org.apache.tools.ant.types.Argument; import org.apache.tools.ant.types.CommandlineJava; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.PathElement; /** * Somewhat abstract framework to be used for other metama 2.0 tasks. This @@ -197,7 +198,9 @@ public abstract class AbstractMetamataTask // set the classpath as the jar file File jar = getMetamataJar( m_metamataHome ); final Path classPath = m_cmdl.createClasspath(); - classPath.createPathElement().setLocation( jar ); + final PathElement pathElement = new PathElement(); + classPath.addPathElement( pathElement ); + pathElement.setLocation( jar ); // set the metamata.home property final Argument vmArgs = m_cmdl.createVmArgument(); diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java index 77e6e00ba..0f78afd06 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java @@ -19,6 +19,7 @@ import org.apache.tools.ant.taskdefs.exec.Execute2; import org.apache.tools.ant.types.Argument; import org.apache.tools.ant.types.CommandlineJava; import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.PathElement; /** * Simple Metamata MParse task based on the original written by - * - * Assume the filename is absolute if project is null.

- */ - private static String resolveFile( final File baseDirectory, final String relativeName ) - throws TaskException - { - if( null != baseDirectory ) - { - final File file = FileUtil.resolveFile( baseDirectory, relativeName ); - return file.getAbsolutePath(); - } - return relativeName; - } - /** * Adds a element definition to the path. * @@ -191,7 +106,9 @@ public class Path */ public void setLocation( final File location ) { - createPathElement().setLocation( location ); + final PathElement pathElement = new PathElement(); + addPathElement( pathElement ); + pathElement.setLocation( location ); } /** @@ -201,7 +118,9 @@ public class Path */ public void setPath( String path ) { - createPathElement().setPath( path ); + final PathElement pathElement = new PathElement(); + addPathElement( pathElement ); + pathElement.setPath( path ); } /** @@ -267,7 +186,7 @@ public class Path */ public void addFileset( final FileSet fileSet ) { - elements.add( fileSet ); + m_elements.add( fileSet ); } /** @@ -334,9 +253,9 @@ public class Path for( int i = 0; i < list.length; i++ ) { final String file = list[ i ]; - if( elements.contains( file ) ) + if( m_elements.contains( file ) ) { - elements.add( file ); + m_elements.add( file ); } } } @@ -414,21 +333,17 @@ public class Path * @return Description of the Returned Value * @exception TaskException Description of Exception */ - public Path createPath() + public void addPath( final Path path ) { - final Path other = new Path(); - elements.add( other ); - return other; + m_elements.add( path ); } /** * Creates the nested <pathelement> element. */ - public PathElement createPathElement() + public void addPathElement( final PathElement pathElement ) { - final PathElement pathElement = new PathElement(); - elements.add( pathElement ); - return pathElement; + m_elements.add( pathElement ); } /** @@ -437,10 +352,10 @@ public class Path public String[] list() throws TaskException { - ArrayList result = new ArrayList( 2 * elements.size() ); - for( int i = 0; i < elements.size(); i++ ) + ArrayList result = new ArrayList( 2 * m_elements.size() ); + for( int i = 0; i < m_elements.size(); i++ ) { - Object o = elements.get( i ); + Object o = m_elements.get( i ); if( o instanceof String ) { // obtained via append @@ -448,7 +363,9 @@ public class Path } else if( o instanceof PathElement ) { - String[] parts = ( (PathElement)o ).getParts(); + final File baseDirectory = getBaseDirectory(); + final PathElement element = (PathElement)o; + final String[] parts = element.getParts( baseDirectory, getLogger() ); if( parts == null ) { throw new NullPointerException( "You must either set location or path on " ); @@ -477,7 +394,7 @@ public class Path { File f = new File( dir, s[ j ] ); String absolutePath = f.getAbsolutePath(); - addUnlessPresent( result, translateFile( absolutePath ) ); + addUnlessPresent( result, FileUtils.translateFile( absolutePath ) ); } } } @@ -552,26 +469,4 @@ public class Path } } - /** - * Helper class, holds the nested <pathelement> values. - */ - public class PathElement - { - private String[] m_parts; - - public void setLocation( File loc ) - { - m_parts = new String[]{translateFile( loc.getAbsolutePath() )}; - } - - public void setPath( String path ) - { - m_parts = translatePath( getProject().getBaseDir(), path ); - } - - public String[] getParts() - { - return m_parts; - } - } } diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/types/PathElement.java b/proposal/myrmidon/src/main/org/apache/tools/ant/types/PathElement.java new file mode 100644 index 000000000..ab2eba7bf --- /dev/null +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/types/PathElement.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) The Apache Software Foundation. All rights reserved. + * + * This software is published under the terms of the Apache Software License + * version 1.1, a copy of which has been included with this distribution in + * the LICENSE.txt file. + */ +package org.apache.tools.ant.types; + +import java.io.File; +import org.apache.tools.ant.util.FileUtils; +import org.apache.avalon.framework.logger.Logger; + +/** + * Helper class, holds the nested <pathelement> values. + */ +public class PathElement +{ + private String m_path; + + public void setLocation( final File location ) + { + m_path = FileUtils.translateFile( location.getAbsolutePath() ); + } + + public void setPath( String path ) + { + m_path = path; + } + + protected String[] getParts( final File baseDirectory, final Logger logger ) + { + return FileUtils.translatePath( baseDirectory, m_path, logger ); + } +} diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/util/FileUtils.java b/proposal/myrmidon/src/main/org/apache/tools/ant/util/FileUtils.java index 3fb6762ea..f75217b56 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/util/FileUtils.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/util/FileUtils.java @@ -15,9 +15,11 @@ import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; +import java.util.ArrayList; import java.util.Stack; import java.util.StringTokenizer; -import java.util.ArrayList; +import org.apache.avalon.excalibur.io.FileUtil; +import org.apache.avalon.framework.logger.Logger; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.types.FilterSetCollection; @@ -377,5 +379,95 @@ public class FileUtils final String[] args = new String[ v.size() ]; return (String[])v.toArray( args ); } + + /** + * Returns its argument with all file separator characters replaced so that + * they match the local OS conventions. + */ + public static String translateFile( final String source ) + { + if( source == null ) + return ""; + + final StringBuffer result = new StringBuffer( source ); + for( int i = 0; i < result.length(); i++ ) + { + translateFileSep( result, i ); + } + + return result.toString(); + } + + /** + * Translates all occurrences of / or \ to correct separator of the current + * platform and returns whether it had to do any replacements. + * + * @param buffer Description of Parameter + * @param pos Description of Parameter + * @return Description of the Returned Value + */ + public static boolean translateFileSep( StringBuffer buffer, int pos ) + { + if( buffer.charAt( pos ) == '/' || buffer.charAt( pos ) == '\\' ) + { + buffer.setCharAt( pos, File.separatorChar ); + return true; + } + return false; + } + + /** + * Splits a PATH (with : or ; as separators) into its parts. + */ + public static String[] translatePath( final File baseDirectory, + String source, + final Logger logger ) + { + final ArrayList result = new ArrayList(); + if( source == null ) + return new String[ 0 ]; + + final String[] elements = parsePath( source ); + StringBuffer element = new StringBuffer(); + for( int i = 0; i < elements.length; i++ ) + { + element.setLength( 0 ); + final String pathElement = elements[ i ]; + try + { + element.append( resolveFile( baseDirectory, pathElement ) ); + } + catch( TaskException e ) + { + final String message = + "Dropping path element " + pathElement + " as it is not valid relative to the project"; + logger.debug( message ); + } + + for( int j = 0; j < element.length(); j++ ) + { + translateFileSep( element, j ); + } + result.add( element.toString() ); + } + + return (String[])result.toArray( new String[ result.size() ] ); + } + + /** + * Resolve a filename with Project's help - if we know one that is.

+ * + * Assume the filename is absolute if project is null.

+ */ + public static String resolveFile( final File baseDirectory, final String relativeName ) + throws TaskException + { + if( null != baseDirectory ) + { + final File file = FileUtil.resolveFile( baseDirectory, relativeName ); + return file.getAbsolutePath(); + } + return relativeName; + } } diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/util/mappers/Mapper.java b/proposal/myrmidon/src/main/org/apache/tools/ant/util/mappers/Mapper.java index 48b979903..3dc08b1c0 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/util/mappers/Mapper.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/util/mappers/Mapper.java @@ -152,6 +152,9 @@ public class Mapper { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Available.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Available.java index 9987d0cc8..251f2be31 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Available.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Available.java @@ -92,7 +92,10 @@ public class Available { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public Path createFilepath() @@ -102,7 +105,10 @@ public class Available { m_filepath = new Path(); } - return m_filepath.createPath(); + Path path1 = m_filepath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public boolean eval() diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Java.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Java.java index 1cc15545d..5895c3003 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Java.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Java.java @@ -117,7 +117,10 @@ public class Java public Path createClasspath() throws TaskException { - return m_cmdl.createClasspath().createPath(); + Path path1 = m_cmdl.createClasspath(); + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Javac.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Javac.java index 3902d7fca..b80cf05d5 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Javac.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Javac.java @@ -642,7 +642,10 @@ public class Javac extends MatchingTask { bootclasspath = new Path(); } - return bootclasspath.createPath(); + Path path1 = bootclasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -657,7 +660,10 @@ public class Javac extends MatchingTask { compileClasspath = new Path(); } - return compileClasspath.createPath(); + Path path1 = compileClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -685,7 +691,10 @@ public class Javac extends MatchingTask { extdirs = new Path(); } - return extdirs.createPath(); + Path path1 = extdirs; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -700,7 +709,10 @@ public class Javac extends MatchingTask { src = new Path(); } - return src.createPath(); + Path path1 = src; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/PathConvert.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/PathConvert.java index 1f53221f2..a68fed1b9 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/PathConvert.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/PathConvert.java @@ -105,7 +105,10 @@ public class PathConvert extends Task { m_path = new Path(); } - return m_path.createPath(); + Path path1 = m_path; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void execute() diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Property.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Property.java index 676d97ca8..fae81a76c 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Property.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Property.java @@ -75,7 +75,10 @@ public class Property { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void execute() diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Rmic.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Rmic.java index 9ab81a927..c563a662a 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Rmic.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Rmic.java @@ -471,7 +471,10 @@ public class Rmic extends MatchingTask { compileClasspath = new Path(); } - return compileClasspath.createPath(); + Path path1 = compileClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -486,7 +489,10 @@ public class Rmic extends MatchingTask { extdirs = new Path(); } - return extdirs.createPath(); + Path path1 = extdirs; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void execute() diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/SQLExec.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/SQLExec.java index 16da14686..28c46503c 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/SQLExec.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/SQLExec.java @@ -357,7 +357,10 @@ public class SQLExec { this.classpath = new Path(); } - return this.classpath.createPath(); + Path path1 = this.classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/javadoc/DocletInfo.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/javadoc/DocletInfo.java index ada5fca68..9065822f4 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/javadoc/DocletInfo.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/javadoc/DocletInfo.java @@ -65,6 +65,9 @@ public class DocletInfo { m_path = new Path(); } - return m_path.createPath(); + Path path1 = m_path; + final Path path = new Path(); + path1.addPath( path ); + return path; } } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java index 76fbc1f24..15b869c43 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java @@ -471,7 +471,10 @@ public class Javadoc { m_bootclasspath = new Path(); } - return m_bootclasspath.createPath(); + Path path1 = m_bootclasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public Path createClasspath() @@ -481,7 +484,10 @@ public class Javadoc { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public DocletInfo createDoclet() @@ -511,7 +517,10 @@ public class Javadoc { m_sourcePath = new Path(); } - return m_sourcePath.createPath(); + Path path1 = m_sourcePath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void execute() diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ANTLR.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ANTLR.java index 78be11380..c0b153c6e 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ANTLR.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ANTLR.java @@ -92,7 +92,10 @@ public class ANTLR extends Task */ public Path createClasspath() { - return commandline.createClasspath().createPath(); + Path path1 = commandline.createClasspath(); + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Javah.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Javah.java index f49f60ab6..899994647 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Javah.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Javah.java @@ -155,7 +155,10 @@ public class Javah { m_bootclasspath = new Path(); } - return m_bootclasspath.createPath(); + Path path1 = m_bootclasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public ClassArgument createClass() @@ -172,7 +175,10 @@ public class Javah { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/depend/Depend.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/depend/Depend.java index 42c794d60..287d8a2da 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/depend/Depend.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/depend/Depend.java @@ -174,7 +174,10 @@ public class Depend extends MatchingTask { dependClasspath = new Path(); } - return dependClasspath.createPath(); + Path path1 = dependClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java index e61689d06..ace1f1ea0 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java @@ -92,7 +92,10 @@ public class BorlandGenerateClient extends Task { this.classpath = new Path(); } - return this.classpath.createPath(); + Path path1 = this.classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java index 6a94327ab..f1df04843 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java @@ -256,7 +256,10 @@ public class EjbJar extends MatchingTask { config.classpath = new Path(); } - return config.classpath.createPath(); + Path path1 = config.classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java index 0b87bd14e..fa9d8b0b1 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java @@ -200,7 +200,10 @@ public class GenericDeploymentTool { classpath = new Path(); } - return classpath.createPath(); + Path path1 = classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void processDescriptor( String descriptorFileName, SAXParser saxParser ) diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbcTask.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbcTask.java index cfab74a72..b160e780f 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbcTask.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbcTask.java @@ -178,7 +178,10 @@ public class IPlanetEjbcTask extends Task { classpath = new Path(); } - return classpath.createPath(); + Path path1 = classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WLRun.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WLRun.java index d723942ba..42f74ffb7 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WLRun.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WLRun.java @@ -239,7 +239,10 @@ public class WLRun extends Task { classpath = new Path(); } - return classpath.createPath(); + Path path1 = classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -253,7 +256,10 @@ public class WLRun extends Task { weblogicClasspath = new Path(); } - return weblogicClasspath.createPath(); + Path path1 = weblogicClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java index 9ac1fc643..b723c8292 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java @@ -122,7 +122,10 @@ public class WLStop extends Task { classpath = new Path(); } - return classpath.createPath(); + Path path1 = classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java index dd85408e9..c71d48551 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java @@ -298,7 +298,10 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { wlClasspath = new Path(); } - return wlClasspath.createPath(); + Path path1 = wlClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java index d867f0b88..09033c69b 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java @@ -378,7 +378,10 @@ public class WebsphereDeploymentTool { wasClasspath = new Path(); } - return wasClasspath.createPath(); + Path path1 = wasClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/javacc/JJTree.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/javacc/JJTree.java index 75147c655..30ffc7782 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/javacc/JJTree.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/javacc/JJTree.java @@ -17,6 +17,7 @@ import org.apache.tools.ant.taskdefs.exec.Execute2; import org.apache.tools.ant.types.Argument; import org.apache.tools.ant.types.CommandlineJava; import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.PathElement; /** * Taskdef for the JJTree compiler compiler. @@ -174,7 +175,9 @@ public class JJTree extends Task throw new TaskException( "Javacchome not set." ); } final Path classpath = cmdl.createClasspath(); - classpath.createPathElement().setPath( javaccHome.getAbsolutePath() + + final PathElement pathElement = new PathElement(); + classpath.addPathElement( pathElement ); + pathElement.setPath( javaccHome.getAbsolutePath() + "/JavaCC.zip" ); classpath.addJavaRuntime(); diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java index d3e25b64e..08ab55195 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java @@ -18,6 +18,7 @@ import org.apache.tools.ant.types.Argument; import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.CommandlineJava; import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.PathElement; import org.apache.avalon.excalibur.util.StringUtil; /** @@ -228,7 +229,9 @@ public class JavaCC extends Task throw new TaskException( "Javacchome not set." ); } final Path classpath = cmdl.createClasspath(); - classpath.createPathElement().setPath( javaccHome.getAbsolutePath() + + final PathElement pathElement = new PathElement(); + classpath.addPathElement( pathElement ); + pathElement.setPath( javaccHome.getAbsolutePath() + "/JavaCC.zip" ); classpath.addJavaRuntime(); diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java index a5f51cb35..401b68e7f 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java @@ -131,7 +131,10 @@ public class JDependTask { m_compileClasspath = new Path(); } - return m_compileClasspath.createPath(); + Path path1 = m_compileClasspath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /** @@ -156,7 +159,10 @@ public class JDependTask { m_sourcesPath = new Path(); } - return m_sourcesPath.createPath(); + Path path1 = m_sourcesPath; + final Path path = new Path(); + path1.addPath( path ); + return path; } public void execute() diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java index 5b51a0a5d..c18eb3669 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java @@ -300,7 +300,10 @@ public class JspC extends MatchingTask { if( classpath == null ) classpath = new Path(); - return classpath.createPath(); + Path path1 = classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } /* diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java index 4cbb63bbd..b347b8293 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java @@ -348,7 +348,10 @@ public class JUnitTask extends Task */ public Path createClasspath() { - return commandline.createClasspath().createPath(); + Path path1 = commandline.createClasspath(); + final Path path = new Path(); + path1.addPath( path ); + return path; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java index dc340cde8..cb4c04354 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java @@ -23,6 +23,7 @@ import org.apache.tools.ant.types.Argument; import org.apache.tools.ant.types.CommandlineJava; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.PathElement; /** * Somewhat abstract framework to be used for other metama 2.0 tasks. This @@ -197,7 +198,9 @@ public abstract class AbstractMetamataTask // set the classpath as the jar file File jar = getMetamataJar( m_metamataHome ); final Path classPath = m_cmdl.createClasspath(); - classPath.createPathElement().setLocation( jar ); + final PathElement pathElement = new PathElement(); + classPath.addPathElement( pathElement ); + pathElement.setLocation( jar ); // set the metamata.home property final Argument vmArgs = m_cmdl.createVmArgument(); diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java index 77e6e00ba..0f78afd06 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java @@ -19,6 +19,7 @@ import org.apache.tools.ant.taskdefs.exec.Execute2; import org.apache.tools.ant.types.Argument; import org.apache.tools.ant.types.CommandlineJava; import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.PathElement; /** * Simple Metamata MParse task based on the original written by
- * - * Assume the filename is absolute if project is null.

- */ - private static String resolveFile( final File baseDirectory, final String relativeName ) - throws TaskException - { - if( null != baseDirectory ) - { - final File file = FileUtil.resolveFile( baseDirectory, relativeName ); - return file.getAbsolutePath(); - } - return relativeName; - } - /** * Adds a element definition to the path. * @@ -191,7 +106,9 @@ public class Path */ public void setLocation( final File location ) { - createPathElement().setLocation( location ); + final PathElement pathElement = new PathElement(); + addPathElement( pathElement ); + pathElement.setLocation( location ); } /** @@ -201,7 +118,9 @@ public class Path */ public void setPath( String path ) { - createPathElement().setPath( path ); + final PathElement pathElement = new PathElement(); + addPathElement( pathElement ); + pathElement.setPath( path ); } /** @@ -267,7 +186,7 @@ public class Path */ public void addFileset( final FileSet fileSet ) { - elements.add( fileSet ); + m_elements.add( fileSet ); } /** @@ -334,9 +253,9 @@ public class Path for( int i = 0; i < list.length; i++ ) { final String file = list[ i ]; - if( elements.contains( file ) ) + if( m_elements.contains( file ) ) { - elements.add( file ); + m_elements.add( file ); } } } @@ -414,21 +333,17 @@ public class Path * @return Description of the Returned Value * @exception TaskException Description of Exception */ - public Path createPath() + public void addPath( final Path path ) { - final Path other = new Path(); - elements.add( other ); - return other; + m_elements.add( path ); } /** * Creates the nested <pathelement> element. */ - public PathElement createPathElement() + public void addPathElement( final PathElement pathElement ) { - final PathElement pathElement = new PathElement(); - elements.add( pathElement ); - return pathElement; + m_elements.add( pathElement ); } /** @@ -437,10 +352,10 @@ public class Path public String[] list() throws TaskException { - ArrayList result = new ArrayList( 2 * elements.size() ); - for( int i = 0; i < elements.size(); i++ ) + ArrayList result = new ArrayList( 2 * m_elements.size() ); + for( int i = 0; i < m_elements.size(); i++ ) { - Object o = elements.get( i ); + Object o = m_elements.get( i ); if( o instanceof String ) { // obtained via append @@ -448,7 +363,9 @@ public class Path } else if( o instanceof PathElement ) { - String[] parts = ( (PathElement)o ).getParts(); + final File baseDirectory = getBaseDirectory(); + final PathElement element = (PathElement)o; + final String[] parts = element.getParts( baseDirectory, getLogger() ); if( parts == null ) { throw new NullPointerException( "You must either set location or path on " ); @@ -477,7 +394,7 @@ public class Path { File f = new File( dir, s[ j ] ); String absolutePath = f.getAbsolutePath(); - addUnlessPresent( result, translateFile( absolutePath ) ); + addUnlessPresent( result, FileUtils.translateFile( absolutePath ) ); } } } @@ -552,26 +469,4 @@ public class Path } } - /** - * Helper class, holds the nested <pathelement> values. - */ - public class PathElement - { - private String[] m_parts; - - public void setLocation( File loc ) - { - m_parts = new String[]{translateFile( loc.getAbsolutePath() )}; - } - - public void setPath( String path ) - { - m_parts = translatePath( getProject().getBaseDir(), path ); - } - - public String[] getParts() - { - return m_parts; - } - } } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/types/PathElement.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/types/PathElement.java new file mode 100644 index 000000000..ab2eba7bf --- /dev/null +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/types/PathElement.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) The Apache Software Foundation. All rights reserved. + * + * This software is published under the terms of the Apache Software License + * version 1.1, a copy of which has been included with this distribution in + * the LICENSE.txt file. + */ +package org.apache.tools.ant.types; + +import java.io.File; +import org.apache.tools.ant.util.FileUtils; +import org.apache.avalon.framework.logger.Logger; + +/** + * Helper class, holds the nested <pathelement> values. + */ +public class PathElement +{ + private String m_path; + + public void setLocation( final File location ) + { + m_path = FileUtils.translateFile( location.getAbsolutePath() ); + } + + public void setPath( String path ) + { + m_path = path; + } + + protected String[] getParts( final File baseDirectory, final Logger logger ) + { + return FileUtils.translatePath( baseDirectory, m_path, logger ); + } +} diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/util/FileUtils.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/util/FileUtils.java index 3fb6762ea..f75217b56 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/util/FileUtils.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/util/FileUtils.java @@ -15,9 +15,11 @@ import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; +import java.util.ArrayList; import java.util.Stack; import java.util.StringTokenizer; -import java.util.ArrayList; +import org.apache.avalon.excalibur.io.FileUtil; +import org.apache.avalon.framework.logger.Logger; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.types.FilterSetCollection; @@ -377,5 +379,95 @@ public class FileUtils final String[] args = new String[ v.size() ]; return (String[])v.toArray( args ); } + + /** + * Returns its argument with all file separator characters replaced so that + * they match the local OS conventions. + */ + public static String translateFile( final String source ) + { + if( source == null ) + return ""; + + final StringBuffer result = new StringBuffer( source ); + for( int i = 0; i < result.length(); i++ ) + { + translateFileSep( result, i ); + } + + return result.toString(); + } + + /** + * Translates all occurrences of / or \ to correct separator of the current + * platform and returns whether it had to do any replacements. + * + * @param buffer Description of Parameter + * @param pos Description of Parameter + * @return Description of the Returned Value + */ + public static boolean translateFileSep( StringBuffer buffer, int pos ) + { + if( buffer.charAt( pos ) == '/' || buffer.charAt( pos ) == '\\' ) + { + buffer.setCharAt( pos, File.separatorChar ); + return true; + } + return false; + } + + /** + * Splits a PATH (with : or ; as separators) into its parts. + */ + public static String[] translatePath( final File baseDirectory, + String source, + final Logger logger ) + { + final ArrayList result = new ArrayList(); + if( source == null ) + return new String[ 0 ]; + + final String[] elements = parsePath( source ); + StringBuffer element = new StringBuffer(); + for( int i = 0; i < elements.length; i++ ) + { + element.setLength( 0 ); + final String pathElement = elements[ i ]; + try + { + element.append( resolveFile( baseDirectory, pathElement ) ); + } + catch( TaskException e ) + { + final String message = + "Dropping path element " + pathElement + " as it is not valid relative to the project"; + logger.debug( message ); + } + + for( int j = 0; j < element.length(); j++ ) + { + translateFileSep( element, j ); + } + result.add( element.toString() ); + } + + return (String[])result.toArray( new String[ result.size() ] ); + } + + /** + * Resolve a filename with Project's help - if we know one that is.

+ * + * Assume the filename is absolute if project is null.

+ */ + public static String resolveFile( final File baseDirectory, final String relativeName ) + throws TaskException + { + if( null != baseDirectory ) + { + final File file = FileUtil.resolveFile( baseDirectory, relativeName ); + return file.getAbsolutePath(); + } + return relativeName; + } } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/util/mappers/Mapper.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/util/mappers/Mapper.java index 48b979903..3dc08b1c0 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/util/mappers/Mapper.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/util/mappers/Mapper.java @@ -152,6 +152,9 @@ public class Mapper { m_classpath = new Path(); } - return m_classpath.createPath(); + Path path1 = m_classpath; + final Path path = new Path(); + path1.addPath( path ); + return path; } }