code: private static String readAll(@Nonnull final Reader reader) throws IOException {
  		final StringBuilder buffer = new StringBuilder();
  		int cp;
  		while ((cp = reader.read()) != -1) {
  			buffer.append((char) cp);
  		}
  		return buffer.toString();
  	}
docs: Reads the entire contents via the given {@link Reader} as string.
  
  @param reader
  {@code Reader} to read the entire contents
  @return the read contents as string
  @throws IOException
  If an I/O error occurs