Before a release of 1.8.3 or 1.9.0 which will introduce the new 'induce' maven plugin goal (see
AVRO-1749), there are a few issues with it which in my mind are critical to enable real-world use of the goal:
- Allow excluding classes based on a pattern, and/or the ability to specify multiple sourceDirectories
- Option to specify whether to use ReflectData.AllowNull or ReflectData
- Throw MojoExecutionException with an informative message when appropriate, instead of just printing stacktraces. This is very important, we definitely need a build to fail when we hit a problem.
- Use the current project defined encoding rather than hard coded UTF-8.
- Use try-with-resources to ensure the PrintWriter gets closed in the event of exception
Nice to haves:
- Specify custom ReflectData implementation (i.e user declared extensions) to be used
- Specify separate output directories for schemata and protocols (these could both default to the single output directory if not specified individually)