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