.add("autoCreateQueues", addressSettings.isAutoCreateQueues()) .add("autoDeleteQueues", addressSettings.isAutoDeleteQueues()) .add("autoCreateAddress", addressSettings.isAutoCreateAddresses()) .add("autoDeleteAddress", addressSettings.isAutoDeleteAddresses()) .build()
result.get(AUTO_CREATE_JMS_QUEUES.getName()).set(settings.isAutoCreateJmsQueues()); result.get(AUTO_DELETE_JMS_QUEUES.getName()).set(settings.isAutoDeleteJmsQueues()); result.get(AUTO_CREATE_ADDRESSES.getName()).set(settings.isAutoCreateAddresses()); result.get(AUTO_DELETE_ADDRESSES.getName()).set(settings.isAutoDeleteAddresses()); result.get(AUTO_CREATE_QUEUES.getName()).set(settings.isAutoCreateQueues());
result.get(AUTO_CREATE_JMS_QUEUES.getName()).set(settings.isAutoCreateJmsQueues()); result.get(AUTO_DELETE_JMS_QUEUES.getName()).set(settings.isAutoDeleteJmsQueues()); result.get(AUTO_CREATE_ADDRESSES.getName()).set(settings.isAutoCreateAddresses()); result.get(AUTO_DELETE_ADDRESSES.getName()).set(settings.isAutoDeleteAddresses()); result.get(AUTO_CREATE_QUEUES.getName()).set(settings.isAutoCreateQueues());
@Override public Queue createQueue(final SimpleString address, final RoutingType routingType, final SimpleString queueName, final SimpleString user, final SimpleString filterString, final boolean durable, final boolean temporary) throws Exception { AddressSettings as = getAddressSettingsRepository().getMatch(address == null ? queueName.toString() : address.toString()); return createQueue(address, routingType, queueName, filterString, user, durable, temporary, false, as.getDefaultMaxConsumers(), as.isDefaultPurgeOnNoConsumers(), as.isAutoCreateAddresses()); }
if (addressSettings.isAutoCreateAddresses()) { session.createAddress(simpleQueue, effectiveAddressRoutingType, true); if (addressSettings.isAutoCreateAddresses()) { EnumSet<RoutingType> routingTypes = EnumSet.noneOf(RoutingType.class); for (RoutingType existingRoutingType : addressInfo.getRoutingTypes()) {
if (addressSettings.isAutoCreateAddresses()) { session.createAddress(simpleQueue, effectiveAddressRoutingType, true); if (addressSettings.isAutoCreateAddresses()) { EnumSet<RoutingType> routingTypes = EnumSet.noneOf(RoutingType.class); for (RoutingType existingRoutingType : addressInfo.getRoutingTypes()) {
private synchronized boolean internalCreateQueue(final String queueName, final String jmsQueueName, final String selectorString, final boolean durable, final boolean autoCreated) throws Exception { if (queues.get(queueName) != null) { return false; } else { // Convert from JMS selector to core filter String coreFilterString = null; if (selectorString != null) { coreFilterString = SelectorTranslator.convertToActiveMQFilterString(selectorString); } server.addOrUpdateAddressInfo(new AddressInfo(SimpleString.toSimpleString(queueName)).addRoutingType(RoutingType.ANYCAST)); AddressSettings as = server.getAddressSettingsRepository().getMatch(queueName); server.createQueue(SimpleString.toSimpleString(queueName), RoutingType.ANYCAST, SimpleString.toSimpleString(queueName), SimpleString.toSimpleString(coreFilterString), null, durable, false, true, false, false, as.getDefaultMaxConsumers(), as.isDefaultPurgeOnNoConsumers(), as.isAutoCreateAddresses()); // create the JMS queue with the logical name jmsQueueName and keeps queueName for its *core* queue name queues.put(queueName, ActiveMQDestination.createQueue(queueName, jmsQueueName)); this.recoverregistryBindings(queueName, PersistedType.Queue); return true; } }
@Override public AddressQueryResult addressQuery(SimpleString name) throws Exception { if (name == null) { throw ActiveMQMessageBundle.BUNDLE.queueNameIsNull(); } SimpleString realName = CompositeAddress.extractAddressName(name); AddressSettings addressSettings = getAddressSettingsRepository().getMatch(realName.toString()); boolean autoCreateAddresses = addressSettings.isAutoCreateAddresses(); boolean defaultPurgeOnNoConsumers = addressSettings.isDefaultPurgeOnNoConsumers(); int defaultMaxConsumers = addressSettings.getDefaultMaxConsumers(); AddressInfo addressInfo = postOffice.getAddressInfo(realName); AddressQueryResult response; if (addressInfo != null) { response = new AddressQueryResult(addressInfo.getName(), addressInfo.getRoutingTypes(), addressInfo.getId(), addressInfo.isAutoCreated(), true, autoCreateAddresses, defaultPurgeOnNoConsumers, defaultMaxConsumers); } else { response = new AddressQueryResult(realName, null, -1, false, false, autoCreateAddresses, defaultPurgeOnNoConsumers, defaultMaxConsumers); } return response; }
if (addressSettings.isAutoCreateAddresses()) { try { serverSession.createAddress(address, routingType, true);
if (addressSettings.isAutoCreateAddresses()) { try { serverSession.createAddress(address, routingType, true);
boolean autoCreateAddresses = addressSettings.isAutoCreateAddresses(); boolean defaultPurgeOnNoConsumers = addressSettings.isDefaultPurgeOnNoConsumers(); int defaultMaxConsumers = addressSettings.getDefaultMaxConsumers();
if (as.isAutoCreateAddresses() && server.getAddressInfo(art.getName()) == null) { securityCheck(addressInfo.getName(), name, CheckType.CREATE_ADDRESS, this); Queue queue = server.createQueue(art, unPrefixedName, filterString, SimpleString.toSimpleString(getUsername()), durable, temporary, autoCreated, maxConsumers, purgeOnNoConsumers, exclusive, lastValue, lastValueKey, nonDestructive, consumersBeforeDispatch, delayBeforeDispatch, as.isAutoCreateAddresses());
@Override public String createQueue(String address, String routingType, String name, String filterStr, boolean durable, int maxConsumers, boolean purgeOnNoConsumers, boolean autoCreateAddress) throws Exception { AddressSettings addressSettings = server.getAddressSettingsRepository().getMatch(address == null ? name : address); return createQueue( address, routingType, name, filterStr, durable, maxConsumers, purgeOnNoConsumers, addressSettings.isDefaultExclusiveQueue(), addressSettings.isDefaultLastValueQueue(), addressSettings.getDefaultLastValueKey() == null ? null : addressSettings.getDefaultLastValueKey().toString(), addressSettings.isDefaultNonDestructive(), addressSettings.getDefaultConsumersBeforeDispatch(), addressSettings.getDefaultDelayBeforeDispatch(), autoCreateAddress ); }
} else if (dest.isTopic() && (addressSettings.isAutoCreateAddresses() || dest.isTemporary())) { try { if (internalSession.getAddress(addressInfo.getName()) == null) {
@Test public void testDefaults() { AddressSettings addressSettings = new AddressSettings(); Assert.assertEquals(null, addressSettings.getDeadLetterAddress()); Assert.assertEquals(null, addressSettings.getExpiryAddress()); Assert.assertEquals(AddressSettings.DEFAULT_MAX_DELIVERY_ATTEMPTS, addressSettings.getMaxDeliveryAttempts()); Assert.assertEquals(addressSettings.getMaxSizeBytes(), AddressSettings.DEFAULT_MAX_SIZE_BYTES); Assert.assertEquals(AddressSettings.DEFAULT_PAGE_SIZE, addressSettings.getPageSizeBytes()); Assert.assertEquals(AddressSettings.DEFAULT_MESSAGE_COUNTER_HISTORY_DAY_LIMIT, addressSettings.getMessageCounterHistoryDayLimit()); Assert.assertEquals(AddressSettings.DEFAULT_REDELIVER_DELAY, addressSettings.getRedeliveryDelay()); Assert.assertEquals(AddressSettings.DEFAULT_REDELIVER_MULTIPLIER, addressSettings.getRedeliveryMultiplier(), 0.000001); Assert.assertEquals(AddressSettings.DEFAULT_SLOW_CONSUMER_THRESHOLD, addressSettings.getSlowConsumerThreshold()); Assert.assertEquals(AddressSettings.DEFAULT_SLOW_CONSUMER_CHECK_PERIOD, addressSettings.getSlowConsumerCheckPeriod()); Assert.assertEquals(AddressSettings.DEFAULT_SLOW_CONSUMER_POLICY, addressSettings.getSlowConsumerPolicy()); Assert.assertEquals(AddressSettings.DEFAULT_AUTO_CREATE_JMS_QUEUES, addressSettings.isAutoCreateJmsQueues()); Assert.assertEquals(AddressSettings.DEFAULT_AUTO_DELETE_JMS_QUEUES, addressSettings.isAutoDeleteJmsQueues()); Assert.assertEquals(AddressSettings.DEFAULT_AUTO_CREATE_TOPICS, addressSettings.isAutoCreateJmsTopics()); Assert.assertEquals(AddressSettings.DEFAULT_AUTO_DELETE_TOPICS, addressSettings.isAutoDeleteJmsTopics()); Assert.assertEquals(AddressSettings.DEFAULT_AUTO_CREATE_QUEUES, addressSettings.isAutoCreateQueues()); Assert.assertEquals(AddressSettings.DEFAULT_AUTO_DELETE_QUEUES, addressSettings.isAutoDeleteQueues()); Assert.assertEquals(AddressSettings.DEFAULT_AUTO_CREATE_ADDRESSES, addressSettings.isAutoCreateAddresses()); Assert.assertEquals(AddressSettings.DEFAULT_AUTO_DELETE_ADDRESSES, addressSettings.isAutoDeleteAddresses()); Assert.assertEquals(ActiveMQDefaultConfiguration.getDefaultPurgeOnNoConsumers(), addressSettings.isDefaultPurgeOnNoConsumers()); Assert.assertEquals(ActiveMQDefaultConfiguration.getDefaultMaxQueueConsumers(), addressSettings.getDefaultMaxConsumers()); }