001package gu.simplemq.activemq; 002 003import javax.jms.Connection; 004import gu.simplemq.BaseMQProducer; 005import gu.simplemq.IConsumerAdvisor; 006import gu.simplemq.IProducer; 007import gu.simplemq.activemq.BaseSender.ProducerSender; 008/** 009 * {@link IProducer} ACTIVEMQ实现 010 * @author guyadong 011 * 012 */ 013public class ActivemqProducer extends BaseMQProducer<Connection> implements AutoCloseable,ActivemqConstants{ 014 private final AdvisoryMessageManager advisoryMessageManager; 015 private final ProducerSender sender; 016 public ActivemqProducer(ActivemqPoolLazy poolLazy) { 017 super(poolLazy); 018 this.advisoryMessageManager = AdvisoryMessageManager.instanceOf(poolLazy); 019 this.sender = new ProducerSender(advisoryMessageManager); 020 } 021 022 @Override 023 public IConsumerAdvisor getAdvisor() { 024 return advisoryMessageManager; 025 } 026 027 @Override 028 protected void doSend(Connection c, String channel, Iterable<String> messages) throws Exception { 029 sender.doSend(c, channel, messages); 030 } 031 032 @Override 033 public void close() { 034 advisoryMessageManager.close(); 035 } 036 037}