<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ActiveMQ</title>
    <link rel="icon" type="image/png" href="/assets/img/favicon.png">

    <link rel="stylesheet" href="/css/main.css">
    <script defer src="https://use.fontawesome.com/releases/v5.0.8/js/all.js" integrity="sha384-SlE991lGASHoBfWbelyBPLsUlwY1GwNDJo3jSJO04KZ33K2bwfV9YBauFfnzvynJ" crossorigin="anonymous"></script>
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</head>

<body>
<nav class="navbar navbar-expand-lg navbar-light fixed-top">
    <div class="container">
        <!-- <a class="navbar-brand mr-auto" href="#"><img style="height: 50px" src="assets/img/apache-feather.png" /></a> -->
        <a class="navbar-brand mr-auto" href="/"><img src="/assets/img/activemq_logo_black_small.png" style="height: 50px"/></a>
        <button class="navbar-toggler ml-auto" type="button" data-toggle="collapse" data-target="#navbarContent" aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>

        <div class="ml-auto collapse navbar-collapse" id="navbarContent">
            <ul class="navbar-nav ml-auto">
                <li class="nav-item">
                    <a class="nav-link active" href="/index.html">Home</a>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link" id="navbarDropdownComponents" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Components</a>
                    <ul class="dropdown-menu dropdown-menu-center" aria-labelledby="navbarDropdownComponents">
                        <div class="row">
                            <div class="col-12">
                                <ul class="multi-column-dropdown">
                                    <li class="nav-item"><a class="dropdown-item" href="/components/classic">ActiveMQ 5</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/components/artemis/">ActiveMQ Artemis</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/components/nms">NMS Clients</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/components/cms">CMS Client</a></li>
                                </ul>
                            </div>
                        </div>
                    </ul>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link" id="navbarDropdownCommunity" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Contact</a>
                    <ul class="dropdown-menu dropdown-menu-center multi-column columns-1" aria-labelledby="navbarDropdownCommunity">
                        <div class="row">
                            <div class="col-12">
                                <ul class="multi-column-dropdown">
                                    <li class="nav-item"><a class="dropdown-item" href="/contact#mailing">Mailing Lists</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/contact#chat">Chat</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/contact#issues">Report Issues</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/contact#contributing">Contributing</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/security-advisories.html">Security</a></li>
                                </ul>
                            </div>
                          </div>
                    </ul>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link" id="navbarDropdownTeam" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Apache</a>
                    <ul class="dropdown-menu dropdown-menu-center multi-column columns-1" aria-labelledby="navbarDropdownTeam">
                        <div class="row">
                            <div class="col-sm-12">
                                <ul class="multi-column-dropdown">
                                    <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org">The Apache Software Foundation</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/licenses/">License</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/security-advisories.html">Security</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/events/current-event">Events</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://people.apache.org/phonebook.html?pmc=activemq">PMC & Committers</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/team/reports">Board Reports</a></li>
                                </ul>
                            </div>
                        </div>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</nav>

<div class="content">
  <div class="page-title-activemq5">
    <div class="container">
      <h1>Interceptors</h1>
    </div>
  </div>
  <div class="container" >
    <div class="row" style="margin-top: 30px">
      <div class="col-12 activemq5">
        <p><a href="features">Features</a> &gt; <a href="interceptors">Interceptors</a></p>

<p>ActiveMQ has a sophisticated <em>interceptor stack</em> so that you can attach whatever functionality you require into the broker in an easy way without complicating all of the other broker code. This has really helped us keep the code clean and modular while offering powerful extension points.</p>

<p>For an example of the kinds of things you can do with interceptors see the following pages</p>

<ul>
  <li><a href="logging-interceptor">Logging Interceptor</a></li>
  <li><a href="security">Security</a></li>
  <li><a href="visualisation">Visualisation</a></li>
  <li><a href="timestampplugin">TimeStamp on the Broker</a></li>
  <li><a href="statisticsplugin">Get Statistics via Messages</a></li>
  <li><a href="destinations-plugin">Destinations Plugin</a></li>
</ul>

<h3 id="how-plugins-work">How plugins work</h3>

<p>A plugin is an instance of the interface <a href="http://activemq.apache.org/maven/apidocs/org/apache/activemq/broker/BrokerPlugin.html">BrokerPlugin</a> which allows a plugin to add itself into the broker interceptor chain, typically using the <a href="http://activemq.apache.org/maven/apidocs/org/apache/activemq/broker/BrokerFilter.html">BrokerFilter</a> as a base class to allow only certain operations to be customized.</p>

<p>The object that implements the BrokerPlugin interface is called out as a plugin in the message broker’s XML configuration file (see example below). Your plugin can then optionally reference other beans that are defined in the XML file.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:amq="http://activemq.org/config/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://activemq.org/config/1.0 
http://activemq.apache.org/schema/activemq-core.xsd http://activemq.apache.org/camel/schema/spring  http://activemq.apache.org/camel/schema/spring/camel-spring.xsd"&gt;

&lt;!-- Allows us to use system properties as variables in this configuration file --&gt;
&lt;bean  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" /&gt;

  &lt;broker xmlns="http://activemq.org/config/1.0" brokerName="localhost" dataDirectory="${activemq.base}/data" plugins="#myPlugin"&gt;

    &lt;!-- The transport connectors ActiveMQ will listen to --&gt;
    &lt;transportConnectors&gt;
      &lt;transportConnector name="openwire" uri="tcp://localhost:61616" /&gt;
    &lt;/transportConnectors&gt;

  &lt;/broker&gt;

  &lt;bean id="myPlugin" class="org.myorg.MyPlugin"&gt;
    &lt;!-- You can reference one or more Spring beans in this file --&gt;
    &lt;property name="myMgr" ref="myManager"/&gt;		 
  &lt;/bean&gt;

  &lt;bean id="myManager" class="org.myorg.MyManager"&gt;
    &lt;property name="fooList"&gt;
      &lt;list&gt;
        &lt;value&gt;foo&lt;/value&gt;
        &lt;value&gt;foo2&lt;/value&gt;
      &lt;/list&gt;
    &lt;/property&gt;
  &lt;/bean&gt;

&lt;/beans&gt;
</code></pre></div></div>
<p>You can also define plugins from within the <plugin> element as this example illustrates.</plugin></p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:amq="http://activemq.org/config/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://activemq.org/config/1.0 
http://activemq.apache.org/schema/activemq-core.xsd http://activemq.apache.org/camel/schema/spring
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd"&gt;

 &lt;!-- Allows us to use system properties as variables in this configuration file --&gt;
 &lt;bean  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" /&gt;

 &lt;broker xmlns="http://activemq.org/config/1.0" brokerName="localhost" dataDirectory="${activemq.base}/data"&gt;

  &lt;!-- The transport connectors ActiveMQ will listen to --&gt;
  &lt;transportConnectors&gt;
     &lt;transportConnector name="openwire" uri="tcp://localhost:61616" /&gt;
  &lt;/transportConnectors&gt;

  &lt;plugins&gt;
      &lt;bean xmlns="http://www.springframework.org/schema/beans" id="myPlugin" class="org.myorg.MyPlugin"/&gt;    
  &lt;/plugins&gt;

 &lt;/broker&gt;
 
&lt;/beans&gt;
</code></pre></div></div>
<p>At startup, the main or core broker calls your plugin’s installPlugin() method. This method creates and returns an object that typically extends <a href="http://activemq.apache.org/maven/apidocs/org/apache/activemq/broker/BrokerFilter.html">BrokerFilter</a>.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import org.apache.activemq.broker.Broker;
import org.apache.activemq.broker.BrokerPlugin;

public class MyPlugin implements BrokerPlugin {	
        
        public Broker installPlugin(Broker broker) throws Exception {            
             return new MyBroker(broker);
        }	

}
</code></pre></div></div>
<p>The BrokerFilter class is a convenience class that implements the <a href="http://activemq.apache.org/maven/apidocs/org/apache/activemq/broker/Broker.html">Broker</a> interface. This interface defines all the main operations (e.g., addConnection, addSession, etc.) that your implementation can intercept. The class that extends BrokerFilter overrides any of the methods that are defined in the Broker interface so that it can intercept the corresponding core engine’s operations. Here’s an example of a class that extends BrokerFilter and intercepts/overrides the addConnection() and addSession() Broker methods/operations.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import org.apache.activemq.broker.Broker;
import org.apache.activemq.broker.BrokerFilter;
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.command.ConnectionInfo;

public class MyBroker extends BrokerFilter {
    
     public MyBroker(Broker next) {
        super(next);                
    }

    public void addConnection(ConnectionContext context, ConnectionInfo info) 
            throws Exception {       
        
         // Your code goes here 

        // Then call your parent
        super.addConnection(context, info);
    }   

    public void addSession(ConnectionContext context, SessionInfo info) 
            throws Exception {       
        
         //  Your code goes here...

         // Then call your parent
         super.addSession(context, info);
    }	
}
</code></pre></div></div>
<p>For more details see <a href="developing-plugins">Developing Plugins</a></p>


      </div>
    </div>
  </div>
</div>
<div class="row sitemap">
  <div class="col-sm-12">
    <div class="container">
      <div class="row">
        <div class="col-sm-12">
          <div class="row">
            <div class="col-sm-3">
              <div >
                <img class="float-left" style="max-height: 100px" src="/assets/img/activemq_logo_white_vertical_small.png"/>
              </div>
            </div>
            <div style="text-align: center; margin-bottom: 0px; margin-top: 30px; font-size: 65%" class="col-sm-6">
              <p>Apache ActiveMQ, ActiveMQ, ActiveMQ Artemis, Apache, the Apache feather logo, and the Apache ActiveMQ project logo are trademarks of The Apache Software Foundation. Copyright &copy; 2019, The Apache Software Foundation. Licensed under <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
            </div>
            <div class="col-sm-3">
              <div >
                <a href="https://www.apache.org"><img class="float-right" style="margin-top: 10px; max-height: 80px" src="/assets/img/apache-logo-small.png"/></a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

</body>
</html>
