]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/waiter/Waiter.java
JMSCook now cooks Pizza out of PizzaOrder.
[pub/jan/sbc.git] / src / main / java / at / ac / tuwien / sbc / valesriegler / waiter / Waiter.java
1 package at.ac.tuwien.sbc.valesriegler.waiter;
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.waiter.jms.messageListeners.WantToOrder;
14 import at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners.WantToSitAtTable;
15
16 //TODO: needs a WaiterAgent and abstraction to support mzs + jms!
17 // Currently this is jms only!
18 public class Waiter implements Serializable {
19         private static final Logger log = LoggerFactory.getLogger(Waiter.class);
20         private static int nextID = 0;
21         final private int id;
22
23         public static void main(String[] args) {
24                 new Waiter(++nextID);
25         }
26
27         public Waiter(int id) {
28                 this.id = id;
29                 log.info("I AM A WAITER WITH ID {}", id);
30
31                 try {
32                         // Connecting to the Broker and to the output queue
33                         ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
34                         Connection connection = connectionFactory.createConnection();
35                         connection.start();
36
37                         Session sessWantToSit = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
38                         MessageConsumer consWantToSit = sessWantToSit.createConsumer(sessWantToSit.createQueue("WantToSitAtTable"));
39                         consWantToSit.setMessageListener(new WantToSitAtTable(this));
40
41                         Session sessWantToOrder = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
42                         MessageConsumer consWantToOrder = sessWantToOrder.createConsumer(sessWantToOrder.createQueue("WantToOrder"));
43                         consWantToOrder.setMessageListener(new WantToOrder(this));
44                 } catch (Exception e) {
45                         log.error("Caught: ", e);
46                 }
47         }
48
49         @Override
50         public String toString() {
51                 return "Waiter [id=" + id + "]";
52         }
53
54         public int getId() {
55                 return id;
56         }
57 }