You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/07/02 16:49:00 UTC

[05/25] incubator-taverna-language git commit: addResource with old-style Document (now @deprecated)

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 <st...@soiland-reyes.com>
Authored: Wed Dec 11 16:47:07 2013 +0000
Committer: Stian Soiland-Reyes <so...@cs.manchester.ac.uk>
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();
 	}