travesty
travesty copied to clipboard
Add configurability of `graphiz-java` 's engine
graphviz-java offers several implementations of Graphviz. The problem is that those implementations are quite "fragile", i.e. if the first one defined is determined to be "available" by graphviz-java, it will be used even if it causes errors down the line on a specific machine.
An example here is an old CLI version of Graphviz unable to create a specific format, or a Nashhorn version unable to initialize due to JVM bugs/peculiarities, eventually throwing an NPE or similar.
- [x] A stopgap is to add a config entry that is parsed into the preferred engine sequence.
- [ ] A long-term solution would be to wrap invocations on different engines into an execution-deferral abstraction (such as
Try) and provide proper fallback support.