You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2014/04/21 16:28:32 UTC

svn commit: r1588886 [5/6] - in /qpid/trunk/qpid/java: bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/ bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/jmx/ bdbstore/src/main/java/org/apache/qpid/server/store/b...

Copied: qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory (from r1588885, qpid/trunk/qpid/java/bdbstore/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory?p2=qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory&p1=qpid/trunk/qpid/java/bdbstore/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory&r1=1588885&r2=1588886&rev=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory (original)
+++ qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory Mon Apr 21 14:28:29 2014
@@ -16,4 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-org.apache.qpid.server.store.berkeleydb.BDBHAVirtualHostFactory
+org.apache.qpid.server.virtualhostnode.derby.DerbyVirtualHostNodeFactory

Modified: qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java Mon Apr 21 14:28:29 2014
@@ -51,11 +51,11 @@ public class JDBCMessageStore extends Ab
 
     public static final String TYPE = "JDBC";
     public static final String CONNECTION_URL = "connectionURL";
-    public static final String CONNECTION_POOL = "connectionPool";
-    public static final String JDBC_BIG_INT_TYPE = "jdbcBigIntType";
-    public static final String JDBC_BYTES_FOR_BLOB = "jdbcBytesForBlob";
-    public static final String JDBC_VARBINARY_TYPE = "jdbcVarbinaryType";
-    public static final String JDBC_BLOB_TYPE = "jdbcBlobType";
+    public static final String CONNECTION_POOL_TYPE = "connectionPoolType";
+    public static final String JDBC_BIG_INT_TYPE = "bigIntType";
+    public static final String JDBC_BYTES_FOR_BLOB = "bytesForBlob";
+    public static final String JDBC_VARBINARY_TYPE = "varbinaryType";
+    public static final String JDBC_BLOB_TYPE = "blobType";
 
     protected String _connectionURL;
     private ConnectionProvider _connectionProvider;
@@ -290,7 +290,7 @@ public class JDBCMessageStore extends Ab
         throws ClassNotFoundException, SQLException
     {
         _connectionURL = String.valueOf(storeSettings.get(CONNECTION_URL));
-        Object poolAttribute = storeSettings.get(CONNECTION_POOL);
+        Object poolAttribute = storeSettings.get(CONNECTION_POOL_TYPE);
 
         JDBCDetails details = null;
 

Modified: qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java Mon Apr 21 14:28:29 2014
@@ -64,9 +64,11 @@ public class JDBCMessageStoreFactory imp
 
             }
         }
+    }
 
-        @SuppressWarnings("unchecked")
-        Map<String, Object> configurationStoreSettings = (Map<String, Object>) attributes.get(VirtualHost.CONFIGURATION_STORE_SETTINGS);
+    @Override
+    public void validateConfigurationStoreSettings(Map<String, Object> configurationStoreSettings)
+    {
         if(configurationStoreSettings != null && getType().equals(configurationStoreSettings.get(DurableConfigurationStore.STORE_TYPE)))
         {
             Object connectionURL = configurationStoreSettings.get(JDBCMessageStore.CONNECTION_URL);

Copied: qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNode.java (from r1588885, qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestMemoryMessageStoreFactory.java)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNode.java?p2=qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNode.java&p1=qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestMemoryMessageStoreFactory.java&r1=1588885&r2=1588886&rev=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestMemoryMessageStoreFactory.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNode.java Mon Apr 21 14:28:29 2014
@@ -18,30 +18,31 @@
  * under the License.
  *
  */
+package org.apache.qpid.server.virtualhostnode.jdbc;
 
-package org.apache.qpid.server.store;
+import org.apache.qpid.server.model.ManagedAttribute;
+import org.apache.qpid.server.store.jdbc.DefaultConnectionProviderFactory;
 
-import java.util.Map;
 
-import org.apache.qpid.server.plugin.MessageStoreFactory;
-
-public class TestMemoryMessageStoreFactory implements MessageStoreFactory
+public interface JDBCVirtualHostNode
 {
+    //TODO: Split this attribute into connectionUrl, username and password. Make the password attribute secure.
+    @ManagedAttribute(automate=true, mandatory=true)
+    String getConnectionUrl();
+
+    @ManagedAttribute(automate=true, defaultValue=DefaultConnectionProviderFactory.TYPE)
+    String getConnectionPoolType();
+
+    @ManagedAttribute(automate=true)
+    String getBigIntType();
+
+    @ManagedAttribute(automate=true)
+    boolean isBytesForBlob();
+
+    @ManagedAttribute(automate=true)
+    String getVarBinaryType();
+
+    @ManagedAttribute(automate=true)
+    String getBlobType();
 
-    @Override
-    public String getType()
-    {
-        return TestMemoryMessageStore.TYPE;
-    }
-
-    @Override
-    public MessageStore createMessageStore()
-    {
-        return new TestMemoryMessageStore();
-    }
-
-    @Override
-    public void validateAttributes(Map<String, Object> attributes)
-    {
-    }
-}
+}
\ No newline at end of file

Copied: qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNodeFactory.java (from r1588885, qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostFactory.java)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNodeFactory.java?p2=qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNodeFactory.java&p1=qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostFactory.java&r1=1588885&r2=1588886&rev=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostFactory.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNodeFactory.java Mon Apr 21 14:28:29 2014
@@ -18,31 +18,27 @@
  * under the License.
  *
  */
-package org.apache.qpid.server.store.berkeleydb;
+
+package org.apache.qpid.server.virtualhostnode.jdbc;
+
+import java.util.Map;
 
 import org.apache.qpid.server.model.AbstractConfiguredObjectTypeFactory;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-public class BDBHAVirtualHostFactory extends AbstractConfiguredObjectTypeFactory<BDBHAVirtualHost>
+public class JDBCVirtualHostNodeFactory extends AbstractConfiguredObjectTypeFactory<JDBCVirtualHostNodeImpl>
 {
-
-    public BDBHAVirtualHostFactory()
+    public JDBCVirtualHostNodeFactory()
     {
-        super(BDBHAVirtualHost.class);
+        super(JDBCVirtualHostNodeImpl.class);
     }
 
     @Override
-    public BDBHAVirtualHost createInstance(final Map<String, Object> attributes,
-                                                 final ConfiguredObject<?>... parents)
+    public JDBCVirtualHostNodeImpl createInstance(Map<String, Object> attributes, ConfiguredObject<?>... parents)
     {
-        final Broker broker = getParent(Broker.class, parents);
-        return new BDBHAVirtualHost(attributes, broker);
+        Broker<?> broker = getParent(Broker.class, parents);
+        return new JDBCVirtualHostNodeImpl(broker, attributes, broker.getTaskExecutor());
     }
 
-
 }

Added: qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNodeImpl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNodeImpl.java?rev=1588886&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNodeImpl.java (added)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhostnode/jdbc/JDBCVirtualHostNodeImpl.java Mon Apr 21 14:28:29 2014
@@ -0,0 +1,103 @@
+/*
+ *
+ * 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.virtualhostnode.jdbc;
+
+import java.util.Map;
+
+import org.apache.qpid.server.configuration.updater.TaskExecutor;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ManagedAttribute;
+import org.apache.qpid.server.model.ManagedAttributeField;
+import org.apache.qpid.server.model.ManagedObject;
+import org.apache.qpid.server.plugin.DurableConfigurationStoreFactory;
+import org.apache.qpid.server.store.jdbc.JDBCMessageStore;
+import org.apache.qpid.server.store.jdbc.JDBCMessageStoreFactory;
+import org.apache.qpid.server.virtualhostnode.AbstractStandardVirtualHostNode;
+
+@ManagedObject( category = false, type = "JDBC" )
+public class JDBCVirtualHostNodeImpl extends AbstractStandardVirtualHostNode<JDBCVirtualHostNodeImpl> implements JDBCVirtualHostNode
+{
+    @ManagedAttributeField
+    private String _connectionUrl;
+
+    @ManagedAttributeField
+    private String _connectionPoolType;
+
+    @ManagedAttributeField
+    private String _bigIntType;
+
+    @ManagedAttributeField
+    private boolean _bytesForBlob;
+
+    @ManagedAttributeField
+    private String _varBinaryType;
+
+    @ManagedAttributeField
+    private String _blobType;
+
+    public JDBCVirtualHostNodeImpl(Broker<?> parent, Map<String, Object> attributes, TaskExecutor taskExecutor)
+    {
+        super(parent, attributes, taskExecutor);
+    }
+
+    @Override
+    protected DurableConfigurationStoreFactory getDurableConfigurationStoreFactory()
+    {
+        return new JDBCMessageStoreFactory();
+    }
+
+    @Override
+    public String getConnectionUrl()
+    {
+        return _connectionUrl;
+    }
+
+    @Override
+    public String getConnectionPoolType()
+    {
+        return _connectionPoolType;
+    }
+
+    @Override
+    public String getBigIntType()
+    {
+        return _bigIntType;
+    }
+
+    @Override
+    public boolean isBytesForBlob()
+    {
+        return _bytesForBlob;
+    }
+
+    @Override
+    public String getVarBinaryType()
+    {
+        return _varBinaryType;
+    }
+
+    @Override
+    public String getBlobType()
+    {
+        return _blobType;
+    }
+
+}

Copied: qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory (from r1588885, qpid/trunk/qpid/java/bdbstore/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory?p2=qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory&p1=qpid/trunk/qpid/java/bdbstore/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory&r1=1588885&r2=1588886&rev=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory (original)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory Mon Apr 21 14:28:29 2014
@@ -16,4 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-org.apache.qpid.server.store.berkeleydb.BDBHAVirtualHostFactory
+org.apache.qpid.server.virtualhostnode.jdbc.JDBCVirtualHostNodeFactory

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java Mon Apr 21 14:28:29 2014
@@ -320,24 +320,26 @@ public class HttpManagement extends Abst
         root.addFilter(new FilterHolder(new RedirectingAuthorisationFilter()), "/", EnumSet.of(DispatcherType.REQUEST));
 
         addRestServlet(root, "broker");
-        addRestServlet(root, "virtualhost", VirtualHost.class);
+        addRestServlet(root, "virtualhostnode", VirtualHostNode.class);
         addRestServlet(root, "authenticationprovider", AuthenticationProvider.class);
         addRestServlet(root, "accesscontrolprovider", AccessControlProvider.class);
         addRestServlet(root, "user", AuthenticationProvider.class, User.class);
         addRestServlet(root, "groupprovider", GroupProvider.class);
         addRestServlet(root, "group", GroupProvider.class, Group.class);
         addRestServlet(root, "groupmember", GroupProvider.class, Group.class, GroupMember.class);
-        addRestServlet(root, "exchange", VirtualHost.class, Exchange.class);
-        addRestServlet(root, "queue", VirtualHost.class, Queue.class);
-        addRestServlet(root, "connection", VirtualHost.class, Connection.class);
-        addRestServlet(root, "binding", VirtualHost.class, Exchange.class, Queue.class, Binding.class);
         addRestServlet(root, "port", Port.class);
-        addRestServlet(root, "session", VirtualHost.class, Connection.class, Session.class);
         addRestServlet(root, "keystore", KeyStore.class);
         addRestServlet(root, "truststore", TrustStore.class);
         addRestServlet(root, "plugin", Plugin.class);
         addRestServlet(root, "preferencesprovider", AuthenticationProvider.class, PreferencesProvider.class);
 
+        addRestServlet(root, "virtualhost", VirtualHostNode.class, VirtualHost.class);
+        addRestServlet(root, "exchange", VirtualHostNode.class, VirtualHost.class, Exchange.class);
+        addRestServlet(root, "queue", VirtualHostNode.class, VirtualHost.class, Queue.class);
+        addRestServlet(root, "connection", VirtualHostNode.class, VirtualHost.class, Connection.class);
+        addRestServlet(root, "binding", VirtualHostNode.class, VirtualHost.class, Exchange.class, Queue.class, Binding.class);
+        addRestServlet(root, "session", VirtualHostNode.class, VirtualHost.class, Connection.class, Session.class);
+
         root.addServlet(new ServletHolder(new UserPreferencesServlet()), "/rest/userpreferences/*");
         root.addServlet(new ServletHolder(new LoggedOnUserPreferencesServlet()), "/rest/preferences");
         root.addServlet(new ServletHolder(new StructureServlet()), "/rest/structure");

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java Mon Apr 21 14:28:29 2014
@@ -77,17 +77,11 @@ public class MessageContentServlet exten
         String vhostName = pathInfoElements[0];
         String queueName = pathInfoElements[1];
 
-        VirtualHost<?,?,?> vhost = null;
-
-        for(VirtualHost vh : getBroker().getVirtualHosts())
+        VirtualHost<?,?,?> vhost = getBroker().findVirtualHostByName(vhostName);
+        if (vhost == null)
         {
-            if(vh.getName().equals(vhostName))
-            {
-                vhost = vh;
-                break;
-            }
+            throw new IllegalArgumentException("Could not find virtual host with name '" + vhostName + "'");
         }
-
         return getQueueFromVirtualHost(queueName, vhost);
     }
 

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java Mon Apr 21 14:28:29 2014
@@ -33,7 +33,6 @@ import javax.servlet.http.HttpServletRes
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.codehaus.jackson.map.SerializationConfig;
-
 import org.apache.qpid.server.consumer.ConsumerImpl;
 import org.apache.qpid.server.message.AMQMessageHeader;
 import org.apache.qpid.server.message.MessageReference;
@@ -135,15 +134,10 @@ public class MessageServlet extends Abst
         String vhostName = pathInfoElements[0];
         String queueName = pathInfoElements[1];
 
-        VirtualHost<?,?,?> vhost = null;
-
-        for(VirtualHost<?,?,?> vh : getBroker().getVirtualHosts())
+        VirtualHost<?,?,?> vhost = getBroker().findVirtualHostByName(vhostName);
+        if (vhost == null)
         {
-            if(vh.getName().equals(vhostName))
-            {
-                vhost = vh;
-                break;
-            }
+            throw new IllegalArgumentException("Could not find virtual host with name '" + vhostName + "'");
         }
 
         return getQueueFromVirtualHost(queueName, vhost);

Modified: qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementPluginImpl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementPluginImpl.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementPluginImpl.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementPluginImpl.java Mon Apr 21 14:28:29 2014
@@ -31,7 +31,6 @@ import java.util.Set;
 import javax.management.JMException;
 
 import org.apache.log4j.Logger;
-
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
 import org.apache.qpid.server.jmx.mbeans.LoggingManagementMBean;
 import org.apache.qpid.server.jmx.mbeans.ServerInformationMBean;
@@ -49,6 +48,7 @@ import org.apache.qpid.server.model.Port
 import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.VirtualHostNode;
 import org.apache.qpid.server.model.adapter.AbstractPluginAdapter;
 import org.apache.qpid.server.plugin.QpidServiceLoader;
 import org.apache.qpid.server.util.ServerScopedRuntimeException;
@@ -74,6 +74,7 @@ public class JMXManagementPluginImpl
 
     private JMXManagedObjectRegistry _objectRegistry;
 
+    private final Object _childrenLock = new Object();
     private final Map<ConfiguredObject, AMQManagedObject> _children = new HashMap<ConfiguredObject, AMQManagedObject>();
 
     @ManagedAttributeField
@@ -142,25 +143,25 @@ public class JMXManagementPluginImpl
 
         broker.addChangeListener(this);
 
-        synchronized (_children)
+        synchronized (_childrenLock)
         {
-            for(VirtualHost<?,?,?> virtualHost : broker.getVirtualHosts())
+            for(VirtualHostNode<?> virtualHostNode : broker.getVirtualHostNodes())
             {
-                if(!_children.containsKey(virtualHost))
+                virtualHostNode.addChangeListener(this);
+
+                // Virtualhostnodes may or may not have a virtualhost at this point.  In the HA
+                // case, JE may spontaneously make the node a master causing it to create a virtualhost.
+                // Creation of the vhost uses the task executor (same thread that executes this code
+                // so there is no potential for a race here).
+                VirtualHost host = virtualHostNode.getVirtualHost();
+                if (host != null)
                 {
-                    if(LOGGER.isDebugEnabled())
-                    {
-                        LOGGER.debug("Create MBean for virtual host:" + virtualHost.getName());
-                    }
-                    VirtualHostMBean mbean = new VirtualHostMBean(virtualHost, _objectRegistry);
-
-                    if(LOGGER.isDebugEnabled())
-                    {
-                        LOGGER.debug("Check for additional MBeans for virtual host:" + virtualHost.getName());
-                    }
-                    createAdditionalMBeansFromProviders(virtualHost, mbean);
+                    VirtualHostMBean mbean = new VirtualHostMBean(host, _objectRegistry);
+                    _children.put(host, mbean);
                 }
+                createAdditionalMBeansFromProviders(virtualHostNode, _objectRegistry);
             }
+
             Collection<AuthenticationProvider<?>> authenticationProviders = broker.getAuthenticationProviders();
             for (AuthenticationProvider<?> authenticationProvider : authenticationProviders)
             {
@@ -171,6 +172,7 @@ public class JMXManagementPluginImpl
                             _objectRegistry);
                     _children.put(authenticationProvider, mbean);
                 }
+                createAdditionalMBeansFromProviders(authenticationProvider, _objectRegistry);
             }
         }
         new Shutdown(_objectRegistry);
@@ -182,6 +184,13 @@ public class JMXManagementPluginImpl
         _objectRegistry.start();
     }
 
+    @Override
+    protected void onOpen()
+    {
+        super.onOpen();
+
+    }
+
     private boolean isConnectorPort(Port port)
     {
         return port.getAvailableProtocols().contains(Protocol.JMX_RMI);
@@ -194,7 +203,7 @@ public class JMXManagementPluginImpl
 
     private void stop()
     {
-        synchronized (_children)
+        synchronized (_childrenLock)
         {
             for(ConfiguredObject object : _children.keySet())
             {
@@ -227,11 +236,16 @@ public class JMXManagementPluginImpl
     @Override
     public void childAdded(ConfiguredObject object, ConfiguredObject child)
     {
-        synchronized (_children)
+
+        synchronized (_childrenLock)
         {
             try
             {
                 AMQManagedObject mbean;
+                if (child instanceof VirtualHostNode)
+                {
+                    child.addChangeListener(this);
+                }
                 if(child instanceof VirtualHost)
                 {
                     VirtualHost vhostChild = (VirtualHost)child;
@@ -248,8 +262,9 @@ public class JMXManagementPluginImpl
 
                 if (mbean != null)
                 {
-                    createAdditionalMBeansFromProviders(child, mbean);
+                    _children.put(child, mbean);
                 }
+                createAdditionalMBeansFromProviders(child, _objectRegistry);
             }
             catch(Exception e)
             {
@@ -262,8 +277,10 @@ public class JMXManagementPluginImpl
     @Override
     public void childRemoved(ConfiguredObject object, ConfiguredObject child)
     {
-        synchronized (_children)
+        synchronized (_childrenLock)
         {
+            child.removeChangeListener(this);
+
             AMQManagedObject mbean = _children.remove(child);
             if(mbean != null)
             {
@@ -286,10 +303,8 @@ public class JMXManagementPluginImpl
         // no-op
     }
 
-    private void createAdditionalMBeansFromProviders(ConfiguredObject child, AMQManagedObject mbean) throws JMException
+    private void createAdditionalMBeansFromProviders(ConfiguredObject child, ManagedObjectRegistry registry) throws JMException
     {
-        _children.put(child, mbean);
-
         QpidServiceLoader<MBeanProvider> qpidServiceLoader = new QpidServiceLoader<MBeanProvider>();
         for (MBeanProvider provider : qpidServiceLoader.instancesOf(MBeanProvider.class))
         {
@@ -298,16 +313,22 @@ public class JMXManagementPluginImpl
                 LOGGER.debug("Consulting mbean provider : " + provider + " for child : " + child);
             }
 
+            ManagedObject mBean = null;
             if (provider.isChildManageableByMBean(child))
             {
                 if(LOGGER.isDebugEnabled())
                 {
                     LOGGER.debug("Provider will create mbean");
                 }
-                provider.createMBean(child, mbean);
+                mBean = provider.createMBean(child, registry);
                 // TODO track the mbeans that have been created on behalf of a child in a map, then
                 // if the child is ever removed, destroy these beans too.
             }
+
+            if(LOGGER.isDebugEnabled())
+            {
+                LOGGER.debug("Provider " + provider + " mBean for child " + child + " " + mBean);
+            }
         }
     }
 

Modified: qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanProvider.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanProvider.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanProvider.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanProvider.java Mon Apr 21 14:28:29 2014
@@ -22,7 +22,6 @@
 package org.apache.qpid.server.jmx;
 
 import javax.management.JMException;
-import javax.management.StandardMBean;
 
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.plugin.Pluggable;
@@ -44,9 +43,10 @@ public interface MBeanProvider extends P
     /**
      * Creates a mbean for this child.  This method should only be called if
      * {@link #isChildManageableByMBean(ConfiguredObject)} has previously returned true.
+     * @param registry managed object registry
      *
      * @return newly created mbean
      */
-    StandardMBean createMBean(ConfiguredObject child, StandardMBean parent) throws JMException;
+    ManagedObject createMBean(ConfiguredObject child, ManagedObjectRegistry registry) throws JMException;
 
 }

Modified: qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/store/MemoryMessageStoreFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/store/MemoryMessageStoreFactory.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/store/MemoryMessageStoreFactory.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/store/MemoryMessageStoreFactory.java Mon Apr 21 14:28:29 2014
@@ -22,9 +22,10 @@ package org.apache.qpid.server.store;
 
 import java.util.Map;
 
+import org.apache.qpid.server.plugin.DurableConfigurationStoreFactory;
 import org.apache.qpid.server.plugin.MessageStoreFactory;
 
-public class MemoryMessageStoreFactory implements MessageStoreFactory
+public class MemoryMessageStoreFactory implements MessageStoreFactory, DurableConfigurationStoreFactory
 {
 
     @Override
@@ -43,4 +44,15 @@ public class MemoryMessageStoreFactory i
     public void validateAttributes(Map<String, Object> attributes)
     {
     }
+
+    @Override
+    public DurableConfigurationStore createDurableConfigurationStore()
+    {
+        return new MemoryMessageStore();
+    }
+
+    @Override
+    public void validateConfigurationStoreSettings(Map<String, Object> attributes)
+    {
+    }
 }

Copied: qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhostnode/memory/MemoryVirtualHostNode.java (from r1588885, qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostFactory.java)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhostnode/memory/MemoryVirtualHostNode.java?p2=qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhostnode/memory/MemoryVirtualHostNode.java&p1=qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostFactory.java&r1=1588885&r2=1588886&rev=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostFactory.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhostnode/memory/MemoryVirtualHostNode.java Mon Apr 21 14:28:29 2014
@@ -18,31 +18,30 @@
  * under the License.
  *
  */
-package org.apache.qpid.server.store.berkeleydb;
+package org.apache.qpid.server.virtualhostnode.memory;
 
-import org.apache.qpid.server.model.AbstractConfiguredObjectTypeFactory;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-
-import java.util.HashMap;
 import java.util.Map;
-import java.util.UUID;
 
-public class BDBHAVirtualHostFactory extends AbstractConfiguredObjectTypeFactory<BDBHAVirtualHost>
+import org.apache.qpid.server.configuration.updater.TaskExecutor;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ManagedObject;
+import org.apache.qpid.server.plugin.DurableConfigurationStoreFactory;
+import org.apache.qpid.server.store.MemoryMessageStoreFactory;
+import org.apache.qpid.server.virtualhostnode.AbstractStandardVirtualHostNode;
+
+@ManagedObject(type="Memory",category=false)
+public class MemoryVirtualHostNode extends AbstractStandardVirtualHostNode<MemoryVirtualHostNode>
 {
 
-    public BDBHAVirtualHostFactory()
+    public MemoryVirtualHostNode(Broker<?> parent, Map<String, Object> attributes, TaskExecutor taskExecutor)
     {
-        super(BDBHAVirtualHost.class);
+        super(parent, attributes, taskExecutor);
     }
 
     @Override
-    public BDBHAVirtualHost createInstance(final Map<String, Object> attributes,
-                                                 final ConfiguredObject<?>... parents)
+    public DurableConfigurationStoreFactory getDurableConfigurationStoreFactory()
     {
-        final Broker broker = getParent(Broker.class, parents);
-        return new BDBHAVirtualHost(attributes, broker);
+        return new MemoryMessageStoreFactory();
     }
 
-
 }

Copied: qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhostnode/memory/MemoryVirtualHostNodeFactory.java (from r1588885, qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostFactory.java)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhostnode/memory/MemoryVirtualHostNodeFactory.java?p2=qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhostnode/memory/MemoryVirtualHostNodeFactory.java&p1=qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostFactory.java&r1=1588885&r2=1588886&rev=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostFactory.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhostnode/memory/MemoryVirtualHostNodeFactory.java Mon Apr 21 14:28:29 2014
@@ -18,31 +18,27 @@
  * under the License.
  *
  */
-package org.apache.qpid.server.store.berkeleydb;
+package org.apache.qpid.server.virtualhostnode.memory;
+
+import java.util.Map;
 
 import org.apache.qpid.server.model.AbstractConfiguredObjectTypeFactory;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-public class BDBHAVirtualHostFactory extends AbstractConfiguredObjectTypeFactory<BDBHAVirtualHost>
+public class MemoryVirtualHostNodeFactory extends AbstractConfiguredObjectTypeFactory<MemoryVirtualHostNode>
 {
 
-    public BDBHAVirtualHostFactory()
+    public MemoryVirtualHostNodeFactory()
     {
-        super(BDBHAVirtualHost.class);
+        super(MemoryVirtualHostNode.class);
     }
 
     @Override
-    public BDBHAVirtualHost createInstance(final Map<String, Object> attributes,
-                                                 final ConfiguredObject<?>... parents)
+    protected MemoryVirtualHostNode createInstance(Map<String, Object> attributes, ConfiguredObject<?>... parents)
     {
-        final Broker broker = getParent(Broker.class, parents);
-        return new BDBHAVirtualHost(attributes, broker);
+        Broker<?> broker = getParent(Broker.class, parents);
+        return new MemoryVirtualHostNode(broker, attributes, broker.getTaskExecutor());
     }
 
-
 }

Copied: qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory (from r1588885, qpid/trunk/qpid/java/bdbstore/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory?p2=qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory&p1=qpid/trunk/qpid/java/bdbstore/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory&r1=1588885&r2=1588886&rev=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory (original)
+++ qpid/trunk/qpid/java/broker-plugins/memory-store/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory Mon Apr 21 14:28:29 2014
@@ -16,4 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-org.apache.qpid.server.store.berkeleydb.BDBHAVirtualHostFactory
+org.apache.qpid.server.virtualhostnode.memory.MemoryVirtualHostNodeFactory

Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/Strings.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/Strings.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/Strings.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/Strings.java Mon Apr 21 14:28:29 2014
@@ -227,6 +227,10 @@ public final class Strings
 
     private static final String expand(String input, Resolver resolver, Stack<String> stack, boolean failOnUnresolved)
     {
+        if (input == null)
+        {
+            throw new IllegalArgumentException("Expansion input cannot be null");
+        }
         Matcher m = VAR.matcher(input);
         StringBuffer result = new StringBuffer();
         while (m.find())

Modified: qpid/trunk/qpid/java/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java (original)
+++ qpid/trunk/qpid/java/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java Mon Apr 21 14:28:29 2014
@@ -157,6 +157,10 @@ public class QpidTestCase extends TestCa
         return storeType != null ? storeType : "TestableMemory";
     }
 
+    public String getTestProfileVirtualHostNodeType()
+    {
+        return getTestProfileMessageStoreType();
+    }
 
     public static final int MIN_PORT_NUMBER = 1;
     public static final int MAX_PORT_NUMBER = 49151;

Modified: qpid/trunk/qpid/java/systests/etc/config-systests.json
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/etc/config-systests.json?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/etc/config-systests.json (original)
+++ qpid/trunk/qpid/java/systests/etc/config-systests.json Mon Apr 21 14:28:29 2014
@@ -22,7 +22,7 @@
   "name": "Broker",
   "defaultVirtualHost" : "test",
   "storeVersion": 1,
-  "modelVersion": "1.4",
+  "modelVersion": "2.0",
   "authenticationproviders" : [ {
     "name" : "plain",
     "type" : "PlainPasswordFile",
@@ -57,12 +57,10 @@
     "port" : "${test.cport}",
     "protocols" : [ "JMX_RMI" ]
   }],
-  "virtualhosts" : [ {
+  "virtualhostnodes" : [ {
     "name" : "test",
-    "type" : "STANDARD",
-    "messageStoreSettings": {
-        "storeType": "${messagestore.type}",
-        "storePath" : "${QPID_WORK}/test/${test.port}"
-     }
+    "type" : "${messagestore.type}",
+    "messageStoreProvider": true,
+    "storePath" : "${QPID_WORK}/test/${test.port}"
   } ]
 }

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/failover/MultipleBrokersFailoverTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/failover/MultipleBrokersFailoverTest.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/failover/MultipleBrokersFailoverTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/failover/MultipleBrokersFailoverTest.java Mon Apr 21 14:28:29 2014
@@ -98,7 +98,7 @@ public class MultipleBrokersFailoverTest
             {
                 host = NON_FAILOVER_VIRTUAL_HOST;
             }
-            createTestVirtualHost(port, host);
+            createTestVirtualHostNode(port, host);
 
             startBroker(port);
             revertSystemProperties();

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java Mon Apr 21 14:28:29 2014
@@ -186,7 +186,7 @@ public class AlertingTest extends Abstra
         setTestSystemProperty("queue.alertThresholdQueueDepthMessages","5");
         brokerConfiguration.setSaved(false);
 
-        restTestHelper.submitRequest("/rest/queue/test/" + getTestQueueName(), "PUT", Collections.<String, Object>singletonMap(org.apache.qpid.server.model.Queue.ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES, 5));
+        restTestHelper.submitRequest("/rest/queue/test/test/" + getTestQueueName(), "PUT", Collections.<String, Object>singletonMap(org.apache.qpid.server.model.Queue.ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES, 5));
         // Trigger the new value
         sendMessage(_session, _destination, 3);
         _session.commit();

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java Mon Apr 21 14:28:29 2014
@@ -45,10 +45,10 @@ public class ExternalACLJMXTest extends 
     public void setUp() throws Exception
     {
         //remove the normal 'test' vhost, we will configure the vhosts below
-        getBrokerConfiguration(0).removeObjectConfiguration(org.apache.qpid.server.model.VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST);
+        getBrokerConfiguration(0).removeObjectConfiguration(org.apache.qpid.server.model.VirtualHostNode.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST);
 
-        createTestVirtualHost(0, TEST_VHOST);
-        createTestVirtualHost(0, TEST2_VHOST);
+        createTestVirtualHostNode(0, TEST_VHOST);
+        createTestVirtualHostNode(0, TEST2_VHOST);
 
         getBrokerConfiguration().addJmxManagementConfiguration();
 

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/stats/StatisticsReportingTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/stats/StatisticsReportingTest.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/stats/StatisticsReportingTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/stats/StatisticsReportingTest.java Mon Apr 21 14:28:29 2014
@@ -39,6 +39,7 @@ import org.apache.qpid.exchange.Exchange
 import org.apache.qpid.framing.AMQShortString;
 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.QpidBrokerTestCase;
 import org.apache.qpid.test.utils.TestBrokerConfiguration;
 import org.apache.qpid.util.LogMonitor;
@@ -66,14 +67,14 @@ public class StatisticsReportingTest ext
     @Override
     public void setUp() throws Exception
     {
-        createTestVirtualHost(0, VHOST_NAME1);
-        createTestVirtualHost(0, VHOST_NAME2);
-        createTestVirtualHost(0, VHOST_NAME3);
+        createTestVirtualHostNode(0, VHOST_NAME1);
+        createTestVirtualHostNode(0, VHOST_NAME2);
+        createTestVirtualHostNode(0, VHOST_NAME3);
 
         if (getName().equals("testEnabledStatisticsReporting"))
         {
             TestBrokerConfiguration config = getBrokerConfiguration();
-            config.removeObjectConfiguration(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST);
+            config.removeObjectConfiguration(VirtualHostNode.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST);
             config.setBrokerAttribute(Broker.STATISTICS_REPORTING_PERIOD, STATISTICS_REPORTING_PERIOD_IN_SECONDS);
         }
 

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SplitStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SplitStoreTest.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SplitStoreTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SplitStoreTest.java Mon Apr 21 14:28:29 2014
@@ -31,9 +31,11 @@ import javax.jms.Queue;
 import javax.jms.Session;
 
 import org.apache.qpid.configuration.ClientProperties;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.VirtualHostNode;
 import org.apache.qpid.test.utils.QpidBrokerTestCase;
 import org.apache.qpid.test.utils.TestBrokerConfiguration;
+import org.apache.qpid.test.utils.TestFileUtils;
+import org.apache.qpid.test.utils.TestUtils;
 import org.apache.qpid.util.FileUtils;
 
 public class SplitStoreTest extends QpidBrokerTestCase
@@ -52,6 +54,19 @@ public class SplitStoreTest extends Qpid
     }
 
     @Override
+    protected void tearDown() throws Exception
+    {
+        try
+        {
+            super.tearDown();
+        }
+        finally
+        {
+            TestFileUtils.delete(new File(_messageStorePath), true);
+        }
+    }
+
+    @Override
     public void startBroker() throws Exception
     {
         // Overridden to prevent QBTC starting the Broker.
@@ -59,38 +74,32 @@ public class SplitStoreTest extends Qpid
 
     public void testJsonConfigurationStoreWithPersistentMessageStore() throws Exception
     {
-        Map<String, Object> configurationStoreSettings = new HashMap<String, Object>();
-        configurationStoreSettings.put(DurableConfigurationStore.STORE_TYPE, JsonFileConfigStore.TYPE);
-        configurationStoreSettings.put(DurableConfigurationStore.STORE_PATH, _configStorePath);
 
-        doTest(configurationStoreSettings);
+        doTest(JsonFileConfigStore.TYPE, _configStorePath);
     }
 
     public void testSeparateConfigurationAndMessageStoresOfTheSameType() throws Exception
     {
-        Map<String, Object> configurationStoreSettings = new HashMap<String, Object>();
-        configurationStoreSettings.put(DurableConfigurationStore.STORE_TYPE, getTestProfileMessageStoreType());
-        configurationStoreSettings.put(DurableConfigurationStore.STORE_PATH, _configStorePath);
-
-        doTest(configurationStoreSettings);
+        doTest(getTestProfileVirtualHostNodeType(), _configStorePath);
     }
 
-    private void configureAndStartBroker(Map<String, Object> configurationStoreSettings) throws Exception
+    private void configureAndStartBroker(String nodeType, String storePath) throws Exception
     {
+        TestBrokerConfiguration config = getBrokerConfiguration();
+        config.setObjectAttribute(VirtualHostNode.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHostNode.TYPE, nodeType);
+        config.setObjectAttribute(VirtualHostNode.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, DurableConfigurationStore.STORE_PATH, storePath);
+        config.setObjectAttribute(VirtualHostNode.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHostNode.IS_MESSAGE_STORE_PROVIDER, false);
+
         Map<String, Object> messageStoreSettings = new HashMap<String, Object>();
         messageStoreSettings.put(MessageStore.STORE_TYPE, getTestProfileMessageStoreType());
         messageStoreSettings.put(MessageStore.STORE_PATH, _messageStorePath);
-
-        TestBrokerConfiguration config = getBrokerConfiguration();
-        config.setObjectAttribute(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings);
-        config.setObjectAttribute(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.CONFIGURATION_STORE_SETTINGS, configurationStoreSettings);
-
+        TestUtils.createStoreWithVirtualHostEntry(messageStoreSettings, config, nodeType);
         super.startBroker();
     }
 
-    private void doTest(Map<String, Object> configurationStoreSettings) throws Exception
+    private void doTest(String nodeType, String path) throws Exception
     {
-        configureAndStartBroker(configurationStoreSettings);
+        configureAndStartBroker(nodeType, path);
 
         Connection connection = getConnection();
         Session session = connection.createSession(true, Session.SESSION_TRANSACTED);

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/StoreOverfullTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/StoreOverfullTest.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/StoreOverfullTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/StoreOverfullTest.java Mon Apr 21 14:28:29 2014
@@ -20,6 +20,7 @@
  */
 package org.apache.qpid.server.store;
 
+import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
@@ -39,9 +40,9 @@ import org.apache.qpid.client.AMQDestina
 import org.apache.qpid.client.AMQQueue;
 import org.apache.qpid.client.AMQSession;
 import org.apache.qpid.exchange.ExchangeDefaults;
-import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.test.utils.QpidBrokerTestCase;
-import org.apache.qpid.test.utils.TestBrokerConfiguration;
+import org.apache.qpid.test.utils.TestUtils;
+import org.apache.qpid.util.FileUtils;
 
 public class StoreOverfullTest extends QpidBrokerTestCase
 {
@@ -59,9 +60,12 @@ public class StoreOverfullTest extends Q
     private MessageConsumer _consumer;
     private Queue _queue;
 
+    private String _storePath;
+
     private static final int OVERFULL_SIZE = 400000;
     private static final int UNDERFULL_SIZE = 350000;
 
+    @Override
     public void setUp() throws Exception
     {
         Map<String, Object> messageStoreSettings = new HashMap<String, Object>();
@@ -69,8 +73,7 @@ public class StoreOverfullTest extends Q
         messageStoreSettings.put(MessageStore.OVERFULL_SIZE, OVERFULL_SIZE);
         messageStoreSettings.put(MessageStore.UNDERFULL_SIZE, UNDERFULL_SIZE);
 
-        TestBrokerConfiguration config = getBrokerConfiguration();
-        config.setObjectAttribute(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings);
+        _storePath = TestUtils.createStoreWithVirtualHostEntry(messageStoreSettings, getBrokerConfiguration(), getTestProfileVirtualHostNodeType());
 
         super.setUp();
 
@@ -93,7 +96,17 @@ public class StoreOverfullTest extends Q
         }
         finally
         {
-            super.tearDown();
+            try
+            {
+                super.tearDown();
+            }
+            finally
+            {
+                if (_storePath != null)
+                {
+                    FileUtils.delete(new File(_storePath), true);
+                }
+            }
         }
     }
 

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/VirtualHostMessageStoreTest.java Mon Apr 21 14:28:29 2014
@@ -20,13 +20,15 @@
  */
 package org.apache.qpid.server.store;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
-
-import org.apache.log4j.Logger;
+import java.util.UUID;
 
 import org.apache.qpid.common.AMQPFilterTypes;
 import org.apache.qpid.framing.AMQShortString;
@@ -35,16 +37,22 @@ import org.apache.qpid.framing.ContentHe
 import org.apache.qpid.framing.FieldTable;
 import org.apache.qpid.framing.abstraction.MessagePublishInfo;
 import org.apache.qpid.framing.amqp_8_0.BasicConsumeBodyImpl;
+import org.apache.qpid.server.configuration.updater.TaskExecutor;
 import org.apache.qpid.server.exchange.DirectExchange;
 import org.apache.qpid.server.exchange.ExchangeImpl;
 import org.apache.qpid.server.exchange.TopicExchange;
 import org.apache.qpid.server.message.InstanceProperties;
 import org.apache.qpid.server.message.MessageSource;
 import org.apache.qpid.server.model.Binding;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.ExclusivityPolicy;
 import org.apache.qpid.server.model.LifetimePolicy;
 import org.apache.qpid.server.model.Queue;
+import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.UUIDGenerator;
+import org.apache.qpid.server.model.VirtualHostNode;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.protocol.v0_8.AMQMessage;
 import org.apache.qpid.server.protocol.v0_8.MessageMetaData;
@@ -57,9 +65,8 @@ import org.apache.qpid.server.queue.Stan
 import org.apache.qpid.server.txn.AutoCommitTransaction;
 import org.apache.qpid.server.txn.ServerTransaction;
 import org.apache.qpid.server.util.BrokerTestHelper;
-import org.apache.qpid.server.virtualhost.AbstractVirtualHost;
-import org.apache.qpid.server.virtualhost.StandardVirtualHost;
 import org.apache.qpid.server.virtualhost.VirtualHostImpl;
+import org.apache.qpid.server.virtualhostnode.FileBasedVirtualHostNode;
 import org.apache.qpid.test.utils.QpidTestCase;
 import org.apache.qpid.util.FileUtils;
 
@@ -73,7 +80,6 @@ import org.apache.qpid.util.FileUtils;
  */
 public class VirtualHostMessageStoreTest extends QpidTestCase
 {
-    private static final Logger _logger = Logger.getLogger(VirtualHostMessageStoreTest.class);
 
     public static final int DEFAULT_PRIORTY_LEVEL = 5;
     public static final String SELECTOR_VALUE = "Test = 'MST'";
@@ -100,41 +106,36 @@ public class VirtualHostMessageStoreTest
 
     private String queueOwner = "MST";
 
-    private AbstractVirtualHost<?> _virtualHost;
+    private VirtualHostImpl<?,?,?> _virtualHost;
     private String _storePath;
-    private Map<String, Object> _attributes;
+    private VirtualHostNode<?> _node;
+    private TaskExecutor _taskExecutor;
 
     public void setUp() throws Exception
     {
         super.setUp();
-        BrokerTestHelper.setUp();
 
         String hostName = getName();
         _storePath = System.getProperty("QPID_WORK", TMP_FOLDER + File.separator + getTestName()) + File.separator + hostName;
-
-        Map<String, Object> messageStoreSettings = new HashMap<String, Object>();
-        messageStoreSettings.put(MessageStore.STORE_PATH, _storePath);
-        messageStoreSettings.put(MessageStore.STORE_TYPE, getTestProfileMessageStoreType());
-
-        _attributes = new HashMap<String, Object>();
-        _attributes.put(org.apache.qpid.server.model.VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings);
-        _attributes.put(org.apache.qpid.server.model.VirtualHost.TYPE, StandardVirtualHost.TYPE);
-        _attributes.put(org.apache.qpid.server.model.VirtualHost.NAME, hostName);
-
-
         cleanup(new File(_storePath));
 
-        reloadVirtualHost();
-    }
+        Broker<?> broker = BrokerTestHelper.createBrokerMock();
+        _taskExecutor = new TaskExecutor();
+        _taskExecutor.start();
+        when(broker.getTaskExecutor()).thenReturn(_taskExecutor);
+
+        ConfiguredObjectFactory factory = broker.getObjectFactory();
+        Map<String, Object> nodeAttributes = new HashMap<String, Object>();
+        nodeAttributes.put(ConfiguredObject.TYPE, getTestProfileVirtualHostNodeType());
+        nodeAttributes.put(FileBasedVirtualHostNode.STORE_PATH, _storePath);
+        nodeAttributes.put(VirtualHostNode.IS_MESSAGE_STORE_PROVIDER, true);
+        nodeAttributes.put(VirtualHostNode.NAME, hostName);
+        nodeAttributes.put(VirtualHostNode.ID, UUID.randomUUID());
+        _node = factory.create(VirtualHostNode.class, nodeAttributes, broker);
+        _node.setDesiredState(_node.getState(), State.ACTIVE);
 
-    protected String getStorePath()
-    {
-        return _storePath;
-    }
+        _virtualHost = (VirtualHostImpl<?,?,?>)_node.getVirtualHost();
 
-    protected org.apache.qpid.server.model.VirtualHost<?,?,?> getVirtualHostModel()
-    {
-        return _virtualHost;
     }
 
     @Override
@@ -144,54 +145,31 @@ public class VirtualHostMessageStoreTest
         {
             if (_virtualHost != null)
             {
-                _virtualHost.close();
+                VirtualHostNode<?> node = _virtualHost.getParent(VirtualHostNode.class);
+                node.setDesiredState(node.getState(), State.STOPPED);
             }
         }
         finally
         {
-            BrokerTestHelper.tearDown();
+            _taskExecutor.stopImmediately();
             super.tearDown();
         }
     }
 
-    public VirtualHostImpl getVirtualHost()
-    {
-        return _virtualHost;
-    }
-
     protected void reloadVirtualHost()
     {
-        VirtualHostImpl original = getVirtualHost();
-
-        if (getVirtualHost() != null)
-        {
-            try
-            {
-                getVirtualHost().close();
-            }
-            catch (Exception e)
-            {
-                _logger.error("Error closing virtual host", e);
-                fail(e.getMessage());
-            }
-        }
-
-        try
-        {
-            _virtualHost = (AbstractVirtualHost<?>) BrokerTestHelper.createVirtualHost(_attributes);
-        }
-        catch (Exception e)
-        {
-            _logger.error("Error creating virtual host", e);
-            fail(e.getMessage());
-        }
-
-        assertTrue("Virtualhost has not changed, reload was not successful", original != getVirtualHost());
+        assertEquals("Virtual host node is not active", State.ACTIVE, _virtualHost.getState());
+        State currentState = _node.setDesiredState(State.ACTIVE, State.STOPPED);
+        assertEquals("Virtual host node is not stopped", State.STOPPED, currentState);
+
+        currentState = _node.setDesiredState(State.STOPPED, State.ACTIVE);
+        assertEquals("Virtual host node is not active", State.ACTIVE, currentState);
+        _virtualHost = (VirtualHostImpl<?, ?, ?>) _node.getVirtualHost();
     }
 
     public void testQueueExchangeAndBindingCreation() throws Exception
     {
-        assertEquals("Should not be any existing queues", 0,  getVirtualHost().getQueues().size());
+        assertEquals("Should not be any existing queues", 0,  _virtualHost.getQueues().size());
 
         createAllQueues();
         createAllTopicQueues();
@@ -229,7 +207,7 @@ public class VirtualHostMessageStoreTest
         validateMessageOnTopics(2, true);
 
         assertEquals("Not all queues correctly registered",
-                10, getVirtualHost().getQueues().size());
+                10, _virtualHost.getQueues().size());
     }
 
     public void testMessagePersistence() throws Exception
@@ -253,7 +231,7 @@ public class VirtualHostMessageStoreTest
         testMessagePersistence();
 
         assertEquals("Incorrect number of queues registered after recovery",
-                6,  getVirtualHost().getQueues().size());
+                6,  _virtualHost.getQueues().size());
 
         //clear the queue
         _virtualHost.getQueue(durableQueueName).clearQueue();
@@ -275,7 +253,7 @@ public class VirtualHostMessageStoreTest
     public void testQueuePersistence() throws Exception
     {
         assertEquals("Should not be any existing queues",
-                0, getVirtualHost().getQueues().size());
+                0, _virtualHost.getQueues().size());
 
         //create durable and non durable queues/topics
         createAllQueues();
@@ -285,17 +263,17 @@ public class VirtualHostMessageStoreTest
         reloadVirtualHost();
 
         assertEquals("Incorrect number of queues registered after recovery",
-                6,  getVirtualHost().getQueues().size());
+                6,  _virtualHost.getQueues().size());
 
         //Validate the non-Durable Queues were not recovered.
         assertNull("Non-Durable queue still registered:" + priorityQueueName,
-                getVirtualHost().getQueue(priorityQueueName));
+                _virtualHost.getQueue(priorityQueueName));
         assertNull("Non-Durable queue still registered:" + queueName,
-                getVirtualHost().getQueue(queueName));
+                _virtualHost.getQueue(queueName));
         assertNull("Non-Durable queue still registered:" + priorityTopicQueueName,
-                getVirtualHost().getQueue(priorityTopicQueueName));
+                _virtualHost.getQueue(priorityTopicQueueName));
         assertNull("Non-Durable queue still registered:" + topicQueueName,
-                getVirtualHost().getQueue(topicQueueName));
+                _virtualHost.getQueue(topicQueueName));
 
         //Validate normally expected properties of Queues/Topics
         validateDurableQueueProperties();
@@ -316,23 +294,24 @@ public class VirtualHostMessageStoreTest
         createQueue(durableQueueName, false, true, false, false);
 
         assertEquals("Incorrect number of queues registered before recovery",
-                1,  getVirtualHost().getQueues().size());
+                1,  _virtualHost.getQueues().size());
 
         reloadVirtualHost();
 
         assertEquals("Incorrect number of queues registered after first recovery",
-                1,  getVirtualHost().getQueues().size());
+                1,  _virtualHost.getQueues().size());
 
         //test that removing the queue means it is not recovered next time
-        final AMQQueue<?> queue = getVirtualHost().getQueue(durableQueueName);
-        getVirtualHost().getDurableConfigurationStore().remove(queue.asObjectRecord());
+
+        final AMQQueue<?> queue = _virtualHost.getQueue(durableQueueName);
+        _virtualHost.getDurableConfigurationStore().remove(queue.asObjectRecord());
 
         reloadVirtualHost();
 
         assertEquals("Incorrect number of queues registered after second recovery",
-                0,  getVirtualHost().getQueues().size());
+                0,  _virtualHost.getQueues().size());
         assertNull("Durable queue was not removed:" + durableQueueName,
-                getVirtualHost().getQueue(durableQueueName));
+                _virtualHost.getQueue(durableQueueName));
     }
 
     /**
@@ -342,12 +321,12 @@ public class VirtualHostMessageStoreTest
      */
     public void testExchangePersistence() throws Exception
     {
-        int origExchangeCount = getVirtualHost().getExchanges().size();
+        int origExchangeCount = _virtualHost.getExchanges().size();
 
         Map<String, ExchangeImpl<?>> oldExchanges = createExchanges();
 
         assertEquals("Incorrect number of exchanges registered before recovery",
-                origExchangeCount + 3, getVirtualHost().getExchanges().size());
+                origExchangeCount + 3, _virtualHost.getExchanges().size());
 
         reloadVirtualHost();
 
@@ -362,28 +341,29 @@ public class VirtualHostMessageStoreTest
      */
     public void testDurableExchangeRemoval() throws Exception
     {
-        int origExchangeCount = getVirtualHost().getExchanges().size();
+        int origExchangeCount = _virtualHost.getExchanges().size();
 
         createExchange(DirectExchange.TYPE, directExchangeName, true);
 
         assertEquals("Incorrect number of exchanges registered before recovery",
-                origExchangeCount + 1,  getVirtualHost().getExchanges().size());
+                origExchangeCount + 1,  _virtualHost.getExchanges().size());
 
         reloadVirtualHost();
 
         assertEquals("Incorrect number of exchanges registered after first recovery",
-                origExchangeCount + 1,  getVirtualHost().getExchanges().size());
+                origExchangeCount + 1,  _virtualHost.getExchanges().size());
 
         //test that removing the exchange means it is not recovered next time
-        final ExchangeImpl<?> exchange = getVirtualHost().getExchange(directExchangeName);
-        getVirtualHost().getDurableConfigurationStore().remove(exchange.asObjectRecord());
+
+        final ExchangeImpl<?> exchange = _virtualHost.getExchange(directExchangeName);
+        _virtualHost.getDurableConfigurationStore().remove(exchange.asObjectRecord());
 
         reloadVirtualHost();
 
         assertEquals("Incorrect number of exchanges registered after second recovery",
-                origExchangeCount,  getVirtualHost().getExchanges().size());
+                origExchangeCount,  _virtualHost.getExchanges().size());
         assertNull("Durable exchange was not removed:" + directExchangeName,
-                getVirtualHost().getExchange(directExchangeName));
+                _virtualHost.getExchange(directExchangeName));
     }
 
     /**
@@ -394,7 +374,7 @@ public class VirtualHostMessageStoreTest
      */
     public void testBindingPersistence() throws Exception
     {
-        int origExchangeCount = getVirtualHost().getExchanges().size();
+        int origExchangeCount = _virtualHost.getExchanges().size();
 
         createAllQueues();
         createAllTopicQueues();
@@ -410,7 +390,7 @@ public class VirtualHostMessageStoreTest
         bindAllTopicQueuesToExchange(topicExchange, topicRouting);
 
         assertEquals("Incorrect number of exchanges registered before recovery",
-                origExchangeCount + 3, getVirtualHost().getExchanges().size());
+                origExchangeCount + 3, _virtualHost.getExchanges().size());
 
         reloadVirtualHost();
 
@@ -429,27 +409,27 @@ public class VirtualHostMessageStoreTest
         //create durable queue and exchange, bind them
         ExchangeImpl<?> exch = createExchange(DirectExchange.TYPE, directExchangeName, true);
         createQueue(durableQueueName, false, true, false, false);
-        bindQueueToExchange(exch, directRouting, getVirtualHost().getQueue(durableQueueName), false);
+        bindQueueToExchange(exch, directRouting, _virtualHost.getQueue(durableQueueName), false);
 
         assertEquals("Incorrect number of bindings registered before recovery",
-                1, getVirtualHost().getQueue(durableQueueName).getBindings().size());
+                1, _virtualHost.getQueue(durableQueueName).getBindings().size());
 
         //verify binding is actually normally recovered
         reloadVirtualHost();
 
         assertEquals("Incorrect number of bindings registered after first recovery",
-                1, getVirtualHost().getQueue(durableQueueName).getBindings().size());
+                1, _virtualHost.getQueue(durableQueueName).getBindings().size());
 
-        exch = getVirtualHost().getExchange(directExchangeName);
+        exch = _virtualHost.getExchange(directExchangeName);
         assertNotNull("Exchange was not recovered", exch);
 
         //remove the binding and verify result after recovery
-        unbindQueueFromExchange(exch, directRouting, getVirtualHost().getQueue(durableQueueName), false);
+        unbindQueueFromExchange(exch, directRouting, _virtualHost.getQueue(durableQueueName), false);
 
         reloadVirtualHost();
 
         assertEquals("Incorrect number of bindings registered after second recovery",
-                0, getVirtualHost().getQueue(durableQueueName).getBindings().size());
+                0, _virtualHost.getQueue(durableQueueName).getBindings().size());
     }
 
     /**
@@ -459,7 +439,7 @@ public class VirtualHostMessageStoreTest
      */
     private void validateExchanges(int originalNumExchanges, Map<String, ExchangeImpl<?>> oldExchanges)
     {
-        Collection<ExchangeImpl<?>> exchanges = getVirtualHost().getExchanges();
+        Collection<ExchangeImpl<?>> exchanges = (Collection<ExchangeImpl<?>>) _virtualHost.getExchanges();
         Collection<String> exchangeNames = new ArrayList<String>(exchanges.size());
         for(ExchangeImpl<?> exchange : exchanges)
         {
@@ -474,27 +454,26 @@ public class VirtualHostMessageStoreTest
 
         //check the old exchange objects are not the same as the new exchanges
         assertTrue(directExchangeName + " exchange NOT reloaded",
-                getVirtualHost().getExchange(directExchangeName) != oldExchanges.get(directExchangeName));
+                _virtualHost.getExchange(directExchangeName) != oldExchanges.get(directExchangeName));
         assertTrue(topicExchangeName + " exchange NOT reloaded",
-                getVirtualHost().getExchange(topicExchangeName) != oldExchanges.get(topicExchangeName));
+                _virtualHost.getExchange(topicExchangeName) != oldExchanges.get(topicExchangeName));
 
         // There should only be the original exchanges + our 2 recovered durable exchanges
         assertEquals("Incorrect number of exchanges available",
-                originalNumExchanges + 2, getVirtualHost().getExchanges().size());
+                originalNumExchanges + 2, _virtualHost.getExchanges().size());
     }
 
     /** Validates the Durable queues and their properties are as expected following recovery */
-    @SuppressWarnings("unchecked")
     private void validateBindingProperties()
     {
 
-        assertEquals("Incorrect number of (durable) queues following recovery", 6, getVirtualHost().getQueues().size());
+        assertEquals("Incorrect number of (durable) queues following recovery", 6, _virtualHost.getQueues().size());
 
-        validateBindingProperties(getVirtualHost().getQueue(durablePriorityQueueName).getBindings(), false);
-        validateBindingProperties(getVirtualHost().getQueue(durablePriorityTopicQueueName).getBindings(), true);
-        validateBindingProperties(getVirtualHost().getQueue(durableQueueName).getBindings(), false);
-        validateBindingProperties(getVirtualHost().getQueue(durableTopicQueueName).getBindings(), true);
-        validateBindingProperties(getVirtualHost().getQueue(durableExclusiveQueueName).getBindings(), false);
+        validateBindingProperties(_virtualHost.getQueue(durablePriorityQueueName).getBindings(), false);
+        validateBindingProperties(_virtualHost.getQueue(durablePriorityTopicQueueName).getBindings(), true);
+        validateBindingProperties(_virtualHost.getQueue(durableQueueName).getBindings(), false);
+        validateBindingProperties(_virtualHost.getQueue(durableTopicQueueName).getBindings(), true);
+        validateBindingProperties(_virtualHost.getQueue(durableExclusiveQueueName).getBindings(), false);
     }
 
     /**
@@ -522,13 +501,13 @@ public class VirtualHostMessageStoreTest
 
     private void setQueueExclusivity(boolean exclusive) throws MessageSource.ExistingConsumerPreventsExclusive
     {
-        AMQQueue<?> queue = getVirtualHost().getQueue(durableExclusiveQueueName);
+        AMQQueue<?> queue = _virtualHost.getQueue(durableExclusiveQueueName);
         queue.setAttribute(Queue.EXCLUSIVE, queue.getExclusive(), exclusive ? ExclusivityPolicy.CONTAINER : ExclusivityPolicy.NONE);
     }
 
     private void validateQueueExclusivityProperty(boolean expected)
     {
-        AMQQueue<?> queue = getVirtualHost().getQueue(durableExclusiveQueueName);
+        AMQQueue<?> queue = _virtualHost.getQueue(durableExclusiveQueueName);
 
         assertEquals("Queue exclusivity was incorrect", queue.isExclusive(), expected);
     }
@@ -536,12 +515,12 @@ public class VirtualHostMessageStoreTest
 
     private void validateDurableQueueProperties()
     {
-        validateQueueProperties(getVirtualHost().getQueue(durablePriorityQueueName), true, true, false, false);
-        validateQueueProperties(getVirtualHost().getQueue(durablePriorityTopicQueueName), true, true, false, false);
-        validateQueueProperties(getVirtualHost().getQueue(durableQueueName), false, true, false, false);
-        validateQueueProperties(getVirtualHost().getQueue(durableTopicQueueName), false, true, false, false);
-        validateQueueProperties(getVirtualHost().getQueue(durableExclusiveQueueName), false, true, true, false);
-        validateQueueProperties(getVirtualHost().getQueue(durableLastValueQueueName), false, true, true, true);
+        validateQueueProperties(_virtualHost.getQueue(durablePriorityQueueName), true, true, false, false);
+        validateQueueProperties(_virtualHost.getQueue(durablePriorityTopicQueueName), true, true, false, false);
+        validateQueueProperties(_virtualHost.getQueue(durableQueueName), false, true, false, false);
+        validateQueueProperties(_virtualHost.getQueue(durableTopicQueueName), false, true, false, false);
+        validateQueueProperties(_virtualHost.getQueue(durableExclusiveQueueName), false, true, true, false);
+        validateQueueProperties(_virtualHost.getQueue(durableLastValueQueueName), false, true, true, true);
     }
 
     private void validateQueueProperties(AMQQueue<?> queue, boolean usePriority, boolean durable, boolean exclusive, boolean lastValueQueue)
@@ -600,13 +579,13 @@ public class VirtualHostMessageStoreTest
 
         MessageMetaData mmd = new MessageMetaData(messageInfo, headerBody, System.currentTimeMillis());
 
-        final StoredMessage<MessageMetaData> storedMessage = getVirtualHost().getMessageStore().addMessage(mmd);
+        final StoredMessage<MessageMetaData> storedMessage = _virtualHost.getMessageStore().addMessage(mmd);
         storedMessage.flushToStore();
         final AMQMessage currentMessage = new AMQMessage(storedMessage);
 
 
 
-        ServerTransaction trans = new AutoCommitTransaction(getVirtualHost().getMessageStore());
+        ServerTransaction trans = new AutoCommitTransaction(_virtualHost.getMessageStore());
         exchange.send(currentMessage, routingKey, InstanceProperties.EMPTY, trans, null);
 
     }
@@ -680,7 +659,7 @@ public class VirtualHostMessageStoreTest
         AMQQueue<?> queue = null;
 
         //Ideally we would be able to use the QueueDeclareHandler here.
-        queue = getVirtualHost().createQueue(queueArguments);
+        queue = _virtualHost.createQueue(queueArguments);
 
         validateQueueProperties(queue, usePriority, durable, exclusive, lastValueQueue);
     }
@@ -711,27 +690,27 @@ public class VirtualHostMessageStoreTest
         attributes.put(org.apache.qpid.server.model.Exchange.LIFETIME_POLICY,
                 durable ? LifetimePolicy.DELETE_ON_NO_LINKS : LifetimePolicy.PERMANENT);
         attributes.put(org.apache.qpid.server.model.Exchange.ALTERNATE_EXCHANGE, null);
-        exchange = getVirtualHost().createExchange(attributes);
+        exchange = _virtualHost.createExchange(attributes);
 
         return exchange;
     }
 
     private void bindAllQueuesToExchange(ExchangeImpl<?> exchange, String routingKey)
     {
-        bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durablePriorityQueueName), false);
-        bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durableQueueName), false);
-        bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(priorityQueueName), false);
-        bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(queueName), false);
-        bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durableExclusiveQueueName), false);
+        bindQueueToExchange(exchange, routingKey, _virtualHost.getQueue(durablePriorityQueueName), false);
+        bindQueueToExchange(exchange, routingKey, _virtualHost.getQueue(durableQueueName), false);
+        bindQueueToExchange(exchange, routingKey, _virtualHost.getQueue(priorityQueueName), false);
+        bindQueueToExchange(exchange, routingKey, _virtualHost.getQueue(queueName), false);
+        bindQueueToExchange(exchange, routingKey, _virtualHost.getQueue(durableExclusiveQueueName), false);
     }
 
     private void bindAllTopicQueuesToExchange(ExchangeImpl<?> exchange, String routingKey)
     {
 
-        bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durablePriorityTopicQueueName), true);
-        bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durableTopicQueueName), true);
-        bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(priorityTopicQueueName), true);
-        bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(topicQueueName), true);
+        bindQueueToExchange(exchange, routingKey, _virtualHost.getQueue(durablePriorityTopicQueueName), true);
+        bindQueueToExchange(exchange, routingKey, _virtualHost.getQueue(durableTopicQueueName), true);
+        bindQueueToExchange(exchange, routingKey, _virtualHost.getQueue(priorityTopicQueueName), true);
+        bindQueueToExchange(exchange, routingKey, _virtualHost.getQueue(topicQueueName), true);
     }
 
 
@@ -805,7 +784,7 @@ public class VirtualHostMessageStoreTest
 
     private void validateMessageOnQueue(String queueName, long messageCount)
     {
-        AMQQueue<?> queue = getVirtualHost().getQueue(queueName);
+        AMQQueue<?> queue = _virtualHost.getQueue(queueName);
 
         assertNotNull("Queue(" + queueName + ") not correctly registered:", queue);
 

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/StatisticsTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/StatisticsTest.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/StatisticsTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/StatisticsTest.java Mon Apr 21 14:28:29 2014
@@ -53,8 +53,8 @@ public class StatisticsTest extends Qpid
     @Override
     public void setUp() throws Exception
     {
-        createTestVirtualHost(0, TEST_VIRTUALHOST1);
-        createTestVirtualHost(0, TEST_VIRTUALHOST2);
+        createTestVirtualHostNode(0, TEST_VIRTUALHOST1);
+        createTestVirtualHostNode(0, TEST_VIRTUALHOST2);
 
         getBrokerConfiguration().addJmxManagementConfiguration();
 

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java?rev=1588886&r1=1588885&r2=1588886&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java Mon Apr 21 14:28:29 2014
@@ -65,7 +65,7 @@ public class Asserts
                                 ConfiguredObject.CONTEXT,
                                 VirtualHost.SUPPORTED_QUEUE_TYPES,
                                 VirtualHost.TYPE,
-                                VirtualHost.CONFIGURATION_STORE_SETTINGS,
+                                VirtualHost.MESSAGE_STORE_SETTINGS,
                                 VirtualHost.SECURITY_ACL);
 
         assertEquals("Unexpected value of attribute " + VirtualHost.NAME,



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