org.apache.tools.ant.taskdefs.optional.jdepend
Class JDependTask

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.tools.ant.taskdefs.optional.jdepend.JDependTask
All Implemented Interfaces:
java.lang.Cloneable

public class JDependTask
extends Task

Runs JDepend tests.

JDepend is a tool to generate design quality metrics for each Java package. It has been initially created by Mike Clark. JDepend can be found at http://www.clarkware.com/software/JDepend.html. The current implementation spawn a new Java VM.


Nested Class Summary
static class JDependTask.FormatAttribute
          A class for the enumerated attribute format, values are xml and text.
 
Field Summary
 
Fields inherited from class org.apache.tools.ant.Task
target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
 
Constructor Summary
JDependTask()
           
 
Method Summary
 Path createClassespath()
          Adds a path to class code to analyze.
 Path createClasspath()
          Adds a path to the classpath.
 PatternSet.NameEntry createExclude()
          add a name entry on the exclude list
 Commandline.Argument createJvmarg(CommandlineJava commandline)
          Create a new JVM argument.
 Path createSourcespath()
          Deprecated. since 1.6.x.
protected  ExecuteWatchdog createWatchdog()
           
 void execute()
          execute the task
 int executeAsForked(CommandlineJava commandline, ExecuteWatchdog watchdog)
          Execute the task by forking a new JVM.
 int executeInVM(CommandlineJava commandline)
          Execute inside VM.
 Path getClassespath()
          Gets the classespath.
 Path getClasspath()
          Gets the classpath to be used for this compilation.
 java.io.File getDir()
           
 PatternSet getExcludes()
           
 boolean getFork()
           
 boolean getHaltonerror()
           
 java.io.File getOutputFile()
           
 Path getSourcespath()
          Deprecated. since 1.6.x.
 java.lang.Long getTimeout()
           
 void setClasspath(Path classpath)
          Set the classpath to be used for this compilation.
 void setClasspathRef(Reference r)
          Adds a reference to a classpath defined elsewhere.
 void setDir(java.io.File dir)
          The directory to invoke the VM in.
 void setFork(boolean value)
          If true, forks into a new JVM.
 void setFormat(JDependTask.FormatAttribute ea)
          The format to write the output in, "xml" or "text".
 void setHaltonerror(boolean haltonerror)
          Whether or not to halt on failure.
 void setIncluderuntime(boolean b)
          If true, include jdepend.jar in the forked VM.
 void setJvm(java.lang.String value)
          The command used to invoke a forked Java Virtual Machine.
 void setOutputFile(java.io.File outputFile)
          The output file name.
 void setTimeout(java.lang.Long value)
          Set the timeout value (in milliseconds).
 
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
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JDependTask

public JDependTask()
Method Detail

setIncluderuntime

public void setIncluderuntime(boolean b)
If true, include jdepend.jar in the forked VM.

Parameters:
b - include ant run time yes or no
Since:
Ant 1.6

setTimeout

public void setTimeout(java.lang.Long value)
Set the timeout value (in milliseconds).

If the operation is running for more than this value, the jdepend will be canceled. (works only when in 'fork' mode).

Parameters:
value - the maximum time (in milliseconds) allowed before declaring the test as 'timed-out'
See Also:
setFork(boolean)

getTimeout

public java.lang.Long getTimeout()
Returns:
the timeout value

setOutputFile

public void setOutputFile(java.io.File outputFile)
The output file name.

Parameters:
outputFile - the output file name

getOutputFile

public java.io.File getOutputFile()
Returns:
the output file name

setHaltonerror

public void setHaltonerror(boolean haltonerror)
Whether or not to halt on failure. Default: false.

Parameters:
haltonerror - the value to set

getHaltonerror

public boolean getHaltonerror()
Returns:
the value of the haltonerror attribute

setFork

public void setFork(boolean value)
If true, forks into a new JVM. Default: false.

Parameters:
value - true if a JVM should be forked, otherwise false

getFork

public boolean getFork()
Returns:
the value of the fork attribute

setJvm

public void setJvm(java.lang.String value)
The command used to invoke a forked Java Virtual Machine. Default is java. Ignored if no JVM is forked.

Parameters:
value - the new VM to use instead of java
See Also:
setFork(boolean)

createSourcespath

public Path createSourcespath()
Deprecated. since 1.6.x.

Adds a path to source code to analyze.

Returns:
a source path

getSourcespath

public Path getSourcespath()
Deprecated. since 1.6.x.

Gets the sourcepath.

Returns:
the sources path

createClassespath

public Path createClassespath()
Adds a path to class code to analyze.

Returns:
a classes path

getClassespath

public Path getClassespath()
Gets the classespath.

Returns:
the classes path

setDir

public void setDir(java.io.File dir)
The directory to invoke the VM in. Ignored if no JVM is forked.

Parameters:
dir - the directory to invoke the JVM from.
See Also:
setFork(boolean)

getDir

public java.io.File getDir()
Returns:
the dir attribute

setClasspath

public void setClasspath(Path classpath)
Set the classpath to be used for this compilation.

Parameters:
classpath - a class path to be used

getClasspath

public Path getClasspath()
Gets the classpath to be used for this compilation.

Returns:
the class path used for compilation

createClasspath

public Path createClasspath()
Adds a path to the classpath.

Returns:
a classpath

createJvmarg

public Commandline.Argument createJvmarg(CommandlineJava commandline)
Create a new JVM argument. Ignored if no JVM is forked.

Parameters:
commandline - the commandline to create the argument on
Returns:
create a new JVM argument so that any argument can be passed to the JVM.
See Also:
setFork(boolean)

setClasspathRef

public void setClasspathRef(Reference r)
Adds a reference to a classpath defined elsewhere.

Parameters:
r - a classpath reference

createExclude

public PatternSet.NameEntry createExclude()
add a name entry on the exclude list

Returns:
a pattern for the excludes

getExcludes

public PatternSet getExcludes()
Returns:
the excludes patterns

setFormat

public void setFormat(JDependTask.FormatAttribute ea)
The format to write the output in, "xml" or "text".

Parameters:
ea - xml or text

execute

public void execute()
             throws BuildException
execute the task

Overrides:
execute in class Task
Throws:
BuildException - if an error occurs

executeInVM

public int executeInVM(CommandlineJava commandline)
                throws BuildException
Execute inside VM.

Parameters:
commandline - the command line
Returns:
the return value of the mvm
Throws:
BuildException - if an error occurs

executeAsForked

public int executeAsForked(CommandlineJava commandline,
                           ExecuteWatchdog watchdog)
                    throws BuildException
Execute the task by forking a new JVM. The command will block until it finishes. To know if the process was destroyed or not, use the killedProcess() method of the watchdog class.

Parameters:
commandline - the commandline for forked jvm
watchdog - the watchdog in charge of cancelling the test if it exceeds a certain amount of time. Can be null.
Returns:
the result of running the jdepend
Throws:
BuildException - in case of error

createWatchdog

protected ExecuteWatchdog createWatchdog()
                                  throws BuildException
Returns:
null if there is a timeout value, otherwise the watchdog instance.
Throws:
BuildException - in case of error