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 2012/11/01 10:48:57 UTC

svn commit: r1404521 [5/6] - in /qpid/branches/java-broker-config-qpid-4390/qpid/java: ./ broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/ broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ bro...

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java Thu Nov  1 09:48:52 2012
@@ -1124,7 +1124,7 @@ public class ServerConfigurationTest ext
         // Test config
         VirtualHostConfiguration virtualHost = config.getVirtualHostConfig("a");
 
-        assertEquals("Incorrect virtualhost count", 1, config.getVirtualHosts().length);
+        assertEquals("Incorrect virtualhost count", 1, config.getVirtualHostsNames().length);
         assertEquals("Incorrect virtualhost name", "a", virtualHost.getName());
     }
 
@@ -1162,7 +1162,7 @@ public class ServerConfigurationTest ext
         // Test config
         VirtualHostConfiguration virtualHost = config.getVirtualHostConfig("one");
 
-        assertEquals("Incorrect virtualhost count", 1, config.getVirtualHosts().length);
+        assertEquals("Incorrect virtualhost count", 1, config.getVirtualHostsNames().length);
         assertEquals("Incorrect virtualhost name", "one", virtualHost.getName());
     }
 
@@ -1219,7 +1219,7 @@ public class ServerConfigurationTest ext
         VirtualHostConfiguration fishHost = config.getVirtualHostConfig("fish");
         ExchangeConfiguration fishExchange = fishHost.getExchangeConfiguration("fish.topic");
 
-        assertEquals("Incorrect virtualhost count", 2, config.getVirtualHosts().length);
+        assertEquals("Incorrect virtualhost count", 2, config.getVirtualHostsNames().length);
         assertEquals("Incorrect virtualhost name", "test", testHost.getName());
         assertFalse("Incorrect exchange durable property", testExchange.getDurable());
         assertEquals("Incorrect virtualhost name", "fish", fishHost.getName());
@@ -1271,7 +1271,7 @@ public class ServerConfigurationTest ext
         VirtualHostConfiguration testHost = config.getVirtualHostConfig("test");
         ExchangeConfiguration testExchange = testHost.getExchangeConfiguration("test.topic");
 
-        assertEquals("Incorrect virtualhost count", 1, config.getVirtualHosts().length);
+        assertEquals("Incorrect virtualhost count", 1, config.getVirtualHostsNames().length);
         assertEquals("Incorrect virtualhost name", "test", testHost.getName());
         assertFalse("Incorrect exchange durable property", testExchange.getDurable());
     }
@@ -1308,7 +1308,7 @@ public class ServerConfigurationTest ext
         // Test config
         VirtualHostConfiguration oneHost = config.getVirtualHostConfig("test-one");
 
-        assertEquals("Incorrect virtualhost count", 1, config.getVirtualHosts().length);
+        assertEquals("Incorrect virtualhost count", 1, config.getVirtualHostsNames().length);
         assertEquals("Incorrect virtualhost name", "test-one", oneHost.getName());
     }
 

Added: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java?rev=1404521&view=auto
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java (added)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java Thu Nov  1 09:48:52 2012
@@ -0,0 +1,145 @@
+/*
+ *
+ * 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.startup;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.same;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import junit.framework.TestCase;
+
+import org.apache.qpid.server.configuration.ConfigurationEntry;
+import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObjectType;
+import org.apache.qpid.server.model.GroupProvider;
+import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.adapter.AuthenticationProviderFactory;
+import org.apache.qpid.server.model.adapter.PortFactory;
+import org.apache.qpid.server.registry.IApplicationRegistry;
+
+public class BrokerRecovererTest extends TestCase
+{
+    private BrokerRecoverer _brokerRecoverer;
+
+    private IApplicationRegistry _applicationRegistry = mock(IApplicationRegistry.class);
+
+    private VirtualHostRecoverer _virtualHostRecoverer = mock(VirtualHostRecoverer.class);
+    private PortRecoverer _portRecoverer = mock(PortRecoverer.class);
+    private AuthenticationProviderRecoverer _authenticationProviderRecoverer = mock(AuthenticationProviderRecoverer.class);
+
+    private AuthenticationProviderFactory _authenticationProviderFactory = mock(AuthenticationProviderFactory.class);
+    private PortFactory _portFactory = mock(PortFactory.class);
+
+    private GroupProviderRecoverer _groupProviderRecoverer = mock(GroupProviderRecoverer.class);
+
+    private ConfigurationEntry _entry = mock(ConfigurationEntry.class);
+
+    private UUID _brokerId = UUID.randomUUID();
+    private Map<ConfiguredObjectType, Collection<ConfigurationEntry>> _entryChildren = new HashMap<ConfiguredObjectType, Collection<ConfigurationEntry>>();
+
+    @Override
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+
+        _brokerRecoverer = new BrokerRecoverer(_portRecoverer, _virtualHostRecoverer, _authenticationProviderRecoverer,
+                _authenticationProviderFactory, _portFactory, _groupProviderRecoverer, _applicationRegistry);
+        when(_entry.getId()).thenReturn(_brokerId);
+        when(_entry.getChildren()).thenReturn(_entryChildren);
+
+    }
+
+    public void testCreateBrokerWithVirtualHost()
+    {
+        ConfigurationEntry virtualHostEntry = mock(ConfigurationEntry.class);
+
+        VirtualHost virtualHost = mock(VirtualHost.class);
+
+        _entryChildren.put(ConfiguredObjectType.VIRTUAL_HOST, Arrays.asList(virtualHostEntry));
+
+        when(_virtualHostRecoverer.create(same(virtualHostEntry), any(Broker.class))).thenReturn(virtualHost);
+
+        Broker broker = _brokerRecoverer.create(_entry);
+
+        assertNotNull(broker);
+        assertEquals(_brokerId, broker.getId());
+        assertEquals(1, broker.getVirtualHosts().size());
+        assertEquals(virtualHost, broker.getVirtualHosts().iterator().next());
+
+        // XXX test top-level attributes eg status-updates
+    }
+
+    public void testCreateBrokerWithPorts()
+    {
+        ConfigurationEntry portEntry = mock(ConfigurationEntry.class);
+        Port port = mock(Port.class);
+        _entryChildren.put(ConfiguredObjectType.PORT, Arrays.asList(portEntry));
+
+        when(_portRecoverer.create(same(portEntry), any(Broker.class))).thenReturn(port);
+
+        Broker broker = _brokerRecoverer.create(_entry);
+
+        assertNotNull(broker);
+        assertEquals(_brokerId, broker.getId());
+        assertEquals(Collections.singletonList(port), broker.getPorts());
+    }
+
+    public void testCreateBrokerWithAuthenticationProviders()
+    {
+        ConfigurationEntry authenticationProviderEntry = mock(ConfigurationEntry.class);
+        AuthenticationProvider authenticationProvider = mock(AuthenticationProvider.class);
+        _entryChildren.put(ConfiguredObjectType.AUTHENTICATION_PROVIDER, Arrays.asList(authenticationProviderEntry));
+
+        when(_authenticationProviderRecoverer.create(same(authenticationProviderEntry), any(Broker.class))).thenReturn(
+                authenticationProvider);
+
+        Broker broker = _brokerRecoverer.create(_entry);
+
+        assertNotNull(broker);
+        assertEquals(_brokerId, broker.getId());
+        assertEquals(Collections.singletonList(authenticationProvider), broker.getAuthenticationProviders());
+    }
+
+    public void testCreateBrokerWithGroupProviders()
+    {
+        ConfigurationEntry groupProviderEntry = mock(ConfigurationEntry.class);
+        GroupProvider groupProvider = mock(GroupProvider.class);
+        _entryChildren.put(ConfiguredObjectType.GROUP_PROVIDER, Arrays.asList(groupProviderEntry));
+
+        when(_groupProviderRecoverer.create(same(groupProviderEntry), any(Broker.class))).thenReturn(groupProvider);
+
+        Broker broker = _brokerRecoverer.create(_entry);
+
+        assertNotNull(broker);
+        assertEquals(_brokerId, broker.getId());
+        assertEquals(Collections.singletonList(groupProvider), broker.getGroupProviders());
+    }
+}

Added: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/GroupProviderRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/GroupProviderRecovererTest.java?rev=1404521&view=auto
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/GroupProviderRecovererTest.java (added)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/GroupProviderRecovererTest.java Thu Nov  1 09:48:52 2012
@@ -0,0 +1,97 @@
+/*
+ *
+ * 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.startup;
+import static org.mockito.Mockito.*;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.qpid.server.configuration.ConfigurationEntry;
+import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.GroupProvider;
+import org.apache.qpid.server.plugin.GroupManagerFactory;
+import org.apache.qpid.server.plugin.QpidServiceLoader;
+import org.apache.qpid.server.security.group.GroupManager;
+
+import junit.framework.TestCase;
+
+public class GroupProviderRecovererTest extends TestCase
+{
+
+    private UUID _id;
+    private Map<String, Object> _attributes;
+
+    private GroupManagerFactory _factory;
+    private QpidServiceLoader<GroupManagerFactory> _groupManagerServiceLoader;
+    private Broker _broker;
+    private ConfigurationEntry _configurationEntry;
+
+    @SuppressWarnings("unchecked")
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+        _id = UUID.randomUUID();
+        _attributes = new HashMap<String, Object>();
+
+        _factory = mock(GroupManagerFactory.class);
+
+        _groupManagerServiceLoader = mock(QpidServiceLoader.class);
+        when(_groupManagerServiceLoader.instancesOf(GroupManagerFactory.class)).thenReturn(Collections.singletonList(_factory ));
+
+        _broker = mock(Broker.class);
+
+        _configurationEntry = mock(ConfigurationEntry.class);
+        when(_configurationEntry.getId()).thenReturn(_id);
+        when(_configurationEntry.getAttributes()).thenReturn(_attributes);
+    }
+
+    public void testCreate()
+    {
+        GroupManager groupManager = mock(GroupManager.class);
+        String name = groupManager.getClass().getSimpleName();
+        when(_factory.createInstance(_attributes)).thenReturn(groupManager);
+        GroupProviderRecoverer groupProviderRecoverer = new GroupProviderRecoverer(_groupManagerServiceLoader);
+        GroupProvider groupProvider = groupProviderRecoverer.create(_configurationEntry, _broker);
+        assertNotNull("Null group provider", groupProvider);
+        assertEquals("Unexpected name", name, groupProvider.getName());
+        assertEquals("Unexpected ID", _id, groupProvider.getId());
+    }
+
+    public void testCreateThrowsExceptionWhenNoGroupManagerIsCreated()
+    {
+        when(_factory.createInstance(_attributes)).thenReturn(null);
+
+        GroupProviderRecoverer groupProviderRecoverer = new GroupProviderRecoverer(_groupManagerServiceLoader);
+        try
+        {
+            groupProviderRecoverer.create(_configurationEntry, _broker);
+            fail("Configuration exception should be thrown when group manager is not created");
+        }
+        catch(IllegalConfigurationException e)
+        {
+            // pass
+        }
+    }
+
+}

Added: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java?rev=1404521&view=auto
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java (added)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java Thu Nov  1 09:48:52 2012
@@ -0,0 +1,63 @@
+/*
+ *
+ * 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.startup;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.qpid.server.configuration.ConfigurationEntry;
+import org.apache.qpid.server.configuration.VirtualHostConfiguration;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.security.SecurityManager;
+import org.apache.qpid.server.stats.StatisticsGatherer;
+import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
+
+
+import junit.framework.TestCase;
+
+public class VirtualHostRecovererTest extends TestCase
+{
+    public void testCreate()
+    {
+        VirtualHostRegistry virtualHostRegistry = mock(VirtualHostRegistry.class);
+        StatisticsGatherer statisticsGatherer = mock(StatisticsGatherer.class);
+        SecurityManager securityManager = mock(SecurityManager.class);
+        Map<String, VirtualHostConfiguration> configurations = new HashMap<String, VirtualHostConfiguration>();
+        VirtualHostRecoverer recoverer = new VirtualHostRecoverer(virtualHostRegistry, statisticsGatherer, securityManager, configurations);
+
+        ConfigurationEntry entry = mock(ConfigurationEntry.class);
+        Broker parent = mock(Broker.class);
+        Map<String, Object> attributes = new HashMap<String, Object>();
+        attributes.put(VirtualHost.NAME, getName());
+        when(entry.getAttributes()).thenReturn(attributes);
+        configurations.put(getName(), mock(VirtualHostConfiguration.class));
+
+        VirtualHost host = recoverer.create(entry, parent);
+
+        assertNotNull("Null is returned", host);
+        assertEquals("Unexpected name", getName(), host.getName());
+    }
+
+}

Added: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/PortConfigurationHelperTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/PortConfigurationHelperTest.java?rev=1404521&view=auto
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/PortConfigurationHelperTest.java (added)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/PortConfigurationHelperTest.java Thu Nov  1 09:48:52 2012
@@ -0,0 +1,233 @@
+/*
+ *
+ * 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.store;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import junit.framework.TestCase;
+
+import org.apache.qpid.server.BrokerOptions;
+import org.apache.qpid.server.ProtocolExclusion;
+import org.apache.qpid.server.ProtocolInclusion;
+import org.apache.qpid.server.configuration.ConfigurationEntry;
+import org.apache.qpid.server.configuration.ServerConfiguration;
+import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.Protocol;
+import org.apache.qpid.server.model.Transport;
+import org.apache.qpid.transport.ConnectionSettings;
+
+public class PortConfigurationHelperTest extends TestCase
+{
+    private ServerConfiguration _serverConfig;
+    private int _port;
+    private List<Integer> _ports;
+    private PortConfigurationHelper _helper;
+
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+
+        _port = 5679;
+        _ports = Collections.singletonList(_port);
+        _serverConfig = mock(ServerConfiguration.class);
+        when(_serverConfig.getPorts()).thenReturn(_ports);
+
+        _helper = new PortConfigurationHelper(null);
+    }
+
+    public void testPortConfigurationCLIExclude()
+    {
+        setEnabledAmqpProtocolsOnServerConfiguration(true);
+        Set<ProtocolExclusion> exclusions = EnumSet.allOf(ProtocolExclusion.class);
+        for (ProtocolExclusion protocolExclusion : exclusions)
+        {
+            BrokerOptions options = new BrokerOptions();
+            options.setBind(ConnectionSettings.WILDCARD_ADDRESS);
+            options.addExcludedPort(protocolExclusion, _port);
+
+            Map<UUID, ConfigurationEntry> entries = _helper.getPortConfiguration(_serverConfig, options);
+            assertNotNull("Entries map is null", entries);
+            assertEquals("Unexpected number of entries", 1, entries.size());
+            ConfigurationEntry entry = entries.values().iterator().next();
+
+            Map<String, Object> attributes = entry.getAttributes();
+            assertNotNull("Entry attributes are null", attributes);
+
+            @SuppressWarnings("unchecked")
+            Set<Protocol> supported = (Set<Protocol>) attributes.get(Port.PROTOCOLS);
+            assertNotNull("No protocols found", supported);
+
+            final Set<Protocol> expected = getAllAmqpProtocolsExcept(protocolExclusion);
+
+            assertEquals("Unexpected protocols", expected, supported);
+        }
+    }
+
+    public void testPortConfigurationCLIInclude()
+    {
+        setEnabledAmqpProtocolsOnServerConfiguration(false);
+        Set<ProtocolInclusion> inclusions = EnumSet.allOf(ProtocolInclusion.class);
+        for (ProtocolInclusion protocolInclusion : inclusions)
+        {
+            BrokerOptions options = new BrokerOptions();
+            options.setBind(ConnectionSettings.WILDCARD_ADDRESS);
+            options.addIncludedPort(protocolInclusion, _port);
+
+            Map<UUID, ConfigurationEntry> entries = _helper.getPortConfiguration(_serverConfig, options);
+            assertNotNull("Entries map is null", entries);
+            assertEquals("Unexpected number of entries", 1, entries.size());
+            ConfigurationEntry entry = entries.values().iterator().next();
+
+            Map<String, Object> attributes = entry.getAttributes();
+            assertNotNull("Entry attributes are null", attributes);
+
+            @SuppressWarnings("unchecked")
+            Set<Protocol> supported = (Set<Protocol>) attributes.get(Port.PROTOCOLS);
+            assertNotNull("No protocols found", supported);
+
+            Protocol protocol = toProtocol(protocolInclusion);
+            final Set<Protocol> expected = EnumSet.of(protocol);
+
+            assertEquals("Unexpected protocols", expected, supported);
+        }
+
+    }
+
+    public void testCLIPortOverride()
+    {
+        int cliPort = 9876;
+        BrokerOptions options = new BrokerOptions();
+        options.setBind(ConnectionSettings.WILDCARD_ADDRESS);
+        options.addPort(cliPort);
+
+        Map<UUID, ConfigurationEntry> entries = _helper.getPortConfiguration(_serverConfig, options);
+        assertNotNull("Entries map is null", entries);
+        assertEquals("Unexpected number of entries", 1, entries.size());
+        ConfigurationEntry entry = entries.values().iterator().next();
+
+        Map<String, Object> attributes = entry.getAttributes();
+        assertNotNull("Entry attributes are null", attributes);
+
+        Integer port = (Integer) attributes.get(Port.PORT);
+        assertNotNull("No port found", port);
+
+        @SuppressWarnings("unchecked")
+        Collection<Transport> transports = (Collection<Transport>) attributes.get(Port.TRANSPORTS);
+        assertEquals("Unexpected transports", Collections.singleton(Transport.TCP), transports);
+    }
+
+    public void testCLISSLPortOverride()
+    {
+        when(_serverConfig.getEnableSSL()).thenReturn(true);
+        when(_serverConfig.getSSLOnly()).thenReturn(true);
+
+        int cliPort = 9876;
+        BrokerOptions options = new BrokerOptions();
+        options.setBind(ConnectionSettings.WILDCARD_ADDRESS);
+        options.addSSLPort(cliPort);
+
+        Map<UUID, ConfigurationEntry> entries = _helper.getPortConfiguration(_serverConfig, options);
+        assertNotNull("Entries map is null", entries);
+        assertEquals("Unexpected number of entries", 1, entries.size());
+        Iterator<ConfigurationEntry> iterator = entries.values().iterator();
+
+        ConfigurationEntry entry = iterator.next();
+
+        Map<String, Object> attributes = entry.getAttributes();
+        assertNotNull("Entry attributes are null", attributes);
+
+        Integer port = (Integer) attributes.get(Port.PORT);
+        assertNotNull("No port found", port);
+
+        assertEquals("Unexpected port", cliPort, port.intValue());
+
+        @SuppressWarnings("unchecked")
+        Collection<Transport> transports = (Collection<Transport>) attributes.get(Port.TRANSPORTS);
+        assertEquals("Unexpected transports", Collections.singleton(Transport.SSL), transports);
+    }
+
+    private void setEnabledAmqpProtocolsOnServerConfiguration(boolean isEnabled)
+    {
+        when(_serverConfig.isAmqp010enabled()).thenReturn(isEnabled);
+        when(_serverConfig.isAmqp08enabled()).thenReturn(isEnabled);
+        when(_serverConfig.isAmqp09enabled()).thenReturn(isEnabled);
+        when(_serverConfig.isAmqp091enabled()).thenReturn(isEnabled);
+        when(_serverConfig.isAmqp10enabled()).thenReturn(isEnabled);
+    }
+
+    private Set<Protocol> getAllAmqpProtocolsExcept(ProtocolExclusion excludedProtocol)
+    {
+        Set<Protocol> protocols = EnumSet.allOf(Protocol.class);
+        Protocol excluded = toProtocol(excludedProtocol);
+        protocols.remove(excluded);
+        protocols.remove(Protocol.HTTP);
+        protocols.remove(Protocol.HTTPS);
+        protocols.remove(Protocol.JMX_RMI);
+        return protocols;
+    }
+
+    private Protocol toProtocol(ProtocolExclusion excludedProtocol)
+    {
+        switch (excludedProtocol)
+        {
+        case v0_8:
+            return Protocol.AMQP_0_8;
+        case v0_9:
+            return Protocol.AMQP_0_9;
+        case v0_9_1:
+            return Protocol.AMQP_0_9_1;
+        case v0_10:
+            return Protocol.AMQP_0_10;
+        case v1_0:
+            return Protocol.AMQP_1_0;
+        }
+        throw new RuntimeException("Unsupported " + excludedProtocol);
+    }
+
+    private Protocol toProtocol(ProtocolInclusion protocolInclusion)
+    {
+        switch (protocolInclusion)
+        {
+        case v0_8:
+            return Protocol.AMQP_0_8;
+        case v0_9:
+            return Protocol.AMQP_0_9;
+        case v0_9_1:
+            return Protocol.AMQP_0_9_1;
+        case v0_10:
+            return Protocol.AMQP_0_10;
+        case v1_0:
+            return Protocol.AMQP_1_0;
+        }
+        throw new RuntimeException("Unsupported " + protocolInclusion);
+    }
+
+}

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/ManagementActorTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/ManagementActorTest.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/ManagementActorTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/ManagementActorTest.java Thu Nov  1 09:48:52 2012
@@ -57,7 +57,7 @@ public class ManagementActorTest extends
      *
      * The test sends a message then verifies that it entered the logs.
      *
-     * The log message should be fully repalaced (no '{n}' values) and should
+     * The log message should be fully replaced (no '{n}' values) and should
      * not contain any channel identification.
      */
     public void testConnection()

Added: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java?rev=1404521&view=auto
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java (added)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java Thu Nov  1 09:48:52 2012
@@ -0,0 +1,85 @@
+/*
+ *
+ * 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.model.adapter;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import junit.framework.TestCase;
+
+import org.apache.qpid.server.configuration.ConfigurationEntry;
+import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.PasswordCredentialManagingAuthenticationProvider;
+import org.apache.qpid.server.plugin.AuthenticationManagerFactory;
+import org.apache.qpid.server.plugin.QpidServiceLoader;
+import org.apache.qpid.server.security.auth.manager.AuthenticationManager;
+import org.apache.qpid.server.security.auth.manager.PrincipalDatabaseAuthenticationManager;
+
+public class AuthenticationProviderFactoryTest extends TestCase
+{
+
+    public void testCreateInternalAuthenticationManager()
+    {
+        AuthenticationProvider provider = testForFactory(mock(PrincipalDatabaseAuthenticationManager.class));
+        assertTrue("The created provider should match the factory's AuthenticationManager type",
+                provider instanceof PasswordCredentialManagingAuthenticationProvider);
+    }
+
+    public void testCreateExternalAuthenticationManager()
+    {
+        AuthenticationProvider provider = testForFactory(mock(AuthenticationManager.class));
+        assertFalse("The created provider should match the factory's AuthenticationManager type",
+                provider instanceof PasswordCredentialManagingAuthenticationProvider);
+    }
+
+    @SuppressWarnings("unchecked")
+    private AuthenticationProvider testForFactory(AuthenticationManager authenticationManager)
+    {
+        UUID id = UUID.randomUUID();
+        Map<String, Object> attributes = new HashMap<String, Object>();
+
+        QpidServiceLoader<AuthenticationManagerFactory> authManagerFactoryServiceLoader = mock(QpidServiceLoader.class);
+        AuthenticationManagerFactory authenticationManagerFactory = mock(AuthenticationManagerFactory.class);
+        ConfigurationEntry configurationEntry = mock(ConfigurationEntry.class);
+
+        when(configurationEntry.getId()).thenReturn(id);
+        Broker broker = mock(Broker.class);
+
+        when(authManagerFactoryServiceLoader.atLeastOneInstanceOf(AuthenticationManagerFactory.class)).thenReturn(
+                Collections.singleton(authenticationManagerFactory));
+        when(authenticationManagerFactory.createInstance(attributes)).thenReturn(authenticationManager);
+
+        AuthenticationProviderFactory providerFactory = new AuthenticationProviderFactory(authManagerFactoryServiceLoader);
+        AuthenticationProvider provider = providerFactory.create(id, broker, attributes, null);
+
+        assertNotNull("Provider is not created", provider);
+        assertEquals("Unexpected ID", id, provider.getId());
+
+        return provider;
+    }
+
+}

Added: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortAttributeDestringifierTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortAttributeDestringifierTest.java?rev=1404521&view=auto
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortAttributeDestringifierTest.java (added)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortAttributeDestringifierTest.java Thu Nov  1 09:48:52 2012
@@ -0,0 +1,164 @@
+/*
+ *
+ * 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.model.adapter;
+
+import static org.apache.qpid.server.model.Port.NEED_CLIENT_AUTH;
+import static org.apache.qpid.server.model.Port.PORT;
+import static org.apache.qpid.server.model.Port.PROTOCOLS;
+import static org.apache.qpid.server.model.Port.RECEIVE_BUFFER_SIZE;
+import static org.apache.qpid.server.model.Port.SEND_BUFFER_SIZE;
+import static org.apache.qpid.server.model.Port.TCP_NO_DELAY;
+import static org.apache.qpid.server.model.Port.TRANSPORTS;
+import static org.apache.qpid.server.model.Port.WANT_CLIENT_AUTH;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.apache.qpid.server.model.Protocol;
+import org.apache.qpid.server.model.Transport;
+import org.apache.qpid.server.model.adapter.PortAttributeDestringifier;
+
+public class PortAttributeDestringifierTest extends TestCase
+{
+    public void testDestringify()
+    {
+        // values are non defaults to test the destringifier
+        AttributeTestData[] attributes = new AttributeTestData[] {
+                new AttributeTestData(PORT, "1234", 1234),
+                new AttributeTestData(NEED_CLIENT_AUTH, "true", true),
+                new AttributeTestData(WANT_CLIENT_AUTH, "true", true),
+                new AttributeTestData(SEND_BUFFER_SIZE, "2345", 2345),
+                new AttributeTestData(RECEIVE_BUFFER_SIZE, "3456", 3456),
+                new AttributeTestData(TCP_NO_DELAY, "false", false),
+                new AttributeTestData(TRANSPORTS, buildStringSetFromArray(Transport.TCP.name(), Transport.SSL.name()),
+                                                  buildEnumSetFromArray(Transport.TCP, Transport.SSL)),
+                new AttributeTestData(PROTOCOLS, buildStringSetFromArray(Protocol.AMQP_0_10.name(), Protocol.HTTP.name()),
+                                                 buildEnumSetFromArray(Protocol.AMQP_0_10, Protocol.HTTP)), };
+
+        Map<String, Object> attributesMap = new HashMap<String, Object>();
+        for (AttributeTestData attributeTestData : attributes)
+        {
+            attributesMap.put(attributeTestData.name, attributeTestData.value);
+        }
+
+        PortAttributeDestringifier portAttributeDestringifier = new PortAttributeDestringifier();
+        Map<String, Object> destringifiedAttributesMap = portAttributeDestringifier.destringify(attributesMap);
+
+        for (AttributeTestData attributeTestData : attributes)
+        {
+            Object value = destringifiedAttributesMap.get(attributeTestData.name);
+            assertEquals("Unexpected attribute " + attributeTestData.name + " value ", attributeTestData.destringifiedValue,
+                    value);
+        }
+    }
+
+    public void testDestringifyWithoutMandatoryAttributesThrowsException()
+    {
+        AttributeTestData[] attributesWithoutPort = new AttributeTestData[] {
+                new AttributeTestData(NEED_CLIENT_AUTH, "true", true),
+                new AttributeTestData(WANT_CLIENT_AUTH, "true", true),
+                new AttributeTestData(SEND_BUFFER_SIZE, "2345", 2345),
+                new AttributeTestData(RECEIVE_BUFFER_SIZE, "3456", 3456),
+                new AttributeTestData(TCP_NO_DELAY, "false", false),
+                new AttributeTestData(TRANSPORTS, buildStringSetFromArray(Transport.TCP.name(), Transport.SSL.name()),
+                                                  buildEnumSetFromArray(Transport.TCP, Transport.SSL)),
+                new AttributeTestData(PROTOCOLS, buildStringSetFromArray(Protocol.AMQP_0_10.name(), Protocol.HTTP.name()),
+                                                 buildEnumSetFromArray(Protocol.AMQP_0_10, Protocol.HTTP)), };
+
+        Map<String, Object> attributesMap = new HashMap<String, Object>();
+        for (AttributeTestData attributeTestData : attributesWithoutPort)
+        {
+            attributesMap.put(attributeTestData.name, attributeTestData.value);
+        }
+
+        PortAttributeDestringifier portAttributeDestringifier = new PortAttributeDestringifier();
+        try
+        {
+            portAttributeDestringifier.destringify(attributesMap);
+            fail("For non existing port attribute an exception should be thrown");
+        }
+        catch (IllegalArgumentException e)
+        {
+            // pass
+        }
+    }
+
+    public void testDestringifyWithUnsupportedProtocolThrowsException()
+    {
+        AttributeTestData[] attributesWithoutPort = new AttributeTestData[] {
+                new AttributeTestData(NEED_CLIENT_AUTH, "true", true),
+                new AttributeTestData(WANT_CLIENT_AUTH, "true", true),
+                new AttributeTestData(SEND_BUFFER_SIZE, "2345", 2345),
+                new AttributeTestData(RECEIVE_BUFFER_SIZE, "3456", 3456),
+                new AttributeTestData(TCP_NO_DELAY, "false", false),
+                new AttributeTestData(TRANSPORTS, buildStringSetFromArray(Transport.TCP.name(), Transport.SSL.name()),
+                                                  buildEnumSetFromArray(Transport.TCP, Transport.SSL)),
+                new AttributeTestData(PROTOCOLS, buildStringSetFromArray("UNSUPPORTED_PROTOCOL", Protocol.HTTP.name()),
+                                                 buildEnumSetFromArray(null, Protocol.HTTP)), };
+
+        Map<String, Object> attributesMap = new HashMap<String, Object>();
+        for (AttributeTestData attributeTestData : attributesWithoutPort)
+        {
+            attributesMap.put(attributeTestData.name, attributeTestData.value);
+        }
+
+        PortAttributeDestringifier portAttributeDestringifier = new PortAttributeDestringifier();
+        try
+        {
+            portAttributeDestringifier.destringify(attributesMap);
+            fail("For non supported protocol an exception should be thrown");
+        }
+        catch (IllegalArgumentException e)
+        {
+            // pass
+        }
+    }
+
+    private Set<String> buildStringSetFromArray(String... values)
+    {
+        return new HashSet<String>(Arrays.asList(values));
+    }
+
+    private Set<?> buildEnumSetFromArray(Enum<?>... values)
+    {
+        return new HashSet<Enum<?>>(Arrays.asList(values));
+    }
+
+    private class AttributeTestData
+    {
+        String name;
+        Object value;
+        Object destringifiedValue;
+
+        public AttributeTestData(String name, Object value, Object destringifiedValue)
+        {
+            super();
+            this.name = name;
+            this.value = value;
+            this.destringifiedValue = destringifiedValue;
+        }
+    }
+}

Added: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java?rev=1404521&view=auto
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java (added)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java Thu Nov  1 09:48:52 2012
@@ -0,0 +1,116 @@
+/*
+ *
+ * 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.model.adapter;
+
+import static org.mockito.Mockito.mock;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import junit.framework.TestCase;
+
+import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.Protocol;
+import org.apache.qpid.server.model.Transport;
+import org.apache.qpid.server.registry.IApplicationRegistry;
+import org.apache.qpid.server.transport.AmqpPortAdapter;
+
+public class PortFactoryTest extends TestCase
+{
+    private UUID _portId = UUID.randomUUID();
+    private int _portNumber = 123;
+    private Set<String> _tcpStringSet = Collections.singleton(Transport.TCP.name());
+    private Set<Transport> _tcpTransportSet = Collections.singleton(Transport.TCP);
+
+    private Map<String, Object> _attributes = new HashMap<String, Object>();
+
+    private IApplicationRegistry _applicationRegistry = mock(IApplicationRegistry.class);
+    private Broker _broker = mock(Broker.class);
+    private PortFactory _portFactory = new PortFactory(_applicationRegistry);
+
+    @Override
+    protected void setUp() throws Exception
+    {
+        _attributes.put(Port.PORT, _portNumber);
+        _attributes.put(Port.TRANSPORTS, _tcpStringSet);
+
+        _attributes.put(Port.TCP_NO_DELAY, "true");
+        _attributes.put(Port.RECEIVE_BUFFER_SIZE, "1");
+        _attributes.put(Port.SEND_BUFFER_SIZE, "2");
+        _attributes.put(Port.NEED_CLIENT_AUTH, "true");
+        _attributes.put(Port.WANT_CLIENT_AUTH, "true");
+    }
+
+    public void testCreateAmqpPort()
+    {
+        Set<Protocol> amqp010ProtocolSet = Collections.singleton(Protocol.AMQP_0_10);
+        Set<String> amqp010StringSet = Collections.singleton(Protocol.AMQP_0_10.name());
+        _attributes.put(Port.PROTOCOLS, amqp010StringSet);
+
+        Port port = _portFactory.createPort(_portId, _broker, _attributes);
+
+        assertNotNull(port);
+        assertTrue(port instanceof AmqpPortAdapter);
+        assertEquals(_portId, port.getId());
+        assertEquals(_portNumber, port.getPort());
+        assertEquals(_tcpTransportSet, port.getTransports());
+        assertEquals(amqp010ProtocolSet, port.getProtocols());
+    }
+
+    public void testCreateNonAmqpPort()
+    {
+        Set<Protocol> nonAmqpProtocolSet = Collections.singleton(Protocol.JMX_RMI);
+        Set<String> nonAmqpStringSet = Collections.singleton(Protocol.JMX_RMI.name());
+        _attributes.put(Port.PROTOCOLS, nonAmqpStringSet);
+
+        Port port = _portFactory.createPort(_portId, _broker, _attributes);
+
+        assertNotNull(port);
+        assertFalse("Port should be a PortAdapter, not its AMQP-specific subclass", port instanceof AmqpPortAdapter);
+        assertEquals(_portId, port.getId());
+        assertEquals(_portNumber, port.getPort());
+        assertEquals(_tcpTransportSet, port.getTransports());
+        assertEquals(nonAmqpProtocolSet, port.getProtocols());
+    }
+
+    public void testCreateMixedAmqpAndNonAmqpThrowsException()
+    {
+        Set<String> mixedProtocolSet = new HashSet<String>(Arrays.asList(Protocol.AMQP_0_10.name(), Protocol.JMX_RMI.name()));
+        _attributes.put(Port.PROTOCOLS, mixedProtocolSet);
+
+        try
+        {
+            _portFactory.createPort(_portId, _broker, _attributes);
+            fail("Exception not thrown");
+        }
+        catch (IllegalConfigurationException e)
+        {
+            // pass
+        }
+    }
+}

Added: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java?rev=1404521&view=auto
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java (added)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java Thu Nov  1 09:48:52 2012
@@ -0,0 +1,115 @@
+/*
+ *
+ * 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.model.configuration;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import junit.framework.TestCase;
+
+import org.apache.qpid.server.configuration.ConfigurationEntry;
+import org.apache.qpid.server.configuration.ConfigurationEntryStore;
+import org.apache.qpid.server.model.ConfiguredObjectType;
+import org.apache.qpid.server.model.VirtualHost;
+
+public class ConfigurationEntryTest extends TestCase
+{
+    public void testGetChildren()
+    {
+        ConfigurationEntryStore store = mock(ConfigurationEntryStore.class);
+
+        ConfigurationEntry virtualHostEntry1 = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.VIRTUAL_HOST,
+                Collections.<String, Object> emptyMap(), Collections.<UUID> emptySet(), store);
+        ConfigurationEntry virtualHostEntry2 = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.VIRTUAL_HOST,
+                Collections.<String, Object> emptyMap(), Collections.<UUID> emptySet(), store);
+        ConfigurationEntry portEntry = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.PORT,
+                Collections.<String, Object> emptyMap(), Collections.<UUID> emptySet(), store);
+
+        when(store.getEntry(virtualHostEntry1.getId())).thenReturn(virtualHostEntry1);
+        when(store.getEntry(virtualHostEntry2.getId())).thenReturn(virtualHostEntry2);
+        when(store.getEntry(portEntry.getId())).thenReturn(portEntry);
+
+        Set<UUID> childrenIds = new HashSet<UUID>();
+        childrenIds.add(virtualHostEntry1.getId());
+        childrenIds.add(virtualHostEntry2.getId());
+        childrenIds.add(portEntry.getId());
+        ConfigurationEntry parentEntry = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.BROKER,
+                Collections.<String, Object> emptyMap(), childrenIds, store);
+
+        Map<ConfiguredObjectType, Collection<ConfigurationEntry>> children = parentEntry.getChildren();
+        assertNotNull("Null is returned for children", children);
+        assertEquals("Unexpected size", 2, children.size());
+        Collection<ConfigurationEntry> virtualHosts = children.get(ConfiguredObjectType.VIRTUAL_HOST);
+        Collection<ConfigurationEntry> ports = children.get(ConfiguredObjectType.PORT);
+        assertEquals("Unexpected virtual hosts",
+                new HashSet<ConfigurationEntry>(Arrays.asList(virtualHostEntry1, virtualHostEntry2)),
+                new HashSet<ConfigurationEntry>(virtualHosts));
+        assertEquals("Unexpected ports", new HashSet<ConfigurationEntry>(Arrays.asList(portEntry)),
+                new HashSet<ConfigurationEntry>(ports));
+    }
+
+    public void testHashCode()
+    {
+        ConfigurationEntryStore store = mock(ConfigurationEntryStore.class);
+
+        UUID id = UUID.randomUUID();
+        ConfigurationEntry entry1 = new ConfigurationEntry(id, ConfiguredObjectType.VIRTUAL_HOST,
+                Collections.<String, Object> emptyMap(), Collections.singleton(UUID.randomUUID()), store);
+        ConfigurationEntry entry2 = new ConfigurationEntry(id, ConfiguredObjectType.VIRTUAL_HOST,
+                Collections.<String, Object> emptyMap(), Collections.singleton(UUID.randomUUID()), store);
+        ConfigurationEntry entryWithDifferentId = new ConfigurationEntry(UUID.randomUUID(),
+                ConfiguredObjectType.VIRTUAL_HOST, Collections.<String, Object> emptyMap(), Collections.singleton(UUID.randomUUID()), store);
+
+        assertTrue(entry1.hashCode() == entry2.hashCode());
+        assertFalse(entry1.hashCode() == entryWithDifferentId.hashCode());
+    }
+
+    public void testEqualsObject()
+    {
+        ConfigurationEntryStore store = mock(ConfigurationEntryStore.class);
+
+        UUID id = UUID.randomUUID();
+        Map<String, Object> attributes1 = new HashMap<String, Object>();
+        attributes1.put(VirtualHost.NAME, "name1");
+        ConfigurationEntry entry1 = new ConfigurationEntry(id, ConfiguredObjectType.VIRTUAL_HOST, attributes1,
+                Collections.singleton(UUID.randomUUID()), store);
+
+        Map<String, Object> attributes2 = new HashMap<String, Object>();
+        attributes2.put(VirtualHost.NAME, "name2");
+
+        ConfigurationEntry entry2 = new ConfigurationEntry(id, ConfiguredObjectType.VIRTUAL_HOST, attributes2,
+                Collections.singleton(UUID.randomUUID()), store);
+        ConfigurationEntry entryWithDifferentId = new ConfigurationEntry(UUID.randomUUID(),
+                ConfiguredObjectType.VIRTUAL_HOST, attributes1, Collections.singleton(UUID.randomUUID()), store);
+
+        assertTrue(entry1.equals(entry2));
+        assertFalse(entry1.equals(entryWithDifferentId));
+    }
+}

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactoryTest.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactoryTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactoryTest.java Thu Nov  1 09:48:52 2012
@@ -35,13 +35,14 @@ import java.util.Set;
 
 public class MultiVersionProtocolEngineFactoryTest extends QpidTestCase
 {
+    private TestApplicationRegistry _appRegistry;
 
     protected void setUp() throws Exception
     {
         super.setUp();
 
-        //the factory needs a registry instance
-        ApplicationRegistry.initialise(new TestApplicationRegistry(new ServerConfiguration(new XMLConfiguration())));
+        _appRegistry = new TestApplicationRegistry(new ServerConfiguration(new XMLConfiguration()));
+        ApplicationRegistry.initialise(_appRegistry);
     }
 
     protected void tearDown()
@@ -108,6 +109,7 @@ public class MultiVersionProtocolEngineF
                     (byte) 0
             };
 
+
     private byte[] getAmqpHeader(final AmqpProtocolVersion version)
     {
         switch(version)
@@ -137,7 +139,7 @@ public class MultiVersionProtocolEngineF
         Set<AmqpProtocolVersion> versions = EnumSet.allOf(AmqpProtocolVersion.class);
 
         MultiVersionProtocolEngineFactory factory =
-            new MultiVersionProtocolEngineFactory(versions, null);
+            new MultiVersionProtocolEngineFactory(_appRegistry, versions, null);
 
         //create a dummy to retrieve the 'current' ID number
         long previousId = factory.newProtocolEngine().getConnectionId();
@@ -174,7 +176,7 @@ public class MultiVersionProtocolEngineF
 
         try
         {
-            new MultiVersionProtocolEngineFactory(versions, AmqpProtocolVersion.v0_9);
+            new MultiVersionProtocolEngineFactory(_appRegistry, versions, AmqpProtocolVersion.v0_9);
             fail("should not have been allowed to create the factory");
         }
         catch(IllegalArgumentException iae)

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java Thu Nov  1 09:48:52 2012
@@ -48,6 +48,7 @@ import org.apache.qpid.server.model.UUID
 import org.apache.qpid.server.queue.BaseQueue.PostEnqueueAction;
 import org.apache.qpid.server.queue.SimpleAMQQueue.QueueEntryFilter;
 import org.apache.qpid.server.registry.ApplicationRegistry;
+import org.apache.qpid.server.stats.StatisticsGatherer;
 import org.apache.qpid.server.store.StoredMessage;
 import org.apache.qpid.server.store.TestableMemoryMessageStore;
 import org.apache.qpid.server.subscription.MockSubscription;
@@ -114,7 +115,8 @@ public class SimpleAMQQueueTest extends 
         PropertiesConfiguration env = new PropertiesConfiguration();
         final VirtualHostConfiguration vhostConfig = new VirtualHostConfiguration(getClass().getName(), env);
         vhostConfig.setMessageStoreClass(TestableMemoryMessageStore.class.getName());
-        _virtualHost = new VirtualHostImpl(ApplicationRegistry.getInstance(), vhostConfig);
+        _virtualHost = new VirtualHostImpl( applicationRegistry.getVirtualHostRegistry(), (StatisticsGatherer)applicationRegistry,
+                applicationRegistry.getSecurityManager(), vhostConfig);
         applicationRegistry.getVirtualHostRegistry().registerVirtualHost(_virtualHost);
 
         _queue = (SimpleAMQQueue) AMQQueueFactory.createAMQQueueImpl(UUIDGenerator.generateRandomUUID(), _qname.asString(), false, _owner.asString(), false, false, _virtualHost, FieldTable.convertToMap(_arguments));

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthManagerFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthManagerFactoryTest.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthManagerFactoryTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthManagerFactoryTest.java Thu Nov  1 09:48:52 2012
@@ -21,9 +21,9 @@ package org.apache.qpid.server.security.
 
 import java.io.File;
 import java.io.FileNotFoundException;
+import java.util.HashMap;
+import java.util.Map;
 
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.qpid.server.security.auth.database.Base64MD5PasswordFilePrincipalDatabase;
 import org.apache.qpid.server.security.auth.database.PlainPasswordFilePrincipalDatabase;
 
@@ -32,7 +32,7 @@ import junit.framework.TestCase;
 public class PrincipalDatabaseAuthManagerFactoryTest extends  TestCase
 {
     PrincipalDatabaseAuthManagerFactory _factory = new PrincipalDatabaseAuthManagerFactory();
-    private Configuration _configuration = new XMLConfiguration();
+    private Map<String, Object> _configuration = new HashMap<String, Object>();
     private File _emptyPasswordFile;
 
     @Override
@@ -45,9 +45,10 @@ public class PrincipalDatabaseAuthManage
 
     public void testPlainInstanceCreated() throws Exception
     {
-        _configuration.setProperty("pd-auth-manager.principal-database.class", PlainPasswordFilePrincipalDatabase.class.getName());
-        _configuration.setProperty("pd-auth-manager.principal-database.attributes.attribute.name", "passwordFile");
-        _configuration.setProperty("pd-auth-manager.principal-database.attributes.attribute.value", _emptyPasswordFile.getAbsolutePath());
+        _configuration.put(PrincipalDatabaseAuthManagerFactory.TYPE, "pd-auth-manager");
+        _configuration.put("principal-database.class", PlainPasswordFilePrincipalDatabase.class.getName());
+        _configuration.put("principal-database.attributes.attribute.name", "passwordFile");
+        _configuration.put("principal-database.attributes.attribute.value", _emptyPasswordFile.getAbsolutePath());
 
         AuthenticationManager manager = _factory.createInstance(_configuration);
         assertNotNull(manager);
@@ -57,9 +58,10 @@ public class PrincipalDatabaseAuthManage
 
     public void testBase64MD5nstanceCreated() throws Exception
     {
-        _configuration.setProperty("pd-auth-manager.principal-database.class", Base64MD5PasswordFilePrincipalDatabase.class.getName());
-        _configuration.setProperty("pd-auth-manager.principal-database.attributes.attribute.name", "passwordFile");
-        _configuration.setProperty("pd-auth-manager.principal-database.attributes.attribute.value", _emptyPasswordFile.getAbsolutePath());
+        _configuration.put(PrincipalDatabaseAuthManagerFactory.TYPE, "pd-auth-manager");
+        _configuration.put("principal-database.class", Base64MD5PasswordFilePrincipalDatabase.class.getName());
+        _configuration.put("principal-database.attributes.attribute.name", "passwordFile");
+        _configuration.put("principal-database.attributes.attribute.value", _emptyPasswordFile.getAbsolutePath());
 
         AuthenticationManager manager = _factory.createInstance(_configuration);
         assertNotNull(manager);
@@ -71,9 +73,10 @@ public class PrincipalDatabaseAuthManage
     {
         _emptyPasswordFile.delete();
 
-        _configuration.setProperty("pd-auth-manager.principal-database.class", PlainPasswordFilePrincipalDatabase.class.getName());
-        _configuration.setProperty("pd-auth-manager.principal-database.attributes.attribute.name", "passwordFile");
-        _configuration.setProperty("pd-auth-manager.principal-database.attributes.attribute.value", _emptyPasswordFile.getAbsolutePath());
+        _configuration.put(PrincipalDatabaseAuthManagerFactory.TYPE, "pd-auth-manager");
+        _configuration.put("principal-database.class", PlainPasswordFilePrincipalDatabase.class.getName());
+        _configuration.put("principal-database.attributes.attribute.name", "passwordFile");
+        _configuration.put("principal-database.attributes.attribute.value", _emptyPasswordFile.getAbsolutePath());
 
         try
         {
@@ -93,16 +96,17 @@ public class PrincipalDatabaseAuthManage
 
     public void testReturnsNullWhenConfigForOtherPDImplementation() throws Exception
     {
-        _configuration.setProperty("pd-auth-manager.principal-database.class", "mypdimpl");
-
+        _configuration.put("principal-database.class", "mypdimpl");
+        _configuration.put(PrincipalDatabaseAuthManagerFactory.TYPE, "pd-auth-manager");
         AuthenticationManager manager = _factory.createInstance(_configuration);
         assertNull(manager);
     }
 
     public void testReturnsNullWhenConfigForPlainPDImplementationNoPasswordFileValueSpecified() throws Exception
     {
-        _configuration.setProperty("pd-auth-manager.principal-database.class", PlainPasswordFilePrincipalDatabase.class.getName());
-        _configuration.setProperty("pd-auth-manager.principal-database.attributes.attribute.name", "passwordFile");
+        _configuration.put("principal-database.class", PlainPasswordFilePrincipalDatabase.class.getName());
+        _configuration.put("principal-database.attributes.attribute.name", "passwordFile");
+        _configuration.put(PrincipalDatabaseAuthManagerFactory.TYPE, "pd-auth-manager");
         // no pd-auth-manager.attributes.attribute.value
 
         AuthenticationManager manager = _factory.createInstance(_configuration);
@@ -111,9 +115,10 @@ public class PrincipalDatabaseAuthManage
 
     public void testReturnsNullWhenConfigForPlainPDImplementationWrongArgumentName() throws Exception
     {
-        _configuration.setProperty("pd-auth-manager.principal-database.class", PlainPasswordFilePrincipalDatabase.class.getName());
-        _configuration.setProperty("pd-auth-manager.principal-database.attributes.attribute.name", "wrong");
-        _configuration.setProperty("pd-auth-manager.principal-database.attributes.attribute.value", "/does/not/matter");
+        _configuration.put("principal-database.class", PlainPasswordFilePrincipalDatabase.class.getName());
+        _configuration.put("principal-database.attributes.attribute.name", "wrong");
+        _configuration.put("principal-database.attributes.attribute.value", "/does/not/matter");
+        _configuration.put(PrincipalDatabaseAuthManagerFactory.TYPE, "pd-auth-manager");
 
         AuthenticationManager manager = _factory.createInstance(_configuration);
         assertNull(manager);

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java Thu Nov  1 09:48:52 2012
@@ -19,20 +19,22 @@
  */
 package org.apache.qpid.server.security.auth.manager;
 
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.XMLConfiguration;
+import java.util.HashMap;
+import java.util.Map;
+
 
 import junit.framework.TestCase;
 
 public class SimpleLDAPAuthenticationManagerFactoryTest extends TestCase
 {
     private SimpleLDAPAuthenticationManagerFactory _factory = new SimpleLDAPAuthenticationManagerFactory();
-    private Configuration _configuration = new XMLConfiguration();
+    private Map<String, Object> _configuration = new HashMap<String, Object>();
 
     public void testInstanceCreated() throws Exception
     {
-        _configuration.setProperty("simple-ldap-auth-manager.provider-url", "ldaps://example.com:636/");
-        _configuration.setProperty("simple-ldap-auth-manager.search-context", "dc=example");
+        _configuration.put(SimpleLDAPAuthenticationManagerFactory.TYPE, "simple-ldap-auth-manager");
+        _configuration.put("provider-url", "ldaps://example.com:636/");
+        _configuration.put("search-context", "dc=example");
 
         AuthenticationManager manager = _factory.createInstance(_configuration);
         assertNotNull(manager);

Added: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/TestAuthenticationManagerFactory.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/TestAuthenticationManagerFactory.java?rev=1404521&view=auto
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/TestAuthenticationManagerFactory.java (added)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/TestAuthenticationManagerFactory.java Thu Nov  1 09:48:52 2012
@@ -0,0 +1,49 @@
+/*
+ *
+ * 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.security.auth.manager;
+
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.qpid.server.plugin.AuthenticationManagerFactory;
+import org.apache.qpid.server.security.auth.database.PropertiesPrincipalDatabase;
+
+public class TestAuthenticationManagerFactory implements AuthenticationManagerFactory
+{
+
+    public static final String TEST_AUTH_MANAGER_MARKER = "test-auth-manager";
+
+    @Override
+    public AuthenticationManager createInstance(Map<String, Object> attributes)
+    {
+        if (TEST_AUTH_MANAGER_MARKER.equals(attributes.get(TYPE)))
+        {
+            final Properties users = new Properties();
+            users.put("guest","guest");
+            users.put("admin","admin");
+            final PropertiesPrincipalDatabase ppd = new PropertiesPrincipalDatabase(users);
+            final AuthenticationManager pdam =  new PrincipalDatabaseAuthenticationManager(ppd);
+            return pdam;
+        }
+        return null;
+    }
+
+}

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/group/FileGroupManagerFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/group/FileGroupManagerFactoryTest.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/group/FileGroupManagerFactoryTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/group/FileGroupManagerFactoryTest.java Thu Nov  1 09:48:52 2012
@@ -18,23 +18,25 @@
  */
 package org.apache.qpid.server.security.group;
 
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.XMLConfiguration;
-import org.apache.qpid.test.utils.TestFileUtils;
+import java.util.HashMap;
+import java.util.Map;
 
 import junit.framework.TestCase;
 
+import org.apache.qpid.server.model.GroupProvider;
+import org.apache.qpid.test.utils.TestFileUtils;
+
 public class FileGroupManagerFactoryTest extends TestCase
 {
 
     private FileGroupManagerFactory _factory = new FileGroupManagerFactory();
-    private Configuration _configuration = new XMLConfiguration();
+    private Map<String, Object> _configuration = new HashMap<String, Object>();
     private String _emptyButValidGroupFile = TestFileUtils.createTempFile(this).getAbsolutePath();
 
     public void testInstanceCreated() throws Exception
     {
-        _configuration.setProperty("file-group-manager.attributes.attribute.name", "groupFile");
-        _configuration.setProperty("file-group-manager.attributes.attribute.value", _emptyButValidGroupFile);
+        _configuration.put(GroupProvider.TYPE, FileGroupManagerFactory.FILE_GROUP_MANAGER_TYPE);
+        _configuration.put(FileGroupManagerFactory.FILE, _emptyButValidGroupFile);
 
         GroupManager manager = _factory.createInstance(_configuration);
         assertNotNull(manager);
@@ -49,32 +51,17 @@ public class FileGroupManagerFactoryTest
 
     public void testReturnsNullWhenConfigNotForThisPlugin() throws Exception
     {
-        _configuration.setProperty("other-group-manager", "config");
+        _configuration.put(GroupProvider.TYPE, "other-group-manager");
 
         GroupManager manager = _factory.createInstance(_configuration);
         assertNull(manager);
     }
 
-    public void testRejectsConfigThatHasUnexpectedAttributeName() throws Exception
-    {
-        _configuration.setProperty("file-group-manager.attributes.attribute.name", "unexpected");
-        _configuration.setProperty("file-group-manager.attributes.attribute.value", _emptyButValidGroupFile);
-
-        try
-        {
-            _factory.createInstance(_configuration);
-            fail("Exception not thrown");
-        }
-        catch (RuntimeException re)
-        {
-            // PASS
-        }
-    }
 
     public void testRejectsConfigThatIsMissingAttributeValue() throws Exception
     {
-        _configuration.setProperty("file-group-manager.attributes.attribute.name", "groupFile");
-        _configuration.setProperty("file-group-manager.attributes.attribute.value", null);
+        _configuration.put(GroupProvider.TYPE, FileGroupManagerFactory.FILE_GROUP_MANAGER_TYPE);
+        _configuration.put(FileGroupManagerFactory.FILE, null);
 
         try
         {

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/group/GroupPrincipalAccessorTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/group/GroupPrincipalAccessorTest.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/group/GroupPrincipalAccessorTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/security/group/GroupPrincipalAccessorTest.java Thu Nov  1 09:48:52 2012
@@ -29,15 +29,14 @@ import java.util.Set;
 
 import junit.framework.TestCase;
 
-import org.apache.qpid.server.security.group.GroupManager;
-import org.apache.qpid.server.security.group.GroupPrincipalAccessor;
+import org.apache.qpid.server.model.GroupProvider;
 
 public class GroupPrincipalAccessorTest extends TestCase
 {
     private static final String USERNAME = "username";
 
-    private GroupManager _groupManager1 = mock(GroupManager.class);
-    private GroupManager _groupManager2 = mock(GroupManager.class);
+    private GroupProvider _groupManager1 = mock(GroupProvider.class);
+    private GroupProvider _groupManager2 = mock(GroupProvider.class);
 
     private Principal _group1 = mock(Principal.class);
     private Principal _group2 = mock(Principal.class);

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java Thu Nov  1 09:48:52 2012
@@ -121,8 +121,7 @@ public class MessageStoreTest extends In
             try
             {
                 getVirtualHost().close();
-                getVirtualHost().getApplicationRegistry().
-                getVirtualHostRegistry().unregisterVirtualHost(getVirtualHost());
+                getVirtualHost().getVirtualHostRegistry().unregisterVirtualHost(getVirtualHost());
             }
             catch (Exception e)
             {

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/subscription/SubscriptionFactoryImplTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/subscription/SubscriptionFactoryImplTest.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/subscription/SubscriptionFactoryImplTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/subscription/SubscriptionFactoryImplTest.java Thu Nov  1 09:48:52 2012
@@ -69,7 +69,7 @@ public class SubscriptionFactoryImplTest
 
         //create a 0-10 subscription
         ServerConnection conn = new ServerConnection(1);
-        ProtocolEngine_0_10 engine = new ProtocolEngine_0_10(conn, new TestNetworkConnection(), getRegistry());
+        ProtocolEngine_0_10 engine = new ProtocolEngine_0_10(conn, new TestNetworkConnection());
         conn.setVirtualHost(getVirtualHost());
         ServerSessionDelegate sesDel = new ServerSessionDelegate();
         Binary name = new Binary(new byte[]{new Byte("1")});

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java Thu Nov  1 09:48:52 2012
@@ -20,11 +20,7 @@
  */
 package org.apache.qpid.server.util;
 
-import java.net.SocketAddress;
-import java.util.Collections;
-import java.util.Map;
 import org.apache.commons.configuration.ConfigurationException;
-
 import org.apache.qpid.server.configuration.ServerConfiguration;
 import org.apache.qpid.server.logging.NullRootMessageLogger;
 import org.apache.qpid.server.logging.actors.BrokerActor;
@@ -32,14 +28,7 @@ import org.apache.qpid.server.logging.ac
 import org.apache.qpid.server.logging.actors.GenericActor;
 import org.apache.qpid.server.logging.log4j.LoggingManagementFacade;
 import org.apache.qpid.server.registry.ApplicationRegistry;
-import org.apache.qpid.server.security.SubjectCreator;
-import org.apache.qpid.server.security.auth.database.PropertiesPrincipalDatabase;
-import org.apache.qpid.server.security.auth.manager.AuthenticationManager;
-import org.apache.qpid.server.security.auth.manager.IAuthenticationManagerRegistry;
-import org.apache.qpid.server.security.auth.manager.PrincipalDatabaseAuthenticationManager;
-import org.apache.qpid.server.security.group.GroupPrincipalAccessor;
-
-import java.util.Properties;
+import org.apache.qpid.server.security.auth.manager.TestAuthenticationManagerFactory;
 
 public class TestApplicationRegistry extends ApplicationRegistry
 {
@@ -52,53 +41,14 @@ public class TestApplicationRegistry ext
     @Override
     public void initialise() throws Exception
     {
-        CurrentActor.setDefault(new BrokerActor(new NullRootMessageLogger()));
-        GenericActor.setDefaultMessageLogger(new NullRootMessageLogger());
         LoggingManagementFacade.configure("test-profiles/log4j-test.xml");
-
+        getConfiguration().getConfig().addProperty("security." + TestAuthenticationManagerFactory.TEST_AUTH_MANAGER_MARKER, "");
         super.initialise();
-    }
 
-    @Override
-    protected IAuthenticationManagerRegistry createAuthenticationManagerRegistry(
-            ServerConfiguration configuration, final GroupPrincipalAccessor groupPrincipalAccessor)
-            throws ConfigurationException
-    {
-        final Properties users = new Properties();
-        users.put("guest","guest");
-        users.put("admin","admin");
-
-        final PropertiesPrincipalDatabase ppd = new PropertiesPrincipalDatabase(users);
-
-        final AuthenticationManager pdam =  new PrincipalDatabaseAuthenticationManager(ppd);
-        pdam.initialise();
-
-        return new IAuthenticationManagerRegistry()
-        {
-            @Override
-            public void close()
-            {
-                pdam.close();
-            }
-
-            @Override
-            public SubjectCreator getSubjectCreator(SocketAddress address)
-            {
-                return new SubjectCreator(pdam, groupPrincipalAccessor);
-            }
-
-            @Override
-            public Map<String, AuthenticationManager> getAvailableAuthenticationManagers()
-            {
-                return Collections.singletonMap(pdam.getClass().getName(), pdam);
-            }
-
-            @Override
-            public void addRegistryChangeListener(RegistryChangeListener listener)
-            {
-            }
-        };
+        CurrentActor.setDefault(new BrokerActor(new NullRootMessageLogger()));
+        GenericActor.setDefaultMessageLogger(new NullRootMessageLogger());
     }
+
 }
 
 

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java Thu Nov  1 09:48:52 2012
@@ -28,14 +28,12 @@ import org.apache.qpid.server.exchange.E
 import org.apache.qpid.server.exchange.ExchangeRegistry;
 import org.apache.qpid.server.protocol.v1_0.LinkRegistry;
 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.security.auth.manager.AuthenticationManager;
 import org.apache.qpid.server.stats.StatisticsCounter;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.txn.DtxRegistry;
 
-import java.util.Map;
 import java.util.UUID;
 
 public class MockVirtualHost implements VirtualHost
@@ -52,7 +50,8 @@ public class MockVirtualHost implements 
 
     }
 
-    public IApplicationRegistry getApplicationRegistry()
+    @Override
+    public VirtualHostRegistry getVirtualHostRegistry()
     {
         return null;
     }
@@ -67,11 +66,6 @@ public class MockVirtualHost implements 
         return null;
     }
 
-    public UUID getBrokerId()
-    {
-        return null;
-    }
-
     public DtxRegistry getDtxRegistry()
     {
         return null;

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java?rev=1404521&r1=1404520&r2=1404521&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java Thu Nov  1 09:48:52 2012
@@ -74,17 +74,27 @@ public class VirtualHostImplTest extends
      */
     public void testSpecifyingCustomBindingForDefaultExchangeThrowsException() throws Exception
     {
-        File config = writeConfigFile(getName(), getName(), null, false, new String[]{"custom-binding"});
+        final String queueName = getName();
+        final String customBinding = "custom-binding";
+        File config = writeConfigFile(queueName, queueName, null, false, new String[]{customBinding});
 
         try
         {
-            createVirtualHost(getName(), config);
+            createVirtualHost(queueName, config);
             fail("virtualhost creation should have failed due to illegal configuration");
         }
         catch (RuntimeException e)
         {
-            assertEquals(ConfigurationException.class, e.getCause().getClass());
-            //expected
+            // PASS
+            assertEquals("Failed to create virtual host", e.getMessage());
+
+            assertNotNull(e.getCause());
+            assertNotNull(e.getCause().getCause());
+
+            assertEquals(ConfigurationException.class, e.getCause().getCause().getClass());
+
+            Throwable configException = e.getCause().getCause();
+            assertEquals("Illegal attempt to bind queue '" + queueName + "' to the default exchange with a key other than the queue name: " + customBinding, configException.getMessage());
         }
     }
 
@@ -112,17 +122,27 @@ public class VirtualHostImplTest extends
      */
     public void testSpecifyingUnknownExchangeThrowsException() throws Exception
     {
-        File config = writeConfigFile(getName(), getName(), "made-up-exchange", true, new String[0]);
+        final String queueName = getName();
+        final String exchangeName = "made-up-exchange";
+        File config = writeConfigFile(queueName, queueName, exchangeName, true, new String[0]);
 
         try
         {
-            createVirtualHost(getName(), config);
+            createVirtualHost(queueName, config);
             fail("virtualhost creation should have failed due to illegal configuration");
         }
         catch (RuntimeException e)
         {
-            assertEquals(ConfigurationException.class, e.getCause().getClass());
-            //expected
+            // PASS
+            assertEquals("Failed to create virtual host", e.getMessage());
+
+            assertNotNull(e.getCause());
+            assertNotNull(e.getCause().getCause());
+
+            assertEquals(ConfigurationException.class, e.getCause().getCause().getClass());
+
+            Throwable configException = e.getCause().getCause();
+            assertEquals("Attempt to bind queue '" + queueName + "' to unknown exchange:" + exchangeName, configException.getMessage());
         }
     }
 

Added: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/resources/META-INF/services/org.apache.qpid.server.plugin.AuthenticationManagerFactory
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/resources/META-INF/services/org.apache.qpid.server.plugin.AuthenticationManagerFactory?rev=1404521&view=auto
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/resources/META-INF/services/org.apache.qpid.server.plugin.AuthenticationManagerFactory (added)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/resources/META-INF/services/org.apache.qpid.server.plugin.AuthenticationManagerFactory Thu Nov  1 09:48:52 2012
@@ -0,0 +1,6 @@
+org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory
+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.SimpleLDAPAuthenticationManagerFactory
+org.apache.qpid.server.security.auth.manager.TestAuthenticationManagerFactory



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