View Javadoc

1   /*
2    * $Id: VoipConsumer.java 7963 2007-08-21 08:53:15Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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 }