I see re <book:filesize>; it is an example of extension more than of usage. This clears up my question. :) Nice to be able to look at the examples ahead of time...
-Matt --- Steve Loughran <[EMAIL PROTECTED]> wrote: > Matt Benson wrote: > >> this test works on the command line: > >> > >> <target name="testPath" depends="define"> > >> <book:filesize property="size"> > >> <path path="${java.class.path}"/> > >> </book:filesize> > >> <echo> classpath size=${size}</echo> > >> </target> > >> > >> but when run from antunit, it fails cos > >> java.class.path isnt set. > > > > Steve, I was noticing this filesize task you've > got in > > the "book" ns... I assume this relates to an > example > > that will go in the forthcoming revision to the > > Manning book. How does <book:filesize> differ > from > > the 1.6.3+ <length> task? > > hey, go check out antbook.cvs.sourceforge.net and > see for yourself. > > > For reference, it only does file resources. I > iterate and cast > > public void execute() throws BuildException { > if (property == null) { > throw new BuildException("No > property"); > } > long size = 0; > int count = 0; > Iterator element = resources.iterator(); > while (element.hasNext()) { > Resource resource = (Resource) > element.next(); > if (!(resource instanceof > FileResource)) { > throw new BuildException("Not a > file: " + resource); > } > log(resource.getName(), > Project.MSG_VERBOSE); > FileResource fileResource = > (FileResource) resource; > File file = fileResource.getFile(); > if (!file.exists()) { > throw new BuildException("Not > found: " + file); > } > size += file.length(); > count++; > } > if (count == 0) { > log("No files sized up", > Project.MSG_WARN); > } > getProject().setNewProperty(property, > Long.toString(size)); > } > > It just shows how to go from a file to a fileset to > resources. > > the other interesting task does classpath setup and > delegates to java > > /** > * [EMAIL PROTECTED] > * @throws org.apache.tools.ant.BuildException > * if something goes wrong with the > build. > */ > public void execute() { > Java java=new Java(); > java.bindToOwner(this); > java.init(); > java.setClasspath(classpath); > java.setClassname(classname); > java.setFailonerror(true); > java.setFork(true); > Iterator element = resources.iterator(); > while (element.hasNext()) { > Resource resource = (Resource) > element.next(); > > java.createArg().setValue(resource.toString()); > } > java.execute(); > } > > Its a resource-enabled equivalent of <apply>, > effectively. And you can > see why I like toString() to be meaningful. > > -steve > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]