Additional notes

Limitations

There are some limitations based on the underlying concept of java annotation processors. These annotation processors are processing the abstract syntax tree of the java classes.

  • Annotation processors have no information about the method body. Only the method signature and the documentation comment (javadoc comment) are available.

    If you choose a different return object or status code during runtime you have to document this information on a place that is available at compile time. Either the documentation comments or other annotations should be used in this place.

    This limitation also affects enums. More precisely if the API does not use the enum name, but a custom value passed as parameter, and the attribute contains a hint for the serialization plugin (e.g., @JsonProperty for Jackson). In this case the value for the API cannot be read.

Known Issues

Log Output

Depending on the configuration of the maven-compiler-plugin no log messages may be shown. They can be easily enabled by setting the following property:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <showWarnings>true</showWarnings>
    </configuration>
</plugin>