1
2
3
4
5
6
7
8
9
10
11
12
13
14 package uk.nhs.interoperability.client.samples;
15
16 import java.io.IOException;
17 import java.io.InputStream;
18 import java.util.Scanner;
19 import java.util.UUID;
20
21 import uk.nhs.interoperability.infrastructure.ITKAddressImpl;
22 import uk.nhs.interoperability.infrastructure.ITKIdentity;
23 import uk.nhs.interoperability.infrastructure.ITKIdentityImpl;
24 import uk.nhs.interoperability.infrastructure.ITKMessageProperties;
25 import uk.nhs.interoperability.infrastructure.ITKMessagePropertiesImpl;
26 import uk.nhs.interoperability.infrastructure.ITKMessagingException;
27 import uk.nhs.interoperability.payload.ITKMessage;
28 import uk.nhs.interoperability.payload.SimpleMessage;
29 import uk.nhs.interoperability.source.ITKMessageSender;
30 import uk.nhs.interoperability.source.ITKMessageSenderImpl;
31 import uk.nhs.interoperability.util.Logger;
32
33
34
35
36
37
38
39
40 public class InfAckSender {
41
42
43 private static final String CALLBACK = "urn:nhs-uk:addressing:ods:Y88764:CALLBACK";
44
45
46 private static final String ORGID = "urn:nhs-uk:identity:ods:TESTORGS:ORGA";
47
48
49 private static final ITKIdentity AUDITID = new ITKIdentityImpl(ORGID);
50
51
52 private static final String FROMADDRESS = "urn:nhs-uk:addressing:ods:R59:oncology";
53
54
55 private static final String INF_ACK_SERVICE = "urn:nhs-itk:services:201005:SendInfrastructureAck-v1-0";
56
57
58 private static final String INF_ACK_PROFILEID = "urn:nhs-itk:profile:201005:SendInfrastructureAck-v1-0";
59
60
61
62
63
64
65 public static void main(String[] args) {
66
67 InfAckSender appA = new InfAckSender();
68 appA.sendAsyncMessage();
69
70 }
71
72
73
74
75 private void sendAsyncMessage(){
76 Logger.trace("*** InfAckSender: Starting sendSyncMessage");
77
78
79 ITKMessage msg = new SimpleMessage();
80
81
82 try {
83 msg.setBusinessPayload(readFile("InfrastructureAck.xml"));
84 } catch (IOException e1) {
85 Logger.error("Error Loading TEST INFACK Message",e1);
86 return;
87 }
88
89 UUID messageUUID = UUID.randomUUID();
90 String messageId = messageUUID.toString();
91
92
93 ITKMessageProperties mp = new ITKMessagePropertiesImpl();
94 mp.setAuditIdentity(AUDITID);
95 mp.setFromAddress(new ITKAddressImpl(FROMADDRESS));
96 mp.setToAddress(new ITKAddressImpl(CALLBACK));
97 mp.setServiceId(INF_ACK_SERVICE);
98 mp.setBusinessPayloadId(messageId);
99 mp.setProfileId(INF_ACK_PROFILEID);
100
101
102 msg.setMessageProperties(mp);
103
104
105 ITKMessageSender sender = new ITKMessageSenderImpl();
106
107 try {
108
109 sender.sendAsync(msg);
110
111 Logger.trace("InfAckSender sent message:");
112
113 } catch (ITKMessagingException e) {
114 Logger.error("Error Sending ITK Message",e);
115 }
116
117 Logger.trace("*** InfAckSender: Ending sendAsyncMessage");
118 }
119
120
121
122
123
124
125
126
127 private String readFile(String fname) throws IOException {
128
129 InputStream tis = this.getClass().getResourceAsStream("/messages/"+fname);
130 StringBuilder fileContents = new StringBuilder();
131 Scanner scanner = new Scanner(tis);
132 String lineSeparator = System.getProperty("line.separator");
133
134 try {
135 while(scanner.hasNextLine()) {
136 fileContents.append(scanner.nextLine() + lineSeparator);
137 }
138 return fileContents.toString();
139 } finally {
140 scanner.close();
141 }
142 }
143
144 }