Class TenantRoutingSequencedDeadLetterQueueRegistry
- All Implemented Interfaces:
MultiTenantAwareComponent,DescribableComponent
- Since:
- 5.4.0
- Author:
- Jan Galinski
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddescribeTo(ComponentDescriptor descriptor) Describe the properties ofthis DescribableComponentwith the givendescriptor.queueFor(String processorName, Configuration configuration, TenantAwareSequencedDeadLetterQueueFactory factory, TenantDescriptor tenant) Returns the queue of the given tenant for the dead-letter queue identified by the supplied processing group, configuration, and delegate factory.registerAndStartTenant(TenantDescriptor tenantDescriptor) Registers the giventenantDescriptoras a known tenant with this multi-tenant aware component.registerTenant(TenantDescriptor tenantDescriptor) Registers the giventenantDescriptoras a known tenant with this multi-tenant aware component.
-
Constructor Details
-
TenantRoutingSequencedDeadLetterQueueRegistry
public TenantRoutingSequencedDeadLetterQueueRegistry()
-
-
Method Details
-
queueFor
public SequencedDeadLetterQueue<EventMessage> queueFor(String processorName, Configuration configuration, TenantAwareSequencedDeadLetterQueueFactory factory, TenantDescriptor tenant) Returns the queue of the given tenant for the dead-letter queue identified by the supplied processing group, configuration, and delegate factory.The queue cache is created lazily and registered with every tenant known to this registry before it is used. Cache creation is synchronized with tenant registration and removal, so a new cache cannot escape a concurrent tenant removal. The tenant-specific lookup itself remains concurrent.
- Parameters:
processorName- the processor owning the queueconfiguration- the configuration passed to the delegate factoryfactory- the factory creating a tenant's underlying queuetenant- the registered tenant whose queue to return- Returns:
- the tenant's queue
-
registerTenant
Description copied from interface:MultiTenantAwareComponentRegisters the giventenantDescriptoras a known tenant with this multi-tenant aware component.The caller must retain the returned
Registrationand cancel it when the tenant is removed, since releasing the component's per-tenant resources rides on that cancellation.- Specified by:
registerTenantin interfaceMultiTenantAwareComponent- Parameters:
tenantDescriptor- TheTenantDescriptorto register with this component.- Returns:
- A
Registrationused to deregister the giventenantDescriptor.
-
registerAndStartTenant
Description copied from interface:MultiTenantAwareComponentRegisters the giventenantDescriptoras a known tenant with this multi-tenant aware component. If applicable, this task will construct a tenant segment and start it.- Specified by:
registerAndStartTenantin interfaceMultiTenantAwareComponent- Parameters:
tenantDescriptor- TheTenantDescriptorto register with this component.- Returns:
- A
Registrationused to deregister the giventenantDescriptor.
-
describeTo
Description copied from interface:DescribableComponentDescribe the properties ofthis DescribableComponentwith the givendescriptor.Components should call the appropriate
describePropertymethods on the descriptor to register their properties. The descriptor is responsible for determining how these properties are formatted and structured in the final output.Best Practices: As a general rule, all relevant fields of a
DescribableComponentimplementation should be described in this method. However, developers have discretion to include only the fields that make sense in the context. Not every field may be meaningful for description purposes, especially internal implementation details. Furthermore, components might want to expose different information based on their current state. The final decision on what properties to include lies with the person implementing thedescribeTomethod, who should focus on providing information that is useful for understanding the component's configuration and state.Example implementation:
public void describeTo(ComponentDescriptor descriptor) { descriptor.describeProperty("name", this.name); descriptor.describeProperty("enabled", this.enabled); descriptor.describeProperty("configuration", this.configuration); // A nested component descriptor.describeProperty("handlers", this.eventHandlers); // A collection }- Specified by:
describeToin interfaceDescribableComponent- Parameters:
descriptor- The component descriptor to describethis DescribableComponentn its properties in.
-