in systests/src/main/java/org/apache/qpid/systest/core/brokerj/SpawnQpidBrokerAdmin.java [290:362]
void createVirtualHost(final String virtualHostNodeName)
{
final String nodeType = getNodeType();
String storeDir = null;
if (System.getProperty("profile", "").startsWith("java-dby-mem"))
{
storeDir = ":memory:";
}
else if (!"Memory".equals(nodeType))
{
storeDir = "${qpid.work_dir}" + File.separator + virtualHostNodeName;
}
String blueprint = System.getProperty(SYSTEST_PROPERTY_VIRTUALHOST_BLUEPRINT);
LOGGER.debug("Creating Virtual host from blueprint: {}", blueprint);
Map<String, Object> attributes = new HashMap<>();
attributes.put("name", virtualHostNodeName);
attributes.put("type", nodeType);
attributes.put("qpid-type", nodeType);
String contextAsString;
try
{
contextAsString =
new ObjectMapper().writeValueAsString(Collections.singletonMap("virtualhostBlueprint", blueprint));
}
catch (JsonProcessingException e)
{
throw new BrokerAdminException("Cannot create virtual host as context serialization failed", e);
}
attributes.put("context", contextAsString);
attributes.put("defaultVirtualHostNode", true);
attributes.put("virtualHostInitialConfiguration", blueprint);
if (storeDir != null)
{
attributes.put("storePath", storeDir);
}
try
{
Connection connection = createManagementConnection();
try
{
connection.start();
final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
try
{
new AmqpManagementFacade().createEntityUsingAmqpManagement(virtualHostNodeName,
BROKER_TYPE_VIRTUAL_HOST_NODE,
attributes,
session);
}
catch (AmqpManagementFacade.OperationUnsuccessfulException e)
{
throw new BrokerAdminException(String.format("Cannot create test virtual host '%s'",
virtualHostNodeName), e);
}
finally
{
session.close();
}
}
finally
{
connection.close();
}
}
catch (JMSException e)
{
throw new BrokerAdminException(String.format("Cannot create virtual host '%s'", virtualHostNodeName), e);
}
}