[jboss-cvs] JBoss Messaging SVN: r4726 - in branches/Branch_JBMESSAGING-1303: src/main/org/jboss/messaging/core/management/impl and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jul 24 11:53:05 EDT 2008
Author: jmesnil
Date: 2008-07-24 11:53:05 -0400 (Thu, 24 Jul 2008)
New Revision: 4726
Modified:
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementRegistration.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementRegistrationImpl.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSServerControlMBean.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java
branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java
branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java
Log:
JBMESSAGING-1303: Revisit management interfaces
* added expireMessage(messageID) & expireMessages(filter) to QueueControlMBean
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementRegistration.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementRegistration.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementRegistration.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -23,7 +23,10 @@
package org.jboss.messaging.core.management;
import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.postoffice.PostOffice;
import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.core.settings.HierarchicalRepository;
+import org.jboss.messaging.core.settings.impl.QueueSettings;
import org.jboss.messaging.util.SimpleString;
/**
@@ -34,6 +37,11 @@
*/
public interface ManagementRegistration
{
+ void setPostOffice(PostOffice postOffice);
+
+ void setQueueSettingsRepository(
+ HierarchicalRepository<QueueSettings> queueSettingsRepository);
+
void registerServer(MessagingServerManagement server)
throws Exception;
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/QueueControlMBean.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/QueueControlMBean.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -80,4 +80,15 @@
boolean removeMessage(
@Parameter(name = "messageID", desc = "A message ID") long messageID)
throws Exception;
+
+ @Operation(desc = "Remove the message corresponding to the given filter (and returns the number of expired messages)", impact = ACTION)
+ int expireMessages(
+ @Parameter(name = "filter", desc = "A message filter") String filter)
+ throws Exception;
+
+ @Operation(desc = "Remove the message corresponding to the given messageID", impact = ACTION)
+ boolean expireMessage(
+ @Parameter(name = "messageID", desc = "A message ID") long messageID)
+ throws Exception;
+
}
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementRegistrationImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementRegistrationImpl.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementRegistrationImpl.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -31,7 +31,10 @@
import org.jboss.messaging.core.management.MessagingServerManagement;
import org.jboss.messaging.core.management.QueueControlMBean;
import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.postoffice.PostOffice;
import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.core.settings.HierarchicalRepository;
+import org.jboss.messaging.core.settings.impl.QueueSettings;
import org.jboss.messaging.util.SimpleString;
/**
@@ -52,6 +55,8 @@
private final MBeanServer mbeanServer;
private MessagingServerManagement server;
+ private PostOffice postOffice;
+ private HierarchicalRepository<QueueSettings> queueSettingsRepository;
// Static --------------------------------------------------------
@@ -86,6 +91,17 @@
// ManagementRegistration implementation -------------------------
+ public void setPostOffice(PostOffice postOffice)
+ {
+ this.postOffice = postOffice;
+ }
+
+ public void setQueueSettingsRepository(
+ HierarchicalRepository<QueueSettings> queueSettingsRepository)
+ {
+ this.queueSettingsRepository = queueSettingsRepository;
+ }
+
public void registerServer(MessagingServerManagement server)
throws Exception
{
@@ -112,7 +128,7 @@
mbeanServer.unregisterMBean(getMessagingServerObjectName());
}
}
-
+
public void registerAddress(String address) throws Exception
{
ObjectName objectName = getAddressObjectName(address);
@@ -135,8 +151,8 @@
mbeanServer.unregisterMBean(getAddressObjectName(address));
}
- public void registerQueue(Queue queue, SimpleString address, StorageManager storageManager)
- throws Exception
+ public void registerQueue(Queue queue, SimpleString address,
+ StorageManager storageManager) throws Exception
{
ObjectName objectName = getQueueObjectName(address, queue.getName());
if (mbeanServer.isRegistered(objectName))
@@ -145,7 +161,7 @@
+ " is already registered. Unregister it");
mbeanServer.unregisterMBean(objectName);
}
- QueueControlMBean queueControl = new QueueControl(queue, storageManager);
+ QueueControlMBean queueControl = new QueueControl(queue, storageManager, postOffice, queueSettingsRepository);
mbeanServer.registerMBean(queueControl, objectName);
if (log.isDebugEnabled())
{
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/QueueControl.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/QueueControl.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -35,9 +35,12 @@
import org.jboss.messaging.core.management.MessageInfo;
import org.jboss.messaging.core.management.QueueControlMBean;
import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.postoffice.PostOffice;
import org.jboss.messaging.core.server.MessageReference;
import org.jboss.messaging.core.server.Queue;
import org.jboss.messaging.core.server.ServerMessage;
+import org.jboss.messaging.core.settings.HierarchicalRepository;
+import org.jboss.messaging.core.settings.impl.QueueSettings;
import org.jboss.messaging.util.SimpleString;
/**
@@ -55,17 +58,23 @@
public final Queue queue;
private final StorageManager storageManager;
+ private final PostOffice postOffice;
+ private final HierarchicalRepository<QueueSettings> queueSettingsRepository;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
- public QueueControl(Queue queue, StorageManager storageManager)
+ public QueueControl(Queue queue, StorageManager storageManager,
+ PostOffice postOffice,
+ HierarchicalRepository<QueueSettings> queueSettingsRepository)
throws NotCompliantMBeanException
{
super(QueueControlMBean.class);
this.queue = queue;
this.storageManager = storageManager;
+ this.postOffice = postOffice;
+ this.queueSettingsRepository = queueSettingsRepository;
}
// Public --------------------------------------------------------
@@ -197,6 +206,43 @@
}
}
+ public boolean expireMessage(long messageID) throws Exception
+ {
+ List<MessageReference> refs = queue.list(null);
+ for (MessageReference ref : refs)
+ {
+ if (ref.getMessage().getMessageID() == messageID)
+ {
+ ref.expire(storageManager, postOffice, queueSettingsRepository);
+ queue.removeReferenceWithID(messageID);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public int expireMessages(String filterStr) throws Exception
+ {
+ try
+ {
+ Filter filter = null;
+ if (filterStr != null)
+ {
+ filter = new FilterImpl(new SimpleString(filterStr));
+ }
+ List<MessageReference> refs = queue.list(filter);
+ for (MessageReference ref : refs)
+ {
+ ref.expire(storageManager, postOffice, queueSettingsRepository);
+ queue.removeReferenceWithID(ref.getMessage().getMessageID());
+ }
+ return refs.size();
+ } catch (MessagingException e)
+ {
+ throw new IllegalStateException(e.getMessage());
+ }
+ }
+
// StandardMBean overrides ---------------------------------------
@Override
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -127,6 +127,7 @@
}
flowControllers.put(address, new FlowControllerImpl(address, this));
+ managementRegistration.registerAddress(address.toString());
}
return added;
@@ -144,6 +145,7 @@
{
storageManager.deleteDestination(address);
}
+ managementRegistration.unregisterAddress(address.toString());
}
return removed;
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -173,10 +173,12 @@
this.connectionManager = cm;
this.sessionListener = cm;
queueSettingsRepository.setDefault(new QueueSettings());
+ managementRegistration.setQueueSettingsRepository(queueSettingsRepository);
scheduledExecutor = new ScheduledThreadPoolExecutor(configuration.getScheduledThreadPoolMaxSize(), new JBMThreadFactory("JBM-scheduled-threads"));
queueFactory = new QueueFactoryImpl(scheduledExecutor, queueSettingsRepository);
postOffice = new PostOfficeImpl(storageManager, queueFactory, configuration.isRequireDestinations());
postOffice.setManagementRegistration(managementRegistration);
+ managementRegistration.setPostOffice(postOffice);
threadPool = Executors.newFixedThreadPool(configuration.getThreadPoolMaxSize(), new JBMThreadFactory("JBM-session-threads"));
executorFactory = new OrderedExecutorFactory(threadPool);
securityRepository = new HierarchicalObjectRepository<Set<Role>>();
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/JMSServerManager.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/JMSServerManager.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -35,6 +35,9 @@
*/
public interface JMSServerManager extends Serializable
{
+
+ String getVersion();
+
/**
* Has the Server been started.
* @return true if the server us running
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -131,6 +131,11 @@
{
return messagingServerManagement.isStarted();
}
+
+ public String getVersion()
+ {
+ return messagingServerManagement.getVersion();
+ }
public boolean createQueue(String queueName, String jndiBinding) throws Exception
{
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSServerControlMBean.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSServerControlMBean.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSServerControlMBean.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -44,107 +44,49 @@
*/
boolean isStarted();
+ String getVersion();
+
// Operations ----------------------------------------------------
- /**
- * Creates a JMS Queue.
- *
- * @param queueName
- * The name of the queue to create
- * @param jndiBinding
- * the name of the binding for JNDI
- * @return true if the queue is created or if it already existed and was
- * added to JNDI
- *
- * @throws Exception
- * if problems were encountered creating the queue.
- */
@Operation(desc = "Create a JMS Queue", impact = ACTION)
boolean createQueue(
@Parameter(name = "name", desc = "Name of the queue to create") String name,
@Parameter(name = "jndiBinding", desc = "the name of the binding for JNDI") String jndiBinding)
throws Exception;
- /**
- * destroys a queue and removes it from JNDI
- *
- * @param name
- * the name of the queue to destroy
- * @return true if destroyed
- * @throws Exception
- * if a problem occurred destroying the queue
- */
@Operation(desc = "Destroy a JMS Queue", impact = ACTION)
boolean destroyQueue(
@Parameter(name = "name", desc = "Name of the queue to destroy") String name)
throws Exception;
- /**
- * Creates a JMS Topic
- *
- * @param topicName
- * the name of the topic
- * @param jndiBinding
- * the name of the binding for JNDI
- * @throws Exception
- * if a problem occurred creating the topic
- */
@Operation(desc = "Create a JMS Topic", impact = ACTION)
boolean createTopic(
@Parameter(name = "name", desc = "Name of the topic to create") String name,
@Parameter(name = "jndiBinding", desc = "the name of the binding for JNDI") String jndiBinding)
throws Exception;
- /**
- * destroys a topic and removes it from JNDI
- *
- * @param name
- * the name of the topic to destroy
- * @throws Exception
- * if a problem occurred destroying the topic
- */
@Operation(desc = "Destroy a JMS Topic", impact = ACTION)
boolean destroyTopic(
@Parameter(name = "name", desc = "Name of the topic to destroy") String name)
throws Exception;
- /**
- * Creates a connection factory
- *
- * @param name
- * the name of this connection factory
- * @param clientID
- * the client id
- * @param dupsOKBatchSize
- * the bath size
- * @param consumerWindowSize
- * The consumer window size
- * @param consumerMaxRate
- * the Consumer max rate
- * @param producerWindowSize
- * the producer window size
- * @param producerMaxRate
- * the producer max rate
- * @param jndiBinding
- * the binding name for JNDI
- * @throws Exception
- * if a problem occurred creating the connection factory
- */
- void createConnectionFactory(String name, String clientID,
- int dupsOKBatchSize, int consumerWindowSize, int consumerMaxRate,
- int producerWindowSize, int producerMaxRate,
- boolean blockOnAcknowledge,
- boolean defaultSendNonPersistentMessagesBlocking,
- boolean defaultSendPersistentMessagesBlocking, String jndiBinding)
+ @Operation(desc = "Create a JMS ConnectionFactory", impact = ACTION)
+ void createConnectionFactory(
+ @Parameter(name = "name", desc = "Name of the ConnectionFactory to create") String name,
+ @Parameter(name = "jndiBinding", desc = "JNDI Binding") String jndiBinding,
+ @Parameter(name = "clientID", desc = "ClientID for created connections") String clientID,
+ @Parameter(name = "dupsOKBatchSize", desc = "Size of the batch when using DUPS_OK") int dupsOKBatchSize,
+ @Parameter(name = "consumerWindowSize", desc = "Consumer's window size") int consumerWindowSize,
+ @Parameter(name = "consumerMaxRate", desc = "Consumer's max rate") int consumerMaxRate,
+ @Parameter(name = "producerWindowSize", desc = "Producer's window size") int producerWindowSize,
+ @Parameter(name = "producerMaxRate", desc = "Producer's max rate") int producerMaxRate,
+ @Parameter(name = "blockOnAcknowledge", desc = "Does acknowlegment block?") boolean blockOnAcknowledge,
+ @Parameter(name = "defaultSendNonPersistentMessagesBlocking", desc = "Does sending non persistent messages block?") boolean defaultSendNonPersistentMessagesBlocking,
+ @Parameter(name = "defaultSendPersistentMessagesBlocking", desc = "Does sending persistent messages block") boolean defaultSendPersistentMessagesBlocking)
throws Exception;
- /**
- * destroys a connection factory.
- *
- * @param name
- * the name of the connection factory to destroy
- * @throws Exception
- * if a problem occurred destroying the connection factory
- */
- void destroyConnectionFactory(String name) throws Exception;
+ @Operation(desc = "Create a JMS ConnectionFactory", impact = ACTION)
+ void destroyConnectionFactory(
+ @Parameter(name = "name", desc = "Name of the ConnectionFactory to create") String name)
+ throws Exception;
}
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -75,12 +75,12 @@
// JMSServerControlMBean implementation --------------------------
- public void createConnectionFactory(String name, String clientID,
- int dupsOKBatchSize, int consumerWindowSize, int consumerMaxRate,
- int producerWindowSize, int producerMaxRate,
+ public void createConnectionFactory(String name, String jndiBinding,
+ String clientID, int dupsOKBatchSize, int consumerWindowSize,
+ int consumerMaxRate, int producerWindowSize,
+ int producerMaxRate,
boolean blockOnAcknowledge,
- boolean defaultSendNonPersistentMessagesBlocking,
- boolean defaultSendPersistentMessagesBlocking, String jndiBinding)
+ boolean defaultSendNonPersistentMessagesBlocking, boolean defaultSendPersistentMessagesBlocking)
throws Exception
{
List<String> bindings = new ArrayList<String>();
@@ -151,6 +151,11 @@
{
return server.isStarted();
}
+
+ public String getVersion()
+ {
+ return server.getVersion();
+ }
// NotificationEmitter implementation ----------------------------
Modified: branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -22,6 +22,7 @@
package org.jboss.messaging.tests.unit.core.management.impl;
+import static org.easymock.EasyMock.anyLong;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.expectLastCall;
@@ -44,14 +45,18 @@
import junit.framework.TestCase;
+import org.easymock.EasyMock;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.filter.Filter;
import org.jboss.messaging.core.management.QueueControlMBean;
import org.jboss.messaging.core.management.impl.QueueControl;
import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.postoffice.PostOffice;
import org.jboss.messaging.core.server.MessageReference;
import org.jboss.messaging.core.server.Queue;
import org.jboss.messaging.core.server.ServerMessage;
+import org.jboss.messaging.core.settings.HierarchicalRepository;
+import org.jboss.messaging.core.settings.impl.QueueSettings;
import org.jboss.messaging.util.SimpleString;
/**
@@ -79,13 +84,16 @@
Queue queue = createMock(Queue.class);
expect(queue.getName()).andReturn(new SimpleString(name));
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControlMBean control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(name, control.getName());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testGetFilter() throws Exception
@@ -96,13 +104,16 @@
expect(filter.getFilterString()).andReturn(new SimpleString(filterStr));
expect(queue.getFilter()).andReturn(filter);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager, filter);
+ replay(queue, storageManager, postOffice, repository, filter);
- QueueControlMBean control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(filterStr, control.getFilter());
- verify(queue, storageManager, filter);
+ verify(queue, storageManager, postOffice, repository, filter);
}
public void testGetFilterWithNull() throws Exception
@@ -110,13 +121,16 @@
Queue queue = createMock(Queue.class);
expect(queue.getFilter()).andReturn(null);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControlMBean control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertNull(control.getFilter());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testIsClustered() throws Exception
@@ -126,13 +140,16 @@
Queue queue = createMock(Queue.class);
expect(queue.isClustered()).andReturn(clustered);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControlMBean control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(clustered, control.isClustered());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testIsDurable() throws Exception
@@ -142,13 +159,16 @@
Queue queue = createMock(Queue.class);
expect(queue.isDurable()).andReturn(durable);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControlMBean control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(durable, control.isDurable());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testIsTemporary() throws Exception
@@ -158,13 +178,16 @@
Queue queue = createMock(Queue.class);
expect(queue.isTemporary()).andReturn(temp);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControlMBean control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(temp, control.isTemporary());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testGetMessageCount() throws Exception
@@ -174,13 +197,16 @@
Queue queue = createMock(Queue.class);
expect(queue.getMessageCount()).andReturn(count);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControl control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(count, control.getMessageCount());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testGetMessagesAdded() throws Exception
@@ -190,13 +216,16 @@
Queue queue = createMock(Queue.class);
expect(queue.getMessagesAdded()).andReturn(count);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControl control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(count, control.getMessagesAdded());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testGetMaxSizeBytes() throws Exception
@@ -206,13 +235,16 @@
Queue queue = createMock(Queue.class);
expect(queue.getMaxSizeBytes()).andReturn(size);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControl control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(size, control.getMaxSizeBytes());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testGetSizeBytes() throws Exception
@@ -222,13 +254,16 @@
Queue queue = createMock(Queue.class);
expect(queue.getSizeBytes()).andReturn(size);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControl control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(size, control.getSizeBytes());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testGetScheduledCount() throws Exception
@@ -238,13 +273,16 @@
Queue queue = createMock(Queue.class);
expect(queue.getScheduledCount()).andReturn(count);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControl control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(count, control.getScheduledCount());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testGetConsumerCount() throws Exception
@@ -254,13 +292,16 @@
Queue queue = createMock(Queue.class);
expect(queue.getConsumerCount()).andReturn(count);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControl control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(count, control.getConsumerCount());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testGetDeliveringCount() throws Exception
@@ -270,13 +311,16 @@
Queue queue = createMock(Queue.class);
expect(queue.getDeliveringCount()).andReturn(count);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControl control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(count, control.getDeliveringCount());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testGetPersistenceID() throws Exception
@@ -286,13 +330,16 @@
Queue queue = createMock(Queue.class);
expect(queue.getPersistenceID()).andReturn(id);
StorageManager storageManager = createMock(StorageManager.class);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControl control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(id, control.getPersistenceID());
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testRemoveAllMessages() throws Exception
@@ -300,13 +347,16 @@
Queue queue = createMock(Queue.class);
StorageManager storageManager = createMock(StorageManager.class);
queue.deleteAllReferences(storageManager);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControlMBean control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
control.removeAllMessages();
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testRemoveAllMessagesThrowsException() throws Exception
@@ -315,10 +365,13 @@
StorageManager storageManager = createMock(StorageManager.class);
queue.deleteAllReferences(storageManager);
expectLastCall().andThrow(new MessagingException());
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControlMBean control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
try
{
control.removeAllMessages();
@@ -328,7 +381,7 @@
}
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testRemoveMessage() throws Exception
@@ -340,13 +393,16 @@
StorageManager storageManager = createMock(StorageManager.class);
expect(queue.deleteReference(messageID, storageManager)).andReturn(
deleted);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControlMBean control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
assertEquals(deleted, control.removeMessage(messageID));
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testRemoveMessageThrowsException() throws Exception
@@ -357,10 +413,13 @@
StorageManager storageManager = createMock(StorageManager.class);
expect(queue.deleteReference(messageID, storageManager)).andThrow(
new MessagingException());
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager);
+ replay(queue, storageManager, postOffice, repository);
- QueueControlMBean control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
try
{
control.removeMessage(messageID);
@@ -370,7 +429,7 @@
}
- verify(queue, storageManager);
+ verify(queue, storageManager, postOffice, repository);
}
public void testListMessages() throws Exception
@@ -395,10 +454,13 @@
Queue queue = createMock(Queue.class);
StorageManager storageManager = createMock(StorageManager.class);
expect(queue.list(isA(Filter.class))).andReturn(refs);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
- replay(queue, storageManager, ref, message);
+ replay(queue, storageManager, postOffice, repository, ref, message);
- QueueControlMBean control = new QueueControl(queue, storageManager);
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
TabularData data = control.listMessages(filterStr);
assertEquals(1, data.size());
CompositeData info = data.get(new Object[] { message.getMessageID() });
@@ -412,9 +474,98 @@
assertEquals(message.getPriority(), info.get("priority"));
assertEquals(message.isExpired(), info.get("expired"));
assertEquals(message.getExpiration(), info.get("expiration"));
- verify(queue, storageManager, ref, message);
+
+ verify(queue, storageManager, postOffice, repository, ref, message);
}
+ public void testExpireMessageWithMessageID() throws Exception
+ {
+ long messageID = randomLong();
+
+ List<MessageReference> refs = new ArrayList<MessageReference>();
+ MessageReference ref = createMock(MessageReference.class);
+ ServerMessage message = createMock(ServerMessage.class);
+ expect(message.getMessageID()).andStubReturn(messageID);
+ expect(ref.getMessage()).andReturn(message);
+ refs.add(ref);
+ Queue queue = createMock(Queue.class);
+ StorageManager storageManager = createMock(StorageManager.class);
+ expect(queue.list(null)).andReturn(refs);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
+ ref.expire(storageManager, postOffice, repository);
+ expect(queue.removeReferenceWithID(messageID)).andReturn(true);
+
+ replay(queue, storageManager, postOffice, repository, ref, message);
+
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
+ assertTrue(control.expireMessage(messageID));
+
+ verify(queue, storageManager, postOffice, repository, ref, message);
+ }
+
+ public void testExpireMessageWithNoMatch() throws Exception
+ {
+ long messageID = randomLong();
+
+ List<MessageReference> refs = new ArrayList<MessageReference>();
+ MessageReference ref = createMock(MessageReference.class);
+ ServerMessage message = createMock(ServerMessage.class);
+ expect(message.getMessageID()).andStubReturn(messageID + 1);
+ expect(ref.getMessage()).andReturn(message);
+ refs.add(ref);
+ Queue queue = createMock(Queue.class);
+ StorageManager storageManager = createMock(StorageManager.class);
+ expect(queue.list(null)).andReturn(refs);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
+ replay(queue, storageManager, postOffice, repository, ref, message);
+
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
+ assertFalse(control.expireMessage(messageID));
+
+ verify(queue, storageManager, postOffice, repository, ref, message);
+ }
+
+ public void testExpireMessagesWithFilter() throws Exception
+ {
+ long messageID_1 = randomLong();
+ long messageID_2 = randomLong();
+
+ List<MessageReference> refs = new ArrayList<MessageReference>();
+ MessageReference ref_1 = createMock(MessageReference.class);
+ ServerMessage message_1 = createMock(ServerMessage.class);
+ expect(message_1.getMessageID()).andStubReturn(messageID_1);
+ expect(ref_1.getMessage()).andReturn(message_1);
+ MessageReference ref_2 = createMock(MessageReference.class);
+ ServerMessage message_2 = createMock(ServerMessage.class);
+ expect(message_2.getMessageID()).andStubReturn(messageID_2);
+ expect(ref_2.getMessage()).andReturn(message_2);
+ refs.add(ref_1);
+ refs.add(ref_2);
+ Queue queue = createMock(Queue.class);
+ StorageManager storageManager = createMock(StorageManager.class);
+ expect(queue.list(isA(Filter.class))).andReturn(refs);
+ PostOffice postOffice = createMock(PostOffice.class);
+ HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
+ ref_1.expire(storageManager, postOffice, repository);
+ ref_2.expire(storageManager, postOffice, repository);
+ expect(queue.removeReferenceWithID(messageID_1)).andReturn(true);
+ expect(queue.removeReferenceWithID(messageID_2)).andReturn(true);
+
+ replay(queue, storageManager, postOffice, repository, ref_1, ref_2,
+ message_1, message_2);
+
+ QueueControlMBean control = new QueueControl(queue, storageManager,
+ postOffice, repository);
+ assertEquals(2, control.expireMessages("foo = true"));
+
+ verify(queue, storageManager, postOffice, repository, ref_1, ref_2,
+ message_1, message_2);
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
Modified: branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java 2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java 2008-07-24 15:53:05 UTC (rev 4726)
@@ -293,11 +293,11 @@
};
mbeanServer.addNotificationListener(serverON, listener, null, null);
- control.createConnectionFactory(name, clientID, dupsOKBatchSize,
- consumerWindowSize, consumerMaxRate, producerWindowSize,
- producerMaxRate, blockOnAcknowledge,
- defaultSendNonPersistentMessagesBlocking,
- defaultSendPersistentMessagesBlocking, jndiBinding);
+ control.createConnectionFactory(name, jndiBinding, clientID,
+ dupsOKBatchSize, consumerWindowSize, consumerMaxRate,
+ producerWindowSize, producerMaxRate,
+ blockOnAcknowledge,
+ defaultSendNonPersistentMessagesBlocking, defaultSendPersistentMessagesBlocking);
boolean gotNotification = latch.await(500, MILLISECONDS);
assertTrue(gotNotification);
More information about the jboss-cvs-commits
mailing list