1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 package com.reuters.msgtest.message;
37
38 import com.reuters.msgtest.Creator;
39 import com.tibco.tibrv.TibrvMsg;
40 import com.tibco.tibrv.TibrvMsgField;
41 import com.tibco.tibrv.TibrvXml;
42 import org.w3c.dom.Document;
43 import java.io.File;
44 import java.io.StringWriter;
45 import java.util.Collections;
46 import javax.xml.parsers.DocumentBuilder;
47 import javax.xml.parsers.DocumentBuilderFactory;
48 import javax.xml.transform.Transformer;
49 import javax.xml.transform.TransformerFactory;
50 import javax.xml.transform.dom.DOMSource;
51 import javax.xml.transform.stream.StreamResult;
52
53
54 /***
55 * @author Peter Ryan
56 *
57 */
58 public class XMLFormatFileMessageCreator implements Creator {
59 public Object create(Object object) {
60 String location = (String) object;
61 TibrvMsg tibrvMsg = new TibrvMsg();
62 StringWriter sw = null;
63
64 try {
65 DocumentBuilder builder = DocumentBuilderFactory.newInstance()
66 .newDocumentBuilder();
67 File file = new File(location);
68 Document document = builder.parse(file);
69 Transformer transformer = TransformerFactory.newInstance()
70 .newTransformer();
71 sw = new StringWriter();
72
73 StreamResult result = new StreamResult(sw);
74 transformer.transform(new DOMSource(document), result);
75
76 TibrvXml xmlField = new TibrvXml(sw.toString().getBytes());
77 TibrvMsgField field = new TibrvMsgField("xml", xmlField);
78 tibrvMsg.addField(field);
79
80
81 return Collections.singletonList(tibrvMsg);
82 } catch (Exception e) {
83 throw new RuntimeException(
84 "Unable to build list TibrvMsg from xmlformatfile: " +
85 location, e);
86 }
87 }
88 }