## Table of Contents
* [1. License](#1-license)
* [2. Overview](#2-overview)
* [3. Sample](#3-sample)
* [4. Options](#4-options)
* [4.1. NotNull Annotations](#41-notnull-annotations)
* [4.2. NotNullByDefault Annotations](#42-notnullbydefault-annotations)
* [4.3. Nullable Annotations](#43-nullable-annotations)
* [4.4. Instrumentations Types](#44-instrumentation-types)
* [4.5. Exception to Throw](#45-exception-to-throw)
* [4.6. Exception Text](#46-exception-text)
* [4.7. Logging](#47-logging)
* [4.8. Log Location](#48-log-location)
## 1. License
See the [LICENSE](LICENSE.md) file for license rights and limitations (MIT).
## 2. Overview
*Traute* can be used in *Ant* by putting its [Javac plugin's](../../core/javac/README.md) *\*.jar* into compiler's classpath and specifying necessary *javac* options.
## 3. Sample
*ivy.xml*
```xml
```
*build.xml*
```xml
```
A complete standalone sample project can be found [here](https://github.com/denis-zhdanov/traute/tree/master/facade/ant/sample).
## 4. Options
Any [Traute Javac Plugin setting](../../core/javac/README.md#7-settings) can be provided to the *Ant's* <javac> task through the <compilerarg> element.
### 4.1. NotNull Annotations
*NotNull* annotations to use are defined through the *traute.annotations.not.null* option (multiple annotations might be specified separated by the colon (*:*)):
```xml
```
More details on that can be found [here](../../core/javac/README.md#71-notnull-annotations).
### 4.2. NotNullByDefault Annotations
*NotNullByDefault* annotations to use are defined through the *traute.annotations.not.null.by.default.* option prefix followed by the [instrumentation type](https://github.com/denis-zhdanov/traute/blob/master/core/common/src/main/java/tech/harmonysoft/oss/traute/common/instrumentation/InstrumentationType.java#L69):
```xml
```
More details on that can be found [here](../../core/javac/README.md#72-notnullbydefault-annotations).
### 4.3. Nullable Annotations
*Nullable* annotations to use are defined through the *traute.annotations.nullable* option (multiple annotations might be specified separated by *:*):
```xml
```
More details on that can be found [here](../../core/javac/README.md#73-nullable-annotations).
### 4.4. Instrumentation Types
Instrumentations types to use are defined through the *traute.instrumentations* option:
```xml
```
More details on that can be found [here](../../core/javac/README.md#74-instrumentation-types).
### 4.5. Exception to Throw
Custom exception class to throw from failed *null*-checks is defined through the *traute.exception.* option prefix followed by the [instrumentation type](https://github.com/denis-zhdanov/traute/blob/master/core/common/src/main/java/tech/harmonysoft/oss/traute/common/instrumentation/InstrumentationType.java#L69):
```xml
```
More details on that can be found [here](../../core/javac/README.md#75-exception-to-throw).
### 4.6. Exception Text
Custom exception text to use in exceptions thrown from failed *null*-checks is defined through the *traute.failure.text.* option prefix followed by the [instrumentation type](https://github.com/denis-zhdanov/traute/blob/master/core/common/src/main/java/tech/harmonysoft/oss/traute/common/instrumentation/InstrumentationType.java#L69):
```xml
```
More details on that can be found [here](../../core/javac/README.md#76-exception-text).
### 4.7. Logging
Logging verbosity is defined through the *traute.log.verbose* option:
```xml
```
More details on that can be found [here](../../core/javac/README.md#77-logging).
### 4.8. Log Location
Plugin's log file is defined through the *traute.log.file* option:
```xml
```
More details on that can be found [here](../../core/javac/README.md#78-log-location).