# 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"
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
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() {
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);
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.
* @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() + "]";
+ }
}
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);
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;
/**
*
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();
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();
public static GroupAgent groupAgent;
public static void main(String[] args) {
- if (args.length != 1) {
+ if (args.length < 1) {
throw new IllegalArgumentException(USAGE);
}