You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2013/02/19 10:35:33 UTC

svn commit: r1447646 [10/16] - in /qpid/trunk/qpid/java: ./ bdbstore/ bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/ bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/ bdbstore/src/main/java/org/apache/qpid/ser...

Added: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/util/MapValueConverter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/util/MapValueConverter.java?rev=1447646&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/util/MapValueConverter.java (added)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/util/MapValueConverter.java Tue Feb 19 09:35:28 2013
@@ -0,0 +1,335 @@
+/*
+ *
+ * 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.util;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+public class MapValueConverter
+{
+
+    public static String getStringAttribute(String name, Map<String,Object> attributes, String defaultVal)
+    {
+        final Object value = attributes.get(name);
+        return toString(value, defaultVal);
+    }
+
+    public static String toString(final Object value)
+    {
+        return toString(value, null);
+    }
+
+    public static String toString(final Object value, String defaultVal)
+    {
+        if (value == null)
+        {
+            return defaultVal;
+        }
+        else if (value instanceof String)
+        {
+            return (String)value;
+        }
+        return String.valueOf(value);
+    }
+
+    public static String getStringAttribute(String name, Map<String, Object> attributes)
+    {
+        assertMandatoryAttribute(name, attributes);
+        return getStringAttribute(name, attributes, null);
+    }
+
+    private static void assertMandatoryAttribute(String name, Map<String, Object> attributes)
+    {
+        if (!attributes.containsKey(name))
+        {
+            throw new IllegalArgumentException("Value for attribute " + name + " is not found");
+        }
+    }
+
+    public static Map<String,Object> getMapAttribute(String name, Map<String,Object> attributes, Map<String,Object> defaultVal)
+    {
+        final Object value = attributes.get(name);
+        if(value == null)
+        {
+            return defaultVal;
+        }
+        else if(value instanceof Map)
+        {
+            @SuppressWarnings("unchecked")
+            Map<String,Object> retVal = (Map<String,Object>) value;
+            return retVal;
+        }
+        else
+        {
+            throw new IllegalArgumentException("Value for attribute " + name + " is not of required type Map");
+        }
+    }
+
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    public static <E extends Enum> E getEnumAttribute(Class<E> clazz, String name, Map<String,Object> attributes, E defaultVal)
+    {
+        Object obj = attributes.get(name);
+        if(obj == null)
+        {
+            return defaultVal;
+        }
+        else if(clazz.isInstance(obj))
+        {
+            return (E) obj;
+        }
+        else if(obj instanceof String)
+        {
+            return (E) Enum.valueOf(clazz, (String)obj);
+        }
+        else
+        {
+            throw new IllegalArgumentException("Value for attribute " + name + " is not of required type " + clazz.getSimpleName());
+        }
+    }
+
+    public static <E extends Enum<?>> E getEnumAttribute(Class<E> clazz, String name, Map<String,Object> attributes)
+    {
+        assertMandatoryAttribute(name, attributes);
+        return getEnumAttribute(clazz, name, attributes, null);
+    }
+
+    public static Boolean getBooleanAttribute(String name, Map<String,Object> attributes, Boolean defaultValue)
+    {
+        Object obj = attributes.get(name);
+        return toBoolean(name, obj, defaultValue);
+    }
+
+    public static Boolean toBoolean(String name, Object obj)
+    {
+        return toBoolean(name, obj, null);
+    }
+
+    public static Boolean toBoolean(String name, Object obj, Boolean defaultValue)
+    {
+        if(obj == null)
+        {
+            return defaultValue;
+        }
+        else if(obj instanceof Boolean)
+        {
+            return (Boolean) obj;
+        }
+        else if(obj instanceof String)
+        {
+            return Boolean.parseBoolean((String) obj);
+        }
+        else
+        {
+            throw new IllegalArgumentException("Value for attribute " + name + " is not of required type Boolean");
+        }
+    }
+
+
+    public static boolean getBooleanAttribute(String name, Map<String, Object> attributes)
+    {
+        assertMandatoryAttribute(name, attributes);
+        return getBooleanAttribute(name, attributes, null);
+    }
+
+    public static Integer getIntegerAttribute(String name, Map<String,Object> attributes, Integer defaultValue)
+    {
+        Object obj = attributes.get(name);
+        return toInteger(name, obj, defaultValue);
+    }
+
+    public static Integer toInteger(String name, Object obj)
+    {
+        return toInteger(name, obj, null);
+    }
+
+    public static Integer toInteger(String name, Object obj, Integer defaultValue)
+    {
+        if(obj == null)
+        {
+            return defaultValue;
+        }
+        else if(obj instanceof Number)
+        {
+            return ((Number) obj).intValue();
+        }
+        else if(obj instanceof String)
+        {
+            return Integer.valueOf((String) obj);
+        }
+        else
+        {
+            throw new IllegalArgumentException("Value for attribute " + name + " is not of required type Integer");
+        }
+    }
+
+    public static Integer getIntegerAttribute(String name, Map<String,Object> attributes)
+    {
+        assertMandatoryAttribute(name, attributes);
+        return getIntegerAttribute(name, attributes, null);
+    }
+
+    public static Long getLongAttribute(String name, Map<String,Object> attributes, Long defaultValue)
+    {
+        Object obj = attributes.get(name);
+        return toLong(name, obj, defaultValue);
+    }
+
+    public static Long toLong(String name, Object obj)
+    {
+        return toLong(name, obj, null);
+    }
+
+    public static Long toLong(String name, Object obj, Long defaultValue)
+    {
+        if(obj == null)
+        {
+            return defaultValue;
+        }
+        else if(obj instanceof Number)
+        {
+            return ((Number) obj).longValue();
+        }
+        else if(obj instanceof String)
+        {
+            return Long.valueOf((String) obj);
+        }
+        else
+        {
+            throw new IllegalArgumentException("Value for attribute " + name + " is not of required type Long");
+        }
+    }
+
+    public static <T> Set<T> getSetAttribute(String name, Map<String,Object> attributes)
+    {
+        assertMandatoryAttribute(name, attributes);
+        return getSetAttribute(name, attributes, Collections.<T>emptySet());
+    }
+
+    @SuppressWarnings("unchecked")
+    public static <T> Set<T> getSetAttribute(String name, Map<String,Object> attributes, Set<T> defaultValue)
+    {
+        Object obj = attributes.get(name);
+        if(obj == null)
+        {
+            return defaultValue;
+        }
+        else if(obj instanceof Set)
+        {
+            return (Set<T>) obj;
+        }
+        else
+        {
+            throw new IllegalArgumentException("Value for attribute " + name + " is not of required type Set");
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    public static <T extends Enum<T>> Set<T> getEnumSetAttribute(String name, Map<String, Object> attributes, Class<T> clazz)
+    {
+        Object obj = attributes.get(name);
+        Object[] items = null;
+        if (obj == null)
+        {
+            return null;
+        }
+        else if (obj instanceof Collection)
+        {
+            Collection<?> data = (Collection<?>) obj;
+            items = data.toArray(new Object[data.size()]);
+        }
+        else if (obj instanceof String[])
+        {
+            items = (String[]) obj;
+        }
+        else if (obj instanceof Object[])
+        {
+            items = (Object[]) obj;
+        }
+        else
+        {
+            throw new IllegalArgumentException("Value for attribute " + name + "[" + obj
+                    + "] cannot be converted into set of enum of " + clazz);
+        }
+        Set<T> set = new HashSet<T>();
+        for (int i = 0; i < items.length; i++)
+        {
+            T item = null;
+            Object value = items[i];
+            if (value instanceof String)
+            {
+                item = (T) Enum.valueOf(clazz, (String) value);
+            }
+            else if (clazz.isInstance(value))
+            {
+                item = (T) value;
+            }
+            else
+            {
+                throw new IllegalArgumentException("Cannot convert " + value + " from [" + obj + "] into enum of " + clazz
+                        + " for attribute " + name);
+            }
+            set.add(item);
+        }
+        return set;
+    }
+
+    public static Map<String, Object> convert(Map<String, Object> configurationAttributes, Map<String, Class<?>> attributeTypes)
+    {
+        Map<String, Object> attributes = new HashMap<String, Object>();
+        for (Map.Entry<String, Class<?>> attributeEntry : attributeTypes.entrySet())
+        {
+            String attributeName = attributeEntry.getKey();
+            if (configurationAttributes.containsKey(attributeName))
+            {
+                Class<?> classObject = attributeEntry.getValue();
+                Object rawValue = configurationAttributes.get(attributeName);
+                Object value = null;
+                if (classObject == Long.class || classObject == long.class)
+                {
+                    value = toLong(attributeName, rawValue);
+                }
+                else if (classObject == Integer.class || classObject == int.class)
+                {
+                    value = toInteger(attributeName, rawValue);
+                }
+                else if (classObject == Boolean.class || classObject == boolean.class)
+                {
+                    value = toBoolean(attributeName, rawValue);
+                }
+                else if (classObject == String.class)
+                {
+                    value = toString(rawValue);
+                }
+                else
+                {
+                    throw new IllegalArgumentException("Cannot convert '" + rawValue + "' into " + classObject);
+                }
+                attributes.put(attributeName, value);
+            }
+        }
+        return attributes;
+    }
+}

Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java?rev=1447646&r1=1447645&r2=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java Tue Feb 19 09:35:28 2013
@@ -58,8 +58,6 @@ public interface VirtualHost extends Dur
 
     void close();
 
-    UUID getBrokerId();
-
     UUID getId();
 
     void scheduleHouseKeepingTask(long period, HouseKeepingTask task);
@@ -74,7 +72,7 @@ public interface VirtualHost extends Dur
 
     int getHouseKeepingActiveCount();
 
-    IApplicationRegistry getApplicationRegistry();
+    VirtualHostRegistry getVirtualHostRegistry();
 
     BindingFactory getBindingFactory();
 

Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java?rev=1447646&r1=1447645&r2=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java Tue Feb 19 09:35:28 2013
@@ -55,13 +55,14 @@ import org.apache.qpid.server.queue.AMQQ
 import org.apache.qpid.server.queue.AMQQueueFactory;
 import org.apache.qpid.server.queue.DefaultQueueRegistry;
 import org.apache.qpid.server.queue.QueueRegistry;
-import org.apache.qpid.server.registry.IApplicationRegistry;
 import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.server.stats.StatisticsCounter;
+import org.apache.qpid.server.stats.StatisticsGatherer;
 import org.apache.qpid.server.store.Event;
 import org.apache.qpid.server.store.EventListener;
 import org.apache.qpid.server.store.HAMessageStore;
 import org.apache.qpid.server.store.MessageStore;
+import org.apache.qpid.server.store.MessageStoreCreator;
 import org.apache.qpid.server.store.OperationalLoggingListener;
 import org.apache.qpid.server.txn.DtxRegistry;
 
@@ -79,7 +80,9 @@ public class VirtualHostImpl implements 
 
     private final ScheduledThreadPoolExecutor _houseKeepingTasks;
 
-    private final IApplicationRegistry _appRegistry;
+    private final VirtualHostRegistry _virtualHostRegistry;
+
+    private final StatisticsGatherer _brokerStatisticsGatherer;
 
     private final SecurityManager _securityManager;
 
@@ -106,7 +109,7 @@ public class VirtualHostImpl implements 
     private final Map<String, LinkRegistry> _linkRegistry = new HashMap<String, LinkRegistry>();
     private boolean _blocked;
 
-    public VirtualHostImpl(IApplicationRegistry appRegistry, VirtualHostConfiguration hostConfig) throws Exception
+    public VirtualHostImpl(VirtualHostRegistry virtualHostRegistry, StatisticsGatherer brokerStatisticsGatherer, SecurityManager parentSecurityManager, VirtualHostConfiguration hostConfig) throws Exception
     {
         if (hostConfig == null)
         {
@@ -118,7 +121,8 @@ public class VirtualHostImpl implements 
             throw new IllegalArgumentException("Illegal name (" + hostConfig.getName() + ") for virtualhost.");
         }
 
-        _appRegistry = appRegistry;
+        _virtualHostRegistry = virtualHostRegistry;
+        _brokerStatisticsGatherer = brokerStatisticsGatherer;
         _vhostConfig = hostConfig;
         _name = _vhostConfig.getName();
         _dtxRegistry = new DtxRegistry();
@@ -127,7 +131,7 @@ public class VirtualHostImpl implements 
 
         CurrentActor.get().message(VirtualHostMessages.CREATED(_name));
 
-        _securityManager = new SecurityManager(_appRegistry.getSecurityManager(), _vhostConfig.getConfig());
+        _securityManager = new SecurityManager(parentSecurityManager, _vhostConfig.getConfig().getString("security.acl"));
 
         _connectionRegistry = new ConnectionRegistry();
         _connectionRegistry.addRegistryChangeListener(this);
@@ -142,7 +146,7 @@ public class VirtualHostImpl implements 
 
         _bindingFactory = new BindingFactory(this);
 
-        _messageStore = initialiseMessageStore(hostConfig.getMessageStoreClass());
+        _messageStore = initialiseMessageStore(hostConfig);
 
         configureMessageStore(hostConfig);
 
@@ -266,19 +270,34 @@ public class VirtualHostImpl implements 
 
         if (!(o instanceof MessageStore))
         {
-            throw new ClassCastException("Message store factory class must implement " + MessageStore.class +
+            throw new ClassCastException("Message store class must implement " + MessageStore.class +
                                         ". Class " + clazz + " does not.");
         }
 
         final MessageStore messageStore = (MessageStore) o;
-        final MessageStoreLogSubject storeLogSubject = new MessageStoreLogSubject(this, clazz.getSimpleName());
+        return messageStore;
+    }
+
+    private MessageStore initialiseMessageStore(VirtualHostConfiguration hostConfig) throws Exception
+    {
+        String storeType = hostConfig.getConfig().getString("store.type");
+        MessageStore  messageStore = null;
+        if (storeType == null)
+        {
+            messageStore = initialiseMessageStore(hostConfig.getMessageStoreClass());
+        }
+        else
+        {
+            messageStore = new MessageStoreCreator().createMessageStore(storeType);
+        }
+
+        final MessageStoreLogSubject storeLogSubject = new MessageStoreLogSubject(this, messageStore.getClass().getSimpleName());
         OperationalLoggingListener.listen(messageStore, storeLogSubject);
 
         messageStore.addEventListener(new BeforeActivationListener(), Event.BEFORE_ACTIVATE);
         messageStore.addEventListener(new AfterActivationListener(), Event.AFTER_ACTIVATE);
         messageStore.addEventListener(new BeforeCloseListener(), Event.BEFORE_CLOSE);
         messageStore.addEventListener(new BeforePassivationListener(), Event.BEFORE_PASSIVATE);
-
         return messageStore;
     }
 
@@ -461,14 +480,9 @@ public class VirtualHostImpl implements 
         CurrentActor.get().message(VirtualHostMessages.CLOSED());
     }
 
-    public UUID getBrokerId()
-    {
-        return _appRegistry.getBrokerId();
-    }
-
-    public IApplicationRegistry getApplicationRegistry()
+    public VirtualHostRegistry getVirtualHostRegistry()
     {
-        return _appRegistry;
+        return _virtualHostRegistry;
     }
 
     public BindingFactory getBindingFactory()
@@ -480,14 +494,14 @@ public class VirtualHostImpl implements 
     {
         _messagesDelivered.registerEvent(1L);
         _dataDelivered.registerEvent(messageSize);
-        _appRegistry.registerMessageDelivered(messageSize);
+        _brokerStatisticsGatherer.registerMessageDelivered(messageSize);
     }
 
     public void registerMessageReceived(long messageSize, long timestamp)
     {
         _messagesReceived.registerEvent(1L, timestamp);
         _dataReceived.registerEvent(messageSize, timestamp);
-        _appRegistry.registerMessageReceived(messageSize, timestamp);
+        _brokerStatisticsGatherer.registerMessageReceived(messageSize, timestamp);
     }
 
     public StatisticsCounter getMessageReceiptStatistics()

Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java?rev=1447646&r1=1447645&r2=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java Tue Feb 19 09:35:28 2013
@@ -21,12 +21,9 @@
 package org.apache.qpid.server.virtualhost;
 
 import org.apache.qpid.common.Closeable;
-import org.apache.qpid.server.exchange.ExchangeRegistry;
-import org.apache.qpid.server.registry.ApplicationRegistry;
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -34,44 +31,26 @@ import java.util.concurrent.ConcurrentHa
 public class VirtualHostRegistry implements Closeable
 {
     private final Map<String, VirtualHost> _registry = new ConcurrentHashMap<String, VirtualHost>();
-
-
     private String _defaultVirtualHostName;
-    private ApplicationRegistry _applicationRegistry;
-    private final Collection<RegistryChangeListener> _listeners =
-            Collections.synchronizedCollection(new ArrayList<RegistryChangeListener>());
 
-    public VirtualHostRegistry(ApplicationRegistry applicationRegistry)
+
+    public VirtualHostRegistry()
     {
-        _applicationRegistry = applicationRegistry;
+        super();
     }
 
-    public synchronized void registerVirtualHost(VirtualHost host) throws Exception
+    public synchronized void registerVirtualHost(VirtualHost host)
     {
         if(_registry.containsKey(host.getName()))
         {
-            throw new Exception("Virtual Host with name " + host.getName() + " already registered.");
+            throw new IllegalArgumentException("Virtual Host with name " + host.getName() + " already registered.");
         }
         _registry.put(host.getName(),host);
-        synchronized (_listeners)
-        {
-            for(RegistryChangeListener listener : _listeners)
-            {
-                listener.virtualHostRegistered(host);
-            }
-        }
     }
-    
+
     public synchronized void unregisterVirtualHost(VirtualHost host)
     {
         _registry.remove(host.getName());
-        synchronized (_listeners)
-        {
-            for(RegistryChangeListener listener : _listeners)
-            {
-                listener.virtualHostUnregistered(host);
-            }
-        }
     }
 
     public VirtualHost getVirtualHost(String name)
@@ -105,30 +84,12 @@ public class VirtualHostRegistry impleme
         return new ArrayList<VirtualHost>(_registry.values());
     }
 
-    public ApplicationRegistry getApplicationRegistry()
-    {
-        return _applicationRegistry;
-    }
-
     public void close()
     {
         for (VirtualHost virtualHost : getVirtualHosts())
         {
             virtualHost.close();
         }
-
-    }
-
-    public static interface RegistryChangeListener
-    {
-        void virtualHostRegistered(VirtualHost virtualHost);
-        void virtualHostUnregistered(VirtualHost virtualHost);
-
-    }
-
-    public void addRegistryChangeListener(RegistryChangeListener listener)
-    {
-        _listeners.add(listener);
     }
 
 }

Copied: qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.configuration.ConfigurationStoreFactory (from r1447519, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ManagementFactory)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.configuration.ConfigurationStoreFactory?p2=qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.configuration.ConfigurationStoreFactory&p1=qpid/trunk/qpid/java/broker-plugins/management-http/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ManagementFactory&r1=1447519&r2=1447646&rev=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ManagementFactory (original)
+++ qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.configuration.ConfigurationStoreFactory Tue Feb 19 09:35:28 2013
@@ -16,4 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-org.apache.qpid.server.management.plugin.HttpManagementFactory
+org.apache.qpid.server.configuration.store.factory.JsonConfigurationStoreFactory

Modified: qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.AuthenticationManagerFactory
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.AuthenticationManagerFactory?rev=1447646&r1=1447645&r2=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.AuthenticationManagerFactory (original)
+++ qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.AuthenticationManagerFactory Tue Feb 19 09:35:28 2013
@@ -17,7 +17,8 @@
 # under the License.
 #
 org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory
+org.apache.qpid.server.security.auth.manager.Base64MD5PasswordFileAuthenticationManagerFactory
 org.apache.qpid.server.security.auth.manager.ExternalAuthenticationManagerFactory
 org.apache.qpid.server.security.auth.manager.KerberosAuthenticationManagerFactory
-org.apache.qpid.server.security.auth.manager.PrincipalDatabaseAuthManagerFactory
+org.apache.qpid.server.security.auth.manager.PlainPasswordFileAuthenticationManagerFactory
 org.apache.qpid.server.security.auth.manager.SimpleLDAPAuthenticationManagerFactory

Copied: qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.store.MessageStoreFactory (from r1447519, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ManagementFactory)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.store.MessageStoreFactory?p2=qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.store.MessageStoreFactory&p1=qpid/trunk/qpid/java/broker-plugins/management-http/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ManagementFactory&r1=1447519&r2=1447646&rev=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ManagementFactory (original)
+++ qpid/trunk/qpid/java/broker/src/main/resources/META-INF/services/org.apache.qpid.server.store.MessageStoreFactory Tue Feb 19 09:35:28 2013
@@ -16,4 +16,5 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-org.apache.qpid.server.management.plugin.HttpManagementFactory
+org.apache.qpid.server.store.derby.DerbyMessageStoreFactory
+org.apache.qpid.server.store.MemoryMessageStoreFactory
\ No newline at end of file

Added: qpid/trunk/qpid/java/broker/src/main/resources/initial-store.json
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/resources/initial-store.json?rev=1447646&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/resources/initial-store.json (added)
+++ qpid/trunk/qpid/java/broker/src/main/resources/initial-store.json Tue Feb 19 09:35:28 2013
@@ -0,0 +1,58 @@
+/*
+ *
+ * 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.
+ *
+ */
+{
+  "name": "QpidBroker",
+  "defaultAuthenticationProvider" : "defaultAuthenticationProvider",
+  "defaultVirtualHost" : "default",
+  "authenticationproviders" : [ {
+    "name" : "defaultAuthenticationProvider",
+    "authenticationProviderType" : "PlainPasswordFileAuthenticationProvider",
+    "path" : "${QPID_HOME}/etc/passwd"
+  } ],
+  "ports" : [  {
+    "name" : "5672-AMQP",
+    "port" : 5672
+  }, {
+    "name" : "8080-HTTP",
+    "port" : 8080,
+    "protocols" : [ "HTTP" ]
+  }, {
+    "name" : "8999-RMI",
+    "port" : 8999,
+    "protocols" : [ "RMI" ]
+  }, {
+    "name" : "9099-JMX_RMI",
+    "port" : 9099,
+    "protocols" : [ "JMX_RMI" ]
+  }],
+  "virtualhosts" : [ {
+    "name" : "default",
+    "storeType" : "DERBY",
+    "storePath" : "${QPID_WORK}/store"
+  } ],
+  "plugins" : [ {
+    "pluginType" : "MANAGEMENT-HTTP",
+    "name" : "httpManagement"
+  }, {
+    "pluginType" : "MANAGEMENT-JMX",
+    "name" : "jmxManagement"
+  } ]
+}
\ No newline at end of file

Modified: qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQChannelTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQChannelTest.java?rev=1447646&r1=1447645&r2=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQChannelTest.java (original)
+++ qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQChannelTest.java Tue Feb 19 09:35:28 2013
@@ -20,23 +20,69 @@
  */
 package org.apache.qpid.server;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.qpid.AMQException;
+import org.apache.qpid.framing.AMQShortString;
+import org.apache.qpid.framing.BasicContentHeaderProperties;
+import org.apache.qpid.framing.ContentHeaderBody;
+import org.apache.qpid.framing.abstraction.MessagePublishInfo;
+import org.apache.qpid.server.configuration.BrokerProperties;
+import org.apache.qpid.server.exchange.Exchange;
+import org.apache.qpid.server.message.MessageContentSource;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.protocol.AMQProtocolSession;
 import org.apache.qpid.server.protocol.InternalTestProtocolSession;
-import org.apache.qpid.server.registry.ApplicationRegistry;
-import org.apache.qpid.server.util.InternalBrokerBaseCase;
+import org.apache.qpid.server.util.BrokerTestHelper;
 import org.apache.qpid.server.virtualhost.VirtualHost;
+import org.apache.qpid.test.utils.QpidTestCase;
 
-public class AMQChannelTest extends InternalBrokerBaseCase
+public class AMQChannelTest extends QpidTestCase
 {
     private VirtualHost _virtualHost;
     private AMQProtocolSession _protocolSession;
+    private Map<Integer,String> _replies;
+    private Broker _broker;
 
     @Override
     public void setUp() throws Exception
     {
         super.setUp();
-        _virtualHost = ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHosts().iterator().next();
-        _protocolSession = new InternalTestProtocolSession(_virtualHost);
+        BrokerTestHelper.setUp();
+        _virtualHost = BrokerTestHelper.createVirtualHost(getTestName());
+        _broker = BrokerTestHelper.createBrokerMock();
+        _protocolSession = new InternalTestProtocolSession(_virtualHost, _broker)
+        {
+            @Override
+            public void writeReturn(MessagePublishInfo messagePublishInfo,
+                    ContentHeaderBody header,
+                    MessageContentSource msgContent,
+                    int channelId,
+                    int replyCode,
+                    AMQShortString replyText) throws AMQException
+                    {
+                        _replies.put(replyCode, replyText.asString());
+                    }
+        };
+        _replies = new HashMap<Integer, String>();
+    }
+
+    @Override
+    public void tearDown() throws Exception
+    {
+        try
+        {
+            _virtualHost.close();
+        }
+        finally
+        {
+            BrokerTestHelper.tearDown();
+            super.tearDown();
+        }
     }
 
     public void testCompareTo() throws Exception
@@ -44,9 +90,54 @@ public class AMQChannelTest extends Inte
         AMQChannel channel1 = new AMQChannel(_protocolSession, 1, _virtualHost.getMessageStore());
 
         // create a channel with the same channelId but on a different session
-        AMQChannel channel2 = new AMQChannel(new InternalTestProtocolSession(_virtualHost), 1, _virtualHost.getMessageStore());
+        AMQChannel channel2 = new AMQChannel(new InternalTestProtocolSession(_virtualHost, _broker), 1, _virtualHost.getMessageStore());
         assertFalse("Unexpected compare result", channel1.compareTo(channel2) == 0);
         assertEquals("Unexpected compare result", 0, channel1.compareTo(channel1));
     }
 
+    public void testPublishContentHeaderWhenMessageAuthorizationFails() throws Exception
+    {
+        setTestSystemProperty(BrokerProperties.PROPERTY_MSG_AUTH, "true");
+        AMQChannel channel = new AMQChannel(_protocolSession, 1, _virtualHost.getMessageStore());
+        channel.setLocalTransactional();
+
+        MessagePublishInfo info = mock(MessagePublishInfo.class);
+        Exchange e = mock(Exchange.class);
+        ContentHeaderBody contentHeaderBody= mock(ContentHeaderBody.class);
+        BasicContentHeaderProperties properties = mock(BasicContentHeaderProperties.class);
+
+        when(contentHeaderBody.getProperties()).thenReturn(properties);
+        when(info.getExchange()).thenReturn(new AMQShortString("test"));
+        when(properties.getUserId()).thenReturn(new AMQShortString(_protocolSession.getAuthorizedPrincipal().getName() + "_incorrect"));
+
+        channel.setPublishFrame(info, e);
+        channel.publishContentHeader(contentHeaderBody);
+        channel.commit();
+
+        assertEquals("Unexpected number of replies", 1, _replies.size());
+        assertEquals("Message authorization passed", "Access Refused", _replies.get(403));
+    }
+
+    public void testPublishContentHeaderWhenMessageAuthorizationPasses() throws Exception
+    {
+        setTestSystemProperty(BrokerProperties.PROPERTY_MSG_AUTH, "true");
+        AMQChannel channel = new AMQChannel(_protocolSession, 1, _virtualHost.getMessageStore());
+        channel.setLocalTransactional();
+
+        MessagePublishInfo info = mock(MessagePublishInfo.class);
+        Exchange e = mock(Exchange.class);
+        ContentHeaderBody contentHeaderBody= mock(ContentHeaderBody.class);
+        BasicContentHeaderProperties properties = mock(BasicContentHeaderProperties.class);
+
+        when(contentHeaderBody.getProperties()).thenReturn(properties);
+        when(info.getExchange()).thenReturn(new AMQShortString("test"));
+        when(properties.getUserId()).thenReturn(new AMQShortString(_protocolSession.getAuthorizedPrincipal().getName()));
+
+        channel.setPublishFrame(info, e);
+        channel.publishContentHeader(contentHeaderBody);
+        channel.commit();
+
+        assertEquals("Unexpected number of replies", 0, _replies.size());
+    }
+
 }

Modified: qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java?rev=1447646&r1=1447645&r2=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java (original)
+++ qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java Tue Feb 19 09:35:28 2013
@@ -22,91 +22,36 @@ package org.apache.qpid.server;
 
 import org.apache.qpid.test.utils.QpidTestCase;
 
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-
 public class BrokerOptionsTest extends QpidTestCase
 {
     private BrokerOptions _options;
-    
-    private static final int TEST_PORT1 = 6789;
-    private static final int TEST_PORT2 = 6790;
-    
 
     protected void setUp()
     {
         _options = new BrokerOptions();
     }
-    
-    public void testDefaultPort()
-    {
-        assertEquals(Collections.<Integer>emptySet(), _options.getPorts());
-    }
-
-    public void testOverriddenPort()
-    {
-        _options.addPort(TEST_PORT1);
-        assertEquals(Collections.singleton(TEST_PORT1), _options.getPorts());
-    }
-
-    public void testManyOverriddenPorts()
-    {
-        _options.addPort(TEST_PORT1);
-        _options.addPort(TEST_PORT2);
-        final Set<Integer> expectedPorts = new HashSet<Integer>(Arrays.asList(new Integer[] {TEST_PORT1, TEST_PORT2}));
-        assertEquals(expectedPorts, _options.getPorts());
-    }
-
-    public void testDuplicateOverriddenPortsAreSilentlyIgnored()
-    {
-        _options.addPort(TEST_PORT1);
-        _options.addPort(TEST_PORT2);
-        _options.addPort(TEST_PORT1); // duplicate - should be silently ignored
-        final Set<Integer> expectedPorts = new HashSet<Integer>(Arrays.asList(new Integer[] {TEST_PORT1, TEST_PORT2}));
-        assertEquals(expectedPorts, _options.getPorts());
-    }
-
-    public void testDefaultSSLPort()
-    {
-        assertEquals(Collections.<Integer>emptySet(), _options.getSSLPorts());
-    }
 
-    public void testOverriddenSSLPort()
+    public void testDefaultConfigurationStoreType()
     {
-        _options.addSSLPort(TEST_PORT1);
-        assertEquals(Collections.singleton(TEST_PORT1), _options.getSSLPorts());
+        assertEquals("json", _options.getConfigurationStoreType());
     }
 
-    public void testManyOverriddenSSLPorts()
+    public void testOverriddenConfigurationStoreType()
     {
-        _options.addSSLPort(TEST_PORT1);
-        _options.addSSLPort(TEST_PORT2);
-        final Set<Integer> expectedPorts = new HashSet<Integer>(Arrays.asList(new Integer[] {TEST_PORT1, TEST_PORT2}));
-        assertEquals(expectedPorts, _options.getSSLPorts());
+        _options.setConfigurationStoreType("dby");
+        assertEquals("dby", _options.getConfigurationStoreType());
     }
 
-    public void testDuplicateOverriddenSSLPortsAreSilentlyIgnored()
+    public void testDefaultConfigurationStoreLocation()
     {
-        _options.addSSLPort(TEST_PORT1);
-        _options.addSSLPort(TEST_PORT2);
-        _options.addSSLPort(TEST_PORT1); // duplicate - should be silently ignored
-        final Set<Integer> expectedPorts = new HashSet<Integer>(Arrays.asList(new Integer[] {TEST_PORT1, TEST_PORT2}));
-        assertEquals(expectedPorts, _options.getSSLPorts());
+        assertNull(_options.getConfigurationStoreLocation());
     }
 
-    public void testDefaultConfigFile()
-    {
-        assertNull(_options.getConfigFile());
-    }
-    
-    public void testOverriddenConfigFile()
+    public void testOverriddenConfigurationStoreLocation()
     {
         final String testConfigFile = "etc/mytestconfig.xml";
-        _options.setConfigFile(testConfigFile);
-        assertEquals(testConfigFile, _options.getConfigFile());
+        _options.setConfigurationStoreLocation(testConfigFile);
+        assertEquals(testConfigFile, _options.getConfigurationStoreLocation());
     }
 
     public void testDefaultLogConfigFile()
@@ -121,72 +66,6 @@ public class BrokerOptionsTest extends Q
         assertEquals(testLogConfigFile, _options.getLogConfigFile());
     }
 
-    public void testDefaultJmxPortRegistryServer()
-    {
-        assertNull(_options.getJmxPortRegistryServer());
-    }
-
-    public void testJmxPortRegistryServer()
-    {
-        _options.setJmxPortRegistryServer(TEST_PORT1);
-        assertEquals(Integer.valueOf(TEST_PORT1), _options.getJmxPortRegistryServer());
-    }
-
-    public void testDefaultJmxPortConnectorServer()
-    {
-        assertNull(_options.getJmxPortConnectorServer());
-    }
-
-    public void testJmxPortConnectorServer()
-    {
-        _options.setJmxPortConnectorServer(TEST_PORT1);
-        assertEquals(Integer.valueOf(TEST_PORT1), _options.getJmxPortConnectorServer());
-    }
-
-    public void testQpidHomeExposesSysProperty()
-    {
-        assertEquals(System.getProperty("QPID_HOME"), _options.getQpidHome());
-    }
-    
-    public void testDefaultExcludesPortFor0_10()
-    {
-        assertEquals(Collections.EMPTY_SET, _options.getExcludedPorts(ProtocolExclusion.v0_10));
-    }
-    
-    public void testOverriddenExcludesPortFor0_10()
-    {
-        _options.addExcludedPort(ProtocolExclusion.v0_10, TEST_PORT1);
-        assertEquals(Collections.singleton(TEST_PORT1), _options.getExcludedPorts(ProtocolExclusion.v0_10));
-    }
-
-    public void testManyOverriddenExcludedPortFor0_10()
-    {
-        _options.addExcludedPort(ProtocolExclusion.v0_10, TEST_PORT1);
-        _options.addExcludedPort(ProtocolExclusion.v0_10, TEST_PORT2);
-        final Set<Integer> expectedPorts = new HashSet<Integer>(Arrays.asList(new Integer[] {TEST_PORT1, TEST_PORT2}));
-        assertEquals(expectedPorts, _options.getExcludedPorts(ProtocolExclusion.v0_10));
-    }
-
-    public void testDuplicatedOverriddenExcludedPortFor0_10AreSilentlyIgnored()
-    {
-        _options.addExcludedPort(ProtocolExclusion.v0_10, TEST_PORT1);
-        _options.addExcludedPort(ProtocolExclusion.v0_10, TEST_PORT2);
-        final Set<Integer> expectedPorts = new HashSet<Integer>(Arrays.asList(new Integer[] {TEST_PORT1, TEST_PORT2}));
-        assertEquals(expectedPorts, _options.getExcludedPorts(ProtocolExclusion.v0_10));
-    }
-    
-    public void testDefaultBind()
-    {
-        assertNull(_options.getBind());
-    }
-    
-    public void testOverriddenBind()
-    {
-        final String bind = "192.168.0.1";
-        _options.setBind(bind);
-        assertEquals(bind, _options.getBind());
-    }
-
     public void testDefaultLogWatchFrequency()
     {
         assertEquals(0L, _options.getLogWatchFrequency());
@@ -199,31 +78,4 @@ public class BrokerOptionsTest extends Q
         _options.setLogWatchFrequency(myFreq);
         assertEquals(myFreq, _options.getLogWatchFrequency());
     }
-
-    public void testDefaultIncludesPortFor0_10()
-    {
-        assertEquals(Collections.EMPTY_SET, _options.getIncludedPorts(ProtocolInclusion.v0_10));
-    }
-
-    public void testOverriddenIncludesPortFor0_10()
-    {
-        _options.addIncludedPort(ProtocolInclusion.v0_10, TEST_PORT1);
-        assertEquals(Collections.singleton(TEST_PORT1), _options.getIncludedPorts(ProtocolInclusion.v0_10));
-    }
-
-    public void testManyOverriddenIncludedPortFor0_10()
-    {
-        _options.addIncludedPort(ProtocolInclusion.v0_10, TEST_PORT1);
-        _options.addIncludedPort(ProtocolInclusion.v0_10, TEST_PORT2);
-        final Set<Integer> expectedPorts = new HashSet<Integer>(Arrays.asList(new Integer[] {TEST_PORT1, TEST_PORT2}));
-        assertEquals(expectedPorts, _options.getIncludedPorts(ProtocolInclusion.v0_10));
-    }
-
-    public void testDuplicatedOverriddenIncludedPortFor0_10AreSilentlyIgnored()
-    {
-        _options.addIncludedPort(ProtocolInclusion.v0_10, TEST_PORT1);
-        _options.addIncludedPort(ProtocolInclusion.v0_10, TEST_PORT2);
-        final Set<Integer> expectedPorts = new HashSet<Integer>(Arrays.asList(new Integer[] {TEST_PORT1, TEST_PORT2}));
-        assertEquals(expectedPorts, _options.getIncludedPorts(ProtocolInclusion.v0_10));
-    }
 }

Modified: qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java?rev=1447646&r1=1447645&r2=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java (original)
+++ qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java Tue Feb 19 09:35:28 2013
@@ -23,8 +23,6 @@ package org.apache.qpid.server;
 import org.apache.commons.cli.CommandLine;
 import org.apache.qpid.test.utils.QpidTestCase;
 
-import java.util.EnumSet;
-
 /**
  * Test to verify the command line parsing within the Main class, by
  * providing it a series of command line arguments and verifying the
@@ -36,105 +34,24 @@ public class MainTest extends QpidTestCa
     {
         BrokerOptions options = startDummyMain("");
 
-        assertTrue(options.getPorts().isEmpty());
-        assertTrue(options.getSSLPorts().isEmpty());
-        assertEquals(null, options.getJmxPortRegistryServer());
-        assertEquals(null, options.getConfigFile());
+        assertEquals("json", options.getConfigurationStoreType());
+        assertEquals(null, options.getConfigurationStoreLocation());
         assertEquals(null, options.getLogConfigFile());
-        assertEquals(null, options.getBind());
-
-        for(ProtocolExclusion pe : EnumSet.allOf(ProtocolExclusion.class))
-        {
-            assertEquals(0, options.getExcludedPorts(pe).size());
-        }
-
-        for(ProtocolInclusion pe : EnumSet.allOf(ProtocolInclusion.class))
-        {
-            assertEquals(0, options.getIncludedPorts(pe).size());
-        }
-    }
-
-    public void testPortOverriddenSingle()
-    {
-        BrokerOptions options = startDummyMain("-p 1234");
-
-        assertTrue(options.getPorts().contains(1234));
-        assertEquals(1, options.getPorts().size());
-        assertTrue(options.getSSLPorts().isEmpty());
-    }
-
-    public void testPortOverriddenMultiple()
-    {
-        BrokerOptions options = startDummyMain("-p 1234 -p 4321");
-
-        assertTrue(options.getPorts().contains(1234));
-        assertTrue(options.getPorts().contains(4321));
-        assertEquals(2, options.getPorts().size());
-        assertTrue(options.getSSLPorts().isEmpty());
-    }
-
-    public void testSSLPortOverriddenSingle()
-    {
-        BrokerOptions options = startDummyMain("-s 5678");
-
-        assertTrue(options.getSSLPorts().contains(5678));
-        assertEquals(1, options.getSSLPorts().size());
-        assertTrue(options.getPorts().isEmpty());
-    }
-
-    public void testSSLPortOverriddenMultiple()
-    {
-        BrokerOptions options = startDummyMain("-s 5678 -s 8765");
-
-        assertTrue(options.getSSLPorts().contains(5678));
-        assertTrue(options.getSSLPorts().contains(8765));
-        assertEquals(2, options.getSSLPorts().size());
-        assertTrue(options.getPorts().isEmpty());
-    }
-
-    public void testNonSSLandSSLPortsOverridden()
-    {
-        BrokerOptions options = startDummyMain("-p 5678 -s 8765");
-
-        assertTrue(options.getPorts().contains(5678));
-        assertTrue(options.getSSLPorts().contains(8765));
-        assertEquals(1, options.getPorts().size());
-        assertEquals(1, options.getSSLPorts().size());
-    }
-
-    public void testJmxPortRegistryServerOverridden()
-    {
-        BrokerOptions options = startDummyMain("--jmxregistryport 3456");
-
-        assertEquals(Integer.valueOf(3456), options.getJmxPortRegistryServer());
-
-         options = startDummyMain("-m 3457");
-         assertEquals(Integer.valueOf(3457), options.getJmxPortRegistryServer());
-    }
-
-    public void testJmxPortConnectorServerOverridden()
-    {
-        BrokerOptions options = startDummyMain("--jmxconnectorport 3456");
-
-        assertEquals(Integer.valueOf(3456), options.getJmxPortConnectorServer());
+        assertEquals(0, options.getLogWatchFrequency());
     }
 
-    public void testExclude0_10()
+    public void testConfigurationStoreLocation()
     {
-        BrokerOptions options = startDummyMain("-p 3456 --exclude-0-10 3456");
+        BrokerOptions options = startDummyMain("-sp abcd/config.xml");
 
-        assertTrue(options.getPorts().contains(3456));
-        assertEquals(1, options.getPorts().size());
-        assertTrue(options.getExcludedPorts(ProtocolExclusion.v0_10).contains(3456));
-        assertEquals(1, options.getExcludedPorts(ProtocolExclusion.v0_10).size());
-        assertEquals(0, options.getExcludedPorts(ProtocolExclusion.v0_9_1).size());
+        assertEquals("abcd/config.xml", options.getConfigurationStoreLocation());
     }
 
-    public void testConfig()
+    public void testConfigurationStoreType()
     {
-        BrokerOptions options = startDummyMain("-c abcd/config.xml");
+        BrokerOptions options = startDummyMain("-st dby");
 
-        assertEquals("abcd/config.xml", options.getConfigFile());
+        assertEquals("dby", options.getConfigurationStoreType());
     }
 
     public void testLogConfig()
@@ -167,20 +84,6 @@ public class MainTest extends QpidTestCa
         assertTrue("Parsed command line didnt pick up help option", main.getCommandLine().hasOption("h"));
     }
 
-    public void testInclude010()
-    {
-        BrokerOptions options = startDummyMain("-p 5678 --include-0-10 5678");
-
-        assertTrue(options.getPorts().contains(5678));
-        assertEquals(1, options.getPorts().size());
-        assertTrue(options.getIncludedPorts(ProtocolInclusion.v0_10).contains(5678));
-        assertEquals(1, options.getIncludedPorts(ProtocolInclusion.v0_10).size());
-        assertEquals(0, options.getIncludedPorts(ProtocolInclusion.v0_9_1).size());
-        assertEquals(0, options.getIncludedPorts(ProtocolInclusion.v0_9).size());
-        assertEquals(0, options.getIncludedPorts(ProtocolInclusion.v0_8).size());
-        assertEquals(0, options.getIncludedPorts(ProtocolInclusion.v1_0).size());
-    }
-
     private BrokerOptions startDummyMain(String commandLine)
     {
         return (new TestMain(commandLine.split("\\s"))).getOptions();

Modified: qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/ack/AcknowledgeTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/ack/AcknowledgeTest.java?rev=1447646&r1=1447645&r2=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/ack/AcknowledgeTest.java (original)
+++ qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/ack/AcknowledgeTest.java Tue Feb 19 09:35:28 2013
@@ -22,14 +22,72 @@ package org.apache.qpid.server.ack;
 
 
 import org.apache.qpid.AMQException;
+import org.apache.qpid.exchange.ExchangeDefaults;
 import org.apache.qpid.framing.AMQShortString;
+import org.apache.qpid.server.AMQChannel;
+import org.apache.qpid.server.exchange.Exchange;
 import org.apache.qpid.server.protocol.InternalTestProtocolSession;
-import org.apache.qpid.server.util.InternalBrokerBaseCase;
+import org.apache.qpid.server.queue.SimpleAMQQueue;
+import org.apache.qpid.server.store.MessageStore;
+import org.apache.qpid.server.store.TestableMemoryMessageStore;
+import org.apache.qpid.server.util.BrokerTestHelper;
+import org.apache.qpid.server.virtualhost.VirtualHost;
+import org.apache.qpid.test.utils.QpidTestCase;
 
 import java.util.List;
 
-public class AcknowledgeTest extends InternalBrokerBaseCase
+public class AcknowledgeTest extends QpidTestCase
 {
+    private AMQChannel _channel;
+    private SimpleAMQQueue _queue;
+    private MessageStore _messageStore;
+    private String _queueName;
+
+    @Override
+    public void setUp() throws Exception
+    {
+        super.setUp();
+        BrokerTestHelper.setUp();
+        _channel = BrokerTestHelper.createChannel();
+        VirtualHost virtualHost = _channel.getVirtualHost();
+        _queueName = getTestName();
+        _queue = BrokerTestHelper.createQueue(_queueName, virtualHost);
+        _messageStore = virtualHost.getMessageStore();
+        Exchange defaultExchange = virtualHost.getExchangeRegistry().getDefaultExchange();
+        virtualHost.getBindingFactory().addBinding(_queueName, _queue, defaultExchange, null);
+    }
+
+    @Override
+    public void tearDown() throws Exception
+    {
+        try
+        {
+            if (_channel != null)
+            {
+                _channel.getVirtualHost().close();
+            }
+        }
+        finally
+        {
+            BrokerTestHelper.tearDown();
+            super.tearDown();
+        }
+    }
+
+    private AMQChannel getChannel()
+    {
+        return _channel;
+    }
+
+    private InternalTestProtocolSession getSession()
+    {
+        return (InternalTestProtocolSession)_channel.getProtocolSession();
+    }
+
+    private SimpleAMQQueue getQueue()
+    {
+        return _queue;
+    }
 
     public void testTransactionalSingleAck() throws AMQException
     {
@@ -70,7 +128,7 @@ public class AcknowledgeTest extends Int
         checkStoreContents(0);
 
         //Send required messsages to the queue
-        publishMessages(getSession(), getChannel(), sendMessageCount);
+        BrokerTestHelper.publishMessages(getChannel(), sendMessageCount, _queueName, ExchangeDefaults.DEFAULT_EXCHANGE_NAME.asString());
 
         if (getChannel().isTransactional())
         {
@@ -84,7 +142,7 @@ public class AcknowledgeTest extends Int
         assertEquals("Channel should have no unacked msgs ", 0, getChannel().getUnacknowledgedMessageMap().size());
 
         //Subscribe to the queue
-        AMQShortString subscriber = subscribe(getSession(), getChannel(), getQueue());
+        AMQShortString subscriber = _channel.subscribeToQueue(null, _queue, true, null, false, true);
 
         getQueue().deliverAsync();
 
@@ -117,4 +175,9 @@ public class AcknowledgeTest extends Int
         checkStoreContents(remainingUnackedMessages);
     }
 
+    private void checkStoreContents(int messageCount)
+    {
+        assertEquals("Message header count incorrect in the MetaDataMap", messageCount, ((TestableMemoryMessageStore) _messageStore).getMessageCount());
+    }
+
 }

Added: qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java?rev=1447646&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java (added)
+++ qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java Tue Feb 19 09:35:28 2013
@@ -0,0 +1,107 @@
+/*
+ *
+ * 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.configuration;
+
+import java.io.File;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.qpid.server.BrokerOptions;
+import org.apache.qpid.server.configuration.store.JsonConfigurationEntryStore;
+import org.apache.qpid.test.utils.QpidTestCase;
+import org.apache.qpid.util.FileUtils;
+
+public class BrokerConfigurationStoreCreatorTest extends QpidTestCase
+{
+    private File _userStoreLocation;
+    private BrokerConfigurationStoreCreator _storeCreator;
+    private BrokerOptions _options;
+
+    public void setUp() throws Exception
+    {
+        super.setUp();
+
+        // check whether QPID_HOME JVM system property is set
+        if (QPID_HOME == null)
+        {
+            // set the properties in order to resolve the defaults store settings
+            setTestSystemProperty("QPID_HOME", TMP_FOLDER);
+        }
+        _storeCreator = new BrokerConfigurationStoreCreator();
+        _userStoreLocation = new File(TMP_FOLDER, "_store_" + System.currentTimeMillis() + "_" + getTestName());
+        _options = new BrokerOptions();
+    }
+
+    public void tearDown() throws Exception
+    {
+        try
+        {
+            super.tearDown();
+        }
+        finally
+        {
+            if (_userStoreLocation != null)
+            {
+                FileUtils.delete(_userStoreLocation, true);
+            }
+        }
+    }
+
+    public void testCreateJsonStore()
+    {
+        ConfigurationEntryStore store = _storeCreator.createStore(_userStoreLocation.getAbsolutePath(), "json", _options);
+        assertNotNull("Store was not created", store);
+        assertTrue("File should exists", _userStoreLocation.exists());
+        assertTrue("File size should be greater than 0", _userStoreLocation.length() > 0);
+        JsonConfigurationEntryStore jsonStore = new JsonConfigurationEntryStore();
+        jsonStore.open(_userStoreLocation.getAbsolutePath());
+        Set<UUID> childrenIds = jsonStore.getRootEntry().getChildrenIds();
+        assertFalse("Unexpected children: " + childrenIds, childrenIds.isEmpty());
+    }
+
+    public void testCreateDerbyStore()
+    {
+        //TODO: Implement DERBY store
+        try
+        {
+            _storeCreator.createStore(_userStoreLocation.getAbsolutePath(), "derby", _options);
+            fail("Store is not yet supported");
+        }
+        catch(IllegalConfigurationException e)
+        {
+            // pass
+        }
+    }
+
+    public void testCreateXmlStore() throws Exception
+    {
+        try
+        {
+            _storeCreator.createStore(_userStoreLocation.getAbsolutePath(), "xml", _options);
+            fail("Store is not yet supported");
+        }
+        catch(IllegalConfigurationException e)
+        {
+            // pass
+        }
+    }
+
+}

Added: qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerPropertiesTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerPropertiesTest.java?rev=1447646&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerPropertiesTest.java (added)
+++ qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerPropertiesTest.java Tue Feb 19 09:35:28 2013
@@ -0,0 +1,51 @@
+/*
+ *
+ * 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.configuration;
+
+import java.util.Locale;
+
+import org.apache.qpid.test.utils.QpidTestCase;
+
+public class BrokerPropertiesTest extends QpidTestCase
+{
+    public void testGetLocaleDefault()
+    {
+        Locale locale = BrokerProperties.getLocale();
+        assertEquals("Unexpected locale", Locale.US, locale);
+    }
+
+    public void testGetLocaleSetWithJVMProperty()
+    {
+        setTestSystemProperty(BrokerProperties.PROPERTY_LOCALE, "en_GB");
+        Locale locale = BrokerProperties.getLocale();
+        assertEquals("Unexpected locale", Locale.UK, locale);
+    }
+
+    public void testGetLocaleSetWithJVMPropertyInUnexpectedFormat()
+    {
+        setTestSystemProperty(BrokerProperties.PROPERTY_LOCALE, "penguins_ANTARCTIC_Moubray_Bay");
+        Locale locale = BrokerProperties.getLocale();
+        assertEquals("Unexpected locale language", "penguins", locale.getLanguage());
+        assertEquals("Unexpected locale country", "ANTARCTIC", locale.getCountry());
+        assertEquals("Unexpected locale country", "Moubray_Bay", locale.getVariant());
+    }
+
+}

Modified: qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/QueueConfigurationTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/QueueConfigurationTest.java?rev=1447646&r1=1447645&r2=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/QueueConfigurationTest.java (original)
+++ qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/QueueConfigurationTest.java Tue Feb 19 09:35:28 2013
@@ -20,25 +20,31 @@
  */
 package org.apache.qpid.server.configuration;
 
+import static org.mockito.Mockito.when;
+
 import junit.framework.TestCase;
 import org.apache.commons.configuration.CompositeConfiguration;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.PropertiesConfiguration;
 
-import org.apache.qpid.server.registry.ApplicationRegistry;
-import org.apache.qpid.server.util.TestApplicationRegistry;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.util.BrokerTestHelper;
 
 public class QueueConfigurationTest extends TestCase
 {
-
     private VirtualHostConfiguration _emptyConf;
     private PropertiesConfiguration _env;
     private VirtualHostConfiguration _fullHostConf;
+    private Broker _broker;
 
+    @Override
     public void setUp() throws Exception
     {
+        super.setUp();
+        BrokerTestHelper.setUp();
+        _broker = BrokerTestHelper.createBrokerMock();
         _env = new PropertiesConfiguration();
-        _emptyConf = new VirtualHostConfiguration("test", _env);
+        _emptyConf = new VirtualHostConfiguration("test", _env, _broker);
 
         PropertiesConfiguration fullEnv = new PropertiesConfiguration();
         fullEnv.setProperty("queues.maximumMessageAge", 1);
@@ -49,35 +55,41 @@ public class QueueConfigurationTest exte
         fullEnv.setProperty("queues.deadLetterQueues", true);
         fullEnv.setProperty("queues.maximumDeliveryCount", 5);
 
-        _fullHostConf = new VirtualHostConfiguration("test", fullEnv);
+        _fullHostConf = new VirtualHostConfiguration("test", fullEnv, _broker);
 
     }
 
+    @Override
+    public void tearDown() throws Exception
+    {
+        BrokerTestHelper.tearDown();
+        super.tearDown();
+    }
+
     public void testMaxDeliveryCount() throws Exception
     {
-        try
-        {
-            ApplicationRegistry registry = new TestApplicationRegistry(new ServerConfiguration(_env));
-            ApplicationRegistry.initialise(registry);
-
-            // Check default value
-            QueueConfiguration qConf = new QueueConfiguration("test", _emptyConf);
-            assertEquals("Unexpected default server configuration for max delivery count ", 0, qConf.getMaxDeliveryCount());
-
-            // Check explicit value
-            VirtualHostConfiguration vhostConfig = overrideConfiguration("maximumDeliveryCount", 7);
-            qConf = new QueueConfiguration("test", vhostConfig);
-            assertEquals("Unexpected host configuration for max delivery count", 7, qConf.getMaxDeliveryCount());
-
-            // Check inherited value
-            qConf = new QueueConfiguration("test",  _fullHostConf);
-            assertEquals("Unexpected queue configuration for max delivery count", 5, qConf.getMaxDeliveryCount());
-
-        }
-        finally
-        {
-            ApplicationRegistry.remove();
-        }
+        // broker MAXIMUM_DELIVERY_ATTEMPTS attribute is not set
+        when(_broker.getAttribute(Broker.MAXIMUM_DELIVERY_ATTEMPTS)).thenReturn(null);
+
+        // Check default value
+        QueueConfiguration qConf = new QueueConfiguration("test", _emptyConf);
+        assertEquals("Unexpected default server configuration for max delivery count ", 0, qConf.getMaxDeliveryCount());
+
+        // set broker MAXIMUM_DELIVERY_ATTEMPTS attribute to 2
+        when(_broker.getAttribute(Broker.MAXIMUM_DELIVERY_ATTEMPTS)).thenReturn(2);
+
+        // Check that queue inherits the MAXIMUM_DELIVERY_ATTEMPTS value from broker
+        qConf = new QueueConfiguration("test", _emptyConf);
+        assertEquals("Unexpected default server configuration for max delivery count ", 2, qConf.getMaxDeliveryCount());
+
+        // Check explicit value
+        VirtualHostConfiguration vhostConfig = overrideConfiguration("maximumDeliveryCount", 7);
+        qConf = new QueueConfiguration("test", vhostConfig);
+        assertEquals("Unexpected host configuration for max delivery count", 7, qConf.getMaxDeliveryCount());
+
+        // Check inherited value
+        qConf = new QueueConfiguration("test",  _fullHostConf);
+        assertEquals("Unexpected queue configuration for max delivery count", 5, qConf.getMaxDeliveryCount());
     }
 
     /**
@@ -87,28 +99,28 @@ public class QueueConfigurationTest exte
      */
     public void testIsDeadLetterQueueEnabled() throws Exception
     {
-        try
-        {
-            ApplicationRegistry registry = new TestApplicationRegistry(new ServerConfiguration(_env));
-            ApplicationRegistry.initialise(registry);
-
-            // Check default value
-            QueueConfiguration qConf = new QueueConfiguration("test", _emptyConf);
-            assertFalse("Unexpected queue configuration for dead letter enabled attribute", qConf.isDeadLetterQueueEnabled());
-
-            // Check explicit value
-            VirtualHostConfiguration vhostConfig = overrideConfiguration("deadLetterQueues", true);
-            qConf = new QueueConfiguration("test", vhostConfig);
-            assertTrue("Unexpected queue configuration for dead letter enabled attribute", qConf.isDeadLetterQueueEnabled());
-
-            // Check inherited value
-            qConf = new QueueConfiguration("test", _fullHostConf);
-            assertTrue("Unexpected queue configuration for dead letter enabled attribute", qConf.isDeadLetterQueueEnabled());
-        }
-        finally
-        {
-            ApplicationRegistry.remove();
-        }
+        // enable dead letter queues broker wide
+        when(_broker.getAttribute(Broker.DEAD_LETTER_QUEUE_ENABLED)).thenReturn(true);
+
+        // Check that queue inherits the broker setting
+        QueueConfiguration qConf = new QueueConfiguration("test", _emptyConf);
+        assertTrue("Unexpected queue configuration for dead letter enabled attribute", qConf.isDeadLetterQueueEnabled());
+
+        // broker DEAD_LETTER_QUEUE_ENABLED is not set
+        when(_broker.getAttribute(Broker.DEAD_LETTER_QUEUE_ENABLED)).thenReturn(null);
+
+        // Check that queue dead letter queue is not enabled
+        qConf = new QueueConfiguration("test", _emptyConf);
+        assertFalse("Unexpected queue configuration for dead letter enabled attribute", qConf.isDeadLetterQueueEnabled());
+
+        // Check explicit value
+        VirtualHostConfiguration vhostConfig = overrideConfiguration("deadLetterQueues", true);
+        qConf = new QueueConfiguration("test", vhostConfig);
+        assertTrue("Unexpected queue configuration for dead letter enabled attribute", qConf.isDeadLetterQueueEnabled());
+
+        // Check inherited value
+        qConf = new QueueConfiguration("test", _fullHostConf);
+        assertTrue("Unexpected queue configuration for dead letter enabled attribute", qConf.isDeadLetterQueueEnabled());
     }
 
     public void testGetMaximumMessageAge() throws ConfigurationException
@@ -178,27 +190,28 @@ public class QueueConfigurationTest exte
 
     public void testGetMinimumAlertRepeatGap() throws Exception
     {
-        try
-        {
-            ApplicationRegistry registry = new TestApplicationRegistry(new ServerConfiguration(_env));
-            ApplicationRegistry.initialise(registry);
-            // Check default value
-            QueueConfiguration qConf = new QueueConfiguration("test", _emptyConf);
-            assertEquals(ServerConfiguration.DEFAULT_MINIMUM_ALERT_REPEAT_GAP, qConf.getMinimumAlertRepeatGap());
-
-            // Check explicit value
-            VirtualHostConfiguration vhostConfig = overrideConfiguration("minimumAlertRepeatGap", 2);
-            qConf = new QueueConfiguration("test", vhostConfig);
-            assertEquals(2, qConf.getMinimumAlertRepeatGap());
-
-            // Check inherited value
-            qConf = new QueueConfiguration("test", _fullHostConf);
-            assertEquals(1, qConf.getMinimumAlertRepeatGap());
-        }
-        finally
-        {
-            ApplicationRegistry.remove();
-        }
+        // set broker attribute ALERT_REPEAT_GAP to 10
+        when(_broker.getAttribute(Broker.ALERT_REPEAT_GAP)).thenReturn(10);
+
+        // check that broker level setting is available on queue configuration
+        QueueConfiguration qConf = new QueueConfiguration("test", _emptyConf);
+        assertEquals(10, qConf.getMinimumAlertRepeatGap());
+
+        // remove configuration for ALERT_REPEAT_GAP on broker level
+        when(_broker.getAttribute(Broker.ALERT_REPEAT_GAP)).thenReturn(null);
+
+        // Check default value
+        qConf = new QueueConfiguration("test", _emptyConf);
+        assertEquals(0, qConf.getMinimumAlertRepeatGap());
+
+        // Check explicit value
+        VirtualHostConfiguration vhostConfig = overrideConfiguration("minimumAlertRepeatGap", 2);
+        qConf = new QueueConfiguration("test", vhostConfig);
+        assertEquals(2, qConf.getMinimumAlertRepeatGap());
+
+        // Check inherited value
+        qConf = new QueueConfiguration("test", _fullHostConf);
+        assertEquals(1, qConf.getMinimumAlertRepeatGap());
     }
 
     public void testSortQueueConfiguration() throws ConfigurationException
@@ -235,6 +248,6 @@ public class QueueConfigurationTest exte
         config.addConfiguration(_fullHostConf.getConfig());
         config.addConfiguration(queueConfig);
 
-        return new VirtualHostConfiguration("test", config);
+        return new VirtualHostConfiguration("test", config, _broker);
     }
 }

Modified: qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java?rev=1447646&r1=1447645&r2=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java (original)
+++ qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java Tue Feb 19 09:35:28 2013
@@ -19,24 +19,69 @@
  */
 package org.apache.qpid.server.configuration;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
+import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.XMLConfiguration;
 
 import org.apache.qpid.framing.AMQShortString;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.queue.AMQPriorityQueue;
 import org.apache.qpid.server.queue.AMQQueue;
-import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.store.TestableMemoryMessageStore;
-import org.apache.qpid.server.util.InternalBrokerBaseCase;
+import org.apache.qpid.server.util.BrokerTestHelper;
 import org.apache.qpid.server.virtualhost.VirtualHost;
+import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
+import org.apache.qpid.test.utils.QpidTestCase;
 
-public class VirtualHostConfigurationTest extends InternalBrokerBaseCase
+public class VirtualHostConfigurationTest extends QpidTestCase
 {
+    private VirtualHostRegistry _virtualHostRegistry;
+    private XMLConfiguration _configXml;
+    private Broker _broker;
 
     @Override
-    public void createBroker()
+    public void setUp() throws Exception
     {
-        // Prevent auto broker startup
+        super.setUp();
+        BrokerTestHelper.setUp();
+        _configXml = new XMLConfiguration();
+        _configXml.addProperty("virtualhosts.virtualhost(-1).name", getName());
+        _configXml.addProperty("virtualhosts.virtualhost(-1)."+getName()+".store.class", TestableMemoryMessageStore.class.getName());
+        _virtualHostRegistry = new VirtualHostRegistry();
+        _broker = mock(Broker.class);
+        when(_broker.getAttribute(Broker.HOUSEKEEPING_CHECK_PERIOD)).thenReturn(30000l);
+    }
+
+    @Override
+    public void tearDown() throws Exception
+    {
+        try
+        {
+            if (_virtualHostRegistry != null)
+            {
+                _virtualHostRegistry.close();
+            }
+        }
+        finally
+        {
+            BrokerTestHelper.tearDown();
+            super.tearDown();
+        }
+    }
+
+    private XMLConfiguration getConfigXml()
+    {
+        return _configXml;
+    }
+
+    private VirtualHost createVirtualHost(String hostName) throws Exception
+    {
+        Configuration config = getConfigXml().subset("virtualhosts.virtualhost." + XmlConfigurationUtilities.escapeTagName(hostName));
+        VirtualHostConfiguration virtualHostConfiguration = new VirtualHostConfiguration(hostName, config, _broker);
+        return BrokerTestHelper.createVirtualHost(virtualHostConfiguration, _virtualHostRegistry);
     }
 
     public void testQueuePriority() throws Exception
@@ -65,11 +110,7 @@ public class VirtualHostConfigurationTes
         getConfigXml().addProperty("virtualhosts.virtualhost.testQueuePriority.queues.queue.ntest.priority",
                               "false");
 
-        // Start the broker now.
-        super.createBroker();
-
-        VirtualHost vhost =
-                ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost(getName());
+        VirtualHost vhost = createVirtualHost(getName());
 
         // Check that atest was a priority queue with 5 priorities
         AMQQueue atest = vhost.getQueueRegistry().getQueue(new AMQShortString("atest"));
@@ -102,11 +143,7 @@ public class VirtualHostConfigurationTes
 
         getConfigXml().addProperty("virtualhosts.virtualhost.testQueueAlerts.queues(-1).queue(-1).name(-1)", "btest");
 
-        // Start the broker now.
-        super.createBroker();
-
-        VirtualHost vhost =
-                ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost(getName());
+        VirtualHost vhost = createVirtualHost(getName());
 
         // Check specifically configured values
         AMQQueue aTest = vhost.getQueueRegistry().getQueue(new AMQShortString("atest"));
@@ -129,11 +166,7 @@ public class VirtualHostConfigurationTes
         getConfigXml().addProperty("virtualhosts.virtualhost." + getName() + ".queues.queue.biggles.maximumDeliveryCount", 4);
         getConfigXml().addProperty("virtualhosts.virtualhost." + getName() + ".queues(-1).queue(-1).name", "beetle");
 
-        // Start the broker now.
-        super.createBroker();
-
-        // Get vhosts
-        VirtualHost test = ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost(getName());
+        VirtualHost test = createVirtualHost(getName());
 
         // Enabled specifically
         assertEquals("Test vhost MDC was configured as enabled", 5 ,test.getConfiguration().getMaxDeliveryCount());
@@ -163,12 +196,8 @@ public class VirtualHostConfigurationTes
         getConfigXml().addProperty("virtualhosts.virtualhost." + getName() + "Extra.queues(-1).queue(-1).name", "c3p0");
         getConfigXml().addProperty("virtualhosts.virtualhost." + getName() + "Extra.store.class", TestableMemoryMessageStore.class.getName());
 
-        // Start the broker now.
-        super.createBroker();
-
-        // Get vhosts
-        VirtualHost test = ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost(getName());
-        VirtualHost extra = ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost(getName() + "Extra");
+        VirtualHost test = createVirtualHost(getName());
+        VirtualHost extra = createVirtualHost(getName() + "Extra");
 
         // Enabled specifically
         assertTrue("Test vhost DLQ was configured as enabled", test.getConfiguration().isDeadLetterQueueEnabled());
@@ -215,37 +244,13 @@ public class VirtualHostConfigurationTes
         getConfigXml().addProperty("virtualhosts.virtualhost.testHouseKeepingThreadCount.housekeeping.poolSize",
                               initialPoolSize);
 
-        // Start the broker now.
-        super.createBroker();
-
-        VirtualHost vhost =
-                ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost(getName());
+        VirtualHost vhost = createVirtualHost(getName());
 
         assertEquals("HouseKeeping PoolSize not set correctly.",
                      initialPoolSize, vhost.getHouseKeepingPoolSize());
     }
 
     /**
-     * Test default house keeping tasks
-     *
-     * @throws Exception
-     */
-    public void testDefaultHouseKeepingTasks() throws Exception
-    {
-        // Start the broker now.
-        super.createBroker();
-
-        VirtualHost vhost =
-                ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost(getName());
-
-        assertEquals("Default houseKeeping task count incorrect.", 1,
-                     vhost.getHouseKeepingTaskCount());
-
-        // Currently the task is:
-        // ExpiredMessageTask from VirtualHostC
-    }
-
-    /**
       * Test that we can dynamically change the thread pool size
       *
       * @throws Exception
@@ -257,11 +262,7 @@ public class VirtualHostConfigurationTes
          getConfigXml().addProperty("virtualhosts.virtualhost.testDynamicHouseKeepingPoolSizeChange.housekeeping.poolSize",
                                initialPoolSize);
 
-         // Start the broker now.
-         super.createBroker();
-
-         VirtualHost vhost =
-                 ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost(getName());
+         VirtualHost vhost = createVirtualHost(getName());
 
          assertEquals("HouseKeeping PoolSize not set correctly.",
                       initialPoolSize, vhost.getHouseKeepingPoolSize());
@@ -285,7 +286,7 @@ public class VirtualHostConfigurationTes
 
          try
          {
-             super.createBroker();
+             createVirtualHost(getName());
              fail("Exception not thrown");
          }
          catch(ConfigurationException ce)
@@ -308,7 +309,7 @@ public class VirtualHostConfigurationTes
 
          try
          {
-             super.createBroker();
+             createVirtualHost(getName());
              fail("Exception not thrown");
          }
          catch (ConfigurationException ce)
@@ -332,11 +333,7 @@ public class VirtualHostConfigurationTes
          // Add a single property which is inside the <dot.in.a.name> queue tag - the maximum delivery count
          getConfigXml().addProperty("virtualhosts.virtualhost." + getName() + ".queues.queue.dot..in..a..name.maximumDeliveryCount", 5);
 
-         // Start the broker now.
-         super.createBroker();
-
-         // Get vhosts
-         VirtualHost test = ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost(getName());
+         VirtualHost test = createVirtualHost(getName());
 
          // Check, that the property stored within the <dot.in.a.name> tag has been properly loaded
          assertEquals("queue with dots in its name has been properly loaded", 5, test.getConfiguration().getQueueConfiguration("dot.in.a.name").getMaxDeliveryCount());
@@ -355,11 +352,7 @@ public class VirtualHostConfigurationTes
          // Add a single property which is inside the <dot.in.a.name> virtual host tag - the message store
          getConfigXml().addProperty("virtualhosts.virtualhost.dot..in..a..name.store.class", TestableMemoryMessageStore.class.getName());
 
-         // Start the broker now.
-         super.createBroker();
-
-         // Get vhosts
-         VirtualHost test = ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost("dot.in.a.name");
+         VirtualHost test = createVirtualHost("dot.in.a.name");
 
          // Check, that the property stored within the <dot.in.a.name> tag has been properly loaded
          assertEquals("virtual host with dots in the name has been properly loaded", TestableMemoryMessageStore.class.getName(), test.getMessageStore().getClass().getName());

Modified: qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/plugins/AbstractConfigurationTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/plugins/AbstractConfigurationTest.java?rev=1447646&r1=1447645&r2=1447646&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/plugins/AbstractConfigurationTest.java (original)
+++ qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/plugins/AbstractConfigurationTest.java Tue Feb 19 09:35:28 2013
@@ -24,7 +24,7 @@ import org.apache.commons.configuration.
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.XMLConfiguration;
 
-import org.apache.qpid.server.util.InternalBrokerBaseCase;
+import org.apache.qpid.test.utils.QpidTestCase;
 
 import java.util.List;
 
@@ -32,7 +32,7 @@ import java.util.List;
  * Test that verifies that given a Configuration a ConfigurationPlugin can
  * process and validate that data.
  */
-public class AbstractConfigurationTest extends InternalBrokerBaseCase
+public class AbstractConfigurationTest extends QpidTestCase
 {
     private static final double DOUBLE = 3.14;
     private static final long POSITIVE_LONG = 1000;



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