Merge branch 'master' of
authorGregor Riegler <gregor.riegler@gmail.com>
Mon, 6 May 2013 00:08:07 +0000 (02:08 +0200)
committerGregor Riegler <gregor.riegler@gmail.com>
Mon, 6 May 2013 00:08:07 +0000 (02:08 +0200)
https://rgregor@bitbucket.org/rgregor/sbc-ss-2013.git

Conflicts:
src/main/java/at/ac/tuwien/sbc/valesriegler/group/Group.java
src/main/java/at/ac/tuwien/sbc/valesriegler/types/GroupData.java

18 files changed:
queues
src/main/java/at/ac/tuwien/sbc/valesriegler/DEBUG_CreateTable.java
src/main/java/at/ac/tuwien/sbc/valesriegler/cook/actions/PizzaInfo.java [new file with mode: 0644]
src/main/java/at/ac/tuwien/sbc/valesriegler/cook/jms/messageListeners/CookRequestedPizza.java
src/main/java/at/ac/tuwien/sbc/valesriegler/group/Group.java
src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/OrderRequest.java
src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/OrderResponse.java
src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/PayRequest.java [new file with mode: 0644]
src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/PayResponse.java [new file with mode: 0644]
src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/TableFree.java [new file with mode: 0644]
src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/TableRequest.java
src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/TableResponse.java
src/main/java/at/ac/tuwien/sbc/valesriegler/group/jms/JMSGroupConnector.java
src/main/java/at/ac/tuwien/sbc/valesriegler/pizzeria/PizzeriaAgent.java
src/main/java/at/ac/tuwien/sbc/valesriegler/types/GroupData.java
src/main/java/at/ac/tuwien/sbc/valesriegler/waiter/Waiter.java
src/main/java/at/ac/tuwien/sbc/valesriegler/waiter/jms/messageListeners/WantToPay.java [new file with mode: 0644]
src/main/java/at/ac/tuwien/sbc/valesriegler/xvsm/XVSMConnector.java

diff --git a/queues b/queues
index 3f463b9dfa6f2842f22fc8da9802471613879e88..511d11260e60265d90aa19212ce9936ae6b407ee 100644 (file)
--- a/queues
+++ b/queues
@@ -23,7 +23,12 @@ Liste aller Messagequeues:
                
        OrderedPizzas
                Pizzen, die von Köchen gekocht werden sollen.
-               
+       
+       WantToPay
+               Sobald eine Gruppe fertig gegessen hat, will sie zahlen.
+       
+       WantToLeave
+               Alle, die gehen wollen, bzw gegangen sind. Nichts liest aus dieser Queue.
                
 ----------------------
 Wartende Gruppen
index 6e0feae048b2b6a193768b8b37fa143cfb8449e0..bfb941b12cb97c1dd2e689455fe68a1e62b76a87 100644 (file)
@@ -39,7 +39,7 @@ public class DEBUG_CreateTable {
                        tableprod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
 
                        // Create Tables
-                       for (int i = 0; i < 3; i++) {
+                       for (int i = 0; i < 2; i++) {
                                tableprod.send(session.createObjectMessage(new Table(i)));
                        }
 
diff --git a/src/main/java/at/ac/tuwien/sbc/valesriegler/cook/actions/PizzaInfo.java b/src/main/java/at/ac/tuwien/sbc/valesriegler/cook/actions/PizzaInfo.java
new file mode 100644 (file)
index 0000000..d8a5284
--- /dev/null
@@ -0,0 +1,37 @@
+package at.ac.tuwien.sbc.valesriegler.cook.actions;
+
+import java.io.Serializable;
+
+import at.ac.tuwien.sbc.valesriegler.group.actions.AbstractAction;
+import at.ac.tuwien.sbc.valesriegler.types.PizzaOrderStatus;
+
+public class PizzaInfo extends AbstractAction implements Serializable {
+       private final int pizzaId;
+       private final PizzaOrderStatus status;
+       private final int cookId;
+
+       public PizzaInfo(int pizzaId, PizzaOrderStatus status, int cookId) {
+               super(null);
+               this.pizzaId = pizzaId;
+               this.status = status;
+               this.cookId = cookId;
+       }
+
+       public int getPizzaId() {
+               return pizzaId;
+       }
+
+       public PizzaOrderStatus getStatus() {
+               return status;
+       }
+
+       public int getCookId() {
+               return cookId;
+       }
+
+       @Override
+       public String toString() {
+               return "PizzaInfo [pizzaId=" + pizzaId + ", status=" + status + ", cookId=" + cookId + "]";
+       }
+
+}
index dfd6bafa03744f9cfacb1e121a7310ff28f0bb14..a6babf109bbb1cd34c28192705c004a379abe77f 100644 (file)
@@ -14,8 +14,10 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import at.ac.tuwien.sbc.valesriegler.cook.JMSCook;
+import at.ac.tuwien.sbc.valesriegler.cook.actions.PizzaInfo;
 import at.ac.tuwien.sbc.valesriegler.types.Pizza;
 import at.ac.tuwien.sbc.valesriegler.types.PizzaOrder;
+import at.ac.tuwien.sbc.valesriegler.types.PizzaOrderStatus;
 
 public class CookRequestedPizza implements MessageListener {
        private static final Logger log = LoggerFactory.getLogger(CookRequestedPizza.class);
@@ -39,18 +41,23 @@ public class CookRequestedPizza implements MessageListener {
 
                                        // generate random delay
                                        Thread.sleep((long) (pizzaorder.getPizzaType().duration * 1000));
+                                       pizzaorder.setStatus(PizzaOrderStatus.DONE);
 
                                        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
                                        Connection connection = connectionFactory.createConnection();
                                        connection.start();
-                                       Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
 
+                                       Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                                        MessageProducer prodCP = session.createProducer(session.createQueue("CookedPizzas"));
                                        prodCP.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-
                                        prodCP.send(session.createObjectMessage(Pizza.createPizzaFromPizzaOrder(pizzaorder, cook)));
 
+                                       MessageProducer wantToSitAtTable = session.createProducer(session.createQueue("PizzeriaConnector"));
+                                       wantToSitAtTable.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+                                       PizzaInfo pi = new PizzaInfo(pizzaorder.getId(), pizzaorder.getStatus(), cook.getId());
+                                       wantToSitAtTable.send(session.createObjectMessage(pi));
                                        session.close();
+
                                        connection.close();
                                } else {
                                        log.warn("Received unknown Object: " + obj);
@@ -64,4 +71,9 @@ public class CookRequestedPizza implements MessageListener {
                        log.error("EXCEPTION!", e);
                }
        }
+
+       @Override
+       public String toString() {
+               return "CookRequestedPizza [cook=" + cook + "]";
+       }
 }
index 64d46c3d3b0a9c7327bea6bfdeb19b1b51d76e2f..15d57abd382a1ee58346a5edc16073d4bab7d8f9 100644 (file)
@@ -5,6 +5,8 @@ import org.slf4j.LoggerFactory;
 
 import at.ac.tuwien.sbc.valesriegler.common.HasId;
 import at.ac.tuwien.sbc.valesriegler.group.actions.OrderRequest;
+import at.ac.tuwien.sbc.valesriegler.group.actions.PayRequest;
+import at.ac.tuwien.sbc.valesriegler.group.actions.TableFree;
 import at.ac.tuwien.sbc.valesriegler.group.actions.TableRequest;
 import at.ac.tuwien.sbc.valesriegler.types.GroupData;
 import at.ac.tuwien.sbc.valesriegler.types.GroupState;
@@ -47,17 +49,12 @@ public class Group implements Runnable, HasId {
                                break; // do nothing.
                        case ORDERED:
                                break; // do nothing.
-                       case EATING:// just wait some more and request bill.
-                               // MessageProducer wantToPay =
-                               // session.createProducer(session.createQueue("WantToPay"));
-                               // wantToPay.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-                               // wantToPay.send(session.createObjectMessage(this));
+                       case EATING: // request bill.
+                               GroupAgent.getInstance().getGroupcomm().send(new PayRequest(groupData));
                                break;
                        case PAY:// leave table
-                               // MessageProducer wantToLeave =
-                               // session.createProducer(session.createQueue("LeftPizzaria"));
-                               // wantToLeave.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-                               // wantToLeave.send(session.createObjectMessage(this));
+                               GroupAgent.getInstance().getGroupcomm().send(new TableFree(groupData));
+                               groupData.setState(GroupState.GONE);
                                break;
                        case GONE:
                                break; // do nothing.
@@ -96,6 +93,7 @@ public class Group implements Runnable, HasId {
        // Waiter telling group he/she forwarded the order.
        public void orderReceived(int waiter) {
                groupData.setState(GroupState.ORDERED);
+               groupData.setState(GroupState.EATING); // TODO: skip pizza creation step
                groupData.setOrderWaiter(waiter);
                new Thread(this).start();
                log.debug("orderReceived(): " + this);
@@ -105,7 +103,7 @@ public class Group implements Runnable, HasId {
        public void deliverPizzas(Order order, int waiter) {
                groupData.setState(GroupState.EATING);
                groupData.setOrder(order);
-               groupData.setPizzaWaiter(waiter);
+               groupData.setServingWaiter(waiter);
                new Thread(this).start();
                log.debug("bringOrderedPizzas(): " + this);
        }
@@ -114,4 +112,12 @@ public class Group implements Runnable, HasId {
        public int getId() {
                return groupData.getId();
        }
+       
+       // pay for the pizzas and leave
+       public void payForPizzas(int waiter) {
+               groupData.setState(GroupState.PAY);
+               groupData.setPayingWaiter(waiter);
+               new Thread(this).start();
+               log.debug("payForPizzas(): " + this);
+       }
 }
index c5f9f217ca67d0a8943d9c6248147422150e3b47..532c6045bf93c962677399899a669044c94af11a 100644 (file)
@@ -9,4 +9,9 @@ public class OrderRequest extends AbstractAction implements Serializable {
                super(groupdata);
        }
 
+       @Override
+       public String toString() {
+               return "OrderRequest []";
+       }
+
 }
index 137c6f5b6da7343290d7e3970b9427aae328040f..0a828af80ad90e22dbf07c701a45c8ed2391de4b 100644 (file)
@@ -16,4 +16,9 @@ public class OrderResponse extends AbstractAction implements Serializable {
                return waiterId;
        }
 
+       @Override
+       public String toString() {
+               return "OrderResponse [waiterId=" + waiterId + "]";
+       }
+
 }
diff --git a/src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/PayRequest.java b/src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/PayRequest.java
new file mode 100644 (file)
index 0000000..978db73
--- /dev/null
@@ -0,0 +1,17 @@
+package at.ac.tuwien.sbc.valesriegler.group.actions;
+
+import java.io.Serializable;
+
+import at.ac.tuwien.sbc.valesriegler.types.GroupData;
+
+public class PayRequest extends AbstractAction implements Serializable {
+       public PayRequest(GroupData groupdata) {
+               super(groupdata);
+       }
+
+       @Override
+       public String toString() {
+               return "PayRequest []";
+       }
+
+}
diff --git a/src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/PayResponse.java b/src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/PayResponse.java
new file mode 100644 (file)
index 0000000..40e4534
--- /dev/null
@@ -0,0 +1,24 @@
+package at.ac.tuwien.sbc.valesriegler.group.actions;
+
+import java.io.Serializable;
+
+import at.ac.tuwien.sbc.valesriegler.types.GroupData;
+
+public class PayResponse extends AbstractAction implements Serializable {
+       private final int waiterId;
+
+       public PayResponse(GroupData groupdata, int waiterId) {
+               super(groupdata);
+               this.waiterId = waiterId;
+       }
+
+       public int getWaiterId() {
+               return waiterId;
+       }
+
+       @Override
+       public String toString() {
+               return "PayResponse [waiterId=" + waiterId + "]";
+       }
+
+}
diff --git a/src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/TableFree.java b/src/main/java/at/ac/tuwien/sbc/valesriegler/group/actions/TableFree.java
new file mode 100644 (file)
index 0000000..3e3944e
--- /dev/null
@@ -0,0 +1,17 @@
+package at.ac.tuwien.sbc.valesriegler.group.actions;
+
+import java.io.Serializable;
+
+import at.ac.tuwien.sbc.valesriegler.types.GroupData;
+
+public class TableFree extends AbstractAction implements Serializable {
+       public TableFree(GroupData groupdata) {
+               super(groupdata);
+       }
+
+       @Override
+       public String toString() {
+               return "TableFree []";
+       }
+
+}
index 10ac6a7d5b991dbe26250f83395bdee5f15ff487..03195c668609b01fafbcb6804deca9f07ca213c7 100644 (file)
@@ -9,4 +9,9 @@ public class TableRequest extends AbstractAction implements Serializable {
                super(groupdata);
        }
 
+       @Override
+       public String toString() {
+               return "TableRequest []";
+       }
+
 }
index e7a73a0a2799485821d49137e5840609cde2303b..c665274f6cdc07a3aa796b6367b721ff9b85c080 100644 (file)
@@ -23,4 +23,9 @@ public class TableResponse extends AbstractAction implements Serializable {
                return waiterId;
        }
 
+       @Override
+       public String toString() {
+               return "TableResponse [table=" + table + ", waiterId=" + waiterId + "]";
+       }
+
 }
index 58784cedd155418d9768e973777b12cfb0740a35..17f359e5b59cbb95c35052fe9b158c6ff4fab236 100644 (file)
@@ -20,6 +20,9 @@ import at.ac.tuwien.sbc.valesriegler.group.GroupAgent;
 import at.ac.tuwien.sbc.valesriegler.group.actions.AbstractAction;
 import at.ac.tuwien.sbc.valesriegler.group.actions.OrderRequest;
 import at.ac.tuwien.sbc.valesriegler.group.actions.OrderResponse;
+import at.ac.tuwien.sbc.valesriegler.group.actions.PayRequest;
+import at.ac.tuwien.sbc.valesriegler.group.actions.PayResponse;
+import at.ac.tuwien.sbc.valesriegler.group.actions.TableFree;
 import at.ac.tuwien.sbc.valesriegler.group.actions.TableRequest;
 import at.ac.tuwien.sbc.valesriegler.group.actions.TableResponse;
 
@@ -67,6 +70,12 @@ public class JMSGroupConnector extends AbstractGroupConnector implements Message
                                        Group g = GroupAgent.getInstance().getGroupModel().getGroupByID(orderresponse.getGroupdata().getId());
                                        g.orderReceived(orderresponse.getWaiterId());
                                        return;
+                               } else if (obj instanceof PayResponse) {
+                                       PayResponse payresponse = (PayResponse) obj;
+                                       log.debug("Received: " + payresponse);
+                                       Group g = GroupAgent.getInstance().getGroupModel().getGroupByID(payresponse.getGroupdata().getId());
+                                       g.payForPizzas(payresponse.getWaiterId());
+                                       return;
                                }
 
                        }
@@ -85,23 +94,50 @@ public class JMSGroupConnector extends AbstractGroupConnector implements Message
                                MessageProducer wantToSitAtTable = session.createProducer(session.createQueue("WantToSitAtTable"));
                                wantToSitAtTable.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                                wantToSitAtTable.send(session.createObjectMessage(request));
-                               session.close();
 
-                               session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-                               MessageProducer informPizzariaGui = session.createProducer(session.createQueue("PizzariaConnector"));
+                               MessageProducer informPizzariaGui = session.createProducer(session.createQueue("PizzeriaConnector"));
                                informPizzariaGui.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                                informPizzariaGui.send(session.createObjectMessage(request));
                                session.close();
                                return;
+
                        } else if (request instanceof OrderRequest) {
                                Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-                               MessageProducer wantToSitAtTable = session.createProducer(session.createQueue("WantToOrder"));
-                               wantToSitAtTable.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-                               wantToSitAtTable.send(session.createObjectMessage(request));
+                               MessageProducer wantToOrder = session.createProducer(session.createQueue("WantToOrder"));
+                               wantToOrder.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+                               wantToOrder.send(session.createObjectMessage(request));
+
+                               MessageProducer informPizzariaGui = session.createProducer(session.createQueue("PizzeriaConnector"));
+                               informPizzariaGui.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+                               informPizzariaGui.send(session.createObjectMessage(request));
                                session.close();
+                               return;
+
+                       } else if (request instanceof PayRequest) {
+                               Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+                               MessageProducer wantToPay = session.createProducer(session.createQueue("WantToPay"));
+                               wantToPay.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+                               wantToPay.send(session.createObjectMessage(request));
+
+                               MessageProducer informPizzariaGui = session.createProducer(session.createQueue("PizzeriaConnector"));
+                               informPizzariaGui.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+                               informPizzariaGui.send(session.createObjectMessage(request));
+                               session.close();
+                               return;
+
+                       } else if (request instanceof TableFree) {
+                               Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+                               MessageProducer wantToSitAtTable = session.createProducer(session.createQueue("TablesFree"));
+                               wantToSitAtTable.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+                               wantToSitAtTable.send(session.createObjectMessage(request.getGroupdata().getTable()));
+
+                               request.getGroupdata().setTable(null);
+
+                               MessageProducer wantToLeave = session.createProducer(session.createQueue("WantToLeave"));
+                               wantToLeave.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+                               wantToLeave.send(session.createObjectMessage(request));
 
-                               session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-                               MessageProducer informPizzariaGui = session.createProducer(session.createQueue("PizzariaConnector"));
+                               MessageProducer informPizzariaGui = session.createProducer(session.createQueue("PizzeriaConnector"));
                                informPizzariaGui.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                                informPizzariaGui.send(session.createObjectMessage(request));
                                session.close();
index 27de2dec06c4c66aedcc9fdf33bf47d78a082073..cb7a5c1ed42e5d7b26406ab86ca9d5d18b614085 100644 (file)
@@ -51,7 +51,8 @@ public class PizzeriaAgent {
                // if (args.length != 1) {
                // throw new IllegalArgumentException(USAGE);
                // } else {
-               String mom = "XVSM";// args[0];
+//             String mom = "XVSM";// args[0];
+               String mom = Util.useJMS ? "JMS" : "XVSM"; 
                log.info(mom);
                pizzeriaAgent = new PizzeriaAgent();
                switch (mom) {
index e90fec744ccdcc23b5efa60a0a992de609b7d931..e940c9eff0de616c2f0874729beb06bb342bf3ac 100644 (file)
@@ -25,6 +25,7 @@ public class GroupData implements Serializable {
 
        private Table table;
        private Integer tableWaiter;
+
        private Order order;
        private Integer orderWaiter;
        private Integer servingWaiter;
@@ -49,6 +50,10 @@ public class GroupData implements Serializable {
                return orderWaiter;
        }
 
+       public int getPayingWaiter() {
+               return payingWaiter;
+       }
+
        @Deprecated
        public List<PizzaType> getPizzas() {
                return pizzas;
@@ -88,6 +93,10 @@ public class GroupData implements Serializable {
                this.orderWaiter = orderWaiter;
        }
 
+       public void setPayingWaiter(int payingWaiter) {
+               this.payingWaiter = payingWaiter;
+       }
+
        @Deprecated
        public void setPizzas(List<PizzaType> pizzas) {
                this.pizzas = pizzas;
index 90788cbaaaa69f656aa65fe255798e31b7acf544..95b961e72815e31eab0fa971d419133780dab5af 100644 (file)
@@ -11,6 +11,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners.WantToOrder;
+import at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners.WantToPay;
 import at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners.WantToSitAtTable;
 
 //TODO: needs a WaiterAgent and abstraction to support mzs + jms!
@@ -41,6 +42,11 @@ public class Waiter implements Serializable {
                        Session sessWantToOrder = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                        MessageConsumer consWantToOrder = sessWantToOrder.createConsumer(sessWantToOrder.createQueue("WantToOrder"));
                        consWantToOrder.setMessageListener(new WantToOrder(this));
+
+                       Session sessWantToPay = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+                       MessageConsumer consWantToPay = sessWantToPay.createConsumer(sessWantToPay.createQueue("WantToPay"));
+                       consWantToPay.setMessageListener(new WantToPay(this));
+
                } catch (Exception e) {
                        log.error("Caught: ", e);
                }
diff --git a/src/main/java/at/ac/tuwien/sbc/valesriegler/waiter/jms/messageListeners/WantToPay.java b/src/main/java/at/ac/tuwien/sbc/valesriegler/waiter/jms/messageListeners/WantToPay.java
new file mode 100644 (file)
index 0000000..e263b0a
--- /dev/null
@@ -0,0 +1,67 @@
+package at.ac.tuwien.sbc.valesriegler.waiter.jms.messageListeners;
+
+import javax.jms.Connection;
+import javax.jms.DeliveryMode;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.MessageProducer;
+import javax.jms.ObjectMessage;
+import javax.jms.Session;
+
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import at.ac.tuwien.sbc.valesriegler.group.actions.PayRequest;
+import at.ac.tuwien.sbc.valesriegler.group.actions.PayResponse;
+import at.ac.tuwien.sbc.valesriegler.waiter.Waiter;
+
+public class WantToPay implements MessageListener {
+       private static final Logger log = LoggerFactory.getLogger(WantToPay.class);
+       private final Waiter waiter;
+
+       public WantToPay(Waiter waiter) {
+               this.waiter = waiter;
+       }
+
+       @Override
+       public void onMessage(Message msg) {
+               try {
+                       msg.acknowledge();
+                       if (msg instanceof ObjectMessage) {
+                               ObjectMessage objMsg = (ObjectMessage) msg;
+                               Object obj = objMsg.getObject();
+
+                               if (obj instanceof PayRequest) {
+                                       PayRequest payrequest = (PayRequest) obj;
+                                       log.debug("Received: " + payrequest);
+
+                                       // generate random delay
+                                       Thread.sleep((long) (Math.random() * 10000));
+
+                                       ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
+                                       Connection connection = connectionFactory.createConnection();
+                                       connection.start();
+                                       Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+                                       MessageProducer informGroup = session.createProducer(session.createQueue("GroupConnector"));
+                                       informGroup.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+                                       PayResponse pr = new PayResponse(payrequest.getGroupdata(), waiter.getId());
+                                       informGroup.send(session.createObjectMessage(pr));
+
+                                       session.close();
+                                       connection.close();
+                               } else {
+                                       log.warn("Received unknown Object: " + obj);
+                               }
+                       } else {
+                               log.warn("Received unknown Message: " + msg);
+                       }
+               } catch (JMSException e) {
+                       log.error("EXCEPTION!", e);
+               } catch (InterruptedException e) {
+                       log.error("EXCEPTION!", e);
+               }
+       }
+}
index c681dbe170e988807b580ab3c990b51fce87f2aa..39b3ddaec4d2ad8409471c9aa9b22dbd616b291f 100644 (file)
@@ -231,7 +231,7 @@ public class XVSMConnector {
                    @Override
                    public void entryOperationFinished(final Notification notification, final Operation operation, final List<? extends Serializable> entries) {
                        List<GroupData> tables = (List<GroupData>) entries;
-//                     problem at the moment: Item type of groupoverviewmodel is Group and not GroupData
+//                     TODO problem at the moment: Item type of groupoverviewmodel is Group and not GroupData
                    }
                };
                
@@ -249,7 +249,7 @@ public class XVSMConnector {
                    public void entryOperationFinished(final Notification notification, final Operation operation, final List<? extends Serializable> entries) {
                        List<GroupData> groups = (List<GroupData>) entries;
 
-                       // when a groupdata is changed, call setItems on the groupoverviewmodel. problem at the moment: Item type of groupoverviewmodel is Group and not GroupData
+                       // when a groupdata is changed, call setItems on the groupoverviewmodel. TODO problem at the moment: Item type of groupoverviewmodel is Group and not GroupData
                    }
 
                };