1
2
3
4
5
6
7
8
9
10
11 package org.mule.samples.voipservice.client;
12
13 import org.mule.MuleManager;
14 import org.mule.config.builders.MuleXmlConfigurationBuilder;
15 import org.mule.extras.client.MuleClient;
16 import org.mule.impl.MuleMessage;
17 import org.mule.samples.voipservice.LocaleMessage;
18 import org.mule.samples.voipservice.to.CreditCardTO;
19 import org.mule.samples.voipservice.to.CreditProfileTO;
20 import org.mule.samples.voipservice.to.CustomerTO;
21 import org.mule.samples.voipservice.to.ServiceParamTO;
22 import org.mule.umo.UMOException;
23 import org.mule.umo.UMOMessage;
24 import org.mule.util.StringMessageUtils;
25
26 import java.io.IOException;
27
28 import org.apache.commons.logging.Log;
29 import org.apache.commons.logging.LogFactory;
30
31
32
33
34 public class VoipConsumer
35 {
36
37 protected static transient Log logger = LogFactory.getLog(VoipConsumer.class);
38
39 private MuleClient muleClient = null;
40
41 public VoipConsumer() throws UMOException
42 {
43 init();
44 }
45
46 public VoipConsumer(String config) throws UMOException
47 {
48
49 MuleXmlConfigurationBuilder builder = new MuleXmlConfigurationBuilder();
50 builder.configure(config);
51 init();
52 }
53
54 private void init() throws UMOException
55 {
56 muleClient = new MuleClient();
57 }
58
59 public void close()
60 {
61 MuleManager.getInstance().dispose();
62 }
63
64 public void requestSend(String endpoint) throws Exception
65 {
66 UMOMessage result;
67 CustomerTO customerTO = CustomerTO.getRandomCustomer();
68 CreditCardTO creditCardTO = CreditCardTO.getRandomCreditCard();
69 result = muleClient.send(endpoint, new ServiceParamTO(customerTO, creditCardTO), null);
70 CreditProfileTO creditProfileTO = (CreditProfileTO)((MuleMessage)result).getPayload();
71 boolean valid = creditProfileTO.isValid();
72 logger.info("SyncVoipConsumer.requestSend. valid = " + valid);
73 }
74
75 public static void main(String[] args)
76 {
77 VoipConsumer voipConsumer = null;
78 int response = 0;
79
80 try
81 {
82 voipConsumer = new VoipConsumer("voip-broker-sync-config.xml");
83
84 String msg = LocaleMessage.getWelcomeMessage();
85
86 System.out.println(StringMessageUtils.getBoilerPlate(msg, '*', 70));
87
88 while (response != 'q')
89 {
90 System.out.println("\n" + LocaleMessage.getMenuOption1());
91 System.out.println(LocaleMessage.getMenuOptionQuit());
92 System.out.println("\n" + LocaleMessage.getMenuPromptMessage());
93
94 response = getSelection();
95 if (response == '1')
96 {
97 logger.info("Sending Request...");
98 voipConsumer.requestSend("vm://VoipBrokerRequests");
99 logger.info("Request Completed.");
100 }
101 else if (response == 'q')
102 {
103 System.out.println(LocaleMessage.getGoodbyeMessage());
104 System.exit(0);
105 }
106 else
107 {
108 System.out.println(LocaleMessage.getMenuErrorMessage());
109 }
110 }
111
112 }
113 catch (Exception e)
114 {
115 System.err.println(e.getMessage());
116 e.printStackTrace(System.err);
117 System.exit(1);
118 }
119 }
120
121 private static int getSelection() throws IOException
122 {
123 byte[] buf = new byte[16];
124 System.in.read(buf);
125 return buf[0];
126 }
127
128 }