diff --git a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/pom.xml b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/pom.xml
index 969f7751d2e..6d8c61a0854 100644
--- a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/pom.xml
+++ b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/pom.xml
@@ -25,6 +25,20 @@
io.quarkus
quarkus-resteasy-jackson
+
+ io.quarkus
+ quarkus-smallrye-openapi
+
+
+
+ io.quarkiverse.asyncapi
+ quarkus-asyncapi
+
+
+
+ io.quarkus
+ quarkus-smallrye-reactive-messaging-kafka
+
io.grpc
diff --git a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/src/main/resources/specs/asyncAPI.yaml b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/src/main/resources/specs/asyncAPI.yaml
new file mode 100644
index 00000000000..7b39a29ac50
--- /dev/null
+++ b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/src/main/resources/specs/asyncAPI.yaml
@@ -0,0 +1,40 @@
+asyncapi: '2.0.0'
+id: 'oneConsumer'
+info:
+ title: Kafka Application
+ version: '1.0.0'
+ description: Kafka Application
+ license:
+ name: Apache 2.0
+ url: https://www.apache.org/licenses/LICENSE-2.0
+servers:
+ production:
+ url: localhost:9092
+ description: Development server
+ protocol: kafka
+ protocolVersion: '1.0.0'
+channels:
+ wait:
+ description: A message channel
+ subscribe:
+ operationId: wait
+ summary: Get messages
+ message:
+ $ref: '#/components/messages/message'
+ publish:
+ operationId: sendWait
+ summary: Send messages
+ message:
+ $ref: '#/components/messages/message'
+components:
+ messages:
+ message:
+ name: message
+ title: A message
+ summary: A message
+ contentType: application/json
+ payload:
+ $ref: "#/components/schemas/message"
+ schemas:
+ message:
+ type: object
diff --git a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/src/test/java/org/kie/kogito/quarkus/serverless/workflow/deployment/livereload/LiveReloadProcessorTest.java b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/src/test/java/org/kie/kogito/quarkus/serverless/workflow/deployment/livereload/LiveReloadProcessorTest.java
index 32d1ad48896..3544064f624 100644
--- a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/src/test/java/org/kie/kogito/quarkus/serverless/workflow/deployment/livereload/LiveReloadProcessorTest.java
+++ b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/src/test/java/org/kie/kogito/quarkus/serverless/workflow/deployment/livereload/LiveReloadProcessorTest.java
@@ -20,11 +20,13 @@
import java.io.UncheckedIOException;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.util.Collections;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.kie.kogito.test.utils.SocketUtils;
@@ -35,6 +37,7 @@
import io.restassured.http.ContentType;
import static io.restassured.RestAssured.given;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.CoreMatchers.containsString;
public class LiveReloadProcessorTest {
@@ -117,4 +120,31 @@ void testGrpc() throws InterruptedException, IOException {
server.awaitTermination();
}
}
+
+ @Test
+ @Disabled("Disabled until https://issues.redhat.com/browse/KOGITO-9614 is resolved")
+ void testAsyncApi() throws IOException {
+ given()
+ .contentType(ContentType.JSON)
+ .when()
+ .body(Collections.singletonMap("workflowdata", Collections.emptyMap()))
+ .post("/asyncEventPublisher")
+ .then()
+ .statusCode(404);
+
+ try (FileInputStream inputStream = new FileInputStream("src/test/resources/asyncPublisher.sw.json")) {
+ test.addResourceFile("asyncPublisher.sw.json", new String(Objects.requireNonNull(inputStream).readAllBytes()));
+ }
+
+ String id = given()
+ .contentType(ContentType.JSON)
+ .when()
+ .body(Collections.singletonMap("workflowdata", Collections.emptyMap()))
+ .post("/asyncEventPublisher")
+ .then()
+ .statusCode(201)
+ .extract().path("id");
+
+ assertThat(id).isNotBlank();
+ }
}
diff --git a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/src/test/resources/asyncPublisher.sw.json b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/src/test/resources/asyncPublisher.sw.json
new file mode 100644
index 00000000000..92643e41450
--- /dev/null
+++ b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-extension-live-reload-test/src/test/resources/asyncPublisher.sw.json
@@ -0,0 +1,27 @@
+{
+ "id": "asyncEventPublisher",
+ "version": "1.0",
+ "name": "Workflow async consumer test",
+ "description": "An test that verifies an async api spec file with a publish channel is really publishing",
+ "start": "publishEvent",
+ "functions": [
+ {
+ "name": "publishEvent",
+ "type": "asyncapi",
+ "operation": "specs/asyncAPI.yaml#sendWait"
+ }
+ ],
+ "states": [
+ {
+ "name": "publishEvent",
+ "type": "operation",
+ "actions": [
+ {
+ "name": "publishEvent",
+ "functionRef": "publishEvent"
+ }
+ ],
+ "end": true
+ }
+ ]
+}
\ No newline at end of file