Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java
 Mon Jul  1 09:56:29 2013
@@ -19,13 +19,21 @@ package org.apache.qpid.server.virtualho
  *
  */
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.ConfigurationException;
 import org.apache.qpid.server.configuration.VirtualHostConfiguration;
 import org.apache.qpid.server.model.adapter.VirtualHostAdapter;
+import org.apache.qpid.server.plugin.MessageStoreFactory;
 import org.apache.qpid.server.plugin.VirtualHostFactory;
 import org.apache.qpid.server.stats.StatisticsGatherer;
 import org.apache.qpid.server.store.MemoryMessageStore;
+import org.apache.qpid.server.store.MessageStoreConstants;
 import org.apache.qpid.server.store.MessageStoreCreator;
 
 public class StandardVirtualHostFactory implements VirtualHostFactory
@@ -43,9 +51,10 @@ public class StandardVirtualHostFactory 
     public VirtualHost createVirtualHost(VirtualHostRegistry 
virtualHostRegistry,
                                          StatisticsGatherer 
brokerStatisticsGatherer,
                                          
org.apache.qpid.server.security.SecurityManager parentSecurityManager,
-                                         VirtualHostConfiguration hostConfig) 
throws Exception
+                                         VirtualHostConfiguration hostConfig,
+                                         
org.apache.qpid.server.model.VirtualHost virtualHost) throws Exception
     {
-        return new StandardVirtualHost(virtualHostRegistry, 
brokerStatisticsGatherer, parentSecurityManager, hostConfig);
+        return new StandardVirtualHost(virtualHostRegistry, 
brokerStatisticsGatherer, parentSecurityManager, hostConfig, virtualHost);
     }
 
 
@@ -94,13 +103,26 @@ public class StandardVirtualHostFactory 
         convertedMap.put("store.type", 
virtualHostAdapter.getAttribute(org.apache.qpid.server.model.VirtualHost.STORE_TYPE));
         convertedMap.put("store.environment-path", 
virtualHostAdapter.getAttribute(org.apache.qpid.server.model.VirtualHost.STORE_PATH));
 
-        // TODO - this should all be inverted to populate vhost from xml and 
then pass model object to the store
+        return convertedMap;
+    }
+
+    @Override
+    public Map<String, Object> convertVirtualHostConfiguration(Configuration 
configuration)
+    {
+        Map<String,Object> convertedMap = new LinkedHashMap<String, Object>();
+        Configuration storeConfiguration = configuration.subset("store");
+        convertedMap.put(org.apache.qpid.server.model.VirtualHost.STORE_TYPE, 
storeConfiguration.getString("type"));
+        convertedMap.put(org.apache.qpid.server.model.VirtualHost.STORE_PATH, 
storeConfiguration.getString(MessageStoreConstants.ENVIRONMENT_PATH_PROPERTY));
 
-        
convertedMap.put("store.pool.type",virtualHostAdapter.getAttribute("connectionPool"));
-        
convertedMap.put("store.pool.minConnectionsPerPartition",virtualHostAdapter.getAttribute("minConnectionsPerPartition"));
-        
convertedMap.put("store.pool.maxConnectionsPerPartition",virtualHostAdapter.getAttribute("maxConnectionsPerPartition"));
-        
convertedMap.put("store.pool.partitionCount",virtualHostAdapter.getAttribute("partitionCount"));
+        convertedMap.put(MessageStoreConstants.OVERFULL_SIZE_ATTRIBUTE, 
storeConfiguration.getString(MessageStoreConstants.OVERFULL_SIZE_PROPERTY));
+        convertedMap.put(MessageStoreConstants.UNDERFULL_SIZE_ATTRIBUTE, 
storeConfiguration.getString(MessageStoreConstants.UNDERFULL_SIZE_PROPERTY));
+
+        for(MessageStoreFactory mf : new MessageStoreCreator().getFactories())
+        {
+            
convertedMap.putAll(mf.convertStoreConfiguration(storeConfiguration));
+        }
 
         return convertedMap;
+
     }
 }

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/DurableConfigurationStoreTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/DurableConfigurationStoreTest.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/DurableConfigurationStoreTest.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/DurableConfigurationStoreTest.java
 Mon Jul  1 09:56:29 2013
@@ -49,6 +49,7 @@ import org.apache.qpid.server.logging.ac
 import org.apache.qpid.server.logging.actors.TestLogActor;
 import org.apache.qpid.server.message.EnqueableMessage;
 import org.apache.qpid.server.model.UUIDGenerator;
+import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.MockStoredMessage;
 import 
org.apache.qpid.server.store.ConfigurationRecoveryHandler.BindingRecoveryHandler;
@@ -67,6 +68,7 @@ public class DurableConfigurationStoreTe
     private String _storeName;
     private MessageStore _messageStore;
     private Configuration _configuration;
+    private VirtualHost _virtualHost;
 
     private ConfigurationRecoveryHandler _recoveryHandler;
     private QueueRecoveryHandler _queueRecoveryHandler;
@@ -107,6 +109,7 @@ public class DurableConfigurationStoreTe
         _messageStoreRecoveryHandler = mock(MessageStoreRecoveryHandler.class);
         _queueEntryRecoveryHandler = 
mock(TransactionLogRecoveryHandler.QueueEntryRecoveryHandler.class);
         _dtxRecordRecoveryHandler = 
mock(TransactionLogRecoveryHandler.DtxRecordRecoveryHandler.class);
+        _virtualHost = mock(VirtualHost.class);
 
         
when(_messageStoreRecoveryHandler.begin()).thenReturn(_storedMessageRecoveryHandler);
         
when(_recoveryHandler.begin(isA(MessageStore.class))).thenReturn(_exchangeRecoveryHandler);
@@ -118,6 +121,7 @@ public class DurableConfigurationStoreTe
         when(_exchange.getId()).thenReturn(_exchangeId);
         
when(_configuration.getString(eq(MessageStoreConstants.ENVIRONMENT_PATH_PROPERTY),
 anyString())).thenReturn(
                 _storePath);
+        
when(_virtualHost.getAttribute(eq(VirtualHost.STORE_PATH))).thenReturn(_storePath);
 
         _bindingArgs = new FieldTable();
         AMQShortString argKey = AMQPFilterTypes.JMS_SELECTOR.getValue();
@@ -314,8 +318,8 @@ public class DurableConfigurationStoreTe
         _messageStore = createMessageStore();
         _configStore = createConfigStore();
 
-        _configStore.configureConfigStore(_storeName, _recoveryHandler, 
_configuration);
-        _messageStore.configureMessageStore(_storeName, 
_messageStoreRecoveryHandler, _logRecoveryHandler, _configuration);
+        _configStore.configureConfigStore(_storeName, _recoveryHandler, 
_virtualHost);
+        _messageStore.configureMessageStore(_storeName, 
_messageStoreRecoveryHandler, _logRecoveryHandler);
         _messageStore.activate();
     }
 

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreQuotaEventsTestBase.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreQuotaEventsTestBase.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreQuotaEventsTestBase.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreQuotaEventsTestBase.java
 Mon Jul  1 09:56:29 2013
@@ -26,7 +26,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.log4j.Logger;
 import org.apache.qpid.framing.AMQShortString;
 import org.apache.qpid.framing.BasicContentHeaderProperties;
@@ -37,9 +36,14 @@ import org.apache.qpid.framing.abstracti
 import org.apache.qpid.framing.abstraction.MessagePublishInfoImpl;
 import org.apache.qpid.server.message.EnqueableMessage;
 import org.apache.qpid.server.message.MessageMetaData;
+import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.test.utils.QpidTestCase;
 import org.apache.qpid.util.FileUtils;
 
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 public abstract class MessageStoreQuotaEventsTestBase extends QpidTestCase 
implements EventListener, TransactionLogResource
 {
     private static final Logger _logger = 
Logger.getLogger(MessageStoreQuotaEventsTestBase.class);
@@ -54,7 +58,7 @@ public abstract class MessageStoreQuotaE
 
     protected abstract MessageStore createStore() throws Exception;
 
-    protected abstract void applyStoreSpecificConfiguration(XMLConfiguration 
config);
+    protected abstract void applyStoreSpecificConfiguration(VirtualHost 
virtualHost);
 
     protected abstract int getNumberOfMessagesToFillStore();
 
@@ -66,12 +70,13 @@ public abstract class MessageStoreQuotaE
         _storeLocation = new File(new File(TMP_FOLDER), getTestName());
         FileUtils.delete(_storeLocation, true);
 
-        XMLConfiguration config = new XMLConfiguration();
-        config.addProperty("environment-path", 
_storeLocation.getAbsolutePath());
-        applyStoreSpecificConfiguration(config);
+
+        VirtualHost vhost = mock(VirtualHost.class);
+        
when(vhost.getAttribute(eq(VirtualHost.STORE_PATH))).thenReturn(_storeLocation.getAbsolutePath());
+        applyStoreSpecificConfiguration(vhost);
 
         _store = createStore();
-        ((DurableConfigurationStore)_store).configureConfigStore("test", null, 
config);
+        ((DurableConfigurationStore)_store).configureConfigStore("test", null, 
vhost);
 
         _transactionResource = UUID.randomUUID();
         _events = new ArrayList<Event>();

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java
 Mon Jul  1 09:56:29 2013
@@ -62,6 +62,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 /**
  * This tests the MessageStores by using the available interfaces.
  *
@@ -98,26 +102,42 @@ public class MessageStoreTest extends Qp
     private PropertiesConfiguration _config;
 
     private VirtualHost _virtualHost;
+    private org.apache.qpid.server.model.VirtualHost _virtualHostModel;
     private Broker _broker;
+    private String _storePath;
 
     public void setUp() throws Exception
     {
         super.setUp();
         BrokerTestHelper.setUp();
 
-        String storePath = System.getProperty("QPID_WORK") + File.separator + 
getName();
+        _storePath = System.getProperty("QPID_WORK") + File.separator + 
getName();
 
         _config = new PropertiesConfiguration();
         _config.addProperty("store.class", 
getTestProfileMessageStoreClassName());
-        _config.addProperty("store.environment-path", storePath);
+        _config.addProperty("store.environment-path", _storePath);
+        _virtualHostModel = 
mock(org.apache.qpid.server.model.VirtualHost.class);
+        
when(_virtualHostModel.getAttribute(eq(org.apache.qpid.server.model.VirtualHost.STORE_PATH))).thenReturn(_storePath);
+
+
 
-        cleanup(new File(storePath));
+        cleanup(new File(_storePath));
 
         _broker = BrokerTestHelper.createBrokerMock();
 
         reloadVirtualHost();
     }
 
+    protected String getStorePath()
+    {
+        return _storePath;
+    }
+
+    protected org.apache.qpid.server.model.VirtualHost getVirtualHostModel()
+    {
+        return _virtualHostModel;
+    }
+
     @Override
     public void tearDown() throws Exception
     {
@@ -164,7 +184,7 @@ public class MessageStoreTest extends Qp
 
         try
         {
-            _virtualHost = BrokerTestHelper.createVirtualHost(new 
VirtualHostConfiguration(getClass().getName(), _config, _broker));
+            _virtualHost = BrokerTestHelper.createVirtualHost(new 
VirtualHostConfiguration(getClass().getName(), _config, 
_broker),null,getVirtualHostModel());
         }
         catch (Exception e)
         {

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTestCase.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTestCase.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTestCase.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTestCase.java
 Mon Jul  1 09:56:29 2013
@@ -25,8 +25,7 @@ import static org.mockito.Matchers.isA;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.qpid.server.model.VirtualHost;
 import 
org.apache.qpid.server.store.ConfigurationRecoveryHandler.BindingRecoveryHandler;
 import 
org.apache.qpid.server.store.ConfigurationRecoveryHandler.ExchangeRecoveryHandler;
 import 
org.apache.qpid.server.store.ConfigurationRecoveryHandler.QueueRecoveryHandler;
@@ -44,9 +43,9 @@ public abstract class MessageStoreTestCa
     private TransactionLogRecoveryHandler _logRecoveryHandler;
     private TransactionLogRecoveryHandler.QueueEntryRecoveryHandler 
_queueEntryRecoveryHandler;
     private TransactionLogRecoveryHandler.DtxRecordRecoveryHandler 
_dtxRecordRecoveryHandler;
+    private VirtualHost _virtualHost;
 
     private MessageStore _store;
-    private Configuration _storeConfiguration;
 
     public void setUp() throws Exception
     {
@@ -61,6 +60,7 @@ public abstract class MessageStoreTestCa
         _messageStoreRecoveryHandler = mock(MessageStoreRecoveryHandler.class);
         _queueEntryRecoveryHandler = 
mock(TransactionLogRecoveryHandler.QueueEntryRecoveryHandler.class);
         _dtxRecordRecoveryHandler = 
mock(TransactionLogRecoveryHandler.DtxRecordRecoveryHandler.class);
+        _virtualHost = mock(VirtualHost.class);
 
         
when(_messageStoreRecoveryHandler.begin()).thenReturn(_storedMessageRecoveryHandler);
         
when(_recoveryHandler.begin(isA(MessageStore.class))).thenReturn(_exchangeRecoveryHandler);
@@ -69,15 +69,15 @@ public abstract class MessageStoreTestCa
         
when(_logRecoveryHandler.begin(any(MessageStore.class))).thenReturn(_queueEntryRecoveryHandler);
         
when(_queueEntryRecoveryHandler.completeQueueEntryRecovery()).thenReturn(_dtxRecordRecoveryHandler);
 
-        _storeConfiguration = new PropertiesConfiguration();
-        setUpStoreConfiguration(_storeConfiguration);
+        setUpStoreConfiguration(_virtualHost);
 
         _store = createMessageStore();
-        
((DurableConfigurationStore)_store).configureConfigStore(getTestName(), 
_recoveryHandler, _storeConfiguration);
-        _store.configureMessageStore(getTestName(), 
_messageStoreRecoveryHandler, _logRecoveryHandler, _storeConfiguration);
+        
((DurableConfigurationStore)_store).configureConfigStore(getTestName(), 
_recoveryHandler, _virtualHost);
+
+        _store.configureMessageStore(getTestName(), 
_messageStoreRecoveryHandler, _logRecoveryHandler);
     }
 
-    protected abstract void setUpStoreConfiguration(Configuration 
storeConfiguration) throws Exception;
+    protected abstract void setUpStoreConfiguration(VirtualHost virtualHost) 
throws Exception;
 
     protected abstract MessageStore createMessageStore();
 
@@ -86,8 +86,4 @@ public abstract class MessageStoreTestCa
         return _store;
     }
 
-    public Configuration getStoreConfiguration()
-    {
-        return _storeConfiguration;
-    }
 }

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreQuotaEventsTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreQuotaEventsTest.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreQuotaEventsTest.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreQuotaEventsTest.java
 Mon Jul  1 09:56:29 2013
@@ -20,11 +20,15 @@
  */
 package org.apache.qpid.server.store.derby;
 
-import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.log4j.Logger;
+import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.store.MessageStore;
+import org.apache.qpid.server.store.MessageStoreConstants;
 import org.apache.qpid.server.store.MessageStoreQuotaEventsTestBase;
 
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.when;
+
 public class DerbyMessageStoreQuotaEventsTest extends 
MessageStoreQuotaEventsTestBase
 {
     private static final Logger _logger = 
Logger.getLogger(DerbyMessageStoreQuotaEventsTest.class);
@@ -46,12 +50,12 @@ public class DerbyMessageStoreQuotaEvent
     }
 
     @Override
-    protected void applyStoreSpecificConfiguration(XMLConfiguration config)
+    protected void applyStoreSpecificConfiguration(VirtualHost vhost)
     {
         _logger.debug("Applying store specific config. overfull-sze=" + 
OVERFULL_SIZE + ", underfull-size=" + UNDERFULL_SIZE);
 
-        config.addProperty("overfull-size", OVERFULL_SIZE);
-        config.addProperty("underfull-size", UNDERFULL_SIZE);
+        
when(vhost.getAttribute(eq(MessageStoreConstants.OVERFULL_SIZE_ATTRIBUTE))).thenReturn(OVERFULL_SIZE);
+        
when(vhost.getAttribute(eq(MessageStoreConstants.UNDERFULL_SIZE_ATTRIBUTE))).thenReturn(UNDERFULL_SIZE);
     }
 
     @Override

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreTest.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreTest.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreTest.java
 Mon Jul  1 09:56:29 2013
@@ -22,11 +22,14 @@ package org.apache.qpid.server.store.der
 
 import java.io.File;
 
-import org.apache.commons.configuration.Configuration;
+import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.store.MessageStoreTestCase;
 import org.apache.qpid.util.FileUtils;
 
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.when;
+
 public class DerbyMessageStoreTest extends MessageStoreTestCase
 {
     private String _storeLocation;
@@ -57,10 +60,10 @@ public class DerbyMessageStoreTest exten
     }
 
     @Override
-    protected void setUpStoreConfiguration(Configuration storeConfiguration) 
throws Exception
+    protected void setUpStoreConfiguration(VirtualHost virtualHost) throws 
Exception
     {
         _storeLocation = TMP_FOLDER + File.separator + getTestName();
-        storeConfiguration.setProperty("environment-path", _storeLocation);
+        
when(virtualHost.getAttribute(eq(VirtualHost.STORE_PATH))).thenReturn(_storeLocation);
         deleteStoreIfExists();
     }
 

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java
 Mon Jul  1 09:56:29 2013
@@ -28,11 +28,14 @@ import java.sql.SQLException;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.commons.configuration.Configuration;
+import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.store.MessageStoreTestCase;
 import org.apache.qpid.server.store.derby.DerbyMessageStore;
 
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.when;
+
 public class JDBCMessageStoreTest extends MessageStoreTestCase
 {
     private String _connectionURL;
@@ -61,10 +64,11 @@ public class JDBCMessageStoreTest extend
     }
 
     @Override
-    protected void setUpStoreConfiguration(Configuration storeConfiguration) 
throws Exception
+    protected void setUpStoreConfiguration(VirtualHost virtualHost) throws 
Exception
     {
         _connectionURL = "jdbc:derby:memory:/" + getTestName() + 
";create=true";
-        storeConfiguration.addProperty("connectionUrl", _connectionURL);
+
+        
when(virtualHost.getAttribute(eq("connectionURL"))).thenReturn(_connectionURL);
     }
 
     @Override

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java
 Mon Jul  1 09:56:29 2013
@@ -58,7 +58,6 @@ import org.apache.qpid.server.store.Test
 import org.apache.qpid.server.virtualhost.StandardVirtualHostFactory;
 import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.server.plugin.VirtualHostFactory;
-import org.apache.qpid.server.virtualhost.VirtualHostFactoryRegistry;
 import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
 
 public class BrokerTestHelper
@@ -98,6 +97,12 @@ public class BrokerTestHelper
     public static VirtualHost createVirtualHost(VirtualHostConfiguration 
virtualHostConfiguration, VirtualHostRegistry virtualHostRegistry)
             throws Exception
     {
+        return createVirtualHost(virtualHostConfiguration, 
virtualHostRegistry, mock(org.apache.qpid.server.model.VirtualHost.class));
+    }
+
+    public static VirtualHost createVirtualHost(VirtualHostConfiguration 
virtualHostConfiguration, VirtualHostRegistry virtualHostRegistry, 
org.apache.qpid.server.model.VirtualHost modelVHost)
+            throws Exception
+    {
         StatisticsGatherer statisticsGatherer = mock(StatisticsGatherer.class);
         final VirtualHostFactory factory =
                         virtualHostConfiguration == null ? new 
StandardVirtualHostFactory()
@@ -105,18 +110,18 @@ public class BrokerTestHelper
         VirtualHost host = factory.createVirtualHost(virtualHostRegistry,
                 statisticsGatherer,
                 new SecurityManager(mock(Broker.class), false),
-                virtualHostConfiguration);
-        virtualHostRegistry.registerVirtualHost(host);
+                virtualHostConfiguration,
+                modelVHost);
+        if(virtualHostRegistry != null)
+        {
+            virtualHostRegistry.registerVirtualHost(host);
+        }
         return host;
     }
 
     public static VirtualHost createVirtualHost(VirtualHostConfiguration 
virtualHostConfiguration) throws Exception
     {
-        final VirtualHostFactory factory =
-                virtualHostConfiguration == null ? new 
StandardVirtualHostFactory()
-                                                 : 
VirtualHostFactory.FACTORIES.get(virtualHostConfiguration.getType());
-
-        return factory.createVirtualHost(null, mock(StatisticsGatherer.class), 
new SecurityManager(mock(Broker.class), false), virtualHostConfiguration);
+        return createVirtualHost(virtualHostConfiguration, null);
     }
 
     public static VirtualHost createVirtualHost(String name, 
VirtualHostRegistry virtualHostRegistry) throws Exception

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/StandardVirtualHostTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/StandardVirtualHostTest.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/StandardVirtualHostTest.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/StandardVirtualHostTest.java
 Mon Jul  1 09:56:29 2013
@@ -264,7 +264,8 @@ public class StandardVirtualHostTest ext
         _virtualHostRegistry = broker.getVirtualHostRegistry();
 
         VirtualHostConfiguration configuration = new  
VirtualHostConfiguration(vhostName, config, broker);
-        VirtualHost host = new 
StandardVirtualHostFactory().createVirtualHost(_virtualHostRegistry, 
mock(StatisticsGatherer.class), new SecurityManager(mock(Broker.class), false), 
configuration);
+        VirtualHost host = new 
StandardVirtualHostFactory().createVirtualHost(_virtualHostRegistry, 
mock(StatisticsGatherer.class), new SecurityManager(mock(Broker.class), false), 
configuration,
+                mock(org.apache.qpid.server.model.VirtualHost.class));
         _virtualHostRegistry.registerVirtualHost(host);
 
         return host;
@@ -364,7 +365,8 @@ public class StandardVirtualHostTest ext
         Configuration config = new PropertiesConfiguration();
         config.setProperty("store.type", MemoryMessageStore.TYPE);
         VirtualHostConfiguration configuration = new  
VirtualHostConfiguration(virtualHostName, config, broker);
-        VirtualHost host = new 
StandardVirtualHostFactory().createVirtualHost(_virtualHostRegistry, 
mock(StatisticsGatherer.class), new SecurityManager(mock(Broker.class), false), 
configuration);
+        VirtualHost host = new 
StandardVirtualHostFactory().createVirtualHost(_virtualHostRegistry, 
mock(StatisticsGatherer.class), new SecurityManager(mock(Broker.class), false), 
configuration,
+                mock(org.apache.qpid.server.model.VirtualHost.class));
         _virtualHostRegistry.registerVirtualHost(host);
         return host;
     }

Modified: 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/QuotaMessageStore.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/QuotaMessageStore.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/QuotaMessageStore.java
 (original)
+++ 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/QuotaMessageStore.java
 Mon Jul  1 09:56:29 2013
@@ -23,10 +23,10 @@ package org.apache.qpid.server.store;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 
-import org.apache.commons.configuration.Configuration;
 import org.apache.qpid.AMQStoreException;
 import org.apache.qpid.server.message.EnqueableMessage;
 import org.apache.qpid.server.message.MessageContentSource;
+import org.apache.qpid.server.model.VirtualHost;
 
 public class QuotaMessageStore extends NullMessageStore
 {
@@ -47,12 +47,27 @@ public class QuotaMessageStore extends N
     }
 
     @Override
-    public void configureConfigStore(String name, ConfigurationRecoveryHandler 
recoveryHandler, Configuration config)
+    public void configureConfigStore(String name,
+                                     ConfigurationRecoveryHandler 
recoveryHandler,
+                                     VirtualHost virtualHost)
             throws Exception
     {
-        _persistentSizeHighThreshold = 
config.getLong(MessageStoreConstants.OVERFULL_SIZE_PROPERTY, Long.MAX_VALUE);
-        _persistentSizeLowThreshold = 
config.getLong(MessageStoreConstants.UNDERFULL_SIZE_PROPERTY,
-                _persistentSizeHighThreshold);
+        Object overfullAttr = 
virtualHost.getAttribute(MessageStoreConstants.OVERFULL_SIZE_ATTRIBUTE);
+        _persistentSizeHighThreshold = overfullAttr == null
+                                       ? Long.MAX_VALUE
+                                       : overfullAttr instanceof Number
+                                         ? ((Number)overfullAttr).longValue()
+                                         : 
Long.parseLong(overfullAttr.toString());
+
+        Object underfullAttr = 
virtualHost.getAttribute(MessageStoreConstants.UNDERFULL_SIZE_ATTRIBUTE);
+
+        _persistentSizeLowThreshold =  overfullAttr == null
+                                       ? _persistentSizeHighThreshold
+                                       : underfullAttr instanceof Number
+                                         ? ((Number)underfullAttr).longValue()
+                                         : 
Long.parseLong(underfullAttr.toString());
+
+
         if (_persistentSizeLowThreshold > _persistentSizeHighThreshold || 
_persistentSizeLowThreshold < 0l)
         {
             _persistentSizeLowThreshold = _persistentSizeHighThreshold;
@@ -62,7 +77,7 @@ public class QuotaMessageStore extends N
 
     @Override
     public void configureMessageStore(String name, MessageStoreRecoveryHandler 
recoveryHandler,
-            TransactionLogRecoveryHandler tlogRecoveryHandler, Configuration 
config) throws Exception
+                                      TransactionLogRecoveryHandler 
tlogRecoveryHandler) throws Exception
     {
         _stateManager.attainState(State.INITIALISED);
     }

Modified: 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStore.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStore.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStore.java
 (original)
+++ 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStore.java
 Mon Jul  1 09:56:29 2013
@@ -20,7 +20,8 @@
  */
 package org.apache.qpid.server.store;
 
-import org.apache.commons.configuration.Configuration;
+import java.util.Collections;
+import java.util.Map;
 import org.apache.log4j.Logger;
 
 import org.apache.qpid.AMQStoreException;
@@ -29,11 +30,11 @@ import org.apache.qpid.server.binding.Bi
 import org.apache.qpid.server.exchange.Exchange;
 import org.apache.qpid.server.message.EnqueableMessage;
 import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.queue.AMQQueue;
 
 import java.nio.ByteBuffer;
 import java.util.HashMap;
-import java.util.Iterator;
 
 public class SlowMessageStore implements MessageStore, 
DurableConfigurationStore
 {
@@ -51,19 +52,22 @@ public class SlowMessageStore implements
     // ***** MessageStore Interface.
 
     public void configureConfigStore(String name,
-                          ConfigurationRecoveryHandler recoveryHandler,
-                          Configuration config) throws Exception
+                                     ConfigurationRecoveryHandler 
recoveryHandler,
+                                     VirtualHost virtualHost) throws Exception
     {
         _logger.info("Starting SlowMessageStore on Virtualhost:" + name);
-        Configuration delays = config.subset(DELAYS);
 
+        Object delaysAttr = virtualHost.getAttribute("slowMessageStoreDelays");
+
+        Map delays = (delaysAttr instanceof Map) ? (Map) delaysAttr : 
Collections.emptyMap();
         configureDelays(delays);
 
-        String messageStoreClass = config.getString("realStore");
+        final Object realStoreAttr = virtualHost.getAttribute("realStore");
+        String messageStoreClass = realStoreAttr == null ? null : 
realStoreAttr.toString();
 
         if (delays.containsKey(DEFAULT_DELAY))
         {
-            _defaultDelay = delays.getLong(DEFAULT_DELAY);
+            _defaultDelay = 
Long.parseLong(String.valueOf(delays.get(DEFAULT_DELAY)));
         }
 
         if (messageStoreClass != null)
@@ -83,25 +87,23 @@ public class SlowMessageStore implements
                 _durableConfigurationStore = (DurableConfigurationStore)o;
             }
         }
-        _durableConfigurationStore.configureConfigStore(name, recoveryHandler, 
config);
+        _durableConfigurationStore.configureConfigStore(name, recoveryHandler, 
virtualHost);
 
     }
 
-    private void configureDelays(Configuration config)
+    private void configureDelays(Map<Object, Object> config)
     {
-        @SuppressWarnings("unchecked")
-        Iterator<String> delays = config.getKeys();
 
-        while (delays.hasNext())
+        for(Map.Entry<Object, Object> entry : config.entrySet())
         {
-            String key = (String) delays.next();
-            if (key.endsWith(PRE))
+            String key = String.valueOf(entry.getKey());
+            if (key.startsWith(PRE))
             {
-                _preDelays.put(key.substring(0, key.length() - PRE.length() - 
1), config.getLong(key));
+                _preDelays.put(key.substring(PRE.length()), 
Long.parseLong(String.valueOf(entry.getValue())));
             }
-            else if (key.endsWith(POST))
+            else if (key.startsWith(POST))
             {
-                _postDelays.put(key.substring(0, key.length() - POST.length() 
- 1), config.getLong(key));
+                _postDelays.put(key.substring(POST.length()), 
Long.parseLong(String.valueOf(entry.getValue())));
             }
         }
     }
@@ -156,10 +158,9 @@ public class SlowMessageStore implements
 
     public void configureMessageStore(String name,
                                       MessageStoreRecoveryHandler 
messageRecoveryHandler,
-                                      TransactionLogRecoveryHandler 
tlogRecoveryHandler,
-                                      Configuration config) throws Exception
+                                      TransactionLogRecoveryHandler 
tlogRecoveryHandler) throws Exception
     {
-        _realStore.configureMessageStore(name, messageRecoveryHandler, 
tlogRecoveryHandler, config);
+        _realStore.configureMessageStore(name, messageRecoveryHandler, 
tlogRecoveryHandler);
     }
 
     public void close() throws Exception

Added: 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStoreFactory.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStoreFactory.java?rev=1498345&view=auto
==============================================================================
--- 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStoreFactory.java
 (added)
+++ 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStoreFactory.java
 Mon Jul  1 09:56:29 2013
@@ -0,0 +1,78 @@
+package org.apache.qpid.server.store;/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import org.apache.commons.configuration.Configuration;
+import org.apache.qpid.server.plugin.MessageStoreFactory;
+
+public class SlowMessageStoreFactory implements MessageStoreFactory
+{
+    @Override
+    public String getType()
+    {
+        return "SLOW";
+    }
+
+    @Override
+    public MessageStore createMessageStore()
+    {
+        return new SlowMessageStore();
+    }
+
+    @Override
+    public Map<String, Object> convertStoreConfiguration(Configuration 
storeConfiguration)
+    {
+        Map<String, Object> convertedMap = new HashMap<String, Object>();
+        Configuration delaysConfig = storeConfiguration.subset("delays");
+
+        @SuppressWarnings("unchecked")
+        Iterator<String> delays = delaysConfig.getKeys();
+
+        Map<String,Long> delaysMap = new HashMap<String, Long>();
+
+        while (delays.hasNext())
+        {
+            String key = delays.next();
+
+            if (key.endsWith("pre"))
+            {
+                delaysMap.put("pre"+key.substring(0, key.length() - 4), 
delaysConfig.getLong(key));
+            }
+            else if (key.endsWith("post"))
+            {
+                delaysMap.put("post"+key.substring(0, key.length() - 5), 
delaysConfig.getLong(key));
+            }
+        }
+
+        if(!delaysMap.isEmpty())
+        {
+            convertedMap.put("slowMessageStoreDelays",delaysMap);
+        }
+
+
+        convertedMap.put("realStore", 
storeConfiguration.getString("realStore", null));
+
+
+        return convertedMap;
+    }
+}

Modified: 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java?rev=1498345&r1=1498344&r2=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java
 (original)
+++ 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java
 Mon Jul  1 09:56:29 2013
@@ -55,10 +55,10 @@ public class SyncWaitDelayTest extends Q
     public void setUp() throws Exception
     {
 
-        setVirtualHostConfigurationProperty("virtualhosts.virtualhost." + 
VIRTUALHOST+".type",
-                StandardVirtualHostFactory.TYPE);
-        setVirtualHostConfigurationProperty("virtualhosts.virtualhost." + 
VIRTUALHOST+".store.class", "org.apache.qpid.server.store.SlowMessageStore");
-        setVirtualHostConfigurationProperty("virtualhosts.virtualhost." + 
VIRTUALHOST+".store.delays.commitTran.post", String.valueOf(POST_COMMIT_DELAY));
+        final String prefix = "virtualhosts.virtualhost." + VIRTUALHOST;
+        setVirtualHostConfigurationProperty(prefix + ".type", 
StandardVirtualHostFactory.TYPE);
+        setVirtualHostConfigurationProperty(prefix + ".store.class", 
"org.apache.qpid.server.store.SlowMessageStore");
+        setVirtualHostConfigurationProperty(prefix + 
".store.delays.commitTran.post", String.valueOf(POST_COMMIT_DELAY));
 
         super.setUp();
 

Copied: 
qpid/trunk/qpid/java/systests/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.MessageStoreFactory
 (from r1497335, 
qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.MessageStoreFactory)
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.MessageStoreFactory?p2=qpid/trunk/qpid/java/systests/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.MessageStoreFactory&p1=qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.MessageStoreFactory&r1=1497335&r2=1498345&rev=1498345&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.MessageStoreFactory
 (original)
+++ 
qpid/trunk/qpid/java/systests/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.MessageStoreFactory
 Mon Jul  1 09:56:29 2013
@@ -16,6 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-org.apache.qpid.server.store.derby.DerbyMessageStoreFactory
-org.apache.qpid.server.store.MemoryMessageStoreFactory
-org.apache.qpid.server.store.jdbc.JDBCMessageStoreFactory
+org.apache.qpid.server.store.SlowMessageStoreFactory



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to