Github user mtaylor commented on a diff in the pull request:
https://github.com/apache/activemq-artemis/pull/1759#discussion_r160925550
--- Diff:
artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java
---
@@ -2810,19 +2810,27 @@ public Queue createQueue(final SimpleString address,
final QueueConfig.Builder queueConfigBuilder;
- final SimpleString addressToUse = address == null ? queueName :
address;
+ RoutingType routingTypeToUse = (routingType == null ?
ActiveMQDefaultConfiguration.getDefaultRoutingType() : routingType);
+ SimpleString queueNameToUse = queueName;
+ SimpleString addressToUse = address == null ? queueName : address;
+ if (CompositeAddress.isFullyQualified(address.toString())) {
+ CompositeAddress compositeAddress =
CompositeAddress.getQueueName(address.toString());
+ addressToUse = new SimpleString(compositeAddress.getAddress());
+ queueNameToUse = new
SimpleString(compositeAddress.getQueueName());
+ AddressSettings as =
getAddressSettingsRepository().getMatch(addressToUse.toString());
+ routingTypeToUse = as.getDefaultAddressRoutingType();
--- End diff --
The routing type needs to come from the address. If the address doesn't
exist, then it should be auto-created before the queue is created.
---