@Override public List<PatchElement> getElements() { return patch.getElements(); }
static ContentTaskDefinitions process(final RollbackInfo... rollbackInfos) { final ContentTaskDefinitions foo = new ContentTaskDefinitions(); for(final RollbackInfo info : rollbackInfos) { PatchingTasks.rollback(info.original.getPatchId(), info.original.getModifications(), info.rollback.getModifications(), foo, ContentItemFilter.MISC_ONLY, PatchingTaskContext.Mode.APPLY); } return foo; }
/** * Create a patch representing what we actually processed. This may contain some fixed content hashes for removed * modules. * * @param original the original * @return the processed patch */ protected Patch createProcessedPatch(final Patch original) { // Process elements final List<PatchElement> elements = new ArrayList<PatchElement>(); // Process layers for (final PatchEntry entry : getLayers()) { final PatchElement element = createPatchElement(entry, entry.element.getId(), entry.modifications); elements.add(element); } // Process add-ons for (final PatchEntry entry : getAddOns()) { final PatchElement element = createPatchElement(entry, entry.element.getId(), entry.modifications); elements.add(element); } // Swap the patch element modifications, keep the identity ones since we don't need to fix the misc modifications return new PatchImpl(original.getPatchId(), original.getDescription(), original.getLink(), original.getIdentity(), elements, identityEntry.modifications); }
public IdentityApplyCallback(final Patch original, final DirectoryStructure structure) { this.patchId = original.getPatchId(); this.original = original; this.structure = structure; }
public static void assertInstallationIsPatched(Patch patch, PatchableTarget.TargetInfo targetInfo) { if (CUMULATIVE == patch.getIdentity().getPatchType()) { assertEquals(patch.getPatchId(), targetInfo.getCumulativePatchID()); } else { Assert.assertTrue(targetInfo.getPatchIDs().contains(patch.getPatchId())); // applied one-off patch is at the top of the patchIDs assertEquals(patch.getPatchId(), targetInfo.getPatchIDs().get(0)); } } }
for (final PatchElement element : patch.getElements()) { final File patchRoot = new File(targetRoot, patch.getPatchId()); final PatchContentLoader targetLoader = PatchContentLoader.create(patchRoot); final PatchContentWriter writer = new PatchContentWriter() { writer.copyItems(patch.getModifications());
static void assertApplied(final Patch patch, InstallationManager manager) throws IOException { final String patchID = patch.getPatchId(); InstalledIdentity installedIdentity = null; try { installedIdentity = manager.getInstalledIdentity(patch.getIdentity().getName(), null); } catch (PatchingException e) { Assert.fail(e.getLocalizedMessage()); } final PatchableTarget target = installedIdentity.getIdentity(); final PatchableTarget.TargetInfo identity = target.loadTargetInfo(); assertIsApplied(patch.getIdentity().getPatchType(), patchID, identity); assertExists(identity.getDirectoryStructure().getInstalledImage().getPatchHistoryDir(patchID)); assertContentItems(patchID, target, patch.getModifications()); for (final PatchElement element : patch.getElements()) { final PatchElementProvider provider = element.getProvider(); final PatchableTarget targetElement = provider.isAddOn() ? installedIdentity.getAddOn(provider.getName()) : installedIdentity.getLayer(provider.getName()); assertIsApplied(provider.getPatchType(), element.getId(), targetElement.loadTargetInfo()); assertContentItems(element.getId(), targetElement, element.getModifications()); } }
final Identity identity = patch.getIdentity(); final Patch.PatchType patchType = identity.getPatchType(); final InstallationManager.InstallationModification modification = context.getModification(); for (final PatchElement element : patch.getElements()) { apply(patchId, patch.getModifications(), identityEntry); identityEntry.apply(patchId, patchType);
@Test public void testParseOneOff() throws Exception { final InputStream is = getResource("patch-02-ONE-OFF.xml"); final Patch patch = PatchXml.parse(is).resolvePatch(null, null); // One-off Patch assertNotNull(patch); assertNotNull(patch.getPatchId()); assertNotNull(patch.getDescription()); final Identity identity = patch.getIdentity(); assertNotNull(identity); assertNotNull(patch.getIdentity().getVersion()); }
static void assertNotApplied(final Patch patch, InstallationManager manager) throws IOException { InstalledIdentity installedIdentity = null; try { installedIdentity = manager.getInstalledIdentity(patch.getIdentity().getName(), patch.getIdentity().getVersion()); } catch (PatchingException e) { Assert.fail(e.getLocalizedMessage()); } final PatchableTarget.TargetInfo identity = installedIdentity.getIdentity().loadTargetInfo(); assertNotApplied(patch.getIdentity().getPatchType(), patch.getPatchId(), identity); assertDoesNotExists(identity.getDirectoryStructure().getInstalledImage().getPatchHistoryDir(patch.getPatchId())); for (final PatchElement element : patch.getElements()) { final PatchElementProvider provider = element.getProvider(); final PatchableTarget target = provider.isAddOn() ? installedIdentity.getAddOn(provider.getName()) : installedIdentity.getLayer(provider.getName()); Assert.assertNotNull(target); assertNotApplied(provider.getPatchType(), element.getId(), target.loadTargetInfo()); } }
for (final PatchElement patchElement : originalPatch.getElements()) { final PatchElementProvider provider = patchElement.getProvider(); final String layerName = provider.getName(); PatchingTasks.rollback(patchID, originalPatch.getModifications(), rollbackPatch.getModifications(), identity, ContentItemFilter.MISC_ONLY, mode); identity.rollback(patchID);
assert patch.getIdentity().getPatchType() == Patch.PatchType.CUMULATIVE; for (final PatchElement element : patch.getElements()) { for (final PatchElement originalElement : original.getElements()) { if (name.equals(originalElement.getProvider().getName()) && addOn == originalElement.getProvider().isAddOn()) {
@Override public Identity getIdentity() { return patch.getIdentity(); }
@Override public List<ContentModification> getModifications() { return patch.getModifications(); }
@Override public String getDescription() { return patch.getDescription(); }
@Override public String getLink() { return patch.getLink(); }
@Override public String getPatchId() { return original.getPatchId(); }
copyFile(new File(patch2Dir, PatchXml.PATCH_XML), new File(mergedDir, patch2Metadata.getIdentity().getVersion() + PATCH_XML_SUFFIX)); mergeRootContent(new File(patch1Dir, patch1Metadata.getPatchId()), new File(patch2Dir, patch2Metadata.getPatchId()), new File(mergedDir, patch2Metadata.getPatchId())); } catch (IOException e) { throw new PatchingException("Failed to merge root modifications", e);
final InstalledIdentity identity = processor.getValidationContext().getInstalledIdentity(); final Patch patch = parent.getPatch(); if (Constants.BASE.equals(patch.getPatchId())) { return true; final List<PatchElement> elements = patch.getElements(); boolean valid = true; if (elements != null && !elements.isEmpty()) { for (final ContentModification modification : patch.getModifications()) { if (modification.getType() != ModificationType.ADD && modification.getItem().getContentType() == ContentType.MISC) { final PatchingHistoryDirArtifact.DirectoryArtifactState history = processor.getParentArtifact(PatchingArtifacts.HISTORY_DIR);
final Identity identity = patch.getIdentity(); final Patch.PatchType patchType = identity.getPatchType(); final InstallationManager.InstallationModification modification = context.getModification(); for (final PatchElement element : patch.getElements()) { apply(patchId, patch.getModifications(), identityEntry); identityEntry.apply(patchId, patchType);