You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2013/07/01 11:56:30 UTC

svn commit: r1498345 [2/2] - in /qpid/trunk/qpid/java: bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/ bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/ broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/serve...

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: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org