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 [2/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/...

Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/QueueManagingVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/QueueManagingVirtualHost.java?rev=1768014&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/QueueManagingVirtualHost.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/QueueManagingVirtualHost.java Fri Nov  4 11:18:07 2016
@@ -0,0 +1,266 @@
+/*
+ *
+ * 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.
+ *
+ */
+package org.apache.qpid.server.virtualhost;
+
+import static org.apache.qpid.server.model.Initialization.materialize;
+
+import java.security.AccessControlContext;
+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.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.ManagedAttribute;
+import org.apache.qpid.server.model.ManagedContextDefault;
+import org.apache.qpid.server.model.ManagedOperation;
+import org.apache.qpid.server.model.ManagedStatistic;
+import org.apache.qpid.server.model.Param;
+import org.apache.qpid.server.model.Queue;
+import org.apache.qpid.server.model.StatisticType;
+import org.apache.qpid.server.model.StatisticUnit;
+import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.queue.QueueEntry;
+import org.apache.qpid.server.stats.StatisticsGatherer;
+import org.apache.qpid.server.store.DurableConfigurationStore;
+import org.apache.qpid.server.store.EventListener;
+
+public interface QueueManagingVirtualHost<X extends QueueManagingVirtualHost<X>> extends VirtualHost<X>,
+                                                                                         EventListener,
+                                                                                         StatisticsGatherer
+{
+    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 ENABLED_CONNECTION_VALIDATORS        = "enabledConnectionValidators";
+    String DISABLED_CONNECTION_VALIDATORS       = "disabledConnectionValidators";
+    String NUMBER_OF_SELECTORS                  = "numberOfSelectors";
+    String CONNECTION_THREAD_POOL_SIZE          = "connectionThreadPoolSize";
+    String GLOBAL_ADDRESS_DOMAINS               = "globalAddressDomains";
+    String NODE_AUTO_CREATION_POLICIES = "nodeAutoCreationPolicies";
+
+
+    String QUEUE_DEAD_LETTER_QUEUE_ENABLED      = "queue.deadLetterQueueEnabled";
+
+    @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";
+
+    @ManagedContextDefault( name = "virtualhost.housekeepingCheckPeriod")
+    long DEFAULT_HOUSEKEEPING_CHECK_PERIOD = 30000l;
+
+    String CONNECTION_THREAD_POOL_KEEP_ALIVE_TIMEOUT = "connectionThreadPoolKeepAliveTimeout";
+    @SuppressWarnings("unused")
+    @ManagedContextDefault(name = QueueManagingVirtualHost.CONNECTION_THREAD_POOL_KEEP_ALIVE_TIMEOUT)
+    long DEFAULT_CONNECTION_THREAD_POOL_KEEP_ALIVE_TIMEOUT = 60; // Minutes
+
+
+    @ManagedContextDefault( name = "virtualhost.storeTransactionIdleTimeoutClose")
+    public static final long DEFAULT_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE = 0l;
+    @ManagedContextDefault( name = "virtualhost.housekeepingThreadCount")
+    int DEFAULT_HOUSEKEEPING_THREAD_COUNT = 4;
+
+    @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();
+
+
+    @ManagedAttribute( defaultValue = "${queue.deadLetterQueueEnabled}", initialization = materialize)
+    boolean isQueue_deadLetterQueueEnabled();
+
+    @ManagedAttribute( defaultValue = "${virtualhost.housekeepingCheckPeriod}")
+    long getHousekeepingCheckPeriod();
+
+    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 = "${" + QueueManagingVirtualHost.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 = "${" + QueueManagingVirtualHost.VIRTUALHOST_CONNECTION_THREAD_POOL_NUMBER_OF_SELECTORS + "}")
+    int getNumberOfSelectors();
+
+
+
+    @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();
+
+    @ManagedContextDefault( name = "virtualhost.enabledConnectionValidators")
+    String DEFAULT_ENABLED_VALIDATORS = "[]";
+
+    @ManagedAttribute( defaultValue = "${virtualhost.enabledConnectionValidators}")
+    List<String> getEnabledConnectionValidators();
+
+    @ManagedContextDefault( name = "virtualhost.disabledConnectionValidators")
+    String DEFAULT_DISABLED_VALIDATORS = "[]";
+
+    @ManagedAttribute( defaultValue = "${virtualhost.disabledConnectionValidators}")
+    List<String> getDisabledConnectionValidators();
+
+
+    @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();
+
+
+    @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);
+
+    @ManagedOperation(description = "Resets statistics on this object and all child objects", changesConfiguredObjectState = false, nonModifying = true)
+    void resetStatistics();
+
+    DurableConfigurationStore getDurableConfigurationStore();
+
+    void executeTransaction(TransactionalOperation op);
+
+    void executeTask(String name, Runnable task, AccessControlContext context);
+
+    void scheduleHouseKeepingTask(long period, HouseKeepingTask task);
+
+    ScheduledFuture<?> scheduleTask(long delay, Runnable timeoutTask);
+
+    Queue<?> getAttainedQueue(UUID id);
+
+    String getLocalAddress(String routingAddress);
+
+    <T extends ConfiguredObject<?>> T getAttainedChildFromAddress(Class<T> childClass,
+                                                                  String address);
+
+    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();
+    }
+}

Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/QueueManagingVirtualHost.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecoverer.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecoverer.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecoverer.java Fri Nov  4 11:18:07 2016
@@ -37,7 +37,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;
@@ -62,7 +61,7 @@ public class SynchronousMessageStoreReco
     private static final Logger _logger = LoggerFactory.getLogger(SynchronousMessageStoreRecoverer.class);
 
     @Override
-    public ListenableFuture<Void> recover(VirtualHost<?> virtualHost)
+    public ListenableFuture<Void> recover(QueueManagingVirtualHost<?> virtualHost)
     {
         EventLogger eventLogger = virtualHost.getEventLogger();
         MessageStore store = virtualHost.getMessageStore();
@@ -154,14 +153,14 @@ public class SynchronousMessageStoreReco
 
     private static class MessageInstanceVisitor implements MessageInstanceHandler
     {
-        private final VirtualHost<?> _virtualHost;
+        private final QueueManagingVirtualHost<?> _virtualHost;
         private final MessageStore _store;
 
         private final Map<String, Integer> _queueRecoveries;
         private final Map<Long, ServerMessage<?>> _recoveredMessages;
         private final Map<Long, StoredMessage<?>> _unusedMessages;
 
-        private MessageInstanceVisitor(final VirtualHost<?> virtualHost,
+        private MessageInstanceVisitor(final QueueManagingVirtualHost<?> virtualHost,
                                        final MessageStore store,
                                        final Map<String, Integer> queueRecoveries,
                                        final Map<Long, ServerMessage<?>> recoveredMessages,
@@ -225,7 +224,7 @@ public class SynchronousMessageStoreReco
     private static class DistributedTransactionVisitor implements DistributedTransactionHandler
     {
 
-        private final VirtualHost<?> _virtualHost;
+        private final QueueManagingVirtualHost<?> _virtualHost;
         private final MessageStore _store;
         private final EventLogger _eventLogger;
         private final MessageStoreLogSubject _logSubject;
@@ -233,7 +232,7 @@ public class SynchronousMessageStoreReco
         private final Map<Long, ServerMessage<?>> _recoveredMessages;
         private final Map<Long, StoredMessage<?>> _unusedMessages;
 
-        private DistributedTransactionVisitor(final VirtualHost<?> virtualHost,
+        private DistributedTransactionVisitor(final QueueManagingVirtualHost<?> virtualHost,
                                               final MessageStore store,
                                               final EventLogger eventLogger,
                                               final MessageStoreLogSubject logSubject,

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java Fri Nov  4 11:18:07 2016
@@ -45,6 +45,7 @@ import org.apache.qpid.server.store.Conf
 import org.apache.qpid.server.store.ConfiguredObjectRecordImpl;
 import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.server.store.VirtualHostStoreUpgraderAndRecoverer;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public abstract class AbstractStandardVirtualHostNode<X extends AbstractStandardVirtualHostNode<X>> extends AbstractVirtualHostNode<X>
                 implements VirtualHostNode<X>
@@ -107,11 +108,11 @@ public abstract class AbstractStandardVi
 
         getEventLogger().message(getConfigurationStoreLogSubject(), ConfigStoreMessages.RECOVERY_COMPLETE());
 
-        VirtualHost<?>  host = getVirtualHost();
+        QueueManagingVirtualHost<?>  host = getVirtualHost();
 
         if (host != null)
         {
-            final VirtualHost<?> recoveredHost = host;
+            final QueueManagingVirtualHost<?> recoveredHost = host;
             final ListenableFuture<Void> openFuture;
             recoveredHost.setFirstOpening(isNew && initialRecords.length == 0);
             openFuture = Subject.doAs(getSubjectWithAddedSystemRights(),
@@ -132,6 +133,19 @@ public abstract class AbstractStandardVi
         }
     }
 
+    @Override
+    public QueueManagingVirtualHost<?> getVirtualHost()
+    {
+        VirtualHost<?> vhost = super.getVirtualHost();
+        if(vhost == null || vhost instanceof QueueManagingVirtualHost)
+        {
+            return (QueueManagingVirtualHost<?>)vhost;
+        }
+        else
+        {
+            throw new IllegalStateException(this + " has a virtual host which is not a queue managing virtual host " + vhost);
+        }
+    }
 
     @Override
     protected ConfiguredObjectRecord enrichInitialVirtualHostRootRecord(final ConfiguredObjectRecord vhostRecord)

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java Fri Nov  4 11:18:07 2016
@@ -20,15 +20,12 @@
  */
 package org.apache.qpid.server.virtualhostnode;
 
-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;
 
@@ -41,23 +38,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;
 
 @ManagedObject( category = false, type = RedirectingVirtualHostImpl.VIRTUAL_HOST_TYPE, register = false,
@@ -72,42 +63,8 @@ class RedirectingVirtualHostImpl
     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 _numberOfSelectors;
-
-    @ManagedAttributeField
-    private int _connectionThreadPoolSize;
-
-    @ManagedAttributeField
-    private List<String> _enabledConnectionValidators;
-
-    @ManagedAttributeField
-    private List<String> _disabledConnectionValidators;
-
-    @ManagedAttributeField
     private List<String> _globalAddressDomains;
 
-    @ManagedAttributeField
-    private List<NodeAutoCreationPolicy> _nodeAutoCreationPolicies;
 
     @ManagedObjectFactoryConstructor
     public RedirectingVirtualHostImpl(final Map<String, Object> attributes, VirtualHostNode<?> virtualHostNode)
@@ -148,11 +105,6 @@ class RedirectingVirtualHostImpl
         return BrokerModel.MODEL_VERSION;
     }
 
-    @Override
-    public void executeTask(final String name, Runnable task, AccessControlContext context)
-    {
-        throwUnsupportedForRedirector();
-    }
 
     @Override
     protected <C extends ConfiguredObject> ListenableFuture<C> addChildAsync(final Class<C> childClass,
@@ -176,125 +128,12 @@ class RedirectingVirtualHostImpl
     }
 
     @Override
-    public <T extends ConfiguredObject<?>> T getAttainedChildFromAddress(final Class<T> childClass,
-                                                                         final String address)
-    {
-        return null;
-    }
-
-    @Override
-    public void executeTransaction(final TransactionalOperation op)
-    {
-        throwUnsupportedForRedirector();
-    }
-
-    @Override
     public String getRedirectHost(final AmqpPort<?> port)
     {
         return ((RedirectingVirtualHostNode<?>)(getParent(VirtualHostNode.class))).getRedirects().get(port);
     }
 
-    @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()
@@ -303,58 +142,12 @@ class RedirectingVirtualHostImpl
     }
 
     @Override
-    public Connection<?> getConnection(String name)
-    {
-        return null;
-    }
-
-    @Override
-    public Map<String, Object> extractConfig(boolean includeSecureAttributes)
-    {
-        return Collections.emptyMap();
-    }
-
-    @Override
-    public Content exportMessageStore()
-    {
-        throwUnsupportedForRedirector();
-
-        return null;
-    }
-
-    @Override
-    public void importMessageStore(final String source)
-    {
-        throwUnsupportedForRedirector();
-    }
-
-    @Override
-    public int publishMessage(final ManageableMessage message)
-    {
-        throwUnsupportedForRedirector();
-        return 0;
-    }
-
-    @Override
     public MessageSource getAttainedMessageSource(final String name)
     {
         return null;
     }
 
     @Override
-    public Queue<?> getAttainedQueue(final UUID id)
-    {
-        return null;
-    }
-
-
-    @Override
-    public DurableConfigurationStore getDurableConfigurationStore()
-    {
-        return null;
-    }
-
-    @Override
     public MessageDestination getDefaultDestination()
     {
         return null;
@@ -405,10 +198,6 @@ class RedirectingVirtualHostImpl
         return 0l;
     }
 
-    @Override
-    public void scheduleHouseKeepingTask(final long period, final HouseKeepingTask task)
-    {
-    }
 
     @Override
     public DtxRegistry getDtxRegistry()
@@ -423,13 +212,6 @@ class RedirectingVirtualHostImpl
     }
 
     @Override
-    public ScheduledFuture<?> scheduleTask(final long delay, final Runnable timeoutTask)
-    {
-        throwUnsupportedForRedirector();
-        return null;
-    }
-
-    @Override
     public EventLogger getEventLogger()
     {
         return null;
@@ -442,41 +224,12 @@ class RedirectingVirtualHostImpl
     }
 
     @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;
@@ -501,12 +254,6 @@ class RedirectingVirtualHostImpl
     }
 
     @Override
-    public void setFirstOpening(final boolean firstOpening)
-    {
-
-    }
-
-    @Override
     public UserPreferences createUserPreferences(final ConfiguredObject<?> object)
     {
         throwUnsupportedForRedirector();

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java Fri Nov  4 11:18:07 2016
@@ -31,10 +31,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.model.VirtualHostNode;
-import org.apache.qpid.test.utils.QpidTestCase;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
@@ -45,15 +41,20 @@ import org.apache.qpid.server.logging.Ev
 import org.apache.qpid.server.message.AMQMessageHeader;
 import org.apache.qpid.server.message.InstanceProperties;
 import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.BrokerModel;
 import org.apache.qpid.server.model.Exchange;
 import org.apache.qpid.server.model.Queue;
+import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.VirtualHostNode;
 import org.apache.qpid.server.queue.BaseQueue;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
+import org.apache.qpid.test.utils.QpidTestCase;
 
 public class FanoutExchangeTest extends QpidTestCase
 {
     private FanoutExchange _exchange;
-    private VirtualHost _virtualHost;
+    private QueueManagingVirtualHost _virtualHost;
     private TaskExecutor _taskExecutor;
 
     public void setUp()
@@ -74,7 +75,7 @@ public class FanoutExchangeTest extends
 
         _taskExecutor = new CurrentThreadTaskExecutor();
         _taskExecutor.start();
-        _virtualHost = mock(VirtualHost.class);
+        _virtualHost = mock(QueueManagingVirtualHost.class);
 
         when(_virtualHost.getEventLogger()).thenReturn(new EventLogger());
         when(_virtualHost.getTaskExecutor()).thenReturn(_taskExecutor);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java Fri Nov  4 11:18:07 2016
@@ -34,9 +34,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.VirtualHostNode;
-import org.apache.qpid.test.utils.QpidTestCase;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
@@ -47,17 +44,21 @@ import org.apache.qpid.server.logging.Ev
 import org.apache.qpid.server.message.AMQMessageHeader;
 import org.apache.qpid.server.message.InstanceProperties;
 import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.BrokerModel;
 import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl;
 import org.apache.qpid.server.model.Exchange;
 import org.apache.qpid.server.model.Queue;
 import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.VirtualHostNode;
 import org.apache.qpid.server.queue.BaseQueue;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
+import org.apache.qpid.test.utils.QpidTestCase;
 
 public class HeadersExchangeTest extends QpidTestCase
 {
     private HeadersExchange _exchange;
-    private VirtualHost _virtualHost;
+    private QueueManagingVirtualHost _virtualHost;
     private TaskExecutor _taskExecutor;
     private ConfiguredObjectFactoryImpl _factory;
 
@@ -68,7 +69,7 @@ public class HeadersExchangeTest extends
 
         _taskExecutor = new CurrentThreadTaskExecutor();
         _taskExecutor.start();
-        _virtualHost = mock(VirtualHost.class);
+        _virtualHost = mock(QueueManagingVirtualHost.class);
 
         Broker broker = mock(Broker.class);
         when(broker.getCategoryClass()).thenReturn(Broker.class);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java Fri Nov  4 11:18:07 2016
@@ -53,6 +53,7 @@ import org.apache.qpid.server.store.pref
 import org.apache.qpid.server.transport.AMQPConnection;
 import org.apache.qpid.server.virtualhost.AbstractVirtualHost;
 import org.apache.qpid.server.virtualhost.QueueExistsException;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.server.virtualhost.TestMemoryVirtualHost;
 import org.apache.qpid.test.utils.QpidTestCase;
 
@@ -156,13 +157,13 @@ public class BrokerTestHelper
     {
     }
 
-    public static VirtualHost<?> createVirtualHost(Map<String, Object> attributes)
+    public static QueueManagingVirtualHost<?> createVirtualHost(Map<String, Object> attributes)
     {
         Broker<?> broker = createBrokerMock(createAccessControlMock());
         return createVirtualHost(attributes, broker, false, createAccessControlMock());
     }
 
-    private static VirtualHost<?> createVirtualHost(final Map<String, Object> attributes,
+    private static QueueManagingVirtualHost<?> createVirtualHost(final Map<String, Object> attributes,
                                                         final Broker<?> broker, boolean defaultVHN, AccessControl accessControl)
     {
         ConfiguredObjectFactory objectFactory = broker.getObjectFactory();
@@ -201,17 +202,17 @@ public class BrokerTestHelper
         return host;
     }
 
-    public static VirtualHost<?> createVirtualHost(String name) throws Exception
+    public static QueueManagingVirtualHost<?> createVirtualHost(String name) throws Exception
     {
         return createVirtualHost(name, createBrokerMock(createAccessControlMock()), false, createAccessControlMock());
     }
 
-    public static VirtualHost<?> createVirtualHost(String name, Broker<?> broker, boolean defaultVHN) throws Exception
+    public static QueueManagingVirtualHost<?> createVirtualHost(String name, Broker<?> broker, boolean defaultVHN) throws Exception
     {
         return createVirtualHost(name, broker, defaultVHN, createAccessControlMock());
     }
 
-    private static VirtualHost<?> createVirtualHost(String name, Broker<?> broker, boolean defaultVHN, AccessControl accessControl) throws Exception
+    private static QueueManagingVirtualHost<?> createVirtualHost(String name, Broker<?> broker, boolean defaultVHN, AccessControl accessControl) throws Exception
     {
         Map<String,Object> attributes = new HashMap<>();
         attributes.put(org.apache.qpid.server.model.VirtualHost.TYPE, TestMemoryVirtualHost.VIRTUAL_HOST_TYPE);
@@ -252,7 +253,7 @@ public class BrokerTestHelper
 
     public static Exchange<?> createExchange(String hostName, final boolean durable, final EventLogger eventLogger) throws Exception
     {
-        final VirtualHost virtualHost =  mockWithSystemPrincipal(VirtualHost.class, SYSTEM_PRINCIPAL);
+        final QueueManagingVirtualHost virtualHost =  mockWithSystemPrincipal(QueueManagingVirtualHost.class, SYSTEM_PRINCIPAL);
         when(virtualHost.getName()).thenReturn(hostName);
         when(virtualHost.getEventLogger()).thenReturn(eventLogger);
         when(virtualHost.getDurableConfigurationStore()).thenReturn(mock(DurableConfigurationStore.class));

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java Fri Nov  4 11:18:07 2016
@@ -67,6 +67,7 @@ import org.apache.qpid.server.store.pref
 import org.apache.qpid.server.transport.AMQPConnection;
 import org.apache.qpid.server.transport.AbstractAMQPConnection;
 import org.apache.qpid.server.util.Action;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.server.virtualhost.TestMemoryVirtualHost;
 import org.apache.qpid.server.virtualhost.VirtualHostUnavailableException;
 import org.apache.qpid.test.utils.QpidTestCase;
@@ -78,7 +79,7 @@ public class VirtualHostTest extends Qpi
     private TaskExecutor _taskExecutor;
     private VirtualHostNode _virtualHostNode;
     private DurableConfigurationStore _configStore;
-    private VirtualHost<?> _virtualHost;
+    private QueueManagingVirtualHost<?> _virtualHost;
     private StoreConfigurationChangeListener _storeConfigurationChangeListener;
     private PreferenceStore _preferenceStore;
 
@@ -144,7 +145,7 @@ public class VirtualHostTest extends Qpi
     public void testNewVirtualHost()
     {
         String virtualHostName = getName();
-        VirtualHost<?> virtualHost = createVirtualHost(virtualHostName);
+        QueueManagingVirtualHost<?> virtualHost = createVirtualHost(virtualHostName);
 
         assertNotNull("Unexpected id", virtualHost.getId());
         assertEquals("Unexpected name", virtualHostName, virtualHost.getName());
@@ -172,11 +173,11 @@ public class VirtualHostTest extends Qpi
         VirtualHost<?> virtualHost = createVirtualHost(virtualHostName);
         assertEquals("Unexpected state", State.ACTIVE, virtualHost.getState());
 
-        virtualHost.stop();
+        ((AbstractConfiguredObject<?>)virtualHost).stop();
         assertEquals("Unexpected state", State.STOPPED, virtualHost.getState());
         verify(_preferenceStore).close();
 
-        virtualHost.start();
+        ((AbstractConfiguredObject<?>)virtualHost).start();
         assertEquals("Unexpected state", State.ACTIVE, virtualHost.getState());
 
         verify(_configStore, times(1)).update(eq(true), matchesRecord(virtualHost.getId(), virtualHost.getType()));
@@ -215,7 +216,7 @@ public class VirtualHostTest extends Qpi
         }
 
 
-        virtualHost.stop();
+        ((AbstractConfiguredObject<?>)virtualHost).stop();
         assertEquals("Unexpected state", State.STOPPED, virtualHost.getState());
         assertEquals("Unexpected number of queues after stop", 0, virtualHost.getChildren(Queue.class).size());
         assertEquals("Unexpected number of exchanges after stop", 0, virtualHost.getChildren(Exchange.class).size());
@@ -240,7 +241,7 @@ public class VirtualHostTest extends Qpi
             }
         }).when(_configStore).reload(any(ConfiguredObjectRecordHandler.class));
 
-        virtualHost.start();
+        ((AbstractConfiguredObject<?>)virtualHost).start();
         assertEquals("Unexpected state", State.ACTIVE, virtualHost.getState());
 
         assertEquals("Unexpected number of queues after restart", 1, virtualHost.getChildren(Queue.class).size());
@@ -252,7 +253,7 @@ public class VirtualHostTest extends Qpi
     {
         String virtualHostName = getName();
 
-        VirtualHost<?> virtualHost = createVirtualHost(virtualHostName);
+        QueueManagingVirtualHost<?> virtualHost = createVirtualHost(virtualHostName);
         assertEquals("Unexpected state", State.ACTIVE, virtualHost.getState());
 
         AbstractAMQPConnection connection = createMockProtocolConnection(virtualHost);
@@ -264,7 +265,7 @@ public class VirtualHostTest extends Qpi
 
         assertEquals("Unexpected number of connections after connection registered", 1, virtualHost.getConnectionCount());
 
-        virtualHost.stop();
+        ((AbstractConfiguredObject<?>)virtualHost).stop();
         assertEquals("Unexpected state", State.STOPPED, virtualHost.getState());
 
         assertEquals("Unexpected number of connections after virtualhost stopped",
@@ -278,7 +279,7 @@ public class VirtualHostTest extends Qpi
     {
         String virtualHostName = getName();
 
-        VirtualHost<?> virtualHost = createVirtualHost(virtualHostName);
+        QueueManagingVirtualHost<?> virtualHost = createVirtualHost(virtualHostName);
         assertEquals("Unexpected state", State.ACTIVE, virtualHost.getState());
 
         AbstractAMQPConnection connection = createMockProtocolConnection(virtualHost);
@@ -374,7 +375,7 @@ public class VirtualHostTest extends Qpi
 
         try
         {
-            virtualHost.stop();
+            ((AbstractConfiguredObject<?>)virtualHost).stop();
             fail("Exception not thrown");
         }
         catch (AccessControlException ace)
@@ -419,7 +420,7 @@ public class VirtualHostTest extends Qpi
     {
         try
         {
-            createVirtualHost(getTestName(), Collections.<String, Object>singletonMap(VirtualHost.NUMBER_OF_SELECTORS, "-1"));
+            createVirtualHost(getTestName(), Collections.<String, Object>singletonMap(QueueManagingVirtualHost.NUMBER_OF_SELECTORS, "-1"));
             fail("Exception not thrown for negative number of selectors");
         }
         catch (IllegalConfigurationException e)
@@ -428,7 +429,7 @@ public class VirtualHostTest extends Qpi
         }
         try
         {
-            createVirtualHost(getTestName(), Collections.<String, Object>singletonMap(VirtualHost.CONNECTION_THREAD_POOL_SIZE, "-1"));
+            createVirtualHost(getTestName(), Collections.<String, Object>singletonMap(QueueManagingVirtualHost.CONNECTION_THREAD_POOL_SIZE, "-1"));
             fail("Exception not thrown for negative connection thread pool size");
         }
         catch (IllegalConfigurationException e)
@@ -437,7 +438,7 @@ public class VirtualHostTest extends Qpi
         }
         try
         {
-            createVirtualHost(getTestName(), Collections.<String, Object>singletonMap(VirtualHost.NUMBER_OF_SELECTORS, VirtualHost.DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE));
+            createVirtualHost(getTestName(), Collections.<String, Object>singletonMap(QueueManagingVirtualHost.NUMBER_OF_SELECTORS, QueueManagingVirtualHost.DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE));
             fail("Exception not thrown for number of selectors equal to connection thread pool size");
         }
         catch (IllegalConfigurationException e)
@@ -448,10 +449,10 @@ public class VirtualHostTest extends Qpi
 
     public void testChangeValidation() throws Exception
     {
-        VirtualHost<?> virtualHost = createVirtualHost(getTestName());
+        QueueManagingVirtualHost<?> virtualHost = createVirtualHost(getTestName());
         try
         {
-            virtualHost.setAttributes(Collections.<String, Object>singletonMap(VirtualHost.NUMBER_OF_SELECTORS, "-1"));
+            virtualHost.setAttributes(Collections.<String, Object>singletonMap(QueueManagingVirtualHost.NUMBER_OF_SELECTORS, "-1"));
             fail("Exception not thrown for negative number of selectors");
         }
         catch (IllegalConfigurationException e)
@@ -460,7 +461,7 @@ public class VirtualHostTest extends Qpi
         }
         try
         {
-            virtualHost.setAttributes(Collections.<String, Object>singletonMap(VirtualHost.CONNECTION_THREAD_POOL_SIZE,
+            virtualHost.setAttributes(Collections.<String, Object>singletonMap(QueueManagingVirtualHost.CONNECTION_THREAD_POOL_SIZE,
                                                                                "-1"));
             fail("Exception not thrown for negative connection thread pool size");
         }
@@ -470,7 +471,7 @@ public class VirtualHostTest extends Qpi
         }
         try
         {
-            virtualHost.setAttributes(Collections.<String, Object>singletonMap(VirtualHost.NUMBER_OF_SELECTORS, VirtualHost.DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE));
+            virtualHost.setAttributes(Collections.<String, Object>singletonMap(QueueManagingVirtualHost.NUMBER_OF_SELECTORS, QueueManagingVirtualHost.DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_SIZE));
             fail("Exception not thrown for number of selectors equal to connection thread pool size");
         }
         catch (IllegalConfigurationException e)
@@ -481,7 +482,7 @@ public class VirtualHostTest extends Qpi
 
     public void testRegisterConnection() throws Exception
     {
-        VirtualHost<?> vhost = createVirtualHost("sdf");
+        QueueManagingVirtualHost<?> vhost = createVirtualHost("sdf");
         AMQPConnection<?> connection = getMockConnection();
 
         assertEquals("unexpected number of connections before test", 0, vhost.getConnectionCount());
@@ -492,23 +493,23 @@ public class VirtualHostTest extends Qpi
 
     public void testStopVirtualhostClosesConnections() throws Exception
     {
-        VirtualHost<?> vhost = createVirtualHost("sdf");
+        QueueManagingVirtualHost<?> vhost = createVirtualHost("sdf");
         AMQPConnection<?> connection = getMockConnection();
 
         vhost.registerConnection(connection);
         assertEquals("unexpected number of connections after registerConnection", 1, vhost.getConnectionCount());
         assertEquals("unexpected connection object", Collections.singleton(connection), vhost.getConnections());
-        vhost.stop();
+        ((AbstractConfiguredObject<?>)vhost).stop();
         verify(connection).stopConnection();
         verify(connection).closeAsync();
     }
 
     public void testRegisterConnectionOnStoppedVirtualhost() throws Exception
     {
-        VirtualHost<?> vhost = createVirtualHost("sdf");
+        QueueManagingVirtualHost<?> vhost = createVirtualHost("sdf");
         AMQPConnection<?> connection = getMockConnection();
 
-        vhost.stop();
+        ((AbstractConfiguredObject<?>)vhost).stop();
         try
         {
             vhost.registerConnection(connection);
@@ -519,7 +520,7 @@ public class VirtualHostTest extends Qpi
             // pass
         }
         assertEquals("unexpected number of connections", 0, vhost.getConnectionCount());
-        vhost.start();
+        ((AbstractConfiguredObject<?>)vhost).start();
         vhost.registerConnection(connection);
         assertEquals("unexpected number of connections", 1, vhost.getConnectionCount());
     }
@@ -532,12 +533,12 @@ public class VirtualHostTest extends Qpi
         return connection;
     }
 
-    private VirtualHost<?> createVirtualHost(final String virtualHostName)
+    private QueueManagingVirtualHost<?> createVirtualHost(final String virtualHostName)
     {
         return createVirtualHost(virtualHostName, Collections.<String, Object>emptyMap());
     }
 
-    private VirtualHost<?> createVirtualHost(final String virtualHostName, Map<String,Object> attributes)
+    private QueueManagingVirtualHost<?> createVirtualHost(final String virtualHostName, Map<String,Object> attributes)
     {
         Map<String, Object> vhAttributes = new HashMap<>();
         vhAttributes.put(VirtualHost.NAME, virtualHostName);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java Fri Nov  4 11:18:07 2016
@@ -40,10 +40,6 @@ import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.qpid.server.model.Binding;
-import org.apache.qpid.server.model.Exchange;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.util.StateChangeListener;
 import org.mockito.ArgumentCaptor;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
@@ -60,12 +56,16 @@ import org.apache.qpid.server.message.Me
 import org.apache.qpid.server.message.MessageReference;
 import org.apache.qpid.server.message.MessageSource;
 import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.Binding;
+import org.apache.qpid.server.model.BrokerTestHelper;
+import org.apache.qpid.server.model.Exchange;
 import org.apache.qpid.server.model.Queue;
 import org.apache.qpid.server.model.QueueNotificationListener;
 import org.apache.qpid.server.queue.AbstractQueue.QueueEntryFilter;
 import org.apache.qpid.server.store.TransactionLogResource;
 import org.apache.qpid.server.util.Action;
-import org.apache.qpid.server.model.BrokerTestHelper;
+import org.apache.qpid.server.util.StateChangeListener;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.test.utils.QpidTestCase;
 
 abstract class AbstractQueueTestBase extends QpidTestCase
@@ -73,7 +73,7 @@ abstract class AbstractQueueTestBase ext
     private static final Logger _logger = LoggerFactory.getLogger(AbstractQueueTestBase.class);
     private long _queueRunnerWaitTime;
     private Queue<?> _queue;
-    private VirtualHost<?> _virtualHost;
+    private QueueManagingVirtualHost<?> _virtualHost;
     private String _qname = "qname";
     private String _owner = "owner";
     private String _routingKey = "routing key";
@@ -1205,7 +1205,7 @@ abstract class AbstractQueueTestBase ext
     }
 
 
-    public VirtualHost<?> getVirtualHost()
+    public QueueManagingVirtualHost<?> getVirtualHost()
     {
         return _virtualHost;
     }

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/LastValueQueueListTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/LastValueQueueListTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/LastValueQueueListTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/LastValueQueueListTest.java Fri Nov  4 11:18:07 2016
@@ -40,6 +40,7 @@ import org.apache.qpid.server.model.Conf
 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;
 import org.apache.qpid.test.utils.QpidTestCase;
 
 public class LastValueQueueListTest extends QpidTestCase
@@ -61,7 +62,7 @@ public class LastValueQueueListTest exte
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, getName());
         queueAttributes.put(LastValueQueue.LVQ_KEY, CONFLATION_KEY);
-        final VirtualHost virtualHost = mock(VirtualHost.class);
+        final QueueManagingVirtualHost virtualHost = mock(QueueManagingVirtualHost.class);
         when(virtualHost.getEventLogger()).thenReturn(new EventLogger());
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(factory);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/PriorityQueueListTest.java Fri Nov  4 11:18:07 2016
@@ -36,12 +36,12 @@ import org.apache.qpid.server.message.AM
 import org.apache.qpid.server.message.MessageReference;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.BrokerModel;
+import org.apache.qpid.server.model.BrokerTestHelper;
 import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl;
 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.model.BrokerTestHelper;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.test.utils.QpidTestCase;
 
 public class PriorityQueueListTest extends QpidTestCase
@@ -62,7 +62,7 @@ public class PriorityQueueListTest exten
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, getName());
         queueAttributes.put(PriorityQueue.PRIORITIES, 10);
-        final VirtualHost virtualHost = mock(VirtualHost.class);
+        final QueueManagingVirtualHost virtualHost = mock(QueueManagingVirtualHost.class);
         when(virtualHost.getEventLogger()).thenReturn(new EventLogger());
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(factory);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java Fri Nov  4 11:18:07 2016
@@ -45,9 +45,9 @@ import org.apache.qpid.server.model.Brok
 import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl;
 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.util.StateChangeListener;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.test.utils.QpidTestCase;
 
 /**
@@ -285,7 +285,7 @@ public abstract class QueueEntryImplTest
         Map<String,Object> queueAttributes = new HashMap<String, Object>();
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, getName());
-        final VirtualHost virtualHost = mock(VirtualHost.class);
+        final QueueManagingVirtualHost virtualHost = mock(QueueManagingVirtualHost.class);
         when(virtualHost.getEventLogger()).thenReturn(new EventLogger());
 
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueMessageRecoveryTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueMessageRecoveryTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueMessageRecoveryTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/QueueMessageRecoveryTest.java Fri Nov  4 11:18:07 2016
@@ -33,18 +33,18 @@ import java.util.UUID;
 import org.apache.qpid.server.message.MessageInstance;
 import org.apache.qpid.server.message.MessageReference;
 import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.BrokerTestHelper;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.store.MessageEnqueueRecord;
 import org.apache.qpid.server.store.StoredMessage;
 import org.apache.qpid.server.store.TransactionLogResource;
 import org.apache.qpid.server.util.Action;
-import org.apache.qpid.server.model.BrokerTestHelper;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.test.utils.QpidTestCase;
 
 public class QueueMessageRecoveryTest extends QpidTestCase
 {
-    VirtualHost<?> _vhost;
+    QueueManagingVirtualHost<?> _vhost;
 
     @Override
     public void setUp() throws Exception
@@ -195,7 +195,7 @@ public class QueueMessageRecoveryTest ex
         private final List<ServerMessage<?>> _messageList;
 
         protected TestQueue(final Map<String, Object> attributes,
-                            final VirtualHost<?> virtualHost,
+                            final QueueManagingVirtualHost<?> virtualHost,
                             final List<ServerMessage<?>> messageList)
         {
             super(attributes, virtualHost);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java Fri Nov  4 11:18:07 2016
@@ -38,8 +38,8 @@ import org.apache.qpid.server.model.Brok
 import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl;
 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 SimpleQueueEntryImplTest extends QueueEntryImplTestBase
 {
@@ -52,7 +52,7 @@ public class SimpleQueueEntryImplTest ex
         Map<String,Object> queueAttributes = new HashMap<String, Object>();
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, "SimpleQueueEntryImplTest");
-        final VirtualHost virtualHost = mock(VirtualHost.class);
+        final QueueManagingVirtualHost virtualHost = mock(QueueManagingVirtualHost.class);
         when(virtualHost.getEventLogger()).thenReturn(new EventLogger());
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(factory);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryListTest.java Fri Nov  4 11:18:07 2016
@@ -42,8 +42,8 @@ import org.apache.qpid.server.model.Conf
 import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl;
 import org.apache.qpid.server.model.LifetimePolicy;
 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 SortedQueueEntryListTest extends QueueEntryListTestBase
 {
@@ -90,7 +90,7 @@ public class SortedQueueEntryListTest ex
         attributes.put(SortedQueue.SORT_KEY, "KEY");
 
         // Create test list
-        final VirtualHost virtualHost = mock(VirtualHost.class);
+        final QueueManagingVirtualHost virtualHost = mock(QueueManagingVirtualHost.class);
         when(virtualHost.getEventLogger()).thenReturn(new EventLogger());
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(factory);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryTest.java Fri Nov  4 11:18:07 2016
@@ -41,8 +41,8 @@ import org.apache.qpid.server.model.Conf
 import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl;
 import org.apache.qpid.server.model.LifetimePolicy;
 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 SortedQueueEntryTest extends QueueEntryImplTestBase
 {
@@ -61,7 +61,7 @@ public class SortedQueueEntryTest extend
         attributes.put(Queue.LIFETIME_POLICY, LifetimePolicy.PERMANENT);
         attributes.put(SortedQueue.SORT_KEY, "KEY");
 
-        final VirtualHost virtualHost = mock(VirtualHost.class);
+        final QueueManagingVirtualHost virtualHost = mock(QueueManagingVirtualHost.class);
         when(virtualHost.getEventLogger()).thenReturn(new EventLogger());
         ConfiguredObjectFactory factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(factory);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueEntryListTest.java Fri Nov  4 11:18:07 2016
@@ -39,8 +39,8 @@ import org.apache.qpid.server.message.Se
 import org.apache.qpid.server.model.BrokerModel;
 import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl;
 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 StandardQueueEntryListTest extends QueueEntryListTestBase
 {
@@ -60,7 +60,7 @@ public class StandardQueueEntryListTest
         Map<String,Object> queueAttributes = new HashMap<String, Object>();
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, getName());
-        final VirtualHost virtualHost = mock(VirtualHost.class);
+        final QueueManagingVirtualHost virtualHost = mock(QueueManagingVirtualHost.class);
         when(virtualHost.getEventLogger()).thenReturn(new EventLogger());
         _factory = new ConfiguredObjectFactoryImpl(BrokerModel.getInstance());
         when(virtualHost.getObjectFactory()).thenReturn(_factory);
@@ -113,7 +113,7 @@ public class StandardQueueEntryListTest
             Map<String,Object> queueAttributes = new HashMap<String, Object>();
             queueAttributes.put(Queue.ID, UUID.randomUUID());
             queueAttributes.put(Queue.NAME, getName());
-            final VirtualHost virtualHost = mock(VirtualHost.class);
+            final QueueManagingVirtualHost virtualHost = mock(QueueManagingVirtualHost.class);
             when(virtualHost.getEventLogger()).thenReturn(new EventLogger());
             when(virtualHost.getObjectFactory()).thenReturn(_factory);
             when(virtualHost.getModel()).thenReturn(_factory.getModel());

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java Fri Nov  4 11:18:07 2016
@@ -36,9 +36,9 @@ import org.apache.qpid.server.message.Me
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.LifetimePolicy;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.store.MessageDurability;
 import org.apache.qpid.server.store.MessageEnqueueRecord;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
 public class StandardQueueTest extends AbstractQueueTestBase
 {
@@ -261,7 +261,7 @@ public class StandardQueueTest extends A
 
         private QueueEntryList _entries = new DequeuedQueueEntryList(this);
 
-        public DequeuedQueue(VirtualHost<?> virtualHost)
+        public DequeuedQueue(QueueManagingVirtualHost<?> virtualHost)
         {
             super(attributes(), virtualHost);
         }

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecovererTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecovererTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecovererTest.java Fri Nov  4 11:18:07 2016
@@ -33,7 +33,6 @@ import com.google.common.util.concurrent
 
 import org.apache.qpid.server.logging.EventLogger;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.store.TransactionLogResource;
 import org.apache.qpid.server.store.handler.MessageInstanceHandler;
@@ -42,7 +41,7 @@ import org.apache.qpid.test.utils.QpidTe
 
 public class AsynchronousMessageStoreRecovererTest extends QpidTestCase
 {
-    private VirtualHost _virtualHost;
+    private QueueManagingVirtualHost _virtualHost;
     private MessageStore _store;
     private MessageStore.MessageStoreReader _storeReader;
 
@@ -51,7 +50,7 @@ public class AsynchronousMessageStoreRec
     {
         super.setUp();
 
-        _virtualHost = mock(VirtualHost.class);
+        _virtualHost = mock(QueueManagingVirtualHost.class);
         _store = mock(MessageStore.class);
         _storeReader = mock(MessageStore.MessageStoreReader.class);
 

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecovererTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecovererTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecovererTest.java Fri Nov  4 11:18:07 2016
@@ -32,15 +32,13 @@ import static org.mockito.Mockito.when;
 
 import java.util.UUID;
 
-import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.test.utils.QpidTestCase;
 import org.mockito.ArgumentMatcher;
 
 import org.apache.qpid.server.logging.EventLogger;
 import org.apache.qpid.server.message.EnqueueableMessage;
 import org.apache.qpid.server.message.MessageInstance;
 import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.Queue;
 import org.apache.qpid.server.queue.QueueEntry;
 import org.apache.qpid.server.store.MessageDurability;
 import org.apache.qpid.server.store.MessageEnqueueRecord;
@@ -58,18 +56,19 @@ import org.apache.qpid.server.store.hand
 import org.apache.qpid.server.txn.DtxBranch;
 import org.apache.qpid.server.txn.DtxRegistry;
 import org.apache.qpid.server.util.Action;
+import org.apache.qpid.test.utils.QpidTestCase;
 import org.apache.qpid.transport.Xid;
 
 public class SynchronousMessageStoreRecovererTest extends QpidTestCase
 {
-    private VirtualHost<?> _virtualHost;
+    private QueueManagingVirtualHost<?> _virtualHost;
 
     @Override
     protected void setUp() throws Exception
     {
         super.setUp();
 
-        _virtualHost = mock(VirtualHost.class);
+        _virtualHost = mock(QueueManagingVirtualHost.class);
         when(_virtualHost.getEventLogger()).thenReturn(new EventLogger());
 
     }

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostQueueCreationTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostQueueCreationTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostQueueCreationTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostQueueCreationTest.java Fri Nov  4 11:18:07 2016
@@ -182,7 +182,7 @@ public class VirtualHostQueueCreationTes
     {
 
         String queueName = "testDeadLetterQueueEnabled";
-        String dlExchangeName = queueName + VirtualHost.DEFAULT_DLE_NAME_SUFFIX;
+        String dlExchangeName = queueName + QueueManagingVirtualHost.DEFAULT_DLE_NAME_SUFFIX;
         String dlQueueName = queueName + AbstractVirtualHost.DEFAULT_DLQ_NAME_SUFFIX;
 
         assertNull("The DLQ should not yet exist", _virtualHost.getChildByName(Queue.class, dlQueueName));
@@ -222,7 +222,7 @@ public class VirtualHostQueueCreationTes
     {
 
         String queueName = "testDeadLetterQueueEnabled";
-        String dlExchangeName = queueName + VirtualHost.DEFAULT_DLE_NAME_SUFFIX;
+        String dlExchangeName = queueName + QueueManagingVirtualHost.DEFAULT_DLE_NAME_SUFFIX;
         String dlQueueName = queueName + AbstractVirtualHost.DEFAULT_DLQ_NAME_SUFFIX;
 
         assertNull("The DLQ should not yet exist", _virtualHost.getChildByName(Queue.class, dlQueueName));
@@ -265,7 +265,7 @@ public class VirtualHostQueueCreationTes
 
 
         String queueName = "testDeadLetterQueueDisabled";
-        String dlExchangeName = queueName + VirtualHost.DEFAULT_DLE_NAME_SUFFIX;
+        String dlExchangeName = queueName + QueueManagingVirtualHost.DEFAULT_DLE_NAME_SUFFIX;
         String dlQueueName = queueName + AbstractVirtualHost.DEFAULT_DLQ_NAME_SUFFIX;
 
         assertNull("The DLQ should not yet exist", _virtualHost.getChildByName(Queue.class, dlQueueName));
@@ -295,7 +295,7 @@ public class VirtualHostQueueCreationTes
     {
 
         String queueName = "testDeadLetterQueueNotCreatedForAutodeleteQueues";
-        String dlExchangeName = queueName + VirtualHost.DEFAULT_DLE_NAME_SUFFIX;
+        String dlExchangeName = queueName + QueueManagingVirtualHost.DEFAULT_DLE_NAME_SUFFIX;
         String dlQueueName = queueName + AbstractVirtualHost.DEFAULT_DLQ_NAME_SUFFIX;
 
         assertNull("The DLQ should not yet exist", _virtualHost.getChildByName(Queue.class, dlQueueName));
@@ -391,8 +391,8 @@ public class VirtualHostQueueCreationTes
         try
         {
             // change DLQ name to make its length bigger than exchange name
-            setTestSystemProperty(VirtualHost.PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX, "_DLE");
-            setTestSystemProperty(VirtualHost.PROPERTY_DEAD_LETTER_QUEUE_SUFFIX, "_DLQUEUE");
+            setTestSystemProperty(QueueManagingVirtualHost.PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX, "_DLE");
+            setTestSystemProperty(QueueManagingVirtualHost.PROPERTY_DEAD_LETTER_QUEUE_SUFFIX, "_DLQUEUE");
 
             Map<String,Object> attributes = new HashMap<String, Object>();
             attributes.put(Queue.ID, UUID.randomUUID());
@@ -421,8 +421,8 @@ public class VirtualHostQueueCreationTes
         try
         {
             // change DLQ name to make its length bigger than exchange name
-            setTestSystemProperty(VirtualHost.PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX, "_DLEXCHANGE");
-            setTestSystemProperty(VirtualHost.PROPERTY_DEAD_LETTER_QUEUE_SUFFIX, "_DLQ");
+            setTestSystemProperty(QueueManagingVirtualHost.PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX, "_DLEXCHANGE");
+            setTestSystemProperty(QueueManagingVirtualHost.PROPERTY_DEAD_LETTER_QUEUE_SUFFIX, "_DLQ");
 
             Map<String,Object> attributes = new HashMap<String, Object>();
             attributes.put(Queue.ID, UUID.randomUUID());

Modified: qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHost.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHost.java (original)
+++ qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHost.java Fri Nov  4 11:18:07 2016
@@ -20,11 +20,13 @@
 package org.apache.qpid.server.virtualhost.derby;
 
 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.FileBasedSettings;
 import org.apache.qpid.server.store.SizeMonitoringSettings;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
-public interface DerbyVirtualHost<X extends DerbyVirtualHost<X>> extends VirtualHost<X>, org.apache.qpid.server.store.FileBasedSettings, SizeMonitoringSettings
+public interface DerbyVirtualHost<X extends DerbyVirtualHost<X>> extends QueueManagingVirtualHost<X>,
+                                                                         FileBasedSettings,
+                                                                         SizeMonitoringSettings
 {
     String STORE_PATH = "storePath";
 
@@ -37,6 +39,4 @@ public interface DerbyVirtualHost<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/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java (original)
+++ qpid/java/trunk/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java Fri Nov  4 11:18:07 2016
@@ -20,12 +20,11 @@
 package org.apache.qpid.server.virtualhost.jdbc;
 
 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.jdbc.DefaultConnectionProviderFactory;
 import org.apache.qpid.server.store.jdbc.JDBCSettings;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 
-public interface JDBCVirtualHost<X extends JDBCVirtualHost<X>> extends VirtualHost<X>,
+public interface JDBCVirtualHost<X extends JDBCVirtualHost<X>> extends QueueManagingVirtualHost<X>,
                                                                        JDBCSettings
 {
     @ManagedAttribute(mandatory=true)
@@ -41,6 +40,4 @@ public interface JDBCVirtualHost<X exten
     @ManagedAttribute(secure=true)
     String getPassword();
 
-    @ManagedOperation(description = "Resets statistics on this object and all child objects", changesConfiguredObjectState = false, nonModifying = true)
-    void resetStatistics();
 }

Modified: qpid/java/trunk/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/VirtualHostLoggerTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/VirtualHostLoggerTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/VirtualHostLoggerTest.java (original)
+++ qpid/java/trunk/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/VirtualHostLoggerTest.java Fri Nov  4 11:18:07 2016
@@ -33,23 +33,17 @@ import java.util.Map;
 
 import ch.qos.logback.classic.spi.ILoggingEvent;
 import ch.qos.logback.core.Appender;
-
-import org.apache.qpid.server.logging.EventLogger;
-import org.apache.qpid.server.logging.LogFileDetails;
-import org.apache.qpid.server.logging.logback.VirtualHostFileLogger;
-import org.apache.qpid.server.logging.logback.VirtualHostFileLoggerImpl;
-import org.apache.qpid.server.model.BrokerTestHelper;
-import org.apache.qpid.server.security.AccessControl;
-import org.apache.qpid.server.store.DurableConfigurationStore;
-import org.apache.qpid.server.store.preferences.PreferenceStore;
-import org.apache.qpid.util.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
 import org.apache.qpid.server.configuration.updater.TaskExecutorImpl;
+import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.LogFileDetails;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.BrokerModel;
+import org.apache.qpid.server.model.BrokerTestHelper;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Model;
 import org.apache.qpid.server.model.State;
@@ -57,8 +51,12 @@ import org.apache.qpid.server.model.Syst
 import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.model.VirtualHostLogger;
 import org.apache.qpid.server.model.VirtualHostNode;
+import org.apache.qpid.server.security.AccessControl;
+import org.apache.qpid.server.store.DurableConfigurationStore;
+import org.apache.qpid.server.store.preferences.PreferenceStore;
 import org.apache.qpid.server.virtualhost.TestMemoryVirtualHost;
 import org.apache.qpid.test.utils.QpidTestCase;
+import org.apache.qpid.util.FileUtils;
 
 public class VirtualHostLoggerTest  extends QpidTestCase
 {
@@ -185,7 +183,7 @@ public class VirtualHostLoggerTest  exte
     public void testLoggersRemovedOnVirtualHostStop()
     {
         VirtualHostLogger logger = createVirtualHostLogger();
-        _virtualHost.stop();
+        ((AbstractConfiguredObject<?>)_virtualHost).stop();
 
         Appender<ILoggingEvent> appender = ((ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME))
                 .getAppender(logger.getName());

Modified: qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java (original)
+++ qpid/java/trunk/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java Fri Nov  4 11:18:07 2016
@@ -49,6 +49,7 @@ import org.apache.qpid.server.model.Virt
 import org.apache.qpid.server.queue.LastValueQueue;
 import org.apache.qpid.server.queue.PriorityQueue;
 import org.apache.qpid.server.queue.SortedQueue;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.test.utils.TestBrokerConfiguration;
 
 public class Asserts
@@ -75,9 +76,9 @@ public class Asserts
                                 ConfiguredObject.DESCRIPTION,
                                 ConfiguredObject.CONTEXT,
                                 ConfiguredObject.DESIRED_STATE,
-                                VirtualHost.ENABLED_CONNECTION_VALIDATORS,
-                                VirtualHost.DISABLED_CONNECTION_VALIDATORS,
-                                VirtualHost.GLOBAL_ADDRESS_DOMAINS,
+                                QueueManagingVirtualHost.ENABLED_CONNECTION_VALIDATORS,
+                                QueueManagingVirtualHost.DISABLED_CONNECTION_VALIDATORS,
+                                QueueManagingVirtualHost.GLOBAL_ADDRESS_DOMAINS,
                                 VirtualHost.TYPE,
                                 VirtualHost.PREFERENCE_STORE_ATTRIBUTES);
 
@@ -91,8 +92,8 @@ public class Asserts
                      virtualHost.get(VirtualHost.DURABLE));
         assertEquals("Unexpected value of attribute " + VirtualHost.LIFETIME_POLICY, LifetimePolicy.PERMANENT.name(),
                      virtualHost.get(VirtualHost.LIFETIME_POLICY));
-        assertEquals("Unexpected value of attribute " + VirtualHost.QUEUE_DEAD_LETTER_QUEUE_ENABLED, Boolean.FALSE,
-                     virtualHost.get(VirtualHost.QUEUE_DEAD_LETTER_QUEUE_ENABLED));
+        assertEquals("Unexpected value of attribute " + QueueManagingVirtualHost.QUEUE_DEAD_LETTER_QUEUE_ENABLED, Boolean.FALSE,
+                     virtualHost.get(QueueManagingVirtualHost.QUEUE_DEAD_LETTER_QUEUE_ENABLED));
 
         @SuppressWarnings("unchecked")
         Map<String, Object> statistics = (Map<String, Object>) virtualHost.get(STATISTICS_ATTRIBUTE);

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/queue/NodeAutoCreationPolicyTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/queue/NodeAutoCreationPolicyTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/queue/NodeAutoCreationPolicyTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/queue/NodeAutoCreationPolicyTest.java Fri Nov  4 11:18:07 2016
@@ -38,9 +38,9 @@ import javax.jms.Topic;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 import org.apache.qpid.server.model.Exchange;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.model.VirtualHostNode;
 import org.apache.qpid.server.virtualhost.NodeAutoCreationPolicy;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.test.utils.QpidBrokerTestCase;
 import org.apache.qpid.test.utils.TestBrokerConfiguration;
 
@@ -126,7 +126,7 @@ public class NodeAutoCreationPolicyTest
                     }
             };
 
-            blueprintMap.put(VirtualHost.NODE_AUTO_CREATION_POLICIES, Arrays.asList(policies));
+            blueprintMap.put(QueueManagingVirtualHost.NODE_AUTO_CREATION_POLICIES, Arrays.asList(policies));
             String newprint = mapper.writeValueAsString(blueprintMap);
             return newprint;
         }

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java?rev=1768014&r1=1768013&r2=1768014&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java Fri Nov  4 11:18:07 2016
@@ -70,6 +70,7 @@ import org.apache.qpid.server.transport.
 import org.apache.qpid.server.txn.AutoCommitTransaction;
 import org.apache.qpid.server.txn.ServerTransaction;
 import org.apache.qpid.server.model.BrokerTestHelper;
+import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
 import org.apache.qpid.server.virtualhost.TestMemoryVirtualHost;
 import org.apache.qpid.server.virtualhost.berkeleydb.BDBVirtualHost;
 import org.apache.qpid.server.virtualhostnode.JsonVirtualHostNode;
@@ -112,7 +113,7 @@ public class VirtualHostMessageStoreTest
 
     private String queueOwner = "MST";
 
-    private VirtualHost<?> _virtualHost;
+    private QueueManagingVirtualHost<?> _virtualHost;
     private String _storePath;
     private VirtualHostNode<?> _node;
     private TaskExecutor _taskExecutor;
@@ -155,7 +156,7 @@ public class VirtualHostMessageStoreTest
         virtualHostAttributes.putAll(attrs);
         _node.createChild(VirtualHost.class, virtualHostAttributes, _node);
 
-        _virtualHost = (VirtualHost<?>)_node.getVirtualHost();
+        _virtualHost = (QueueManagingVirtualHost<?>)_node.getVirtualHost();
 
     }
 
@@ -188,7 +189,7 @@ public class VirtualHostMessageStoreTest
         _node.start();
         currentState = _node.getState();
         assertEquals("Virtual host node is not active", State.ACTIVE, currentState);
-        _virtualHost = _node.getVirtualHost();
+        _virtualHost = (QueueManagingVirtualHost<?>) _node.getVirtualHost();
     }
 
     public void testQueueExchangeAndBindingCreation() throws Exception




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