1 39 40 package serializer.dom; 41 42 43 import java.io.File ; 44 import java.io.OutputStream ; 45 import java.io.ByteArrayInputStream ; 46 import java.io.ByteArrayOutputStream ; 47 import java.io.FileNotFoundException ; 48 49 import javax.xml.transform.Transformer ; 50 import javax.xml.transform.TransformerFactory ; 51 import javax.xml.transform.sax.SAXResult ; 52 import javax.xml.transform.dom.DOMSource ; 53 import javax.xml.transform.stream.StreamResult ; 54 55 import javax.xml.stream.XMLStreamWriter; 56 import javax.xml.stream.XMLOutputFactory; 57 import javax.xml.stream.XMLStreamException; 58 import com.sun.xml.fastinfoset.stax.StAXInputFactory; 59 import com.sun.xml.fastinfoset.stax.SAX2StAXWriter; 60 import com.sun.xml.fastinfoset.sax.SAXDocumentSerializer; 61 62 import com.sun.japex.*; 63 64 65 public class FISAXDriver extends JapexDriverBase { 66 String _xmlFile; 67 ByteArrayInputStream _inputStream; 68 Transformer _transformer; 69 DOMSource _source = null; 70 SAXResult _result = null; 71 ByteArrayOutputStream _baos; 72 73 public FISAXDriver() { 74 } 75 76 public void initializeDriver() { 77 try { 78 _transformer = TransformerFactory.newInstance().newTransformer(); 79 } catch (Exception e) { 80 e.printStackTrace(); 81 } 82 } 83 84 public void prepare(TestCase testCase) { 85 _xmlFile = testCase.getParam("xmlfile"); 86 if (_xmlFile == null) { 87 throw new RuntimeException ("xmlfile not specified"); 88 } 89 90 Util util = new Util(Util.STAX_SERIALIZER_SJSXP); 91 _source = util.getDOMSource(new File (_xmlFile)); 92 _baos = new ByteArrayOutputStream (); 93 getSAXResult(_baos); 94 } 95 96 private void getSAXResult(OutputStream output) { 97 try { 98 SAXDocumentSerializer serializer = new SAXDocumentSerializer(); 99 serializer.setOutputStream(output); 100 101 _result = new SAXResult (); 102 _result.setHandler(serializer); 103 _result.setLexicalHandler(serializer); 104 105 } 106 catch (Exception e) { 107 e.printStackTrace(); 108 } 109 } 110 111 public void warmup(TestCase testCase) { 112 try { 113 _baos.reset(); 114 _transformer.transform(_source, _result); 115 } 116 catch (Exception e) { 117 e.printStackTrace(); 118 } 119 } 120 121 public void run(TestCase testCase) { 122 try { 123 _baos.reset(); 124 _transformer.transform(_source, _result); 125 } 126 catch (Exception e) { 127 e.printStackTrace(); 128 } 129 } 130 131 public void finish(TestCase testCase) { 132 } 133 134 public void terminateDriver() { 135 } 136 } 137 | Popular Tags |