[hornetq-commits] JBoss hornetq SVN: r8079 - in trunk: src/main/org/hornetq/core/management/impl and 2 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Oct 12 09:51:49 EDT 2009
Author: jmesnil
Date: 2009-10-12 09:51:48 -0400 (Mon, 12 Oct 2009)
New Revision: 8079
Modified:
trunk/src/main/org/hornetq/core/management/AddressControl.java
trunk/src/main/org/hornetq/core/management/ManagementService.java
trunk/src/main/org/hornetq/core/management/impl/AddressControlImpl.java
trunk/src/main/org/hornetq/core/management/impl/ManagementServiceImpl.java
trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
trunk/tests/src/org/hornetq/tests/integration/management/AddressControlTest.java
Log:
https://jira.jboss.org/jira/browse/HORNETQ-174: add page store information to the AddressControl management API
* added getNumberOfBytesPerPage() & getNumberOfPages() methods to AddressControl
-- patch contributed by Bijith Kumar
Modified: trunk/src/main/org/hornetq/core/management/AddressControl.java
===================================================================
--- trunk/src/main/org/hornetq/core/management/AddressControl.java 2009-10-10 23:35:44 UTC (rev 8078)
+++ trunk/src/main/org/hornetq/core/management/AddressControl.java 2009-10-12 13:51:48 UTC (rev 8079)
@@ -31,6 +31,10 @@
String getRolesAsJSON() throws Exception;
String[] getQueueNames() throws Exception;
+
+ int getNumberOfPages() throws Exception;
+
+ long getNumberOfBytesPerPage() throws Exception;
// Operations ----------------------------------------------------
Modified: trunk/src/main/org/hornetq/core/management/ManagementService.java
===================================================================
--- trunk/src/main/org/hornetq/core/management/ManagementService.java 2009-10-10 23:35:44 UTC (rev 8078)
+++ trunk/src/main/org/hornetq/core/management/ManagementService.java 2009-10-12 13:51:48 UTC (rev 8079)
@@ -28,6 +28,7 @@
import org.hornetq.core.config.cluster.DivertConfiguration;
import org.hornetq.core.management.impl.HornetQServerControlImpl;
import org.hornetq.core.messagecounter.MessageCounterManager;
+import org.hornetq.core.paging.PagingManager;
import org.hornetq.core.persistence.StorageManager;
import org.hornetq.core.postoffice.PostOffice;
import org.hornetq.core.remoting.server.RemotingService;
@@ -81,6 +82,7 @@
HornetQServer messagingServer,
QueueFactory queueFactory,
ScheduledExecutorService scheduledThreadPool,
+ final PagingManager pagingManager,
boolean backup) throws Exception;
void unregisterServer() throws Exception;
Modified: trunk/src/main/org/hornetq/core/management/impl/AddressControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/management/impl/AddressControlImpl.java 2009-10-10 23:35:44 UTC (rev 8078)
+++ trunk/src/main/org/hornetq/core/management/impl/AddressControlImpl.java 2009-10-12 13:51:48 UTC (rev 8079)
@@ -20,6 +20,7 @@
import org.hornetq.core.logging.Logger;
import org.hornetq.core.management.AddressControl;
+import org.hornetq.core.paging.PagingManager;
import org.hornetq.core.postoffice.Binding;
import org.hornetq.core.postoffice.Bindings;
import org.hornetq.core.postoffice.PostOffice;
@@ -48,6 +49,8 @@
private final SimpleString address;
private final PostOffice postOffice;
+
+ private final PagingManager pagingManager;
private final HierarchicalRepository<Set<Role>> securityRepository;
@@ -57,12 +60,14 @@
public AddressControlImpl(final SimpleString address,
final PostOffice postOffice,
+ final PagingManager pagingManager,
final HierarchicalRepository<Set<Role>> securityRepository)
throws Exception
{
super(AddressControl.class);
this.address = address;
this.postOffice = postOffice;
+ this.pagingManager = pagingManager;
this.securityRepository = securityRepository;
}
@@ -126,7 +131,17 @@
}
return json.toString();
}
+
+ public long getNumberOfBytesPerPage() throws Exception
+ {
+ return pagingManager.getPageStore(address).getPageSizeBytes();
+ }
+ public int getNumberOfPages() throws Exception
+ {
+ return pagingManager.getPageStore(address).getNumberOfPages();
+ }
+
public synchronized void addRole(final String name,
final boolean send,
final boolean consume,
Modified: trunk/src/main/org/hornetq/core/management/impl/ManagementServiceImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/management/impl/ManagementServiceImpl.java 2009-10-10 23:35:44 UTC (rev 8078)
+++ trunk/src/main/org/hornetq/core/management/impl/ManagementServiceImpl.java 2009-10-12 13:51:48 UTC (rev 8079)
@@ -54,6 +54,7 @@
import org.hornetq.core.messagecounter.MessageCounter;
import org.hornetq.core.messagecounter.MessageCounterManager;
import org.hornetq.core.messagecounter.impl.MessageCounterManagerImpl;
+import org.hornetq.core.paging.PagingManager;
import org.hornetq.core.persistence.StorageManager;
import org.hornetq.core.postoffice.PostOffice;
import org.hornetq.core.remoting.server.RemotingService;
@@ -97,6 +98,8 @@
private PostOffice postOffice;
+ private PagingManager pagingManager;
+
private StorageManager storageManager;
private HornetQServer messagingServer;
@@ -187,6 +190,7 @@
final HornetQServer messagingServer,
final QueueFactory queueFactory,
final ScheduledExecutorService scheduledThreadPool,
+ final PagingManager pagingManager,
final boolean backup) throws Exception
{
this.postOffice = postOffice;
@@ -194,6 +198,7 @@
this.securityRepository = securityRepository;
this.storageManager = storageManager;
this.messagingServer = messagingServer;
+ this.pagingManager = pagingManager;
this.messageCounterManager = new MessageCounterManagerImpl(scheduledThreadPool);
messageCounterManager.setMaxDayCount(configuration.getMessageCounterMaxDayHistory());
@@ -223,7 +228,7 @@
public synchronized void registerAddress(final SimpleString address) throws Exception
{
ObjectName objectName = objectNameBuilder.getAddressObjectName(address);
- AddressControlImpl addressControl = new AddressControlImpl(address, postOffice, securityRepository);
+ AddressControlImpl addressControl = new AddressControlImpl(address, postOffice, pagingManager, securityRepository);
registerInJMX(objectName, addressControl);
Modified: trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java 2009-10-10 23:35:44 UTC (rev 8078)
+++ trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java 2009-10-12 13:51:48 UTC (rev 8079)
@@ -999,6 +999,7 @@
this,
queueFactory,
scheduledPool,
+ pagingManager,
configuration.isBackup());
// Address settings need to deployed initially, since they're require on paging manager.start()
Modified: trunk/tests/src/org/hornetq/tests/integration/management/AddressControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/AddressControlTest.java 2009-10-10 23:35:44 UTC (rev 8078)
+++ trunk/tests/src/org/hornetq/tests/integration/management/AddressControlTest.java 2009-10-12 13:51:48 UTC (rev 8079)
@@ -20,6 +20,8 @@
import java.util.HashSet;
import java.util.Set;
+import org.hornetq.core.client.ClientMessage;
+import org.hornetq.core.client.ClientProducer;
import org.hornetq.core.client.ClientSession;
import org.hornetq.core.client.ClientSessionFactory;
import org.hornetq.core.client.impl.ClientSessionFactoryImpl;
@@ -34,6 +36,7 @@
import org.hornetq.core.security.Role;
import org.hornetq.core.server.HornetQ;
import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.settings.impl.AddressSettings;
import org.hornetq.utils.SimpleString;
/**
@@ -330,7 +333,84 @@
session.deleteQueue(queue);
}
+
+ public void testGetNumberOfPages() throws Exception
+ {
+ session.close();
+ server.stop();
+
+ SimpleString address = randomSimpleString();
+
+ AddressSettings addressSettings = new AddressSettings();
+ addressSettings.setPageSizeBytes(1024);
+ addressSettings.setMaxSizeBytes(10 * 1024);
+ int NUMBER_MESSAGES_BEFORE_PAGING = 14;
+
+ server.getAddressSettingsRepository().addMatch(address.toString(), addressSettings);
+ server.start();
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ session = sf.createSession(false, true, false);
+ session.start();
+ session.createQueue(address, address, true);
+
+ ClientProducer producer = session.createProducer(address);
+
+ for (int i = 0; i < NUMBER_MESSAGES_BEFORE_PAGING; i++)
+ {
+ ClientMessage msg = session.createClientMessage(true);
+ msg.getBody().writeBytes(new byte[512]);
+ producer.send(msg);
+ }
+ session.commit();
+
+ AddressControl addressControl = createManagementControl(address);
+ assertEquals(0, addressControl.getNumberOfPages());
+
+ ClientMessage msg = session.createClientMessage(true);
+ msg.getBody().writeBytes(new byte[512]);
+ producer.send(msg);
+ session.commit();
+ assertEquals(1, addressControl.getNumberOfPages());
+
+ msg = session.createClientMessage(true);
+ msg.getBody().writeBytes(new byte[512]);
+ producer.send(msg);
+
+ session.commit();
+ assertEquals(1, addressControl.getNumberOfPages());
+
+ msg = session.createClientMessage(true);
+ msg.getBody().writeBytes(new byte[512]);
+ producer.send(msg);
+
+ session.commit();
+ assertEquals(2, addressControl.getNumberOfPages());
+ }
+
+ public void testGetNumberOfBytesPerPage() throws Exception
+ {
+ SimpleString address = randomSimpleString();
+ session.createQueue(address, address, true);
+
+ AddressControl addressControl = createManagementControl(address);
+ assertEquals(ConfigurationImpl.DEFAULT_JOURNAL_FILE_SIZE, addressControl.getNumberOfBytesPerPage());
+
+ session.close();
+ server.stop();
+
+ AddressSettings addressSettings = new AddressSettings();
+ addressSettings.setPageSizeBytes(1024);
+
+ server.getAddressSettingsRepository().addMatch(address.toString(), addressSettings);
+ server.start();
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ session = sf.createSession(false, true, false);
+ session.createQueue(address, address, true);
+ assertEquals(1024, addressControl.getNumberOfBytesPerPage());
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
More information about the hornetq-commits
mailing list