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 AMQPFederationfederationprotected AMQPSessionContextsession-
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 voidhandlePolicyManagerStarted(FederationReceiveFromQueuePolicy policy)Called on start of the manager before any other actions are taken to allow the subclass time to configure itself and prepare any needed state prior to starting management of federated resources.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 volatile AMQPFederationConsumerConfiguration configuration
-
session
protected volatile AMQPSessionContext session
-
-
Constructor Detail
-
AMQPFederationQueuePolicyManager
public AMQPFederationQueuePolicyManager(AMQPFederation federation, FederationReceiveFromQueuePolicy queuePolicy) throws ActiveMQException
- Throws:
ActiveMQException
-
-
Method Detail
-
handlePolicyManagerStarted
protected void handlePolicyManagerStarted(FederationReceiveFromQueuePolicy policy)
Description copied from class:FederationQueuePolicyManagerCalled on start of the manager before any other actions are taken to allow the subclass time to configure itself and prepare any needed state prior to starting management of federated resources.- Specified by:
handlePolicyManagerStartedin classFederationQueuePolicyManager- Parameters:
policy- The policy configuration for this policy manager.
-
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.
-
-