You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by mo...@apache.org on 2017/02/13 21:44:40 UTC

knox git commit: KNOX-863 - Consolidate TransformerFactory calls + enable (Colm O hEigeartaigh via Sandeep More)

Repository: knox
Updated Branches:
  refs/heads/master 3f8ff2aaf -> d82f834ce


KNOX-863 - Consolidate TransformerFactory calls + enable (Colm O hEigeartaigh via Sandeep More)


Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/d82f834c
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/d82f834c
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/d82f834c

Branch: refs/heads/master
Commit: d82f834ceffd52ead5112400a7f56af5a1c59590
Parents: 3f8ff2a
Author: Sandeep More <mo...@apache.org>
Authored: Mon Feb 13 16:44:24 2017 -0500
Committer: Sandeep More <mo...@apache.org>
Committed: Mon Feb 13 16:44:24 2017 -0500

----------------------------------------------------------------------
 .../ha/provider/impl/HaDescriptorManager.java   | 15 +------
 .../rewrite/impl/xml/XmlFilterReader.java       | 13 +------
 .../impl/html/HtmlFilterReaderBaseTest.java     | 31 ---------------
 .../rewrite/impl/xml/XmlFilterReaderTest.java   | 31 ---------------
 .../apache/hadoop/gateway/GatewayServer.java    |  4 +-
 .../gateway/deploy/DeploymentFactoryTest.java   |  1 -
 .../gateway/shell/hbase/table/CreateTable.java  | 16 ++------
 .../gateway/shell/hbase/table/UpdateTable.java  | 16 ++------
 .../gateway/shell/hbase/table/row/StoreRow.java | 16 ++------
 .../hbase/table/scanner/CreateScanner.java      | 16 ++------
 .../java/org/apache/hadoop/test/TestUtils.java  | 17 --------
 .../deploy/DeploymentFactoryFuncTest.java       | 17 --------
 .../apache/hadoop/gateway/util/XmlUtils.java    | 41 +++++++++++++-------
 13 files changed, 51 insertions(+), 183 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-provider-ha/src/main/java/org/apache/hadoop/gateway/ha/provider/impl/HaDescriptorManager.java
----------------------------------------------------------------------
diff --git a/gateway-provider-ha/src/main/java/org/apache/hadoop/gateway/ha/provider/impl/HaDescriptorManager.java b/gateway-provider-ha/src/main/java/org/apache/hadoop/gateway/ha/provider/impl/HaDescriptorManager.java
index 6f7af32..f5e159f 100644
--- a/gateway-provider-ha/src/main/java/org/apache/hadoop/gateway/ha/provider/impl/HaDescriptorManager.java
+++ b/gateway-provider-ha/src/main/java/org/apache/hadoop/gateway/ha/provider/impl/HaDescriptorManager.java
@@ -28,12 +28,8 @@ import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;
 
 import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Writer;
@@ -70,15 +66,8 @@ public class HaDescriptorManager implements HaDescriptorConstants {
             }
          }
 
-         TransformerFactory transformerFactory = TransformerFactory.newInstance();
-         transformerFactory.setAttribute("indent-number", 2);
-         Transformer transformer = transformerFactory.newTransformer();
-         transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
-         transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-         StreamResult result = new StreamResult(writer);
-         DOMSource source = new DOMSource(document);
-         transformer.transform(source, result);
-
+         Transformer t = XmlUtils.getTransformer( true, true, 2, false );
+         XmlUtils.writeXml( document, writer, t );
       } catch (ParserConfigurationException e) {
          LOG.failedToWriteHaDescriptor(e);
          throw new IOException(e);

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/xml/XmlFilterReader.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/xml/XmlFilterReader.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/xml/XmlFilterReader.java
index 070ccce..2dd6519 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/xml/XmlFilterReader.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/xml/XmlFilterReader.java
@@ -49,11 +49,8 @@ import javax.xml.stream.events.Namespace;
 import javax.xml.stream.events.StartDocument;
 import javax.xml.stream.events.StartElement;
 import javax.xml.stream.events.XMLEvent;
-import javax.xml.transform.OutputKeys;
 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 javax.xml.xpath.XPath;
@@ -636,17 +633,11 @@ public abstract class XmlFilterReader extends Reader {
 
   private static final void writeBufferedElement( Node node, Writer writer ) throws IOException {
     try {
-      getTransformer().transform( new DOMSource( node ), new StreamResult( writer ) );
+      Transformer t = XmlUtils.getTransformer( false, false, 0, true );
+      t.transform( new DOMSource( node ), new StreamResult( writer ) );
     } catch( TransformerException e ) {
       throw new IOException( e );
     }
   }
 
-  private static final Transformer getTransformer() throws TransformerConfigurationException {
-    TransformerFactory tf = TransformerFactory.newInstance();
-    Transformer t = tf.newTransformer();
-    t.setOutputProperty( OutputKeys.OMIT_XML_DECLARATION, "yes" );
-    return t;
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/impl/html/HtmlFilterReaderBaseTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/impl/html/HtmlFilterReaderBaseTest.java b/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/impl/html/HtmlFilterReaderBaseTest.java
index 257a4ca..55c7ca8 100644
--- a/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/impl/html/HtmlFilterReaderBaseTest.java
+++ b/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/impl/html/HtmlFilterReaderBaseTest.java
@@ -37,23 +37,14 @@ import org.apache.hadoop.gateway.filter.rewrite.spi.UrlRewriteActionDescriptorBa
 import org.hamcrest.Matchers;
 import org.junit.Before;
 import org.junit.Test;
-import org.w3c.dom.Node;
 import org.xml.sax.SAXException;
 import org.xmlmatchers.namespace.SimpleNamespaceContext;
 
 import javax.xml.namespace.QName;
 import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
 import java.io.IOException;
-import java.io.OutputStream;
 import java.io.Reader;
 import java.io.StringReader;
-import java.io.Writer;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -771,26 +762,4 @@ public class HtmlFilterReaderBaseTest {
     }
   }
 
-  public void dump( Node node, Writer writer ) throws TransformerException {
-    Transformer t = TransformerFactory.newInstance().newTransformer();
-    t.setOutputProperty( OutputKeys.METHOD, "xml" );
-    t.setOutputProperty( OutputKeys.ENCODING, "UTF-8" );
-    t.setOutputProperty( OutputKeys.INDENT, "yes" );
-    t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
-    t.transform( new DOMSource( node ), new StreamResult( writer ) );
-  }
-
-  public void dump( Node node, OutputStream stream ) throws TransformerException {
-    Transformer t = TransformerFactory.newInstance().newTransformer();
-    t.setOutputProperty( OutputKeys.METHOD, "xml" );
-    t.setOutputProperty( OutputKeys.ENCODING, "UTF-8" );
-    t.setOutputProperty( OutputKeys.INDENT, "yes" );
-    t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
-    t.transform( new DOMSource( node ), new StreamResult( stream ) );
-  }
-
-//  public void dump( Node node ) throws TransformerException {
-//    dump( node, System.out );
-//  }
-
 }

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/impl/xml/XmlFilterReaderTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/impl/xml/XmlFilterReaderTest.java b/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/impl/xml/XmlFilterReaderTest.java
index a345dcf..08b4d33 100644
--- a/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/impl/xml/XmlFilterReaderTest.java
+++ b/gateway-provider-rewrite/src/test/java/org/apache/hadoop/gateway/filter/rewrite/impl/xml/XmlFilterReaderTest.java
@@ -41,25 +41,16 @@ import org.apache.hadoop.test.TestUtils;
 import org.hamcrest.Matchers;
 import org.junit.Before;
 import org.junit.Test;
-import org.w3c.dom.Node;
 import org.xml.sax.SAXException;
 import org.xmlmatchers.namespace.SimpleNamespaceContext;
 
 import javax.xml.namespace.QName;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.stream.XMLStreamException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
 import java.io.Reader;
 import java.io.StringReader;
-import java.io.Writer;
 import java.nio.charset.Charset;
 import java.util.HashMap;
 import java.util.List;
@@ -1009,26 +1000,4 @@ public class XmlFilterReaderTest {
 
   }
 
-  public void dump( Node node, Writer writer ) throws TransformerException {
-    Transformer t = TransformerFactory.newInstance().newTransformer();
-    t.setOutputProperty( OutputKeys.METHOD, "xml" );
-    t.setOutputProperty( OutputKeys.ENCODING, "UTF-8" );
-    t.setOutputProperty( OutputKeys.INDENT, "yes" );
-    t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
-    t.transform( new DOMSource( node ), new StreamResult( writer ) );
-  }
-
-  public void dump( Node node, OutputStream stream ) throws TransformerException {
-    Transformer t = TransformerFactory.newInstance().newTransformer();
-    t.setOutputProperty( OutputKeys.METHOD, "xml" );
-    t.setOutputProperty( OutputKeys.ENCODING, "UTF-8" );
-    t.setOutputProperty( OutputKeys.INDENT, "yes" );
-    t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
-    t.transform( new DOMSource( node ), new StreamResult( stream ) );
-  }
-
-//  public void dump( Node node ) throws TransformerException {
-//    dump( node, System.out );
-//  }
-
 }

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayServer.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayServer.java b/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayServer.java
index 559f9cc..442004c 100644
--- a/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayServer.java
+++ b/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayServer.java
@@ -18,6 +18,7 @@
 package org.apache.hadoop.gateway;
 
 import java.io.File;
+import java.io.FileWriter;
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.InputStream;
@@ -519,7 +520,8 @@ public class GatewayServer {
           originalRoot.appendChild( importedNode );
         }
       }
-      XmlUtils.writeXml( webXmlDoc, webXmlFile );
+      
+      XmlUtils.writeXml( webXmlDoc, new FileWriter(webXmlFile) );
     }
   }
 

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-server/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryTest.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryTest.java b/gateway-server/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryTest.java
index 76f7858..da804f3 100644
--- a/gateway-server/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryTest.java
+++ b/gateway-server/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryTest.java
@@ -50,7 +50,6 @@ public class DeploymentFactoryTest {
     EnterpriseArchive archive = DeploymentFactory.createDeployment( config, topology );
 
     Document xml = XmlUtils.readXml( archive.get( "/META-INF/topology.xml" ).getAsset().openStream() );
-    //TestUtils.dumpXml( xml );
     assertThat( xml, hasXPath( "/topology/gateway" ) );
     assertThat( xml, hasXPath( "/topology/name", equalTo( "test-topology" ) ) );
   }

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/CreateTable.java
----------------------------------------------------------------------
diff --git a/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/CreateTable.java b/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/CreateTable.java
index d1fcc88..f20652d 100644
--- a/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/CreateTable.java
+++ b/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/CreateTable.java
@@ -30,16 +30,13 @@ import org.apache.http.entity.StringEntity;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
 import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.Callable;
 
+import javax.xml.transform.Transformer;
+
 public class CreateTable {
 
   public static class Request extends AbstractRequest<Response> implements FamilyContainer<Request> {
@@ -96,14 +93,9 @@ public class CreateTable {
             root.appendChild( columnSchema );
           }
 
-          TransformerFactory transformerFactory = TransformerFactory.newInstance();
-          Transformer transformer = transformerFactory.newTransformer();
-          transformer.setOutputProperty( OutputKeys.STANDALONE, "yes" );
-
           StringWriter writer = new StringWriter();
-          StreamResult result = new StreamResult( writer );
-          DOMSource source = new DOMSource( document );
-          transformer.transform( source, result );
+          Transformer t = XmlUtils.getTransformer( true, false, 0, false );
+          XmlUtils.writeXml( document, writer, t );
 
           URIBuilder uri = uri( HBase.SERVICE_PATH, "/", tableName, "/schema" );
           HttpPut request = new HttpPut( uri.build() );

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/UpdateTable.java
----------------------------------------------------------------------
diff --git a/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/UpdateTable.java b/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/UpdateTable.java
index 80c7b47..c382bd2 100644
--- a/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/UpdateTable.java
+++ b/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/UpdateTable.java
@@ -30,16 +30,13 @@ import org.apache.http.entity.StringEntity;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
 import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.Callable;
 
+import javax.xml.transform.Transformer;
+
 public class UpdateTable {
 
   public static class Request extends AbstractRequest<Response> implements FamilyContainer<Request> {
@@ -86,14 +83,9 @@ public class UpdateTable {
             root.appendChild( columnSchema );
           }
 
-          TransformerFactory transformerFactory = TransformerFactory.newInstance();
-          Transformer transformer = transformerFactory.newTransformer();
-          transformer.setOutputProperty( OutputKeys.STANDALONE, "yes" );
-
           StringWriter writer = new StringWriter();
-          StreamResult result = new StreamResult( writer );
-          DOMSource source = new DOMSource( document );
-          transformer.transform( source, result );
+          Transformer t = XmlUtils.getTransformer( true, false, 0, false );
+          XmlUtils.writeXml( document, writer, t );
 
           URIBuilder uri = uri( HBase.SERVICE_PATH, "/", tableName, "/schema" );
           HttpPost request = new HttpPost( uri.build() );

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/row/StoreRow.java
----------------------------------------------------------------------
diff --git a/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/row/StoreRow.java b/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/row/StoreRow.java
index c78b3c5..afd851a 100644
--- a/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/row/StoreRow.java
+++ b/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/row/StoreRow.java
@@ -31,16 +31,13 @@ import org.apache.http.entity.StringEntity;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
 import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.Callable;
 
+import javax.xml.transform.Transformer;
+
 public class StoreRow {
 
   public static class Request extends AbstractRequest<Response> {
@@ -95,14 +92,9 @@ public class StoreRow {
             row.appendChild( cell );
           }
 
-          TransformerFactory transformerFactory = TransformerFactory.newInstance();
-          Transformer transformer = transformerFactory.newTransformer();
-          transformer.setOutputProperty( OutputKeys.STANDALONE, "yes" );
-
           StringWriter writer = new StringWriter();
-          StreamResult result = new StreamResult( writer );
-          DOMSource source = new DOMSource( document );
-          transformer.transform( source, result );
+          Transformer t = XmlUtils.getTransformer( true, false, 0, false );
+          XmlUtils.writeXml( document, writer, t );
 
           URIBuilder uri = uri( HBase.SERVICE_PATH, "/", tableName, "/false-row-key" );
           HttpPost request = new HttpPost( uri.build() );

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/scanner/CreateScanner.java
----------------------------------------------------------------------
diff --git a/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/scanner/CreateScanner.java b/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/scanner/CreateScanner.java
index df95514..720906d 100644
--- a/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/scanner/CreateScanner.java
+++ b/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/table/scanner/CreateScanner.java
@@ -33,16 +33,13 @@ import org.apache.http.entity.StringEntity;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
 import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.Callable;
 
+import javax.xml.transform.Transformer;
+
 public class CreateScanner {
 
   public static class Request extends AbstractRequest<Response> {
@@ -168,14 +165,9 @@ public class CreateScanner {
             root.appendChild( filterElement );
           }
 
-          TransformerFactory transformerFactory = TransformerFactory.newInstance();
-          Transformer transformer = transformerFactory.newTransformer();
-          transformer.setOutputProperty( OutputKeys.STANDALONE, "yes" );
-
           StringWriter writer = new StringWriter();
-          StreamResult result = new StreamResult( writer );
-          DOMSource source = new DOMSource( document );
-          transformer.transform( source, result );
+          Transformer t = XmlUtils.getTransformer( true, false, 0, false );
+          XmlUtils.writeXml( document, writer, t );
 
           URIBuilder uri = uri( HBase.SERVICE_PATH, "/", tableName, "/scanner" );
           HttpPut request = new HttpPut( uri.build() );

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-test-utils/src/main/java/org/apache/hadoop/test/TestUtils.java
----------------------------------------------------------------------
diff --git a/gateway-test-utils/src/main/java/org/apache/hadoop/test/TestUtils.java b/gateway-test-utils/src/main/java/org/apache/hadoop/test/TestUtils.java
index 143973e..076c312 100644
--- a/gateway-test-utils/src/main/java/org/apache/hadoop/test/TestUtils.java
+++ b/gateway-test-utils/src/main/java/org/apache/hadoop/test/TestUtils.java
@@ -33,12 +33,6 @@ import java.nio.ByteBuffer;
 import java.util.Properties;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-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.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
@@ -50,7 +44,6 @@ import org.apache.velocity.runtime.RuntimeConstants;
 import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
 import org.eclipse.jetty.http.HttpTester;
 import org.eclipse.jetty.servlet.ServletTester;
-import org.w3c.dom.Document;
 
 public class TestUtils {
 
@@ -113,16 +106,6 @@ public class TestUtils {
     return tempDir;
   }
 
-  public static void dumpXml( Document document ) throws TransformerException {
-    Transformer transformer = TransformerFactory.newInstance().newTransformer();
-    transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
-    StreamResult result = new StreamResult( new StringWriter() );
-    DOMSource source = new DOMSource( document );
-    transformer.transform( source, result );
-    String xmlString = result.getWriter().toString();
-    System.out.println( xmlString );
-  }
-
   public static void LOG_ENTER() {
     StackTraceElement caller = Thread.currentThread().getStackTrace()[2];
     System.out.flush();

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-test/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryFuncTest.java
----------------------------------------------------------------------
diff --git a/gateway-test/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryFuncTest.java b/gateway-test/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryFuncTest.java
index 0763ea5..798c84f 100644
--- a/gateway-test/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryFuncTest.java
+++ b/gateway-test/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryFuncTest.java
@@ -19,7 +19,6 @@ package org.apache.hadoop.gateway.deploy;
 
 import java.io.File;
 import java.io.IOException;
-import java.io.StringWriter;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Arrays;
@@ -29,12 +28,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
 import javax.xml.xpath.XPathConstants;
 import javax.xml.xpath.XPathExpressionException;
 import javax.xml.xpath.XPathFactory;
@@ -262,7 +256,6 @@ public class DeploymentFactoryFuncTest {
 //    File file = war.as( ExplodedExporter.class ).exportExploded( dir, "test-cluster.war" );
 
     Document web = XmlUtils.readXml( war.get( "%2F/WEB-INF/web.xml" ).getAsset().openStream() );
-    //TestUtils.dumpXml( web );
     assertThat( web, hasXPath( "/web-app" ) );
     assertThat( web, hasXPath( "/web-app/servlet" ) );
     assertThat( web, hasXPath( "/web-app/servlet/servlet-name" ) );
@@ -659,16 +652,6 @@ public class DeploymentFactoryFuncTest {
 
   }
 
-  private void dump( Document document ) throws TransformerException {
-    Transformer transformer = TransformerFactory.newInstance().newTransformer();
-    transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
-    StreamResult result = new StreamResult( new StringWriter() );
-    DOMSource source = new DOMSource( document );
-    transformer.transform( source, result );
-    String xmlString = result.getWriter().toString();
-    System.out.println( xmlString );
-  }
-
   private Node node( Node scope, String expression ) throws XPathExpressionException {
     return (Node)XPathFactory.newInstance().newXPath().compile( expression ).evaluate( scope, XPathConstants.NODE );
   }

http://git-wip-us.apache.org/repos/asf/knox/blob/d82f834c/gateway-util-common/src/main/java/org/apache/hadoop/gateway/util/XmlUtils.java
----------------------------------------------------------------------
diff --git a/gateway-util-common/src/main/java/org/apache/hadoop/gateway/util/XmlUtils.java b/gateway-util-common/src/main/java/org/apache/hadoop/gateway/util/XmlUtils.java
index 44bd3b1..a5d6009 100644
--- a/gateway-util-common/src/main/java/org/apache/hadoop/gateway/util/XmlUtils.java
+++ b/gateway-util-common/src/main/java/org/apache/hadoop/gateway/util/XmlUtils.java
@@ -18,7 +18,6 @@ package org.apache.hadoop.gateway.util;
 
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Writer;
@@ -59,23 +58,39 @@ public class XmlUtils {
   }
 
   public static void writeXml( Document document, Writer writer ) throws TransformerException {
-    TransformerFactory f = TransformerFactory.newInstance();
-//    if( f.getClass().getPackage().getName().equals( "com.sun.org.apache.xalan.internal.xsltc.trax" ) ) {
-      f.setAttribute( "indent-number", 4 );
-//    }
-    Transformer t = f.newTransformer();
-    t.setOutputProperty( OutputKeys.INDENT, "yes" );
-    t.setOutputProperty( "{xml.apache.org/xslt}indent-amount", "4" );
+    Transformer t = XmlUtils.getTransformer( false, true, 4, false );
+    writeXml( document, writer, t );
+  }
+  
+  public static void writeXml( Document document, Writer writer, Transformer transformer ) throws TransformerException {
     DOMSource s = new DOMSource( document );
     StreamResult r = new StreamResult( writer );
-    t.transform( s, r );
+    transformer.transform( s, r );
   }
-
-  public static void writeXml( Document document, File file ) throws TransformerException, IOException {
-    writeXml( document, new FileWriter( file ) );
+  
+  public static Transformer getTransformer( boolean standalone, boolean indent, int indentNumber,
+                                            boolean omitXmlDeclaration) throws TransformerException {
+    TransformerFactory f = TransformerFactory.newInstance();
+    f.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, Boolean.TRUE);
+    if ( indent ) {
+      f.setAttribute( "indent-number", indentNumber );
+    }
+    
+    Transformer t = f.newTransformer();
+    if ( standalone ) {
+      t.setOutputProperty( OutputKeys.STANDALONE, "yes" );
+    }
+    if ( indent ) {
+      t.setOutputProperty( OutputKeys.INDENT, "yes" );
+      t.setOutputProperty( "{xml.apache.org/xslt}indent-amount", "" + indentNumber );
+    }
+    if ( omitXmlDeclaration ) {
+      t.setOutputProperty( OutputKeys.OMIT_XML_DECLARATION, "yes" );
+    }
+    
+    return t;
   }
 
-
   public static Document createDocument() throws ParserConfigurationException {
     return createDocument(true);
   }