@Override public void readElement(XMLExtendedStreamReader reader, PatchXml.Result<PatchMetadataResolver> factory) throws XMLStreamException { final PatchBuilder builder = new PatchBuilder(); doReadElement(reader, builder, factory.getOriginalIdentity()); factory.setResult(builder); }
@Override public void readElement(XMLExtendedStreamReader reader, PatchXml.Result<PatchMetadataResolver> factory) throws XMLStreamException { final RollbackPatchBuilder builder = new RollbackPatchBuilder(); doReadElement(reader, builder, factory.getOriginalIdentity()); factory.setResult(builder); }
static ModuleItem createContentItem(final ModuleItem original, final byte[] contentHash) { final ContentType type = original.getContentType(); if(type == ContentType.BUNDLE) { return new BundleItem(original.getName(), original.getSlot(), contentHash); } else { return new ModuleItem(original.getName(), original.getSlot(), contentHash); } }
@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()); }
@Override ContentModification createRollbackEntry(ContentModification original, byte[] targetHash, byte[] itemHash) { final BundleItem item = new BundleItem(contentItem.getName(), contentItem.getSlot(), itemHash); switch (original.getType()) { case ADD: return new ContentModification(item, targetHash, ModificationType.REMOVE, original.getCondition()); case REMOVE: return new ContentModification(item, targetHash, ModificationType.ADD, original.getCondition()); default: return new ContentModification(item, targetHash, ModificationType.MODIFY, original.getCondition()); } }
private void doMarshall(String fileName) throws Exception { final String original = toString(fileName); try (final InputStream is = getResource(fileName)) { final Patch patch = PatchXml.parse(is).resolvePatch(null, null); final StringWriter writer = new StringWriter(); PatchXml.marshal(writer, patch); final String marshalled = writer.toString(); XMLUtils.compareXml(original, marshalled, false); } }
static void doMarshall(final String fileName) throws Exception { final String original = toString(fileName); try (final InputStream is = getResource(fileName)) { final BundledPatch patch = PatchBundleXml.parse(is); final StringWriter writer = new StringWriter(); PatchBundleXml.marshal(writer, patch); final String marshalled = writer.toString(); XMLUtils.compareXml(original, marshalled, false); } }
@Override public void writeContent(XMLExtendedStreamWriter writer, BundledPatch bundledPatch) throws XMLStreamException { writer.writeStartElement(Element.PATCHES.name); writer.writeDefaultNamespace(PatchXml.Namespace.PATCH_BUNDLE_1_0.getNamespace()); for (final BundledPatch.BundledPatchEntry entry : bundledPatch.getPatches()) { writer.writeEmptyElement(Element.PATCH_ELEMENT.name); writer.writeAttribute(Attribute.ID.name, entry.getPatchId()); writer.writeAttribute(Attribute.PATH.name, entry.getPatchPath()); } writer.writeEndElement(); } }
static ContentModification createRollbackItem(String name, List<String> path, byte[] backupHash, boolean directory) { final MiscContentItem backupItem = new MiscContentItem(name, path, backupHash, directory); return new ContentModification(backupItem, NO_CONTENT, ModificationType.ADD); } }
@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(); }
@Override public Patch build() { final Patch patch = super.build(); return new PatchImpl.RollbackPatchImpl(patch, identity); } }
@Override protected void handleRootElement(String localName, XMLExtendedStreamReader reader, PatchBuilder patch, InstalledIdentity originalIdentity) throws XMLStreamException { final RollbackPatchBuilder builder = (RollbackPatchBuilder) patch; final Element element = Element.forName(localName); if (element == Element.INSTALLATION) { final InstalledIdentity identity = processInstallation(reader, originalIdentity); builder.setIdentity(identity); } else { throw unexpectedElement(reader); } }
@Override ContentModification createRollbackEntry(ContentModification original, byte[] targetHash, byte[] itemHash) { final BundleItem item = new BundleItem(contentItem.getName(), contentItem.getSlot(), itemHash); switch (original.getType()) { case ADD: return new ContentModification(item, targetHash, ModificationType.REMOVE, original.getCondition()); case REMOVE: return new ContentModification(item, targetHash, ModificationType.ADD, original.getCondition()); default: return new ContentModification(item, targetHash, ModificationType.MODIFY, original.getCondition()); } }
static ModuleItem createContentItem(final ModuleItem original, final byte[] contentHash) { final ContentType type = original.getContentType(); if(type == ContentType.BUNDLE) { return new BundleItem(original.getName(), original.getSlot(), contentHash); } else { return new ModuleItem(original.getName(), original.getSlot(), contentHash); } }
@Override public void writeContent(XMLExtendedStreamWriter writer, BundledPatch bundledPatch) throws XMLStreamException { writer.writeStartElement(Element.PATCHES.name); writer.writeDefaultNamespace(PatchXml.Namespace.PATCH_BUNDLE_1_0.getNamespace()); for (final BundledPatch.BundledPatchEntry entry : bundledPatch.getPatches()) { writer.writeEmptyElement(Element.PATCH_ELEMENT.name); writer.writeAttribute(Attribute.ID.name, entry.getPatchId()); writer.writeAttribute(Attribute.PATH.name, entry.getPatchPath()); } writer.writeEndElement(); } }
static ContentModification createRollbackItem(String name, List<String> path, byte[] backupHash, boolean directory) { final MiscContentItem backupItem = new MiscContentItem(name, path, backupHash, directory); return new ContentModification(backupItem, NO_CONTENT, ModificationType.ADD); } }
@Override public void readElement(XMLExtendedStreamReader reader, PatchXml.Result<PatchMetadataResolver> factory) throws XMLStreamException { final PatchBuilder builder = new PatchBuilder(); doReadElement(reader, builder, factory.getOriginalIdentity()); factory.setResult(builder); }
@Override public void readElement(XMLExtendedStreamReader reader, PatchXml.Result<PatchMetadataResolver> factory) throws XMLStreamException { final RollbackPatchBuilder builder = new RollbackPatchBuilder(); doReadElement(reader, builder, factory.getOriginalIdentity()); factory.setResult(builder); }
@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(); }
@Override public Patch build() { final Patch patch = super.build(); return new PatchImpl.RollbackPatchImpl(patch, identity); } }