1 package at.ac.tuwien.sbc.valesriegler.waiter;
3 import java.io.Serializable;
5 import javax.jms.Connection;
6 import javax.jms.MessageConsumer;
7 import javax.jms.Session;
9 import org.apache.activemq.ActiveMQConnectionFactory;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
13 import at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners.WantToOrder;
14 import at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners.WantToPay;
15 import at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners.WantToSitAtTable;
17 //TODO: needs a WaiterAgent and abstraction to support mzs + jms!
18 // Currently this is jms only!
19 public class Waiter implements Serializable {
20 private static final Logger log = LoggerFactory.getLogger(Waiter.class);
21 private static int nextID = 0;
24 public static void main(String[] args) {
28 public Waiter(int id) {
30 log.info("I AM A WAITER WITH ID {}", id);
33 // Connecting to the Broker and to the output queue
34 ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
35 Connection connection = connectionFactory.createConnection();
38 Session sessWantToSit = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
39 MessageConsumer consWantToSit = sessWantToSit.createConsumer(sessWantToSit.createQueue("WantToSitAtTable"));
40 consWantToSit.setMessageListener(new WantToSitAtTable(this));
42 Session sessWantToOrder = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
43 MessageConsumer consWantToOrder = sessWantToOrder.createConsumer(sessWantToOrder.createQueue("WantToOrder"));
44 consWantToOrder.setMessageListener(new WantToOrder(this));
46 Session sessWantToPay = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
47 MessageConsumer consWantToPay = sessWantToPay.createConsumer(sessWantToPay.createQueue("WantToPay"));
48 consWantToPay.setMessageListener(new WantToPay(this));
50 } catch (Exception e) {
51 log.error("Caught: ", e);
56 public String toString() {
57 return "Waiter [id=" + id + "]";