Description
This plugin connects to RabbitMQ, consumes messages in queue, then notifies it to listener.
Causion
This plugin has global configuration only, so any features for user are not provided. You should need other plugins to provide features to user. c.f. RabbitMQ Build Trigger Plugin
Develop listener plugin
This plugin provides convenient extension point to listen application messages. To implement listener to your plugin, you can user the blows:
pom.xml
<project>
<dependencies>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>rabbitmq-consumer</artifactId>
<version>VERSION</version>
</dependency>
</dependencies>
</project>
org.jenkinsci.plugins.rabbitmqconsumer.extensions
public abstract class MessageQueueListener implements ExtensionPoint {
String getName();
String getAppId();
void onBind(String queueName);
void onUnbind(String queueName);
void onReceive(String queueName, String contentType, Map<String, Object> headers, byte[] body);
}
Publish messages from your plugin
This plugin registers extension to publish messages to RabbitMQ.
If you want to use them from your plugin, please see the implementation
of RabbitMQ Build Trigger
Plugin.
Implementation class
- org.jenkinsci.plugins.rabbitmqbuildtrigger.RemoteBuildPublisher
Extension
- org.jenkinsci.plugins.rabbitmqconsumer.extensions.MessagePublisher
Customize server operation
This plugin provides extension to customize server operation.
Extension
- org.jenkinsci.plugins.rabbitmqconsumer.extensions.ServerOperation
Remote API
Since 2.7, this plugin has Remote access API. You can get plugin status via API.
Endpoint | /plugin/rabbitmq-consumer/api/ |
Notice
This plugin does not generates any queues in RabbitMQ. So you should prepare them by yourself.
License
MIT License.
Version history
Version 2.8 (01/24/2018)
- JENKINS-49083 - Getting issue details... STATUS
- Drop support Jenkins 1.x
- Add RabbitMQ connection monitor as AdministrativeMonitor
- Set system security to callback threads
Version 2.7 (11/06/2014)
- Bump amqp-client to 3.4.1
- Cleanup code
- Change logger to SLF4J
- Add remote API
Version 2.6
- Skip
Version 2.5 (08/07/2014)
- Catch exception when called extension interfaces
- Configure the period of supervisory timer
- Fix NPE during reconnection
Version 2.3-2.4
- Sorry, missed release. no exist in repository.
Version 2.2 (03/24/2014)
- Refactor shutdown logic
- Bump Java to 1.6
- Improve logs
- Improve channel handling
- Add extension to control channel
Version 2.1 (01/27/2014)
- Bumped Jenkins version to 1.532.1
- Remove recursive reference
- Stop Heartbeat setting
- should follow given setting from server
- Fix unnecessary callback
- Cleanup code
- Add tests
Version 2.0 (01/14/2014)
- Fix NPE potential issue
- Add new extension points to consume/publish message.
- Deprecate interfaces
- 1.0 style interfaces are no longer called. So you should not bump this easily.
Version 1.9 (07/23/2013)
- Fix: Service URI with userinfo is not valid in spite of fully
following amqp uri spec.
- Isolate userinfo from Service URI
- Add new field to set username and password
Version 1.8 (07/18/2013)
- Add some interfaces for publish
- Add/Remove channle listener
- Setup method (Exchange declaration / Bind queue)
- Expand PublishResult
Version 1.7 (07/17/2013)
- Add publish feature
Version 1.6 (07/11/2013)
- Improve locking opportunity
- Bumped amqp-client to 3.1.4
Version 1.5 (05/30/2013)
- Prevent to terminate connection when RuntimeException is raised in message handler
Version 1.4 (04/16/2013)
- Fix "Undelete queue item" issue
- Fix "Never open channel" issue due to missing condition check
- Improve channel update handling and logging messages
Version 1.3 (04/09/2013)
- Fix "Cannot update queue parameters" issue
Version 1.2 (04/09/2013)
- Fix "Parameters with checkbox cannot be saved" issue
- Fix localization
- Bumped amqp-client to 3.0.4
Version 1.1 (04/01/2013)
Re-release
Version 1.0 (04/01/2013)
Initial release