[jboss-cvs] JBoss Messaging SVN: r5582 - in trunk: src/main/org/jboss/messaging/core/paging and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jan 6 13:52:19 EST 2009
Author: clebert.suconic at jboss.com
Date: 2009-01-06 13:52:19 -0500 (Tue, 06 Jan 2009)
New Revision: 5582
Modified:
trunk/src/main/org/jboss/messaging/core/journal/impl/AbstractSequentialFactory.java
trunk/src/main/org/jboss/messaging/core/paging/PagingStoreFactory.java
trunk/src/main/org/jboss/messaging/core/paging/impl/PagingManagerImpl.java
trunk/src/main/org/jboss/messaging/core/paging/impl/PagingStoreFactoryNIO.java
trunk/src/main/org/jboss/messaging/core/paging/impl/PagingStoreImpl.java
trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreTestBase.java
Log:
Storing destination-names on txts and https://jira.jboss.org/jira/browse/JBMESSAGING-1477
Modified: trunk/src/main/org/jboss/messaging/core/journal/impl/AbstractSequentialFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/journal/impl/AbstractSequentialFactory.java 2009-01-06 15:48:57 UTC (rev 5581)
+++ trunk/src/main/org/jboss/messaging/core/journal/impl/AbstractSequentialFactory.java 2009-01-06 18:52:19 UTC (rev 5582)
@@ -26,10 +26,12 @@
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import org.jboss.messaging.core.journal.SequentialFileFactory;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.paging.PagingStore;
/**
*
@@ -42,28 +44,26 @@
public abstract class AbstractSequentialFactory implements SequentialFileFactory
{
private static final Logger log = Logger.getLogger(AbstractSequentialFactory.class);
-
+
protected final String journalDir;
public AbstractSequentialFactory(final String journalDir)
{
this.journalDir = journalDir;
}
-
+
/**
* Create the directory if it doesn't exist yet
*/
public void createDirs() throws Exception
- {
+ {
File file = new File(journalDir);
boolean ok = file.mkdirs();
-//FIXME - uncomment when https://jira.jboss.org/jira/browse/JBMESSAGING-1477 is complete
-// if (!ok)
-// {
-// throw new IOException("Failed to create directory " + journalDir);
-// }
+ if (!ok)
+ {
+ throw new IOException("Failed to create directory " + journalDir);
+ }
}
-
public List<String> listFiles(final String extension) throws Exception
{
Modified: trunk/src/main/org/jboss/messaging/core/paging/PagingStoreFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/paging/PagingStoreFactory.java 2009-01-06 15:48:57 UTC (rev 5581)
+++ trunk/src/main/org/jboss/messaging/core/paging/PagingStoreFactory.java 2009-01-06 18:52:19 UTC (rev 5582)
@@ -23,10 +23,13 @@
package org.jboss.messaging.core.paging;
import java.util.List;
+import java.util.Map;
import java.util.concurrent.Executor;
+import org.jboss.messaging.core.journal.SequentialFileFactory;
import org.jboss.messaging.core.persistence.StorageManager;
import org.jboss.messaging.core.postoffice.PostOffice;
+import org.jboss.messaging.core.settings.HierarchicalRepository;
import org.jboss.messaging.core.settings.impl.QueueSettings;
import org.jboss.messaging.util.SimpleString;
@@ -38,7 +41,7 @@
*/
public interface PagingStoreFactory
{
- PagingStore newStore(SimpleString destinationName, QueueSettings queueSettings, boolean createDir);
+ PagingStore newStore(SimpleString destinationName, QueueSettings queueSettings) throws Exception;
Executor getGlobalDepagerExecutor();
@@ -50,5 +53,12 @@
void setPostOffice(PostOffice office);
- List<SimpleString> getStoredDestinations() throws Exception;
+ List<PagingStore> reloadStores(HierarchicalRepository<QueueSettings> queueSettingsRepository) throws Exception;
+
+ /**
+ * @param storeName
+ * @return
+ */
+ SequentialFileFactory newFileFactory(SimpleString destinationName) throws Exception;
+
}
Modified: trunk/src/main/org/jboss/messaging/core/paging/impl/PagingManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/paging/impl/PagingManagerImpl.java 2009-01-06 15:48:57 UTC (rev 5581)
+++ trunk/src/main/org/jboss/messaging/core/paging/impl/PagingManagerImpl.java 2009-01-06 18:52:19 UTC (rev 5582)
@@ -83,15 +83,6 @@
private static final Logger log = Logger.getLogger(PagingManagerImpl.class);
- // This is just a debug tool method.
- // During debugs you could make log.trace as log.info, and change the
- // variable isTrace above
- private static void trace(final String message)
- {
- // log.trace(message);
- log.info(message);
- }
-
// Constructors
// --------------------------------------------------------------------------------------------------------------------
@@ -131,12 +122,14 @@
*/
public void reloadStores() throws Exception
{
- List<SimpleString> destinations = pagingStoreFactory.getStoredDestinations();
+ List<PagingStore> destinations = pagingStoreFactory.reloadStores(queueSettingsRepository);
- for (SimpleString dest : destinations)
+ for (PagingStore store: destinations)
{
- createPageStore(dest, false);
+ stores.put(store.getStoreName(), store);
+ store.start();
}
+
}
/**
@@ -149,7 +142,7 @@
if (store == null)
{
- store = newStore(storeName, createDir);
+ store = newStore(storeName);
PagingStore oldStore = stores.putIfAbsent(storeName, store);
@@ -334,9 +327,9 @@
// Private -------------------------------------------------------
- private PagingStore newStore(final SimpleString destinationName, final boolean createDir)
+ private PagingStore newStore(final SimpleString destinationName) throws Exception
{
- return pagingStoreFactory.newStore(destinationName, queueSettingsRepository.getMatch(destinationName.toString()), createDir);
+ return pagingStoreFactory.newStore(destinationName, queueSettingsRepository.getMatch(destinationName.toString()));
}
// Inner classes -------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/paging/impl/PagingStoreFactoryNIO.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/paging/impl/PagingStoreFactoryNIO.java 2009-01-06 15:48:57 UTC (rev 5581)
+++ trunk/src/main/org/jboss/messaging/core/paging/impl/PagingStoreFactoryNIO.java 2009-01-06 18:52:19 UTC (rev 5582)
@@ -22,7 +22,16 @@
package org.jboss.messaging.core.paging.impl;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -40,12 +49,12 @@
import org.jboss.messaging.core.paging.PagingStoreFactory;
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.settings.HierarchicalRepository;
import org.jboss.messaging.core.settings.impl.QueueSettings;
-import org.jboss.messaging.util.Base64;
import org.jboss.messaging.util.JBMThreadFactory;
import org.jboss.messaging.util.OrderedExecutorFactory;
import org.jboss.messaging.util.SimpleString;
+import org.jboss.messaging.util.UUIDGenerator;
/**
*
@@ -60,18 +69,20 @@
// Attributes ----------------------------------------------------
+ private final DecimalFormat format = new DecimalFormat("000000000");
+
private final String directory;
private final ExecutorService parentExecutor;
-
+
private final OrderedExecutorFactory executorFactory;
-
+
private final Executor globalDepagerExecutor;
private PagingManager pagingManager;
-
+
private StorageManager storageManager;
-
+
private PostOffice postOffice;
// Static --------------------------------------------------------
@@ -82,13 +93,15 @@
{
this.directory = directory;
- parentExecutor = new ThreadPoolExecutor(0, maxThreads,
- 60L, TimeUnit.SECONDS,
- new SynchronousQueue<Runnable>(),
- new JBMThreadFactory("JBM-depaging-threads"));
-
+ parentExecutor = new ThreadPoolExecutor(0,
+ maxThreads,
+ 60L,
+ TimeUnit.SECONDS,
+ new SynchronousQueue<Runnable>(),
+ new JBMThreadFactory("JBM-depaging-threads"));
+
executorFactory = new OrderedExecutorFactory(parentExecutor);
-
+
globalDepagerExecutor = executorFactory.getExecutor();
}
@@ -106,66 +119,122 @@
parentExecutor.awaitTermination(30, TimeUnit.SECONDS);
}
- public PagingStore newStore(final SimpleString destinationName, final QueueSettings settings, final boolean createDir)
- {
- final String destinationDirectory = directory + "/" + Base64.encodeBytes(destinationName.getData(), Base64.URL_SAFE);
-
+ public synchronized PagingStore newStore(final SimpleString destinationName, final QueueSettings settings) throws Exception
+ {
+
return new PagingStoreImpl(pagingManager,
storageManager,
postOffice,
- newFileFactory(destinationDirectory),
+ null,
+ this,
destinationName,
settings,
- executorFactory.getExecutor(),
- createDir);
+ executorFactory.getExecutor());
}
+
+ /**
+ * @param storeName
+ * @return
+ */
+ public synchronized SequentialFileFactory newFileFactory(SimpleString destinationName) throws Exception
+ {
+
+ String guid = UUIDGenerator.getInstance().generateStringUUID();
+
+ File fileWithID = new File(directory + File.separatorChar + guid + ".pg");
+
+ OutputStream dataOut = new FileOutputStream(fileWithID);
+
+ BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(dataOut));
+
+ writer.write(destinationName.toString());
+ writer.newLine();
+ writer.write(guid);
+ writer.newLine();
+
+ writer.close();
+
+ SequentialFileFactory factory = newFileFactory(guid);
+
+ factory.createDirs();
+
+ return factory;
+ }
public void setPagingManager(final PagingManager pagingManager)
{
this.pagingManager = pagingManager;
}
-
+
public void setStorageManager(final StorageManager storageManager)
{
- this.storageManager = storageManager;
+ this.storageManager = storageManager;
}
-
+
public void setPostOffice(final PostOffice postOffice)
{
this.postOffice = postOffice;
}
-
- public List<SimpleString> getStoredDestinations() throws Exception
+
+ public List<PagingStore> reloadStores(final HierarchicalRepository<QueueSettings> queueSettingsRepository) throws Exception
{
File pageDirectory = new File(directory);
-
- File[] files = pageDirectory.listFiles();
-
+
+
+ FilenameFilter fnf = new FilenameFilter()
+ {
+ public boolean accept(File file, String name)
+ {
+ return name.endsWith(".pg");
+ }
+ };
+
+ File[] files = pageDirectory.listFiles(fnf);
+
if (files == null)
{
- return Collections.<SimpleString>emptyList();
+ return Collections.<PagingStore> emptyList();
}
else
- {
- ArrayList<SimpleString> filesReturn = new ArrayList<SimpleString>(files.length);
+ {
+ ArrayList<PagingStore> storesReturn = new ArrayList<PagingStore>(files.length);
for (File file: files)
{
- if (file.isDirectory())
+
+ BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
+
+ String destination = reader.readLine();
+ String guid = reader.readLine();
+
+ reader.close();
+
+ if (destination == null || guid == null)
{
- try
- {
- filesReturn.add(new SimpleString(Base64.decode(file.getName(), Base64.URL_SAFE)));
- }
- catch (Exception e)
- {
- log.warn("Invalid encoding on directory " + file.getCanonicalPath(), e);
- }
+ log.warn("File " + file.toString() + " is missing properties");
+ continue;
}
+
+ SimpleString destinationName = new SimpleString(destination);
+
+ SequentialFileFactory factory = newFileFactory(guid);
+
+ QueueSettings settings = queueSettingsRepository.getMatch(destinationName.toString());
+
+ PagingStore store = new PagingStoreImpl(pagingManager,
+ storageManager,
+ postOffice,
+ factory,
+ this,
+ destinationName,
+ settings,
+ executorFactory.getExecutor());
+
+ storesReturn.add(store);
}
-
- return filesReturn;
+
+ return storesReturn;
}
}
@@ -173,9 +242,9 @@
// Protected -----------------------------------------------------
- protected SequentialFileFactory newFileFactory(final String destinationDirectory)
+ protected SequentialFileFactory newFileFactory(final String directoryName)
{
- return new NIOSequentialFileFactory(destinationDirectory);
+ return new NIOSequentialFileFactory(directory + File.separatorChar + directoryName);
}
// Private -------------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/paging/impl/PagingStoreImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/paging/impl/PagingStoreImpl.java 2009-01-06 15:48:57 UTC (rev 5581)
+++ trunk/src/main/org/jboss/messaging/core/paging/impl/PagingStoreImpl.java 2009-01-06 18:52:19 UTC (rev 5582)
@@ -43,6 +43,7 @@
import org.jboss.messaging.core.paging.PagedMessage;
import org.jboss.messaging.core.paging.PagingManager;
import org.jboss.messaging.core.paging.PagingStore;
+import org.jboss.messaging.core.paging.PagingStoreFactory;
import org.jboss.messaging.core.persistence.StorageManager;
import org.jboss.messaging.core.postoffice.PostOffice;
import org.jboss.messaging.core.server.ServerMessage;
@@ -76,8 +77,11 @@
private final SimpleString storeName;
- private final SequentialFileFactory fileFactory;
+ // The FileFactory is created lazily as soon as the first write is attempted
+ private volatile SequentialFileFactory fileFactory;
+ private final PagingStoreFactory storeFactory;
+
private final long maxSize;
private final long pageSize;
@@ -111,8 +115,6 @@
private final ReadWriteLock currentPageLock = new ReentrantReadWriteLock();
private volatile boolean running = false;
-
- private final boolean createDir;
// Static --------------------------------------------------------
@@ -135,10 +137,10 @@
final StorageManager storageManager,
final PostOffice postOffice,
final SequentialFileFactory fileFactory,
+ final PagingStoreFactory storeFactory,
final SimpleString storeName,
final QueueSettings queueSettings,
- final Executor executor,
- final boolean createDir)
+ final Executor executor)
{
if (pagingManager == null)
{
@@ -149,8 +151,6 @@
this.postOffice = postOffice;
- this.fileFactory = fileFactory;
-
this.storeName = storeName;
maxSize = queueSettings.getMaxSizeBytes();
@@ -169,8 +169,10 @@
this.executor = executor;
this.pagingManager = pagingManager;
-
- this.createDir = createDir;
+
+ this.fileFactory = fileFactory;
+
+ this.storeFactory = storeFactory;
}
// Public --------------------------------------------------------
@@ -319,7 +321,7 @@
}
}
- //TODO all of this can be simplified
+ // TODO all of this can be simplified
public boolean page(final PagedMessage message, final boolean sync, final boolean duplicateDetection) throws Exception
{
if (!running)
@@ -357,25 +359,26 @@
{
return false;
}
-
+
if (duplicateDetection)
{
- //We set the duplicate detection header to prevent the message being depaged more than once in case of failure during depage
-
+ // We set the duplicate detection header to prevent the message being depaged more than once in case of
+ // failure during depage
+
byte[] bytes = new byte[8];
-
+
ByteBuffer buff = ByteBuffer.wrap(bytes);
-
+
ServerMessage msg = message.getMessage(storageManager);
-
+
buff.putLong(msg.getMessageID());
-
+
SimpleString duplID = new SimpleString(bytes);
-
+
message.getMessage(storageManager).putStringProperty(MessageImpl.HDR_DUPLICATE_DETECTION_ID, duplID);
}
- int bytesToWrite = fileFactory.calculateBlockSize(message.getEncodeSize() + PageImpl.SIZE_RECORD);
+ int bytesToWrite = message.getEncodeSize() + PageImpl.SIZE_RECORD;
if (currentPageSize.addAndGet(bytesToWrite) > pageSize && currentPage.getNumberOfMessages() > 0)
{
@@ -399,10 +402,10 @@
try
{
if (currentPage != null)
- {
-
+ {
+
currentPage.write(message);
-
+
if (sync)
{
currentPage.sync();
@@ -450,7 +453,7 @@
}
public boolean startDepaging(final Executor executor)
- {
+ {
currentPageLock.readLock().lock();
try
{
@@ -517,7 +520,7 @@
}
public void start() throws Exception
- {
+ {
writeLock.lock();
try
@@ -536,48 +539,49 @@
{
currentPageLock.writeLock().lock();
- if (createDir)
- {
- fileFactory.createDirs();
- }
-
- firstPageId = Integer.MAX_VALUE;
- currentPageId = 0;
- currentPage = null;
-
try
{
- List<String> files = fileFactory.listFiles("page");
+ running = true;
+ firstPageId = Integer.MAX_VALUE;
- numberOfPages = files.size();
-
- for (String fileName : files)
+ // There are no files yet on this Storage. We will just return it empty
+ if (fileFactory != null)
{
- final int fileId = getPageIdFromFileName(fileName);
- if (fileId > currentPageId)
+ currentPageId = 0;
+ currentPage = null;
+
+ List<String> files = fileFactory.listFiles("page");
+
+ numberOfPages = files.size();
+
+ for (String fileName : files)
{
- currentPageId = fileId;
+ final int fileId = getPageIdFromFileName(fileName);
+
+ if (fileId > currentPageId)
+ {
+ currentPageId = fileId;
+ }
+
+ if (fileId < firstPageId)
+ {
+ firstPageId = fileId;
+ }
}
- if (fileId < firstPageId)
+ if (numberOfPages != 0)
{
- firstPageId = fileId;
+ startPaging();
}
}
-
- running = true;
-
- if (numberOfPages != 0)
- {
- startPaging();
- }
}
finally
{
currentPageLock.writeLock().unlock();
}
}
+
}
finally
{
@@ -651,12 +655,14 @@
try
{
+
if (numberOfPages == 0)
{
return null;
}
else
{
+
numberOfPages--;
final Page returnPage;
@@ -701,7 +707,6 @@
{
returnPage = createPage(firstPageId++);
}
-
return returnPage;
}
}
@@ -738,24 +743,23 @@
return;
}
-
// Depage has to be done atomically, in case of failure it should be
// back to where it was
-
+
Transaction depageTransaction = new TransactionImpl(storageManager);
-
+
depageTransaction.putProperty(TransactionPropertyIndexes.CONTAINS_PERSISTENT, true);
-
+
depageTransaction.putProperty(TransactionPropertyIndexes.IS_DEPAGE, Boolean.valueOf(true));
HashSet<PageTransactionInfo> pageTransactionsToUpdate = new HashSet<PageTransactionInfo>();
-
+
for (PagedMessage pagedMessage : pagedMessages)
{
ServerMessage message = null;
message = pagedMessage.getMessage(storageManager);
-
+
final long transactionIdDuringPaging = pagedMessage.getTransactionID();
if (transactionIdDuringPaging >= 0)
@@ -767,7 +771,9 @@
// section
if (pageTransactionInfo == null)
{
- log.warn("Transaction " + pagedMessage.getTransactionID() + " used during paging not found, ignoring message " + message);
+ log.warn("Transaction " + pagedMessage.getTransactionID() +
+ " used during paging not found, ignoring message " +
+ message);
continue;
}
@@ -789,7 +795,7 @@
pageTransactionsToUpdate.add(pageTransactionInfo);
}
}
-
+
postOffice.route(message, depageTransaction);
}
@@ -809,7 +815,7 @@
}
depageTransaction.commit();
-
+
trace("Depage committed");
}
@@ -844,7 +850,7 @@
{
final boolean pageFull = isFull(getPageSizeBytes());
final boolean globalFull = isGlobalFull(getPageSizeBytes());
- if (pageFull || globalFull)
+ if (pageFull || globalFull || !isPaging())
{
depaging.set(false);
if (!globalFull)
@@ -895,6 +901,11 @@
{
String fileName = createFileName(page);
+ if (fileFactory == null)
+ {
+ fileFactory = storeFactory.newFileFactory(this.getStoreName());
+ }
+
SequentialFile file = fileFactory.createSequentialFile(fileName, 1000);
file.open();
@@ -938,9 +949,9 @@
private void readPage() throws Exception
{
Page page = depage();
-
+
if (page == null)
- {
+ {
return;
}
@@ -951,6 +962,7 @@
onDepage(page.getPageId(), storeName, messages);
page.delete();
+
}
// Inner classes -------------------------------------------------
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java 2009-01-06 15:48:57 UTC (rev 5581)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/paging/PagingManagerIntegrationTest.java 2009-01-06 18:52:19 UTC (rev 5582)
@@ -32,6 +32,7 @@
import org.jboss.messaging.core.paging.impl.PagingManagerImpl;
import org.jboss.messaging.core.paging.impl.PagingStoreFactoryNIO;
import org.jboss.messaging.core.paging.impl.TestSupportPageStore;
+import org.jboss.messaging.core.persistence.impl.nullpm.NullStorageManager;
import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
import org.jboss.messaging.core.server.ServerMessage;
import org.jboss.messaging.core.server.impl.ServerMessageImpl;
@@ -62,11 +63,12 @@
public void testPagingManager() throws Exception
{
+
HierarchicalRepository<QueueSettings> queueSettings = new HierarchicalObjectRepository<QueueSettings>();
queueSettings.setDefault(new QueueSettings());
-
+
PagingManagerImpl managerImpl = new PagingManagerImpl(new PagingStoreFactoryNIO(getPageDir(), 10),
- null,
+ new NullStorageManager(),
queueSettings,
-1,
1024 * 1024,
@@ -187,7 +189,7 @@
super.tearDown();
// deleteDirectory(new File(journalDir));
}
-
+
// Private -------------------------------------------------------
private void recreateDirectory()
@@ -195,6 +197,10 @@
File fileJournalDir = new File(getJournalDir());
deleteDirectory(fileJournalDir);
fileJournalDir.mkdirs();
+
+ File pageDirDir = new File(getPageDir());
+ deleteDirectory(pageDirDir);
+ pageDirDir.mkdirs();
}
// Inner classes -------------------------------------------------
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreImplTest.java 2009-01-06 15:48:57 UTC (rev 5581)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreImplTest.java 2009-01-06 18:52:19 UTC (rev 5582)
@@ -26,10 +26,12 @@
import java.util.ArrayList;
import java.util.List;
+import org.easymock.classextension.EasyMock;
import org.jboss.messaging.core.journal.SequentialFileFactory;
import org.jboss.messaging.core.paging.Page;
import org.jboss.messaging.core.paging.PagedMessage;
import org.jboss.messaging.core.paging.PagingStore;
+import org.jboss.messaging.core.paging.PagingStoreFactory;
import org.jboss.messaging.core.paging.impl.PagedMessageImpl;
import org.jboss.messaging.core.paging.impl.PagingStoreImpl;
import org.jboss.messaging.core.paging.impl.TestSupportPageStore;
@@ -65,9 +67,10 @@
createStorageManagerMock(),
createPostOfficeMock(),
factory,
+ null,
destinationTestName,
new QueueSettings(),
- executor, true);
+ executor);
storeImpl.start();
@@ -83,14 +86,19 @@
public void testStore() throws Exception
{
SequentialFileFactory factory = new FakeSequentialFileFactory();
+
+ PagingStoreFactory storeFactory = EasyMock.createNiceMock(PagingStoreFactory.class);
+
+ EasyMock.replay(storeFactory);
PagingStore storeImpl = new PagingStoreImpl(createMockManager(),
createStorageManagerMock(),
createPostOfficeMock(),
factory,
+ storeFactory,
destinationTestName,
new QueueSettings(),
- executor, true);
+ executor);
storeImpl.start();
@@ -121,9 +129,10 @@
createStorageManagerMock(),
createPostOfficeMock(),
factory,
+ null,
destinationTestName,
new QueueSettings(),
- executor, true);
+ executor);
storeImpl.start();
@@ -135,13 +144,20 @@
{
SequentialFileFactory factory = new FakeSequentialFileFactory();
+ SimpleString destination = new SimpleString("test");
+
+ PagingStoreFactory storeFactory = EasyMock.createMock(PagingStoreFactory.class);
+
+ EasyMock.replay(storeFactory);
+
TestSupportPageStore storeImpl = new PagingStoreImpl(createMockManager(),
createStorageManagerMock(),
createPostOfficeMock(),
factory,
+ storeFactory,
destinationTestName,
new QueueSettings(),
- executor, true);
+ executor);
storeImpl.start();
@@ -151,8 +167,6 @@
List<ByteBuffer> buffers = new ArrayList<ByteBuffer>();
- SimpleString destination = new SimpleString("test");
-
for (int i = 0; i < 10; i++)
{
@@ -195,14 +209,22 @@
public void testDepageMultiplePages() throws Exception
{
SequentialFileFactory factory = new FakeSequentialFileFactory();
+ SimpleString destination = new SimpleString("test");
+
+ PagingStoreFactory storeFactory = EasyMock.createNiceMock(PagingStoreFactory.class);
+
+ EasyMock.expect(storeFactory.newFileFactory(destination)).andReturn(factory);
+
+ EasyMock.replay(storeFactory);
TestSupportPageStore storeImpl = new PagingStoreImpl(createMockManager(),
createStorageManagerMock(),
createPostOfficeMock(),
factory,
+ storeFactory,
destinationTestName,
new QueueSettings(),
- executor, true);
+ executor);
storeImpl.start();
@@ -214,8 +236,6 @@
List<ByteBuffer> buffers = new ArrayList<ByteBuffer>();
- SimpleString destination = new SimpleString("test");
-
for (int i = 0; i < 10; i++)
{
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreTestBase.java 2009-01-06 15:48:57 UTC (rev 5581)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/paging/impl/PagingStoreTestBase.java 2009-01-06 18:52:19 UTC (rev 5582)
@@ -39,6 +39,7 @@
import org.jboss.messaging.core.paging.Page;
import org.jboss.messaging.core.paging.PagedMessage;
import org.jboss.messaging.core.paging.PagingManager;
+import org.jboss.messaging.core.paging.PagingStoreFactory;
import org.jboss.messaging.core.paging.impl.PagedMessageImpl;
import org.jboss.messaging.core.paging.impl.PagingStoreImpl;
import org.jboss.messaging.core.paging.impl.TestSupportPageStore;
@@ -91,6 +92,10 @@
protected void testConcurrentPaging(final SequentialFileFactory factory, final int numberOfThreads) throws Exception,
InterruptedException
{
+
+ PagingStoreFactory storeFactory = EasyMock.createNiceMock(PagingStoreFactory.class);
+
+ EasyMock.replay(storeFactory);
final int MAX_SIZE = 1024 * 10;
@@ -111,9 +116,10 @@
createStorageManagerMock(),
createPostOfficeMock(),
factory,
+ storeFactory,
new SimpleString("test"),
settings,
- executor, true);
+ executor);
storeImpl.start();
@@ -266,9 +272,10 @@
createStorageManagerMock(),
createPostOfficeMock(),
factory,
+ storeFactory,
new SimpleString("test"),
settings,
- executor, true);
+ executor);
storeImpl2.start();
int numberOfPages = storeImpl2.getNumberOfPages();
More information about the jboss-cvs-commits
mailing list