You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/05/02 18:58:04 UTC

[jira] [Commented] (ARTEMIS-898) Artemis Plugin Support

    [ https://issues.apache.org/jira/browse/ARTEMIS-898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15993510#comment-15993510 ] 

ASF GitHub Bot commented on ARTEMIS-898:
----------------------------------------

GitHub user cshannon opened a pull request:

    https://github.com/apache/activemq-artemis/pull/1242

    ARTEMIS-898 - Adding Plugin Support

    Adding a new ActievMQServerPlugin interface to support adding custom behavior to the broker at certain events such as connection or session creation.  I know that 2.1.0 should be done soon so not sure if it is best to wait to merge this in for 2.2.0.
    
    For now this is a good start but there will probably be additional hooks to add at some point.  There are some basic sanity tests to verify that the plugin methods are called but more in depth tests will come if we write some real plugins to ship with the broker.
    
    Also one thing I want to spend some more time verifying is exception handling.  The plugin api has no checked exceptions so any exception that occurs in a plugin either needs to be handled by the plugin or be a runtime exception.  So I want to go through and verify that if unchecked exceptions are thrown at various points the broker will handle the exceptions properly (ie notify the client if necessary, etc). Not sure if this will require a jira or not (only improvements are necessary)

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/cshannon/activemq-artemis ARTEMIS-898

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/activemq-artemis/pull/1242.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1242
    
----
commit a7818740333cde9434aca3b4023760f239bc0223
Author: Christopher L. Shannon (cshannon) <ch...@gmail.com>
Date:   2017-05-02T13:46:17Z

    ARTEMIS-898 - Adding Plugin Support
    
    Adding a new ActievMQServerPlugin interface to support adding custom
    behavior to the broker at certain events such as connection or session
    creation.
    
    https://issues.apache.org/jira/browse/ARTEMIS-898

----


> Artemis Plugin Support
> ----------------------
>
>                 Key: ARTEMIS-898
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-898
>             Project: ActiveMQ Artemis
>          Issue Type: New Feature
>          Components: Broker
>            Reporter: Matt Pavlovich
>             Fix For: 2.next
>
>
> ActiveMQ 5.x currently has a number of extension points via Plugins, or simple Spring bean wiring. Artemis should provide extension points to meet various requirements.
> The protocol interceptors are handy, but also limiting in that each plugin would need to be implemented for every protocol. Feels like there should be defined extension point(s) within the broker.
> Core Broker Plugins:
> 1. Message header / property manipulation
> 2. Message body manipulation
> 3. Activity tracing (broker becomes master, network bridge start/stop, message rcv/sent/ack/rollback, consumer/producer add/remove, broker add/remove, destination add/remove, connection add/remove, fast producer/slow consumer, etc)
>      a. Audit / trace logs
>      b. Triggers based on events
> ref: http://activemq.apache.org/maven/apidocs/org/apache/activemq/broker/MutableBrokerFilter.html
> Additional extension point:
>  DestinationPolicies: Ability to impact destination behaviors for dispatch, subscription policies, etc.
> Side benefit regarding Advisory Support:
> If the plugin framework can get squared away, an upside could be that Advisory support becomes a plugin vs an ingrained feature and we could have more control over configuration and behavior.
> From ARTEMIS-17
> Support for using Camel as an interceptor/plugin



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)