ARTEMIS-898 - Adding documentation for Plugin support

Started a new chapter in the user manual for plugin support
This commit is contained in:
Christopher L. Shannon (cshannon) 2017-05-08 09:27:08 -04:00 committed by Clebert Suconic
parent 117d92bc94
commit 3bfbaf419c
2 changed files with 47 additions and 0 deletions

View File

@ -37,6 +37,7 @@
* [Extra Acknowledge Modes](pre-acknowledge.md)
* [Management](management.md)
* [Security](security.md)
* [Broker Plugins](broker-plugins.md)
* [Resource Limits](resource-limits.md)
* [The JMS Bridge](jms-bridge.md)
* [Client Reconnection and Session Reattachment](client-reconnection.md)

View File

@ -0,0 +1,46 @@
# Apache ActiveMQ Artemis Plugin Support
Apache ActiveMQ Artemis is designed to allow extra functionality to be added by
creating a plugin. Multiple plugins can be registered at the same time and they will be chained
together and executed in the order they are registered. (i.e. the first plugin registered
is always executed first).
Creating a plugin is very simple. It requires implementing the [`ActiveMQServerPlugin`](../../../artemis-server/src/main/java/org/apache/activemq/artemis/core/server/plugin/ActiveMQServerPlugin.java)
interface, making sure the plugin is on the classpath, and registering it with the broker. Only the methods that you want to add behavior for need to be implemented as all of the interface methods are default methods.
## Registering a Plugin
To register a plugin with by XML you need to add the `broker-plugins` element.
`broker.xml` in your classpath:
```xml
<configuration ...>
...
<broker-plugins>
<broker-plugin class-name="some.plugin.UserPlugin" />
</broker-plugins>
...
</configuration>
```
## Registering a Plugin Programmatically
For registering a plugin programmatically you need to call the
registerBrokerPlugin() method and pass in a new instance of your plugin. In the example below
assuming your plugin is called `UserPlugin`, registering it looks like the following:
``` java
...
Configuration config = new ConfigurationImpl();
...
config.registerBrokerPlugin(new UserPlugin());
```