docs: public static byte[] compress(byte[] value, int offset, int length, int compressionLevel) {
          /* Create an expandable byte array to hold the compressed data.
           * You cannot use an array that's the same size as the orginal because
           * there is no guarantee that the compressed data will be smaller than
           * the uncompressed data. */
          ByteArrayOutputStream bos = new ByteArrayOutputStream(length);
          Deflater compressor = new Deflater();
          try {
              compressor.setLevel(compressionLevel);
              compressor.setInput(value, offset, length);
              compressor.finish();
              final byte[] buf = new byte[1024];
              while (!compressor.finished()) {
                  int count = compressor.deflate(buf);
                  bos.write(buf, 0, count);
              }
          } finally {
              compressor.end();
          }
          return bos.toByteArray();
      }