This closes #2621
This commit is contained in:
commit
6c5e90a49b
|
@ -567,6 +567,47 @@ public interface ActiveMQServerControl {
|
|||
@Parameter(name = "durable", desc = "Is the queue durable?") boolean durable,
|
||||
@Parameter(name = "routingType", desc = "The routing type used for this address, MULTICAST or ANYCAST") String routingType) throws Exception;
|
||||
|
||||
/**
|
||||
* Create a queue.
|
||||
* <br>
|
||||
* If {@code address} is {@code null} it will be defaulted to {@code name}.
|
||||
* <br>
|
||||
* This method throws a {@link org.apache.activemq.artemis.api.core.ActiveMQQueueExistsException}) exception if the queue already exits.
|
||||
*
|
||||
* @param address address to bind the queue to
|
||||
* @param routingType the routing type used for this address, {@code MULTICAST} or {@code ANYCAST}
|
||||
* @param name name of the queue
|
||||
* @param filterStr filter of the queue
|
||||
* @param durable is the queue durable?
|
||||
* @param maxConsumers the maximum number of consumers allowed on this queue at any one time
|
||||
* @param purgeOnNoConsumers delete this queue when the last consumer disconnects
|
||||
* @param exclusive if the queue should route exclusively to one consumer
|
||||
* @param lastValue use last-value semantics
|
||||
* @param consumersBeforeDispatch number of consumers needed before dispatch can start
|
||||
* @param delayBeforeDispatch delay to wait before dispatching if number of consumers before dispatch is not met
|
||||
* @param autoCreateAddress create an address with default values should a matching address not be found
|
||||
* @return a textual summary of the queue
|
||||
* @throws Exception
|
||||
*/
|
||||
@Operation(desc = "Create a queue", impact = MBeanOperationInfo.ACTION)
|
||||
String createQueue(@Parameter(name = "address", desc = "Address of the queue") String address,
|
||||
@Parameter(name = "routingType", desc = "The routing type used for this address, MULTICAST or ANYCAST") String routingType,
|
||||
@Parameter(name = "name", desc = "Name of the queue") String name,
|
||||
@Parameter(name = "filter", desc = "Filter of the queue") String filterStr,
|
||||
@Parameter(name = "durable", desc = "Is the queue durable?") boolean durable,
|
||||
@Parameter(name = "maxConsumers", desc = "The maximum number of consumers allowed on this queue at any one time") int maxConsumers,
|
||||
@Parameter(name = "purgeOnNoConsumers", desc = "Delete this queue when the last consumer disconnects") boolean purgeOnNoConsumers,
|
||||
@Parameter(name = "exclusive", desc = "If the queue should route exclusively to one consumer") boolean exclusive,
|
||||
@Parameter(name = "groupRebalance", desc = "If the queue should rebalance groups when a consumer is added") boolean groupRebalance,
|
||||
@Parameter(name = "groupBuckets", desc = "Number of buckets that should be used for message groups, -1 (default) is unlimited, and groups by raw key instead") int groupBuckets,
|
||||
@Parameter(name = "lastValue", desc = "Use last-value semantics") boolean lastValue,
|
||||
@Parameter(name = "lastValueKey", desc = "Use the specified property key for the last value") String lastValueKey,
|
||||
@Parameter(name = "nonDestructive", desc = "If the queue is non-destructive") boolean nonDestructive,
|
||||
@Parameter(name = "consumersBeforeDispatch", desc = "Number of consumers needed before dispatch can start") int consumersBeforeDispatch,
|
||||
@Parameter(name = "delayBeforeDispatch", desc = "Delay to wait before dispatching if number of consumers before dispatch is not met") long delayBeforeDispatch,
|
||||
@Parameter(name = "autoCreateAddress", desc = "Create an address with default values should a matching address not be found") boolean autoCreateAddress) throws Exception;
|
||||
|
||||
|
||||
/**
|
||||
* Create a queue.
|
||||
* <br>
|
||||
|
|
|
@ -962,6 +962,46 @@ public class ActiveMQServerControlImpl extends AbstractControl implements Active
|
|||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createQueue(String address,
|
||||
String routingType,
|
||||
String name,
|
||||
String filterStr,
|
||||
boolean durable,
|
||||
int maxConsumers,
|
||||
boolean purgeOnNoConsumers,
|
||||
boolean exclusive,
|
||||
boolean groupRebalance,
|
||||
int groupBuckets,
|
||||
boolean lastValue,
|
||||
String lastValueKey,
|
||||
boolean nonDestructive,
|
||||
int consumersBeforeDispatch,
|
||||
long delayBeforeDispatch,
|
||||
boolean autoCreateAddress) throws Exception {
|
||||
AddressSettings addressSettings = server.getAddressSettingsRepository().getMatch(address == null ? name : address);
|
||||
return createQueue(
|
||||
address,
|
||||
routingType,
|
||||
name,
|
||||
filterStr,
|
||||
durable,
|
||||
maxConsumers,
|
||||
purgeOnNoConsumers,
|
||||
exclusive,
|
||||
groupRebalance,
|
||||
groupBuckets,
|
||||
lastValue,
|
||||
lastValueKey,
|
||||
nonDestructive,
|
||||
consumersBeforeDispatch,
|
||||
delayBeforeDispatch,
|
||||
addressSettings.isAutoDeleteCreatedQueues(),
|
||||
addressSettings.getAutoDeleteQueuesDelay(),
|
||||
addressSettings.getAutoDeleteQueuesMessageCount(),
|
||||
autoCreateAddress);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createQueue(String address,
|
||||
String routingType,
|
||||
|
|
|
@ -204,6 +204,11 @@ public class ActiveMQServerControlUsingCoreTest extends ActiveMQServerControlTes
|
|||
proxy.invokeOperation("createQueue", address, name, filter, durable, routingType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createQueue(String address, String routingType, String name, String filter, boolean durable, int maxConsumers, boolean purgeOnNoConsumers, boolean exclusive, boolean groupRebalance, int groupBuckets, boolean lastValue, String lastValueKey, boolean nonDestructive, int consumersBeforeDispatch, long delayBeforeDispatch, boolean autoCreateAddress) throws Exception {
|
||||
return (String) proxy.invokeOperation("createQueue", address, routingType, name, filter, durable, maxConsumers, purgeOnNoConsumers, exclusive, groupRebalance, groupBuckets, lastValue, lastValueKey, nonDestructive, consumersBeforeDispatch, delayBeforeDispatch, autoCreateAddress);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createQueue(String address, String routingType, String name, String filter, boolean durable, int maxConsumers, boolean purgeOnNoConsumers, boolean exclusive, boolean groupRebalance, int groupBuckets, boolean lastValue, String lastValueKey, boolean nonDestructive, int consumersBeforeDispatch, long delayBeforeDispatch, boolean autoDelete, long autoDeleteDelay, long autoDeleteMessageCount, boolean autoCreateAddress) throws Exception {
|
||||
return (String) proxy.invokeOperation("createQueue", address, routingType, name, filter, durable, maxConsumers, purgeOnNoConsumers, exclusive, groupRebalance, groupBuckets, lastValue, lastValueKey, nonDestructive, consumersBeforeDispatch, delayBeforeDispatch, autoCreateAddress);
|
||||
|
|
Loading…
Reference in New Issue