Skip to content


Choose a tag to compare
@mtf90 mtf90 released this 11 Oct 16:36
· 294 commits to develop since this release

Full changelog


  • All de-serializers now can also parse GZIP'ed contents from either InputStreams, Files, URLs or byte[]s.


  • We overhauled the handling of input and output streams for all (de-)serializers. Input and output streams are no longer closed automatically. This is to prevent asymmetric code where we would close a stream that we haven't opened. This is problematic in cases where e.g. System.out is passed as an output stream to simply print a serialized automaton and the System.out stream would be closed afterwards. Since input and output streams are usually opened in client-code, they should be closed in client-code as well. We suggest to simply wrap calls to the serializers in a try-with-resource block.
  • Due to the DOT parsers rewrite (see Fixed), the attribute parsers now receive a Map<String, String> instead of a Map<String, Object>.
  • The State class (used by the OneSEVPA automaton) not longer supports the notion of a sink state. The AbstractOneSEVPA class now conforms with the default semantics of a DeterministicTransitionSystem that undefined transitions simply return null.


  • Removed IOUtil#copy, IOUtil#skip, NullOutputStream. Use the Guava equivalents from ByteStreams and CharStreams.


  • Correctly enquote outputs containing whitespaces in TAFWriter (#37, thanks to @aschieweck)
  • Fixed a bug in the Graph representation of AbstractOneSEVPAs (#39, thanks to @DonatoClun)
  • Fixed wrong default values in the overloaded methods of the Minimizer class (#41).
  • Replaced the 3rd-party DOT parser with our own implementation to fix the issue that multi-edges between nodes were not properly handled.