/******************************************************************************* * Copyright (c) 2014 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.windup.ui.internal.archiver; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.ArchiveOutputStream; import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; /** * <p> * Exports {@link File}s to a .zip file * </p> * * <p> * This class is based off of the {@link org.eclipse.ui.internal.wizards.datatransfer.ZipFileExporter} class used to archive * {@link org.eclipse.core.resources.IResource}s, this modified version of the operation is used to export {@link File}s. * </p> * * @see org.eclipse.ui.internal.wizards.datatransfer.ZipFileExporter */ @SuppressWarnings("restriction") public class ZipFileExporter extends AbstractArchiveFileExporter { /** * Create an instance of this class. * * @param archiveName Name of the archive to create and add {@link File}s too * @param compress <code>true</code> to use compression when creating the ZIP archive, <code>false</code> otherwise * * @exception java.io.IOException can happen when doing file IO */ public ZipFileExporter(String archiveName, boolean compress) throws IOException { super(archiveName, compress); } /** * @see org.jboss.tools.windup.ui.internal.archiver.AbstractArchiveFileExporter#createOutputStream(java.lang.String, boolean) */ @Override protected ArchiveOutputStream createOutputStream( String archiveName, boolean compress) throws IOException { ZipArchiveOutputStream zipOut = new ZipArchiveOutputStream(new FileOutputStream(archiveName)); zipOut.setMethod(compress ? ZipEntry.DEFLATED : ZipEntry.STORED); return zipOut; } /** * @see org.jboss.tools.windup.ui.internal.archiver.AbstractArchiveFileExporter#getNewArchiveEntry(java.io.File, java.lang.String) */ @Override protected ArchiveEntry getNewArchiveEntry(File fileToArchive, String destinationPath) { return new ZipArchiveEntry(fileToArchive, destinationPath); } }