Browse Source

support multiple resource collections in sync. PR 51462

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@1151369 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 14 years ago
parent
commit
6f56a47261
4 changed files with 17 additions and 3 deletions
  1. +3
    -0
      WHATSNEW
  2. +1
    -2
      manual/Tasks/sync.html
  3. +4
    -1
      src/main/org/apache/tools/ant/taskdefs/Sync.java
  4. +9
    -0
      src/tests/antunit/taskdefs/sync-test.xml

+ 3
- 0
WHATSNEW View File

@@ -67,6 +67,9 @@ Fixed bugs:
when Ant is used via its Java API. when Ant is used via its Java API.
Bugzilla Report 51161 Bugzilla Report 51161


* <sync> only supported a single non-fileset resource collection even
though the manual said it could be multiple.

Other changes: Other changes:
-------------- --------------




+ 1
- 2
manual/Tasks/sync.html View File

@@ -98,8 +98,7 @@ dir, it will get removed from the target.</p>


<h4>fileset or any other resource collection</h4> <h4>fileset or any other resource collection</h4>
<p><a href="../Types/resources.html#collection">Resource <p><a href="../Types/resources.html#collection">Resource
Collection</a>s are used to select groups of files to copy. To use a
resource collection, the <code>todir</code> attribute must be set.</p>
Collection</a>s are used to select groups of files to copy.</p>
<p>Prior to Ant 1.7 only <code>&lt;fileset&gt;</code> has been <p>Prior to Ant 1.7 only <code>&lt;fileset&gt;</code> has been
supported as a nested element.</p> supported as a nested element.</p>




+ 4
- 1
src/main/org/apache/tools/ant/taskdefs/Sync.java View File

@@ -36,6 +36,7 @@ import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.PatternSet; import org.apache.tools.ant.types.PatternSet;
import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection; import org.apache.tools.ant.types.ResourceCollection;
import org.apache.tools.ant.types.resources.Resources;
import org.apache.tools.ant.types.resources.Restrict; import org.apache.tools.ant.types.resources.Restrict;
import org.apache.tools.ant.types.resources.selectors.Exists; import org.apache.tools.ant.types.resources.selectors.Exists;
import org.apache.tools.ant.types.selectors.FileSelector; import org.apache.tools.ant.types.selectors.FileSelector;
@@ -65,6 +66,7 @@ public class Sync extends Task {
private SyncTarget syncTarget; private SyncTarget syncTarget;


private Restrict resources = null; private Restrict resources = null;
private Resources nestedResources = null;


// Override Task#init // Override Task#init
/** /**
@@ -401,9 +403,10 @@ public class Sync extends Task {
if (resources == null) { if (resources == null) {
resources = new Restrict(); resources = new Restrict();
resources.add(new Exists()); resources.add(new Exists());
resources.add(nestedResources = new Resources());
myCopy.add(resources); myCopy.add(resources);
} }
resources.add(rc);
nestedResources.add(rc);
} }
} }




+ 9
- 0
src/tests/antunit/taskdefs/sync-test.xml View File

@@ -142,4 +142,13 @@
<au:assertFileDoesntExist file="${output}/d"/> <au:assertFileDoesntExist file="${output}/d"/>
</target> </target>


<!-- really only tests no exception is thrown -->
<target name="testCanAddMultipleResources" depends="setUp"
description="https://issues.apache.org/bugzilla/show_bug.cgi?id=51462">
<sync todir="${output}">
<file file="${input}/x"/>
<file file="${input}/y"/>
</sync>
</target>

</project> </project>

Loading…
Cancel
Save