Index
All Classes and Interfaces|All Packages|Constant Field Values
A
- acknowledgeMessageAsHandled(AcknowledgeMessageAsHandled) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- addInterceptor(DurableQueuesInterceptor) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- ALL - Enum constant in enum class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues.IncludeMessages
B
- build() - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueuesBuilder
- builder() - Static method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
C
- consumeFromQueue(ConsumeFromQueue) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- createDefaultObjectMapper() - Static method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
-
Default
ObjectMappersupportingJdk8Module,JavaTimeModule,EssentialTypesJacksonModuleandEssentialsImmutableJacksonModule, which is used together with theJacksonJSONSerializer - createQueuePollingOptimizerFor(ConsumeFromQueue) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
-
Override this method to provide another
QueuePollingOptimizerthan the defaultQueuePollingOptimizer.SimpleQueuePollingOptimizer
Only called if thePostgresqlDurableQueuesis configured with aMultiTableChangeListener
D
- DEAD_LETTER_MESSAGES - Enum constant in enum class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues.IncludeMessages
- DEFAULT_DURABLE_QUEUES_TABLE_NAME - Static variable in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- deleteMessage(DeleteMessage) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- dk.cloudcreate.essentials.components.queue.postgresql - module dk.cloudcreate.essentials.components.queue.postgresql
- dk.cloudcreate.essentials.components.queue.postgresql - package dk.cloudcreate.essentials.components.queue.postgresql
- dk.cloudcreate.essentials.components.queue.postgresql.jdbi - package dk.cloudcreate.essentials.components.queue.postgresql.jdbi
E
- extractDuplicationKey(JsonNode) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.QueueNameDuplicationFilter
-
Extracts the "queue_name" field from the given JSON parameter, if it exists.
ExampleNotification.getParameter()content:
G
- getDeadLetterMessage(GetDeadLetterMessage) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getDeadLetterMessages(GetDeadLetterMessages) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getInterceptors() - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getNextMessageReadyForDelivery(GetNextMessageReadyForDelivery) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getQueuedMessage(GetQueuedMessage) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getQueuedMessageCountsFor(GetQueuedMessageCountsFor) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getQueuedMessages(GetQueuedMessages) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getQueueNameFor(QueueEntryId) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getQueueNames() - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getSharedQueueTableName() - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
-
The name of the shared table where all queue messages are stored
- getTotalDeadLetterMessagesQueuedFor(GetTotalDeadLetterMessagesQueuedFor) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getTotalMessagesQueuedFor(GetTotalMessagesQueuedFor) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getTransactionalMode() - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- getUnitOfWorkFactory() - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
H
- hasMessagesQueuedFor(QueueName) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
I
- isStarted() - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
L
- lastResetStuckMessagesCheckTimestamps - Variable in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
-
Contains the timestamp of the last performed
PostgresqlDurableQueues.resetMessagesStuckBeingDelivered(QueueName)check
Only used ifPostgresqlDurableQueues.transactionalModehas valueTransactionalMode.SingleOperationTransaction
M
- markAsDeadLetterMessage(MarkAsDeadLetterMessage) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
P
- PostgresqlDurableQueueConsumer - Class in dk.cloudcreate.essentials.components.queue.postgresql
- PostgresqlDurableQueueConsumer(ConsumeFromQueue, HandleAwareUnitOfWorkFactory, PostgresqlDurableQueues, Consumer<DurableQueueConsumer>, long, QueuePollingOptimizer) - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueueConsumer
- PostgresqlDurableQueues - Class in dk.cloudcreate.essentials.components.queue.postgresql
-
Postgresql version of the
DurableQueuesconcept.
Works together withUnitOfWorkFactoryin order to support queuing message together with business logic (such as failing to handle an Event, etc.)
Security
DurableQueuesallows the user of the component to override thePostgresqlDurableQueues.getSharedQueueTableName(), which is the name of the table that will contain all messages (across allQueueName's)
Note:
To support customization of storage table name, thesharedQueueTableNamewill be directly used in constructing SQL statements through string concatenation, which exposes the component to SQL injection attacks.
Security Note:
It is the responsibility of the user of this component to sanitize thesharedQueueTableNameto ensure the security of all the SQL statements generated by this component.
ThePostgresqlDurableQueuescomponent will call thePostgresqlUtil.checkIsValidTableOrColumnName(String)method to validate the table name as a first line of defense.
ThePostgresqlUtil.checkIsValidTableOrColumnName(String)provides an initial layer of defense against SQL injection by applying naming conventions intended to reduce the risk of malicious input.
However, Essentials components as well asPostgresqlUtil.checkIsValidTableOrColumnName(String)does not offer exhaustive protection, nor does it assure the complete security of the resulting SQL against SQL injection threats.
The responsibility for implementing protective measures against SQL Injection lies exclusively with the users/developers using the Essentials components and its supporting classes.
Users must ensure thorough sanitization and validation of API input parameters, column, table, and index names.
Insufficient attention to these practices may leave the application vulnerable to SQL injection, potentially endangering the security and integrity of the database.
The responsibility for implementing protective measures against SQL Injection lies exclusively with the users/developers using the Essentials components and its supporting classes.
Users must ensure thorough sanitization and validation of API input parameters, column, table, and index names.
Insufficient attention to these practices may leave the application vulnerable to SQL injection, potentially endangering the security and integrity of the database.
It is highly recommended that thesharedQueueTableNamevalue is only derived from a controlled and trusted source.
To mitigate the risk of SQL injection attacks, external or untrusted inputs should never directly provide thesharedQueueTableNamevalue. - PostgresqlDurableQueues(HandleAwareUnitOfWorkFactory<? extends HandleAwareUnitOfWork>) - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
-
Create
DurableQueueswith sharedQueueTableName: "durable_queues" and the defaultJacksonJSONSerializerusingPostgresqlDurableQueues.createDefaultObjectMapper()configuration - PostgresqlDurableQueues(HandleAwareUnitOfWorkFactory<? extends HandleAwareUnitOfWork>, JSONSerializer) - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
-
Create
DurableQueueswith custom jsonSerializer with sharedQueueTableName: "durable_queues" - PostgresqlDurableQueues(HandleAwareUnitOfWorkFactory<? extends HandleAwareUnitOfWork>, JSONSerializer, String, MultiTableChangeListener<TableChangeNotification>, Function<ConsumeFromQueue, QueuePollingOptimizer>) - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
-
Create
DurableQueueswith custom jsonSerializer and sharedQueueTableName - PostgresqlDurableQueues(HandleAwareUnitOfWorkFactory<? extends HandleAwareUnitOfWork>, JSONSerializer, String, MultiTableChangeListener<TableChangeNotification>, Function<ConsumeFromQueue, QueuePollingOptimizer>, TransactionalMode, Duration) - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
-
Create
DurableQueueswith custom jsonSerializer and sharedQueueTableName - PostgresqlDurableQueues(HandleAwareUnitOfWorkFactory<? extends HandleAwareUnitOfWork>, JSONSerializer, Function<ConsumeFromQueue, QueuePollingOptimizer>) - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
-
Create
DurableQueueswith custom jsonSerializer with sharedQueueTableName: "durable_queues" - PostgresqlDurableQueues(HandleAwareUnitOfWorkFactory<? extends HandleAwareUnitOfWork>, Function<ConsumeFromQueue, QueuePollingOptimizer>) - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
-
Create
DurableQueueswith sharedQueueTableName: "durable_queues" and the defaultJacksonJSONSerializerusingPostgresqlDurableQueues.createDefaultObjectMapper()configuration - PostgresqlDurableQueues.IncludeMessages - Enum Class in dk.cloudcreate.essentials.components.queue.postgresql
- PostgresqlDurableQueues.QueueTableNotification - Class in dk.cloudcreate.essentials.components.queue.postgresql
- PostgresqlDurableQueuesBuilder - Class in dk.cloudcreate.essentials.components.queue.postgresql
-
Security
It is the responsibility of the user of this component to sanitize thePostgresqlDurableQueuesBuilder.setSharedQueueTableName(String)to ensure the security of all the SQL statements generated by this component. - PostgresqlDurableQueuesBuilder() - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueuesBuilder
- purgeQueue(PurgeQueue) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
Q
- queryForMessagesSoonReadyForDelivery(QueueName, Instant, int) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- queryQueuedMessages(QueueName, DurableQueues.QueueingSortOrder, PostgresqlDurableQueues.IncludeMessages, long, long) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- QUEUED_MESSAGES - Enum constant in enum class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues.IncludeMessages
- QueueEntryIdArgumentFactory - Class in dk.cloudcreate.essentials.components.queue.postgresql.jdbi
- QueueEntryIdArgumentFactory() - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.jdbi.QueueEntryIdArgumentFactory
- QueueEntryIdColumnMapper - Class in dk.cloudcreate.essentials.components.queue.postgresql.jdbi
-
QueueEntryIdColumnMapper - QueueEntryIdColumnMapper() - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.jdbi.QueueEntryIdColumnMapper
- queueMessage(QueueMessage) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- queueMessage(QueueName, Message, boolean, Optional<Exception>, Optional<Duration>) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- queueMessageAsDeadLetterMessage(QueueMessageAsDeadLetterMessage) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- queueMessages(QueueMessages) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- QueueNameArgumentFactory - Class in dk.cloudcreate.essentials.components.queue.postgresql.jdbi
- QueueNameArgumentFactory() - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.jdbi.QueueNameArgumentFactory
- QueueNameColumnMapper - Class in dk.cloudcreate.essentials.components.queue.postgresql.jdbi
-
QueueNameColumnMapper - QueueNameColumnMapper() - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.jdbi.QueueNameColumnMapper
- QueueNameDuplicationFilter - Class in dk.cloudcreate.essentials.components.queue.postgresql
-
Custom filter to extract the "queue_name" property from the Postgresql
Notification.getParameter()JSON content.
This filter is useful when dealing with multipleNotification's involving the same queue.
Example: if 100 messages are queued for the sameQueueNamein the sameUnitOfWork, then theMultiTableChangeListenerwill notify thePostgresqlDurableQueueswith 100TableChangeNotification's. - QueueNameDuplicationFilter() - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.QueueNameDuplicationFilter
- QueueTableNotification() - Constructor for class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues.QueueTableNotification
R
- removeInterceptor(DurableQueuesInterceptor) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- resetMessagesStuckBeingDelivered(QueueName) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
-
This operation will scan for messages that has been marked as
QueuedMessage.isBeingDelivered()for longer thanPostgresqlDurableQueues.messageHandlingTimeoutMs
All messages found will haveQueuedMessage.isBeingDelivered()andQueuedMessage.getDeliveryTimestamp()reset
Only relevant for when usingTransactionalMode.SingleOperationTransaction - resurrectDeadLetterMessage(ResurrectDeadLetterMessage) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- retryMessage(RetryMessage) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
S
- setJsonSerializer(JSONSerializer) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueuesBuilder
- setMessageHandlingTimeout(Duration) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueuesBuilder
- setMultiTableChangeListener(MultiTableChangeListener<TableChangeNotification>) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueuesBuilder
- setQueuePollingOptimizerFactory(Function<ConsumeFromQueue, QueuePollingOptimizer>) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueuesBuilder
- setSharedQueueTableName(String) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueuesBuilder
- setTransactionalMode(TransactionalMode) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueuesBuilder
- setUnitOfWorkFactory(HandleAwareUnitOfWorkFactory<? extends HandleAwareUnitOfWork>) - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueuesBuilder
- start() - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
- stop() - Method in class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues
V
- valueOf(String) - Static method in enum class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues.IncludeMessages
-
Returns the enum constant of this class with the specified name.
- values() - Static method in enum class dk.cloudcreate.essentials.components.queue.postgresql.PostgresqlDurableQueues.IncludeMessages
-
Returns an array containing the constants of this enum class, in the order they are declared.
All Classes and Interfaces|All Packages|Constant Field Values