code: private InputStream compressInputStream(InputStream is) throws IOException {
  		int next = -1;
  		ByteArrayOutputStream baos = new ByteArrayOutputStream();
  		OutputStream os = new GZIPOutputStream(baos);
  
  		while ((next = is.read()) >= 0) {
  			os.write(next);
  		}
  
  		baos.close();
  		os.close();
  		is.close();
  		return new ByteArrayInputStream(baos.toByteArray());
  	}
docs: Use gzip to compress the input stream.
  We do copying here, but I'm not sure whether there is a way around it anyway,
  because we need to know the number of bytes to send out, before we can
  start sending them. (no chunked encoding)
  
  @param is
  @return
  @throws IOException if something goes wrong while working on
  the {@link InputStream} instances.