001 /*
002 * Created on Apr 22, 2004
003 *
004 * To change the template for this generated file go to
005 * Window - Preferences - Java - Code Generation - Code and Comments
006 */
007 package org.activemq.service;
008
009 import java.util.Map;
010
011 import javax.jms.JMSException;
012
013 import org.activemq.broker.BrokerClient;
014 import org.activemq.message.ActiveMQDestination;
015 import org.activemq.message.ActiveMQMessage;
016 import org.activemq.message.ConsumerInfo;
017 import org.activemq.message.MessageAck;
018
019 /**
020 * A manager of MessageContainer instances
021 */
022 public interface MessageContainerManager extends Service {
023
024 /**
025 * Creates a destination.
026 * @param dest
027 * @throws JMSException
028 *
029 */
030 public void createMessageContainer(ActiveMQDestination dest) throws JMSException;
031
032 /**
033 * Destroys a destination.
034 * @param dest
035 * @throws JMSException
036 *
037 */
038 public void destroyMessageContainer(ActiveMQDestination dest) throws JMSException;
039
040 /**
041 * Returns an unmodifiable map, indexed by ActiveMQDestination, of all the {@link org.activemq.service.MessageContainerAdmin}
042 * objects available in this container
043 *
044 * @return the Map
045 * @throws JMSException
046 */
047 public Map getMessageContainerAdmins() throws JMSException;
048
049 /**
050 * Returns an unmodifiable map, indexed by String name, of all the {@link javax.jms.Destination}
051 * objects available in this container
052 *
053 * @return
054 */
055 public Map getDestinations();
056
057 /**
058 * Returns an unmodifiable map, indexed by String name, of all the {@link javax.jms.Destination}
059 * objects used by non-broker consumers directly connected to this container
060 *
061 * @return
062 */
063 public Map getLocalDestinations();
064
065 /**
066 * @param client
067 * @param info
068 * @throws JMSException
069 */
070 public abstract void addMessageConsumer(BrokerClient client, ConsumerInfo info) throws JMSException;
071
072 /**
073 * @param client
074 * @param info
075 * @throws JMSException
076 */
077 public abstract void removeMessageConsumer(BrokerClient client, ConsumerInfo info) throws JMSException;
078
079 /**
080 * Delete a durable subscriber
081 *
082 * @param clientId
083 * @param subscriberName
084 * @throws JMSException if the subscriber doesn't exist or is still active
085 */
086 public abstract void deleteSubscription(String clientId, String subscriberName) throws JMSException;
087
088 /**
089 * @param client
090 * @param message
091 * @throws JMSException
092 */
093 public abstract void sendMessage(BrokerClient client, ActiveMQMessage message) throws JMSException;
094
095 /**
096 * Acknowledge a message as being read and consumed by the Consumer
097 *
098 * @param client
099 * @param ack
100 * @throws JMSException
101 */
102 public abstract void acknowledgeMessage(BrokerClient client, MessageAck ack) throws JMSException;
103
104 /**
105 * Poll for messages
106 *
107 * @throws JMSException
108 */
109 public abstract void poll() throws JMSException;
110
111 /**
112 * Allows the lookup of a specific named message container
113 *
114 * @param physicalName
115 * @return the MessageContainer
116 * @throws JMSException
117 */
118 public MessageContainer getContainer(String physicalName) throws JMSException;
119
120 /**
121 * @return the DeadLetterPolicy for this Container Manager
122 */
123 public DeadLetterPolicy getDeadLetterPolicy();
124
125 /**
126 * Set the DeadLetterPolicy for this Container Manager
127 * @param policy
128 */
129 public void setDeadLetterPolicy(DeadLetterPolicy policy);
130 }