package io.trygvis.engine; import org.kie.internal.runtime.StatefulKnowledgeSession; import org.slf4j.Logger; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; import java.io.IOException; import java.io.StringReader; import java.util.Properties; import static java.lang.Integer.parseInt; import static org.slf4j.LoggerFactory.getLogger; public class JenkinsBuildResultMessageListener implements MessageListener { private final Logger log = getLogger(getClass()); private StatefulKnowledgeSession session; public JenkinsBuildResultMessageListener(StatefulKnowledgeSession session) { this.session = session; } @Override public void onMessage(Message message) { if (!(message instanceof TextMessage)) { return; } try { TextMessage m = (TextMessage) message; Properties p = new Properties(); p.load(new StringReader(m.getText())); String jobName = p.getProperty("jobName"); int buildNumber = parseInt(p.getProperty("buildNumber")); String result = p.getProperty("result"); log.info("New build: jobName={}, buildNumber={}, result={}", jobName, buildNumber, result); /* String type; Object event; long processInstanceId; jbpm.signalEvent(type, event, processInstanceId); */ } catch (JMSException | IOException e) { e.printStackTrace(); } } }