1 package at.ac.tuwien.sbc.valesriegler.cook.jms;
3 import javax.jms.Connection;
4 import javax.jms.JMSException;
5 import javax.jms.MessageConsumer;
6 import javax.jms.Session;
8 import org.apache.activemq.ActiveMQConnectionFactory;
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
12 import at.ac.tuwien.sbc.valesriegler.common.HasId;
13 import at.ac.tuwien.sbc.valesriegler.cook.jms.messageListeners.DeliveryOrdersToCook;
14 import at.ac.tuwien.sbc.valesriegler.cook.jms.messageListeners.OrdersToCook;
17 * JMSCook registers 2 Listeners. We do this to prevent a starvation of groups inside the pizzeria. But on the other
18 * hand we dont require all pizzas inside the pizzeria to be cooked before we start cooking DeliveryOrders.
23 public class JMSCook implements HasId {
24 private static final Logger log = LoggerFactory.getLogger(JMSCook.class);
25 private final String CONNECTSTRING;
28 public JMSCook(String jmsURL, int id) {
29 CONNECTSTRING = jmsURL;
31 log.info("I AM A JMSCook WITH ID {}", this.id);
34 // Connecting to the Broker and to the output queue
35 ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(CONNECTSTRING);
36 Connection connection = connectionFactory.createConnection();
39 Session sessOrdersToCook = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
40 MessageConsumer consOrdersToCook = sessOrdersToCook.createConsumer(sessOrdersToCook.createQueue("OrdersToCook"));
41 consOrdersToCook.setMessageListener(new OrdersToCook(this));
43 Session sessDeliveryOrdersToCook = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
44 MessageConsumer consDeliveryOrdersToCook = sessDeliveryOrdersToCook.createConsumer(sessDeliveryOrdersToCook
45 .createQueue("DeliveryOrdersToCook"));
46 consDeliveryOrdersToCook.setMessageListener(new DeliveryOrdersToCook(this));
47 } catch (JMSException e) {
48 log.error("EXCEPTION!", e);
52 public String getCONNECTSTRING() {