summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2013-04-15 11:29:05 +0000
committerRobert Gemmell <robbie@apache.org>2013-04-15 11:29:05 +0000
commit6d54493be7259eb7b56e6ea376fcb2959030d97d (patch)
tree839a8bf6750d8d87a28ac86a589b30ddde0b7bdc /qpid/java
parent16b1e210141d34ad4ce7b36c723b5ecbce7ea474 (diff)
downloadqpid-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')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java9
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ModelTest.java3
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ProducerFlowControlTest.java3
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java7
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java4
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/BrokerManagementTest.java4
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ConnectionManagementTest.java4
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/LoggingManagementTest.java3
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementActorLoggingTest.java4
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java1
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java3
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/StatisticsTest.java3
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/UserManagementTest.java2
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java1
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java4
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/JMSDestinationTest.java2
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/DynamicQueueExchangeCreateTest.java3
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/utils/JMXTestUtils.java6
-rwxr-xr-xqpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java2
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java31
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());