@Override public void finishPatch(final Patch processedPatch, final RollbackPatch patch, final IdentityPatchContext context) throws Exception { context.restoreConfiguration(patch.getPatchId(), resetConfiguration); }
final Patch originalPatch = loadPatchInformation(patchID, installedImage); final RollbackPatch rollbackPatch = loadRollbackInformation(patchID, installedImage); final Patch.PatchType patchType = rollbackPatch.getIdentity().getPatchType(); final InstalledIdentity history = rollbackPatch.getIdentityState(); for (final PatchElement patchElement : rollbackPatch.getElements()) { final String elementPatchId = patchElement.getId(); final PatchElementProvider provider = patchElement.getProvider(); PatchingTasks.rollback(patchID, originalPatch.getModifications(), rollbackPatch.getModifications(), identity, ContentItemFilter.MISC_ONLY, mode); identity.rollback(patchID); restoreFromHistory(identity, rollbackPatch.getPatchId(), patchType, identityHistory); if(patchType == Patch.PatchType.CUMULATIVE) { reenableNotOverridenModules(rollbackPatch, context); final Identity.IdentityUpgrade upgrade = rollbackPatch.getIdentity().forType(Patch.PatchType.CUMULATIVE, Identity.IdentityUpgrade.class); identity.setResultingVersion(upgrade.getResultingVersion());
void reenableNotOverridenModules(final RollbackPatch patch, IdentityPatchContext context) throws PatchingException, IOException, XMLStreamException { assert patch.getIdentity().getPatchType() == Patch.PatchType.CUMULATIVE; final Iterator historyIterator = context.getHistory().iterator(patch.getIdentityState().getIdentity().loadTargetInfo()); if(!historyIterator.hasNext()) { return; final List<PatchElement> elements = patch.getElements(); final Map<String, List<PatchElement>> layerPatches = new HashMap<String, List<PatchElement>>(elements.size()); final Map<String, List<PatchElement>> addonPatches = new HashMap<String, List<PatchElement>>(elements.size());
final PatchBuilder patchBuilder = (PatchBuilder)PatchXml.parse(rollbackXml); final RollbackPatch patch = (RollbackPatch) patchBuilder.build(); PatchableTarget.TargetInfo nextInfo = patch.getIdentityState().getIdentity().loadTargetInfo(); if(BASE.equals(nextInfo.getCumulativePatchID())) { if(nextInfo.getPatchIDs().isEmpty()) {
final Patch originalPatch = loadPatchInformation(patchID, installedImage); final RollbackPatch rollbackPatch = loadRollbackInformation(patchID, installedImage); final Patch.PatchType patchType = rollbackPatch.getIdentity().getPatchType(); final InstalledIdentity history = rollbackPatch.getIdentityState(); for (final PatchElement patchElement : rollbackPatch.getElements()) { final String elementPatchId = patchElement.getId(); final PatchElementProvider provider = patchElement.getProvider(); PatchingTasks.rollback(patchID, originalPatch.getModifications(), rollbackPatch.getModifications(), identity, ContentItemFilter.MISC_ONLY, mode); identity.rollback(patchID); restoreFromHistory(identity, rollbackPatch.getPatchId(), patchType, identityHistory); if(patchType == Patch.PatchType.CUMULATIVE) { reenableNotOverridenModules(rollbackPatch, context); final Identity.IdentityUpgrade upgrade = rollbackPatch.getIdentity().forType(Patch.PatchType.CUMULATIVE, Identity.IdentityUpgrade.class); identity.setResultingVersion(upgrade.getResultingVersion());
void reenableNotOverridenModules(final RollbackPatch patch, IdentityPatchContext context) throws PatchingException, IOException, XMLStreamException { assert patch.getIdentity().getPatchType() == Patch.PatchType.CUMULATIVE; final Iterator historyIterator = context.getHistory().iterator(patch.getIdentityState().getIdentity().loadTargetInfo()); if(!historyIterator.hasNext()) { return; final List<PatchElement> elements = patch.getElements(); final Map<String, List<PatchElement>> layerPatches = new HashMap<String, List<PatchElement>>(elements.size()); final Map<String, List<PatchElement>> addonPatches = new HashMap<String, List<PatchElement>>(elements.size());
@Override public void writeContent(final XMLExtendedStreamWriter writer, final RollbackPatch rollbackPatch) throws XMLStreamException { // Get started ... writer.writeStartDocument(); writer.writeStartElement(Element.PATCH.name); writer.writeDefaultNamespace(PatchXml.Namespace.ROLLBACK_1_2.getNamespace()); writePatch(writer, rollbackPatch); writeInstallation(writer, rollbackPatch.getIdentityState()); // Done writer.writeEndElement(); writer.writeEndDocument(); }
final PatchBuilder patchBuilder = (PatchBuilder)PatchXml.parse(rollbackXml); final RollbackPatch patch = (RollbackPatch) patchBuilder.build(); PatchableTarget.TargetInfo nextInfo = patch.getIdentityState().getIdentity().loadTargetInfo(); if(BASE.equals(nextInfo.getCumulativePatchID())) { if(nextInfo.getPatchIDs().isEmpty()) {
@Override public void finishPatch(final Patch processedPatch, final RollbackPatch patch, final IdentityPatchContext context) throws Exception { context.restoreConfiguration(patch.getPatchId(), resetConfiguration); }
final PatchBuilder patchBuilder = (PatchBuilder)PatchXml.parse(rollbackXml); final RollbackPatch patch = (RollbackPatch) patchBuilder.build(); state.currentInfo = patch.getIdentityState().getIdentity().loadTargetInfo(); state.patchIndex = 0; state.type = ONE_OFF;
@Override public void writeContent(final XMLExtendedStreamWriter writer, final RollbackPatch rollbackPatch) throws XMLStreamException { // Get started ... writer.writeStartDocument(); writer.writeStartElement(Element.PATCH.name); writer.writeDefaultNamespace(PatchXml.Namespace.ROLLBACK_1_2.getNamespace()); writePatch(writer, rollbackPatch); writeInstallation(writer, rollbackPatch.getIdentityState()); // Done writer.writeEndElement(); writer.writeEndDocument(); }
final PatchBuilder patchBuilder = (PatchBuilder)PatchXml.parse(rollbackXml); final RollbackPatch patch = (RollbackPatch) patchBuilder.build(); state.currentInfo = patch.getIdentityState().getIdentity().loadTargetInfo(); state.patchIndex = 0; state.type = ONE_OFF;
@Override public boolean process(PatchingXmlArtifact.XmlArtifactState<RollbackPatch> parent, PatchingArtifactProcessor processor) { final RollbackPatch patch = parent.getPatch(); final PatchingArtifacts.PatchID patchID = processor.getParentArtifact(PatchingArtifacts.HISTORY_RECORD); final InstalledIdentity identity = patch.getIdentityState(); processor.getValidationContext().setCurrentPatchIdentity(identity); final State state = new State(identity, patchID); if (identity == null) { processor.getValidationContext().getErrorHandler().addMissing(PatchingArtifacts.ROLLBACK_TARGET, state); return false; } else { return processor.process(this, state); } }
@Override public boolean process(PatchingXmlArtifact.XmlArtifactState<RollbackPatch> parent, PatchingArtifactProcessor processor) { final RollbackPatch patch = parent.getPatch(); final PatchingArtifacts.PatchID patchID = processor.getParentArtifact(PatchingArtifacts.HISTORY_RECORD); final InstalledIdentity identity = patch.getIdentityState(); processor.getValidationContext().setCurrentPatchIdentity(identity); final State state = new State(identity, patchID); if (identity == null) { processor.getValidationContext().getErrorHandler().addMissing(PatchingArtifacts.ROLLBACK_TARGET, state); return false; } else { return processor.process(this, state); } }