You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by jh...@apache.org on 2005/08/08 22:07:18 UTC
cvs commit: ant/src/etc/testcases/taskdefs copy.xml
jhm 2005/08/08 13:07:18
Modified: src/testcases/org/apache/tools/ant/taskdefs CopyTest.java
src/main/org/apache/tools/ant/taskdefs defaults.properties
Copy.java
src/etc/testcases/taskdefs copy.xml
Log:
Starting introducing Resources in <copy>. (Committing for SVN-migration)
Revision Changes Path
1.21 +60 -0 ant/src/testcases/org/apache/tools/ant/taskdefs/CopyTest.java
Index: CopyTest.java
===================================================================
RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/CopyTest.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- CopyTest.java 29 Mar 2005 18:35:45 -0000 1.20
+++ CopyTest.java 8 Aug 2005 20:07:17 -0000 1.21
@@ -20,6 +20,7 @@
import org.apache.tools.ant.BuildFileTest;
import org.apache.tools.ant.util.FileUtils;
import java.io.File;
+import java.io.FileReader;
import java.io.IOException;
/**
@@ -146,4 +147,63 @@
expectBuildException("testMissingDirBail", "not-there doesn't exist");
assertTrue(getBuildException().getMessage().endsWith(" not found."));
}
+
+ public void _testFileResourcePlain() {
+ executeTarget("testFileResourcePlain");
+ File file1 = new File(getProjectDir(), getProject().getProperty("to.dir")+"/file1.txt");
+ File file2 = new File(getProjectDir(), getProject().getProperty("to.dir")+"/file2.txt");
+ File file3 = new File(getProjectDir(), getProject().getProperty("to.dir")+"/file3.txt");
+ assertTrue(file1.exists());
+ assertTrue(file2.exists());
+ assertTrue(file3.exists());
+ }
+
+ public void _testFileResourceWithMapper() {
+ executeTarget("testFileResourceWithMapper");
+ File file1 = new File(getProjectDir(), getProject().getProperty("to.dir")+"/file1.txt.bak");
+ File file2 = new File(getProjectDir(), getProject().getProperty("to.dir")+"/file2.txt.bak");
+ File file3 = new File(getProjectDir(), getProject().getProperty("to.dir")+"/file3.txt.bak");
+ assertTrue(file1.exists());
+ assertTrue(file2.exists());
+ assertTrue(file3.exists());
+ }
+
+ public void _testFileResourceWithFilter() {
+ executeTarget("testFileResourceWithFilter");
+ File file1 = new File(getProjectDir(), getProject().getProperty("to.dir")+"/fileNR.txt");
+ assertTrue(file1.exists());
+ try {
+ String file1Content = FILE_UTILS.readFully(new FileReader(file1));
+ assertEquals(file1Content, "This is file 42");
+ } catch (IOException e) {
+ // no-op: not a real business error
+ }
+ }
+
+ public void _testPathAsResource() {
+ executeTarget("testPathAsResource");
+ File file1 = new File(getProjectDir(), getProject().getProperty("to.dir")+"/file1.txt.bak");
+ File file2 = new File(getProjectDir(), getProject().getProperty("to.dir")+"/file2.txt.bak");
+ File file3 = new File(getProjectDir(), getProject().getProperty("to.dir")+"/file3.txt.bak");
+ assertTrue(file1.exists());
+ assertTrue(file2.exists());
+ assertTrue(file3.exists());
+ }
+
+ public void _testResourcePlain() {
+ executeTarget("testResourcePlain");
+ }
+
+ public void _testResourcePlainWithMapper() {
+ executeTarget("testResourcePlainWithMapper");
+ }
+
+ public void _testResourcePlainWithFilter() {
+ executeTarget("testResourcePlainWithFilter");
+ }
+
+ public void _testOnlineResources() {
+ executeTarget("testOnlineResources");
+ }
+
}
1.172 +1 -1 ant/src/main/org/apache/tools/ant/taskdefs/defaults.properties
Index: defaults.properties
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/defaults.properties,v
retrieving revision 1.171
retrieving revision 1.172
diff -u -r1.171 -r1.172
--- defaults.properties 12 Jun 2005 23:15:57 -0000 1.171
+++ defaults.properties 8 Aug 2005 20:07:17 -0000 1.172
@@ -82,7 +82,6 @@
libraries=org.apache.tools.ant.taskdefs.repository.Libraries
length=org.apache.tools.ant.taskdefs.Length
clone=org.apache.tools.ant.taskdefs.Clone
-copypath=org.apache.tools.ant.taskdefs.CopyPath
diagnostics=org.apache.tools.ant.taskdefs.DiagnosticsTask
# optional tasks
@@ -220,3 +219,4 @@
rename=org.apache.tools.ant.taskdefs.Rename
WsdlToDotnet=org.apache.tools.ant.taskdefs.optional.dotnet.WsdlToDotnet
style=org.apache.tools.ant.taskdefs.XSLTProcess
+copypath=org.apache.tools.ant.taskdefs.CopyPath
1.85 +40 -1 ant/src/main/org/apache/tools/ant/taskdefs/Copy.java
Index: Copy.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Copy.java,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -r1.84 -r1.85
--- Copy.java 31 May 2005 19:01:34 -0000 1.84
+++ Copy.java 8 Aug 2005 20:07:17 -0000 1.85
@@ -31,6 +31,10 @@
import org.apache.tools.ant.types.FilterSet;
import org.apache.tools.ant.types.FilterChain;
import org.apache.tools.ant.types.FilterSetCollection;
+import org.apache.tools.ant.types.Resource;
+import org.apache.tools.ant.types.Path;
+import org.apache.tools.ant.types.ResourceCollection;
+import org.apache.tools.ant.types.resources.Resources;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.FileNameMapper;
import org.apache.tools.ant.util.IdentityMapper;
@@ -274,7 +278,42 @@
public void addFileset(FileSet set) {
filesets.addElement(set);
}
-
+
+ /* JHM: It would be the finest solution to use this method directly.
+ * But if I understood the IntrospectionHelper(final Class bean)
+ * right - especially line 258ff (the last "else if" statement),
+ * I must have a <b>class</b> with an no-arg constructor. But I only
+ * have an interface. :-(
+ * So I have to add the three methods ... But I can reuse this
+ * method :-)
+ *
+ */
+ public void add(ResourceCollection res) {
+ //TODO: implement resources
+ }
+ /**
+ * Adds a <code>path</code> element as a nested ResourceCollection.
+ * @param path
+ */
+ public void addPath(Path path) {
+ //add((ResourceCollection)path);
+ }
+ /**
+ * Adds a Resource element as a nested ResourceCollection.
+ * @param path
+ * /
+ public void add(Resource res) {
+ add((ResourceCollection)res);
+ }
+ /**
+ * Adds a <code>resources</code> element as a nested ResourceCollection.
+ * @param path
+ * /
+ public void add(Resources res) {
+ add((ResourceCollection)res);
+ }
+ */
+
/**
* Define the mapper to map source to destination files.
* @return a mapper to be configured.
1.14 +70 -1 ant/src/etc/testcases/taskdefs/copy.xml
Index: copy.xml
===================================================================
RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/copy.xml,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- copy.xml 7 Jan 2004 10:25:08 -0000 1.13
+++ copy.xml 8 Aug 2005 20:07:18 -0000 1.14
@@ -121,7 +121,76 @@
</copy>
</target>
+<!--
+ <typedef name="resource" classname="org.apache.tools.ant.types.Resource"/>
+ <typedef name="resources" classname="org.apache.tools.ant.types.resources.Resources"/>
+-->
+
+ <target name="testFileResourcePlain" depends="testResource.prepare">
+ <copy todir="${to.dir}">
+ <resources>
+ <file file="${from.dir}/file1.txt"/>
+ <file file="${from.dir}/file2.txt"/>
+ <file file="${from.dir}/file3.txt"/>
+ </resources>
+ </copy>
+ </target>
+
+ <target name="testFileResourceWithMapper" depends="testResource.prepare">
+ <copy todir="${to.dir}">
+ <resources>
+ <file file="${from.dir}/file1.txt"/>
+ <file file="${from.dir}/file2.txt"/>
+ <file file="${from.dir}/file3.txt"/>
+ </resources>
+ <regexpmapper from="^(.*)\.txt$$" to="\1.txt.bak"/>
+ </copy>
+ </target>
+
+
+ <property name="to.dir" value="copy-todir-tmp"/>
+ <property name="from.dir" value="copy-todir-tmp"/>
+
+ <target name="testResource.prepare">
+ <mkdir dir="${from.dir}"/>
+ <concat destfile="${to.dir}/file1.txt">This is file 1</concat>
+ <concat destfile="${to.dir}/file2.txt">This is file 2</concat>
+ <concat destfile="${to.dir}/file3.txt">This is file 3</concat>
+ <concat destfile="${to.dir}/fileNR.txt">This is file @nr@</concat>
+ </target>
+
+ <target name="testFileResourceWithFilter" depends="testResource.prepare">
+ <copy todir="${to.dir}">
+ <resources>
+ <file file="${from.dir}/fileNR.txt"/>
+ </resources>
+ <filterset>
+ <filter token="NR" value="42"/>
+ </filterset>
+ </copy>
+ </target>
+
+ <target name="testResourcePlain">
+ </target>
+
+ <target name="testResourcePlainWithMapper">
+ </target>
+ <target name="testResourcePlainWithFilter">
+ </target>
+
+ <target name="testOnlineResources">
+ </target>
+
+ <target name="testPathAsResource">
+ <copy todir="${to.dir}">
+ <path>
+ <fileset dir="${from.dir}"/>
+ </path>
+ </copy>
+ </target>
+
+
<target name="cleanup">
<delete file="copytest1.tmp"/>
@@ -135,7 +204,7 @@
<delete dir="copytest1dir"/>
<delete quiet="yes" file="copy.filter.out"/>
<delete quiet="yes" file="copy.filter.inp"/>
+ <delete dir="${to.dir}"/>
</target>
-
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org