package io.trygvis.engine; import org.apache.activemq.ActiveMQConnectionFactory; import org.kie.internal.runtime.StatefulKnowledgeSession; import javax.jms.Connection; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageListener; import javax.jms.Session; import javax.jms.TextMessage; import java.io.IOException; import java.io.StringReader; import java.util.Properties; import static java.lang.Integer.parseInt; import static javax.jms.Session.AUTO_ACKNOWLEDGE; public class MqClient implements AutoCloseable { private Connection connection; public MqClient(String brokerUrl, String queueName, MessageListener messageListener) { ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl); try { connection = connectionFactory.createConnection(); connection.start(); Session session = connection.createSession(false, AUTO_ACKNOWLEDGE); Destination destination = session.createQueue(queueName); MessageConsumer consumer = session.createConsumer(destination); consumer.setMessageListener(messageListener); } catch (JMSException e) { e.printStackTrace(); } } @Override public void close() throws Exception { if (connection != null) { connection.close(); this.connection = null; } } }