diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2014-05-06 22:30:40 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2014-05-06 22:30:40 +0200 |
commit | 7cf971cfe478fc4a170ea17274f44b24eae97e2b (patch) | |
tree | a9155d9d732462e2122bbe4d11323a07f442439f /src/main/java/org/jenkinsci/plugins/activemq/ActiveMqPlugin.java | |
parent | 7e2d2c074c3f09266dda31c772f4bec61e8d5742 (diff) | |
download | activemq-plugin-7cf971cfe478fc4a170ea17274f44b24eae97e2b.tar.gz activemq-plugin-7cf971cfe478fc4a170ea17274f44b24eae97e2b.tar.bz2 activemq-plugin-7cf971cfe478fc4a170ea17274f44b24eae97e2b.tar.xz activemq-plugin-7cf971cfe478fc4a170ea17274f44b24eae97e2b.zip |
o Support for triggering builds from MQ messages with an MVEL expression.
Diffstat (limited to 'src/main/java/org/jenkinsci/plugins/activemq/ActiveMqPlugin.java')
-rw-r--r-- | src/main/java/org/jenkinsci/plugins/activemq/ActiveMqPlugin.java | 27 |
1 files changed, 27 insertions, 0 deletions
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"; + } } } |