This is an automated email from the ASF dual-hosted git repository.
fjtiradosarti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-kogito-apps.git
The following commit(s) were added to refs/heads/main by this push:
new b59c762b8 [apache/incubator-kie-issues#1457] Allow grouping of events
(#2093)
b59c762b8 is described below
commit b59c762b8d565c73ce0a72db364cff538a302f31
Author: Francisco Javier Tirado Sarti
<[email protected]>
AuthorDate: Fri Oct 4 17:44:41 2024 +0200
[apache/incubator-kie-issues#1457] Allow grouping of events (#2093)
* Add unit tests
* [Fix apache/incubator-kie-issues#1457] Grouping of events 2nd approach
* Add integration tests
* [Fix apache/incubator-kie-issues#1457] Grouping of event serialization
* [Fix apache/incubator-kie-issues#1457] DataAudit serialization
* Update
data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingConsumerIT.java
Co-authored-by: Gonzalo Muñoz <[email protected]>
Update
data-index/data-index-service/data-index-service-postgresql/src/test/java/org/kie/kogito/index/service/messaging/PostgreSqlMessagingKafkaConsumerIT.java
Co-authored-by: Gonzalo Muñoz <[email protected]>
Update
data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingConsumerIT.java
Co-authored-by: Gonzalo Muñoz <[email protected]>
Update
data-index/data-index-service/data-index-service-postgresql/src/test/java/org/kie/kogito/index/service/messaging/PostgreSqlMessagingKafkaConsumerIT.java
Co-authored-by: Gonzalo Muñoz <[email protected]>
Fix to run collections tests for all
* [Fix apache/incubator-kie-issues#1457] Converter deserialization
* [Fix apache/incubator-kie-issues#1457] Converter deserialization right
---------
Co-authored-by: gmunozfe <[email protected]>
---
.../JsonProcessInstanceDataEventDeserializer.java | 3 +
.../JsonUserTaskInstanceDataEventDeserializer.java | 3 +
.../app/audit/api/DataAuditStoreProxyService.java | 34 ++--
.../JsonProcessInstanceDataEventDeserializer.java | 3 +
.../JsonUserTaskInstanceDataEventDeserializer.java | 5 +-
.../kie/kogito/index/service/IndexingService.java | 21 +++
.../messaging/KogitoIndexEventConverter.java | 34 +++-
.../messaging/AbstractMessagingConsumerIT.java | 65 ++++++++
.../messaging/AbstractMessagingHttpConsumerIT.java | 27 ++++
.../AbstractMessagingKafkaConsumerIT.java | 34 ++++
.../BlockingMessagingEventConsumerTest.java | 171 +++++++++++++++++++++
.../resources/process_definition_11_event.json | 162 +++++++++++++++++++
.../src/test/resources/application.properties | 12 ++
13 files changed, 557 insertions(+), 17 deletions(-)
diff --git
a/data-audit/data-audit-common-service/src/main/java/org/kie/kogito/app/audit/json/JsonProcessInstanceDataEventDeserializer.java
b/data-audit/data-audit-common-service/src/main/java/org/kie/kogito/app/audit/json/JsonProcessInstanceDataEventDeserializer.java
index a5801a763..de164e6ff 100644
---
a/data-audit/data-audit-common-service/src/main/java/org/kie/kogito/app/audit/json/JsonProcessInstanceDataEventDeserializer.java
+++
b/data-audit/data-audit-common-service/src/main/java/org/kie/kogito/app/audit/json/JsonProcessInstanceDataEventDeserializer.java
@@ -20,6 +20,7 @@ package org.kie.kogito.app.audit.json;
import java.io.IOException;
+import org.kie.kogito.event.process.MultipleProcessInstanceDataEvent;
import org.kie.kogito.event.process.ProcessInstanceDataEvent;
import org.kie.kogito.event.process.ProcessInstanceErrorDataEvent;
import org.kie.kogito.event.process.ProcessInstanceNodeDataEvent;
@@ -57,6 +58,8 @@ public class JsonProcessInstanceDataEventDeserializer extends
StdDeserializer<Pr
String type = node.get("type").asText();
switch (type) {
+ case MultipleProcessInstanceDataEvent.TYPE:
+ return jp.getCodec().treeToValue(node,
MultipleProcessInstanceDataEvent.class);
case "ProcessInstanceErrorDataEvent":
return (ProcessInstanceDataEvent<?>)
jp.getCodec().treeToValue(node, ProcessInstanceErrorDataEvent.class);
case "ProcessInstanceNodeDataEvent":
diff --git
a/data-audit/data-audit-common-service/src/main/java/org/kie/kogito/app/audit/json/JsonUserTaskInstanceDataEventDeserializer.java
b/data-audit/data-audit-common-service/src/main/java/org/kie/kogito/app/audit/json/JsonUserTaskInstanceDataEventDeserializer.java
index e9d57f86c..32e53e4f9 100644
---
a/data-audit/data-audit-common-service/src/main/java/org/kie/kogito/app/audit/json/JsonUserTaskInstanceDataEventDeserializer.java
+++
b/data-audit/data-audit-common-service/src/main/java/org/kie/kogito/app/audit/json/JsonUserTaskInstanceDataEventDeserializer.java
@@ -20,6 +20,7 @@ package org.kie.kogito.app.audit.json;
import java.io.IOException;
+import org.kie.kogito.event.usertask.MultipleUserTaskInstanceDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceAssignmentDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceAttachmentDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceCommentDataEvent;
@@ -58,6 +59,8 @@ public class JsonUserTaskInstanceDataEventDeserializer
extends StdDeserializer<U
String type = node.get("type").asText();
switch (type) {
+ case MultipleUserTaskInstanceDataEvent.TYPE:
+ return jp.getCodec().treeToValue(node,
MultipleUserTaskInstanceDataEvent.class);
case "UserTaskInstanceAssignmentDataEvent":
return (UserTaskInstanceDataEvent<?>)
jp.getCodec().treeToValue(node, UserTaskInstanceAssignmentDataEvent.class);
case "UserTaskInstanceAttachmentDataEvent":
diff --git
a/data-audit/data-audit-common/src/main/java/org/kie/kogito/app/audit/api/DataAuditStoreProxyService.java
b/data-audit/data-audit-common/src/main/java/org/kie/kogito/app/audit/api/DataAuditStoreProxyService.java
index 8d844d0a0..a945d8410 100644
---
a/data-audit/data-audit-common/src/main/java/org/kie/kogito/app/audit/api/DataAuditStoreProxyService.java
+++
b/data-audit/data-audit-common/src/main/java/org/kie/kogito/app/audit/api/DataAuditStoreProxyService.java
@@ -23,12 +23,14 @@ import java.util.ServiceLoader;
import org.kie.kogito.app.audit.spi.DataAuditStore;
import org.kie.kogito.event.job.JobInstanceDataEvent;
+import org.kie.kogito.event.process.MultipleProcessInstanceDataEvent;
import org.kie.kogito.event.process.ProcessInstanceDataEvent;
import org.kie.kogito.event.process.ProcessInstanceErrorDataEvent;
import org.kie.kogito.event.process.ProcessInstanceNodeDataEvent;
import org.kie.kogito.event.process.ProcessInstanceSLADataEvent;
import org.kie.kogito.event.process.ProcessInstanceStateDataEvent;
import org.kie.kogito.event.process.ProcessInstanceVariableDataEvent;
+import org.kie.kogito.event.usertask.MultipleUserTaskInstanceDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceAssignmentDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceAttachmentDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceCommentDataEvent;
@@ -52,23 +54,29 @@ public class DataAuditStoreProxyService {
}
public void storeProcessInstanceDataEvent(DataAuditContext context,
ProcessInstanceDataEvent<?> event) {
-
- typeCheckOf(ProcessInstanceErrorDataEvent.class).ifType(context,
event, auditStoreService::storeProcessInstanceDataEvent);
- typeCheckOf(ProcessInstanceNodeDataEvent.class).ifType(context, event,
auditStoreService::storeProcessInstanceDataEvent);
- typeCheckOf(ProcessInstanceSLADataEvent.class).ifType(context, event,
auditStoreService::storeProcessInstanceDataEvent);
- typeCheckOf(ProcessInstanceStateDataEvent.class).ifType(context,
event, auditStoreService::storeProcessInstanceDataEvent);
- typeCheckOf(ProcessInstanceVariableDataEvent.class).ifType(context,
event, auditStoreService::storeProcessInstanceDataEvent);
+ if (event instanceof MultipleProcessInstanceDataEvent) {
+ ((MultipleProcessInstanceDataEvent) event).getData().forEach(e ->
storeProcessInstanceDataEvent(context, e));
+ } else {
+ typeCheckOf(ProcessInstanceErrorDataEvent.class).ifType(context,
event, auditStoreService::storeProcessInstanceDataEvent);
+ typeCheckOf(ProcessInstanceNodeDataEvent.class).ifType(context,
event, auditStoreService::storeProcessInstanceDataEvent);
+ typeCheckOf(ProcessInstanceSLADataEvent.class).ifType(context,
event, auditStoreService::storeProcessInstanceDataEvent);
+ typeCheckOf(ProcessInstanceStateDataEvent.class).ifType(context,
event, auditStoreService::storeProcessInstanceDataEvent);
+
typeCheckOf(ProcessInstanceVariableDataEvent.class).ifType(context, event,
auditStoreService::storeProcessInstanceDataEvent);
+ }
}
public void storeUserTaskInstanceDataEvent(DataAuditContext context,
UserTaskInstanceDataEvent<?> event) {
-
- typeCheckOf(UserTaskInstanceAssignmentDataEvent.class).ifType(context,
event, auditStoreService::storeUserTaskInstanceDataEvent);
- typeCheckOf(UserTaskInstanceAttachmentDataEvent.class).ifType(context,
event, auditStoreService::storeUserTaskInstanceDataEvent);
- typeCheckOf(UserTaskInstanceCommentDataEvent.class).ifType(context,
event, auditStoreService::storeUserTaskInstanceDataEvent);
- typeCheckOf(UserTaskInstanceDeadlineDataEvent.class).ifType(context,
event, auditStoreService::storeUserTaskInstanceDataEvent);
- typeCheckOf(UserTaskInstanceStateDataEvent.class).ifType(context,
event, auditStoreService::storeUserTaskInstanceDataEvent);
- typeCheckOf(UserTaskInstanceVariableDataEvent.class).ifType(context,
event, auditStoreService::storeUserTaskInstanceDataEvent);
+ if (event instanceof MultipleUserTaskInstanceDataEvent) {
+ ((MultipleUserTaskInstanceDataEvent) event).getData().forEach(e ->
storeUserTaskInstanceDataEvent(context, e));
+ } else {
+
typeCheckOf(UserTaskInstanceAssignmentDataEvent.class).ifType(context, event,
auditStoreService::storeUserTaskInstanceDataEvent);
+
typeCheckOf(UserTaskInstanceAttachmentDataEvent.class).ifType(context, event,
auditStoreService::storeUserTaskInstanceDataEvent);
+
typeCheckOf(UserTaskInstanceCommentDataEvent.class).ifType(context, event,
auditStoreService::storeUserTaskInstanceDataEvent);
+
typeCheckOf(UserTaskInstanceDeadlineDataEvent.class).ifType(context, event,
auditStoreService::storeUserTaskInstanceDataEvent);
+ typeCheckOf(UserTaskInstanceStateDataEvent.class).ifType(context,
event, auditStoreService::storeUserTaskInstanceDataEvent);
+
typeCheckOf(UserTaskInstanceVariableDataEvent.class).ifType(context, event,
auditStoreService::storeUserTaskInstanceDataEvent);
+ }
}
diff --git
a/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonProcessInstanceDataEventDeserializer.java
b/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonProcessInstanceDataEventDeserializer.java
index e60b3e468..261bcc408 100644
---
a/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonProcessInstanceDataEventDeserializer.java
+++
b/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonProcessInstanceDataEventDeserializer.java
@@ -20,6 +20,7 @@ package org.kie.kogito.index.json;
import java.io.IOException;
+import org.kie.kogito.event.process.MultipleProcessInstanceDataEvent;
import org.kie.kogito.event.process.ProcessInstanceDataEvent;
import org.kie.kogito.event.process.ProcessInstanceErrorDataEvent;
import org.kie.kogito.event.process.ProcessInstanceNodeDataEvent;
@@ -57,6 +58,8 @@ public class JsonProcessInstanceDataEventDeserializer extends
StdDeserializer<Pr
String type = node.get("type").asText();
switch (type) {
+ case MultipleProcessInstanceDataEvent.TYPE:
+ return jp.getCodec().treeToValue(node,
MultipleProcessInstanceDataEvent.class);
case "ProcessInstanceErrorDataEvent":
return (ProcessInstanceDataEvent<?>)
jp.getCodec().treeToValue(node, ProcessInstanceErrorDataEvent.class);
case "ProcessInstanceNodeDataEvent":
diff --git
a/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonUserTaskInstanceDataEventDeserializer.java
b/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonUserTaskInstanceDataEventDeserializer.java
index 7aa0437f5..3a515a5e8 100644
---
a/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonUserTaskInstanceDataEventDeserializer.java
+++
b/data-index/data-index-common/src/main/java/org/kie/kogito/index/json/JsonUserTaskInstanceDataEventDeserializer.java
@@ -20,6 +20,7 @@ package org.kie.kogito.index.json;
import java.io.IOException;
+import org.kie.kogito.event.usertask.MultipleUserTaskInstanceDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceAssignmentDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceAttachmentDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceCommentDataEvent;
@@ -58,6 +59,8 @@ public class JsonUserTaskInstanceDataEventDeserializer
extends StdDeserializer<U
String type = node.get("type").asText();
switch (type) {
+ case MultipleUserTaskInstanceDataEvent.TYPE:
+ return jp.getCodec().treeToValue(node,
MultipleUserTaskInstanceDataEvent.class);
case "UserTaskInstanceAssignmentDataEvent":
return (UserTaskInstanceDataEvent<?>)
jp.getCodec().treeToValue(node, UserTaskInstanceAssignmentDataEvent.class);
case "UserTaskInstanceAttachmentDataEvent":
@@ -76,4 +79,4 @@ public class JsonUserTaskInstanceDataEventDeserializer
extends StdDeserializer<U
}
}
-}
\ No newline at end of file
+}
diff --git
a/data-index/data-index-common/src/main/java/org/kie/kogito/index/service/IndexingService.java
b/data-index/data-index-common/src/main/java/org/kie/kogito/index/service/IndexingService.java
index 2802fe8f9..f3cd153d5 100644
---
a/data-index/data-index-common/src/main/java/org/kie/kogito/index/service/IndexingService.java
+++
b/data-index/data-index-common/src/main/java/org/kie/kogito/index/service/IndexingService.java
@@ -26,6 +26,7 @@ import java.util.Map;
import java.util.Optional;
import org.eclipse.microprofile.faulttolerance.Retry;
+import org.kie.kogito.event.process.MultipleProcessInstanceDataEvent;
import org.kie.kogito.event.process.ProcessDefinitionDataEvent;
import org.kie.kogito.event.process.ProcessInstanceDataEvent;
import org.kie.kogito.event.process.ProcessInstanceErrorDataEvent;
@@ -33,6 +34,7 @@ import
org.kie.kogito.event.process.ProcessInstanceNodeDataEvent;
import org.kie.kogito.event.process.ProcessInstanceSLADataEvent;
import org.kie.kogito.event.process.ProcessInstanceStateDataEvent;
import org.kie.kogito.event.process.ProcessInstanceVariableDataEvent;
+import org.kie.kogito.event.usertask.MultipleUserTaskInstanceDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceAssignmentDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceAttachmentDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceCommentDataEvent;
@@ -76,6 +78,15 @@ public class IndexingService {
@Retry(maxRetries = 3, delay = 300, jitter = 100, retryOn =
ConcurrentModificationException.class)
public void indexProcessInstanceEvent(ProcessInstanceDataEvent<?> event) {
ProcessInstanceStorage storage = manager.getProcessInstanceStorage();
+ if (event instanceof MultipleProcessInstanceDataEvent) {
+ for (ProcessInstanceDataEvent<?> item :
((MultipleProcessInstanceDataEvent) event).getData())
+ indexProccessInstanceEvent(storage, item);
+ } else {
+ indexProccessInstanceEvent(storage, event);
+ }
+ }
+
+ private void indexProccessInstanceEvent(ProcessInstanceStorage storage,
ProcessInstanceDataEvent<?> event) {
if (event instanceof ProcessInstanceErrorDataEvent) {
storage.indexError((ProcessInstanceErrorDataEvent) event);
} else if (event instanceof ProcessInstanceNodeDataEvent) {
@@ -100,6 +111,16 @@ public class IndexingService {
@Retry(maxRetries = 3, delay = 300, jitter = 100, retryOn =
ConcurrentModificationException.class)
public <T> void indexUserTaskInstanceEvent(UserTaskInstanceDataEvent<T>
event) {
UserTaskInstanceStorage storage = manager.getUserTaskInstanceStorage();
+ if (event instanceof MultipleUserTaskInstanceDataEvent) {
+ for (UserTaskInstanceDataEvent<?> item :
((MultipleUserTaskInstanceDataEvent) event).getData()) {
+ indexUserTaskInstanceEvent(storage, item);
+ }
+ } else {
+ indexUserTaskInstanceEvent(storage, event);
+ }
+ }
+
+ private void indexUserTaskInstanceEvent(UserTaskInstanceStorage storage,
UserTaskInstanceDataEvent<?> event) {
if (event instanceof UserTaskInstanceAssignmentDataEvent) {
storage.indexAssignment((UserTaskInstanceAssignmentDataEvent)
event);
} else if (event instanceof UserTaskInstanceAttachmentDataEvent) {
diff --git
a/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/messaging/KogitoIndexEventConverter.java
b/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/messaging/KogitoIndexEventConverter.java
index 430ecee79..cef45271e 100644
---
a/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/messaging/KogitoIndexEventConverter.java
+++
b/data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/messaging/KogitoIndexEventConverter.java
@@ -20,11 +20,13 @@ package org.kie.kogito.index.service.messaging;
import java.io.IOException;
import java.lang.reflect.Type;
+import java.util.Collection;
import java.util.function.Supplier;
import org.eclipse.microprofile.reactive.messaging.Message;
import org.kie.kogito.event.AbstractDataEvent;
import org.kie.kogito.event.DataEvent;
+import org.kie.kogito.event.process.MultipleProcessInstanceDataEvent;
import org.kie.kogito.event.process.ProcessDefinitionDataEvent;
import org.kie.kogito.event.process.ProcessDefinitionEventBody;
import org.kie.kogito.event.process.ProcessInstanceDataEvent;
@@ -38,6 +40,7 @@ import
org.kie.kogito.event.process.ProcessInstanceStateDataEvent;
import org.kie.kogito.event.process.ProcessInstanceStateEventBody;
import org.kie.kogito.event.process.ProcessInstanceVariableDataEvent;
import org.kie.kogito.event.process.ProcessInstanceVariableEventBody;
+import org.kie.kogito.event.usertask.MultipleUserTaskInstanceDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceAssignmentDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceAssignmentEventBody;
import org.kie.kogito.event.usertask.UserTaskInstanceAttachmentDataEvent;
@@ -57,6 +60,7 @@ import org.kie.kogito.index.service.DataIndexServiceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.cloudevents.CloudEvent;
@@ -81,6 +85,11 @@ public class KogitoIndexEventConverter implements
MessageConverter {
ObjectMapper objectMapper;
+ @Override
+ public int getPriority() {
+ return CONVERTER_DEFAULT_PRIORITY - 2;
+ }
+
@Override
public boolean canConvert(Message<?> message, Type type) {
return isIndexable(type) &&
@@ -139,6 +148,9 @@ public class KogitoIndexEventConverter implements
MessageConverter {
private DataEvent<?> buildProcessInstanceDataEventVariant(CloudEvent
cloudEvent) throws IOException {
switch (cloudEvent.getType()) {
+ case MultipleProcessInstanceDataEvent.TYPE:
+ return buildDataEvent(cloudEvent, objectMapper,
MultipleProcessInstanceDataEvent::new, new
TypeReference<Collection<ProcessInstanceDataEvent<?>>>() {
+ });
case "ProcessInstanceErrorDataEvent":
return buildDataEvent(cloudEvent, objectMapper,
ProcessInstanceErrorDataEvent::new, ProcessInstanceErrorEventBody.class);
case "ProcessInstanceNodeDataEvent":
@@ -156,6 +168,9 @@ public class KogitoIndexEventConverter implements
MessageConverter {
private DataEvent<?> buildUserTaskInstanceDataEvent(CloudEvent cloudEvent)
throws IOException {
switch (cloudEvent.getType()) {
+ case MultipleUserTaskInstanceDataEvent.TYPE:
+ return buildDataEvent(cloudEvent, objectMapper,
MultipleUserTaskInstanceDataEvent::new, new
TypeReference<Collection<UserTaskInstanceDataEvent<?>>>() {
+ });
case "UserTaskInstanceAssignmentDataEvent":
return buildDataEvent(cloudEvent, objectMapper,
UserTaskInstanceAssignmentDataEvent::new,
UserTaskInstanceAssignmentEventBody.class);
case "UserTaskInstanceAttachmentDataEvent":
@@ -188,16 +203,29 @@ public class KogitoIndexEventConverter implements
MessageConverter {
return jobCloudEvent;
}
+ private static <E extends AbstractDataEvent<T>, T> E
buildDataEvent(CloudEvent cloudEvent, ObjectMapper objectMapper, Supplier<E>
supplier, TypeReference<T> typeReference) throws IOException {
+ E dataEvent = buildEvent(cloudEvent, objectMapper, supplier);
+ if (cloudEvent.getData() != null) {
+
dataEvent.setData(objectMapper.readValue(cloudEvent.getData().toBytes(),
typeReference));
+ }
+ return dataEvent;
+ }
+
private static <E extends AbstractDataEvent<T>, T> E
buildDataEvent(CloudEvent cloudEvent, ObjectMapper objectMapper, Supplier<E>
supplier, Class<T> clazz) throws IOException {
- E dataEvent = supplier.get();
- applyCloudEventAttributes(cloudEvent, dataEvent);
- applyExtensions(cloudEvent, dataEvent);
+ E dataEvent = buildEvent(cloudEvent, objectMapper, supplier);
if (cloudEvent.getData() != null) {
dataEvent.setData(objectMapper.readValue(cloudEvent.getData().toBytes(),
clazz));
}
return dataEvent;
}
+ private static <E extends AbstractDataEvent<?>> E buildEvent(CloudEvent
cloudEvent, ObjectMapper objectMapper, Supplier<E> supplier) throws IOException
{
+ E dataEvent = supplier.get();
+ applyCloudEventAttributes(cloudEvent, dataEvent);
+ applyExtensions(cloudEvent, dataEvent);
+ return dataEvent;
+ }
+
private static void applyCloudEventAttributes(CloudEvent cloudEvent,
AbstractDataEvent<?> dataEvent) {
dataEvent.setSpecVersion(cloudEvent.getSpecVersion());
dataEvent.setId(cloudEvent.getId());
diff --git
a/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingConsumerIT.java
b/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingConsumerIT.java
index e98b15302..fee277a1c 100644
---
a/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingConsumerIT.java
+++
b/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingConsumerIT.java
@@ -121,6 +121,66 @@ public abstract class AbstractMessagingConsumerIT {
.body("data.Jobs[0].id", is(jobId)));
}
+ @Test
+ void testProcessInstanceEventCollection() throws Exception {
+ sendProcessInstanceEventCollection();
+
+ String processInstanceId1 = "processId-UUID1";
+ String processInstanceId2 = "processId-UUID2";
+
+ await()
+ .atMost(timeout)
+ .untilAsserted(() -> given().contentType(ContentType.JSON)
+ .body("{ \"query\" : \"{ ProcessInstances { id, state
} }\" }")
+ .when().post("/graphql")
+ .then().log().ifValidationFails().statusCode(200)
+ .body("data.ProcessInstances.size()", is(2))
+ .body("data.ProcessInstances[0].id",
is(processInstanceId1))
+ .body("data.ProcessInstances[0].state", is("ACTIVE"))
+ .body("data.ProcessInstances[1].id",
is(processInstanceId2))
+ .body("data.ProcessInstances[1].state", is("ACTIVE")));
+
+ }
+
+ @Test
+ void testUserTaskInstanceEventCollection() throws Exception {
+ sendUserTaskInstanceEventCollection();
+
+ String taskId1 = "taskId-UUID1";
+ String taskId2 = "taskId-UUID2";
+
+ await()
+ .atMost(timeout)
+ .untilAsserted(() -> given().contentType(ContentType.JSON)
+ .body("{ \"query\" : \"{ UserTaskInstances { id, state
} }\" }")
+ .when().post("/graphql")
+ .then().log().ifValidationFails().statusCode(200)
+ .body("data.UserTaskInstances.size()", is(2))
+ .body("data.UserTaskInstances[0].id", is(taskId1))
+ .body("data.UserTaskInstances[0].state",
is("IN_PROGRESS"))
+ .body("data.UserTaskInstances[1].id", is(taskId2))
+ .body("data.UserTaskInstances[1].state",
is("COMPLETED")));
+ }
+
+ @Test
+ void testProcessDefinitionEventCollection() throws Exception {
+ sendProcessDefinitionEventCollection();
+
+ String definitionId = "jsongreet";
+
+ await()
+ .atMost(timeout)
+ .untilAsserted(() -> given().contentType(ContentType.JSON)
+ .body("{ \"query\" : \"{ ProcessDefinitions { id,
version } }\" }")
+ .when().post("/graphql")
+ .then().log().ifValidationFails().statusCode(200)
+ .body("data.ProcessDefinitions.size()", is(2))
+ .body("data.ProcessDefinitions[0].id",
is(definitionId))
+ .body("data.ProcessDefinitions[0].version", is("1.0"))
+ .body("data.ProcessDefinitions[1].id",
is(definitionId))
+ .body("data.ProcessDefinitions[1].version",
is("1.1")));
+ }
+
protected abstract void sendUserTaskInstanceEvent() throws Exception;
protected abstract void sendProcessInstanceEvent() throws Exception;
@@ -129,4 +189,9 @@ public abstract class AbstractMessagingConsumerIT {
protected abstract void sendJobEvent() throws Exception;
+ protected abstract void sendProcessInstanceEventCollection() throws
Exception;
+
+ protected abstract void sendUserTaskInstanceEventCollection() throws
Exception;
+
+ protected abstract void sendProcessDefinitionEventCollection() throws
Exception;
}
diff --git
a/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingHttpConsumerIT.java
b/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingHttpConsumerIT.java
index 711968bc8..d9a1364fc 100644
---
a/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingHttpConsumerIT.java
+++
b/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingHttpConsumerIT.java
@@ -18,8 +18,14 @@
*/
package org.kie.kogito.index.service.messaging;
+import java.net.URI;
+import java.util.Collection;
+import java.util.List;
+
+import org.kie.kogito.event.process.MultipleProcessInstanceDataEvent;
import org.kie.kogito.event.process.ProcessDefinitionDataEvent;
import org.kie.kogito.event.process.ProcessInstanceDataEvent;
+import org.kie.kogito.event.usertask.MultipleUserTaskInstanceDataEvent;
import org.kie.kogito.event.usertask.UserTaskInstanceDataEvent;
import org.kie.kogito.index.event.KogitoJobCloudEvent;
import org.kie.kogito.index.json.JsonUtils;
@@ -69,4 +75,25 @@ public abstract class AbstractMessagingHttpConsumerIT
extends AbstractMessagingC
connector.source(KOGITO_JOBS_EVENTS).send(event);
}
+ protected void sendProcessInstanceEventCollection() throws Exception {
+ Collection<ProcessInstanceDataEvent<?>> events = List.of(
+ getProcessCloudEvent("travels", "processId-UUID1",
ProcessInstanceState.ACTIVE, null, null, null, "user1"),
+ getProcessCloudEvent("travels", "processId-UUID2",
ProcessInstanceState.ACTIVE, null, null, null, "user2"));
+ connector.source(KOGITO_PROCESSINSTANCES_EVENTS).send(new
MultipleProcessInstanceDataEvent(URI.create("test"), events));
+ }
+
+ @Override
+ protected void sendUserTaskInstanceEventCollection() throws Exception {
+ Collection<UserTaskInstanceDataEvent<?>> events = List.of(
+ getUserTaskCloudEvent("taskId-UUID1", "travels",
"processId-UUID1", null, null, "IN_PROGRESS"),
+ getUserTaskCloudEvent("taskId-UUID2", "travels",
"processId-UUID1", null, null, "COMPLETED"));
+ connector.source(KOGITO_USERTASKINSTANCES_EVENTS).send(new
MultipleUserTaskInstanceDataEvent(URI.create("test"), events));
+ }
+
+ @Override
+ protected void sendProcessDefinitionEventCollection() throws Exception {
+
connector.source(KOGITO_PROCESS_DEFINITIONS_EVENTS).send(JsonUtils.getObjectMapper().readValue(readFileContent("process_definition_event.json"),
ProcessDefinitionDataEvent.class));
+
connector.source(KOGITO_PROCESS_DEFINITIONS_EVENTS).send(JsonUtils.getObjectMapper().readValue(readFileContent("process_definition_11_event.json"),
ProcessDefinitionDataEvent.class));
+ }
+
}
diff --git
a/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingKafkaConsumerIT.java
b/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingKafkaConsumerIT.java
index d398caf2e..c8091f1ee 100644
---
a/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingKafkaConsumerIT.java
+++
b/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/AbstractMessagingKafkaConsumerIT.java
@@ -18,9 +18,19 @@
*/
package org.kie.kogito.index.service.messaging;
+import java.net.URI;
+import java.util.Collection;
+import java.util.List;
+
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.kie.kogito.event.process.MultipleProcessInstanceDataEvent;
+import org.kie.kogito.event.process.ProcessInstanceDataEvent;
+import org.kie.kogito.event.usertask.MultipleUserTaskInstanceDataEvent;
+import org.kie.kogito.event.usertask.UserTaskInstanceDataEvent;
+import org.kie.kogito.index.model.ProcessInstanceState;
+import org.kie.kogito.jackson.utils.ObjectMapperFactory;
import org.kie.kogito.test.quarkus.kafka.KafkaTestClient;
import org.kie.kogito.testcontainers.quarkus.KafkaQuarkusTestResource;
@@ -28,6 +38,8 @@ import static
org.kie.kogito.index.service.messaging.ReactiveMessagingEventConsu
import static
org.kie.kogito.index.service.messaging.ReactiveMessagingEventConsumer.KOGITO_PROCESSINSTANCES_EVENTS;
import static
org.kie.kogito.index.service.messaging.ReactiveMessagingEventConsumer.KOGITO_PROCESS_DEFINITIONS_EVENTS;
import static
org.kie.kogito.index.service.messaging.ReactiveMessagingEventConsumer.KOGITO_USERTASKINSTANCES_EVENTS;
+import static org.kie.kogito.index.test.TestUtils.getProcessCloudEvent;
+import static org.kie.kogito.index.test.TestUtils.getUserTaskCloudEvent;
import static org.kie.kogito.index.test.TestUtils.readFileContent;
public abstract class AbstractMessagingKafkaConsumerIT extends
AbstractMessagingConsumerIT {
@@ -67,6 +79,28 @@ public abstract class AbstractMessagingKafkaConsumerIT
extends AbstractMessaging
send("job_event.json", KOGITO_JOBS_EVENTS);
}
+ @Override
+ protected void sendProcessInstanceEventCollection() throws Exception {
+ Collection<ProcessInstanceDataEvent<?>> events = List.of(
+ getProcessCloudEvent("travels", "processId-UUID1",
ProcessInstanceState.ACTIVE, null, null, null, "user1"),
+ getProcessCloudEvent("travels", "processId-UUID2",
ProcessInstanceState.ACTIVE, null, null, null, "user2"));
+ kafkaClient.produce(ObjectMapperFactory.get().writeValueAsString(new
MultipleProcessInstanceDataEvent(URI.create("test"), events)),
KOGITO_PROCESSINSTANCES_EVENTS);
+ }
+
+ @Override
+ protected void sendUserTaskInstanceEventCollection() throws Exception {
+ Collection<UserTaskInstanceDataEvent<?>> events = List.of(
+ getUserTaskCloudEvent("taskId-UUID1", "travels",
"processId-UUID1", null, null, "IN_PROGRESS"),
+ getUserTaskCloudEvent("taskId-UUID2", "travels",
"processId-UUID1", null, null, "COMPLETED"));
+ kafkaClient.produce(ObjectMapperFactory.get().writeValueAsString(new
MultipleUserTaskInstanceDataEvent(URI.create("test"), events)),
KOGITO_USERTASKINSTANCES_EVENTS);
+ }
+
+ @Override
+ protected void sendProcessDefinitionEventCollection() throws Exception {
+ kafkaClient.produce(readFileContent("process_definition_event.json"),
KOGITO_PROCESS_DEFINITIONS_EVENTS);
+
kafkaClient.produce(readFileContent("process_definition_11_event.json"),
KOGITO_PROCESS_DEFINITIONS_EVENTS);
+ }
+
private void send(String file, String topic) throws Exception {
String json = readFileContent(file);
kafkaClient.produce(json, topic);
diff --git
a/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/BlockingMessagingEventConsumerTest.java
b/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/BlockingMessagingEventConsumerTest.java
new file mode 100644
index 000000000..c8ac500d9
--- /dev/null
+++
b/data-index/data-index-service/data-index-service-common/src/test/java/org/kie/kogito/index/service/messaging/BlockingMessagingEventConsumerTest.java
@@ -0,0 +1,171 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.kie.kogito.index.service.messaging;
+
+import java.net.URI;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.kie.kogito.event.DataEvent;
+import org.kie.kogito.event.process.MultipleProcessInstanceDataEvent;
+import org.kie.kogito.event.process.ProcessDefinitionDataEvent;
+import org.kie.kogito.event.process.ProcessInstanceDataEvent;
+import org.kie.kogito.event.usertask.MultipleUserTaskInstanceDataEvent;
+import org.kie.kogito.event.usertask.UserTaskInstanceDataEvent;
+import org.kie.kogito.index.event.KogitoJobCloudEvent;
+import org.kie.kogito.index.model.Job;
+import org.kie.kogito.index.service.IndexingService;
+import org.kie.kogito.index.storage.DataIndexStorageService;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import jakarta.enterprise.event.Event;
+
+import static org.mockito.Mockito.*;
+
+@ExtendWith(MockitoExtension.class)
+@Disabled
+class BlockingMessagingEventConsumerTest {
+
+ @Mock
+ DataIndexStorageService dataIndexStorageService;
+
+ @Mock
+ IndexingService indexingService;
+
+ @Mock
+ Event<DataEvent<?>> eventPublisher;
+
+ @InjectMocks
+ BlockingMessagingEventConsumer consumer;
+
+ @BeforeEach
+ void setUp() {
+ MockitoAnnotations.openMocks(this);
+ }
+
+ @Test
+ void testOnProcessInstanceEvent() {
+ // Arrange
+ ProcessInstanceDataEvent<?> event1 =
mock(ProcessInstanceDataEvent.class);
+ ProcessInstanceDataEvent<?> event2 =
mock(ProcessInstanceDataEvent.class);
+ Collection<ProcessInstanceDataEvent<?>> events = Arrays.asList(event1,
event2);
+ MultipleProcessInstanceDataEvent event = new
MultipleProcessInstanceDataEvent(URI.create("dummy"), events);
+
+ // Act
+ consumer.onProcessInstanceEvent(event);
+
+ // Assert
+ verify(indexingService, times(1)).indexProcessInstanceEvent(event);
+ verify(eventPublisher, times(1)).fire(event);
+ }
+
+ @Test
+ void testOnUserTaskInstanceEvent() {
+ // Arrange
+ UserTaskInstanceDataEvent<?> event1 =
mock(UserTaskInstanceDataEvent.class);
+ UserTaskInstanceDataEvent<?> event2 =
mock(UserTaskInstanceDataEvent.class);
+ Collection<UserTaskInstanceDataEvent<?>> events =
Arrays.asList(event1, event2);
+ MultipleUserTaskInstanceDataEvent event = new
MultipleUserTaskInstanceDataEvent(URI.create("dummy"), events);
+
+ // Act
+ consumer.onUserTaskInstanceEvent(event);
+
+ // Assert
+ verify(indexingService, times(1)).indexUserTaskInstanceEvent(event);
+ verify(eventPublisher, times(1)).fire(event);
+ }
+
+ @Test
+ void testOnJobEvent() {
+ // Arrange
+ KogitoJobCloudEvent event = mock(KogitoJobCloudEvent.class);
+ Job mockJob = mock(Job.class); // Mock the Job object
+ when(event.getData()).thenReturn(mockJob);
+
+ // Act
+ consumer.onJobEvent(event);
+
+ // Assert
+ verify(indexingService, times(1)).indexJob(mockJob); // Perform the
verification after Uni completes
+ }
+
+ @Test
+ void testOnProcessDefinitionDataEvent() {
+ // Arrange
+ ProcessDefinitionDataEvent event1 =
mock(ProcessDefinitionDataEvent.class);
+
+ // Act
+ consumer.onProcessDefinitionDataEvent(event1);
+
+ // Assert
+ verify(indexingService, times(1)).indexProcessDefinition(event1);
+ verify(eventPublisher, times(1)).fire(event1);
+ }
+
+ @Test
+ void testErrorHandlingInOnProcessInstanceEvent() {
+ // Arrange
+ ProcessInstanceDataEvent<?> event =
mock(ProcessInstanceDataEvent.class);
+ Collection<ProcessInstanceDataEvent<?>> events = Arrays.asList(event);
+ doThrow(new RuntimeException("On purpose! Indexing
failed")).when(indexingService).indexProcessInstanceEvent(event);
+
+ // Act
+ consumer.onProcessInstanceEvent(new
MultipleProcessInstanceDataEvent(URI.create("dummy"), events));
+
+ // Assert
+ verify(eventPublisher, never()).fire(event); // Event should not be
published if indexing fails
+ }
+
+ @Test
+ void testErrorHanlingInOnUserTaskInstanceEvent() {
+ // Arrange
+ UserTaskInstanceDataEvent<?> event =
mock(UserTaskInstanceDataEvent.class);
+ Collection<UserTaskInstanceDataEvent<?>> events = Arrays.asList(event);
+ doThrow(new RuntimeException("On purpose! Indexing
failed")).when(indexingService).indexUserTaskInstanceEvent(event);
+
+ // Act
+ consumer.onUserTaskInstanceEvent(new
MultipleUserTaskInstanceDataEvent(URI.create("dummy"), events));
+
+ // Assert
+ verify(eventPublisher, never()).fire(event); // Event should not be
published if indexing fails
+
+ }
+
+ @Test
+ void testErrorHandlingInOnProcessDefinitionDataEvent() {
+ // Arrange
+ ProcessDefinitionDataEvent event =
mock(ProcessDefinitionDataEvent.class);
+ doThrow(new RuntimeException("On purpose! Indexing
failed")).when(indexingService).indexProcessDefinition(event);
+
+ // Act
+ consumer.onProcessDefinitionDataEvent(event);
+
+ // Assert
+ verify(indexingService, times(1)).indexProcessDefinition(event);
+ verify(eventPublisher, never()).fire(event);
+ }
+}
diff --git
a/data-index/data-index-service/data-index-service-common/src/test/resources/process_definition_11_event.json
b/data-index/data-index-service/data-index-service-common/src/test/resources/process_definition_11_event.json
new file mode 100644
index 000000000..7c10ef36a
--- /dev/null
+++
b/data-index/data-index-service/data-index-service-common/src/test/resources/process_definition_11_event.json
@@ -0,0 +1,162 @@
+{
+ "id": "717af02d-645a-4b27-8058-b67ff1fa8edb",
+ "source": "http://localhost:8080/jsongreet",
+ "type": "ProcessDefinitionEvent",
+ "time": "2023-10-19T10:18:01.540311-03:00",
+ "data": {
+ "id": "jsongreet",
+ "name": "Greeting workflow",
+ "description": "JSON based greeting workflow",
+ "version": "1.1",
+ "type": "ProcessDefinitionEvent",
+ "roles": null,
+ "addons": [
+ "source-files",
+ "cloudevents"
+ ],
+ "annotations": [
+ "test2",
+ "test3",
+ "test1"
+ ],
+ "endpoint": "http://localhost:8080/jsongreet",
+ "source": null,
+ "metadata": {
+ "Description": "JSON based greeting workflow",
+ "annotations": [
+ "test1",
+ "test2",
+ "test3"
+ ],
+ "Tags": [
+ "test1",
+ "test2",
+ "test3"
+ ]
+ },
+ "nodes": [
+ {
+ "id": "1",
+ "name": "Start",
+ "type": "INTERNAL",
+ "uniqueId": "_jbpm-unique-12",
+ "metadata": {
+ "UniqueId": "_jbpm-unique-12",
+ "state": "ChooseOnLanguage"
+ }
+ },
+ {
+ "id": "2",
+ "name": "End",
+ "type": "INTERNAL",
+ "uniqueId": "_jbpm-unique-13",
+ "metadata": {
+ "UniqueId": "_jbpm-unique-13",
+ "state": "GreetPerson"
+ }
+ },
+ {
+ "id": "3",
+ "name": "ChooseOnLanguage",
+ "type": "INTERNAL",
+ "uniqueId": "3",
+ "metadata": {
+ "UniqueId": "3",
+ "Variable": "workflowdata",
+ "state": "ChooseOnLanguage",
+ "Default": "3_12"
+ }
+ },
+ {
+ "id": "4",
+ "name": "GreetInEnglish",
+ "type": "INTERNAL",
+ "uniqueId": "_jbpm-unique-15",
+ "metadata": {
+ "UniqueId": "_jbpm-unique-15",
+ "state": "GreetInEnglish"
+ }
+ },
+ {
+ "id": "5",
+ "name": "GreetInSpanish",
+ "type": "INTERNAL",
+ "uniqueId": "_jbpm-unique-16",
+ "metadata": {
+ "UniqueId": "_jbpm-unique-16",
+ "state": "GreetInSpanish"
+ }
+ },
+ {
+ "id": "6",
+ "name": "GreetPerson",
+ "type": "INTERNAL",
+ "uniqueId": "_jbpm-unique-17",
+ "metadata": {
+ "UniqueId": "_jbpm-unique-17",
+ "state": "GreetPerson"
+ }
+ },
+ {
+ "id": "7",
+ "name": "EmbeddedStart",
+ "type": "INTERNAL",
+ "uniqueId": "_jbpm-unique-18",
+ "metadata": {
+ "UniqueId": "_jbpm-unique-18"
+ }
+ },
+ {
+ "id": "9",
+ "name": "greetFunction",
+ "type": "INTERNAL",
+ "uniqueId": "_jbpm-unique-19",
+ "metadata": {
+ "UniqueId": "_jbpm-unique-19",
+ "action": "greetAction",
+ "state": "GreetPerson"
+ }
+ },
+ {
+ "id": "10",
+ "name": "Script",
+ "type": "INTERNAL",
+ "uniqueId": "_jbpm-unique-20",
+ "metadata": {
+ "UniqueId": "_jbpm-unique-20"
+ }
+ },
+ {
+ "id": "11",
+ "name": "EmbeddedEnd",
+ "type": "INTERNAL",
+ "uniqueId": "_jbpm-unique-21",
+ "metadata": {
+ "UniqueId": "_jbpm-unique-21"
+ }
+ },
+ {
+ "id": "12",
+ "name": "Join-GreetInEnglish",
+ "type": "INTERNAL",
+ "uniqueId": "_jbpm-unique-22",
+ "metadata": {
+ "UniqueId": "_jbpm-unique-22",
+ "state": "GreetInEnglish"
+ }
+ },
+ {
+ "id": "13",
+ "name": "Join-GreetPerson",
+ "type": "INTERNAL",
+ "uniqueId": "_jbpm-unique-23",
+ "metadata": {
+ "UniqueId": "_jbpm-unique-23",
+ "state": "GreetPerson"
+ }
+ }
+ ]
+ },
+ "specversion": "1.0",
+ "kogitoprocid": "jsongreet"
+}
\ No newline at end of file
diff --git
a/data-index/data-index-service/data-index-service-postgresql/src/test/resources/application.properties
b/data-index/data-index-service/data-index-service-postgresql/src/test/resources/application.properties
index 9c9f91f71..4911da58f 100644
---
a/data-index/data-index-service/data-index-service-postgresql/src/test/resources/application.properties
+++
b/data-index/data-index-service/data-index-service-postgresql/src/test/resources/application.properties
@@ -17,6 +17,18 @@
# under the License.
#
+quarkus.log.console.enable=true
+quarkus.log.console.level=INFO
+quarkus.log.level=DEBUG
+quarkus.log.category."org.kie.kogito".level=DEBUG
+quarkus.log.category."org.kie.kogito".min-level=DEBUG
+quarkus.log.category."io.vertx".level=DEBUG
+quarkus.log.category."io.restassured".level=DEBUG
+quarkus.log.category."graphql".level=DEBUG
+quarkus.log.category."io.smallrye".level=DEBUG
+
+
+
#Data Index
kogito.apps.persistence.type=postgresql
kogito.data-index.domain-indexing=false
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]