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 2007/01/24 16:41:57 UTC

svn commit: r499446 [4/4] - in /incubator/qpid/trunk/qpid/java: broker/etc/ broker/src/main/java/org/apache/qpid/server/ broker/src/main/java/org/apache/qpid/server/configuration/ broker/src/main/java/org/apache/qpid/server/exchange/ broker/src/main/ja...

Modified: incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/handler/ReplicatingHandler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/handler/ReplicatingHandler.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/handler/ReplicatingHandler.java (original)
+++ incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/handler/ReplicatingHandler.java Wed Jan 24 07:41:48 2007
@@ -32,6 +32,7 @@
 import org.apache.qpid.server.queue.QueueRegistry;
 import org.apache.qpid.server.state.AMQStateManager;
 import org.apache.qpid.server.state.StateAwareMethodListener;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 
 import java.util.List;
 
@@ -60,52 +61,51 @@
         _policy = policy;
     }
 
-    protected void peer(AMQStateManager stateMgr, QueueRegistry queues, ExchangeRegistry exchanges, AMQProtocolSession session, AMQMethodEvent<A> evt) throws AMQException
+    protected void peer(AMQStateManager stateManager, AMQMethodEvent<A> evt) throws AMQException
     {
-        local(stateMgr, queues, exchanges, session, evt);
+        AMQProtocolSession session = stateManager.getProtocolSession();
+        VirtualHost virtualHost = session.getVirtualHost();
+        ExchangeRegistry exchangeRegistry = virtualHost.getExchangeRegistry();
+        QueueRegistry queueRegistry = virtualHost.getQueueRegistry();
+
+        local(stateManager, evt);
         _logger.debug(new LogMessage("Handled {0} locally", evt.getMethod()));
     }
 
-    protected void client(AMQStateManager stateMgr, QueueRegistry queues, ExchangeRegistry exchanges, AMQProtocolSession session, AMQMethodEvent<A> evt) throws AMQException
+    protected void client(AMQStateManager stateMgr, AMQMethodEvent<A> evt) throws AMQException
     {
-        replicate(stateMgr, queues, exchanges, session, evt);
+        replicate(stateMgr, evt);
     }
 
-    protected void replicate(AMQStateManager stateMgr, QueueRegistry queues, ExchangeRegistry exchanges, AMQProtocolSession session, AMQMethodEvent<A> evt) throws AMQException
+    protected void replicate(AMQStateManager stateMgr, AMQMethodEvent<A> evt) throws AMQException
     {
         if (_policy == null)
         {
             //asynch delivery
             _groupMgr.broadcast(new SimpleBodySendable(evt.getMethod()));
-            local(stateMgr, queues, exchanges, session, evt);
+            local(stateMgr,  evt);
         }
         else
         {
-            Callback callback = new Callback(stateMgr, queues, exchanges, session, evt);
+            Callback callback = new Callback(stateMgr, evt);
             _groupMgr.broadcast(new SimpleBodySendable(evt.getMethod()), _policy, callback);
         }
         _logger.debug(new LogMessage("Replicated {0} to peers", evt.getMethod()));
     }
 
-    protected void local(AMQStateManager stateMgr, QueueRegistry queues, ExchangeRegistry exchanges, AMQProtocolSession session, AMQMethodEvent<A> evt) throws AMQException
+    protected void local(AMQStateManager stateMgr, AMQMethodEvent<A> evt) throws AMQException
     {
-        _base.methodReceived(stateMgr, queues, exchanges, session, evt);
+        _base.methodReceived(stateMgr,  evt);
     }
 
     private class Callback implements GroupResponseHandler
     {
         private final AMQStateManager _stateMgr;
-        private final QueueRegistry _queues;
-        private final ExchangeRegistry _exchanges;
-        private final AMQProtocolSession _session;
         private final AMQMethodEvent<A> _evt;
 
-        Callback(AMQStateManager stateMgr, QueueRegistry queues, ExchangeRegistry exchanges, AMQProtocolSession session, AMQMethodEvent<A> evt)
+        Callback(AMQStateManager stateMgr, AMQMethodEvent<A> evt)
         {
             _stateMgr = stateMgr;
-            _queues = queues;
-            _exchanges = exchanges;
-            _session = session;
             _evt = evt;
         }
 
@@ -113,7 +113,7 @@
         {
             try
             {
-                local(_stateMgr, _queues, _exchanges, _session, _evt);
+                local(_stateMgr, _evt);
                 _logger.debug(new LogMessage("Handled {0} locally, in response to completion of replication", _evt.getMethod()));
             }
             catch (AMQException e)

Modified: incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/handler/WrappedListener.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/handler/WrappedListener.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/handler/WrappedListener.java (original)
+++ incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/handler/WrappedListener.java Wed Jan 24 07:41:48 2007
@@ -42,11 +42,11 @@
         _primary = check(primary);
     }
 
-    public void methodReceived(AMQStateManager stateMgr, QueueRegistry queues, ExchangeRegistry exchanges, AMQProtocolSession session, AMQMethodEvent<T> evt) throws AMQException
+    public void methodReceived(AMQStateManager stateMgr, AMQMethodEvent<T> evt) throws AMQException
     {
-        _pre.methodReceived(stateMgr, queues, exchanges, session, evt);
-        _primary.methodReceived(stateMgr, queues, exchanges, session, evt);
-        _post.methodReceived(stateMgr, queues, exchanges, session, evt);
+        _pre.methodReceived(stateMgr, evt);
+        _primary.methodReceived(stateMgr, evt);
+        _post.methodReceived(stateMgr, evt);
     }
 
     private static <T extends AMQMethodBody> StateAwareMethodListener<T> check(StateAwareMethodListener<T> in)

Modified: incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/replay/ReplayStore.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/replay/ReplayStore.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/replay/ReplayStore.java (original)
+++ incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/cluster/replay/ReplayStore.java Wed Jan 24 07:41:48 2007
@@ -32,6 +32,7 @@
 import org.apache.qpid.server.queue.QueueRegistry;
 import org.apache.qpid.server.state.AMQStateManager;
 import org.apache.qpid.server.state.StateAwareMethodListener;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -73,8 +74,11 @@
         _localRecorders.put(ExchangeDeleteBody.class, new ExchangeDeleteRecorder());
     }
 
-    public void methodReceived(AMQStateManager stateMgr, QueueRegistry queues, ExchangeRegistry exchanges, AMQProtocolSession session, AMQMethodEvent evt) throws AMQException
+    public void methodReceived(AMQStateManager stateManager, AMQMethodEvent evt) throws AMQException
     {
+        AMQProtocolSession session = stateManager.getProtocolSession();
+        VirtualHost virtualHost = session.getVirtualHost();
+
         _logger.debug(new LogMessage("Replay store received {0}", evt.getMethod()));
         AMQMethodBody request = evt.getMethod();
 

Modified: incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/ClusteredQueue.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/ClusteredQueue.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/ClusteredQueue.java (original)
+++ incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/ClusteredQueue.java Wed Jan 24 07:41:48 2007
@@ -29,6 +29,7 @@
 import org.apache.qpid.server.cluster.util.LogMessage;
 import org.apache.qpid.server.protocol.AMQProtocolSession;
 import org.apache.qpid.server.store.StoreContext;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.Executor;
@@ -46,22 +47,14 @@
     private final GroupManager _groupMgr;
     private final NestedSubscriptionManager _subscriptions;
 
-    public ClusteredQueue(GroupManager groupMgr, AMQShortString name, boolean durable, AMQShortString owner, boolean autoDelete, QueueRegistry queueRegistry)
+    public ClusteredQueue(GroupManager groupMgr, AMQShortString name, boolean durable, AMQShortString owner, boolean autoDelete, VirtualHost virtualHost)
             throws AMQException
     {
-        super(name, durable, owner, autoDelete, queueRegistry, new ClusteredSubscriptionManager());
+        super(name, durable, owner, autoDelete, virtualHost, new ClusteredSubscriptionManager());
         _groupMgr = groupMgr;
         _subscriptions = ((ClusteredSubscriptionManager) getSubscribers()).getAllSubscribers();
     }
 
-    public ClusteredQueue(GroupManager groupMgr, AMQShortString name, boolean durable, AMQShortString owner, boolean autoDelete, QueueRegistry queueRegistry, Executor asyncDelivery)
-            throws AMQException
-    {
-        super(name, durable, owner, autoDelete, queueRegistry, asyncDelivery, new ClusteredSubscriptionManager(),
-              new SubscriptionImpl.Factory());
-        _groupMgr = groupMgr;
-        _subscriptions = ((ClusteredSubscriptionManager) getSubscribers()).getAllSubscribers();
-    }
 
     public void process(StoreContext storeContext, AMQMessage msg) throws AMQException
     {

Modified: incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/PrivateQueue.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/PrivateQueue.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/PrivateQueue.java (original)
+++ incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/PrivateQueue.java Wed Jan 24 07:41:48 2007
@@ -24,6 +24,7 @@
 import org.apache.qpid.server.cluster.SimpleSendable;
 import org.apache.qpid.server.cluster.GroupManager;
 import org.apache.qpid.server.cluster.SimpleBodySendable;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.framing.QueueDeleteBody;
 import org.apache.qpid.framing.AMQShortString;
 
@@ -37,19 +38,12 @@
 {
     private final GroupManager _groupMgr;
 
-    public PrivateQueue(GroupManager groupMgr, AMQShortString name, boolean durable, AMQShortString owner, boolean autoDelete, QueueRegistry queueRegistry)
+    public PrivateQueue(GroupManager groupMgr, AMQShortString name, boolean durable, AMQShortString owner, boolean autoDelete, VirtualHost virtualHost)
             throws AMQException
     {
-        super(name, durable, owner, autoDelete, queueRegistry);
+        super(name, durable, owner, autoDelete, virtualHost);
         _groupMgr = groupMgr;
 
-    }
-
-    public PrivateQueue(GroupManager groupMgr, AMQShortString name, boolean durable, AMQShortString owner, boolean autoDelete, QueueRegistry queueRegistry, Executor asyncDelivery)
-            throws AMQException
-    {
-        super(name, durable, owner, autoDelete, queueRegistry, asyncDelivery);
-        _groupMgr = groupMgr;
     }
 
     protected void autodelete() throws AMQException

Modified: incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/RemoteQueueProxy.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/RemoteQueueProxy.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/RemoteQueueProxy.java (original)
+++ incubator/qpid/trunk/qpid/java/cluster/src/main/java/org/apache/qpid/server/queue/RemoteQueueProxy.java Wed Jan 24 07:41:48 2007
@@ -29,6 +29,7 @@
 import org.apache.qpid.server.cluster.MemberHandle;
 import org.apache.qpid.server.cluster.SimpleSendable;
 import org.apache.qpid.server.cluster.util.LogMessage;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 
 import java.util.concurrent.Executor;
 
@@ -43,23 +44,15 @@
     private final MemberHandle _target;
     private final GroupManager _groupMgr;
 
-    public RemoteQueueProxy(MemberHandle target, GroupManager groupMgr, AMQShortString name, boolean durable, AMQShortString owner, boolean autoDelete, QueueRegistry queueRegistry)
+    public RemoteQueueProxy(MemberHandle target, GroupManager groupMgr, AMQShortString name, boolean durable, AMQShortString owner, boolean autoDelete, VirtualHost virtualHost)
             throws AMQException
     {
-        super(name, durable, owner, autoDelete, queueRegistry);
+        super(name, durable, owner, autoDelete, virtualHost);
         _target = target;
         _groupMgr = groupMgr;
         _groupMgr.addMemberhipChangeListener(new ProxiedQueueCleanup(target, this));
     }
 
-    public RemoteQueueProxy(MemberHandle target, GroupManager groupMgr, AMQShortString name, boolean durable, AMQShortString owner, boolean autoDelete, QueueRegistry queueRegistry, Executor asyncDelivery)
-            throws AMQException
-    {
-        super(name, durable, owner, autoDelete, queueRegistry, asyncDelivery);
-        _target = target;
-        _groupMgr = groupMgr;
-        _groupMgr.addMemberhipChangeListener(new ProxiedQueueCleanup(target, this));
-    }
 
     public void deliver(AMQMessage msg) throws NoConsumersException
     {

Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java Wed Jan 24 07:41:48 2007
@@ -39,4 +39,10 @@
     public final static AMQShortString FANOUT_EXCHANGE_NAME = new AMQShortString("amq.fanout");
 
     public final static AMQShortString FANOUT_EXCHANGE_CLASS = new AMQShortString("fanout");
+
+
+    public final static AMQShortString SYSTEM_MANAGEMENT_EXCHANGE_NAME = new AMQShortString("qpid.sysmgmt");
+
+    public final static AMQShortString SYSTEM_MANAGEMENT_CLASS = new AMQShortString("sysmmgmt");
+
 }

Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java Wed Jan 24 07:41:48 2007
@@ -531,6 +531,13 @@
         return _replyTo == null ? null : _replyTo.toString();
     }
 
+    public AMQShortString getReplyToAsShortString()
+    {
+        decodeIfNecessary();
+        return _replyTo;
+    }
+
+
     public void setReplyTo(String replyTo)
     {
         setReplyTo(replyTo == null ? null : new AMQShortString(replyTo));

Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java Wed Jan 24 07:41:48 2007
@@ -32,7 +32,7 @@
     public final static String ITEM_TYPE  = "type";
     public final static String SERVER     = "server";
     public final static String DOMAIN     = "domain";
-    public final static String TYPE       = "mbeantype";
+    public final static String NODE_TYPE_MBEANTYPE = "mbeantype";
     public final static String MBEAN      = "mbean";
     public final static String ATTRIBUTE = "Attribute";
     public final static String ATTRIBUTES = "Attributes";
@@ -45,13 +45,14 @@
     
     public final static String NAVIGATION_ROOT = "Qpid Connections";
     public final static String DESCRIPTION = " Description";
-    
-    public final static String BROKER_MANAGER = "Broker_Manager";
-    public final static String QUEUE  = "Queue";
-    public final static String EXCHANGE = "Exchange";
+
+    public final static String VIRTUAL_HOST = "VirtualHost";
+    public final static String MBEAN_TYPE_BROKER_MANAGER = "VirtualHost.BrokerManager";
+    public final static String MBEAN_TYPE_QUEUE = "VirtualHost.Queue";
+    public final static String MBEAN_TYPE_EXCHANGE = "VirtualHost.Exchange";
     public final static String EXCHANGE_TYPE = "ExchangeType";
     public final static String[] EXCHANGE_TYPE_VALUES = {"direct", "topic", "headers"};
-    public final static String CONNECTION ="Connection";
+    public final static String MBEAN_TYPE_CONNECTION ="Connection";
     
     public final static String ACTION_ADDSERVER = "New Connection";
     
@@ -87,4 +88,13 @@
     public final static int OPERATION_IMPACT_ACTION  = 1;
     public final static int OPERATION_IMPACT_ACTIONINFO  = 2;
     public final static int OPERATION_IMPACT_UNKNOWN = 3;
+    public static final String NODE_TYPE_VIRTUAL_HOST = "virtualhost";
+    public static final String NODE_LABEL_QUEUES = "queues";
+    public static final String NODE_LABEL_EXCHANGES = "exchanges";
+    public static final String NODE_LABEL_CONNECTIONS = "connections";
+
+    public static final String NODE_LABEL_VIRTUAL_HOSTS = "virtual hosts";
+    public static final String TAB_LABEL_QUEUES = "queues";
+    public static final String TAB_LABEL_EXCHANGES = "exchanges";
+    public static final String TAB_LABEL_CONNECTIONS = "connections";
 }

Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java Wed Jan 24 07:41:48 2007
@@ -23,6 +23,10 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.qpid.management.ui.jmx.ClientListener;
 import org.apache.qpid.management.ui.model.ManagedAttributeModel;
@@ -33,11 +37,11 @@
 {
     private ManagedServer _managedServer = null;
     // list of all Connection mbeans
-    protected List<ManagedBean> _connections = new ArrayList<ManagedBean>();
+    protected ConcurrentMap<String,List<ManagedBean>> _connections = new ConcurrentHashMap<String,List<ManagedBean>>();
     // list of all exchange mbeans
-    protected List<ManagedBean> _exchanges = new ArrayList<ManagedBean>();
+    protected ConcurrentMap<String,List<ManagedBean>> _exchanges = new ConcurrentHashMap<String,List<ManagedBean>>();
     // list of all queue mbenas
-    protected List<ManagedBean> _queues = new ArrayList<ManagedBean>();
+    protected ConcurrentMap<String,List<ManagedBean>> _queues = new ConcurrentHashMap<String,List<ManagedBean>>();
     
     public ServerRegistry()
     {
@@ -61,47 +65,68 @@
     
     protected void addConnectionMBean(ManagedBean mbean)
     {
-        _connections.add(mbean);
+        String virtualHostName = mbean.getProperty("VirtualHost");
+        _connections.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+        List<ManagedBean> beans = _connections.get(virtualHostName);
+        beans.add(mbean);
     }
     
     protected void addExchangeMBean(ManagedBean mbean)
     {
-        _exchanges.add(mbean);
+        String virtualHostName = mbean.getProperty("VirtualHost");
+        _exchanges.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+        List<ManagedBean> beans = _exchanges.get(virtualHostName);
+        beans.add(mbean);
     }
     
     protected void addQueueMBean(ManagedBean mbean)
     {
-        _queues.add(mbean);
+        String virtualHostName = mbean.getProperty("VirtualHost");
+        _queues.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+        List<ManagedBean> beans = _queues.get(virtualHostName);
+        beans.add(mbean);
     }
     
     protected void removeConnectionMBean(ManagedBean mbean)
     {
-        _connections.remove(mbean);
+        String virtualHostName = mbean.getProperty("VirtualHost");
+        _connections.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+        List<ManagedBean> beans = _connections.get(virtualHostName);
+        beans.remove(mbean);
     }
     
     protected void removeExchangeMBean(ManagedBean mbean)
     {
-        _exchanges.remove(mbean);
+        String virtualHostName = mbean.getProperty("VirtualHost");
+        _exchanges.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+        List<ManagedBean> beans = _exchanges.get(virtualHostName);
+        beans.remove(mbean);
     }
     
     protected void removeQueueMBean(ManagedBean mbean)
     {
-        _queues.remove(mbean);
+        String virtualHostName = mbean.getProperty("VirtualHost");
+        _queues.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+        List<ManagedBean> beans = _queues.get(virtualHostName);
+        beans.remove(mbean);
     }
     
-    public List<ManagedBean> getConnections()
+    public List<ManagedBean> getConnections(String virtualHost)
     {
-        return _connections;
+        _connections.putIfAbsent(virtualHost, new ArrayList<ManagedBean>());
+        return _connections.get(virtualHost);
     }
     
-    public List<ManagedBean> getExchanges()
+    public List<ManagedBean> getExchanges(String virtualHost)
     {
-        return _exchanges;
+        _exchanges.putIfAbsent(virtualHost, new ArrayList<ManagedBean>());
+        return _exchanges.get(virtualHost);
     }
     
-    public List<ManagedBean> getQueues()
+    public List<ManagedBean> getQueues(String virtualHost)
     {
-        return _queues;
+        _queues.putIfAbsent(virtualHost, new ArrayList<ManagedBean>());
+        return _queues.get(virtualHost);
     }
     
     public abstract void addManagedObject(ManagedBean key);
@@ -123,11 +148,11 @@
     
     public abstract OperationDataModel getOperationModel(ManagedBean mbean);
     
-    public abstract String[] getQueueNames();
+    public abstract String[] getQueueNames(String virtualHost);
     
-    public abstract String[] getExchangeNames();
+    public abstract String[] getExchangeNames(String virtualHost);
     
-    public abstract String[] getConnectionNames();
+    public abstract String[] getConnectionNames(String virtualHost);
     
     public abstract List<NotificationObject> getNotifications(ManagedBean mbean);
     

Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientListener.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientListener.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientListener.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientListener.java Wed Jan 24 07:41:48 2007
@@ -43,8 +43,6 @@
     
     public void handleNotification(Notification notification, Object handback)
     {
-        System.out.println("\nReceived server notification: " + notification);
-        
         ObjectName objName = null;
         String     type = notification.getType();
         if (MBeanServerNotification.REGISTRATION_NOTIFICATION.equals(type))

Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientNotificationListener.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientNotificationListener.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientNotificationListener.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientNotificationListener.java Wed Jan 24 07:41:48 2007
@@ -34,7 +34,6 @@
     
     public void handleNotification(Notification notification, Object handback)
     {
-        System.out.println("\nReceived mbean notification: " + notification);
         ObjectName objName = (ObjectName)notification.getSource();
         //String     type = notification.getType();
         getServerRegistry().addNotification(objName, notification);

Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java Wed Jan 24 07:41:48 2007
@@ -120,7 +120,8 @@
         }
         catch (ListenerNotFoundException ex)
         {
-            System.out.println(ex.toString());
+            System.err.println(ex);
+            ex.printStackTrace();
         }
     }
     
@@ -131,15 +132,15 @@
     
     public void addManagedObject(ManagedBean mbean)
     {
-        if (Constants.QUEUE.equals(mbean.getType()) && !mbean.getName().startsWith("tmp_"))
+        if (Constants.MBEAN_TYPE_QUEUE.equals(mbean.getType()) && !mbean.getName().startsWith("tmp_"))
         {
             addQueueMBean(mbean);
         }
-        else if (Constants.EXCHANGE.equals(mbean.getType()))
+        else if (Constants.MBEAN_TYPE_EXCHANGE.equals(mbean.getType()))
         {
             addExchangeMBean(mbean);
         }
-        else if (Constants.CONNECTION.equals(mbean.getType()))
+        else if (Constants.MBEAN_TYPE_CONNECTION.equals(mbean.getType()))
         {
             addConnectionMBean(mbean);
         }
@@ -149,11 +150,11 @@
 
     public void removeManagedObject(ManagedBean mbean)
     {
-        if (Constants.QUEUE.equals(mbean.getType()))
+        if (Constants.MBEAN_TYPE_QUEUE.equals(mbean.getType()))
             removeQueueMBean(mbean);
-        else if (Constants.EXCHANGE.equals(mbean.getType()))
+        else if (Constants.MBEAN_TYPE_EXCHANGE.equals(mbean.getType()))
             removeExchangeMBean(mbean);
-        else if (Constants.CONNECTION.equals(mbean.getType()))
+        else if (Constants.MBEAN_TYPE_CONNECTION.equals(mbean.getType()))
             removeConnectionMBean(mbean);
         
         _mbeansMap.remove(mbean.getUniqueName());
@@ -247,7 +248,6 @@
             list.add(type);
         }
 
-        System.out.println("Subscribed for notification :" + mbean.getUniqueName());
     }
     
     public boolean hasSubscribedForNotifications(ManagedBean mbean, String name, String type)
@@ -268,7 +268,6 @@
     
     public void removeNotificationListener(ManagedBean mbean, String name, String type) throws Exception
     {
-        System.out.println("Removed notification listener :" + mbean.getUniqueName() + name +type);
         if (_subscribedNotificationMap.containsKey(mbean.getUniqueName()))
         {            
             HashMap<String, List<String>> map = _subscribedNotificationMap.get(mbean.getUniqueName());
@@ -335,37 +334,40 @@
         return _operationModelMap.get(mbean.getUniqueName());
     }
     
-    public String[] getQueueNames()
+    public String[] getQueueNames(String virtualHost)
     {
-        String[] queues = new String[_queues.size()];
+        List<ManagedBean> queues = _queues.get(virtualHost);
+        String[] queueNames = new String[queues.size()];
         int i = 0;
-        for (ManagedBean mbean : _queues)
+        for (ManagedBean mbean : queues)
         {
-            queues[i++] = mbean.getName();
+            queueNames[i++] = mbean.getName();
         }
-        return queues;
+        return queueNames;
     }
     
-    public String[] getExchangeNames()
+    public String[] getExchangeNames(String virtualHost)
     {
-        String[] exchanges = new String[_exchanges.size()];
+        List<ManagedBean> exchanges = _exchanges.get(virtualHost);
+        String[] exchangeNames = new String[exchanges.size()];
         int i = 0;
-        for (ManagedBean mbean : _exchanges)
+        for (ManagedBean mbean : exchanges)
         {
-            exchanges[i++] = mbean.getName();
+            exchangeNames[i++] = mbean.getName();
         }
-        return exchanges;
+        return exchangeNames;
     }
     
-    public String[] getConnectionNames()
+    public String[] getConnectionNames(String virtualHost)
     {
-        String[] connections = new String[_connections.size()];
+        List<ManagedBean> connections = _connections.get(virtualHost);
+        String[] connectionNames = new String[connections.size()];
         int i = 0;
-        for (ManagedBean mbean : _connections)
+        for (ManagedBean mbean : connections)
         {
-            connections[i++] = mbean.getName();
+            connectionNames[i++] = mbean.getName();
         }
-        return connections;
+        return connectionNames;
     }
 
     public ClientNotificationListener getNotificationListener()

Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanTypeTabControl.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanTypeTabControl.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanTypeTabControl.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanTypeTabControl.java Wed Jan 24 07:41:48 2007
@@ -91,7 +91,7 @@
                 for (int i = 0; i < selectedItems.length; i++)
                 {
                     String name = selectedItems[i];;
-                    if (Constants.QUEUE.equals(_type))
+                    if (Constants.MBEAN_TYPE_QUEUE.equals(_type))
                     {
                         int endIndex = name.lastIndexOf("(");
                         name = name.substring(0, endIndex -1);
@@ -231,21 +231,21 @@
         java.util.List<ManagedBean> list = null;
         
         // populate the map and list with appropriate mbeans
-        if (_type.equals(Constants.QUEUE))
+        if (_type.equals(Constants.MBEAN_TYPE_QUEUE)  || _type.equals(Constants.NODE_LABEL_QUEUES))
         {
-            list = serverRegistry.getQueues();
+            list = serverRegistry.getQueues(MBeanView.getVirtualHostName());
             items = getQueueItems(list);
             _sortBySizeButton.setVisible(true);
         }
-        else if (_type.equals(Constants.EXCHANGE))
+        else if (_type.equals(Constants.MBEAN_TYPE_EXCHANGE) || _type.equals(Constants.NODE_LABEL_EXCHANGES))
         {
-            list = serverRegistry.getExchanges();
+            list = serverRegistry.getExchanges(MBeanView.getVirtualHostName());
             items = getItems(list);
             _sortBySizeButton.setVisible(false);
         }
-        else if (_type.equals(Constants.CONNECTION))
+        else if (_type.equals(Constants.MBEAN_TYPE_CONNECTION) || _type.equals(Constants.NODE_LABEL_CONNECTIONS))
         {
-            list = serverRegistry.getConnections();
+            list = serverRegistry.getConnections(MBeanView.getVirtualHostName());
             items = getItems(list);
             _sortBySizeButton.setVisible(false);
         }

Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java Wed Jan 24 07:41:48 2007
@@ -74,9 +74,12 @@
     
     // TabFolder to list all the mbeans for a given mbeantype(eg Connection, Queue, Exchange)
     private TabFolder typeTabFolder = null;
+    private static String _virtualHostName;
+
+
     /*
-     * Listener for the selection events in the navigation view
-     */ 
+    * Listener for the selection events in the navigation view
+    */
     private class SelectionListenerImpl implements ISelectionListener
     {
         public void selectionChanged(IWorkbenchPart part, ISelection sel)
@@ -102,11 +105,11 @@
             setServer();
             try
             {
-                if (Constants.TYPE.equals(_selectedNode.getType()))
+                if (Constants.NODE_TYPE_MBEANTYPE.equals(_selectedNode.getType()))
                 {
                     refreshTypeTabFolder(_selectedNode.getName());
                 }
-                else if (Constants.DOMAIN.equals(_selectedNode.getType()))
+                else if (Constants.NODE_TYPE_VIRTUAL_HOST.equals(_selectedNode.getType()))
                 {
                     refreshTypeTabFolder(typeTabFolder.getItem(0));
                 }
@@ -146,6 +149,19 @@
             if (parent != null && parent.getType().equals(Constants.SERVER))
                 _server = (ManagedServer)parent.getManagedObject();
         }
+
+        TreeObject parent = _selectedNode;
+        while (parent != null && !parent.getType().equals(Constants.NODE_TYPE_VIRTUAL_HOST))
+        {
+            parent = parent.getParent();
+        }
+
+        if (parent != null)
+        {
+            _virtualHostName = parent.getName().substring(1, parent.getName().length()-1);
+        }        
+
+
     }
     
     public static ManagedServer getServer()
@@ -427,15 +443,15 @@
         typeTabFolder.setData("CONTROLLER", controller);
         
         TabItem tab = new TabItem(typeTabFolder, SWT.NONE);
-        tab.setText(Constants.CONNECTION);       
+        tab.setText(Constants.TAB_LABEL_CONNECTIONS);
         tab.setControl(controller.getControl());
         
         tab = new TabItem(typeTabFolder, SWT.NONE);
-        tab.setText(Constants.EXCHANGE);       
+        tab.setText(Constants.TAB_LABEL_EXCHANGES);
         tab.setControl(controller.getControl());
         
         tab = new TabItem(typeTabFolder, SWT.NONE);
-        tab.setText(Constants.QUEUE);       
+        tab.setText(Constants.TAB_LABEL_QUEUES);
         tab.setControl(controller.getControl());
         
         typeTabFolder.addListener(SWT.Selection, new Listener()
@@ -469,21 +485,30 @@
         }
         typeTabFolder.setSelection(tab);
         MBeanTypeTabControl controller = (MBeanTypeTabControl)typeTabFolder.getData("CONTROLLER");
-        controller.refresh(tab.getText());
+        String nodeType = Constants.NODE_LABEL_CONNECTIONS;
+        if(tab.getText().equals(Constants.TAB_LABEL_QUEUES))
+        {
+            nodeType = Constants.NODE_LABEL_QUEUES;
+        }
+        else if(tab.getText().equals(Constants.TAB_LABEL_EXCHANGES))
+        {
+            nodeType = Constants.NODE_LABEL_EXCHANGES;
+        }
+        controller.refresh(nodeType);
         typeTabFolder.setVisible(true);
     }
     
-    private void refreshTypeTabFolder(String type) throws Exception
+    private void refreshTypeTabFolder(String name) throws Exception
     {
-        if (Constants.CONNECTION.equals(type))
+        if (Constants.NODE_LABEL_CONNECTIONS.equals(name))
         {
             refreshTypeTabFolder(typeTabFolder.getItem(0));
         }
-        else if (Constants.EXCHANGE.equals(type))
+        else if (Constants.NODE_LABEL_EXCHANGES.equals(name))
         {
             refreshTypeTabFolder(typeTabFolder.getItem(1));
         }
-        else if (Constants.QUEUE.equals(type))
+        else if (Constants.NODE_LABEL_QUEUES.equals(name))
         {
             refreshTypeTabFolder(typeTabFolder.getItem(2));
         }
@@ -515,6 +540,12 @@
         {
             typeTabFolder.setVisible(false);
         }
+    }
+
+    public static String getVirtualHostName()
+    {
+        return _virtualHostName;
+
     }
     
 }

Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java Wed Jan 24 07:41:48 2007
@@ -29,6 +29,7 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.qpid.management.ui.ApplicationRegistry;
 import org.apache.qpid.management.ui.Constants;
@@ -39,6 +40,7 @@
 import org.apache.qpid.management.ui.exceptions.ManagementConsoleException;
 import org.apache.qpid.management.ui.jmx.JMXServerRegistry;
 import org.apache.qpid.management.ui.jmx.MBeanUtility;
+import org.apache.qpid.management.ui.jmx.JMXManagedObject;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.IFontProvider;
@@ -266,7 +268,8 @@
         catch(Exception ex)
         {
             System.out.println("\nError in connecting to Qpid broker ");
-            System.out.println("\n" + ex.toString());
+            System.out.println("\n" + ex);
+            ex.printStackTrace();
         }
     }
     
@@ -284,27 +287,66 @@
         // Add these three types - Connection, Exchange, Queue
         // By adding these, these will always be available, even if there are no mbeans under thse types
         // This is required because, the mbeans will be added from mbeanview, by selecting from the list
-        TreeObject typeChild = new TreeObject(Constants.CONNECTION, Constants.TYPE);
-        typeChild.setParent(domain);
-        typeChild = new TreeObject(Constants.EXCHANGE, Constants.TYPE);
-        typeChild.setParent(domain);
-        typeChild = new TreeObject(Constants.QUEUE, Constants.TYPE);
-        typeChild.setParent(domain);
-        
-        
+
+
+        TreeObject virtualhosts = new TreeObject(Constants.NODE_LABEL_VIRTUAL_HOSTS, Constants.NODE_TYPE_MBEANTYPE);
+        virtualhosts.setParent(domain);
+
+        Map<String, TreeObject> virtualHostMap = new HashMap<String, TreeObject>();
+
         // Now populate the mbenas under those types
         List<ManagedBean> mbeans = MBeanUtility.getManagedObjectsForDomain(server, domain.getName());
         for (ManagedBean mbean : mbeans)
         {
+
+            if(mbean.getType().equals(Constants.VIRTUAL_HOST))
+            {
+                TreeObject host = new TreeObject("[" + mbean.getName() + "]", Constants.NODE_TYPE_VIRTUAL_HOST);
+
+                virtualHostMap.put(mbean.getName(), host);
+                host.setParent(virtualhosts);
+
+                TreeObject child = new TreeObject(Constants.NODE_LABEL_CONNECTIONS, Constants.NODE_TYPE_MBEANTYPE);
+
+                child.setParent(host);
+                child = new TreeObject(Constants.NODE_LABEL_EXCHANGES, Constants.NODE_TYPE_MBEANTYPE);
+                child.setParent(host);
+                child = new TreeObject(Constants.NODE_LABEL_QUEUES, Constants.NODE_TYPE_MBEANTYPE);
+                child.setParent(host);
+
+            }
+        }
+        for (ManagedBean mbean : mbeans)
+        {
+
+
             mbean.setServer(server);
-            ServerRegistry serverRegistry = ApplicationRegistry.getServerRegistry(server);
-            serverRegistry.addManagedObject(mbean);     
             
+            ServerRegistry serverRegistry = ApplicationRegistry.getServerRegistry(server);
+            serverRegistry.addManagedObject(mbean);
+
+            if (mbean.getType().equals(Constants.MBEAN_TYPE_BROKER_MANAGER))
+            {
+                JMXManagedObject obj = (JMXManagedObject) mbean;
+                String host = obj.getProperty("VirtualHost");
+                TreeObject node = virtualHostMap.get(host);
+                if(node != null)
+                {
+                    TreeObject beanNode = new TreeObject(mbean);
+                    beanNode.setParent(node);
+                }
+            }
+
+
             // Add all mbeans other than Connections, Exchanges and Queues. Because these will be added
             // manually by selecting from MBeanView
-            if (!(mbean.getType().equals(Constants.CONNECTION) || mbean.getType().equals(Constants.EXCHANGE) || mbean.getType().equals(Constants.QUEUE)))
+            if (!(mbean.getType().equals(Constants.MBEAN_TYPE_CONNECTION)
+                    || mbean.getType().equals(Constants.MBEAN_TYPE_EXCHANGE)
+                    || mbean.getType().equals(Constants.MBEAN_TYPE_QUEUE)
+                    || mbean.getType().equals(Constants.VIRTUAL_HOST)
+                    || mbean.getType().equals(Constants.MBEAN_TYPE_BROKER_MANAGER)))
             {
-                addManagedBean(domain, mbean);
+                addManagedBean(domain, mbean, virtualHostMap);
             }
         }
     }
@@ -322,7 +364,7 @@
         
         for (TreeObject child : childNodes)
         {
-            if (Constants.TYPE.equals(child.getType()) && typeName.equals(child.getName()))
+            if (Constants.NODE_TYPE_MBEANTYPE.equals(child.getType()) && typeName.equals(child.getName()))
                 return child;
         }
         return null;
@@ -343,13 +385,22 @@
      * Adds the given MBean to the given domain node. Creates Notification node for the MBean.
      * @param domain
      * @param mbean mbean
+     * @param virtualHostMap
      */
-    private void addManagedBean(TreeObject domain, ManagedBean mbean) throws Exception
+    private void addManagedBean(TreeObject domain, ManagedBean mbean, Map<String, TreeObject> virtualHostMap) throws Exception
     {
+        JMXManagedObject obj = (JMXManagedObject) mbean;
+
+
+
         String type = mbean.getType();
         String name = mbean.getName();
 
-        TreeObject typeNode = getMBeanTypeNode(domain, type);
+        String virtualHostName = obj.getProperty("VirtualHost");
+
+        TreeObject virtualHostNode = virtualHostMap.get(virtualHostName);
+
+        TreeObject typeNode = getMBeanTypeNode(virtualHostNode, getNodeLabelForType(type));
         if (typeNode != null && doesMBeanNodeAlreadyExist(typeNode, name))
             return;
         
@@ -368,8 +419,8 @@
             // type node does not exist. Now check if node to be created as mbeantype or MBean
             if (name != null)  // A managedObject with type and name
             {
-                typeNode = new TreeObject(type, Constants.TYPE);
-                typeNode.setParent(domain);
+                typeNode = new TreeObject(type, Constants.NODE_TYPE_MBEANTYPE);
+                typeNode.setParent(virtualHostNode);
                 mbeanNode = new TreeObject(mbean);
                 mbeanNode.setParent(typeNode);               
             }
@@ -385,7 +436,27 @@
         TreeObject notificationNode = new TreeObject(Constants.NOTIFICATION, Constants.NOTIFICATION);
         notificationNode.setParent(mbeanNode);
     }
-    
+
+    private String getNodeLabelForType(String type)
+    {
+        if(type.equals(Constants.MBEAN_TYPE_EXCHANGE))
+        {
+            return Constants.NODE_LABEL_EXCHANGES;
+        }
+        else if(type.equals(Constants.MBEAN_TYPE_QUEUE))
+        {
+            return Constants.NODE_LABEL_QUEUES;
+        }
+        else if(type.equals(Constants.MBEAN_TYPE_CONNECTION))
+        {
+            return Constants.NODE_LABEL_CONNECTIONS;
+        }
+        else
+        {
+            return type;
+        }
+    }
+
     /**
      * Removes all the child nodes of the given parent node
      * @param parent
@@ -750,8 +821,26 @@
                 break;
             }
         }
+        for (TreeObject child : domain.getChildren())
+        {
+            if (child.getName().equals(Constants.NODE_LABEL_VIRTUAL_HOSTS))
+            {
+                domain = child;
+                break;
+            }
+        }
+        Map<String, TreeObject> hostMap = new HashMap<String,TreeObject>();
+
+        for (TreeObject child: domain.getChildren())
+        {
+
+            if(child.getType().equals(Constants.NODE_TYPE_VIRTUAL_HOST))
+            {
+                hostMap.put(child.getName().substring(1,child.getName().length()-1), child);
+            }
+        }
         
-        addManagedBean(domain, mbean);
+        addManagedBean(domain, mbean, hostMap);
         _treeViewer.refresh();
     }
     
@@ -773,7 +862,6 @@
                         {
                             for (ManagedBean mbean : removalList)
                             {
-                                System.out.println("removing  " + mbean.getName() + " " + mbean.getType());
                                 TreeObject treeServerObject = _managedServerMap.get(mbean.getServer());
                                 List<TreeObject> domains = treeServerObject.getChildren();
                                 TreeObject domain = null;

Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java Wed Jan 24 07:41:48 2007
@@ -326,7 +326,6 @@
                 Shell   shell = null;
                 public void doubleClick(DoubleClickEvent event)
                 {
-                    System.out.println("DoubleClickEvent" + event);
                     display = Display.getCurrent();
                     shell = new Shell(display, SWT.BORDER | SWT.CLOSE | SWT.MIN |
                             SWT.MAX | SWT.RESIZE);

Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java Wed Jan 24 07:41:48 2007
@@ -216,7 +216,7 @@
         }
         
         // Customised parameter widgets        
-        if (_mbean.getType().equals(Constants.EXCHANGE) &&
+        if (_mbean.getType().equals(Constants.MBEAN_TYPE_EXCHANGE) &&
             "headers".equals(_mbean.getProperty(Constants.EXCHANGE_TYPE)) &&
             _opData.getName().equalsIgnoreCase("createNewBinding"))
         {                                  
@@ -241,10 +241,10 @@
             formData.top = new FormAttachment(0, params.indexOf(param) * heightForAParameter);
             formData.left = new FormAttachment(label, 5);
             formData.right = new FormAttachment(valueNumerator);
-            if (param.getName().equals(Constants.QUEUE))
+            if (param.getName().equals(Constants.MBEAN_TYPE_QUEUE))
             {
                 Combo combo = new Combo(_paramsComposite, SWT.READ_ONLY | SWT.DROP_DOWN);
-                String[] items = ApplicationRegistry.getServerRegistry(_mbean).getQueueNames();
+                String[] items = ApplicationRegistry.getServerRegistry(_mbean).getQueueNames(_mbean.getProperty("VirtualHost"));
                 combo.setItems(items);
                 combo.add("Select Queue", 0); 
                 combo.select(0);
@@ -253,10 +253,10 @@
                 combo.addSelectionListener(parameterSelectionListener);
                 valueInCombo = true;
             }
-            else if (param.getName().equals(Constants.EXCHANGE))
+            else if (param.getName().equals(Constants.MBEAN_TYPE_EXCHANGE))
             {
                 Combo combo = new Combo(_paramsComposite, SWT.READ_ONLY | SWT.DROP_DOWN);
-                String[] items = ApplicationRegistry.getServerRegistry(_mbean).getExchangeNames();
+                String[] items = ApplicationRegistry.getServerRegistry(_mbean).getExchangeNames(_mbean.getProperty("VirtualHost"));
                 combo.setItems(items);
                 combo.add("Select Exchange", 0);
                 combo.select(0);
@@ -358,7 +358,7 @@
         formData.right = new FormAttachment(valueNumerator);
 
         Combo combo = new Combo(composite, SWT.READ_ONLY | SWT.DROP_DOWN);
-        String[] items = ApplicationRegistry.getServerRegistry(_mbean).getQueueNames();
+        String[] items = ApplicationRegistry.getServerRegistry(_mbean).getQueueNames(_mbean.getProperty("VirtualHost"));
         combo.setItems(items);
         combo.add("Select Queue", 0); 
         combo.select(0);

Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java Wed Jan 24 07:41:48 2007
@@ -277,7 +277,6 @@
 
         // Set the index being shown.
         compositeHolder.setData(INDEX, index);
-        System.out.println("index :" + index);
 
         return (CompositeData)((Map.Entry)objectData.get(index)).getValue();
     }
@@ -320,7 +319,6 @@
                 if (itemType.isArray())
                 {
                     OpenType type = ((ArrayType)itemType).getElementOpenType();
-                    System.out.println("Array Element type = " + type.getClassName());
                     //  If Byte array and mimetype is text, convert to text string
                     if (type.getClassName().equals(Byte.class.getName()))
                     {
@@ -390,7 +388,6 @@
         try
         {
             String textMessage = new String(byteArray, encoding);
-            System.out.println("\nMessage : \n" + textMessage + "\n");
 
             Text valueText = toolkit.createText(compositeHolder, textMessage, SWT.READ_ONLY | SWT.BORDER |
                     SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

Modified: incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/ServiceRequestingClient.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/ServiceRequestingClient.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/ServiceRequestingClient.java (original)
+++ incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/ServiceRequestingClient.java Wed Jan 24 07:41:48 2007
@@ -104,7 +104,7 @@
                 m.getPropertyNames();
                 if (m.propertyExists("timeSent"))
                 {
-                    long timeSent = Long.parseLong(m.getStringProperty("timeSent"));
+                    long timeSent = m.getLongProperty("timeSent");
                     if (_averageLatency == 0)
                     {
                         _averageLatency = _messageReceivedTime - timeSent;

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java Wed Jan 24 07:41:48 2007
@@ -23,6 +23,7 @@
 import org.apache.qpid.server.queue.QueueRegistry;
 import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.registry.IApplicationRegistry;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.framing.AMQShortString;
 
 public class AMQBrokerManagerMBeanTest extends TestCase
@@ -40,7 +41,9 @@
         assertTrue(_exchangeRegistry.getExchange(new AMQShortString(exchange2)) == null);
         assertTrue(_exchangeRegistry.getExchange(new AMQShortString(exchange3)) == null);
 
-        ManagedBroker mbean = new AMQBrokerManagerMBean();
+        VirtualHost vHost = ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost("test");
+
+        ManagedBroker mbean = new AMQBrokerManagerMBean((VirtualHost.VirtualHostMBean)vHost.getManagedObject());
         mbean.createNewExchange(exchange1,"direct",false, false);
         mbean.createNewExchange(exchange2,"topic",false, false);
         mbean.createNewExchange(exchange3,"headers",false, false);
@@ -61,7 +64,9 @@
     public void testQueueOperations() throws Exception
     {
         String queueName = "testQueue_" + System.currentTimeMillis();
-        ManagedBroker mbean = new AMQBrokerManagerMBean();
+        VirtualHost vHost = ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost("test");
+
+        ManagedBroker mbean = new AMQBrokerManagerMBean((VirtualHost.VirtualHostMBean)vHost.getManagedObject());
 
         assertTrue(_queueRegistry.getQueue(new AMQShortString(queueName)) == null);
                 
@@ -77,7 +82,7 @@
     {
         super.setUp();
         IApplicationRegistry appRegistry = ApplicationRegistry.getInstance();
-        _queueRegistry    = appRegistry.getQueueRegistry();
-        _exchangeRegistry = appRegistry.getExchangeRegistry();
+        _queueRegistry    = appRegistry.getVirtualHostRegistry().getVirtualHost("test").getQueueRegistry();
+        _exchangeRegistry = appRegistry.getVirtualHostRegistry().getVirtualHost("test").getExchangeRegistry();
     }
 }

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java Wed Jan 24 07:41:48 2007
@@ -178,7 +178,7 @@
 
         public TestQueue(AMQShortString name) throws AMQException
         {
-            super(name, false, new AMQShortString("test"), true, ApplicationRegistry.getInstance().getQueueRegistry());
+            super(name, false, new AMQShortString("test"), true, ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost("test"));
         }
 
         /**

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java Wed Jan 24 07:41:48 2007
@@ -21,7 +21,9 @@
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.QueueRegistry;
 import org.apache.qpid.server.registry.ApplicationRegistry;
+import org.apache.qpid.server.registry.IApplicationRegistry;
 import org.apache.qpid.server.management.ManagedObject;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.exchange.ExchangeDefaults;
 import org.apache.qpid.framing.AMQShortString;
 
@@ -36,6 +38,7 @@
 {
     private AMQQueue _queue;
     private QueueRegistry _queueRegistry;
+    private VirtualHost _virtualHost;
 
     /**
      * Test for direct exchange mbean
@@ -45,7 +48,7 @@
     public void testDirectExchangeMBean() throws Exception
     {
         DestNameExchange exchange = new DestNameExchange();
-        exchange.initialise(ExchangeDefaults.DIRECT_EXCHANGE_NAME, false, 0, true);
+        exchange.initialise(_virtualHost, ExchangeDefaults.DIRECT_EXCHANGE_NAME, false, 0, true);
         ManagedObject managedObj = exchange.getManagedObject();
         ManagedExchange mbean = (ManagedExchange)managedObj;
 
@@ -72,7 +75,7 @@
     public void testTopicExchangeMBean() throws Exception
     {
         DestWildExchange exchange = new DestWildExchange();
-        exchange.initialise(ExchangeDefaults.TOPIC_EXCHANGE_NAME, false, 0, true);
+        exchange.initialise(_virtualHost,ExchangeDefaults.TOPIC_EXCHANGE_NAME, false, 0, true);
         ManagedObject managedObj = exchange.getManagedObject();
         ManagedExchange mbean = (ManagedExchange)managedObj;
 
@@ -99,7 +102,7 @@
     public void testHeadersExchangeMBean() throws Exception
     {
         HeadersExchange exchange = new HeadersExchange();
-        exchange.initialise(ExchangeDefaults.HEADERS_EXCHANGE_NAME, false, 0, true);
+        exchange.initialise(_virtualHost,ExchangeDefaults.HEADERS_EXCHANGE_NAME, false, 0, true);
         ManagedObject managedObj = exchange.getManagedObject();
         ManagedExchange mbean = (ManagedExchange)managedObj;
 
@@ -122,8 +125,11 @@
     protected void setUp() throws Exception
     {
         super.setUp();
-        _queueRegistry = ApplicationRegistry.getInstance().getQueueRegistry();
-        _queue = new AMQQueue(new AMQShortString("testQueue"), false, new AMQShortString("ExchangeMBeanTest"), false, _queueRegistry);
+
+        IApplicationRegistry applicationRegistry = ApplicationRegistry.getInstance();
+        _virtualHost = applicationRegistry.getVirtualHostRegistry().getVirtualHost("test");
+        _queueRegistry = _virtualHost.getQueueRegistry();
+        _queue = new AMQQueue(new AMQShortString("testQueue"), false, new AMQShortString("ExchangeMBeanTest"), false, _virtualHost);
         _queueRegistry.registerQueue(_queue);
     }
 }

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java Wed Jan 24 07:41:48 2007
@@ -23,6 +23,7 @@
 import org.apache.qpid.AMQException;
 import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.util.TestApplicationRegistry;
+import org.apache.qpid.server.util.NullApplicationRegistry;
 import org.apache.qpid.framing.BasicPublishBody;
 
 public class HeadersExchangeTest extends AbstractHeadersExchangeTestBase
@@ -30,7 +31,7 @@
     protected void setUp() throws Exception
     {
         super.setUp();
-        ApplicationRegistry.initialise(new TestApplicationRegistry());
+        ApplicationRegistry.initialise(new NullApplicationRegistry());
     }
 
     public void testSimple() throws AMQException

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java Wed Jan 24 07:41:48 2007
@@ -4,6 +4,7 @@
 import org.apache.log4j.Logger;
 import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.util.TestApplicationRegistry;
+import org.apache.qpid.server.util.NullApplicationRegistry;
 import org.apache.qpid.client.*;
 import org.apache.qpid.client.transport.TransportConnection;
 import org.apache.qpid.url.AMQBindingURL;
@@ -38,7 +39,7 @@
     {
         super.setUp();
         TransportConnection.createVMBroker(1);
-        ApplicationRegistry.initialise(new TestApplicationRegistry(), 1);
+        ApplicationRegistry.initialise(new NullApplicationRegistry(), 1);
     }
 
     protected void tearDown() throws Exception

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBeanTest.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBeanTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBeanTest.java Wed Jan 24 07:41:48 2007
@@ -21,6 +21,9 @@
 import org.apache.mina.common.IoSession;
 import org.apache.qpid.codec.AMQCodecFactory;
 import org.apache.qpid.server.AMQChannel;
+import org.apache.qpid.server.virtualhost.VirtualHost;
+import org.apache.qpid.server.registry.IApplicationRegistry;
+import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.exchange.DefaultExchangeFactory;
 import org.apache.qpid.server.exchange.DefaultExchangeRegistry;
 import org.apache.qpid.server.exchange.ExchangeRegistry;
@@ -46,6 +49,7 @@
     private QueueRegistry _queueRegistry;
     private ExchangeRegistry _exchangeRegistry;
     private AMQProtocolSessionMBean _mbean;
+    private VirtualHost _virtualHost;
 
     public void testChannels() throws Exception
     {
@@ -53,7 +57,7 @@
         int channelCount = _mbean.channels().size();
         assertTrue(channelCount == 1);
         AMQQueue queue = new org.apache.qpid.server.queue.AMQQueue(new AMQShortString("testQueue_" + System.currentTimeMillis()),
-                                                            false, new AMQShortString("test"), true, _queueRegistry);
+                                                            false, new AMQShortString("test"), true, _virtualHost);
         AMQChannel channel = new AMQChannel(2, _messageStore, null);
         channel.setDefaultQueue(queue);
         _protocolSession.addChannel(channel);
@@ -106,10 +110,12 @@
     {
         super.setUp();
         _channel = new AMQChannel(1, _messageStore, null);
-        _queueRegistry = new DefaultQueueRegistry();
-        _exchangeRegistry = new DefaultExchangeRegistry(new DefaultExchangeFactory());
+        IApplicationRegistry appRegistry = ApplicationRegistry.getInstance();
+        _virtualHost = appRegistry.getVirtualHostRegistry().getVirtualHost("test");
+        _queueRegistry = _virtualHost.getQueueRegistry();
+        _exchangeRegistry = _virtualHost.getExchangeRegistry();
         _mockIOSession = new MockIoSession();
-        _protocolSession = new AMQMinaProtocolSession(_mockIOSession, _queueRegistry, _exchangeRegistry, new AMQCodecFactory(true));
+        _protocolSession = new AMQMinaProtocolSession(_mockIOSession, appRegistry.getVirtualHostRegistry(), new AMQCodecFactory(true));
         _protocolSession.addChannel(_channel);
         _mbean = (AMQProtocolSessionMBean)_protocolSession.getManagedObject();
     }

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java Wed Jan 24 07:41:48 2007
@@ -24,6 +24,9 @@
 import org.apache.qpid.framing.AMQShortString;
 import org.apache.qpid.server.AMQChannel;
 import org.apache.qpid.server.RequiredDeliveryException;
+import org.apache.qpid.server.virtualhost.VirtualHost;
+import org.apache.qpid.server.registry.IApplicationRegistry;
+import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.txn.TransactionalContext;
 import org.apache.qpid.server.txn.NonTransactionalContext;
 import org.apache.qpid.server.store.MessageStore;
@@ -50,6 +53,7 @@
                                                                                      new HashSet<Long>());
     private MockProtocolSession _protocolSession;
     private AMQChannel _channel;
+    private VirtualHost _virtualHost;
 
     public void testMessageCount() throws Exception
     {
@@ -180,8 +184,10 @@
     protected void setUp() throws Exception
     {
         super.setUp();
-        _queueRegistry = new DefaultQueueRegistry();
-        _queue = new AMQQueue(new AMQShortString("testQueue"), false, new AMQShortString("AMQueueMBeanTest"), false, _queueRegistry);
+        IApplicationRegistry applicationRegistry = ApplicationRegistry.getInstance();
+        _virtualHost = applicationRegistry.getVirtualHostRegistry().getVirtualHost("test");
+        _queueRegistry = _virtualHost.getQueueRegistry();
+        _queue = new AMQQueue(new AMQShortString("testQueue"), false, new AMQShortString("AMQueueMBeanTest"), false, _virtualHost);
         _queueMBean = new AMQQueueMBean(_queue);
     }
 

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/AckTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/AckTest.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/AckTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/AckTest.java Wed Jan 24 07:41:48 2007
@@ -37,6 +37,7 @@
 import org.apache.qpid.server.txn.NonTransactionalContext;
 import org.apache.qpid.server.txn.TransactionalContext;
 import org.apache.qpid.server.util.TestApplicationRegistry;
+import org.apache.qpid.server.util.NullApplicationRegistry;
 
 import java.util.LinkedList;
 import java.util.Set;
@@ -67,7 +68,7 @@
 
     public AckTest() throws Exception
     {
-        ApplicationRegistry.initialise(new TestApplicationRegistry());
+        ApplicationRegistry.initialise(new NullApplicationRegistry());
     }
 
     protected void setUp() throws Exception
@@ -78,7 +79,7 @@
         _protocolSession = new MockProtocolSession(_messageStore);
         _protocolSession.addChannel(_channel);
         _subscriptionManager = new SubscriptionSet();
-        _queue = new AMQQueue(new AMQShortString("myQ"), false, new AMQShortString("guest"), true, new DefaultQueueRegistry(), _subscriptionManager);
+        _queue = new AMQQueue(new AMQShortString("myQ"), false, new AMQShortString("guest"), true, ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost("test"), _subscriptionManager);
     }
 
     private void publishMessages(int count) throws AMQException

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ConcurrencyTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ConcurrencyTest.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ConcurrencyTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ConcurrencyTest.java Wed Jan 24 07:41:48 2007
@@ -23,6 +23,9 @@
 import org.apache.qpid.AMQException;
 import org.apache.qpid.framing.AMQShortString;
 import org.apache.qpid.server.handler.OnCurrentThreadExecutor;
+import org.apache.qpid.server.registry.IApplicationRegistry;
+import org.apache.qpid.server.registry.ApplicationRegistry;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 
 import java.util.*;
 import java.util.concurrent.Executor;
@@ -50,11 +53,15 @@
 
     private boolean isComplete;
     private boolean failed;
+    private VirtualHost _virtualHost;
 
     public ConcurrencyTest() throws Exception
     {
+
+        IApplicationRegistry applicationRegistry = ApplicationRegistry.getInstance();
+        _virtualHost = applicationRegistry.getVirtualHostRegistry().getVirtualHost("test");
         _deliveryMgr = new ConcurrentSelectorDeliveryManager(_subscriptionMgr, new AMQQueue(new AMQShortString("myQ"), false, new AMQShortString("guest"), false,
-                                                                          new DefaultQueueRegistry()));
+                                                                          _virtualHost));
     }
 
     public void testConcurrent1() throws InterruptedException, AMQException

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/MockProtocolSession.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/MockProtocolSession.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/MockProtocolSession.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/MockProtocolSession.java Wed Jan 24 07:41:48 2007
@@ -25,6 +25,7 @@
 import org.apache.qpid.framing.FieldTable;
 import org.apache.qpid.framing.AMQShortString;
 import org.apache.qpid.server.AMQChannel;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.server.protocol.AMQProtocolSession;
 import org.apache.qpid.server.store.MessageStore;
 
@@ -137,4 +138,24 @@
 	{
 		return null;
 	}
+
+    public VirtualHost getVirtualHost()
+    {
+        return null;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    public void setVirtualHost(VirtualHost virtualHost)
+    {
+        //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    public void addSessionCloseTask(Task task)
+    {
+        //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    public void removeSessionCloseTask(Task task)
+    {
+        //To change body of implemented methods use File | Settings | File Templates.
+    }
 }

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SkeletonMessageStore.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SkeletonMessageStore.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SkeletonMessageStore.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SkeletonMessageStore.java Wed Jan 24 07:41:48 2007
@@ -27,6 +27,7 @@
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.MessageMetaData;
 import org.apache.qpid.server.queue.QueueRegistry;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 
 import java.util.List;
 import java.util.concurrent.atomic.AtomicLong;
@@ -42,9 +43,10 @@
     public void configure(String base, Configuration config) throws Exception
     {
     }
-
-    public void configure(QueueRegistry queueRegistry, String base, Configuration config) throws Exception
+    
+    public void configure(VirtualHost virtualHost, String base, Configuration config) throws Exception
     {
+        //To change body of implemented methods use File | Settings | File Templates.
     }
 
     public void close() throws Exception

Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/util/TestApplicationRegistry.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/util/TestApplicationRegistry.java?view=diff&rev=499446&r1=499445&r2=499446
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/util/TestApplicationRegistry.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/util/TestApplicationRegistry.java Wed Jan 24 07:41:48 2007
@@ -29,14 +29,18 @@
 import org.apache.qpid.server.queue.DefaultQueueRegistry;
 import org.apache.qpid.server.queue.QueueRegistry;
 import org.apache.qpid.server.registry.ApplicationRegistry;
+import org.apache.qpid.server.registry.IApplicationRegistry;
 import org.apache.qpid.server.security.auth.AuthenticationManager;
 import org.apache.qpid.server.security.auth.NullAuthenticationManager;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.store.TestableMemoryMessageStore;
+import org.apache.qpid.server.virtualhost.VirtualHost;
+import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.MapConfiguration;
 
 import java.util.HashMap;
+import java.util.Collection;
 
 public class TestApplicationRegistry extends ApplicationRegistry
 {
@@ -51,6 +55,7 @@
     private AuthenticationManager _authenticationManager;
 
     private MessageStore _messageStore;
+    private VirtualHost _vHost;
 
     public TestApplicationRegistry()
     {
@@ -59,10 +64,12 @@
 
     public void initialise() throws Exception
     {
-        _managedObjectRegistry = new NoopManagedObjectRegistry();
-        _queueRegistry = new DefaultQueueRegistry();
-        _exchangeFactory = new DefaultExchangeFactory();
-        _exchangeRegistry = new DefaultExchangeRegistry(_exchangeFactory);
+        IApplicationRegistry appRegistry = ApplicationRegistry.getInstance();
+        _managedObjectRegistry = appRegistry.getManagedObjectRegistry();
+        _vHost = appRegistry.getVirtualHostRegistry().getVirtualHost("test");
+        _queueRegistry = _vHost.getQueueRegistry();
+        _exchangeFactory = _vHost.getExchangeFactory();
+        _exchangeRegistry = _vHost.getExchangeRegistry();
         _authenticationManager = new NullAuthenticationManager();
         _messageStore = new TestableMemoryMessageStore();
 
@@ -97,6 +104,16 @@
     public AuthenticationManager getAuthenticationManager()
     {
         return _authenticationManager;
+    }
+
+    public Collection<String> getVirtualHostNames()
+    {
+        return null;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    public VirtualHostRegistry getVirtualHostRegistry()
+    {
+        return null;  //To change body of implemented methods use File | Settings | File Templates.
     }
 
     public MessageStore getMessageStore()