activemq實現BrokerPlugin

官方參考:http://activemq.apache.org/interceptors.html

 

步驟1:實現org.apache.activemq.broker.BrokerPlugin

步驟2:繼承org.apache.activemq.broker.BrokerFilter

步驟3:activema.xml中聲明自定義的BrokerPlugin

 

步驟1:

       public class MsgBorkerPlugin implements BrokerPlugin{

           public Broker installPlugin(Broker broker) throws Exception {
                return new MsgBrokerFilter(broker);
                }

      }

 

步驟2:

       public class MsgBrokerFilter extends BrokerFilter{

            public MsgBrokerFilter(Broker next) {
                super(next);
            }

 

    @Override
     public void acknowledge(ConsumerBrokerExchange consumerExchange,
            MessageAck ack) throws Exception {
          System.out.println("重寫改寫.............");
          super.acknowledge(consumerExchange, ack);
      }

 

    @Override
    public void send(ProducerBrokerExchange producerExchange,
            Message messageSend) throws Exception {

                System.out.println("發送Message.............");

              super.send(producerExchange, messageSend);
      }

 

    }

 把自定義的類做成jar放到activemq的lib中

 

步驟3:

 創建一個bean

 <bean id="msgBorkerPlugin" class="com.broker.MsgBorkerPlugin"/>

  在<broker> 引用知道自定義的 BorkerPlugin

  <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.base}/data"  persistent="true"         plugins="#msgBorkerPlugin" >

</broker>

 

重啓的activemq,筆者測試過可以調用自定義Plugin。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章