@Override byte[] backup(PatchingTaskContext context) throws IOException { if(target.isFile()) { // Backup the original in the history directory final byte[] backupHash = IoUtils.copy(target, backup); return backupHash; } else if (contentItem.isDirectory() && target.isDirectory()) { // Completely ignore the apply step if the directory already exists // This will basically skip the creation of the rollback item setIgnoreApply(); } return NO_CONTENT; }
@Override byte[] backup(PatchingTaskContext context) throws IOException { if(target.isFile()) { // Backup the original in the history directory final byte[] backupHash = IoUtils.copy(target, backup); return backupHash; } else if (contentItem.isDirectory() && target.isDirectory()) { // Completely ignore the apply step if the directory already exists // This will basically skip the creation of the rollback item setIgnoreApply(); } return NO_CONTENT; }
@Override byte[] apply(PatchingTaskContext context, PatchContentLoader loader) throws IOException { final MiscContentItem item = contentItem; if(item.isDirectory()) { if(! target.mkdirs() && ! target.isDirectory()) { throw PatchLogger.ROOT_LOGGER.cannotCreateDirectory(target.getAbsolutePath()); } return NO_CONTENT; } else { if (!target.exists()) { createParentDirectories(target, item.getPath(), item.getPath().length, context); } final InputStream is = loader.openContentStream(item); try { // Replace the file return copy(is, target); } finally { safeClose(is); } } }
@Override byte[] apply(PatchingTaskContext context, PatchContentLoader loader) throws IOException { final MiscContentItem item = contentItem; if(item.isDirectory()) { if(! target.mkdirs() && ! target.isDirectory()) { throw PatchLogger.ROOT_LOGGER.cannotCreateDirectory(target.getAbsolutePath()); } return NO_CONTENT; } else { if (!target.exists()) { createParentDirectories(target, item.getPath(), item.getPath().length, context); } final InputStream is = loader.openContentStream(item); try { // Replace the file return copy(is, target); } finally { safeClose(is); } } }
@Override ContentModification createRollbackEntry(ContentModification original, byte[] targetHash, byte[] itemHash) { final MiscContentItem item = new MiscContentItem(contentItem.getName(), contentItem.getPath(), itemHash, contentItem.isDirectory(), contentItem.isAffectsRuntime()); return createRollbackEntry(original, item, targetHash); }
@Override ContentModification createRollbackEntry(ContentModification original, byte[] targetHash, byte[] itemHash) { final MiscContentItem item = new MiscContentItem(contentItem.getName(), contentItem.getPath(), itemHash, contentItem.isDirectory(), contentItem.isAffectsRuntime()); return createRollbackEntry(original, item, targetHash); }
if (item.isDirectory()) { writer.writeAttribute(Attribute.DIRECTORY.name, "true");
if (item.isDirectory()) { writer.writeAttribute(Attribute.DIRECTORY.name, "true");
final MiscContentItem misc = (MiscContentItem) cp2Item; elementBuilder.addFile(misc.getName(), Arrays.asList(misc.getPath()), misc.getContentHash(), misc.isDirectory()); } else { // bundle final BundleItem bundle = (BundleItem) cp2Item; final MiscContentItem misc = (MiscContentItem) cp2Mod.getItem(); elementBuilder.removeFile(misc.getName(), Arrays.asList(misc.getPath()), cp1Mod.getTargetHash(), misc.isDirectory()); } else { // bundle final BundleItem bundle = (BundleItem) cp2Mod.getItem(); final MiscContentItem misc = (MiscContentItem) cp2Mod.getItem(); elementBuilder.modifyFile(misc.getName(), Arrays.asList(misc.getPath()), cp1Mod.getTargetHash(), misc.getContentHash(), misc.isDirectory()); } else { // bundle final BundleItem bundle = (BundleItem) cp2Mod.getItem();
final MiscContentItem misc = (MiscContentItem) cp2Item; elementBuilder.addFile(misc.getName(), Arrays.asList(misc.getPath()), misc.getContentHash(), misc.isDirectory()); } else { // bundle final BundleItem bundle = (BundleItem) cp2Item; final MiscContentItem misc = (MiscContentItem) cp2Mod.getItem(); elementBuilder.removeFile(misc.getName(), Arrays.asList(misc.getPath()), cp1Mod.getTargetHash(), misc.isDirectory()); } else { // bundle final BundleItem bundle = (BundleItem) cp2Mod.getItem(); final MiscContentItem misc = (MiscContentItem) cp2Mod.getItem(); elementBuilder.modifyFile(misc.getName(), Arrays.asList(misc.getPath()), cp1Mod.getTargetHash(), misc.getContentHash(), misc.isDirectory()); } else { // bundle final BundleItem bundle = (BundleItem) cp2Mod.getItem();