private boolean internalAddressInfo(AddressInfo addressInfo, boolean reload) throws Exception { synchronized (addressLock) { if (server.hasBrokerAddressPlugins()) { server.callBrokerAddressPlugins(plugin -> plugin.beforeAddAddress(addressInfo, reload)); } boolean result; if (reload) { result = addressManager.reloadAddressInfo(addressInfo); } else { result = addressManager.addAddressInfo(addressInfo); } // only register address if it is new if (result) { try { if (!addressInfo.isInternal()) { managementService.registerAddress(addressInfo); } if (server.hasBrokerAddressPlugins()) { server.callBrokerAddressPlugins(plugin -> plugin.afterAddAddress(addressInfo, reload)); } } catch (Exception e) { e.printStackTrace(); } } return result; } }
public synchronized void registerQueue(final Queue queue, final AddressInfo addressInfo, final StorageManager storageManager) throws Exception { if (addressInfo.isInternal()) { if (logger.isDebugEnabled()) { logger.debug("won't register internal queue: " + queue); } return; } QueueControlImpl queueControl = new QueueControlImpl(queue, addressInfo.getName().toString(), messagingServer, storageManager, securityStore, addressSettingsRepository); if (messageCounterManager != null) { MessageCounter counter = new MessageCounter(queue.getName().toString(), null, queue, false, queue.isDurableMessage(), messageCounterManager.getMaxDayCount()); queueControl.setMessageCounter(counter); messageCounterManager.registerMessageCounter(queue.getName().toString(), counter); } ObjectName objectName = objectNameBuilder.getQueueObjectName(addressInfo.getName(), queue.getName(), queue.getRoutingType()); registerInJMX(objectName, queueControl); registerInRegistry(ResourceNames.QUEUE + queue.getName(), queueControl); if (logger.isDebugEnabled()) { logger.debug("registered queue " + objectName); } } @Override
final AddressInfo addressInfo = new AddressInfo(addressToUse, rt); addressInfo.setAutoCreated(true); addressInfo.setInternal(addrInfo == null ? false : addrInfo.isInternal()); addAddressInfo(addressInfo); } else if (!info.getRoutingTypes().contains(rt)) { if (addrInfo == null || !addrInfo.isInternal()) { managementService.registerQueue(queue, queue.getAddress(), storageManager);