Home > RabbitMQ-Empty-Plugin

RabbitMQ-Empty-Plugin

RabbitMQ-Empty-Plugin is a project mainly written in Erlang, it's free.

A basically empty RabbitMQ plugin, usable with 2.3.x and 2.4.x brokers as a starting point for writing your own plugins.

DESCRIPTION:

This directory contains a pretty much empty RabbitMQ plugin. It should work with RabbitMQ brokers in the 2.3.x to 2.4.x version range, at a minimum.

I whipped it up as a placeholder since the plugin authoring guide on the RabbitMQ web site is now a bit out of date, and the sample discussed there, the metronome plugin, doesn't work with current Rabbits. The guide and the example should be updated in the relatively near future, but until then, they have a chance of confusing someone trying to work with them.

With questions or comments, please bug:

 jerrykuch VIA gmail.com

Or:

 jerry VIA rabbitmq.com

Good luck!

USAGE:

These instructions assume you have an Erlang environment that's contemporary as of this writing. Anything in the R14 series of releases should be fine.

To build this plugin, you'll have to check out the RabbitMQ "public umbrella".

Clone the public umbrella from the GitHub mirror of the RabbitMQ sources with:

git clone https://github.com/rabbitmq/rabbitmq-public-umbrella.git

Then:

cd rabbitmq-public-umbrella
make co

Once the checkout completes, build your vanilla Rabbit with:

make

This will sanity check your build environment, and give you a Rabbit you can build and run the plugin against.

Now, still under the rabbitmq-public-umbrella, clone the empty plugin:

 git clone [email protected]:jerrykuch/RabbitMQ-Empty-Plugin.git

Change into the RabbitMQ-Empty-Plugin directory and type:

 make

Now move back up into rabbitmq-server:

 cd ../rabbitmq-server

Make a plugins directory and the following symbolic links:

 mkdir plugins
 cd plugins
 ln -s ../../RabbitMQ-Empty-Plugin
 ln -s ../../rabbitmq-erlang-client

Now go back up to your rabbitmq-server directory and start the broker:

 cd ..
 make run

In the broker startup preamble you should see:

Activating RabbitMQ plugins ... 2 plugins activated:

  • rabbit_empty_plugin-0.1.0
  • amqp_client-0.0.0

If at the RabbitMQ broker Erlang REPL you type:

appmon:start().

You'll see the broker's application tree including rabbit_empty_plugin. Click on rabbit_empty_plugin and you'll see the empty plugin's supervisory tree.

To mutate this plugin for your own use look for the string 'empty' in the .erl source files and the OTP .app file. The code is small, and other than start itself up with the given supervisory structure and policy, it doesn't do anything real, but that's to make it easy for you to use it as a starting point for your own plugins, without having to scrape out too much extraneousness you don't care about.

THIRD PARTY LICENSES:

None.

DISCLAIMER:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Previous:sample_app