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.MapMessage; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageListener; import javax.jms.Session; import static javax.jms.Session.AUTO_ACKNOWLEDGE; public class MqClient implements AutoCloseable { private Connection connection; // private final ActiveMQConnectionFactory connectionFactory; // private final StatefulKnowledgeSession jbpm; public MqClient(final StatefulKnowledgeSession jbpm, String brukerUrl) { // this.jbpm = jbpm; ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brukerUrl); try { connection = connectionFactory.createConnection(); connection.start(); Session session = connection.createSession(false, AUTO_ACKNOWLEDGE); Destination destination = session.createQueue("jenkins.build-result"); MessageConsumer consumer = session.createConsumer(destination); consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { if (!(message instanceof MapMessage)) { return; } MapMessage m = (MapMessage) message; try { String jobName = m.getString("jobName"); int buildNumber = m.getInt("buildNumber"); String result = m.getString("result"); /* String type; Object event; long processInstanceId; jbpm.signalEvent(type, event, processInstanceId); */ } catch (JMSException e) { e.printStackTrace(); } } }); } catch (JMSException e) { e.printStackTrace(); } } @Override public void close() throws Exception { if (connection != null) { connection.close(); this.connection = null; } } }