Class CrudMessageListenerAndDelegationService
java.lang.Object
org.autumnframework.service.rabbit.client.listener.CrudMessageListenerAndDelegationService
-
Constructor Summary
ConstructorsConstructorDescriptionCrudMessageListenerAndDelegationService(com.fasterxml.jackson.databind.ObjectMapper objectMapper, List<CrudQueueListener<?, ?>> crudQueueListeners, List<OnQueueCreateListener<?, ?>> onCreateListeners, List<OnQueueUpdateListener<?, ?>> onUpdateListeners, List<OnQueueDeleteListener<?, ?>> onDeleteListeners) This service is autowired with a list of all the CrudQueueListeners in the spring context. -
Method Summary
Modifier and TypeMethodDescriptionvoiddelegateListToCrudQueueListeners(Class<? extends IdentifiableMessage<?>> aClass, List<IdentifiableMessage<?>> identifiableMessages, BiConsumer<CrudQueueBatchListener, List<IdentifiableMessage<?>>> crudQueueListenerConsumerMethod) voiddelegateListToOnCreateListeners(Class<? extends IdentifiableMessage<?>> aClass, List<IdentifiableMessage<?>> identifiableMessages) voiddelegateListToOnDeleteListeners(Class<? extends IdentifiableMessage<?>> aClass, List<IdentifiableMessage<?>> identifiableMessages) voiddelegateListToOnUpdateListeners(Class<? extends IdentifiableMessage<?>> aClass, List<IdentifiableMessage<?>> identifiableMessages) voiddelegateToCrudQueueListeners(Class<? extends IdentifiableMessage<?>> aClass, IdentifiableMessage<?> identifiableMessage, BiConsumer<CrudQueueListener, IdentifiableMessage> crudQueueListenerConsumerMethod) voiddelegateToOnCreateListeners(Class<? extends IdentifiableMessage<?>> aClass, IdentifiableMessage<?> identifiableMessage) protected voiddelegateToOnDeleteListeners(Class<? extends IdentifiableMessage<?>> aClass, IdentifiableMessage<?> identifiableMessage) protected voiddelegateToOnUpdateListeners(Class<? extends IdentifiableMessage<?>> aClass, IdentifiableMessage<?> identifiableMessage) voidhandleList(List<org.springframework.amqp.core.Message> messages, BiConsumer<Class<? extends IdentifiableMessage<?>>, List<IdentifiableMessage<?>>> msgClassAndMessage)
-
Constructor Details
-
CrudMessageListenerAndDelegationService
@Autowired public CrudMessageListenerAndDelegationService(com.fasterxml.jackson.databind.ObjectMapper objectMapper, List<CrudQueueListener<?, ?>> crudQueueListeners, List<OnQueueCreateListener<?, ?>> onCreateListeners, List<OnQueueUpdateListener<?, ?>> onUpdateListeners, List<OnQueueDeleteListener<?, ?>> onDeleteListeners) This service is autowired with a list of all the CrudQueueListeners in the spring context. It listens to all the crud messages and receives the generic AMPQ Message. When a message is received, it uses the header to retrieve the class type of the message, then matches this against the CrudQueueListener class types. If a match is found, objectMapper is used to create the instance of this class and the matched CrudQueueListener is invoked with the specific message. If no match is found, we just trace log and ignore it. To receive messages, all you have to do is implement CrudQueueListener for your specific class type. No queue configuration or whatsoever required! You can register more than one CrudQueueListener You can now also register: - OnQueueCreateListener - OnQueueCreateListener - OnQueueCreateListener If a message is received, it will be sent to all of the above mentioned queue listeners- Parameters:
objectMapper-crudQueueListeners-onCreateListeners-onUpdateListeners-onDeleteListeners-
-
-
Method Details
-
handleList
public void handleList(List<org.springframework.amqp.core.Message> messages, BiConsumer<Class<? extends IdentifiableMessage<?>>, List<IdentifiableMessage<?>>> msgClassAndMessage) - Parameters:
messages-msgClassAndMessage-
-
delegateToCrudQueueListeners
public void delegateToCrudQueueListeners(Class<? extends IdentifiableMessage<?>> aClass, IdentifiableMessage<?> identifiableMessage, BiConsumer<CrudQueueListener, IdentifiableMessage> crudQueueListenerConsumerMethod) - Parameters:
aClass-identifiableMessage-crudQueueListenerConsumerMethod-
-
delegateListToCrudQueueListeners
public void delegateListToCrudQueueListeners(Class<? extends IdentifiableMessage<?>> aClass, List<IdentifiableMessage<?>> identifiableMessages, BiConsumer<CrudQueueBatchListener, List<IdentifiableMessage<?>>> crudQueueListenerConsumerMethod) - Parameters:
aClass-identifiableMessages-crudQueueListenerConsumerMethod-
-
delegateToOnCreateListeners
public void delegateToOnCreateListeners(Class<? extends IdentifiableMessage<?>> aClass, IdentifiableMessage<?> identifiableMessage) - Parameters:
aClass-identifiableMessage-
-
delegateListToOnCreateListeners
public void delegateListToOnCreateListeners(Class<? extends IdentifiableMessage<?>> aClass, List<IdentifiableMessage<?>> identifiableMessages) - Parameters:
aClass-identifiableMessages-
-
delegateToOnUpdateListeners
protected void delegateToOnUpdateListeners(Class<? extends IdentifiableMessage<?>> aClass, IdentifiableMessage<?> identifiableMessage) -
delegateListToOnUpdateListeners
public void delegateListToOnUpdateListeners(Class<? extends IdentifiableMessage<?>> aClass, List<IdentifiableMessage<?>> identifiableMessages) - Parameters:
aClass-identifiableMessages-
-
delegateToOnDeleteListeners
protected void delegateToOnDeleteListeners(Class<? extends IdentifiableMessage<?>> aClass, IdentifiableMessage<?> identifiableMessage) -
delegateListToOnDeleteListeners
public void delegateListToOnDeleteListeners(Class<? extends IdentifiableMessage<?>> aClass, List<IdentifiableMessage<?>> identifiableMessages) - Parameters:
aClass-identifiableMessages-
-