diff options
| author | Robert Gemmell <robbie@apache.org> | 2013-04-15 11:29:05 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2013-04-15 11:29:05 +0000 |
| commit | 6d54493be7259eb7b56e6ea376fcb2959030d97d (patch) | |
| tree | 839a8bf6750d8d87a28ac86a589b30ddde0b7bdc /qpid/java | |
| parent | 16b1e210141d34ad4ce7b36c723b5ecbce7ea474 (diff) | |
| download | qpid-python-6d54493be7259eb7b56e6ea376fcb2959030d97d.tar.gz | |
QPID-4390, QPID-4743: generate ID's randomly at startup, for the broker and direct children in the configuration file
makes ID generation behaviour consistent with that for objects added via the management interface
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1467940 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
20 files changed, 66 insertions, 33 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java index ebb009c09c..6ee26c0726 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java @@ -557,14 +557,7 @@ public class MemoryConfigurationEntryStore implements ConfigurationEntryStore UUID id = null; if (idAsString == null) { - if (expectedConfiguredObjectClass == Broker.class) - { - id = UUIDGenerator.generateRandomUUID(); - } - else - { - id = UUIDGenerator.generateBrokerChildUUID(type, name); - } + id = UUIDGenerator.generateRandomUUID(); _generatedObjectIdDuringLoad = true; } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ModelTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ModelTest.java index 782709b24f..41d93b5ca2 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ModelTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ModelTest.java @@ -65,9 +65,10 @@ public class ModelTest extends QpidBrokerTestCase @Override public void setUp() throws Exception { + getBrokerConfiguration().addJmxManagementConfiguration(); + // Create a JMX Helper _jmxUtils = new JMXTestUtils(this); - _jmxUtils.setUp(); super.setUp(); // Open the JMX Connection diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ProducerFlowControlTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ProducerFlowControlTest.java index 13053d02df..8bebcc703d 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ProducerFlowControlTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ProducerFlowControlTest.java @@ -64,8 +64,9 @@ public class ProducerFlowControlTest extends AbstractTestLogging public void setUp() throws Exception { + getBrokerConfiguration().addJmxManagementConfiguration(); + _jmxUtils = new JMXTestUtils(this); - _jmxUtils.setUp(); _jmxUtilConnected=false; super.setUp(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java index 1830040007..e200741161 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java @@ -21,6 +21,7 @@ package org.apache.qpid.server.security.acl; import org.apache.qpid.management.common.mbeans.ServerInformation; import org.apache.qpid.server.security.access.ObjectType; import org.apache.qpid.test.utils.JMXTestUtils; +import org.apache.qpid.test.utils.TestBrokerConfiguration; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; @@ -43,11 +44,15 @@ public class ExternalACLJMXTest extends AbstractACLTestCase @Override public void setUp() throws Exception { + //remove the normal 'test' vhost, we will configure the vhosts below + getBrokerConfiguration(0).removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST); + createTestVirtualHost(0, TEST_VHOST); createTestVirtualHost(0, TEST2_VHOST); + getBrokerConfiguration().addJmxManagementConfiguration(); + _jmx = new JMXTestUtils(this); - _jmx.setUp(); super.setUp(); _jmx.open(); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java index 90c6b12779..711765c159 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java @@ -265,10 +265,10 @@ public class ExternalAuthenticationTest extends QpidBrokerTestCase public void testExternalAuthenticationManagerUsernameAsCN() throws Exception { JMXTestUtils jmxUtils = new JMXTestUtils(this); - jmxUtils.setUp(); setCommonBrokerSSLProperties(true); getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_SSL_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_EXTERNAL_PROVIDER); + getBrokerConfiguration().addJmxManagementConfiguration(); super.setUp(); @@ -299,11 +299,11 @@ public class ExternalAuthenticationTest extends QpidBrokerTestCase public void testExternalAuthenticationManagerUsernameAsDN() throws Exception { JMXTestUtils jmxUtils = new JMXTestUtils(this); - jmxUtils.setUp(); setCommonBrokerSSLProperties(true); getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_SSL_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_EXTERNAL_PROVIDER); getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_EXTERNAL_PROVIDER, ExternalAuthenticationManagerFactory.ATTRIBUTE_USE_FULL_DN, "true"); + getBrokerConfiguration().addJmxManagementConfiguration(); super.setUp(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/BrokerManagementTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/BrokerManagementTest.java index 954208e78e..3f979bea27 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/BrokerManagementTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/BrokerManagementTest.java @@ -40,8 +40,10 @@ public class BrokerManagementTest extends QpidBrokerTestCase public void setUp() throws Exception { + getBrokerConfiguration().addJmxManagementConfiguration(); + _jmxUtils = new JMXTestUtils(this); - _jmxUtils.setUp(); + super.setUp(); _jmxUtils.open(); _managedBroker = _jmxUtils.getManagedBroker(VIRTUAL_HOST); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ConnectionManagementTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ConnectionManagementTest.java index 28d7bf4aed..34b13dfaca 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ConnectionManagementTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ConnectionManagementTest.java @@ -51,8 +51,10 @@ public class ConnectionManagementTest extends QpidBrokerTestCase public void setUp() throws Exception { + getBrokerConfiguration().addJmxManagementConfiguration(); + _jmxUtils = new JMXTestUtils(this); - _jmxUtils.setUp(); // modifies broker config therefore must be done before super.setUp() + super.setUp(); _jmxUtils.open(); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/LoggingManagementTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/LoggingManagementTest.java index 3c3bbdca41..3717c1594d 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/LoggingManagementTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/LoggingManagementTest.java @@ -47,8 +47,9 @@ public class LoggingManagementTest extends QpidBrokerTestCase public void setUp() throws Exception { + getBrokerConfiguration().addJmxManagementConfiguration(); + _jmxUtils = new JMXTestUtils(this); - _jmxUtils.setUp(); // System test normally run with log for4j test config from beneath test-profiles. We need to // copy it as some of our tests write to this file. diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementActorLoggingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementActorLoggingTest.java index 47b38381c5..69e81cf85d 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementActorLoggingTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementActorLoggingTest.java @@ -49,8 +49,10 @@ public class ManagementActorLoggingTest extends AbstractTestLogging @Override public void setUp() throws Exception { + getBrokerConfiguration().addJmxManagementConfiguration(); + _jmxUtils = new JMXTestUtils(this); - _jmxUtils.setUp(); + super.setUp(); _jmxUtils.open(); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java index 4ec38fbe23..7a66fe6a7c 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java @@ -277,7 +277,6 @@ public class ManagementLoggingTest extends AbstractTestLogging List<String> closeResults = null; try { - jmxUtils.setUp(); jmxUtils.open(); openResults = waitAndFindMatches("MNG-1007"); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java index 0d3289d1bd..448886d056 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java @@ -87,8 +87,9 @@ public class QueueManagementTest extends QpidBrokerTestCase public void setUp() throws Exception { + getBrokerConfiguration().addJmxManagementConfiguration(); + _jmxUtils = new JMXTestUtils(this); - _jmxUtils.setUp(); super.setUp(); _sourceQueueName = getTestQueueName() + "_src"; diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/StatisticsTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/StatisticsTest.java index 72fbd65acc..6e4ea13cfc 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/StatisticsTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/StatisticsTest.java @@ -56,8 +56,9 @@ public class StatisticsTest extends QpidBrokerTestCase createTestVirtualHost(0, TEST_VIRTUALHOST1); createTestVirtualHost(0, TEST_VIRTUALHOST2); + getBrokerConfiguration().addJmxManagementConfiguration(); + _jmxUtils = new JMXTestUtils(this, TEST_USER, TEST_PASSWORD); - _jmxUtils.setUp(); super.setUp(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/UserManagementTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/UserManagementTest.java index 7eff1c89ee..9fc92c98a3 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/UserManagementTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/UserManagementTest.java @@ -65,9 +65,9 @@ public class UserManagementTest extends QpidBrokerTestCase newAttributes.put(AuthenticationManagerFactory.ATTRIBUTE_TYPE, getAuthenticationManagerType()); newAttributes.put(AbstractPrincipalDatabaseAuthManagerFactory.ATTRIBUTE_PATH, _passwordFile.getAbsolutePath()); getBrokerConfiguration().setObjectAttributes(TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER, newAttributes); + getBrokerConfiguration().addJmxManagementConfiguration(); _jmxUtils = new JMXTestUtils(this); - _jmxUtils.setUp(); super.setUp(); _jmxUtils.open(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java index f0e4c1d02a..7d4576db06 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java @@ -36,7 +36,6 @@ import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.test.utils.QpidTestCase; import org.apache.qpid.test.utils.TestBrokerConfiguration; -import org.apache.qpid.test.utils.TestSSLConstants; public class BrokerRestTest extends QpidRestTestCase { diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java index 9e15840d1c..e5aacbba4b 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java @@ -50,10 +50,14 @@ public class QpidRestTestCase extends QpidBrokerTestCase // use webadmin account to perform tests getRestTestHelper().setUsernameAndPassword("webadmin", "webadmin"); + //remove the normal 'test' vhost, we will configure the vhosts below + getBrokerConfiguration(0).removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST); + // Set up virtualhost config with queues and bindings to the amq.direct for (String virtualhost : EXPECTED_VIRTUALHOSTS) { createTestVirtualHost(0, virtualhost); + for (String queue : EXPECTED_QUEUES) { setVirtualHostConfigurationProperty("virtualhosts.virtualhost." + virtualhost + ".queues.exchange", "amq.direct"); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/JMSDestinationTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/JMSDestinationTest.java index 3cc15d5e9d..1ee5b997f2 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/JMSDestinationTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/JMSDestinationTest.java @@ -142,7 +142,7 @@ public class JMSDestinationTest extends QpidBrokerTestCase { // Setup JMXUtils JMXTestUtils jmxUtils = new JMXTestUtils(this); - jmxUtils.setUp(); + // Open the JMX Connection jmxUtils.open(); try diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/DynamicQueueExchangeCreateTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/DynamicQueueExchangeCreateTest.java index 4e9477f4b6..734e3f2268 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/DynamicQueueExchangeCreateTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/DynamicQueueExchangeCreateTest.java @@ -42,8 +42,9 @@ public class DynamicQueueExchangeCreateTest extends QpidBrokerTestCase @Override public void setUp() throws Exception { + getBrokerConfiguration().addJmxManagementConfiguration(); + _jmxUtils = new JMXTestUtils(this); - _jmxUtils.setUp(); super.setUp(); _jmxUtils.open(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/JMXTestUtils.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/JMXTestUtils.java index 4004a43fde..b8ca4b3f7f 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/JMXTestUtils.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/JMXTestUtils.java @@ -21,7 +21,6 @@ package org.apache.qpid.test.utils; import junit.framework.TestCase; -import org.apache.commons.configuration.ConfigurationException; import org.apache.qpid.management.common.JMXConnnectionFactory; import org.apache.qpid.management.common.mbeans.LoggingManagement; @@ -75,11 +74,6 @@ public class JMXTestUtils this(test, DEFAULT_USERID, DEFAULT_PASSWORD); } - public void setUp() throws IOException, ConfigurationException, Exception - { - _test.getBrokerConfiguration().addJmxManagementConfiguration(); - } - public void open() throws Exception { open(0); // Zero signifies default broker to QBTC. diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java index ba7fac3312..b005a9748c 100755 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java @@ -849,7 +849,7 @@ public class QpidBrokerTestCase extends QpidTestCase attributes.put(VirtualHost.NAME, virtualHostName); attributes.put(VirtualHost.CONFIG_PATH, System.getProperty("broker.virtualhosts-config")); int port = getPort(brokerPort); - getBrokerConfiguration(port).addHostConfiguration(attributes); + getBrokerConfiguration(port).addVirtualHostConfiguration(attributes); } /** diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java index 44a46fc8b2..6157947a83 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java @@ -21,6 +21,7 @@ package org.apache.qpid.test.utils; import java.io.File; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -29,6 +30,7 @@ import java.util.Set; import java.util.UUID; import org.apache.qpid.server.configuration.ConfigurationEntry; +import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.configuration.store.MemoryConfigurationEntryStore; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.KeyStore; @@ -109,7 +111,7 @@ public class TestBrokerConfiguration public UUID addObjectConfiguration(String name, String type, Map<String, Object> attributes) { - UUID id = UUIDGenerator.generateBrokerChildUUID(type, name); + UUID id = UUIDGenerator.generateRandomUUID(); addObjectConfiguration(id, type, attributes); return id; } @@ -136,7 +138,7 @@ public class TestBrokerConfiguration return addObjectConfiguration(name, Port.class.getSimpleName(), attributes); } - public UUID addHostConfiguration(Map<String, Object> attributes) + public UUID addVirtualHostConfiguration(Map<String, Object> attributes) { String name = (String) attributes.get(VirtualHost.NAME); return addObjectConfiguration(name, VirtualHost.class.getSimpleName(), attributes); @@ -204,6 +206,11 @@ public class TestBrokerConfiguration { ConfigurationEntry entry = new ConfigurationEntry(id, type, attributes, Collections.<UUID> emptySet(), _store); ConfigurationEntry root = _store.getRootEntry(); + + Map<String, Collection<ConfigurationEntry>> children = root.getChildren(); + + verifyChildWithNameDoesNotExist(id, type, attributes, children); + Set<UUID> childrenIds = new HashSet<UUID>(root.getChildrenIds()); childrenIds.add(id); ConfigurationEntry newRoot = new ConfigurationEntry(root.getId(), root.getType(), root.getAttributes(), childrenIds, @@ -211,6 +218,26 @@ public class TestBrokerConfiguration _store.save(newRoot, entry); } + private void verifyChildWithNameDoesNotExist(UUID id, String type, + Map<String, Object> attributes, + Map<String, Collection<ConfigurationEntry>> children) + { + Collection<ConfigurationEntry> childrenOfType = children.get(type); + + if(childrenOfType != null) + { + String name = (String) attributes.get("name"); + for(ConfigurationEntry ce : childrenOfType) + { + Object ceName = ce.getAttributes().get("name"); + if(name.equals(ceName) && !id.equals(ce.getId())) + { + throw new IllegalConfigurationException("A " + type + " with name " + name + " already exists with a different ID"); + } + } + } + } + private boolean setObjectAttribute(ConfigurationEntry entry, String attributeName, Object value) { Map<String, Object> attributes = new HashMap<String, Object>(entry.getAttributes()); |
