code: @Nonnull
    public static NonBlockingByteArrayOutputStream getGraphAsImageWithGraphVizNeato (@Nonnull @Nonempty final String sFileType,
                                                                                     @Nonnull final String sDOT) throws IOException,
                                                                                                                 InterruptedException
    {
      ValueEnforcer.notEmpty (sFileType, "FileType");
      ValueEnforcer.notEmpty (sDOT, "DOT");
  
      final ProcessBuilder aPB = new ProcessBuilder ("neato", "-T" + sFileType).redirectErrorStream (false);
      final Process p = aPB.start ();
      // Set neato stdin
      p.getOutputStream ().write (sDOT.getBytes (StandardCharsets.UTF_8));
      p.getOutputStream ().close ();
      // Read neato stdout
      final NonBlockingByteArrayOutputStream aBAOS = new NonBlockingByteArrayOutputStream ();
      StreamHelper.copyInputStreamToOutputStream (p.getInputStream (), aBAOS);
      p.waitFor ();
      return aBAOS;
    }
docs: Invoked the external process "neato" from the GraphViz package. Attention:
  this spans a sub-process!
  
  @param sFileType
  The file type to be generated. E.g. "png" - see neato help for
  details. May neither be <code>null</code> nor empty.
  @param sDOT
  The DOT file to be converted to an image. May neither be
  <code>null</code> nor empty.
  @return The byte buffer that keeps the converted image. Never
  <code>null</code>.
  @throws IOException
  In case some IO error occurs
  @throws InterruptedException
  If the sub-process did not terminate correctly!