You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Ninju Bohra <ni...@yahoo.com> on 2006/02/20 19:00:07 UTC

Am I using the selector (with mapper) correctly?

Hello all,
 
I need to keep a "derived" directory tree in synch with its source tree specifically with regard to deletions in the source tree.
 
The source tree has a collection of documents of various types (.doc, .xls, etc...).  The real directory is full tree (with many sub-dirs)
 
\Documentation
      --- Design.doc
      --- Testing.doc
      --- Plan.xls
 
While the "dervied" tree has the files converted to .pdf format (the base name are the same)
 
\PDFs
    --- Design.pdf
    --- Testing.pdf
    --- Plan.xls

I am able to handles updates/additions to the \Documentation tree (via CruiseControl and build scripts) but I stuck on trying to propagate a deletion event.  The follow target does not work:
 
<target name="missing">
   <path id="need.to.delete">
      <fileset dir="PDFs">
        <present present="srconly" targetdir="Documentation">
             <mapper type="glob" from="*.*" to="*.pdf"/>
        </present>
      </fileset>
   </path>  
   <pathconvert targetos="windows" property="delete.me" refid="need.to.delete"/>
   <echo>Need to delete ${delete.me}</echo>
</target>

When I run it with -d I get:
missing:
Could not load a dependent class (com/sun/media/jai/codec/FileSeekableStream) for type image
Adding reference: need.to.delete
Could not load a dependent class (com/sun/media/jai/codec/FileSeekableStream) for type image
Could not load class (org.apache.tools.ant.tasksdefs.cvslib.CvsVersion) for type cvsversion
Could not load a dependent class (jdepend/xmlui/JDepend) for type jdepend
fileset: Setup scanner in dir C:\CybeRe\PDFs with patternSet{ includes: [] excludes: [] }
[pathconvert] Set property delete.me =
Setting project property: delete.me ->
     [echo] Need to delete
BUILD SUCCESSFUL
 
Basically nothing is picked up by the scanner.
 
As an FYI, I tried use <globmapper .../> instead of <mapper type="glob" .../> and got a:
 
BUILD FAILED
C:\CybeRe\build.xml:5: Class org.apache.tools.ant.types.selectors.PresentSelector doesn't support the nested "globmapper" element.
        at org.apache.tools.ant.IntrospectionHelper.throwNotSupported(IntrospectionHelper.java:590)
 
which I did not expect.