summaryrefslogtreecommitdiff
path: root/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java')
-rw-r--r--java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java51
1 files changed, 50 insertions, 1 deletions
diff --git a/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java b/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java
index c7bcdd2edb..fb254f59ae 100644
--- a/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java
+++ b/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java
@@ -57,6 +57,8 @@ import org.apache.qpid.server.model.Plugin;
import org.apache.qpid.server.model.PreferencesProvider;
import org.apache.qpid.server.model.SystemConfig;
import org.apache.qpid.server.model.UUIDGenerator;
+import org.apache.qpid.server.model.VirtualHostAlias;
+import org.apache.qpid.server.model.VirtualHostNode;
import org.apache.qpid.server.model.adapter.FileBasedGroupProvider;
import org.apache.qpid.server.model.adapter.FileBasedGroupProviderImpl;
import org.apache.qpid.server.plugin.PluggableFactoryLoader;
@@ -254,12 +256,47 @@ public class TestBrokerConfiguration
}
public UUID[] removeObjectConfiguration(final Class<? extends ConfiguredObject> category,
- String name)
+ final String name)
{
final ConfiguredObjectRecord entry = findObject(category, name);
+
if (entry != null)
{
+
+ if(category == VirtualHostNode.class)
+ {
+ final List<ConfiguredObjectRecord> aliasRecords = new ArrayList<>();
+ // remove vhost aliases associated with the vhost
+ final ConfiguredObjectRecordHandler visitor = new ConfiguredObjectRecordHandler()
+ {
+ @Override
+ public void begin()
+ {
+
+ }
+
+ @Override
+ public boolean handle(final ConfiguredObjectRecord record)
+ {
+ if (record.getType().equals(VirtualHostAlias.class.getSimpleName())
+ && name.equals(record.getAttributes().get(ConfiguredObject.NAME)))
+ {
+ aliasRecords.add(record);
+ }
+ return true;
+ }
+
+ @Override
+ public void end()
+ {
+
+ }
+ };
+ _store.visitConfiguredObjectRecords(visitor);
+ _store.remove(aliasRecords.toArray(new ConfiguredObjectRecord[aliasRecords.size()]));
+ }
return _store.remove(entry);
+
}
return null;
}
@@ -271,6 +308,18 @@ public class TestBrokerConfiguration
return id;
}
+ public UUID addObjectConfiguration(final Class<? extends ConfiguredObject> parentCategory, final String parentName,
+ Class<? extends ConfiguredObject> type, Map<String, Object> attributes)
+ {
+ UUID id = UUIDGenerator.generateRandomUUID();
+ ConfiguredObjectRecord entry =
+ new ConfiguredObjectRecordImpl(id, type.getSimpleName(), attributes,
+ Collections.singletonMap(parentCategory.getSimpleName(), findObject(parentCategory,parentName).getId()));
+
+ _store.update(true, entry);
+ return id;
+ }
+
public UUID addJmxManagementConfiguration()
{
Map<String, Object> attributes = new HashMap<String, Object>();