This is an automated email from the ASF dual-hosted git repository.
adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 6e86ac853 FINERACT-2081: External event sending enhance findBy query
6e86ac853 is described below
commit 6e86ac853ae53103f44e6f790d29744207368c64
Author: adam.magyari <[email protected]>
AuthorDate: Wed Nov 13 16:21:00 2024 +0100
FINERACT-2081: External event sending enhance findBy query
---
.../event/external/jobs/SendAsynchronousEventsTasklet.java | 2 +-
.../event/external/repository/ExternalEventRepository.java | 2 +-
.../external/jobs/SendAsynchronousEventsTaskletTest.java | 12 ++++++------
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java
index 51ef86d69..1f85185fd 100644
---
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java
+++
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTasklet.java
@@ -83,7 +83,7 @@ public class SendAsynchronousEventsTasklet implements Tasklet
{
private List<ExternalEventView> getQueuedEventsBatch() {
int readBatchSize = getBatchSize();
Pageable batchSize = PageRequest.ofSize(readBatchSize);
- return measure(() ->
repository.findByStatusOrderById(ExternalEventStatus.TO_BE_SENT, batchSize),
+ return measure(() ->
repository.findByStatusOrderByBusinessDateAscIdAsc(ExternalEventStatus.TO_BE_SENT,
batchSize),
(events, timeTaken) -> log.debug("Loaded {} events in {}ms",
events.size(), timeTaken.toMillis()));
}
diff --git
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/repository/ExternalEventRepository.java
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/repository/ExternalEventRepository.java
index 9f7ccbddc..aff28cc74 100644
---
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/repository/ExternalEventRepository.java
+++
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/event/external/repository/ExternalEventRepository.java
@@ -33,7 +33,7 @@ import org.springframework.data.repository.query.Param;
public interface ExternalEventRepository extends JpaRepository<ExternalEvent,
Long>, JpaSpecificationExecutor<ExternalEvent> {
- List<ExternalEventView> findByStatusOrderById(ExternalEventStatus status,
Pageable batchSize);
+ List<ExternalEventView>
findByStatusOrderByBusinessDateAscIdAsc(ExternalEventStatus status, Pageable
batchSize);
@Modifying(flushAutomatically = true)
@Query("delete from ExternalEvent e where e.status = :status and
e.businessDate <= :dateForPurgeCriteria")
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 0caaf3c4e..3bb5cb36b 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
@@ -128,7 +128,7 @@ class SendAsynchronousEventsTaskletTest {
MessageV1 dummyMessage = new MessageV1(1, "aSource", "aType",
"nocategory", "aCreateDate", "aBusinessDate", "aTenantId",
"anidempotencyKey", "aSchema", Mockito.mock(ByteBuffer.class));
- when(repository.findByStatusOrderById(Mockito.any(),
Mockito.any())).thenReturn(events);
+ when(repository.findByStatusOrderByBusinessDateAscIdAsc(Mockito.any(),
Mockito.any())).thenReturn(events);
when(messageFactory.createMessage(Mockito.any())).thenReturn(dummyMessage);
when(byteBufferConverter.convert(Mockito.any(ByteBuffer.class))).thenReturn(new
byte[0]);
// when
@@ -147,7 +147,7 @@ class SendAsynchronousEventsTaskletTest {
createExternalEventView("aType", "aCategory", "aSchema", new
byte[0], "aIdempotencyKey", 1L));
MessageV1 dummyMessage = new MessageV1(1, "aSource", "aType",
"nocategory", "aCreateDate", "aBusinessDate", "aTenantId",
"anidempotencyKey", "aSchema", Mockito.mock(ByteBuffer.class));
- when(repository.findByStatusOrderById(Mockito.any(),
Mockito.any())).thenReturn(events);
+ when(repository.findByStatusOrderByBusinessDateAscIdAsc(Mockito.any(),
Mockito.any())).thenReturn(events);
when(messageFactory.createMessage(Mockito.any())).thenReturn(dummyMessage);
when(byteBufferConverter.convert(Mockito.any(ByteBuffer.class))).thenReturn(new
byte[0]);
doThrow(new AcknowledgementTimeoutException("Event Send Exception",
new RuntimeException())).when(eventProducer)
@@ -166,7 +166,7 @@ class SendAsynchronousEventsTaskletTest {
.asList(createExternalEventView("aType", "aCategory",
"aSchema", new byte[0], "aIdempotencyKey", 1L));
MessageV1 dummyMessage = new MessageV1(1, "aSource", "aType",
"nocategory", "aCreateDate", "aBusinessDate", "aTenantId",
"anidempotencyKey", "aSchema", Mockito.mock(ByteBuffer.class));
- when(repository.findByStatusOrderById(Mockito.any(),
Mockito.any())).thenReturn(events);
+ when(repository.findByStatusOrderByBusinessDateAscIdAsc(Mockito.any(),
Mockito.any())).thenReturn(events);
when(messageFactory.createMessage(Mockito.any())).thenReturn(dummyMessage);
when(byteBufferConverter.convert(Mockito.any(ByteBuffer.class))).thenReturn(new
byte[0]);
// when
@@ -185,7 +185,7 @@ class SendAsynchronousEventsTaskletTest {
.asList(createExternalEventView("aType", "aCategory",
"aSchema", new byte[0], "aIdempotencyKey", null));
MessageV1 dummyMessage = new MessageV1(1, "aSource", "aType",
"nocategory", "aCreateDate", "aBusinessDate", "aTenantId",
"anidempotencyKey", "aSchema", Mockito.mock(ByteBuffer.class));
- when(repository.findByStatusOrderById(Mockito.any(),
Mockito.any())).thenReturn(events);
+ when(repository.findByStatusOrderByBusinessDateAscIdAsc(Mockito.any(),
Mockito.any())).thenReturn(events);
when(messageFactory.createMessage(Mockito.any())).thenReturn(dummyMessage);
byte[] byteMsg = new byte[0];
when(byteBufferConverter.convert(Mockito.any(ByteBuffer.class))).thenReturn(byteMsg);
@@ -202,11 +202,11 @@ class SendAsynchronousEventsTaskletTest {
public void
givenEventBatchSizeIsConfiguredAs10WhenTaskExecutionThenEventReadPageSizeIsCorrect()
{
ArgumentCaptor<Pageable> externalEventPageSizeArgumentCaptor =
ArgumentCaptor.forClass(Pageable.class);
List<ExternalEventView> events = new ArrayList<>();
- when(repository.findByStatusOrderById(Mockito.any(),
Mockito.any())).thenReturn(events);
+ when(repository.findByStatusOrderByBusinessDateAscIdAsc(Mockito.any(),
Mockito.any())).thenReturn(events);
// when
resultStatus = underTest.execute(stepContribution, chunkContext);
// then
- verify(repository).findByStatusOrderById(Mockito.any(),
externalEventPageSizeArgumentCaptor.capture());
+
verify(repository).findByStatusOrderByBusinessDateAscIdAsc(Mockito.any(),
externalEventPageSizeArgumentCaptor.capture());
assertThat(externalEventPageSizeArgumentCaptor.getValue().getPageSize()).isEqualTo(10);
}