[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