# Ant User Manual

## icontract

### Description

Instruments Java classes with iContract DBC preprocessor.

### Parameters

Attribute | Description | Required
srcdir | Location of the java files | Yes
instrumentdir | Indicates where the instrumented java and class files should go | Yes
repositorydir | Indicates where the repository java and class files should go | Yes
pre | Indicates whether or not to instrument for preconditions. Defaults to `true` | No
post | Indicates whether or not to instrument for postconditions. Defaults to `true` | No
invariant | Indicates whether or not to instrument for invariants. Defaults to `true` | No
failthrowable | The full name of the Throwable (Exception) that should be thrown when an assertion is violated. Defaults to `java.lang.Error` | No
controlfile | The name of the control file to pass to iContract. Default is to not pass a file | No
verbosity | Indicates the verbosity level of iContract. Any combination of error*,warning*,note*,info*,progress*,debug* (comma separated) can be used. Defaults to `error*,warning*` | No

Note: iContract will use the java compiler indicated by the project's `build.compiler` property. See documentation for the Javac task for more information.

Example:

     <!-- =================================================================== -->
     <!-- Instruments source codes with iContract                             -->
     <!-- =================================================================== -->
     <target name="instrument" depends="compile">
       <icontract
         srcdir="${build.src}"
         instrumentdir="${instrumented.dir}"
         repositorydir="${repository.dir}"
       >
         <classpath>
           <fileset dir="./lib">
             <include name="*.jar"/>
           </fileset>
         </classpath>
       </icontract>
     </target>

Copyright © 2000,2001 Apache Software Foundation. All rights Reserved.