]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/waiter/jms/JMSWaiter.java
hanged connectstring to be one global var.
[pub/jan/sbc.git] / src / main / java / at / ac / tuwien / sbc / valesriegler / waiter / jms / JMSWaiter.java
1 package at.ac.tuwien.sbc.valesriegler.waiter.jms;
2
3 import java.io.Serializable;
4
5 import javax.jms.Connection;
6 import javax.jms.MessageConsumer;
7 import javax.jms.Session;
8
9 import org.apache.activemq.ActiveMQConnectionFactory;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
12
13 import at.ac.tuwien.sbc.valesriegler.common.Util;
14 import at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners.CookedOrders;
15 import at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners.WantToOrder;
16 import at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners.WantToPay;
17 import at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners.WantToSitAtTable;
18
19 /**
20  * A waiter is a person who does all the stuff and gets lousy tips in return.
21  * TODO: might want to split this class into multiple, to allow for abstraction.
22  * 
23  * @author jan
24  * 
25  */
26 public class JMSWaiter implements Serializable {
27         private static final Logger log = LoggerFactory.getLogger(JMSWaiter.class);
28         final private int id;
29
30         public JMSWaiter(int id) {
31                 this.id = id;
32                 log.info("I AM A WAITER WITH ID {}", id);
33
34                 try {
35                         // Connecting to the Broker and to the output queue
36                         ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(Util.JMS_CONNECTSTRING);
37                         Connection connection = connectionFactory.createConnection();
38                         connection.start();
39
40                         Session sessWantToSit = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
41                         MessageConsumer consWantToSit = sessWantToSit.createConsumer(sessWantToSit.createQueue("WantToSitAtTable"));
42                         consWantToSit.setMessageListener(new WantToSitAtTable(this));
43
44                         Session sessWantToOrder = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
45                         MessageConsumer consWantToOrder = sessWantToOrder.createConsumer(sessWantToOrder.createQueue("WantToOrder"));
46                         consWantToOrder.setMessageListener(new WantToOrder(this));
47
48                         Session sessCookedOrders = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
49                         MessageConsumer consCookedOrders = sessCookedOrders.createConsumer(sessCookedOrders.createQueue("CookedOrders"));
50                         consCookedOrders.setMessageListener(new CookedOrders(this));
51
52                         Session sessWantToPay = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
53                         MessageConsumer consWantToPay = sessWantToPay.createConsumer(sessWantToPay.createQueue("WantToPay"));
54                         consWantToPay.setMessageListener(new WantToPay(this));
55
56                 } catch (Exception e) {
57                         log.error("Caught: ", e);
58                 }
59         }
60
61         @Override
62         public String toString() {
63                 return "Waiter [id=" + id + "]";
64         }
65
66         public int getId() {
67                 return id;
68         }
69 }