code: public static void addEntries(File zip, ZipEntrySource[] entries, OutputStream destOut) {
      if (log.isDebugEnabled()) {
        log.debug("Copying '" + zip + "' to a stream and adding " + Arrays.asList(entries) + ".");
      }
  
      ZipOutputStream out = null;
      try {
        out = new ZipOutputStream(destOut);
        copyEntries(zip, out);
        for (int i = 0; i < entries.length; i++) {
          addEntry(entries[i], out);
        }
        out.finish();
      }
      catch (IOException e) {
        ZipExceptionUtil.rethrow(e);
      }
    }
docs: Copies an existing ZIP file and appends it with new entries.
  
  @param zip
  an existing ZIP file (only read).
  @param entries
  new ZIP entries appended.
  @param destOut
  new ZIP destination output stream