[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