travesty icon indicating copy to clipboard operation
travesty copied to clipboard

Add configurability of `graphiz-java` 's engine

Open mikolak-net opened this issue 7 years ago • 0 comments

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.

mikolak-net avatar Jan 17 '18 21:01 mikolak-net