summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStep.java19
-rw-r--r--src/main/java/com/c2kernel/persistency/outcome/Outcome.java39
2 files changed, 23 insertions, 35 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStep.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStep.java
index 8aec993..9531ede 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStep.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStep.java
@@ -1,13 +1,9 @@
package com.c2kernel.lifecycle.instance.predefined;
import java.io.StringReader;
-import java.io.StringWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import org.apache.xml.serialize.Method;
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.XMLSerializer;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -17,6 +13,7 @@ import org.w3c.dom.Text;
import org.xml.sax.InputSource;
import com.c2kernel.lifecycle.instance.Activity;
+import com.c2kernel.persistency.outcome.Outcome;
import com.c2kernel.utils.Logger;
/***********************************************************************************************************************************************************************************************************************************************************************************************************
* @author $Author: sgaspard $ $Date: 2004/09/21 10:32:17 $
@@ -100,19 +97,9 @@ public class PredefinedStep extends Activity
param.appendChild(t);
root.appendChild(param);
}
- // xalan method - use internal xerces one instead
-// TransformerFactory transFactory = TransformerFactory.newInstance();
-// Transformer transformer = transFactory.newTransformer();
-// StringWriter stringOut = new StringWriter();
-// transformer.transform(new DOMSource(dom), new StreamResult(stringOut));
-// return stringOut.toString();
+
+ return Outcome.serialize(dom, false);
- OutputFormat format = new OutputFormat(Method.XML, null, false);
- StringWriter stringOut = new StringWriter();
- XMLSerializer serial = new XMLSerializer(stringOut, format);
- serial.asDOMSerializer();
- serial.serialize(dom);
- return stringOut.toString();
}
catch (Exception e)
{
diff --git a/src/main/java/com/c2kernel/persistency/outcome/Outcome.java b/src/main/java/com/c2kernel/persistency/outcome/Outcome.java
index d321f69..a0b01ee 100644
--- a/src/main/java/com/c2kernel/persistency/outcome/Outcome.java
+++ b/src/main/java/com/c2kernel/persistency/outcome/Outcome.java
@@ -1,18 +1,17 @@
package com.c2kernel.persistency.outcome;
import java.io.StringReader;
-import java.io.StringWriter;
import java.util.StringTokenizer;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import org.apache.xml.serialize.Method;
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.XMLSerializer;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
+import org.w3c.dom.bootstrap.DOMImplementationRegistry;
+import org.w3c.dom.ls.DOMImplementationLS;
+import org.w3c.dom.ls.LSSerializer;
import org.xml.sax.InputSource;
import com.c2kernel.common.PersistencyException;
@@ -27,8 +26,10 @@ public class Outcome implements C2KLocalObject {
int mSchemaVersion;
Document dom;
static DocumentBuilder parser;
+ static DOMImplementationLS impl;
static {
+ // Set up parser
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
dbf.setNamespaceAware(false);
@@ -36,7 +37,18 @@ public class Outcome implements C2KLocalObject {
parser = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e) {
Logger.error(e);
+ Logger.die("Cannot function without XML parser");
}
+
+ // Set up serialiser
+ try {
+ DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
+ impl = (DOMImplementationLS)registry.getDOMImplementation("LS");
+ } catch (Exception e) {
+ Logger.error(e);
+ Logger.die("Cannot function without XML serialiser");
+ }
+
}
//id is the eventID
@@ -158,20 +170,9 @@ public class Outcome implements C2KLocalObject {
static public String serialize(Document doc, boolean prettyPrint)
{
- String serializedDoc = null;
- OutputFormat format = new OutputFormat(Method.XML, null, prettyPrint);
- StringWriter stringOut = new StringWriter();
- XMLSerializer serial = new XMLSerializer(stringOut, format);
- try
- {
- serial.asDOMSerializer();
- serial.serialize(doc);
- }
- catch (java.io.IOException ex)
- {
- Logger.error(ex.toString());
- }
- serializedDoc = stringOut.toString();
- return serializedDoc;
+ LSSerializer writer = impl.createLSSerializer();
+ writer.getDomConfig().setParameter("format-pretty-print", prettyPrint);
+ writer.getDomConfig().setParameter("xml-declaration", false);
+ return writer.writeToString(doc);
}
}