## 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).