summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java')
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java394
1 files changed, 0 insertions, 394 deletions
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
deleted file mode 100644
index e6db5af222..0000000000
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
+++ /dev/null
@@ -1,394 +0,0 @@
-/*
- *
- * 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.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.UUID;
-
-import junit.framework.TestCase;
-
-import org.apache.qpid.server.BrokerOptions;
-import org.apache.qpid.server.configuration.ConfigurationEntry;
-import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer;
-import org.apache.qpid.server.configuration.IllegalConfigurationException;
-import org.apache.qpid.server.configuration.RecovererProvider;
-import org.apache.qpid.server.logging.LogRecorder;
-import org.apache.qpid.server.logging.RootMessageLogger;
-import org.apache.qpid.server.model.AuthenticationProvider;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.GroupProvider;
-import org.apache.qpid.server.model.KeyStore;
-import org.apache.qpid.server.model.Model;
-import org.apache.qpid.server.model.Plugin;
-import org.apache.qpid.server.model.Port;
-import org.apache.qpid.server.model.TrustStore;
-import org.apache.qpid.server.model.UUIDGenerator;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.model.adapter.AccessControlProviderFactory;
-import org.apache.qpid.server.model.adapter.AuthenticationProviderFactory;
-import org.apache.qpid.server.model.adapter.GroupProviderFactory;
-import org.apache.qpid.server.model.adapter.PortFactory;
-import org.apache.qpid.server.model.adapter.PreferencesProviderCreator;
-import org.apache.qpid.server.configuration.store.StoreConfigurationChangeListener;
-import org.apache.qpid.server.configuration.updater.TaskExecutor;
-import org.apache.qpid.server.stats.StatisticsGatherer;
-import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
-
-public class BrokerRecovererTest extends TestCase
-{
- private BrokerRecoverer _brokerRecoverer;
- private ConfigurationEntry _brokerEntry = mock(ConfigurationEntry.class);
-
- private UUID _brokerId = UUID.randomUUID();
- private Map<String, Collection<ConfigurationEntry>> _brokerEntryChildren = new HashMap<String, Collection<ConfigurationEntry>>();
- private ConfigurationEntry _authenticationProviderEntry1;
- private AuthenticationProvider _authenticationProvider1;
- private UUID _authenticationProvider1Id = UUID.randomUUID();
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
-
- _brokerRecoverer = new BrokerRecoverer(mock(AuthenticationProviderFactory.class), mock(GroupProviderFactory.class), mock(AccessControlProviderFactory.class), mock(PortFactory.class),
- mock(PreferencesProviderCreator.class),
- mock(StatisticsGatherer.class), mock(VirtualHostRegistry.class), mock(LogRecorder.class), mock(RootMessageLogger.class), mock(TaskExecutor.class), mock(BrokerOptions.class),
- mock(StoreConfigurationChangeListener.class));
- when(_brokerEntry.getId()).thenReturn(_brokerId);
- when(_brokerEntry.getChildren()).thenReturn(_brokerEntryChildren);
- when(_brokerEntry.getAttributes()).thenReturn(Collections.<String, Object>singletonMap(Broker.MODEL_VERSION, Model.MODEL_VERSION));
-
- //Add a base AuthenticationProvider for all tests
- _authenticationProvider1 = mock(AuthenticationProvider.class);
- when(_authenticationProvider1.getName()).thenReturn("authenticationProvider1");
- when(_authenticationProvider1.getId()).thenReturn(_authenticationProvider1Id);
- _authenticationProviderEntry1 = mock(ConfigurationEntry.class);
- _brokerEntryChildren.put(AuthenticationProvider.class.getSimpleName(), Arrays.asList(_authenticationProviderEntry1));
- }
-
- public void testCreateBrokerAttributes()
- {
- Map<String, Object> attributes = new HashMap<String, Object>();
- attributes.put(Broker.DEFAULT_VIRTUAL_HOST, "test");
- attributes.put(Broker.QUEUE_ALERT_THRESHOLD_MESSAGE_AGE, 9l);
- attributes.put(Broker.QUEUE_ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES, 8l);
- attributes.put(Broker.QUEUE_ALERT_THRESHOLD_QUEUE_DEPTH_BYTES, 7l);
- attributes.put(Broker.QUEUE_ALERT_THRESHOLD_MESSAGE_SIZE, 6l);
- attributes.put(Broker.QUEUE_ALERT_REPEAT_GAP, 5l);
- attributes.put(Broker.QUEUE_FLOW_CONTROL_SIZE_BYTES, 5l);
- attributes.put(Broker.QUEUE_FLOW_CONTROL_RESUME_SIZE_BYTES, 3l);
- attributes.put(Broker.QUEUE_MAXIMUM_DELIVERY_ATTEMPTS, 2);
- attributes.put(Broker.QUEUE_DEAD_LETTER_QUEUE_ENABLED, true);
- attributes.put(Broker.VIRTUALHOST_HOUSEKEEPING_CHECK_PERIOD, 1l);
- attributes.put(Broker.CONNECTION_SESSION_COUNT_LIMIT, 1000);
- attributes.put(Broker.CONNECTION_HEART_BEAT_DELAY, 2000);
- attributes.put(Broker.STATISTICS_REPORTING_PERIOD, 4000);
- attributes.put(Broker.STATISTICS_REPORTING_RESET_ENABLED, true);
- attributes.put(Broker.MODEL_VERSION, Model.MODEL_VERSION);
-
- Map<String, Object> entryAttributes = new HashMap<String, Object>();
- for (Map.Entry<String, Object> attribute : attributes.entrySet())
- {
- String value = convertToString(attribute.getValue());
- entryAttributes.put(attribute.getKey(), value);
- }
-
- when(_brokerEntry.getAttributes()).thenReturn(entryAttributes);
-
- final ConfigurationEntry virtualHostEntry = mock(ConfigurationEntry.class);
- String typeName = VirtualHost.class.getSimpleName();
- when(virtualHostEntry.getType()).thenReturn(typeName);
- _brokerEntryChildren.put(typeName, Arrays.asList(virtualHostEntry));
- final VirtualHost virtualHost = mock(VirtualHost.class);
- when(virtualHost.getName()).thenReturn("test");
-
- RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[] { virtualHostEntry, _authenticationProviderEntry1 },
- new ConfiguredObject[] { virtualHost, _authenticationProvider1 });
- Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
- assertNotNull(broker);
- assertEquals(_brokerId, broker.getId());
-
- for (Map.Entry<String, Object> attribute : attributes.entrySet())
- {
- Object attributeValue = broker.getAttribute(attribute.getKey());
- assertEquals("Unexpected value of attribute '" + attribute.getKey() + "'", attribute.getValue(), attributeValue);
- }
- }
-
- public void testCreateBrokerWithVirtualHost()
- {
- final ConfigurationEntry virtualHostEntry = mock(ConfigurationEntry.class);
-
- String typeName = VirtualHost.class.getSimpleName();
- when(virtualHostEntry.getType()).thenReturn(typeName);
- _brokerEntryChildren.put(typeName, Arrays.asList(virtualHostEntry));
-
- final VirtualHost virtualHost = mock(VirtualHost.class);
-
- RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{virtualHostEntry, _authenticationProviderEntry1},
- new ConfiguredObject[]{virtualHost, _authenticationProvider1});
-
- Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
-
- assertNotNull(broker);
- assertEquals(_brokerId, broker.getId());
- assertEquals(1, broker.getVirtualHosts().size());
- assertEquals(virtualHost, broker.getVirtualHosts().iterator().next());
- }
-
- public void testCreateBrokerWithPorts()
- {
- ConfigurationEntry portEntry = mock(ConfigurationEntry.class);
- Port port = mock(Port.class);
- _brokerEntryChildren.put(Port.class.getSimpleName(), Arrays.asList(portEntry));
-
- RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{portEntry, _authenticationProviderEntry1},
- new ConfiguredObject[]{port, _authenticationProvider1});
-
- Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
-
- assertNotNull(broker);
- assertEquals(_brokerId, broker.getId());
- assertEquals(Collections.singletonList(port), broker.getPorts());
- }
-
- public void testCreateBrokerWithOneAuthenticationProvider()
- {
- RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{_authenticationProviderEntry1},
- new ConfiguredObject[]{_authenticationProvider1});
-
- Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
-
- assertNotNull(broker);
- assertEquals(_brokerId, broker.getId());
- assertEquals(Collections.singletonList(_authenticationProvider1), broker.getAuthenticationProviders());
- }
-
- public void testCreateBrokerWithMultipleAuthenticationProvidersAndPorts()
- {
- //Create a second authentication provider
- AuthenticationProvider authenticationProvider2 = mock(AuthenticationProvider.class);
- when(authenticationProvider2.getName()).thenReturn("authenticationProvider2");
- ConfigurationEntry authenticationProviderEntry2 = mock(ConfigurationEntry.class);
- _brokerEntryChildren.put(AuthenticationProvider.class.getSimpleName(), Arrays.asList(_authenticationProviderEntry1, authenticationProviderEntry2));
-
- //Add a couple ports
- ConfigurationEntry portEntry1 = mock(ConfigurationEntry.class);
- Port port1 = mock(Port.class);
- when(port1.getId()).thenReturn(UUIDGenerator.generateRandomUUID());
- when(port1.getName()).thenReturn("port1");
- when(port1.getPort()).thenReturn(5671);
- when(port1.getAttribute(Port.AUTHENTICATION_PROVIDER)).thenReturn("authenticationProvider1");
- ConfigurationEntry portEntry2 = mock(ConfigurationEntry.class);
- Port port2 = mock(Port.class);
- when(port2.getId()).thenReturn(UUIDGenerator.generateRandomUUID());
- when(port2.getName()).thenReturn("port2");
- when(port2.getPort()).thenReturn(5672);
- when(port2.getAttribute(Port.AUTHENTICATION_PROVIDER)).thenReturn("authenticationProvider2");
- _brokerEntryChildren.put(Port.class.getSimpleName(), Arrays.asList(portEntry1, portEntry2));
-
- RecovererProvider recovererProvider = createRecoveryProvider(
- new ConfigurationEntry[]{portEntry1, portEntry2, authenticationProviderEntry2, _authenticationProviderEntry1},
- new ConfiguredObject[]{port1, port2, authenticationProvider2, _authenticationProvider1});
-
- Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
-
- assertNotNull(broker);
- assertEquals("Unexpected number of authentication providers", 2, broker.getAuthenticationProviders().size());
-
- Collection<Port> ports = broker.getPorts();
- assertEquals("Unexpected number of ports", 2, ports.size());
- assertTrue(ports.contains(port1));
- assertTrue(ports.contains(port2));
- }
-
- public void testCreateBrokerWithGroupProvider()
- {
- ConfigurationEntry groupProviderEntry = mock(ConfigurationEntry.class);
- GroupProvider groupProvider = mock(GroupProvider.class);
- _brokerEntryChildren.put(GroupProvider.class.getSimpleName(), Arrays.asList(groupProviderEntry));
-
- RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{groupProviderEntry, _authenticationProviderEntry1},
- new ConfiguredObject[]{groupProvider, _authenticationProvider1});
-
- Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
-
- assertNotNull(broker);
- assertEquals(_brokerId, broker.getId());
- assertEquals(Collections.singletonList(groupProvider), broker.getGroupProviders());
- }
-
- public void testCreateBrokerWithPlugins()
- {
- ConfigurationEntry pluginEntry = mock(ConfigurationEntry.class);
- Plugin plugin = mock(Plugin.class);
- _brokerEntryChildren.put(Plugin.class.getSimpleName(), Arrays.asList(pluginEntry));
-
- RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{pluginEntry, _authenticationProviderEntry1},
- new ConfiguredObject[]{plugin, _authenticationProvider1});
-
- Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
-
- assertNotNull(broker);
- assertEquals(_brokerId, broker.getId());
- assertEquals(Collections.singleton(plugin), new HashSet<ConfiguredObject>(broker.getChildren(Plugin.class)));
- }
-
- public void testCreateBrokerWithKeyStores()
- {
- ConfigurationEntry pluginEntry = mock(ConfigurationEntry.class);
- KeyStore keyStore = mock(KeyStore.class);
- _brokerEntryChildren.put(KeyStore.class.getSimpleName(), Arrays.asList(pluginEntry));
-
- RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{pluginEntry, _authenticationProviderEntry1},
- new ConfiguredObject[]{keyStore, _authenticationProvider1});
-
- Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
-
- assertNotNull(broker);
- assertEquals(_brokerId, broker.getId());
- assertEquals(Collections.singleton(keyStore), new HashSet<ConfiguredObject>(broker.getChildren(KeyStore.class)));
- }
-
- public void testCreateBrokerWithTrustStores()
- {
- ConfigurationEntry pluginEntry = mock(ConfigurationEntry.class);
- TrustStore trustStore = mock(TrustStore.class);
- _brokerEntryChildren.put(TrustStore.class.getSimpleName(), Arrays.asList(pluginEntry));
-
- RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{pluginEntry, _authenticationProviderEntry1},
- new ConfiguredObject[]{trustStore, _authenticationProvider1});
-
- Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
-
- assertNotNull(broker);
- assertEquals(_brokerId, broker.getId());
- assertEquals(Collections.singleton(trustStore), new HashSet<ConfiguredObject>(broker.getChildren(TrustStore.class)));
- }
-
- public void testModelVersionValidationForIncompatibleMajorVersion() throws Exception
- {
- Map<String, Object> brokerAttributes = new HashMap<String, Object>();
- String[] incompatibleVersions = {Integer.MAX_VALUE + "." + 0, "0.0"};
- for (String incompatibleVersion : incompatibleVersions)
- {
- brokerAttributes.put(Broker.MODEL_VERSION, incompatibleVersion);
- when(_brokerEntry.getAttributes()).thenReturn(brokerAttributes);
-
- try
- {
- _brokerRecoverer.create(null, _brokerEntry);
- fail("The broker creation should fail due to unsupported model version");
- }
- catch (IllegalConfigurationException e)
- {
- assertEquals("The model version '" + incompatibleVersion
- + "' in configuration is incompatible with the broker model version '" + Model.MODEL_VERSION + "'", e.getMessage());
- }
- }
- }
-
-
- public void testModelVersionValidationForIncompatibleMinorVersion() throws Exception
- {
- Map<String, Object> brokerAttributes = new HashMap<String, Object>();
- String incompatibleVersion = Model.MODEL_MAJOR_VERSION + "." + Integer.MAX_VALUE;
- brokerAttributes.put(Broker.MODEL_VERSION, incompatibleVersion);
- when(_brokerEntry.getAttributes()).thenReturn(brokerAttributes);
-
- try
- {
- _brokerRecoverer.create(null, _brokerEntry);
- fail("The broker creation should fail due to unsupported model version");
- }
- catch (IllegalConfigurationException e)
- {
- assertEquals("The model version '" + incompatibleVersion
- + "' in configuration is incompatible with the broker model version '" + Model.MODEL_VERSION + "'", e.getMessage());
- }
- }
-
- public void testIncorrectModelVersion() throws Exception
- {
- Map<String, Object> brokerAttributes = new HashMap<String, Object>();
- String[] versions = { Integer.MAX_VALUE + "_" + 0, "", null };
- for (String modelVersion : versions)
- {
- brokerAttributes.put(Broker.MODEL_VERSION, modelVersion);
- when(_brokerEntry.getAttributes()).thenReturn(brokerAttributes);
-
- try
- {
- _brokerRecoverer.create(null, _brokerEntry);
- fail("The broker creation should fail due to unsupported model version");
- }
- catch (IllegalConfigurationException e)
- {
- // pass
- }
- }
- }
-
- private String convertToString(Object attributeValue)
- {
- return String.valueOf(attributeValue);
- }
-
- private RecovererProvider createRecoveryProvider(final ConfigurationEntry[] entries, final ConfiguredObject[] objectsToRecoverer)
- {
- RecovererProvider recovererProvider = new RecovererProvider()
- {
- @Override
- public ConfiguredObjectRecoverer<? extends ConfiguredObject> getRecoverer(String type)
- {
- @SuppressWarnings({ "unchecked", "rawtypes" })
- final ConfiguredObjectRecoverer<? extends ConfiguredObject> recovever = new ConfiguredObjectRecoverer()
- {
- @Override
- public ConfiguredObject create(RecovererProvider recovererProvider, ConfigurationEntry entry, ConfiguredObject... parents)
- {
- for (int i = 0; i < entries.length; i++)
- {
- ConfigurationEntry e = entries[i];
- if (entry == e)
- {
- return objectsToRecoverer[i];
- }
- }
- return null;
- }
- };
-
- return recovever;
- }
- };
- return recovererProvider;
- }
-}