[jboss-cvs] JBoss Messaging SVN: r5360 - in branches/Branch_Chunk: src/main/org/jboss/messaging/core/paging/impl and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Nov 13 22:38:04 EST 2008


Author: clebert.suconic at jboss.com
Date: 2008-11-13 22:38:04 -0500 (Thu, 13 Nov 2008)
New Revision: 5360

Modified:
   branches/Branch_Chunk/src/main/org/jboss/messaging/core/paging/PagingManager.java
   branches/Branch_Chunk/src/main/org/jboss/messaging/core/paging/impl/PagingManagerImpl.java
   branches/Branch_Chunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
   branches/Branch_Chunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java
   branches/Branch_Chunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeImplTest.java
Log:
Adding method createPageStore on PagingManager

Modified: branches/Branch_Chunk/src/main/org/jboss/messaging/core/paging/PagingManager.java
===================================================================
--- branches/Branch_Chunk/src/main/org/jboss/messaging/core/paging/PagingManager.java	2008-11-14 02:53:18 UTC (rev 5359)
+++ branches/Branch_Chunk/src/main/org/jboss/messaging/core/paging/PagingManager.java	2008-11-14 03:38:04 UTC (rev 5360)
@@ -64,6 +64,13 @@
    /** During startup PostOffice may set GlobalPageMode as true */
    void setGlobalPageMode(boolean globalMode);
 
+   /**
+    * @param destination
+    * @return
+    * @throws Exception 
+    */
+   PagingStore createPageStore(SimpleString destination) throws Exception;
+
    /** To return the PageStore associated with the address */
    PagingStore getPageStore(SimpleString address) throws Exception;
 

Modified: branches/Branch_Chunk/src/main/org/jboss/messaging/core/paging/impl/PagingManagerImpl.java
===================================================================
--- branches/Branch_Chunk/src/main/org/jboss/messaging/core/paging/impl/PagingManagerImpl.java	2008-11-14 02:53:18 UTC (rev 5359)
+++ branches/Branch_Chunk/src/main/org/jboss/messaging/core/paging/impl/PagingManagerImpl.java	2008-11-14 03:38:04 UTC (rev 5360)
@@ -134,8 +134,11 @@
       this.globalMode.set(globalMode);
    }
 
-   // Synchronization of this method is done per ConcurrentHashMap
-   public PagingStore getPageStore(final SimpleString storeName) throws Exception
+   /**
+    * @param destination
+    * @return
+    */
+   public synchronized PagingStore createPageStore(SimpleString storeName) throws Exception
    {
       PagingStore store = stores.get(storeName);
       
@@ -156,6 +159,21 @@
       return store;
    }
 
+
+   
+   // Synchronization of this method is done per ConcurrentHashMap
+   public PagingStore getPageStore(final SimpleString storeName) throws Exception
+   {
+      PagingStore store = stores.get(storeName);
+      
+      if (store == null)
+      {
+         throw new IllegalStateException("Store " + storeName + " not found on paging");
+      }
+
+      return store;
+   }
+
    /** this will be set by the postOffice itself.
     *  There is no way to set this on the constructor as the PagingManager is constructed before the postOffice.
     *  (There is a one-to-one relationship here) */

Modified: branches/Branch_Chunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
===================================================================
--- branches/Branch_Chunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java	2008-11-14 02:53:18 UTC (rev 5359)
+++ branches/Branch_Chunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java	2008-11-14 03:38:04 UTC (rev 5360)
@@ -159,6 +159,8 @@
 
    public synchronized boolean addDestination(final SimpleString address, final boolean durable) throws Exception
    {
+      pagingManager.createPageStore(address);
+
       boolean added = addressManager.addDestination(address);
 
       if (added)
@@ -223,6 +225,8 @@
       {
          storageManager.addBinding(binding);
       }
+      
+      pagingManager.createPageStore(address);
 
       return binding;
    }
@@ -452,9 +456,6 @@
 
          queues.put(binding.getQueue().getPersistenceID(), binding.getQueue());
       }
-
-      storageManager.loadMessages(this, queues, resourceManager);
-      
       // TODO: This is related to http://www.jboss.com/index.html?module=bb&op=viewtopic&t=145597
       HashSet<SimpleString> addresses = new HashSet<SimpleString>();
       
@@ -468,13 +469,21 @@
          addresses.add(destination);
       }
       
+      for (SimpleString destination : addresses)
+      {
+         pagingManager.createPageStore(destination);
+      }
+      
       // End TODO -------------------------------------
 
+
+      storageManager.loadMessages(this, queues, resourceManager);
+      
       for (SimpleString destination : addresses)
       {
+         PagingStore store = pagingManager.getPageStore(destination);
          if (!pagingManager.isGlobalPageMode())
          {
-            PagingStore store = pagingManager.getPageStore(destination);
             if (store.isPaging() && store.getMaxSizeBytes() < 0)
             {
                pagingManager.setGlobalPageMode(true);

Modified: branches/Branch_Chunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java
===================================================================
--- branches/Branch_Chunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java	2008-11-14 02:53:18 UTC (rev 5359)
+++ branches/Branch_Chunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java	2008-11-14 03:38:04 UTC (rev 5360)
@@ -73,7 +73,7 @@
                                                             1024 * 1024);
       managerImpl.start();
 
-      PagingStore store = managerImpl.getPageStore(new SimpleString("simple-test"));
+      PagingStore store = managerImpl.createPageStore(new SimpleString("simple-test"));
 
       ServerMessage msg = createMessage(1l, new SimpleString("simple-test"), createRandomBuffer(10));
 
@@ -119,6 +119,8 @@
                                                             -1,
                                                             1024 * 1024);
       managerImpl.start();
+      
+      managerImpl.createPageStore(new SimpleString("simple-test"));
 
       ServerMessage msg = createMessage(1l, new SimpleString("simple-test"), createRandomBuffer(100));
 

Modified: branches/Branch_Chunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeImplTest.java
===================================================================
--- branches/Branch_Chunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeImplTest.java	2008-11-14 02:53:18 UTC (rev 5359)
+++ branches/Branch_Chunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/PostOfficeImplTest.java	2008-11-14 03:38:04 UTC (rev 5360)
@@ -317,7 +317,8 @@
 
       PagingManager pgm = EasyMock.createNiceMock(PagingManager.class);
       PagingStore store = EasyMock.createNiceMock(PagingStore.class);
-      EasyMock.expect(pgm.getPageStore(address1)).andReturn(store);
+      EasyMock.expect(pgm.getPageStore(address1)).andStubReturn(store);
+      EasyMock.expect(pgm.createPageStore(address1)).andStubReturn(store);
 
       PostOffice postOffice = new PostOfficeImpl(pm, pgm, qf, ms, true, null, wildCardRoutingEnabled, false);
 
@@ -330,6 +331,8 @@
                       (Map<Long, Queue>)EasyMock.anyObject(),
                       (ResourceManager)EasyMock.anyObject());
 
+      EasyMock.expect(pgm.isGlobalPageMode()).andStubReturn(false);
+      
       EasyMock.replay(pm, qf, binding, queue, pgm, store);
 
       postOffice.start();
@@ -371,8 +374,10 @@
          addresses[i] = new SimpleString("testAddress" + i);
          queueNames[i] = new SimpleString("testQueueName" + i);
 
-         EasyMock.expect(pgm.getPageStore(addresses[i])).andReturn(pgstore);
+         EasyMock.expect(pgm.getPageStore(addresses[i])).andStubReturn(pgstore);
 
+         EasyMock.expect(pgm.createPageStore(addresses[i])).andStubReturn(pgstore);
+
          EasyMock.expect(bindings[i].getAddress()).andStubReturn(addresses[i]);
          EasyMock.expect(bindings[i].getQueue()).andStubReturn(queues[i]);
          EasyMock.expect(queues[i].getName()).andStubReturn(queueNames[i]);
@@ -432,7 +437,8 @@
          queues[i] = EasyMock.createStrictMock(Queue.class);
          addresses[i] = new SimpleString("testAddress" + i);
          queueNames[i] = new SimpleString("testQueueName" + i);
-         EasyMock.expect(pgm.getPageStore(addresses[i])).andReturn(pgstore);
+         EasyMock.expect(pgm.createPageStore(addresses[i])).andStubReturn(pgstore);
+         EasyMock.expect(pgm.getPageStore(addresses[i])).andStubReturn(pgstore);
          EasyMock.expect(bindings[i].getAddress()).andStubReturn(addresses[i]);
          EasyMock.expect(bindings[i].getQueue()).andStubReturn(queues[i]);
          EasyMock.expect(queues[i].getName()).andStubReturn(queueNames[i]);
@@ -493,7 +499,8 @@
          addresses[i] = new SimpleString("testAddress" + i);
          queueNames[i] = new SimpleString("testQueueName" + i);
 
-         EasyMock.expect(pgm.getPageStore(addresses[i])).andReturn(pgstore);
+         EasyMock.expect(pgm.getPageStore(addresses[i])).andStubReturn(pgstore);
+         EasyMock.expect(pgm.createPageStore(addresses[i])).andStubReturn(pgstore);
 
          EasyMock.expect(bindings[i].getAddress()).andStubReturn(addresses[i]);
          EasyMock.expect(bindings[i].getQueue()).andStubReturn(queues[i]);
@@ -549,7 +556,8 @@
          addresses[i] = new SimpleString("testAddress" + i);
          queueNames[i] = new SimpleString("testQueueName" + i);
 
-         EasyMock.expect(pgm.getPageStore(addresses[i])).andReturn(pgstore);
+         EasyMock.expect(pgm.createPageStore(addresses[i])).andStubReturn(pgstore);
+         EasyMock.expect(pgm.getPageStore(addresses[i])).andStubReturn(pgstore);
 
          EasyMock.expect(bindings[i].getAddress()).andStubReturn(addresses[i]);
          EasyMock.expect(bindings[i].getQueue()).andStubReturn(queues[i]);
@@ -658,21 +666,23 @@
 
       EasyMock.verify(qf, pm, filter);
 
-      EasyMock.reset(qf, pm, filter);
+      EasyMock.reset(qf, pm, filter, pgm);
 
       final boolean durable2 = false;
 
       queue = queueFactory.createQueue(id, name, filter, durable2, false);
 
       EasyMock.expect(qf.createQueue(-1, name, filter, durable2, false)).andReturn(queue);
+      
+      EasyMock.expect(pgm.createPageStore((SimpleString)EasyMock.anyObject())).andStubReturn(null);
 
-      EasyMock.replay(qf, pm, filter);
+      EasyMock.replay(qf, pm, pgm, filter);
 
       po.addBinding(condition, name, filter, durable2, false, true);
 
       po.removeBinding(name);
 
-      EasyMock.verify(qf, pm, filter);
+      EasyMock.verify(qf, pm, pgm, filter);
    }
 
    public void testAddRemoveMultipleWithDifferentConditions() throws Exception
@@ -682,6 +692,9 @@
       ManagementService ms = EasyMock.createNiceMock(ManagementService.class);
       PagingManager pgm = EasyMock.createNiceMock(PagingManager.class);
 
+      EasyMock.expect(pgm.createPageStore(EasyMock.isA(SimpleString.class))).andStubReturn(null);
+      EasyMock.replay(pgm);
+      
       PostOffice po = new PostOfficeImpl(pm, pgm, qf, ms, false, null, wildCardRoutingEnabled, false);
 
       final SimpleString condition1 = new SimpleString("queue.wibble");
@@ -796,6 +809,8 @@
       QueueFactory qf = EasyMock.createStrictMock(QueueFactory.class);
       ManagementService ms = EasyMock.createNiceMock(ManagementService.class);
       PagingManager pgm = EasyMock.createNiceMock(PagingManager.class);
+      EasyMock.expect(pgm.createPageStore(EasyMock.isA(SimpleString.class))).andStubReturn(null);
+      EasyMock.replay(pgm);
 
       PostOffice postOffice = new PostOfficeImpl(pm, pgm, qf, ms, true, null, wildCardRoutingEnabled, false);
 
@@ -858,6 +873,8 @@
       ManagementService ms = EasyMock.createNiceMock(ManagementService.class);
       PagingManager pgm = EasyMock.createNiceMock(PagingManager.class);
 
+      EasyMock.expect(pgm.createPageStore(EasyMock.isA(SimpleString.class))).andStubReturn(null);
+      
       PostOffice postOffice = new PostOfficeImpl(pm, pgm, qf, ms, true, null, wildCardRoutingEnabled, false);
 
       qf.setPostOffice(postOffice);
@@ -871,7 +888,7 @@
       EasyMock.expect(pm.addDestination(address3)).andReturn(true);
       EasyMock.expect(pm.deleteDestination(address)).andReturn(true);
       EasyMock.expect(pm.deleteDestination(address3)).andReturn(true);
-      EasyMock.replay(pm, qf);
+      EasyMock.replay(pm, pgm, qf);
       postOffice.start();
       assertTrue(postOffice.addDestination(address, true));
       assertTrue(postOffice.addDestination(address2, true));
@@ -947,7 +964,10 @@
       pm.addBinding((Binding)EasyMock.anyObject());
       pm.addBinding((Binding)EasyMock.anyObject());
       pm.addBinding((Binding)EasyMock.anyObject());
-      EasyMock.replay(pm, qf, queue, queue2, queue3);
+      
+      EasyMock.expect(pgm.createPageStore((SimpleString)EasyMock.anyObject())).andStubReturn(null);
+
+      EasyMock.replay(pgm, pm, qf, queue, queue2, queue3);
       postOffice.start();
 
       postOffice.addBinding(new SimpleString("testAddress"), queueName, filter, true, false, true);
@@ -1015,7 +1035,10 @@
       EasyMock.expect(queue.getName()).andStubReturn(queueName);
       EasyMock.expect(queue2.getName()).andStubReturn(queueName2);
       EasyMock.expect(queue3.getName()).andStubReturn(queueName3);
-      EasyMock.replay(pm, qf, queue, queue2, queue3);
+      
+      EasyMock.expect(pgm.createPageStore((SimpleString)EasyMock.anyObject())).andStubReturn(null);
+
+      EasyMock.replay(pgm, pm, qf, queue, queue2, queue3);
       postOffice.start();
 
       postOffice.addBinding(new SimpleString("testAddress"), queueName, filter, false, false, true);
@@ -1133,7 +1156,11 @@
       pm.deleteBinding((Binding)EasyMock.anyObject());
       EasyMock.expect(queue.isDurable()).andStubReturn(true);
       EasyMock.expect(queue3.isDurable()).andStubReturn(true);
-      EasyMock.replay(pm, qf, queue, queue2, queue3);
+      
+      
+      EasyMock.expect(pgm.createPageStore((SimpleString)EasyMock.anyObject())).andStubReturn(null);
+      
+      EasyMock.replay(pgm, pm, qf, queue, queue2, queue3);
       postOffice.start();
 
       postOffice.addBinding(new SimpleString("testAddress"), queueName, filter, true, false, true);
@@ -1208,7 +1235,11 @@
 
       EasyMock.expect(queue.isDurable()).andStubReturn(false);
       EasyMock.expect(queue3.isDurable()).andStubReturn(false);
-      EasyMock.replay(pm, qf, queue, queue2, queue3);
+      
+      EasyMock.expect(pgm.createPageStore((SimpleString)EasyMock.anyObject())).andStubReturn(null);
+      
+      EasyMock.replay(pgm, pm, qf, queue, queue2, queue3);
+
       postOffice.start();
 
       postOffice.addBinding(new SimpleString("testAddress"), queueName, filter, false, false, true);
@@ -1342,8 +1373,10 @@
       EasyMock.expect(queue.getFilter()).andStubReturn(null);
 
       EasyMock.expect(message.createReference(queue)).andReturn(messageReference);
+      
+      EasyMock.expect(pgm.createPageStore((SimpleString)EasyMock.anyObject())).andStubReturn(null);
 
-      EasyMock.replay(pm, qf, message, queue, messageReference);
+      EasyMock.replay(pgm, pm, qf, message, queue, messageReference);
 
       postOffice.start();
       postOffice.addBinding(address, queueName, null, false, false, true);
@@ -1388,6 +1421,8 @@
       EasyMock.expect(qf.createQueue(-1, queueName, null, false, false)).andReturn(queue);
       EasyMock.expect(queue.getName()).andStubReturn(queueName);
       EasyMock.expect(queue.getFilter()).andStubReturn(null);
+      
+      EasyMock.expect(pgm.createPageStore((SimpleString)EasyMock.anyObject())).andStubReturn(null);
 
       EasyMock.replay(pm, pgm, qf, message, queue);
 
@@ -1428,9 +1463,13 @@
       EasyMock.expect(queue.getFilter()).andStubReturn(filter);
       EasyMock.expect(filter.match(message)).andReturn(true);
       EasyMock.expect(message.createReference(queue)).andReturn(messageReference);
-      EasyMock.replay(pm, qf, message, queue, messageReference, filter);
+      
+      EasyMock.expect(pgm.createPageStore((SimpleString)EasyMock.anyObject())).andStubReturn(null);
+
+      EasyMock.replay(pgm, pm, qf, message, queue, messageReference, filter);
       postOffice.start();
       postOffice.addBinding(address, queueName, filter, false, false, true);
+
       List<MessageReference> references = postOffice.route(message);
       EasyMock.verify(pm, qf, message, queue, messageReference, filter);
       assertTrue(postOffice.isStarted());
@@ -1464,11 +1503,15 @@
       EasyMock.expect(queue.getName()).andStubReturn(queueName);
       EasyMock.expect(queue.getFilter()).andStubReturn(filter);
       EasyMock.expect(filter.match(message)).andReturn(false);
-      EasyMock.replay(pm, qf, message, queue, messageReference, filter);
+      
+      EasyMock.expect(pgm.createPageStore((SimpleString)EasyMock.anyObject())).andStubReturn(null);
+
+      EasyMock.replay(pgm, pm, qf, message, queue, messageReference, filter);
       postOffice.start();
       postOffice.addBinding(address, queueName, filter, false, false, true);
+
       List<MessageReference> references = postOffice.route(message);
-      EasyMock.verify(pm, qf, message, queue, messageReference, filter);
+      EasyMock.verify(pgm, pm, qf, message, queue, messageReference, filter);
       assertTrue(postOffice.isStarted());
       assertEquals(0, references.size());
    }
@@ -1512,7 +1555,10 @@
       EasyMock.expect(message.createReference(queue)).andReturn(messageReference);
       EasyMock.expect(message.createReference(queue2)).andReturn(messageReference2);
       EasyMock.expect(message.createReference(queue3)).andReturn(messageReference3);
-      EasyMock.replay(pm, qf, message, queue, queue2, queue3, messageReference);
+      
+      EasyMock.expect(pgm.createPageStore((SimpleString)EasyMock.anyObject())).andStubReturn(null);
+
+      EasyMock.replay(pgm, pm, qf, message, queue, queue2, queue3, messageReference);
       postOffice.start();
       postOffice.addBinding(address, queueName, null, false, false, true);
       postOffice.addBinding(address, queueName2, null, false, false, true);
@@ -1568,7 +1614,10 @@
       EasyMock.expect(filter2.match(message)).andReturn(true);
       EasyMock.expect(message.createReference(queue2)).andReturn(messageReference2);
       EasyMock.expect(message.createReference(queue3)).andReturn(messageReference3);
-      EasyMock.replay(pm, qf, message, queue, queue2, queue3, messageReference, filter, filter2);
+      
+      EasyMock.expect(pgm.createPageStore((SimpleString)EasyMock.anyObject())).andStubReturn(null);
+
+      EasyMock.replay(pgm, pm, qf, message, queue, queue2, queue3, messageReference, filter, filter2);
       postOffice.start();
       postOffice.addBinding(address, queueName, null, false, false, true);
       postOffice.addBinding(address, queueName2, null, false, false, true);




More information about the jboss-cvs-commits mailing list