From 04e07890a4e371dabbb095714727b410103880a7 Mon Sep 17 00:00:00 2001 From: Ruchi Dhamankar Date: Fri, 14 Oct 2022 14:51:34 +0530 Subject: [PATCH] FINERACT-1694-ActiveMQ-failover-transport-support --- .../external/jobs/SendAsynchronousEventsTasklet.java | 10 ++++++++-- .../jobs/SendAsynchronousEventsTaskletTest.java | 3 +++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java index 1dfe90157..30492db6c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java @@ -53,14 +53,20 @@ public class SendAsynchronousEventsTasklet implements Tasklet { @Override public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) { try { - List events = getQueuedEventsBatch(); - processEvents(events); + if (isDownstreamChannelEnabled()) { + List events = getQueuedEventsBatch(); + processEvents(events); + } } catch (Exception e) { log.error("Error occurred while processing events: ", e); } return RepeatStatus.FINISHED; } + private boolean isDownstreamChannelEnabled() { + return fineractProperties.getEvents().getExternal().getProducer().getJms().isEnabled(); + } + private List getQueuedEventsBatch() { int readBatchSize = getBatchSize(); Pageable batchSize = PageRequest.ofSize(readBatchSize); diff --git a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTaskletTest.java b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTaskletTest.java index 7f15b9c2d..3db6b3497 100644 --- a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTaskletTest.java +++ b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTaskletTest.java @@ -89,8 +89,11 @@ class SendAsynchronousEventsTaskletTest { FineractProperties.FineractEventsProperties eventsProperties = new FineractProperties.FineractEventsProperties(); FineractProperties.FineractExternalEventsProperties externalProperties = new FineractProperties.FineractExternalEventsProperties(); FineractProperties.FineractExternalEventsProducerProperties externalEventsProducerProperties = new FineractProperties.FineractExternalEventsProducerProperties(); + FineractProperties.FineractExternalEventsProducerJmsProperties externalEventsProducerJMSProperties = new FineractProperties.FineractExternalEventsProducerJmsProperties(); + externalEventsProducerJMSProperties.setEnabled(true); externalProperties.setEnabled(true); externalEventsProducerProperties.setReadBatchSize(readBatchSize); + externalEventsProducerProperties.setJms(externalEventsProducerJMSProperties); externalProperties.setProducer(externalEventsProducerProperties); eventsProperties.setExternal(externalProperties); when(fineractProperties.getEvents()).thenReturn(eventsProperties);