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);