]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/driver/jms/messageListeners/PendingDeliveries.java
[JMS] NEW Workflow: cook now gets the order.
[pub/jan/sbc.git] / src / main / java / at / ac / tuwien / sbc / valesriegler / driver / jms / messageListeners / PendingDeliveries.java
1 package at.ac.tuwien.sbc.valesriegler.driver.jms.messageListeners;
2
3 import javax.jms.JMSException;
4 import javax.jms.Message;
5 import javax.jms.MessageListener;
6 import javax.jms.ObjectMessage;
7
8 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory;
10
11 import at.ac.tuwien.sbc.valesriegler.driver.jms.JMSDriver;
12 import at.ac.tuwien.sbc.valesriegler.group.actions.DeliveryOrderRequest;
13
14 /**
15  * 
16  * 
17  * @author jan
18  * 
19  */
20 public class PendingDeliveries implements MessageListener {
21         private static final Logger log = LoggerFactory.getLogger(PendingDeliveries.class);
22         private final JMSDriver driver;
23
24         public PendingDeliveries(JMSDriver driver) {
25                 this.driver = driver;
26         }
27
28         @Override
29         public void onMessage(Message msg) {
30                 try {
31                         synchronized (driver) {
32                                 if (msg instanceof ObjectMessage) {
33                                         ObjectMessage objMsg = (ObjectMessage) msg;
34                                         Object obj = objMsg.getObject();
35
36                                         if (obj instanceof DeliveryOrderRequest) {
37                                                 DeliveryOrderRequest dor = (DeliveryOrderRequest) obj;
38                                                 log.debug("Received: " + dor);
39
40                                                 // generate random delay
41                                                 Thread.sleep((long) (Math.random() * 10000));
42
43                                                 // TODO:
44
45                                         } else {
46                                                 log.warn("Received unknown Object: " + obj);
47                                         }
48                                 } else {
49                                         log.warn("Received unknown Message: " + msg);
50                                 }
51                                 msg.acknowledge();
52                         }
53                 } catch (JMSException e) {
54                         log.error("EXCEPTION!", e);
55                 } catch (InterruptedException e) {
56                         log.error("EXCEPTION!", e);
57                 }
58         }
59
60         @Override
61         public String toString() {
62                 return "PendingDeliveries [driver=" + driver + "]";
63         }
64 }