[jboss-svn-commits] JBL Code SVN: r38139 - labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/transformation/xslt.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jul 13 12:14:11 EDT 2012
Author: tcunning
Date: 2012-07-13 12:14:10 -0400 (Fri, 13 Jul 2012)
New Revision: 38139
Modified:
labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/transformation/xslt/ResultFactory.java
labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/transformation/xslt/SourceFactory.java
Log:
JBESB-3708
Handle DOMSource as a DocumentFragment rather than as a DOM Document.
Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/transformation/xslt/ResultFactory.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/transformation/xslt/ResultFactory.java 2012-07-13 14:12:17 UTC (rev 38138)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/transformation/xslt/ResultFactory.java 2012-07-13 16:14:10 UTC (rev 38139)
@@ -24,11 +24,20 @@
import java.io.OutputStream;
import java.io.StringWriter;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamResult;
+import org.apache.log4j.Logger;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentFragment;
+import org.w3c.dom.Node;
+
/**
* Factory for {@link Result}s.
*
@@ -38,10 +47,23 @@
{
public enum ResultType { STRING, BYTES, DOM, SAX, SOURCERESULT }
+ private static Logger log = Logger.getLogger(ResultFactory.class);
+
private static ResultFactory factory = new ResultFactory();
- private ResultFactory() {}
+ private static Document doc;
+ private ResultFactory() {
+ DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = null;
+ try {
+ dBuilder = domFactory.newDocumentBuilder();
+ doc = dBuilder.newDocument();
+ } catch (ParserConfigurationException e) {
+ log.error("Error construction DOM document", e);
+ }
+ }
+
public static ResultFactory getInstance()
{
return factory;
@@ -59,7 +81,8 @@
result = new StreamResult(new ByteArrayOutputStream());
break;
case DOM:
- result = new DOMResult();
+ DocumentFragment resultRoot = doc.createDocumentFragment();
+ result = new DOMResult( resultRoot );
break;
case SAX:
result = new SAXResult();
@@ -80,7 +103,8 @@
OutputStream outputStream = ((StreamResult)result).getOutputStream();
return ((ByteArrayOutputStream)outputStream).toByteArray();
case DOM:
- return ((DOMResult)result).getNode();
+ Node resultNode = ((DOMResult) result).getNode();
+ return resultNode;
case SAX:
return (SAXResult)result;
case SOURCERESULT:
Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/transformation/xslt/SourceFactory.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/transformation/xslt/SourceFactory.java 2012-07-13 14:12:17 UTC (rev 38138)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/transformation/xslt/SourceFactory.java 2012-07-13 16:14:10 UTC (rev 38139)
@@ -37,6 +37,7 @@
import javax.xml.transform.stream.StreamSource;
import org.apache.xerces.dom.DocumentImpl;
+import org.w3c.dom.DocumentFragment;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -161,6 +162,11 @@
DocumentImpl doc = (DocumentImpl) from;
domSource.setNode(doc.getFirstChild()); //doc is an object implementing org.w3c.dom.Document
source = domSource;
+ } else if (from instanceof DocumentFragment) {
+ DOMSource domSource = new DOMSource();
+ DocumentFragment doc = (DocumentFragment) from;
+ domSource.setNode(doc); //doc is an object implementing org.w3c.dom.Document
+ source = domSource;
} else if (from instanceof Source) {
source = (Source)from;
}
More information about the jboss-svn-commits
mailing list