1 package at.ac.tuwien.sbc.valesriegler.driver.jms.messageListeners;
3 import javax.jms.JMSException;
4 import javax.jms.Message;
5 import javax.jms.MessageListener;
6 import javax.jms.ObjectMessage;
8 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory;
11 import at.ac.tuwien.sbc.valesriegler.driver.jms.JMSDriver;
12 import at.ac.tuwien.sbc.valesriegler.group.actions.DeliveryOrderRequest;
20 public class PendingDeliveries implements MessageListener {
21 private static final Logger log = LoggerFactory.getLogger(PendingDeliveries.class);
22 private final JMSDriver driver;
24 public PendingDeliveries(JMSDriver driver) {
29 public void onMessage(Message msg) {
31 synchronized (driver) {
32 if (msg instanceof ObjectMessage) {
33 ObjectMessage objMsg = (ObjectMessage) msg;
34 Object obj = objMsg.getObject();
36 if (obj instanceof DeliveryOrderRequest) {
37 DeliveryOrderRequest dor = (DeliveryOrderRequest) obj;
38 log.debug("Received: " + dor);
40 // generate random delay
41 Thread.sleep((long) (Math.random() * 10000));
46 log.warn("Received unknown Object: " + obj);
49 log.warn("Received unknown Message: " + msg);
53 } catch (JMSException e) {
54 log.error("EXCEPTION!", e);
55 } catch (InterruptedException e) {
56 log.error("EXCEPTION!", e);
61 public String toString() {
62 return "PendingDeliveries [driver=" + driver + "]";