in artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServer.java [688:988]
void destroyQueue(SimpleString queueName,
SecurityAuth session,
boolean checkConsumerCount,
boolean removeConsumers) throws Exception;
void destroyQueue(SimpleString queueName,
SecurityAuth session,
boolean checkConsumerCount,
boolean removeConsumers,
boolean forceAutoDeleteAddress) throws Exception;
void destroyQueue(SimpleString queueName,
SecurityAuth session,
boolean checkConsumerCount,
boolean removeConsumers,
boolean forceAutoDeleteAddress,
boolean checkMessageCount) throws Exception;
String destroyConnectionWithSessionMetadata(String metaKey, String metaValue) throws Exception;
ScheduledExecutorService getScheduledPool();
ExecutorFactory getExecutorFactory();
ExecutorFactory getIOExecutorFactory();
void setGroupingHandler(GroupingHandler groupingHandler);
GroupingHandler getGroupingHandler();
ReplicationManager getReplicationManager();
FederationManager getFederationManager();
Divert deployDivert(DivertConfiguration config) throws Exception;
Divert updateDivert(DivertConfiguration config) throws Exception;
void destroyDivert(SimpleString name) throws Exception;
ConnectorsService getConnectorsService();
boolean deployBridge(BridgeConfiguration config) throws Exception;
void destroyBridge(String name) throws Exception;
void deployFederation(FederationConfiguration config) throws Exception;
void undeployFederation(String name) throws Exception;
ServerSession getSessionByID(String sessionID);
void threadDump();
void registerBrokerConnection(BrokerConnection brokerConnection);
void startBrokerConnection(String name) throws Exception;
void stopBrokerConnection(String name) throws Exception;
Collection<BrokerConnection> getBrokerConnections();
/**
* return true if there is a binding for this address (i.e. if there is a created queue)
*
* @param address
* @return
*/
boolean isAddressBound(String address) throws Exception;
void fail(boolean failoverOnServerShutdown) throws Exception;
void stop(boolean failoverOnServerShutdown, boolean isExit) throws Exception;
@Deprecated
Queue updateQueue(String name,
RoutingType routingType,
Integer maxConsumers,
Boolean purgeOnNoConsumers) throws Exception;
@Deprecated
Queue updateQueue(String name,
RoutingType routingType,
Integer maxConsumers,
Boolean purgeOnNoConsumers,
Boolean exclusive) throws Exception;
@Deprecated
Queue updateQueue(String name,
RoutingType routingType,
Integer maxConsumers,
Boolean purgeOnNoConsumers,
Boolean exclusive,
String user) throws Exception;
@Deprecated
Queue updateQueue(String name,
RoutingType routingType,
String filterString,
Integer maxConsumers,
Boolean purgeOnNoConsumers,
Boolean exclusive,
Boolean groupRebalance,
Integer groupBuckets,
Boolean nonDestructive,
Integer consumersBeforeDispatch,
Long delayBeforeDispatch,
String user) throws Exception;
@Deprecated
Queue updateQueue(String name,
RoutingType routingType,
String filterString,
Integer maxConsumers,
Boolean purgeOnNoConsumers,
Boolean exclusive,
Boolean groupRebalance,
Integer groupBuckets,
String groupFirstQueue,
Boolean nonDestructive,
Integer consumersBeforeDispatch,
Long delayBeforeDispatch,
String user) throws Exception;
@Deprecated
Queue updateQueue(String name,
RoutingType routingType,
String filterString,
Integer maxConsumers,
Boolean purgeOnNoConsumers,
Boolean exclusive,
Boolean groupRebalance,
Integer groupBuckets,
String groupFirstQueue,
Boolean nonDestructive,
Integer consumersBeforeDispatch,
Long delayBeforeDispatch,
String user,
Long ringSize) throws Exception;
/**
* Update the queue named in the {@code QueueConfiguration} with the corresponding properties. Set only the
* properties that you wish to change from their existing values. Only the following properties can actually be
* updated:
* <p><ul>
* <li>{@code routingType}
* <li>{@code filter}
* <li>{@code maxConsumers}
* <li>{@code purgeOnNoConsumers}
* <li>{@code exclusive}
* <li>{@code nonDestructive}
* <li>{@code groupRebalance}
* <li>{@code groupFirstKey}
* <li>{@code groupBuckets}
* <li>{@code consumersBeforeDispatch}
* <li>{@code delayBeforeDispatch}
* <li>{@code configurationManaged}
* <li>{@code user}
* <li>{@code ringSize}
* </ul>
* The other configuration attributes are immutable and will be ignored if set.
*
* @param queueConfiguration the {@code QueueConfiguration} to use
* @return the updated {@code Queue} instance
* @throws Exception
*/
Queue updateQueue(QueueConfiguration queueConfiguration) throws Exception;
/**
* @param queueConfiguration the {@code QueueConfiguration} to use
* @param forceUpdate If <code>true</code>, no <code>null</code> check is performed and unset queueConfiguration values are reset to <code>null</code>
* @return the updated {@code Queue} instance
* @throws Exception
* @see #updateQueue(QueueConfiguration)
*/
Queue updateQueue(QueueConfiguration queueConfiguration, boolean forceUpdate) throws Exception;
/*
* add a ProtocolManagerFactory to be used. Note if @see Configuration#isResolveProtocols is tur then this factory will
* replace any factories with the same protocol
* */
void addProtocolManagerFactory(ProtocolManagerFactory factory);
/*
* add a ProtocolManagerFactory to be used.
* */
void removeProtocolManagerFactory(ProtocolManagerFactory factory);
ReloadManager getReloadManager();
ActiveMQServer createBackupServer(Configuration configuration);
void addScaledDownNode(SimpleString scaledDownNodeId);
boolean hasScaledDown(SimpleString scaledDownNodeId);
Activation getActivation();
HAPolicy getHAPolicy();
void setHAPolicy(HAPolicy haPolicy);
void setMBeanServer(MBeanServer mBeanServer);
MBeanServer getMBeanServer();
void setSecurityManager(ActiveMQSecurityManager securityManager);
/**
* Adding external components is allowed only if the state
* isn't {@link SERVER_STATE#STOPPED} or {@link SERVER_STATE#STOPPING}.<br>
* It atomically starts the {@code externalComponent} while being added if {@code start == true}.<br>
* This atomicity is necessary to prevent {@link #stop()} to stop the component right after adding it, but before
* starting it.
*
* @throws IllegalStateException if the state is {@link SERVER_STATE#STOPPED} or {@link SERVER_STATE#STOPPING}
*/
void addExternalComponent(ActiveMQComponent externalComponent, boolean start) throws Exception;
List<ActiveMQComponent> getExternalComponents();
boolean addClientConnection(String clientId, boolean unique);
void removeClientConnection(String clientId);
Executor getThreadPool();
AddressInfo getAddressInfo(SimpleString address);
/**
* Updates an {@code AddressInfo} on the broker with the specified routing types.
*
* @param address the name of the {@code AddressInfo} to update
* @param routingTypes the routing types to update the {@code AddressInfo} with
* @return {@code true} if the {@code AddressInfo} was updated, {@code false} otherwise
* @throws Exception
*/
boolean updateAddressInfo(SimpleString address, EnumSet<RoutingType> routingTypes) throws Exception;
@Deprecated
boolean updateAddressInfo(SimpleString address, Collection<RoutingType> routingTypes) throws Exception;
/**
* Add the {@code AddressInfo} to the broker
*
* @param addressInfo the {@code AddressInfo} to add
* @return {@code true} if the {@code AddressInfo} was added, {@code false} otherwise
* @throws Exception
*/
boolean addAddressInfo(AddressInfo addressInfo) throws Exception;
/**
* A convenience method to combine the functionality of {@code addAddressInfo} and {@code updateAddressInfo}. It will
* add the {@code AddressInfo} object to the broker if it doesn't exist or update it if it does.
*
* @param addressInfo the {@code AddressInfo} to add or the info used to update the existing {@code AddressInfo}
* @return the resulting {@code AddressInfo}
* @throws Exception
*/
AddressInfo addOrUpdateAddressInfo(AddressInfo addressInfo) throws Exception;
/**
* Remove an {@code AddressInfo} from the broker.
*
* @param address the {@code AddressInfo} to remove
* @param auth authorization information; {@code null} is valid
* @throws Exception
*/
void removeAddressInfo(SimpleString address, SecurityAuth auth) throws Exception;
/**
* Remove an {@code AddressInfo} from the broker.
*
* @param address the {@code AddressInfo} to remove
* @param auth authorization information; {@code null} is valid
* @throws Exception
*/
void autoRemoveAddressInfo(SimpleString address, SecurityAuth auth) throws Exception;
/**
* Remove an {@code AddressInfo} from the broker.
*
* @param address the {@code AddressInfo} to remove
* @param auth authorization information; {@code null} is valid
* @param force It will disconnect everything from the address including queues and consumers
* @throws Exception
*/
void removeAddressInfo(SimpleString address, SecurityAuth auth, boolean force) throws Exception;
String getInternalNamingPrefix();
double getDiskStoreUsage();
void reloadConfigurationFile() throws Exception;
ConnectionRouterManager getConnectionRouterManager();
String validateUser(String username, String password, RemotingConnection connection, String securityDomain) throws Exception;
default void setProperties(String fileUrltoBrokerProperties) {
}