From 7cf971cfe478fc4a170ea17274f44b24eae97e2b Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Tue, 6 May 2014 22:30:40 +0200 Subject: o Support for triggering builds from MQ messages with an MVEL expression. --- .../jenkinsci/plugins/activemq/ActiveMqPlugin.java | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/main/java/org/jenkinsci/plugins/activemq/ActiveMqPlugin.java') diff --git a/src/main/java/org/jenkinsci/plugins/activemq/ActiveMqPlugin.java b/src/main/java/org/jenkinsci/plugins/activemq/ActiveMqPlugin.java index c9c277c..cc73898 100644 --- a/src/main/java/org/jenkinsci/plugins/activemq/ActiveMqPlugin.java +++ b/src/main/java/org/jenkinsci/plugins/activemq/ActiveMqPlugin.java @@ -2,9 +2,12 @@ package org.jenkinsci.plugins.activemq; import hudson.Extension; import hudson.Plugin; +import hudson.model.AbstractProject; import hudson.model.Build; +import hudson.model.Cause; import hudson.model.TaskListener; import jenkins.model.GlobalConfiguration; +import jenkins.model.Jenkins; import org.slf4j.Logger; import javax.annotation.Nonnull; @@ -88,5 +91,29 @@ public class ActiveMqPlugin extends Plugin implements ActiveMqClient.BuildReques public void onBuildRequest(ActiveMqClient.BuildRequest req) { log.info("ActiveMqPlugin.onBuildRequest"); log.info(req.parameters.toString()); + + for (AbstractProject project : Jenkins.getInstance().getAllItems(AbstractProject.class)) { + log.info("Checking project " + project.getDisplayName()); + ActiveMqBuildTrigger trigger = (ActiveMqBuildTrigger) project.getTrigger(ActiveMqBuildTrigger.class); + + if (trigger == null) { + log.debug("No trigger configured"); + continue; + } + + if (trigger.matches(req)) { + log.debug("MVEL matched!"); + project.scheduleBuild(new ActiveMqCause()); + } else { + log.debug("MVEL did not match"); + } + } + } + + public static class ActiveMqCause extends Cause { + @Override + public String getShortDescription() { + return "ActiveMQ cause"; + } } } -- cgit v1.2.3