addResource with old-style Document (now @deprecated) Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/8f9dfdfe Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/8f9dfdfe Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/8f9dfdfe
Branch: refs/heads/ucfpackage-robundle Commit: 8f9dfdfea1b2f8b642f6387208352d891efd7e07 Parents: d3c571e Author: Stian Soiland-Reyes <[email protected]> Authored: Wed Dec 11 16:47:07 2013 +0000 Committer: Stian Soiland-Reyes <[email protected]> Committed: Thu Jul 2 15:06:27 2015 +0100 ---------------------------------------------------------------------- .../taverna/scufl2/ucfpackage/UCFPackage.java | 35 +++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/8f9dfdfe/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java ---------------------------------------------------------------------- diff --git a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java index a1e32d3..6a89cb2 100644 --- a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java +++ b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java @@ -49,6 +49,12 @@ import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; import org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.OdfPackage; import org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.manifest.OdfFileEntry; @@ -272,16 +278,29 @@ public class UCFPackage implements Cloneable { manifest.getAggregation(bundlePath).setMediatype(mediaType); } + @Deprecated public void addResource(Document document, String path, String mediaType) throws IOException { - try { - odfPackage.insert(document, path, mediaType); - } catch (IOException e) { - throw e; - } catch (Exception e) { - throw new IOException("Could not add " + path, e); - } - if (path.equals(CONTAINER_XML)) + + Path bundlePath = bundle.getRoot().resolve(path); + TransformerFactory tFactory = TransformerFactory.newInstance(); + Transformer transformer; + try { + transformer = tFactory.newTransformer(); + } catch (TransformerConfigurationException e) { + throw new IOException("Can't create XML transformer to save " + + path, e); + } + + DOMSource source = new DOMSource(document); + try (OutputStream outStream = Files.newOutputStream(bundlePath)) { + StreamResult result = new StreamResult(outStream); + transformer.transform(source, result); + } catch (TransformerException e) { + throw new IOException("Can't save XML to " + path, e); + } + + if (path.equals(CONTAINER_XML)) { parseContainerXML(); }
