package org.jboss.mq.server.jmx;
import java.util.Arrays;
import java.util.List;
import javax.jms.IllegalStateException;
import org.jboss.mq.MessageStatistics;
import org.jboss.mq.SpyQueue;
import org.jboss.mq.server.JMSDestinationManager;
import org.jboss.mq.server.JMSQueue;
import org.jboss.mq.server.MessageCounter;
public class Queue
extends DestinationMBeanSupport
implements QueueMBean
{
JMSQueue destination;
public String getQueueName()
{
return destinationName;
}
public int getQueueDepth() throws Exception
{
return destination.queue.getQueueDepth();
}
public int getScheduledMessageCount() throws Exception
{
return destination.queue.getScheduledMessageCount();
}
public void startService() throws Exception
{
if (destinationName == null || destinationName.length() == 0)
{
throw new IllegalStateException("QueueName was not set");
}
JMSDestinationManager jmsServer = (JMSDestinationManager)
server.getAttribute(jbossMQService, "Interceptor");
spyDest = new SpyQueue(destinationName);
destination = new JMSQueue(spyDest, null, jmsServer, parameters);
jmsServer.addDestination(destination);
if (jndiName == null) {
setJNDIName("queue/" + destinationName);
}
else {
setJNDIName(jndiName);
}
super.startService();
}
public void removeAllMessages() throws Exception
{
destination.removeAllMessages();
}
public int getReceiversCount()
{
return destination.queue.getReceiversCount();
}
public List listReceivers()
{
return destination.queue.getReceivers();
}
public List listMessages() throws Exception
{
return Arrays.asList(destination.queue.browse(null));
}
public List listMessages(String selector) throws Exception
{
return Arrays.asList(destination.queue.browse(selector));
}
public MessageCounter[] getMessageCounter()
{
return destination.getMessageCounter();
}
public MessageStatistics[] getMessageStatistics() throws Exception
{
return MessageCounter.getMessageStatistics(destination.getMessageCounter());
}
}