Find plugins

JMS Messaging
1.0.36Minimum Jenkins requirement: 1.651.3ID: jms-messaging

The JMS Messaging Plugin provides the following functionality:

  • A build trigger to submit jenkins jobs upon receipt of a matching message.
  • A post-build action that may be used to submit a message to the topic upon the completion of a job

JMS Messaging Providers

  • This plugin supports the following JMS Message Provider types
    • ActiveMQ
    • FedMsg

Set Up

Global Configuration

Before the plugin may be used, you must add a JMS Messaging Provider. This will provide the ability to send and receive messages. Below is a list of currently supported JMS Message Providers:

  • ActiveMQ
  • FedMsg


To enable the CI trigger, go to the job configuration page and add click the check box "CI Event" under the Build Triggers section. Enabling the trigger on a job requires two additional pieces of information:

  • Provider Name
  • JMS Selector

The complete documentation for JMS selectors can be found here: http://activemq.apache.org/selectors.html

Message Types

In the image above, the selector contains CI_TYPE = '<message-type>'

The valid values for '<message-type>' can be found in the "Type" column in the table below:




Code quality checks done

Indicate that static analysis covering code quality is complete.


Component build done

Indicate that a component has been built.


Component functional test coverage done

Indicate that test coverage for component tests is complete.


Early performance testing done

Indicate that early automated performance testing is complete.


Early security testing done

Indicate that early automated security testing is complete.


Engineering product build accepted for release testing

Indicate that engineering product build has been accepted as a release candidate.


Engineering product build in staging environment

Indicate that engineering product build has been pushed to staging environment.


Functional testing done

Indicate that all planned functional testing is complete.


Image Uploaded

Indicate that a cloud image has been uploaded


Nonfunctional testing done

Indicate that all planned nonfunctional testing is complete.


Out of the box testing done

Indicate that end user testing is complete.


Peer review done

Indicate that development has completed peer review of the code change.


Product build done

Indicate that a new product build is complete.


Product test coverage done

Indicate that test coverage for functional product tests is complete.


Pull request submitted

Indicate that a code change needs to be reviewed and tested.


Security checks done

Indicate that static analysis covering security issues is complete.


Tier 0 testing done

Indicate that tier 0 (unit) testing has completed.


Tier 1 testing done

Indicate that tier 1 (component) testing is complete.


Tier 2 build validation done

Indicate that the build validation is complete.


Tier 2 integration testing done

Indicate that tier 2 (functional product) automated testing is complete.


Tier 3 testing done

Indicate that tier 3 testing is complete.


Unit test coverage done

Indicate that test coverage for unit tests is complete.


Update defect status

Indicate a code change to resolve a defect has been reviewed and tested and the defect status needs to be updated.


Build Steps

CI Notifier

This plugin provides a build step for publishing messages to the topic upon job completion. To add the CI Notifier build step, go to the job configuration page and select the "CI Notifier" option.

Adding the step to the job requires some additional information:

  • Provider name
  • Message type
  • Message properties
  • Message content.

The full list of message types available in the drop-down menu can be found in the Message Type table above.

CI Subscriber

This plugin provides a build step to wait for a specific message. To add the CI Subscriber build step, go to the job configuration page and select the "CI Subscriber" option.

Adding the step to the job requires some additional information:

  • Provider name
  • JMS Selector
  • Variable
  • Timeout

The build step will set an environment variable with the name from Variable with a value of the message content.

Post-build steps

CI Notifier

See above.

Pipeline Support

This plugin provides the steps when using the Jenkins Pipeline feature:

  • sendCIMessage
    • This is the Freestyle CI Notifier Build and Publisher step sibling.
  • waitForCIMEssage
    • This is the Freestyle CI Subscriber Build step sibling.

Here are some examples:

node('master') {
   // Send a message that CodeQualityChecksDone
    def sendResult = sendCIMessage \
        providerName: 'default', \
        messageContent: 'some content', \
        messageProperties: 'CI_STATUS = passed', \
        messageType: 'CodeQualityChecksDone'
	// echo sent message id and content
	echo sendResult.getMessageId()
	echo sendResult.getMessageContent()


node('master') {
    // Wait for message and store message content in variable
    def msgContent = waitForCIMessage \
         providerName: 'default', \
         selector: "CI_TYPE = 'code-quality-checks-done' and CI_STATUS = 'passed'"
    echo "msgContent = " + msgContent

Change Log

Version 1.0.36

  • Support global node properties in topics names for triggers (#62)

Version 1.0.35

  • Force trigger thread to be stopped on trigger removal, project disable, and project delete. (#61)

Version 1.0.34

  • Add @Whitelisted to MessagingProviderOverrides constructor. (#60)

Version 1.0.32

  • Update CIMessageSendStep code to use CIMessageNotifier. Add methods to allow calls from pipeline code.

Version 1.0.31

  • Improve interrupt waitforcimessage (#51)
  • add extra logging for waitForCIMessage (#50)

Version 1.0.30

  • Fix SendResult to not require it to be Serializable

Version 1.0.29

  • sendCIMessage now returns SendResult (#48)

Version 1.0.28

  • Add msgchecks to waitForMsg and fix timeout (#47)

Version 1.0.27

  • added MsgCheck equals() to fix thread restart issue.

Version 1.0.26

  • Add support for JsonPath in MessageChecks (only FedMsg)

Version 1.0.25

  • Fix trigger thread not being restarted on JMS messaging provider change.

Version 1.0.24

  • Fix width of topic text boxes for overrides

Version 1.0.23

  • Add ability to use queues in AMQ messaging provider. (#38)

Version 1.0.22

  • <not released>

Version 1.0.21

  • Rework to support quick and frequent stop/start of triggers with properties in Multibranch jobs

Version 1.0.20

  • Do not block Jenkins load when previous plugin's ancestor's descriptor has been detected.
  • Improve interpolation of environment variables in messages

  • Add logging for pipeline steps

  • Add failOnError support for sending messages

  • Add support for replacing tokens using previously defined properties

  • Refactor pipeline steps so logging and aborting works properly.

Version 1.0.19

  • fix missing fillProviderMethod for waitForCIMessage

  • fix NPE for GlobalCIConfiguration.getFirstProviderOverrides

Version 1.0.18

  • Improve interruptions of connection threads by ensuring that provider is connected before trying to interrupt and join trigger thread.

Version 1.0.17

  • Add topic provider.
  • Fix Tests for new selections

Version 1.0.16

  • Variable expansion now supported for override topics.

Version 1.0.15

  • (ActiveMQ) Improve resiliency by better cleanup failed connections.

Version 1.0.14

  • Upgrade ActiveMQ client to version 5.14.5.

Version 1.0.13

  • Allow a job to re-subscribe if job was previously disabled.
  • Fix migration steps to ensure null providers are fixed on startup.

Version 1.0.12

  • Fix for double-quotes in FedMsg selectors
  • Add MESSAGE_HEADERS to the env for triggered jobs.
  • Allow topic configuration at build steps

Version 1.0.11

  • (JENKINS-42401) Enable trigger to work with Pipeline jobs

Version 1.0.10

  • Added Message Check support.

Version 1.0.9

  • Deleting project does not unsubscribe job nor shutdown subscriber thread.
  • Renaming project does not stop/start subscriber thread.

Version 1.0.8

  • Correct migration bug when plugins are installed that implement SaveableListener.

Version 1.0.7

  • Improve persistence of Keystore and Truststore config values.

Version 1.0.6

  • Support variable expansion in Keystore and Truststore config values.

Version 1.0.5

  • Introduction of SSL Certificate Authentication for ActiveMQ.

Version 1.0.4

  • FedMsg Message Provider
    • Supports triggering
    • Supports sending and receiving
    • Signing of messages not yet implemented.

Version 1.0.3

  • Remove un-necessary dependencies

Version 1.0.2

  • Reduce required version of Jenkins Core

Version 1.0.1

  • Fix startup crash for project types Project and MatrixProject

Version 1.0.0

  • Initial release
ArchivesGet past versions