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();
        }
 

Reply via email to