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 public class VoipConsumer
32 {
33
34 protected static transient Log logger = LogFactory.getLog(VoipConsumer.class);
35
36 private MuleClient muleClient = null;
37
38 public VoipConsumer() throws UMOException
39 {
40 init();
41 }
42
43 public VoipConsumer(String config) throws UMOException
44 {
45
46 MuleXmlConfigurationBuilder builder = new MuleXmlConfigurationBuilder();
47 builder.configure(config);
48 init();
49 }
50
51 private void init() throws UMOException
52 {
53 muleClient = new MuleClient();
54 }
55
56 public void close()
57 {
58 MuleManager.getInstance().dispose();
59 }
60
61 public void requestSend(String endpoint) throws Exception
62 {
63 UMOMessage result;
64 CustomerTO customerTO = CustomerTO.getRandomCustomer();
65 CreditCardTO creditCardTO = CreditCardTO.getRandomCreditCard();
66 result = muleClient.send(endpoint, new ServiceParamTO(customerTO, creditCardTO), null);
67 CreditProfileTO creditProfileTO = (CreditProfileTO)((MuleMessage)result).getPayload();
68 boolean valid = creditProfileTO.isValid();
69 logger.info("SyncVoipConsumer.requestSend. valid = " + valid);
70 }
71
72 public static void main(String[] args)
73 {
74 VoipConsumer voipConsumer = null;
75 int response = 0;
76
77 try
78 {
79 voipConsumer = new VoipConsumer("voip-broker-sync-config.xml");
80
81 String msg = LocaleMessage.getWelcomeMessage();
82
83 System.out.println(StringMessageUtils.getBoilerPlate(msg, '*', 70));
84
85 while (response != 'q')
86 {
87 System.out.println("\n" + LocaleMessage.getMenuOption1());
88 System.out.println(LocaleMessage.getMenuOptionQuit());
89 System.out.println("\n" + LocaleMessage.getMenuPromptMessage());
90
91 response = getSelection();
92 if (response == '1')
93 {
94 logger.info("Sending Request...");
95 voipConsumer.requestSend("vm://VoipBrokerRequests");
96 logger.info("Request Completed.");
97 }
98 else if (response == 'q')
99 {
100 System.out.println(LocaleMessage.getGoodbyeMessage());
101 System.exit(0);
102 }
103 else
104 {
105 System.out.println(LocaleMessage.getMenuErrorMessage());
106 }
107 }
108
109 }
110 catch (Exception e)
111 {
112 System.err.println(e.getMessage());
113 e.printStackTrace(System.err);
114 System.exit(1);
115 }
116 }
117
118 private static int getSelection() throws IOException
119 {
120 byte[] buf = new byte[16];
121 System.in.read(buf);
122 return buf[0];
123 }
124
125 }