/** * unpack... * * @param zip the zip * @param patchDir the patch dir * @throws IOException */ public static void unzip(final File zip, final File patchDir) throws IOException { try (final ZipFile zipFile = new ZipFile(zip)){ unzip(zipFile, patchDir); } }
/** * unpack... * * @param zip the zip * @param patchDir the patch dir * @throws IOException */ public static void unzip(final File zip, final File patchDir) throws IOException { try (final ZipFile zipFile = new ZipFile(zip)){ unzip(zipFile, patchDir); } }
private static File expandContent(File patchFile, final File workDir, final String expandDirName) throws PatchingException { final File patchDir; try { if (!patchFile.isDirectory()) { patchDir = new File(workDir, expandDirName); // Save the content final File cachedContent = new File(patchDir, "content"); IoUtils.copy(patchFile, cachedContent); // Unpack to the work dir ZipUtils.unzip(cachedContent, patchDir); } else { patchDir = patchFile; } } catch (IOException e) { throw new PatchingException("Failed to unzip " + patchFile.getAbsolutePath()); } return patchDir; }
private static File expandContent(File patchFile, final File workDir, final String expandDirName) throws PatchingException { final File patchDir; try { if (!patchFile.isDirectory()) { patchDir = new File(workDir, expandDirName); // Save the content final File cachedContent = new File(patchDir, "content"); IoUtils.copy(patchFile, cachedContent); // Unpack to the work dir ZipUtils.unzip(cachedContent, patchDir); } else { patchDir = patchFile; } } catch (IOException e) { throw new PatchingException("Failed to unzip " + patchFile.getAbsolutePath()); } return patchDir; }
private PatchingResult applyPatch(final File parentWorkDir, final InputStream is, final ContentVerificationPolicy contentPolicy) throws PatchingException { File workDir = null; try { // Create a working dir workDir = parentWorkDir == null ? IdentityPatchRunner.createTempDir() : IdentityPatchRunner.createTempDir(parentWorkDir); try { // Save the content Path cachedContent = workDir.toPath().resolve("content"); Files.copy(is, cachedContent); // Unpack to the work dir ZipUtils.unzip(cachedContent.toFile(), workDir); } catch (IOException e) { throw PatchLogger.ROOT_LOGGER.cannotCopyFilesToTempDir(workDir.getAbsolutePath(), e.getMessage(), e); // add info that temp dir is involved } // Execute return execute(workDir, contentPolicy); } catch (Exception e) { throw rethrowException(e); } finally { if (workDir != null && !IoUtils.recursiveDelete(workDir)) { PatchLogger.ROOT_LOGGER.cannotDeleteFile(workDir.getAbsolutePath()); } } }
private PatchingResult applyPatch(final File parentWorkDir, final InputStream is, final ContentVerificationPolicy contentPolicy) throws PatchingException { File workDir = null; try { // Create a working dir workDir = parentWorkDir == null ? IdentityPatchRunner.createTempDir() : IdentityPatchRunner.createTempDir(parentWorkDir); try { // Save the content Path cachedContent = workDir.toPath().resolve("content"); Files.copy(is, cachedContent); // Unpack to the work dir ZipUtils.unzip(cachedContent.toFile(), workDir); } catch (IOException e) { throw PatchLogger.ROOT_LOGGER.cannotCopyFilesToTempDir(workDir.getAbsolutePath(), e.getMessage(), e); // add info that temp dir is involved } // Execute return execute(workDir, contentPolicy); } catch (Exception e) { throw rethrowException(e); } finally { if (workDir != null && !IoUtils.recursiveDelete(workDir)) { PatchLogger.ROOT_LOGGER.cannotDeleteFile(workDir.getAbsolutePath()); } } }