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 2016/11/04 11:18:08 UTC

svn commit: r1768014 [1/3] - in /qpid/java/trunk: bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/ bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/ broker-core/src/main/java/org/apache/qpid/server/exchange/...

Author: rgodfrey
Date: Fri Nov  4 11:18:07 2016
New Revision: 1768014

URL: http://svn.apache.org/viewvc?rev=1768014&view=rev
Log:
QPID-7496 : Introduce QueueManagingVirtualHost interface

Added:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/QueueManagingVirtualHost.java   (with props)
Modified:
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHost.java
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHost.java
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/DefaultDestination.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/CopyMessagesTransaction.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/DeleteMessagesTransaction.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/LastValueQueueImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/MoveMessagesTransaction.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueueImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryTransaction.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueueImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/StandardQueueImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecoverer.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/MessageStoreRecoverer.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/ProvidedStoreVirtualHost.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecoverer.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/LastValueQueueListTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueMessageRecoveryTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecovererTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecovererTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostQueueCreationTest.java
    qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHost.java
    qpid/java/trunk/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java
    qpid/java/trunk/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/VirtualHostLoggerTest.java
    qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
    qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/queue/NodeAutoCreationPolicyTest.java
    qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java
    qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java Fri Nov  4 11:18:07 2016
@@ -19,15 +19,12 @@
 
 package org.apache.qpid.server.virtualhost.berkeleydb;
 
-import java.security.AccessControlContext;
 import java.security.Principal;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.ScheduledFuture;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
@@ -39,23 +36,17 @@ import org.apache.qpid.server.model.Brok
 import org.apache.qpid.server.model.BrokerModel;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Connection;
-import org.apache.qpid.server.model.Content;
-import org.apache.qpid.server.model.ManageableMessage;
 import org.apache.qpid.server.model.ManagedAttributeField;
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
-import org.apache.qpid.server.model.Queue;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.VirtualHostNode;
 import org.apache.qpid.server.model.port.AmqpPort;
 import org.apache.qpid.server.model.preferences.UserPreferences;
 import org.apache.qpid.server.protocol.LinkRegistry;
-import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.transport.AMQPConnection;
 import org.apache.qpid.server.txn.DtxRegistry;
-import org.apache.qpid.server.virtualhost.HouseKeepingTask;
-import org.apache.qpid.server.virtualhost.NodeAutoCreationPolicy;
 import org.apache.qpid.server.virtualhost.VirtualHostPrincipal;
 
 /**
@@ -69,43 +60,8 @@ public class BDBHAReplicaVirtualHostImpl
     private final VirtualHostPrincipal _principal;
 
     @ManagedAttributeField
-    private boolean _queue_deadLetterQueueEnabled;
-
-    @ManagedAttributeField
-    private long _housekeepingCheckPeriod;
-
-    @ManagedAttributeField
-    private long _storeTransactionIdleTimeoutClose;
-
-    @ManagedAttributeField
-    private long _storeTransactionIdleTimeoutWarn;
-
-    @ManagedAttributeField
-    private long _storeTransactionOpenTimeoutClose;
-
-    @ManagedAttributeField
-    private long _storeTransactionOpenTimeoutWarn;
-    @ManagedAttributeField
-    private int _housekeepingThreadCount;
-
-    @ManagedAttributeField
-    private int _connectionThreadPoolSize;
-
-    @ManagedAttributeField
-    private int _numberOfSelectors;
-
-    @ManagedAttributeField
-    private List<String> _enabledConnectionValidators;
-
-    @ManagedAttributeField
-    private List<String> _disabledConnectionValidators;
-
-    @ManagedAttributeField
     private List<String> _globalAddressDomains;
 
-    @ManagedAttributeField
-    private List<NodeAutoCreationPolicy> _nodeAutoCreationPolicies;
-
     @ManagedObjectFactoryConstructor
     public BDBHAReplicaVirtualHostImpl(final Map<String, Object> attributes, VirtualHostNode<?> virtualHostNode)
     {
@@ -137,12 +93,6 @@ public class BDBHAReplicaVirtualHostImpl
     }
 
     @Override
-    public void executeTask(final String name, Runnable task, AccessControlContext context)
-    {
-        throwUnsupportedForReplica();
-    }
-
-    @Override
     public Broker<?> getBroker()
     {
         return _broker;
@@ -164,144 +114,17 @@ public class BDBHAReplicaVirtualHostImpl
     }
 
     @Override
-    public <T extends ConfiguredObject<?>> T getAttainedChildFromAddress(final Class<T> childClass,
-                                                                         final String address)
-    {
-        return null;
-    }
-
-    @Override
-    public void executeTransaction(final TransactionalOperation op)
-    {
-        throwUnsupportedForReplica();
-    }
-
-    @Override
     public String getRedirectHost(final AmqpPort<?> port)
     {
         return null;
     }
 
     @Override
-    public boolean isQueue_deadLetterQueueEnabled()
-    {
-        return false;
-    }
-
-    @Override
-    public long getHousekeepingCheckPeriod()
-    {
-        return 0;
-    }
-
-    @Override
-    public long getStoreTransactionIdleTimeoutClose()
-    {
-        return 0;
-    }
-
-    @Override
-    public long getStoreTransactionIdleTimeoutWarn()
-    {
-        return 0;
-    }
-
-    @Override
-    public long getStoreTransactionOpenTimeoutClose()
-    {
-        return 0;
-    }
-
-    @Override
-    public long getStoreTransactionOpenTimeoutWarn()
-    {
-        return 0;
-    }
-
-    @Override
-    public int getHousekeepingThreadCount()
-    {
-        return 0;
-    }
-
-    @Override
-    public List<NodeAutoCreationPolicy> getNodeAutoCreationPolicies()
-    {
-        return Collections.emptyList();
-    }
-
-    @Override
-    public int getConnectionThreadPoolSize()
-    {
-        return 0;
-    }
-
-    @Override
-    public int getNumberOfSelectors()
-    {
-        return 0;
-    }
-
-    @Override
-    public long getQueueCount()
-    {
-        return 0;
-    }
-
-    @Override
-    public long getExchangeCount()
-    {
-        return 0;
-    }
-
-    @Override
-    public long getConnectionCount()
-    {
-        return 0;
-    }
-
-    @Override
-    public long getBytesIn()
-    {
-        return 0;
-    }
-
-    @Override
-    public long getBytesOut()
-    {
-        return 0;
-    }
-
-    @Override
-    public long getMessagesIn()
-    {
-        return 0;
-    }
-
-    @Override
-    public long getMessagesOut()
-    {
-        return 0;
-    }
-
-    @Override
     public Collection<? extends Connection<?>> getConnections()
     {
         return Collections.emptyList();
     }
 
-    @Override
-    public Connection<?> getConnection(String name)
-    {
-        return null;
-    }
-
-    @Override
-    public int publishMessage(final ManageableMessage message)
-    {
-        throwUnsupportedForReplica();
-        return 0;
-    }
 
     @Override
     public MessageSource getAttainedMessageSource(final String name)
@@ -310,18 +133,6 @@ public class BDBHAReplicaVirtualHostImpl
     }
 
     @Override
-    public Queue<?> getAttainedQueue(final UUID id)
-    {
-        return null;
-    }
-
-    @Override
-    public DurableConfigurationStore getDurableConfigurationStore()
-    {
-        return null;
-    }
-
-    @Override
     public MessageDestination getDefaultDestination()
     {
         return null;
@@ -373,11 +184,6 @@ public class BDBHAReplicaVirtualHostImpl
     }
 
     @Override
-    public void scheduleHouseKeepingTask(final long period, final HouseKeepingTask task)
-    {
-    }
-
-    @Override
     public DtxRegistry getDtxRegistry()
     {
         return null;
@@ -390,13 +196,6 @@ public class BDBHAReplicaVirtualHostImpl
     }
 
     @Override
-    public ScheduledFuture<?> scheduleTask(final long delay, final Runnable timeoutTask)
-    {
-        throwUnsupportedForReplica();
-        return null;
-    }
-
-    @Override
     public EventLogger getEventLogger()
     {
         return null;
@@ -409,61 +208,12 @@ public class BDBHAReplicaVirtualHostImpl
     }
 
     @Override
-    public Map<String, Object> extractConfig(boolean includeSecureAttributes)
-    {
-        return Collections.emptyMap();
-    }
-
-    @Override
-    public Content exportMessageStore()
-    {
-        throwUnsupportedForReplica();
-
-        return null;
-    }
-
-    @Override
-    public void importMessageStore(final String source)
-    {
-        throwUnsupportedForReplica();
-    }
-
-    @Override
-    public List<String> getEnabledConnectionValidators()
-    {
-        return _enabledConnectionValidators;
-    }
-
-    @Override
-    public List<String> getDisabledConnectionValidators()
-    {
-        return _disabledConnectionValidators;
-    }
-
-    @Override
     public List<String> getGlobalAddressDomains()
     {
         return _globalAddressDomains;
     }
 
     @Override
-    public String getLocalAddress(final String routingAddress)
-    {
-        String localAddress = routingAddress;
-        if(getGlobalAddressDomains() != null)
-        {
-            for(String domain : getGlobalAddressDomains())
-            {
-                if(localAddress.length() > routingAddress.length() - domain.length() && routingAddress.startsWith(domain + "/"))
-                {
-                    localAddress = routingAddress.substring(domain.length());
-                }
-            }
-        }
-        return localAddress;
-    }
-
-    @Override
     public Principal getPrincipal()
     {
         return _principal;
@@ -488,12 +238,6 @@ public class BDBHAReplicaVirtualHostImpl
     }
 
     @Override
-    public void setFirstOpening(final boolean firstOpening)
-    {
-
-    }
-
-    @Override
     public UserPreferences createUserPreferences(final ConfiguredObject<?> object)
     {
         throwUnsupportedForReplica();

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHost.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHost.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHost.java Fri Nov  4 11:18:07 2016
@@ -22,13 +22,12 @@ package org.apache.qpid.server.virtualho
 
 import org.apache.qpid.server.model.DerivedAttribute;
 import org.apache.qpid.server.model.ManagedAttribute;
-import org.apache.qpid.server.model.ManagedOperation;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.store.SizeMonitoringSettings;
 import org.apache.qpid.server.virtualhost.NonStandardVirtualHost;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public interface BDBHAVirtualHost<X extends BDBHAVirtualHost<X>>
-        extends VirtualHost<X>,
+        extends QueueManagingVirtualHost<X>,
                 SizeMonitoringSettings,
                 NonStandardVirtualHost<X>
 {
@@ -56,6 +55,4 @@ public interface BDBHAVirtualHost<X exte
     @ManagedAttribute(mandatory = true, defaultValue = "0")
     Long getStoreOverfullSize();
 
-    @ManagedOperation(description = "Resets statistics on this object and all child objects", changesConfiguredObjectState = false, nonModifying = true)
-    void resetStatistics();
 }

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHost.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHost.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBVirtualHost.java Fri Nov  4 11:18:07 2016
@@ -22,12 +22,15 @@ package org.apache.qpid.server.virtualho
 
 import org.apache.qpid.server.model.ManagedAttribute;
 import org.apache.qpid.server.model.ManagedContextDefault;
-import org.apache.qpid.server.model.ManagedOperation;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.store.FileBasedSettings;
 import org.apache.qpid.server.store.SizeMonitoringSettings;
 import org.apache.qpid.server.store.berkeleydb.BDBEnvironmentContainer;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
-public interface BDBVirtualHost<X extends BDBVirtualHost<X>> extends VirtualHost<X>, org.apache.qpid.server.store.FileBasedSettings, SizeMonitoringSettings, BDBEnvironmentContainer<X>
+public interface BDBVirtualHost<X extends BDBVirtualHost<X>> extends QueueManagingVirtualHost<X>,
+                                                                     FileBasedSettings,
+                                                                     SizeMonitoringSettings,
+                                                                     BDBEnvironmentContainer<X>
 {
 
     String STORE_PATH = "storePath";
@@ -48,6 +51,4 @@ public interface BDBVirtualHost<X extend
     @ManagedAttribute(mandatory = true, defaultValue = "0")
     Long getStoreOverfullSize();
 
-    @ManagedOperation(description = "Resets statistics on this object and all child objects", changesConfiguredObjectState = false, nonModifying = true)
-    void resetStatistics();
 }

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java Fri Nov  4 11:18:07 2016
@@ -57,11 +57,11 @@ import com.sleepycat.je.rep.StateChangeE
 import com.sleepycat.je.rep.StateChangeListener;
 import com.sleepycat.je.rep.util.ReplicationGroupAdmin;
 import com.sleepycat.je.rep.utilint.HostPortPair;
-import org.apache.qpid.server.configuration.updater.Task;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.configuration.updater.Task;
 import org.apache.qpid.server.logging.messages.BrokerMessages;
 import org.apache.qpid.server.logging.messages.ConfigStoreMessages;
 import org.apache.qpid.server.logging.messages.HighAvailabilityMessages;
@@ -81,20 +81,21 @@ import org.apache.qpid.server.model.Virt
 import org.apache.qpid.server.store.ConfiguredObjectRecord;
 import org.apache.qpid.server.store.ConfiguredObjectRecordImpl;
 import org.apache.qpid.server.store.DurableConfigurationStore;
+import org.apache.qpid.server.store.StoreException;
 import org.apache.qpid.server.store.VirtualHostStoreUpgraderAndRecoverer;
+import org.apache.qpid.server.store.berkeleydb.BDBCacheSizeSetter;
 import org.apache.qpid.server.store.berkeleydb.BDBConfigurationStore;
 import org.apache.qpid.server.store.berkeleydb.EnvironmentFacade;
-import org.apache.qpid.server.store.berkeleydb.BDBCacheSizeSetter;
 import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade;
 import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacadeFactory;
 import org.apache.qpid.server.store.berkeleydb.replication.ReplicationGroupListener;
-import org.apache.qpid.server.store.StoreException;
 import org.apache.qpid.server.store.preferences.PreferenceStore;
 import org.apache.qpid.server.store.preferences.PreferenceStoreAttributes;
 import org.apache.qpid.server.store.preferences.ProvidedPreferenceStoreFactoryService;
 import org.apache.qpid.server.util.ConnectionScopedRuntimeException;
 import org.apache.qpid.server.util.PortUtil;
 import org.apache.qpid.server.util.ServerScopedRuntimeException;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.server.virtualhost.berkeleydb.BDBHAVirtualHostImpl;
 import org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode;
 
@@ -645,7 +646,7 @@ public class BDBHAVirtualHostNodeImpl ex
 
             getEventLogger().message(getConfigurationStoreLogSubject(), ConfigStoreMessages.RECOVERY_COMPLETE());
 
-            VirtualHost<?>  host = getVirtualHost();
+            VirtualHost<?> host = getVirtualHost();
 
 
             if (host == null)
@@ -659,7 +660,7 @@ public class BDBHAVirtualHostNodeImpl ex
                 hostAttributes.put(VirtualHost.MODEL_VERSION, BrokerModel.MODEL_VERSION);
                 hostAttributes.put(VirtualHost.NAME, getGroupName());
                 hostAttributes.put(VirtualHost.TYPE, BDBHAVirtualHostImpl.VIRTUAL_HOST_TYPE);
-                host = createChild(VirtualHost.class, hostAttributes);
+                createChild(VirtualHost.class, hostAttributes);
 
             }
             else
@@ -670,7 +671,12 @@ public class BDBHAVirtualHostNodeImpl ex
                 }
 
                 final VirtualHost<?> recoveredHost = host;
-                recoveredHost.setFirstOpening(firstOpening);
+                // Since we are the master, the host should always be a proper (queue managing) virtual host
+                // so the following test should always return true
+                if(recoveredHost instanceof QueueManagingVirtualHost)
+                {
+                    ((QueueManagingVirtualHost<?>) recoveredHost).setFirstOpening(firstOpening);
+                }
                 Subject.doAs(getSubjectWithAddedSystemRights(), new PrivilegedAction<Object>()
                 {
                     @Override

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java Fri Nov  4 11:18:07 2016
@@ -74,6 +74,7 @@ import org.apache.qpid.server.store.Stor
 import org.apache.qpid.server.txn.ServerTransaction;
 import org.apache.qpid.server.util.Action;
 import org.apache.qpid.server.virtualhost.ExchangeIsAlternateException;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.server.virtualhost.RequiredExchangeException;
 import org.apache.qpid.server.virtualhost.ReservedExchangeNameException;
 import org.apache.qpid.server.virtualhost.VirtualHostUnavailableException;
@@ -91,7 +92,7 @@ public abstract class AbstractExchange<T
     @ManagedAttributeField
     private UnroutableMessageBehaviour _unroutableMessageBehaviour;
 
-    private VirtualHost<?> _virtualHost;
+    private QueueManagingVirtualHost<?> _virtualHost;
 
     /**
      * Whether the exchange is automatically deleted once all queues have detached from it
@@ -112,7 +113,7 @@ public abstract class AbstractExchange<T
 
     private final ConcurrentMap<BindingIdentifier, Binding<?>> _bindingsMap = new ConcurrentHashMap<>();
 
-    public AbstractExchange(Map<String, Object> attributes, VirtualHost<?> vhost)
+    public AbstractExchange(Map<String, Object> attributes, QueueManagingVirtualHost<?> vhost)
     {
         super(parentsMap(vhost), attributes);
         Set<String> providedAttributeNames = new HashSet<>(attributes.keySet());

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/DefaultDestination.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/DefaultDestination.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/DefaultDestination.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/DefaultDestination.java Fri Nov  4 11:18:07 2016
@@ -30,7 +30,6 @@ import org.apache.qpid.server.model.Conf
 import org.apache.qpid.server.model.Exchange;
 import org.apache.qpid.server.model.NamedAddressSpace;
 import org.apache.qpid.server.model.PermissionedObject;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.security.AccessControl;
 import org.apache.qpid.server.security.Result;
 import org.apache.qpid.server.security.SecurityToken;
@@ -38,15 +37,16 @@ import org.apache.qpid.server.security.a
 import org.apache.qpid.server.store.StorableMessageMetaData;
 import org.apache.qpid.server.txn.ServerTransaction;
 import org.apache.qpid.server.util.Action;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public class DefaultDestination implements MessageDestination, PermissionedObject
 {
 
     private static final Operation PUBLISH_ACTION = Operation.ACTION("publish");
     private final AccessControl _accessControl;
-    private VirtualHost<?> _virtualHost;
+    private QueueManagingVirtualHost<?> _virtualHost;
 
-    public DefaultDestination(VirtualHost<?> virtualHost, final AccessControl accessControl)
+    public DefaultDestination(QueueManagingVirtualHost<?> virtualHost, final AccessControl accessControl)
     {
         _virtualHost =  virtualHost;
         _accessControl = accessControl;

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java Fri Nov  4 11:18:07 2016
@@ -45,8 +45,8 @@ import org.apache.qpid.server.model.Bind
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.queue.BaseQueue;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 @ManagedObject( category = false, type = ExchangeDefaults.DIRECT_EXCHANGE_CLASS )
 public class DirectExchange extends AbstractExchange<DirectExchange>
@@ -139,7 +139,7 @@ public class DirectExchange extends Abst
             new ConcurrentHashMap<String, BindingSet>();
 
     @ManagedObjectFactoryConstructor
-    public DirectExchange(final Map<String, Object> attributes, final VirtualHost<?> vhost)
+    public DirectExchange(final Map<String, Object> attributes, final QueueManagingVirtualHost<?> vhost)
     {
         super(attributes, vhost);
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java Fri Nov  4 11:18:07 2016
@@ -41,8 +41,8 @@ import org.apache.qpid.server.model.Bind
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.queue.BaseQueue;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 @ManagedObject( category = false, type = ExchangeDefaults.FANOUT_EXCHANGE_CLASS )
 public class FanoutExchange extends AbstractExchange<FanoutExchange>
@@ -66,7 +66,7 @@ public class FanoutExchange extends Abst
     }
 
     @ManagedObjectFactoryConstructor
-    public FanoutExchange(final Map<String, Object> attributes, final VirtualHost<?> vhost)
+    public FanoutExchange(final Map<String, Object> attributes, final QueueManagingVirtualHost<?> vhost)
     {
         super(attributes, vhost);
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java Fri Nov  4 11:18:07 2016
@@ -40,8 +40,8 @@ import org.apache.qpid.server.model.Bind
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.queue.BaseQueue;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 /**
  * An exchange that binds queues based on a set of required headers and header values
@@ -83,7 +83,7 @@ public class HeadersExchange extends Abs
                             new CopyOnWriteArrayList<HeadersBinding>();
 
     @ManagedObjectFactoryConstructor
-    public HeadersExchange(final Map<String, Object> attributes, final VirtualHost<?> vhost)
+    public HeadersExchange(final Map<String, Object> attributes, final QueueManagingVirtualHost<?> vhost)
     {
         super(attributes, vhost);
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java Fri Nov  4 11:18:07 2016
@@ -45,9 +45,9 @@ import org.apache.qpid.server.model.Bind
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.queue.BaseQueue;
 import org.apache.qpid.server.util.ConnectionScopedRuntimeException;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 @ManagedObject( category = false, type = ExchangeDefaults.TOPIC_EXCHANGE_CLASS )
 public class TopicExchange extends AbstractExchange<TopicExchange>
@@ -62,7 +62,7 @@ public class TopicExchange extends Abstr
     private final Map<Binding<?>, Map<String,Object>> _bindings = new HashMap<>();
 
     @ManagedObjectFactoryConstructor
-    public TopicExchange(final Map<String,Object> attributes, final VirtualHost<?> vhost)
+    public TopicExchange(final Map<String,Object> attributes, final QueueManagingVirtualHost<?> vhost)
     {
         super(attributes, vhost);
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java Fri Nov  4 11:18:07 2016
@@ -20,25 +20,11 @@
  */
 package org.apache.qpid.server.model;
 
-import static org.apache.qpid.server.model.Initialization.materialize;
-
-import java.security.AccessControlContext;
-import java.security.Principal;
-import java.util.Collection;
 import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ScheduledFuture;
 
 import org.apache.qpid.server.logging.EventLoggerProvider;
-import org.apache.qpid.server.message.MessageDestination;
-import org.apache.qpid.server.queue.QueueEntry;
-import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.store.preferences.UserPreferencesCreator;
-import org.apache.qpid.server.transport.AMQPConnection;
-import org.apache.qpid.server.virtualhost.HouseKeepingTask;
-import org.apache.qpid.server.virtualhost.NodeAutoCreationPolicy;
 
 @ManagedObject( defaultType = "ProvidedStore", description = VirtualHost.CLASS_DESCRIPTION)
 public interface VirtualHost<X extends VirtualHost<X>> extends ConfiguredObject<X>,
@@ -52,241 +38,26 @@ public interface VirtualHost<X extends V
                                + "another virtualhost.</p>"
                                + "<p>A virtualhost is backed by storage which is used to store the messages.</p>";
 
-    String QUEUE_DEAD_LETTER_QUEUE_ENABLED            = "queue.deadLetterQueueEnabled";
-
-    String HOUSEKEEPING_CHECK_PERIOD            = "housekeepingCheckPeriod";
-    String STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE = "storeTransactionIdleTimeoutClose";
-    String STORE_TRANSACTION_IDLE_TIMEOUT_WARN  = "storeTransactionIdleTimeoutWarn";
-    String STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE = "storeTransactionOpenTimeoutClose";
-    String STORE_TRANSACTION_OPEN_TIMEOUT_WARN  = "storeTransactionOpenTimeoutWarn";
-    String HOUSE_KEEPING_THREAD_COUNT           = "houseKeepingThreadCount";
     String MODEL_VERSION                        = "modelVersion";
-    String ENABLED_CONNECTION_VALIDATORS        = "enabledConnectionValidators";
-    String DISABLED_CONNECTION_VALIDATORS       = "disabledConnectionValidators";
-    String GLOBAL_ADDRESS_DOMAINS               = "globalAddressDomains";
     String VIRTUALHOST_WORK_DIR_VAR             = "virtualhost.work_dir";
     String VIRTUALHOST_WORK_DIR_VAR_EXPRESSION  = "${qpid.work_dir}${file.separator}${ancestor:virtualhost:name}";
-    String NUMBER_OF_SELECTORS                  = "numberOfSelectors";
-    String CONNECTION_THREAD_POOL_SIZE          = "connectionThreadPoolSize";
-    String CONNECTION_THREAD_POOL_KEEP_ALIVE_TIMEOUT = "connectionThreadPoolKeepAliveTimeout";
     String PREFERENCE_STORE_ATTRIBUTES          = "preferenceStoreAttributes";
 
-    String NODE_AUTO_CREATION_POLICIES = "nodeAutoCreationPolicies";
-
     @ManagedContextDefault( name = VIRTUALHOST_WORK_DIR_VAR)
     String VIRTUALHOST_WORK_DIR = VIRTUALHOST_WORK_DIR_VAR_EXPRESSION;
-    @ManagedContextDefault( name = "queue.deadLetterQueueEnabled")
-    boolean DEFAULT_DEAD_LETTER_QUEUE_ENABLED = false;
-
-    String DEFAULT_DLE_NAME_SUFFIX = "_DLE";
-    String PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX = "qpid.broker_dead_letter_exchange_suffix";
-    String PROPERTY_DEAD_LETTER_QUEUE_SUFFIX = "qpid.broker_dead_letter_queue_suffix";
-
-    @ManagedAttribute( defaultValue = "${queue.deadLetterQueueEnabled}", initialization = materialize)
-    boolean isQueue_deadLetterQueueEnabled();
-
-    @ManagedContextDefault( name = "virtualhost.housekeepingCheckPeriod")
-    public static final long DEFAULT_HOUSEKEEPING_CHECK_PERIOD = 30000l;
-
-    @SuppressWarnings("unused")
-    @ManagedContextDefault(name = CONNECTION_THREAD_POOL_KEEP_ALIVE_TIMEOUT)
-    long DEFAULT_CONNECTION_THREAD_POOL_KEEP_ALIVE_TIMEOUT = 60; // Minutes
-
-    @ManagedAttribute( defaultValue = "${virtualhost.housekeepingCheckPeriod}")
-    long getHousekeepingCheckPeriod();
-
-    @ManagedContextDefault( name = "virtualhost.storeTransactionIdleTimeoutClose")
-    public static final long DEFAULT_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE = 0l;
-
-    @ManagedAttribute( defaultValue = "${virtualhost.storeTransactionIdleTimeoutClose}",
-                       description = "The maximum length of time, in milliseconds, that an open store transaction may "
-                                     + "remain idle. If a transaction exceeds this threshold, the resource that "
-                                     + "created the transaction will be closed automatically.")
-    long getStoreTransactionIdleTimeoutClose();
-
-    @ManagedContextDefault( name = "virtualhost.storeTransactionIdleTimeoutWarn")
-    public static final long DEFAULT_STORE_TRANSACTION_IDLE_TIMEOUT_WARN = 180000l;
-
-    @ManagedAttribute( defaultValue = "${virtualhost.storeTransactionIdleTimeoutWarn}",
-                       description = "The maximum length of time, in milliseconds, that an open store transaction may "
-                                     + "remain idle. If a transaction exceeds this threshold, warnings will be "
-                                     + "written to the logs.")
-    long getStoreTransactionIdleTimeoutWarn();
-
-    @ManagedContextDefault( name = "virtualhost.storeTransactionOpenTimeoutClose")
-    public static final long DEFAULT_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE = 0l;
-
-    @ManagedAttribute( defaultValue = "${virtualhost.storeTransactionOpenTimeoutClose}",
-                       description = "The maximum length of time, in milliseconds, that a store transaction may "
-                                   + "remain open. If a transaction exceeds this threshold, the resource that "
-                                   + "created the transaction will be closed automatically.")
-    long getStoreTransactionOpenTimeoutClose();
-
-    @ManagedContextDefault( name = "virtualhost.storeTransactionOpenTimeoutWarn")
-    public static final long DEFAULT_STORE_TRANSACTION_OPEN_TIMEOUT_WARN = 300000l;
-
-    @ManagedAttribute( defaultValue = "${virtualhost.storeTransactionOpenTimeoutWarn}",
-                       description = "The maximum length of time, in milliseconds, that a store transaction may "
-                                   + "remain open. If a transaction exceeds this threshold, warnings will be "
-                                   + "written to the logs.")
-    long getStoreTransactionOpenTimeoutWarn();
-
-    @ManagedContextDefault( name = "virtualhost.housekeepingThreadCount")
-    public static final int DEFAULT_HOUSEKEEPING_THREAD_COUNT = 4;
-
-    @ManagedAttribute( defaultValue = "${virtualhost.housekeepingThreadCount}")
-    int getHousekeepingThreadCount();
-
-    @ManagedAttribute( defaultValue = "[]",
-            description = "a list of policies used for auto-creating nodes (such as Queues or Exchanges) when an "
-                          + "address is published to or subscribed from and no node matching the address currently "
-                          + "exists. Each policy describes a pattern to match against the address, the circumstances "
-                          + "when auto-creation should occur (on publish, on consume, or both), the type of node to be "
-                          + "created, and the properties of the node.")
-    List<NodeAutoCreationPolicy> getNodeAutoCreationPolicies();
-
-    String VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE = "virtualhost.connectionThreadPool.size";
-    @SuppressWarnings("unused")
-    @ManagedContextDefault( name = VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE)
-    long DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE = Math.max(Runtime.getRuntime().availableProcessors() * 2, 64);
-
-    @ManagedAttribute( defaultValue = "${" + VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE + "}")
-    int getConnectionThreadPoolSize();
-
-    String VIRTUALHOST_CONNECTION_THREAD_POOL_NUMBER_OF_SELECTORS = "virtualhost.connectionThreadPool.numberOfSelectors";
-    @SuppressWarnings("unused")
-    @ManagedContextDefault( name = VIRTUALHOST_CONNECTION_THREAD_POOL_NUMBER_OF_SELECTORS)
-    long DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_NUMBER_OF_SELECTORS = Math.max(DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE/8, 1);
-
-    @ManagedAttribute( defaultValue = "${" + VIRTUALHOST_CONNECTION_THREAD_POOL_NUMBER_OF_SELECTORS + "}")
-    int getNumberOfSelectors();
 
     @DerivedAttribute( persist = true )
     String getModelVersion();
 
-    @ManagedContextDefault( name = "virtualhost.enabledConnectionValidators")
-    String DEFAULT_ENABLED_VALIDATORS = "[]";
-
-    void executeTask(String name, Runnable task, AccessControlContext context);
 
-    @ManagedAttribute( defaultValue = "${virtualhost.enabledConnectionValidators}")
-    List<String> getEnabledConnectionValidators();
-
-    @ManagedContextDefault( name = "virtualhost.disabledConnectionValidators")
-    String DEFAULT_DISABLED_VALIDATORS = "[]";
-
-    @ManagedAttribute( defaultValue = "${virtualhost.disabledConnectionValidators}")
-    List<String> getDisabledConnectionValidators();
 
     @ManagedAttribute( defaultValue = "[]")
     List<String> getGlobalAddressDomains();
 
-    @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.COUNT, label = "Queues")
-    long getQueueCount();
-
-    @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.COUNT, label = "Exchanges")
-    long getExchangeCount();
-
-    @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.COUNT, label = "Connections")
-    long getConnectionCount();
-
-    @ManagedStatistic(statisticType = StatisticType.CUMULATIVE, units = StatisticUnit.BYTES, label = "Inbound")
-    long getBytesIn();
-
-    @ManagedStatistic(statisticType = StatisticType.CUMULATIVE, units = StatisticUnit.BYTES, label = "Outbound")
-    long getBytesOut();
-
-    @ManagedStatistic(statisticType = StatisticType.CUMULATIVE, units = StatisticUnit.MESSAGES, label = "Inbound")
-    long getMessagesIn();
-
-    @ManagedStatistic(statisticType = StatisticType.CUMULATIVE, units = StatisticUnit.MESSAGES, label = "Outbound")
-    long getMessagesOut();
-
     Broker<?> getBroker();
 
-    @Override
-    @ManagedOperation(nonModifying = true, changesConfiguredObjectState = false)
-    Collection<? extends Connection<?>> getConnections();
-
-    @ManagedOperation(nonModifying = true, changesConfiguredObjectState = false)
-    Connection<?> getConnection(@Param(name="name") String name);
-
-    @ManagedOperation(secure = true,
-                      description = "Publishes a message to a specified address. "
-                                    + "Returns the number of queues onto which it has been placed, "
-                                    + " or zero, if the address routes to no queues.",
-            changesConfiguredObjectState = false)
-    int publishMessage(@Param(name = "message")ManageableMessage message);
-
-    @ManagedOperation(nonModifying = true,
-            description = "Extract configuration",
-            paramRequiringSecure = "includeSecureAttributes",
-            changesConfiguredObjectState = false)
-    Map<String,Object> extractConfig(@Param(name="includeSecureAttributes",
-                                            description = "include attributes that may contain passwords or other "
-                                                          + "confidential information",
-                                            defaultValue = "false") boolean includeSecureAttributes);
-    @ManagedOperation(nonModifying = true,
-            description = "Extract message store content",
-            secure = true,
-            changesConfiguredObjectState = false)
-    Content exportMessageStore();
-
-    @ManagedOperation(description = "Import message store content",
-            secure = true,
-            changesConfiguredObjectState = false)
-    void importMessageStore(@Param(name="source", description = "Extract file")String source);
-
-
-    void start();
-
-    void stop();
-
-    Principal getPrincipal();
-
-    void registerConnection(AMQPConnection<?> connection);
-    void deregisterConnection(AMQPConnection<?> connection);
-
-    Queue<?> getAttainedQueue(UUID id);
-
-    <T extends ConfiguredObject<?>> T getAttainedChildFromAddress(Class<T> childClass,
-                                                                  String address);
-
-    MessageDestination getDefaultDestination();
-
-    DurableConfigurationStore getDurableConfigurationStore();
-
-    void scheduleHouseKeepingTask(long period, HouseKeepingTask task);
-
-    ScheduledFuture<?> scheduleTask(long delay, Runnable timeoutTask);
-
-    String getLocalAddress(String routingAddress);
-
-    void setFirstOpening(boolean firstOpening);
-
-    interface Transaction
-    {
-        void dequeue(QueueEntry entry);
-
-        void copy(QueueEntry entry, Queue<?> queue);
-
-        void move(QueueEntry entry, Queue<?> queue);
-
-    }
-
-    interface TransactionalOperation
-    {
-        void withinTransaction(Transaction txn);
-
-        List<Long> getModifiedMessageIds();
-    }
-
-    void executeTransaction(TransactionalOperation op);
-
     MessageStore getMessageStore();
 
-    String getType();
-
     void setTargetSize(long targetSize);
     long getTargetSize();
 

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java Fri Nov  4 11:18:07 2016
@@ -44,12 +44,12 @@ import org.apache.qpid.server.model.Publ
 import org.apache.qpid.server.model.Session;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.StateTransition;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.server.protocol.ConsumerListener;
 import org.apache.qpid.server.transport.AbstractAMQPConnection;
-import org.apache.qpid.server.util.Action;
 import org.apache.qpid.server.transport.TransactionTimeoutTicker;
+import org.apache.qpid.server.util.Action;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.transport.network.Ticker;
 
 public final class SessionAdapter extends AbstractConfiguredObject<SessionAdapter> implements Session<SessionAdapter>
@@ -210,10 +210,10 @@ public final class SessionAdapter extend
                                                    final AMQSessionModel session)
     {
         NamedAddressSpace addressSpace = amqpConnection.getAddressSpace();
-        if (addressSpace instanceof VirtualHost)
+        if (addressSpace instanceof QueueManagingVirtualHost)
         {
             final EventLogger eventLogger = amqpConnection.getEventLogger();
-            final VirtualHost virtualhost = (VirtualHost) addressSpace;
+            final QueueManagingVirtualHost<?> virtualhost = (QueueManagingVirtualHost<?>) addressSpace;
             final List<Ticker> tickers = new ArrayList<>(4);
 
             final Supplier<Long> transactionStartTimeSupplier = new Supplier<Long>()

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java Fri Nov  4 11:18:07 2016
@@ -114,6 +114,7 @@ import org.apache.qpid.server.util.Delet
 import org.apache.qpid.server.util.MapValueConverter;
 import org.apache.qpid.server.util.ServerScopedRuntimeException;
 import org.apache.qpid.server.util.StateChangeListener;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.server.virtualhost.VirtualHostUnavailableException;
 import org.apache.qpid.transport.TransportException;
 
@@ -143,7 +144,7 @@ public abstract class AbstractQueue<X ex
     private static final String UTF8 = StandardCharsets.UTF_8.name();
     private static final Operation PUBLISH_ACTION = Operation.ACTION("publish");
 
-    private final VirtualHost<?> _virtualHost;
+    private final QueueManagingVirtualHost<?> _virtualHost;
     private final DeletedChildListener _deletedChildListener = new DeletedChildListener();
 
     private final AccessControlContext _immediateDeliveryContext;
@@ -297,7 +298,7 @@ public abstract class AbstractQueue<X ex
         boolean isHeld(MessageReference<?> message, long evalutaionTime);
     }
 
-    protected AbstractQueue(Map<String, Object> attributes, VirtualHost<?> virtualHost)
+    protected AbstractQueue(Map<String, Object> attributes, QueueManagingVirtualHost<?> virtualHost)
     {
         super(parentsMap(virtualHost), attributes);
 

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/CopyMessagesTransaction.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/CopyMessagesTransaction.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/CopyMessagesTransaction.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/CopyMessagesTransaction.java Fri Nov  4 11:18:07 2016
@@ -25,8 +25,7 @@ import java.util.List;
 import org.apache.qpid.server.filter.MessageFilter;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.store.TransactionLogResource;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public class CopyMessagesTransaction extends QueueEntryTransaction
 {
@@ -42,10 +41,10 @@ public class CopyMessagesTransaction ext
     }
 
     @Override
-    protected void updateEntry(QueueEntry entry, VirtualHost.Transaction txn)
+    protected void updateEntry(QueueEntry entry, QueueManagingVirtualHost.Transaction txn)
     {
         ServerMessage msg = entry.getMessage();
-        if(msg != null && !msg.isReferenced((TransactionLogResource)_destinationQueue))
+        if(msg != null && !msg.isReferenced(_destinationQueue))
         {
             txn.copy(entry, _destinationQueue);
         }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/DeleteMessagesTransaction.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/DeleteMessagesTransaction.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/DeleteMessagesTransaction.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/DeleteMessagesTransaction.java Fri Nov  4 11:18:07 2016
@@ -24,7 +24,7 @@ import java.util.List;
 
 import org.apache.qpid.server.filter.MessageFilter;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public class DeleteMessagesTransaction extends QueueEntryTransaction
 {
@@ -37,7 +37,7 @@ public class DeleteMessagesTransaction e
     }
 
     @Override
-    protected void updateEntry(QueueEntry entry, VirtualHost.Transaction txn)
+    protected void updateEntry(QueueEntry entry, QueueManagingVirtualHost.Transaction txn)
     {
         txn.dequeue(entry);
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/LastValueQueueImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/LastValueQueueImpl.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/LastValueQueueImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/LastValueQueueImpl.java Fri Nov  4 11:18:07 2016
@@ -25,7 +25,7 @@ import java.util.Map;
 
 import org.apache.qpid.server.model.ManagedAttributeField;
 import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public class LastValueQueueImpl extends AbstractQueue<LastValueQueueImpl> implements LastValueQueue<LastValueQueueImpl>
 {
@@ -35,7 +35,7 @@ public class LastValueQueueImpl extends
     private String _lvqKey;
 
     @ManagedObjectFactoryConstructor
-    public LastValueQueueImpl(Map<String, Object> attributes, VirtualHost<?> virtualHost)
+    public LastValueQueueImpl(Map<String, Object> attributes, QueueManagingVirtualHost<?> virtualHost)
     {
         super(attributes, virtualHost);
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/MoveMessagesTransaction.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/MoveMessagesTransaction.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/MoveMessagesTransaction.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/MoveMessagesTransaction.java Fri Nov  4 11:18:07 2016
@@ -25,8 +25,7 @@ import java.util.List;
 import org.apache.qpid.server.filter.MessageFilter;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.store.TransactionLogResource;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public class MoveMessagesTransaction extends QueueEntryTransaction
 {
@@ -42,10 +41,10 @@ public class MoveMessagesTransaction ext
     }
 
     @Override
-    protected void updateEntry(QueueEntry entry, VirtualHost.Transaction txn)
+    protected void updateEntry(QueueEntry entry, QueueManagingVirtualHost.Transaction txn)
     {
         ServerMessage msg = entry.getMessage();
-        if(msg != null && !msg.isReferenced((TransactionLogResource)_destinationQueue))
+        if(msg != null && !msg.isReferenced(_destinationQueue))
         {
             txn.move(entry, _destinationQueue);
         }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/OutOfOrderQueue.java Fri Nov  4 11:18:07 2016
@@ -22,12 +22,12 @@ package org.apache.qpid.server.queue;
 
 import java.util.Map;
 
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public abstract class OutOfOrderQueue<X extends OutOfOrderQueue<X>> extends AbstractQueue<X>
 {
 
-    protected OutOfOrderQueue(Map<String, Object> attributes, VirtualHost<?> virtualHost)
+    protected OutOfOrderQueue(Map<String, Object> attributes, QueueManagingVirtualHost<?> virtualHost)
     {
         super(attributes, virtualHost);
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueueImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueueImpl.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueueImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueueImpl.java Fri Nov  4 11:18:07 2016
@@ -27,7 +27,7 @@ import org.apache.qpid.server.logging.me
 import org.apache.qpid.server.model.LifetimePolicy;
 import org.apache.qpid.server.model.ManagedAttributeField;
 import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public class PriorityQueueImpl extends OutOfOrderQueue<PriorityQueueImpl> implements PriorityQueue<PriorityQueueImpl>
 {
@@ -38,7 +38,7 @@ public class PriorityQueueImpl extends O
     private int _priorities;
 
     @ManagedObjectFactoryConstructor
-    public PriorityQueueImpl(Map<String, Object> attributes, VirtualHost<?> virtualHost)
+    public PriorityQueueImpl(Map<String, Object> attributes, QueueManagingVirtualHost<?> virtualHost)
     {
         super(attributes, virtualHost);
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryTransaction.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryTransaction.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryTransaction.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryTransaction.java Fri Nov  4 11:18:07 2016
@@ -26,9 +26,9 @@ import java.util.List;
 import org.apache.qpid.server.filter.MessageFilter;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
-abstract class QueueEntryTransaction implements VirtualHost.TransactionalOperation
+abstract class QueueEntryTransaction implements QueueManagingVirtualHost.TransactionalOperation
 {
     private final Queue _sourceQueue;
     private final List<Long> _messageIds;
@@ -45,7 +45,7 @@ abstract class QueueEntryTransaction imp
     }
 
     @Override
-    public final void withinTransaction(final VirtualHost.Transaction txn)
+    public final void withinTransaction(final QueueManagingVirtualHost.Transaction txn)
     {
         if(_limit != 0)
         {
@@ -77,7 +77,7 @@ abstract class QueueEntryTransaction imp
     }
 
 
-    protected abstract void updateEntry(QueueEntry entry, VirtualHost.Transaction txn);
+    protected abstract void updateEntry(QueueEntry entry, QueueManagingVirtualHost.Transaction txn);
 
     @Override
     public final List<Long> getModifiedMessageIds()

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueueImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueueImpl.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueueImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueueImpl.java Fri Nov  4 11:18:07 2016
@@ -25,9 +25,9 @@ import org.apache.qpid.server.message.Me
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.ManagedAttributeField;
 import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.store.MessageEnqueueRecord;
 import org.apache.qpid.server.util.Action;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public class SortedQueueImpl extends OutOfOrderQueue<SortedQueueImpl> implements SortedQueue<SortedQueueImpl>
 {
@@ -41,7 +41,7 @@ public class SortedQueueImpl extends Out
     private SortedQueueEntryList _entries;
 
     @ManagedObjectFactoryConstructor
-    public SortedQueueImpl(Map<String, Object> attributes, VirtualHost<?> virtualHost)
+    public SortedQueueImpl(Map<String, Object> attributes, QueueManagingVirtualHost<?> virtualHost)
     {
         super(attributes, virtualHost);
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/StandardQueueImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/StandardQueueImpl.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/StandardQueueImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/StandardQueueImpl.java Fri Nov  4 11:18:07 2016
@@ -23,14 +23,14 @@ package org.apache.qpid.server.queue;
 import java.util.Map;
 
 import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public class StandardQueueImpl extends AbstractQueue<StandardQueueImpl> implements StandardQueue<StandardQueueImpl>
 {
     private StandardQueueEntryList _entries;
 
     @ManagedObjectFactoryConstructor
-    public StandardQueueImpl(final Map<String, Object> arguments, final VirtualHost<?> virtualHost)
+    public StandardQueueImpl(final Map<String, Object> arguments, final QueueManagingVirtualHost<?> virtualHost)
     {
         super(arguments, virtualHost);
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java Fri Nov  4 11:18:07 2016
@@ -48,6 +48,7 @@ import org.apache.qpid.server.model.Virt
 import org.apache.qpid.server.queue.QueueArgumentsConverter;
 import org.apache.qpid.server.store.handler.ConfiguredObjectRecordHandler;
 import org.apache.qpid.server.util.Action;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public class VirtualHostStoreUpgraderAndRecoverer
 {
@@ -451,7 +452,7 @@ public class VirtualHostStoreUpgraderAnd
                     throw new IllegalConfigurationException("Queue name is not found in queue configuration entry attributes: " + attributes);
                 }
 
-                String dleSuffix = System.getProperty(VirtualHost.PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX, DEFAULT_DLE_NAME_SUFFIX);
+                String dleSuffix = System.getProperty(QueueManagingVirtualHost.PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX, DEFAULT_DLE_NAME_SUFFIX);
                 String dleExchangeName = queueName + dleSuffix;
 
                 ConfiguredObjectRecord exchangeRecord = findConfiguredObjectRecordInUpdateMap("Exchange", dleExchangeName);

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java Fri Nov  4 11:18:07 2016
@@ -27,18 +27,18 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ScheduledFuture;
 
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.store.StoreException;
-import org.apache.qpid.server.protocol.AMQSessionModel;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.transport.Xid;
 
 public class DtxRegistry
 {
     private final Map<ComparableXid, DtxBranch> _branches = new HashMap<ComparableXid, DtxBranch>();
-    private final VirtualHost<?> _virtualHost;
+    private final QueueManagingVirtualHost<?> _virtualHost;
 
-    public DtxRegistry(final VirtualHost<?> virtualHost)
+    public DtxRegistry(final QueueManagingVirtualHost<?> virtualHost)
     {
         _virtualHost = virtualHost;
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java Fri Nov  4 11:18:07 2016
@@ -110,11 +110,9 @@ import org.apache.qpid.server.security.S
 import org.apache.qpid.server.security.access.Operation;
 import org.apache.qpid.server.security.auth.AuthenticatedPrincipal;
 import org.apache.qpid.server.stats.StatisticsCounter;
-import org.apache.qpid.server.stats.StatisticsGatherer;
 import org.apache.qpid.server.store.ConfiguredObjectRecord;
 import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.server.store.Event;
-import org.apache.qpid.server.store.EventListener;
 import org.apache.qpid.server.store.GenericRecoverer;
 import org.apache.qpid.server.store.MessageEnqueueRecord;
 import org.apache.qpid.server.store.MessageStore;
@@ -145,7 +143,7 @@ import org.apache.qpid.server.util.MapVa
 import org.apache.qpid.util.Strings;
 
 public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> extends AbstractConfiguredObject<X>
-        implements VirtualHost<X>, EventListener, StatisticsGatherer
+        implements QueueManagingVirtualHost<X>
 {
     private final Collection<ConnectionValidator> _connectionValidators = new ArrayList<>();
 
@@ -392,7 +390,7 @@ public abstract class AbstractVirtualHos
     protected void validateChange(final ConfiguredObject<?> proxyForValidation, final Set<String> changedAttributes)
     {
         super.validateChange(proxyForValidation, changedAttributes);
-        VirtualHost<?> virtualHost = (VirtualHost<?>) proxyForValidation;
+        QueueManagingVirtualHost<?> virtualHost = (QueueManagingVirtualHost<?>) proxyForValidation;
 
         if(changedAttributes.contains(GLOBAL_ADDRESS_DOMAINS))
         {
@@ -508,7 +506,7 @@ public abstract class AbstractVirtualHos
         return _messageStore;
     }
 
-    private void validateConnectionThreadPoolSettings(VirtualHost<?> virtualHost)
+    private void validateConnectionThreadPoolSettings(QueueManagingVirtualHost<?> virtualHost)
     {
         if (virtualHost.getConnectionThreadPoolSize() < 1)
         {
@@ -2309,12 +2307,12 @@ public abstract class AbstractVirtualHos
 
     private static String getDeadLetterQueueName(String name)
     {
-        return name + System.getProperty(VirtualHost.PROPERTY_DEAD_LETTER_QUEUE_SUFFIX, AbstractVirtualHost.DEFAULT_DLQ_NAME_SUFFIX);
+        return name + System.getProperty(QueueManagingVirtualHost.PROPERTY_DEAD_LETTER_QUEUE_SUFFIX, AbstractVirtualHost.DEFAULT_DLQ_NAME_SUFFIX);
     }
 
     private static String getDeadLetterExchangeName(String name)
     {
-        return name + System.getProperty(VirtualHost.PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX, VirtualHost.DEFAULT_DLE_NAME_SUFFIX);
+        return name + System.getProperty(QueueManagingVirtualHost.PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX, QueueManagingVirtualHost.DEFAULT_DLE_NAME_SUFFIX);
     }
 
     @Override

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecoverer.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecoverer.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecoverer.java Fri Nov  4 11:18:07 2016
@@ -45,7 +45,6 @@ import org.apache.qpid.server.logging.su
 import org.apache.qpid.server.message.MessageReference;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.plugin.MessageMetaDataType;
 import org.apache.qpid.server.queue.QueueEntry;
 import org.apache.qpid.server.store.MessageEnqueueRecord;
@@ -70,7 +69,7 @@ public class AsynchronousMessageStoreRec
     private AsynchronousRecoverer _asynchronousRecoverer;
 
     @Override
-    public ListenableFuture<Void> recover(final VirtualHost<?> virtualHost)
+    public ListenableFuture<Void> recover(final QueueManagingVirtualHost<?> virtualHost)
     {
         _asynchronousRecoverer = new AsynchronousRecoverer(virtualHost);
 
@@ -91,7 +90,7 @@ public class AsynchronousMessageStoreRec
         private static final Logger LOGGER = LoggerFactory.getLogger(AsynchronousRecoverer.class);
 
         public static final int THREAD_POOL_SHUTDOWN_TIMEOUT = 5000;
-        private final VirtualHost<?> _virtualHost;
+        private final QueueManagingVirtualHost<?> _virtualHost;
         private final EventLogger _eventLogger;
         private final MessageStore _store;
         private final MessageStoreLogSubject _logSubject;
@@ -103,7 +102,7 @@ public class AsynchronousMessageStoreRec
         private final MessageStore.MessageStoreReader _storeReader;
         private AtomicBoolean _continueRecovery = new AtomicBoolean(true);
 
-        private AsynchronousRecoverer(final VirtualHost<?> virtualHost)
+        private AsynchronousRecoverer(final QueueManagingVirtualHost<?> virtualHost)
         {
             _virtualHost = virtualHost;
             _eventLogger = virtualHost.getEventLogger();
@@ -145,7 +144,7 @@ public class AsynchronousMessageStoreRec
             }
         }
 
-        public VirtualHost<?> getVirtualHost()
+        public QueueManagingVirtualHost<?> getVirtualHost()
         {
             return _virtualHost;
         }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/MessageStoreRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/MessageStoreRecoverer.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/MessageStoreRecoverer.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/MessageStoreRecoverer.java Fri Nov  4 11:18:07 2016
@@ -22,11 +22,9 @@ package org.apache.qpid.server.virtualho
 
 import com.google.common.util.concurrent.ListenableFuture;
 
-import org.apache.qpid.server.model.VirtualHost;
-
 public interface MessageStoreRecoverer
 {
-    ListenableFuture<Void> recover(VirtualHost<?> virtualHost);
+    ListenableFuture<Void> recover(QueueManagingVirtualHost<?> virtualHost);
 
     /**
      * Cancels any in-progress message store recovery.  If message store recovery has already

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/ProvidedStoreVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/ProvidedStoreVirtualHost.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/ProvidedStoreVirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/ProvidedStoreVirtualHost.java Fri Nov  4 11:18:07 2016
@@ -20,12 +20,10 @@
 package org.apache.qpid.server.virtualhost;
 
 import org.apache.qpid.server.model.ManagedAttribute;
-import org.apache.qpid.server.model.ManagedOperation;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.store.SizeMonitoringSettings;
 
 public interface ProvidedStoreVirtualHost<X extends ProvidedStoreVirtualHost<X>>
-        extends VirtualHost<X>,
+        extends QueueManagingVirtualHost<X>,
                 SizeMonitoringSettings,
                 NonStandardVirtualHost<X>
 {
@@ -34,7 +32,4 @@ public interface ProvidedStoreVirtualHos
 
     @ManagedAttribute(mandatory = true, defaultValue = "0")
     Long getStoreOverfullSize();
-
-    @ManagedOperation(description = "Resets statistics on this object and all child objects", changesConfiguredObjectState = false, nonModifying = true)
-    void resetStatistics();
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org