[JMS] NEW WorkFlow works now.
authorJan Vales <jan@jvales.net>
Mon, 10 Jun 2013 15:15:54 +0000 (17:15 +0200)
committerJan Vales <jan@jvales.net>
Mon, 10 Jun 2013 15:15:54 +0000 (17:15 +0200)
runJMS.sh
src/main/java/at/ac/tuwien/sbc/valesriegler/common/AbstractDeliveryAction.java
src/main/java/at/ac/tuwien/sbc/valesriegler/cook/jms/messageListeners/DeliveryOrdersToCook.java
src/main/java/at/ac/tuwien/sbc/valesriegler/driver/actions/OrderDeliveredInfo.java
src/main/java/at/ac/tuwien/sbc/valesriegler/driver/jms/JMSDriver.java
src/main/java/at/ac/tuwien/sbc/valesriegler/driver/jms/messageListeners/CookedDeliveryOrders.java
src/main/java/at/ac/tuwien/sbc/valesriegler/group/GroupAgent.java

index fad31d56c54878cf1cec6e9e4a5c4f88451a92b7..7bf81ca5165a9e99a2a80aca0febee00363a9a41 100755 (executable)
--- a/runJMS.sh
+++ b/runJMS.sh
@@ -25,7 +25,7 @@ echo "*** continuing launch process ***"
 
 
 # Run Groupgui
-mvn exec:java -Dexec.mainClass="at.ac.tuwien.sbc.valesriegler.group.GroupAgent" -Dexec.args="JMS" &
+mvn exec:java -Dexec.mainClass="at.ac.tuwien.sbc.valesriegler.group.GroupAgent" -Dexec.args="JMS tcp://localhost:61610?jms.prefetchPolicy.all=1" &
 
 #run pizzeria1
 ./runJMSPizzaria.sh "tcp://localhost:61621?jms.prefetchPolicy.all=1"
index 076497514295dd17dc7cf76a96b41ed60644a842..afb027e1451fd9eccb6f8b92e4552e2b8975e50e 100644 (file)
@@ -1,6 +1,7 @@
 package at.ac.tuwien.sbc.valesriegler.common;
 
 import at.ac.tuwien.sbc.valesriegler.types.DeliveryGroupData;
+import at.ac.tuwien.sbc.valesriegler.types.GroupData;
 
 /**
  * Abstract delivery action that can be performed in the DS. In almost all cases the
@@ -16,9 +17,15 @@ public abstract class AbstractDeliveryAction extends AbstractAction {
                super(null);
                this.groupData = groupData;
        }
-
-       public DeliveryGroupData getGroupData() {
-               return groupData;
+       /**
+        * do not use.
+        * 
+        * @return
+        */
+       @Deprecated
+       @Override
+       public GroupData getGroupdata() {
+               throw new IllegalArgumentException("use getDeliveryGroupData() instead!");
        }
 
        public DeliveryGroupData getDeliveryGroupData() {
index 973b77816c43397979e9a1b0a246a43de5d98ff5..e2a63cf3d595138d1b36ef7b7397a8b3a897af64 100644 (file)
@@ -68,9 +68,9 @@ public class DeliveryOrdersToCook implements MessageListener {
                                                        Thread.sleep(po.getPizzaType().duration * 1000);
                                                        po.setStatus(PizzaOrderStatus.DONE);
                                                        Pizza p = Pizza.createPizzaFromPizzaOrder(po, cook.getId(), false);
-                                                       dor.getGroupdata().getOrder().getCookedPizzas().add(p);
+                                                       dor.getDeliveryGroupData().getOrder().getCookedPizzas().add(p);
                                                }
-                                               dor.getGroupdata().getOrder().setStatus(OrderStatus.DELIVERY_PENDING);
+                                               dor.getDeliveryGroupData().getOrder().setStatus(OrderStatus.DELIVERY_PENDING);
 
                                                // let pizzas be delivered.
                                                session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
index 539ec5e0d0855af7858455b77327c6578a03d844..2b03449d8a1d15aab7ad5d070cbad46b6e529a7c 100644 (file)
@@ -2,8 +2,8 @@ package at.ac.tuwien.sbc.valesriegler.driver.actions;
 
 import java.io.Serializable;
 
-import at.ac.tuwien.sbc.valesriegler.common.AbstractAction;
-import at.ac.tuwien.sbc.valesriegler.types.GroupData;
+import at.ac.tuwien.sbc.valesriegler.common.AbstractDeliveryAction;
+import at.ac.tuwien.sbc.valesriegler.types.DeliveryGroupData;
 
 /**
  * response to the group's interest in pizza.
@@ -11,14 +11,20 @@ import at.ac.tuwien.sbc.valesriegler.types.GroupData;
  * @author jan
  * 
  */
-public class OrderDeliveredInfo extends AbstractAction implements Serializable {
-       private final int cookId;
+public class OrderDeliveredInfo extends AbstractDeliveryAction implements Serializable {
+       private final int driverId;
 
-       public OrderDeliveredInfo(GroupData groupdata, int cookId) {
+       public OrderDeliveredInfo(DeliveryGroupData groupdata, int driverId) {
                super(groupdata);
-               this.cookId = cookId;
+               this.driverId = driverId;
        }
 
-       // TODO
+       public int getDriverId() {
+               return driverId;
+       }
 
+       @Override
+       public String toString() {
+               return "OrderDeliveredInfo [driverId=" + driverId + ", getDeliveryGroupData()=" + getDeliveryGroupData() + "]";
+       }
 }
index 06318be63494c6214c6c82f1c34e8bffe00a1eb7..8742b4130cb280dabe949944dbbc00ee6610aa1b 100644 (file)
@@ -40,7 +40,7 @@ public class JMSDriver implements HasId {
 
                        Session sessCookedDeliveryOrders = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
                        MessageConsumer consCookedDeliveryOrders = sessCookedDeliveryOrders.createConsumer(sessCookedDeliveryOrders
-                                       .createQueue("OrdersToCook"));
+                                       .createQueue("CookedDeliveryOrders"));
                        consCookedDeliveryOrders.setMessageListener(new CookedDeliveryOrders(this));
                } catch (JMSException e) {
                        log.error("EXCEPTION!", e);
index 4d2d8897676e29700ff73bb7ccabbc30683370e9..5013d4a789328c9ca79ad46f23640e2981e29a22 100644 (file)
@@ -15,8 +15,8 @@ import org.slf4j.LoggerFactory;
 
 import at.ac.tuwien.sbc.valesriegler.common.Util;
 import at.ac.tuwien.sbc.valesriegler.cook.actions.DeliveryOrderInfo;
+import at.ac.tuwien.sbc.valesriegler.driver.actions.OrderDeliveredInfo;
 import at.ac.tuwien.sbc.valesriegler.driver.jms.JMSDriver;
-import at.ac.tuwien.sbc.valesriegler.group.actions.DeliveryOrderResponse;
 
 /**
  * 
@@ -40,24 +40,25 @@ public class CookedDeliveryOrders implements MessageListener {
                                        ObjectMessage objMsg = (ObjectMessage) msg;
                                        Object obj = objMsg.getObject();
 
-                                       if (obj instanceof DeliveryOrderResponse) {
-                                               DeliveryOrderResponse dor = (DeliveryOrderResponse) obj;
-                                               log.debug("Received: " + dor);
+                                       if (obj instanceof DeliveryOrderInfo) {
+                                               DeliveryOrderInfo doi = (DeliveryOrderInfo) obj;
+                                               log.debug("Received: " + doi);
 
                                                // generate random delay
                                                Thread.sleep((long) (Math.random() * 10000));
-                                               String addr = dor.getDeliveryGroupData().getAddress();
+                                               String addr = doi.getDeliveryGroupData().getAddress();
 
                                                // Deliver to destination broker
                                                ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(Util.JMS_DELIVERY_DESTINATION);
                                                Connection connection = connectionFactory.createConnection();
                                                connection.start();
+                                               log.debug("CookedDelivery:ActiveMQConnectionFactory::" + connection);
 
                                                Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                                                MessageProducer prod = session.createProducer(session.createQueue(addr));
                                                prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-                                               DeliveryOrderInfo doi = new DeliveryOrderInfo(dor.getDeliveryGroupData(), driver.getId());
-                                               prod.send(session.createObjectMessage(doi));
+                                               OrderDeliveredInfo odi = new OrderDeliveredInfo(doi.getDeliveryGroupData(), driver.getId());
+                                               prod.send(session.createObjectMessage(odi));
                                                session.close();
                                                connection.close();
 
@@ -69,7 +70,7 @@ public class CookedDeliveryOrders implements MessageListener {
                                                session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                                                prod = session.createProducer(session.createQueue("PizzeriaConnector"));
                                                prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-                                               prod.send(session.createObjectMessage(doi));
+                                               prod.send(session.createObjectMessage(odi));
                                                session.close();
                                                connection.close();
 
index ae4b9caa67658a7ab5f7725691b044cfa4bdc6d1..fe89716420651a9ad3e41c5f767175a7ecf63eb9 100644 (file)
@@ -51,7 +51,7 @@ public class GroupAgent {
        public static GroupAgent groupAgent;
 
        public static void main(String[] args) {
-               if (args.length != 1) {
+               if (args.length < 1) {
                        throw new IllegalArgumentException(USAGE);
                }