Class AMQPFederationQueuePolicyManager
- java.lang.Object
-
- org.apache.activemq.artemis.protocol.amqp.federation.internal.FederationQueuePolicyManager
-
- org.apache.activemq.artemis.protocol.amqp.connect.federation.AMQPFederationQueuePolicyManager
-
- All Implemented Interfaces:
ActiveMQServerBasePlugin,ActiveMQServerBindingPlugin,ActiveMQServerConsumerPlugin
public class AMQPFederationQueuePolicyManager extends FederationQueuePolicyManager
The AMQP Federation implementation of an federation queue policy manager.
-
-
Field Summary
Fields Modifier and Type Field Description protected AMQPFederationConsumerConfigurationconfigurationprotected AMQPFederationfederation-
Fields inherited from class org.apache.activemq.artemis.protocol.amqp.federation.internal.FederationQueuePolicyManager
demandTracking, federationConsumerMatcher, policy, server
-
-
Constructor Summary
Constructors Constructor Description AMQPFederationQueuePolicyManager(AMQPFederation federation, FederationReceiveFromQueuePolicy queuePolicy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected FederationConsumerInfocreateConsumerInfo(org.apache.activemq.artemis.core.server.ServerConsumer consumer)Create a newFederationConsumerInfobased on the givenServerConsumerand the configuredFederationReceiveFromQueuePolicy.protected FederationConsumerInternalcreateFederationConsumer(FederationConsumerInfo consumerInfo)Create a newFederationConsumerInternalinstance using the consumer information given.protected booleanisPluginBlockingFederationConsumerCreate(org.apache.activemq.artemis.core.server.Queue queue)Query all registered plugins for this federation instance to determine if any wish to prevent a federation consumer from being created for the given Queue.protected voidsignalAfterCloseFederationConsumer(FederationConsumer consumer)Signal any registered plugins for this federation instance that a remote Queue consumer has now been closed.protected voidsignalAfterCreateFederationConsumer(FederationConsumer consumer)Signal any registered plugins for this federation instance that a remote Queue consumer has been created.protected voidsignalBeforeCloseFederationConsumer(FederationConsumer consumer)Signal any registered plugins for this federation instance that a remote Queue consumer is about to be closed.protected voidsignalBeforeCreateFederationConsumer(FederationConsumerInfo info)Signal any registered plugins for this federation instance that a remote Queue consumer is being created.-
Methods inherited from class org.apache.activemq.artemis.protocol.amqp.federation.internal.FederationQueuePolicyManager
afterCloseConsumer, afterCreateConsumer, afterRemoteQueueAdded, afterRemoveBinding, checkQueueForMatch, createConsumerEntry, createFederationConsumerMatcher, reactIfConsumerMatchesPolicy, scanAllQueueBindings, start, stop, testIfQueueMatchesPolicy, testIfQueueMatchesPolicy
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.activemq.artemis.core.server.plugin.ActiveMQServerBasePlugin
init, registered, setInit, unregistered
-
Methods inherited from interface org.apache.activemq.artemis.core.server.plugin.ActiveMQServerBindingPlugin
afterAddBinding, beforeAddBinding, beforeRemoveBinding
-
Methods inherited from interface org.apache.activemq.artemis.core.server.plugin.ActiveMQServerConsumerPlugin
beforeCloseConsumer, beforeCreateConsumer, beforeCreateConsumer
-
-
-
-
Field Detail
-
federation
protected final AMQPFederation federation
-
configuration
protected final AMQPFederationConsumerConfiguration configuration
-
-
Constructor Detail
-
AMQPFederationQueuePolicyManager
public AMQPFederationQueuePolicyManager(AMQPFederation federation, FederationReceiveFromQueuePolicy queuePolicy) throws ActiveMQException
- Throws:
ActiveMQException
-
-
Method Detail
-
createConsumerInfo
protected FederationConsumerInfo createConsumerInfo(org.apache.activemq.artemis.core.server.ServerConsumer consumer)
Description copied from class:FederationQueuePolicyManagerCreate a newFederationConsumerInfobased on the givenServerConsumerand the configuredFederationReceiveFromQueuePolicy. A subclass must override this method to return a consumer information object with additional data used be that implementation.- Specified by:
createConsumerInfoin classFederationQueuePolicyManager- Parameters:
consumer- TheServerConsumerto use as a basis for the consumer information object.- Returns:
- a new
FederationConsumerInfoinstance based on the server consumer
-
createFederationConsumer
protected FederationConsumerInternal createFederationConsumer(FederationConsumerInfo consumerInfo)
Description copied from class:FederationQueuePolicyManagerCreate a newFederationConsumerInternalinstance using the consumer information given. This is called when local demand for a matched queue requires a new consumer to be created. A subclass must override this to perform the creation of the remote consumer.- Specified by:
createFederationConsumerin classFederationQueuePolicyManager- Parameters:
consumerInfo- TheFederationConsumerInfothat defines the consumer to be created.- Returns:
- a new
FederationConsumerInternalinstance that will reside in this manager.
-
signalBeforeCreateFederationConsumer
protected void signalBeforeCreateFederationConsumer(FederationConsumerInfo info)
Description copied from class:FederationQueuePolicyManagerSignal any registered plugins for this federation instance that a remote Queue consumer is being created.- Specified by:
signalBeforeCreateFederationConsumerin classFederationQueuePolicyManager- Parameters:
info- TheFederationConsumerInfothat describes the remote Queue consumer
-
signalAfterCreateFederationConsumer
protected void signalAfterCreateFederationConsumer(FederationConsumer consumer)
Description copied from class:FederationQueuePolicyManagerSignal any registered plugins for this federation instance that a remote Queue consumer has been created.- Specified by:
signalAfterCreateFederationConsumerin classFederationQueuePolicyManager- Parameters:
consumer- TheFederationConsumerInfothat describes the remote Queue consumer
-
signalBeforeCloseFederationConsumer
protected void signalBeforeCloseFederationConsumer(FederationConsumer consumer)
Description copied from class:FederationQueuePolicyManagerSignal any registered plugins for this federation instance that a remote Queue consumer is about to be closed.- Specified by:
signalBeforeCloseFederationConsumerin classFederationQueuePolicyManager- Parameters:
consumer- TheFederationConsumerthat that is about to be closed.
-
signalAfterCloseFederationConsumer
protected void signalAfterCloseFederationConsumer(FederationConsumer consumer)
Description copied from class:FederationQueuePolicyManagerSignal any registered plugins for this federation instance that a remote Queue consumer has now been closed.- Specified by:
signalAfterCloseFederationConsumerin classFederationQueuePolicyManager- Parameters:
consumer- TheFederationConsumerthat that has been closed.
-
isPluginBlockingFederationConsumerCreate
protected final boolean isPluginBlockingFederationConsumerCreate(org.apache.activemq.artemis.core.server.Queue queue)
Description copied from class:FederationQueuePolicyManagerQuery all registered plugins for this federation instance to determine if any wish to prevent a federation consumer from being created for the given Queue.- Specified by:
isPluginBlockingFederationConsumerCreatein classFederationQueuePolicyManager- Parameters:
queue- TheQueuethat the federation queue manager is attempting to create a remote consumer for.- Returns:
- true if any registered plugin signaled that creation should be suppressed.
-
-