View Javadoc

1   /*
2    * $Id: VoipConsumer.java 7976 2007-08-21 14:26:13Z 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  /**
32   * @author Binildas Christudas
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 }