org.lightwolf.tools
Class LightWolfAntTask
java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.MatchingTask
org.lightwolf.tools.LightWolfAntTask
- All Implemented Interfaces:
- Cloneable, SelectorContainer
public class LightWolfAntTask
- extends MatchingTask
An Ant task that enhances classes that uses FlowMethod annotation.
This task reads the specified .class files, looking for
flow methods in each file. If a class contains flow
methods, each of them will have its bytecode enhanced, and the class is
rewritten to file system. Classes without flow methods are untouched.
The classes to enhance are specified in the classesdir
attribute, which contains directories separated by semicolon. If an entry in
the classesdir is a JAR or ZIP, such file is not itself
transformed or changed in any way, but their classes are read to check
whether they contain flow methods that are referenced by enhanced classes.
This task is a matching task, which means that you can add selectors such as
<exclude> and <different>. Below
are some examples:
Example 1: enhances all classes in the bin directory:
<project name="Sample" default="main">
<taskdef name="lightwolf" classname="org.lightwolf.tools.LightWolfAntTask" />
<target name="main">
<lightwolf classesdir="bin"/>
</target>
</project>
Example 2: enhances all classes in the bin directory, except
Test* classes:
<project name="Sample" default="main">
<taskdef name="lightwolf" classname="org.lightwolf.tools.LightWolfAntTask" />
<target name="main">
<lightwolf classesdir="bin">
<exclude name="**/Test*"/>
</lightwolf>
</target>
</project>
Example 3: enhances all classes in the lwbin directory, except
those that are identical to classes in the bin directory:
<project name="Sample" default="main">
<taskdef name="lightwolf" classname="org.lightwolf.tools.LightWolfAntTask" />
<target name="main">
<lightwolf classesdir="lwbin">
<different targetdir="bin" ignoreFileTimes="true"/>
</lightwolf>
</target>
</project>
Example 4: enhances all classes in the bin1 and
bin2 directories, considering flow methods that might be in
the referenced.jar file.
<project name="Sample" default="main">
<taskdef name="lightwolf" classname="org.lightwolf.tools.LightWolfAntTask" />
<target name="main">
<lightwolf classesdir="bin1;bin2;referenced.jar"/>
</target>
</project>
- Author:
- Fernando Colombo
| Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTask |
add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems |
| Methods inherited from class org.apache.tools.ant.Task |
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType |
LightWolfAntTask
public LightWolfAntTask()
main
public static void main(String[] args)
setClassesdir
public void setClassesdir(Path srcDir)
getClassesdir
public Path getClassesdir()
execute
public void execute()
throws BuildException
- Overrides:
execute in class Task
- Throws:
BuildException