Giter Club home page Giter Club logo

apache / incubator-kie-kogito-runtimes Goto Github PK

View Code? Open in Web Editor NEW
491.0 58.0 193.0 287.64 MB

Kogito Runtimes - Kogito is a cloud-native business automation technology for building cloud-ready business applications.

Home Page: http://kogito.kie.org

License: Apache License 2.0

Java 99.46% HTML 0.17% Shell 0.04% Groovy 0.29% Python 0.01% Makefile 0.03%
hacktoberfest rule-engine dmn kogito quarkus cloud-native workflow bpmn bpm workflow-engine

incubator-kie-kogito-runtimes's People

Contributors

baldimir avatar cristianonicolai avatar danielezonca avatar diega avatar elguardian avatar esteban-aliverti avatar etirelli avatar evacchi avatar fjtirado avatar fmeyer avatar ge0ffrey avatar krisv avatar lucamolteni avatar manstis avatar marianmacik avatar mariofusco avatar mbiarnes avatar mdproctor avatar michaelneale avatar mswiderski avatar psiroky avatar radtriste avatar ricardozanini avatar rikkola avatar salaboy avatar sotty avatar tarilabs avatar tiagodolphine avatar tkobayas avatar wlaun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

incubator-kie-kogito-runtimes's Issues

Endpoint trying synchronously return result of instantiated process

Hi
Got simple bpmn like this:
Screenshot 2021-03-18 at 16 21 02
Service task is calling rest service. Why when i'm creating instance , i'm waiting all process to be finished to receive my uuid ? How can i control this behaviour ? I can have multiple sync calling in my process with unknown timeouts, what will happened in this way ?

Return/handle of exception during process execution

Currently, when the reusable subprocess node throws an exception during process execution, it is being captured by kogito and getting logged. The main process instance does not have the handle of the subprocess error and the state remains active. due to this when the REST resource (which starts the main process) skips the checkerror() since the state is active (1) and returns with HTTP response containing process variables instead of exception.

This also makes it impossible to use @controlleradvice to handle the exception and return meaningful response to clients who does not know whether process was success or failed.

This happens when you have re-usable sub process being called from parent process.

How do we stop the process and return the exception or get a handle of that exception to respond to client rather than responding with success.

/nodes management endpoint should provide node configurations

Description

consider:

image

from the process-usertask-quarkus example project.

One of the most common requests for introspection of BPMN is to get XYZ configuration properties for all values in a BPMN. supporting this further enhances the ability of the SVG add-on to apply values on a SVG without having to introspect a BPMN JSON tree.

Currently the nodes being returned a basic. But all of the configuration that was applied could be returned:

Examples:

  1. Async Nodes
  2. Documentation
  3. Conditional Logic
  4. Assignment logic
  5. Tasks that have notification logic
  6. Priority
  7. Multi-instance configs
  8. etc

Implementation ideas

Enhance the Nodes endpoint to provide all of the configurations for each node.

Support Actors for Process Starters

Description

Continuation of https://github.com/kiegroup/kogito-apps/issues/1200

From section 5.3: https://docs.jboss.org/kogito/release/latest/html_single/#proc-bpmn-model-creating_kogito-developing-process-services

image

The ProcessResourceGenerator.java supports the securityRoles. Would you accept a PR for adding Actor support so Process Start security mirrors that of User Task security?

Implementation ideas

The ProcessResourceGenerator and related locations that implement the securityRoles check will have a few lines added to support an actors check so specific users can be supported.

Docs on Public APIs for main Services to inject?

Description

Going through docs, code samples, and some of the management API, i have found the following services that seem to be referenced:

    AppRoot appRoot;
    Processes processes;
    Application application;
    ProcessService processService;
    PredictionService predictionService;
    StraightThroughProcessService straightThroughProcessService;
    RuleUnitService ruleUnitService;
    DecisionService svc;

But cannot find much in way of docs if these are the "main" services / top level APIs to access?

Typical entry points users want are:

  1. Start process instances
  2. Find existing instances, tasks, activities
  3. Navigate a BPMN structure to query for some configuration in the BPMN
  4. Get Data from the index service
  5. Validate a user making the request against the config of the BPMN (does this user have X role, are they one of the users in the actor config of the BPMN user task, etc).

Is there some light list/doc can be provided on this? What is the difference between, AppRoot, Processes, Application, and ProcessService for example.

Docs enhancement for Locking handling

Description

https://docs.jboss.org/kogito/release/1.15.0/html_single/#_enabling_optimistic_locking_with_persistence details that locking is supported, but how is it handled? Coming from Camunda BPM, i am looking for some level of detail similar to: https://docs.camunda.org/manual/latest/user-guide/process-engine/transactions-in-processes/#optimistic-locking / https://docs.camunda.org/manual/latest/user-guide/process-engine/transactions-in-processes/#optimistic-locking-in-camunda where it explains how the locking is handled, if retries are attempted, etc.

Locking is a very common issue in process design and comes up as one of the most common doc references for devs and modellers to understand.

Thanks!

Implementation ideas

No response

Generated Open API has mandatory id fields

The generated Open APIs always has mandatory "id" and "workItemId" fields for GET and POST end points /BPMN-MODEL-NAME. The swagger UI for these end points can be used only by providing dummy values for these fields.

Steps to reproduce:

  1. mvn quarkus:dev the project https://github.com/cristianonicolai/devconfcz-2020/tree/solved
  2. Try to invoke the end point /travels with POST first using Swagger UI. It will force you to feed id and workitemid as these parameters have been marked as required in the generated OpenAPI

Adding kogito-addons-quarkus-persistence-infinispan lead to cannot instantiate the type JsonNode exception

Describe the bug

Hi, there.
Try Kogito. But adding kogito-addons-quarkus-persistence-infinispan dependency to persist lead to next error:

[ERROR] Failed to execute goal io.quarkus.platform:quarkus-maven-plugin:2.6.2.Final:build (default) on project kogito-first-test: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR] 	[error]: Build step org.kie.kogito.quarkus.processes.deployment.ProcessesAssetsProcessor#postGenerationProcessing threw an exception: java.lang.IllegalStateException: src/main/java/org/kie/kogito/app/JsonNodeMessageMarshaller.java (32:1253) : Cannot instantiate the type JsonNode
[ERROR] src/main/java/org/kie/kogito/app/JsonNodeMessageMarshaller.java (32:1253) : Cannot instantiate the type JsonNode

What is wrong? Thanks a lot for any help.

Full content of my pom.xml based on file from code.quarkus.io:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>

    <groupId>ru.company.kogito</groupId>
    <artifactId>kogito-first-test</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <properties>
        <compiler-plugin.version>3.8.1</compiler-plugin.version>
        <maven.compiler.release>11</maven.compiler.release>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
        <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
        <quarkus.platform.version>2.6.2.Final</quarkus.platform.version>
        <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>${quarkus.platform.group-id}</groupId>
                <artifactId>${quarkus.platform.artifact-id}</artifactId>
                <version>${quarkus.platform.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>${quarkus.platform.group-id}</groupId>
                <artifactId>quarkus-kogito-bom</artifactId>
                <version>${quarkus.platform.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy-jackson</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-arc</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-smallrye-openapi</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-smallrye-health</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.kogito</groupId>
            <artifactId>kogito-quarkus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.kie.kogito</groupId>
            <artifactId>kogito-quarkus-decisions</artifactId>
        </dependency>
        <dependency>
            <groupId>org.kie.kogito</groupId>
            <artifactId>kogito-quarkus-serverless-workflow</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.kogito</groupId>
            <artifactId>kogito-addons-quarkus-process-management</artifactId>
        </dependency>

        <!-- ADDING THIS LEAD TO - src/main/java/org/kie/kogito/app/JsonNodeMessageMarshaller.java (32:1253) : Cannot instantiate the type JsonNode -->
        <dependency>
            <groupId>org.kie.kogito</groupId>
            <artifactId>kogito-addons-quarkus-persistence-infinispan</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>${quarkus.platform.group-id}</groupId>
                <artifactId>quarkus-maven-plugin</artifactId>
                <version>${quarkus.platform.version}</version>
                <extensions>true</extensions>
                <executions>
                    <execution>
                        <goals>
                            <goal>build</goal>
                            <goal>generate-code</goal>
                            <goal>generate-code-tests</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${compiler-plugin.version}</version>
                <configuration>
                    <compilerArgs>
                        <arg>-parameters</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire-plugin.version}</version>
                <configuration>
                    <systemPropertyVariables>
                        <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                        <maven.home>${maven.home}</maven.home>
                    </systemPropertyVariables>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>native</id>
            <activation>
                <property>
                    <name>native</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <version>${surefire-plugin.version}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>integration-test</goal>
                                    <goal>verify</goal>
                                </goals>
                                <configuration>
                                    <systemPropertyVariables>
                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
                                        <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                                        <maven.home>${maven.home}</maven.home>
                                    </systemPropertyVariables>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <properties>
                <quarkus.package.type>native</quarkus.package.type>
            </properties>
        </profile>
    </profiles>
</project>

Expected behavior

No response

Actual behavior

No response

How to Reproduce?

No response

Output of uname -a or ver

No response

Output of java -version

No response

GraalVM version (if different from Java)

No response

Kogito version or git rev (or at least Quarkus version if you are using Kogito via Quarkus platform BOM)

No response

Build tool (ie. output of mvnw --version or gradlew --version)

No response

Additional information

No response

AWS Lambda Example

Hello All. Hope everyone is well. Been sometime since my red hat days but excited to be working with this community again.

I'm looking to deploy drools decision tables or drl templates / quarkus to graal native in aws lambda. I looked through the quarkus guide today and all the examples I saw seemed to build a REST API during the quarkus deploy stage using the .bpmn. That makes loads of sense in k8s land and something I would have loved on OpenShift, but not something that works well in aws lambda. Has anyone thought of this use case? If so, is there examples / docs / features that can be linked.

I plan to dig into the kogito quarkus extension tomorrow, and would be willing add a feature here if there is nothing yet. My team worked with Bill Burke on the aws lamba and xray quarkus extensions in the past.

Update: I haven't used https://quarkus.io/guides/amazon-lambda-http before but that maybe a sufficient bridge. Not sure how the extension play together.

Upgrade to Quarkus 2.0.0.CR3

Quarkus 2.0.0.CR3 was released today. Could you please upgrade in Kogito?
We (Camel Quarkus) would very much appreciate a Kogito release based on Quarkus 2.0.0.CR3 to be able to test with Camel Quarkus and even on Quarkus Platform. Is there any hope for it?

Python or Celery or Ansible: Tasks

Hi, I ' m a Security Operation Manager, my team have a lot of ansible playbooks and roles, this roles do almost all things we need to do in our day to day, but now we wanna a step more, create workflows to execute a set of tasks, playbooks or roles.
I ' m a red hat lover, and had thinking to use camunda , jbpm or flowable this one we starting tests, but when I see Kogito I just say it this we need, but we are python and ansible guys.
My question : There a way to use our celery tasks, ansible playbooks or a kind off put this tasks in a rest and call it from kogito?

TEST

This is a test following some recent changes. Please ignore this github issue.

The only change I see is this:

The only change I see is this:

-    <version.io.smallrye.reactive.mutiny-vertx-web-client>2.12.0</version.io.smallrye.reactive.mutiny-vertx-web-client>
+    <version.io.smallrye.reactive.mutiny-vertx-web-client>2.11.0</version.io.smallrye.reactive.mutiny-vertx-web-client>
`` 

This is weird because indeed they are using `2.11.0`: https://github.com/quarkusio/quarkus/blob/2.1.2.Final/bom/application/pom.xml#L56

Maybe I slipped this version naming when I did the dependencies BOM?

_Originally posted by @ricardozanini in https://github.com/kiegroup/kogito-runtimes/issues/1526#issuecomment-897852662_

process-svg-quarkus-addon does not handle default port and ssl properly

https://github.com/kiegroup/kogito-runtimes/blob/741a14640fa11f2ee1d21104ab3e47df8bec4831/addons/process-svg/process-svg-quarkus-addon/src/main/java/org/kie/kogito/svg/dataindex/QuarkusDataIndexClient.java#L70

I confirmed this fix locally

    protected WebClientOptions getWebClientToURLOptions(String targetHttpURL) throws MalformedURLException {
        URL dataIndexURL = new URL(targetHttpURL);
        int port = dataIndexURL.getPort();
        if (port == -1) {
            port = dataIndexURL.getDefaultPort();
        }
        boolean ssl = dataIndexURL.getProtocol().compareToIgnoreCase("https") == 0;
        return new WebClientOptions()
                .setDefaultHost(dataIndexURL.getHost())
                .setDefaultPort(port)
                .setSsl(ssl);
    }

Codegen Message Start Event: Incorrect endpoint generation: endpoint is requiring instance id

Describe the bug

Docs on Message Start Event: https://docs.jboss.org/kogito/release/latest/html_single/#ref-bpmn-start-events_kogito-developing-process-services

Consider a process such as:

image

This configuration is generating endpoints with:
image

Based on how Message Start Events are supposed to be used ("to start process instances"), this generated endpoint is unexpected and appears wrong.

Expected behavior

Would expect a POST endpoint to be generated that sends the message and filtered by the specific application and not the process instance, as there would not no instance (as it is a start event)

Actual behavior

The endpoint is generating the following code:

return processService.signalProcessInstance(process, id, null, "My Signal").orElseThrow(() -> new NotFoundException());

which runs:

    public <T extends MappableToModel<R>, R> Optional<R> signalProcessInstance(Process<T> process, String id, Object data, String signalName) {
        return UnitOfWorkExecutor.executeInUnitOfWork(application.unitOfWorkManager(),
                () -> process.instances().findById(id)
                        .map(pi -> {
                            pi.send(Sig.of(signalName, data));
                            return pi.checkError().variables().toModel();
                        }));
    }

This does not seem to be the intended behaviour given it is a Start Event.

How to Reproduce?

No response

Output of uname -a or ver

No response

Output of java -version

No response

GraalVM version (if different from Java)

No response

Kogito version or git rev (or at least Quarkus version if you are using Kogito via Quarkus platform BOM)

No response

Build tool (ie. output of mvnw --version or gradlew --version)

No response

Additional information

No response

duplicate case value error in getPropertyIndex(String name) method in a class that implements org.drools.model.DomainClassMetadata

We have a domain model with 2 properties. 1 in the base class and the other in the parent class:

public Resource getResource() {

}

and

public boolean isResource() {

}

when Kogito generates the Metadata class that implements org.drools.model.DomainClassMetadata, in the overridden method getPropertyIndex(String name) it generates duplicate case statement for resource property resulting in duplicate case statement compilation error.

Any workaround or fix for this ?

kogito-addons-persistence-jdbc is not compatible with mariadb

There are two sql files in the resources:
kogito-runtimes/addons/common/persistence/jdbc/src/main/resources/sql/

  • create_tables.sql
  • exists_tables.sql

These sql files are written in postgresql syntax.
There is a specific addon for postgresql. The sql files in kogito-addons-persistence-jdbc should be written in standard sql.

case management

Hi Team,
Is kogito supporting or will support case management?

Thanks!

process-svg-quarkus-addon does not send proper json

https://github.com/kiegroup/kogito-runtimes/blob/741a14640fa11f2ee1d21104ab3e47df8bec4831/addons/process-svg/process-svg-quarkus-addon/src/main/java/org/kie/kogito/svg/dataindex/QuarkusDataIndexClient.java#L82

here is the fix

    public List<NodeInstance> getNodeInstancesFromProcessInstance(String processInstanceId) {
        String query = getNodeInstancesQuery(processInstanceId);
        CompletableFuture<List<NodeInstance>> cf = new CompletableFuture<>();
        HttpRequest<Buffer> request = client.post("/graphql").putHeader("Authorization", getToken());
        request.sendJsonObject(JsonObject.mapFrom(singletonMap("query", query)), result -> {
            if (result.succeeded() && result.result().statusCode() == 200) {
                cf.complete(getNodeInstancesFromResponse(result.result().bodyAsJsonObject()));
            } else {
                cf.completeExceptionally(result.cause());
            }
        });
        try {
            return cf.get();
        } catch (Exception e) {
            throw new ProcessSVGException("Exception while trying to get data from Data Index service", e);
        }
    }

kogito-addons-persistence-jdbc is error on 1.12.0.Final with mysql

Hi all:
I get error message when using mysql with kogito-addons-persistence-jdbc.
When that process would be completed, i get error message and the process don't be complete.
Please see the detail and thanks a lot:

2021-10-22 00:28:12.018 ERROR 24026 --- [0.0-8080-exec-3] o.j.w.i.i.WorkflowProcessInstanceImpl : Unexpected error (id 756a2269-13b2-4b2b-900c-374b1e80d80b) while executing node End Event 1 in process instance 657c7680-3dce-4e4a-8caf-3e48a3507ff9

java.lang.IllegalArgumentException: Invalid UUID string:
at java.base/java.util.UUID.fromString(UUID.java:215) ~[na:na]
at org.kie.kogito.persistence.jdbc.JDBCProcessInstances.findById(JDBCProcessInstances.java:119) ~[kogito-addons-persistence-jdbc-1.12.0.Final.jar:1.12.0.Final]
at org.kie.kogito.process.ProcessInstances.findById(ProcessInstances.java:24) ~[kogito-api-1.12.0.Final.jar:1.12.0.Final]
at org.kie.kogito.process.impl.AbstractProcess$CompletionEventListener.signalEvent(AbstractProcess.java:251) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.kie.services.signal.LightSignalManager.lambda$signalEvent$2(LightSignalManager.java:65) ~[kogito-services-1.12.0.Final.jar:1.12.0.Final]
at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:807) ~[na:na]
at org.kie.services.signal.LightSignalManager.signalEvent(LightSignalManager.java:65) ~[kogito-services-1.12.0.Final.jar:1.12.0.Final]
at org.kie.services.signal.DefaultSignalManagerHub.publish(DefaultSignalManagerHub.java:42) ~[kogito-services-1.12.0.Final.jar:1.12.0.Final]
at org.kie.services.signal.LightSignalManager.signalEvent(LightSignalManager.java:68) ~[kogito-services-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.setState(WorkflowProcessInstanceImpl.java:426) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.setState(WorkflowProcessInstanceImpl.java:435) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.nodeInstanceCompleted(WorkflowProcessInstanceImpl.java:886) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.node.EndNodeInstance.internalTrigger(EndNodeInstance.java:77) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:209) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:406) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:391) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:361) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted(ExtendedNodeInstanceImpl.java:50) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:375) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:335) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.node.WorkItemNodeInstance.triggerCompleted(WorkItemNodeInstance.java:394) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.node.HumanTaskNodeInstance.triggerCompleted(HumanTaskNodeInstance.java:310) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.node.WorkItemNodeInstance.workItemCompleted(WorkItemNodeInstance.java:479) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.node.WorkItemNodeInstance.signalEvent(WorkItemNodeInstance.java:447) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.node.HumanTaskNodeInstance.signalEvent(HumanTaskNodeInstance.java:156) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:612) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.process.instance.LightWorkItemManager.internalCompleteWorkItem(LightWorkItemManager.java:179) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.process.instance.impl.humantask.BaseHumanTaskLifeCycle.transitionTo(BaseHumanTaskLifeCycle.java:130) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.process.instance.impl.humantask.BaseHumanTaskLifeCycle.transitionTo(BaseHumanTaskLifeCycle.java:69) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.process.instance.impl.humantask.HumanTaskWorkItemHandler.transitionToPhase(HumanTaskWorkItemHandler.java:61) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.process.instance.LightWorkItemManager.transitionWorkItem(LightWorkItemManager.java:204) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.jbpm.process.instance.LightWorkItemManager.transitionWorkItem(LightWorkItemManager.java:189) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.kie.kogito.process.impl.AbstractProcessInstance.transitionWorkItem(AbstractProcessInstance.java:475) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.kie.kogito.process.impl.ProcessServiceImpl.lambda$completeTask$11(ProcessServiceImpl.java:172) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at java.base/java.util.Optional.map(Optional.java:265) ~[na:na]
at org.kie.kogito.process.impl.ProcessServiceImpl.lambda$completeTask$12(ProcessServiceImpl.java:171) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.kie.kogito.services.uow.UnitOfWorkExecutor.executeInUnitOfWork(UnitOfWorkExecutor.java:33) ~[kogito-services-1.12.0.Final.jar:1.12.0.Final]
at org.kie.kogito.process.impl.ProcessServiceImpl.completeTask(ProcessServiceImpl.java:168) ~[jbpm-flow-1.12.0.Final.jar:1.12.0.Final]
at org.csdnclt.entity.DealreviewsResource.completeTask_review222222_0(DealreviewsResource.java:102) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878) ~[spring-webmvc-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792) ~[spring-webmvc-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652) ~[tomcat-embed-core-9.0.45.jar:4.0.FR]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.45.jar:4.0.FR]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.45.jar:9.0.45]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:92) ~[spring-web-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93) ~[spring-boot-actuator-2.3.10.RELEASE.jar:2.3.10.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.45.jar:9.0.45]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]

ReflectionProtoGenerator - clazz.getDeclaredFields is not compatible with PropertyDescriptor

messageFromClass method iterates through all the properties of a given class. the properties are retrieved using Introspector which returns all the properties including that of super class(es).

however, inside the method we are checking for property accessors using java getDeclaredField() method call which only looks at current class.

this results into exception java.lang.NoSuchFieldException which is misleading.

Any workaround or fix for this would be appreciated.

kogito-quarkus: modify() multiple properties

Hope this is the correct project to address this issue.

I'm using the Quarkus extension.

If I have:

modify($evaluation) {
    setPropA(true);
    setPropB(10);
}

it is compiled into:

{
   ($evaluation).setPropB(10);
   drools.update($evaluation,
                 mask_$evaluation);
}

If I use two modify()s, it turns into:

{
   ($evaluation).setPropA(true);
   drools.update($evaluation,
                 mask_$evaluation);
}
{
   ($evaluation).setPropB(10);
   drools.update($evaluation,
                 mask_$evaluation);
}

However in both cases the bitmask is defined on a single property:

final BitMask mask_$evaluation = BitMask.getPatternMask(DomainClassesMetadata76FC63AECA4701...Metadata_INSTANCE,
                                                                                          "propA");

Is there any chance to support modifying muliple properties at once?

How to start process asynchronously?

If the process is composed of service and script nodes only (no message node or human task) it runs to the end synchronously.

Current behavior:

  1. Caller sends process start request (HTTP POST)
  2. Kogito runtime starts the process instance
  3. Kogito runtime runs the process instance to its end
  4. Kogito runtime return response to the caller (process instance id)

If any node in the process executing a long time - the caller is failed by request timeout (but the process continues). So caller has no chance to know the result of process execution because:

  • it has no process instance ID
  • busnessKey is not working also #1135

Desired behavior:

  1. Caller sends process start request (HTTP POST)
  2. Kogito runtime starts the process instance
  3. Kogito runtime return response to the caller (process instance id)
  4. Kogito runtime runs the process instance to its end

IMO It is a very core concept of BPM to runs asynchronously. In the end, BPM is the state machine witch means it runs to some sort of "stops" and then continues. So it is not just (synchronous) script no matter what types of nodes it composes.

Adding new bpmn at runtime

Hello! I'm new at the kogito framework. There is a requirement for the system that I will have to develop - to load bpmn processes at runtime. I have not found any tutorials on this topic. Does kogito support such a feature or not?

Generated application does not correctly access config

In the (I assume) generated org.kie.kogito.app.Application class, there is a configuration property defined like this:

    @org.eclipse.microprofile.config.inject.ConfigProperty(name = "kogito.service.url", defaultValue = "")
    java.lang.String kogitoService;

However, per the SmallRye Config implementation and ongoing spec discussions, the behavioral expectation of this construct (populating the field with an empty string if the value is not found) is incorrect. The field should be declared as an Optional<String>, and the defaultValue is redundant and can be left off.

This blocks quarkusio/quarkus#6119.

Business Key is missing from default api responses of POST and GET process

Describe the bug

When you create a process instance (such as in swagger ui), the business key is required. But the Key is not returned in the response (but the process' ID is)

When you do a GET on the process ID, the business key is still not returned.

Expected behavior

the business key being a required field would return in the instance generation response and on GET of the process instance.

Loading rules into Knowledge Builder from String is failing

Below is the code used add rules from string into knowledge base

	KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
    kbuilder.add( ResourceFactory.newByteArrayResource(alertServiceDrlStr.getBytes()),
                  ResourceType.DRL );
    kbuilder.add( ResourceFactory.newByteArrayResource(factTypesDrlStr.getBytes()),
            ResourceType.DRL );

    if ( kbuilder.hasErrors() ) {
    	System.out.println( kbuilder.getErrors().toString() );
        throw new RuntimeException( "Unable to compile rules\"." );
    }

Seeing below exception on startup

Exception in thread "main" java.lang.UnsupportedOperationException
at org.drools.statics.StaticComponentsSupplier$DummyByteArrayClassLoader.defineClass(StaticComponentsSupplier.java:49)
at org.drools.core.base.ClassFieldAccessorFactory.getClassFieldReader(ClassFieldAccessorFactory.java:118)
at org.drools.core.base.ClassFieldAccessorCache$CacheEntry.getReadAccessor(ClassFieldAccessorCache.java:180)
at org.drools.core.base.ClassFieldAccessorCache.getReadAcessor(ClassFieldAccessorCache.java:97)
at org.drools.core.base.ClassFieldAccessorStore.wire(ClassFieldAccessorStore.java:287)
at org.drools.core.base.ClassFieldAccessorStore.getReader(ClassFieldAccessorStore.java:109)
at org.drools.core.base.ClassFieldAccessorStore.getReader(ClassFieldAccessorStore.java:87)
at org.drools.compiler.rule.builder.PatternBuilder.registerReadAccessor(PatternBuilder.java:1782)
at org.drools.compiler.rule.builder.QueryBuilder.build(QueryBuilder.java:47)
at org.drools.compiler.rule.builder.RuleBuilder.preProcess(RuleBuilder.java:86)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.buildRuleBuilderContext(KnowledgeBuilderImpl.java:1236)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.buildRuleBuilderContexts(KnowledgeBuilderImpl.java:1218)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.compileAllQueries(KnowledgeBuilderImpl.java:1059)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.compileRules(KnowledgeBuilderImpl.java:1051)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.compileKnowledgePackages(KnowledgeBuilderImpl.java:879)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.addPackage(KnowledgeBuilderImpl.java:870)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.addPackageFromDrl(KnowledgeBuilderImpl.java:522)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.addKnowledgeResource(KnowledgeBuilderImpl.java:696)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:2182)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:2171)
at com.sample.brm.BootstrapRuleEngine.init(BootstrapRuleEngine.java:120)
at com.sample.brm.DroolsApplication.main(DroolsApplication.java:13)

PMML support

I'm working on getting a PMML model exposed as a microservice and found that kogito will be the best fit on that.

It would be great if kogito has PMML support. If there are already plans for it, please provide an ETA.

Swagger/OpenAPI generation docs? Explain what gets generated

Description

When you open a generated swagger UI there is lots of endpoints for a simple process (such as user tasks-quarkus), but Is there docs about what endpoints are generated and how/based on what data points?

Implementation ideas

No response

[kogito-quarkus-decisions] 'ANTLR version 4.8 used for parser compliation does not match the current runtime version 4.9.2' warning

Description

While following the Quarkus Kogito DMN guide, I noticed the following warning. While this does not seem to cause any issues, I thought it'd be prudent to report it:

2021-11-20 23:20:24,884 INFO  [org.kie.kog.cod.api.uti.AddonsConfigDiscovery] (build-21) Performed addonsConfig discovery, found: AddonsConfig{usePersistence=false, useTracing=false, useMonitoring=false, usePrometheusMonitoring=false, useCloudEvents=false, useExplainability=false, useProcessSVG=false, useEventDrivenDecisions=false, useEventDrivenRules=false}
2021-11-20 23:20:24,939 INFO  [org.kie.kog.cod.cor.uti.ApplicationGeneratorDiscovery] (build-21) Generator discovery performed, found [openapispecs, decisions]
2021-11-20 23:20:24,940 INFO  [org.kie.kog.cod.cor.ApplicationGenerator] (build-21) Skipping generator 'openapispecs' because disabled

ANTLR Tool version 4.8 used for code generation does not match the current runtime version 4.9.2

ANTLR Runtime version 4.8 used for parser compilation does not match the current runtime version 4.9.2

ANTLR Tool version 4.8 used for code generation does not match the current runtime version 4.9.2

ANTLR Runtime version 4.8 used for parser compilation does not match the current runtime version 4.9.2

2021-11-20 23:20:25,556 INFO  [org.kie.kog.cod.dec.DecisionValidation] (build-21) Initializing DMN DT Validator...
2021-11-20 23:20:25,557 INFO  [org.kie.kog.cod.dec.DecisionValidation] (build-21) DMN DT Validator initialized.

There is a previous issue on the Quarkus repository about this, so I'm guessing this is a mismatch between Quarkus and Kogito dependencies.

Dependency Tree

It isn't clear where 4.8 is coming from. It was previously defined in the root pom.xml of this repository -- now, I am not sure.

https://github.com/kiegroup/kogito-runtimes/pull/607
https://github.com/quarkusio/quarkus/search?q=antlr

maven dependency:tree output (click to expand)
[INFO] org.acme:kogito-dmn-quickstart:jar:1.0.0-SNAPSHOT
[INFO] +- org.kie.kogito:kogito-quarkus-decisions:jar:1.12.0.Final:compile
[INFO] |  +- org.kie.kogito:kogito-quarkus-common:jar:1.12.0.Final:compile
[INFO] |  |  +- org.kie.kogito:kogito-api-incubation-application:jar:1.12.0.Final:compile
[INFO] |  |  |  \- org.kie.kogito:kogito-api-incubation-common:jar:1.12.0.Final:compile
[INFO] |  |  +- org.mvel:mvel2:jar:2.4.12.Final:compile
[INFO] |  |  +- com.jayway.jsonpath:json-path:jar:2.6.0:compile
[INFO] |  |  |  \- net.minidev:json-smart:jar:2.4.7:compile
[INFO] |  |  |     \- net.minidev:accessors-smart:jar:2.4.7:compile
[INFO] |  |  +- io.quarkus:quarkus-resteasy-jackson:jar:2.4.2.Final:compile
[INFO] |  |  |  +- io.quarkus:quarkus-jackson:jar:2.4.2.Final:compile
[INFO] |  |  |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.5:compile
[INFO] |  |  |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.12.5:compile
[INFO] |  |  |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.12.5:compile
[INFO] |  |  |  +- org.jboss.resteasy:resteasy-jackson2-provider:jar:4.7.3.Final:compile
[INFO] |  |  |  |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.12.5:compile
[INFO] |  |  |  |  |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.12.5:compile
[INFO] |  |  |  |  |  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.12.5:compile
[INFO] |  |  |  |  \- com.github.java-json-tools:json-patch:jar:1.13:compile
[INFO] |  |  |  |     +- com.github.java-json-tools:msg-simple:jar:1.2:compile
[INFO] |  |  |  |     |  \- com.github.java-json-tools:btf:jar:1.3:compile
[INFO] |  |  |  |     \- com.github.java-json-tools:jackson-coreutils:jar:2.0:compile
[INFO] |  |  |  \- org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:2.0.0.Final:compile
[INFO] |  |  +- io.quarkus.arc:arc-processor:jar:2.4.2.Final:compile
[INFO] |  |  |  \- io.quarkus.gizmo:gizmo:jar:1.0.9.Final:compile
[INFO] |  |  |     \- org.ow2.asm:asm-util:jar:9.1:compile
[INFO] |  |  +- io.quarkus:quarkus-undertow:jar:2.4.2.Final:compile
[INFO] |  |  |  +- io.quarkus.http:quarkus-http-servlet:jar:4.1.3:compile
[INFO] |  |  |  +- jakarta.servlet:jakarta.servlet-api:jar:4.0.3:compile
[INFO] |  |  |  +- io.quarkus.http:quarkus-http-vertx-backend:jar:4.1.3:compile
[INFO] |  |  |  |  \- io.quarkus.http:quarkus-http-http-core:jar:4.1.3:compile
[INFO] |  |  |  \- io.quarkus.http:quarkus-http-core:jar:4.1.3:compile
[INFO] |  |  |     \- io.netty:netty-codec-http:jar:4.1.68.Final:compile
[INFO] |  |  +- org.kie.kogito:kogito-api:jar:1.12.0.Final:compile
[INFO] |  |  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.5:compile
[INFO] |  |  |  +- org.kie:kie-api:jar:7.59.0.Final:compile
[INFO] |  |  |  |  \- org.kie.soup:kie-soup-maven-support:jar:7.59.0.Final:compile
[INFO] |  |  |  +- org.kie:kie-dmn-api:jar:7.59.0.Final:compile
[INFO] |  |  |  +- org.kie.kogito:kogito-timer:jar:1.12.0.Final:compile
[INFO] |  |  |  \- org.kie.kogito:kogito-pmml-api-dependencies:pom:1.12.0.Final:compile
[INFO] |  |  |     +- org.kie:kie-pmml-evaluator-api:jar:7.59.0.Final:compile
[INFO] |  |  |     |  \- org.kie:kie-pmml-api:jar:7.59.0.Final:compile
[INFO] |  |  |     |     \- org.apache.commons:commons-math3:jar:3.4.1:compile
[INFO] |  |  |     \- org.kie:kie-pmml-commons:jar:7.59.0.Final:compile
[INFO] |  |  |        \- org.apache.commons:commons-text:jar:1.9:compile
[INFO] |  |  \- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] |  +- org.kie.kogito:kogito-api-incubation-decisions-services:jar:1.12.0.Final:compile
[INFO] |  |  \- org.kie.kogito:kogito-api-incubation-decisions:jar:1.12.0.Final:compile
[INFO] |  \- org.kie.kogito:kogito-dmn:jar:1.12.0.Final:compile
[INFO] |     +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.5:compile
[INFO] |     |  \- com.fasterxml.jackson.core:jackson-core:jar:2.12.5:compile
[INFO] |     +- org.kie:kie-dmn-core:jar:7.59.0.Final:compile
[INFO] |     |  +- org.kie:kie-dmn-model:jar:7.59.0.Final:compile
[INFO] |     |  +- org.kie:kie-dmn-backend:jar:7.59.0.Final:compile
[INFO] |     |  |  \- org.kie.soup:kie-soup-xstream:jar:7.59.0.Final:compile
[INFO] |     |  +- org.kie:kie-dmn-feel:jar:7.59.0.Final:compile
[INFO] |     |  |  \- ch.obermuhlner:big-math:jar:2.0.1:compile
[INFO] |     |  +- org.kie:kie-internal:jar:7.59.0.Final:compile
[INFO] |     |  +- org.kie:kie-memory-compiler:jar:7.59.0.Final:compile
[INFO] |     |  +- com.github.javaparser:javaparser-core:jar:3.13.10:compile
[INFO] |     |  +- org.drools:drools-alphanetwork-compiler:jar:7.59.0.Final:compile
[INFO] |     |  +- org.antlr:antlr4-runtime:jar:4.9.2:compile
[INFO] |     |  \- org.jpmml:pmml-model:jar:1.5.1:compile
[INFO] |     |     \- org.jpmml:pmml-agent:jar:1.5.1:compile
[INFO] |     +- org.kie:kie-dmn-validation:jar:7.59.0.Final:compile
[INFO] |     \- org.kie.kogito:kogito-drools:jar:1.12.0.Final:compile
[INFO] |        +- org.kie.kogito:drools-core:jar:1.12.0.Final:compile
[INFO] |        |  +- org.drools:drools-core:jar:7.59.0.Final:compile
[INFO] |        |  \- org.kie.kogito:kogito-services:jar:1.12.0.Final:compile
[INFO] |        +- org.kie.kogito:drools-compiler:jar:1.12.0.Final:compile
[INFO] |        |  \- org.drools:drools-compiler:jar:7.59.0.Final:compile
[INFO] |        |     +- org.drools:drools-ecj:jar:7.59.0.Final:compile
[INFO] |        |     \- org.antlr:antlr-runtime:jar:3.5.2:compile
[INFO] |        +- org.kie.kogito:drools-core-static:jar:1.12.0.Final:compile
[INFO] |        |  \- org.drools:drools-core-reflective:jar:7.59.0.Final:compile
[INFO] |        +- org.kie.kogito:kogito-ruleunits:jar:1.12.0.Final:compile
[INFO] |        \- org.kie.kogito:kogito-drools-model:jar:1.12.0.Final:compile
[INFO] |           \- org.drools:drools-model-compiler:jar:7.59.0.Final:compile
[INFO] |              +- org.drools:drools-canonical-model:jar:7.59.0.Final:compile
[INFO] |              +- org.drools:drools-mvel-parser:jar:7.59.0.Final:compile
[INFO] |              \- org.drools:drools-mvel-compiler:jar:7.59.0.Final:compile
[INFO] +- io.quarkus:quarkus-arc:jar:2.4.2.Final:compile
[INFO] |  +- io.quarkus.arc:arc:jar:2.4.2.Final:compile
[INFO] |  |  +- jakarta.enterprise:jakarta.enterprise.cdi-api:jar:2.0.2:compile
[INFO] |  |  |  +- jakarta.el:jakarta.el-api:jar:3.0.3:compile
[INFO] |  |  |  \- jakarta.interceptor:jakarta.interceptor-api:jar:1.2.5:compile
[INFO] |  |  +- jakarta.transaction:jakarta.transaction-api:jar:1.3.3:compile
[INFO] |  |  \- org.jboss.logging:jboss-logging:jar:3.4.2.Final:compile
[INFO] |  +- io.quarkus:quarkus-core:jar:2.4.2.Final:compile
[INFO] |  |  +- jakarta.inject:jakarta.inject-api:jar:1.0:compile
[INFO] |  |  +- io.quarkus:quarkus-ide-launcher:jar:2.4.2.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-development-mode-spi:jar:2.4.2.Final:compile
[INFO] |  |  +- io.smallrye.config:smallrye-config:jar:2.5.1:compile
[INFO] |  |  |  \- io.smallrye.config:smallrye-config-core:jar:2.5.1:compile
[INFO] |  |  |     +- org.eclipse.microprofile.config:microprofile-config-api:jar:2.0:compile
[INFO] |  |  |     +- io.smallrye.common:smallrye-common-expression:jar:1.6.0:compile
[INFO] |  |  |     |  \- io.smallrye.common:smallrye-common-function:jar:1.6.0:compile
[INFO] |  |  |     +- io.smallrye.common:smallrye-common-constraint:jar:1.6.0:compile
[INFO] |  |  |     +- io.smallrye.common:smallrye-common-classloader:jar:1.6.0:compile
[INFO] |  |  |     \- io.smallrye.config:smallrye-config-common:jar:2.5.1:compile
[INFO] |  |  +- org.jboss.logmanager:jboss-logmanager-embedded:jar:1.0.9:compile
[INFO] |  |  +- org.jboss.logging:jboss-logging-annotations:jar:2.2.1.Final:compile
[INFO] |  |  +- org.jboss.threads:jboss-threads:jar:3.4.2.Final:compile
[INFO] |  |  +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] |  |  +- org.jboss.slf4j:slf4j-jboss-logmanager:jar:1.1.0.Final:compile
[INFO] |  |  +- org.graalvm.sdk:graal-sdk:jar:21.2.0:compile
[INFO] |  |  +- org.wildfly.common:wildfly-common:jar:1.5.4.Final-format-001:compile
[INFO] |  |  \- io.quarkus:quarkus-bootstrap-runner:jar:2.4.2.Final:compile
[INFO] |  \- org.eclipse.microprofile.context-propagation:microprofile-context-propagation-api:jar:1.2:compile
[INFO] +- io.quarkus:quarkus-resteasy:jar:2.4.2.Final:compile
[INFO] |  +- io.quarkus:quarkus-vertx-http:jar:2.4.2.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-security-runtime-spi:jar:2.4.2.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-mutiny:jar:2.4.2.Final:compile
[INFO] |  |  |  +- io.smallrye.reactive:mutiny:jar:1.1.2:compile
[INFO] |  |  |  |  \- org.reactivestreams:reactive-streams:jar:1.0.3:compile
[INFO] |  |  |  +- io.quarkus:quarkus-smallrye-context-propagation:jar:2.4.2.Final:compile
[INFO] |  |  |  |  \- io.smallrye:smallrye-context-propagation:jar:1.2.2:compile
[INFO] |  |  |  |     +- io.smallrye:smallrye-context-propagation-api:jar:1.2.2:compile
[INFO] |  |  |  |     \- io.smallrye:smallrye-context-propagation-storage:jar:1.2.2:compile
[INFO] |  |  |  \- io.smallrye.reactive:mutiny-smallrye-context-propagation:jar:1.1.2:compile
[INFO] |  |  +- io.quarkus:quarkus-vertx-http-dev-console-runtime-spi:jar:2.4.2.Final:compile
[INFO] |  |  +- io.quarkus.security:quarkus-security:jar:1.1.4.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-vertx:jar:2.4.2.Final:compile
[INFO] |  |  |  +- io.quarkus:quarkus-netty:jar:2.4.2.Final:compile
[INFO] |  |  |  |  +- io.netty:netty-codec:jar:4.1.68.Final:compile
[INFO] |  |  |  |  +- io.netty:netty-codec-http2:jar:4.1.68.Final:compile
[INFO] |  |  |  |  \- io.netty:netty-handler:jar:4.1.68.Final:compile
[INFO] |  |  |  +- io.netty:netty-codec-haproxy:jar:4.1.68.Final:compile
[INFO] |  |  |  |  +- io.netty:netty-buffer:jar:4.1.68.Final:compile
[INFO] |  |  |  |  \- io.netty:netty-transport:jar:4.1.68.Final:compile
[INFO] |  |  |  +- io.smallrye.common:smallrye-common-annotation:jar:1.6.0:compile
[INFO] |  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-core:jar:2.14.1:compile
[INFO] |  |  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-runtime:jar:2.14.1:compile
[INFO] |  |  |  |  \- io.smallrye.reactive:vertx-mutiny-generator:jar:2.14.1:compile
[INFO] |  |  |  |     \- io.vertx:vertx-codegen:jar:4.1.5:compile
[INFO] |  |  |  \- io.smallrye:smallrye-fault-tolerance-vertx:jar:5.2.1:compile
[INFO] |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-web:jar:2.14.1:compile
[INFO] |  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-web-common:jar:2.14.1:compile
[INFO] |  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-auth-common:jar:2.14.1:compile
[INFO] |  |  |  \- io.smallrye.reactive:smallrye-mutiny-vertx-bridge-common:jar:2.14.1:compile
[INFO] |  |  \- io.vertx:vertx-web:jar:4.1.5:compile
[INFO] |  |     +- io.vertx:vertx-web-common:jar:4.1.5:compile
[INFO] |  |     +- io.vertx:vertx-auth-common:jar:4.1.5:compile
[INFO] |  |     +- io.vertx:vertx-bridge-common:jar:4.1.5:compile
[INFO] |  |     \- io.vertx:vertx-core:jar:4.1.5:compile
[INFO] |  |        +- io.netty:netty-common:jar:4.1.68.Final:compile
[INFO] |  |        +- io.netty:netty-handler-proxy:jar:4.1.68.Final:compile
[INFO] |  |        |  \- io.netty:netty-codec-socks:jar:4.1.68.Final:compile
[INFO] |  |        +- io.netty:netty-resolver:jar:4.1.68.Final:compile
[INFO] |  |        \- io.netty:netty-resolver-dns:jar:4.1.68.Final:compile
[INFO] |  |           \- io.netty:netty-codec-dns:jar:4.1.68.Final:compile
[INFO] |  \- io.quarkus:quarkus-resteasy-server-common:jar:2.4.2.Final:compile
[INFO] |     +- io.quarkus:quarkus-resteasy-common:jar:2.4.2.Final:compile
[INFO] |     |  +- org.jboss.resteasy:resteasy-core:jar:4.7.3.Final:compile
[INFO] |     |  |  +- org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:2.0.1.Final:compile
[INFO] |     |  |  +- org.jboss.resteasy:resteasy-core-spi:jar:4.7.3.Final:compile
[INFO] |     |  |  \- com.ibm.async:asyncutil:jar:0.1.0:compile
[INFO] |     |  \- com.sun.activation:jakarta.activation:jar:1.2.1:compile
[INFO] |     \- jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
[INFO] +- io.quarkus:quarkus-junit5:jar:2.4.2.Final:test
[INFO] |  +- io.quarkus:quarkus-bootstrap-core:jar:2.4.2.Final:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-app-model:jar:2.4.2.Final:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-maven-resolver:jar:2.4.2.Final:test
[INFO] |  |  |  +- org.apache.maven:maven-embedder:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-settings:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-core:jar:3.8.1:test
[INFO] |  |  |  |  |  +- org.apache.maven:maven-artifact:jar:3.8.1:test
[INFO] |  |  |  |  |  \- org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:test
[INFO] |  |  |  |  +- org.apache.maven:maven-plugin-api:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-model:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-model-builder:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-builder-support:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-api:jar:1.6.2:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-util:jar:1.6.2:test
[INFO] |  |  |  |  +- org.apache.maven.shared:maven-shared-utils:jar:3.3.3:test
[INFO] |  |  |  |  |  \- commons-io:commons-io:jar:2.11.0:test
[INFO] |  |  |  |  +- com.google.inject:guice:jar:no_aop:4.2.1:test
[INFO] |  |  |  |  |  \- com.google.guava:guava:jar:30.1.1-jre:test
[INFO] |  |  |  |  |     +- com.google.guava:failureaccess:jar:1.0.1:test
[INFO] |  |  |  |  |     \- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-utils:jar:3.2.1:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-classworlds:jar:2.6.0:test
[INFO] |  |  |  |  \- commons-cli:commons-cli:jar:1.4:test
[INFO] |  |  |  +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.4:test
[INFO] |  |  |  +- org.apache.maven:maven-settings-builder:jar:3.8.1:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-interpolation:jar:1.25:test
[INFO] |  |  |  |  \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:test
[INFO] |  |  |  |     \- org.sonatype.plexus:plexus-cipher:jar:1.4:test
[INFO] |  |  |  +- org.apache.maven:maven-resolver-provider:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-repository-metadata:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-spi:jar:1.6.2:test
[INFO] |  |  |  |  \- org.apache.maven.resolver:maven-resolver-impl:jar:1.6.2:test
[INFO] |  |  |  +- org.apache.maven.resolver:maven-resolver-connector-basic:jar:1.6.2:test
[INFO] |  |  |  +- org.apache.maven.resolver:maven-resolver-transport-wagon:jar:1.6.2:test
[INFO] |  |  |  +- org.apache.maven.wagon:wagon-http:jar:3.4.3:test
[INFO] |  |  |  |  +- org.apache.maven.wagon:wagon-http-shared:jar:3.4.3:test
[INFO] |  |  |  |  |  \- org.jsoup:jsoup:jar:1.12.1:test
[INFO] |  |  |  |  \- org.apache.maven.wagon:wagon-provider-api:jar:3.4.3:test
[INFO] |  |  |  \- org.apache.maven.wagon:wagon-file:jar:3.4.3:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-gradle-resolver:jar:2.4.2.Final:test
[INFO] |  |  \- io.smallrye.common:smallrye-common-io:jar:1.6.0:compile
[INFO] |  +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.4:test
[INFO] |  +- io.quarkus:quarkus-test-common:jar:2.4.2.Final:test
[INFO] |  |  +- io.quarkus:quarkus-core-deployment:jar:2.4.2.Final:test
[INFO] |  |  |  +- org.aesh:readline:jar:2.1:test
[INFO] |  |  |  |  \- org.fusesource.jansi:jansi:jar:1.18:test
[INFO] |  |  |  +- org.ow2.asm:asm:jar:9.2:compile
[INFO] |  |  |  +- org.ow2.asm:asm-commons:jar:9.2:test
[INFO] |  |  |  |  +- org.ow2.asm:asm-tree:jar:9.2:compile
[INFO] |  |  |  |  \- org.ow2.asm:asm-analysis:jar:9.2:compile
[INFO] |  |  |  +- io.quarkus:quarkus-class-change-agent:jar:2.4.2.Final:test
[INFO] |  |  |  +- io.quarkus:quarkus-devtools-utilities:jar:2.4.2.Final:test
[INFO] |  |  |  +- io.quarkus:quarkus-builder:jar:2.4.2.Final:test
[INFO] |  |  |  \- org.junit.platform:junit-platform-launcher:jar:1.8.1:test
[INFO] |  |  +- io.quarkus:quarkus-jsonp-deployment:jar:2.4.2.Final:test
[INFO] |  |  |  \- io.quarkus:quarkus-jsonp:jar:2.4.2.Final:test
[INFO] |  |  |     \- org.glassfish:jakarta.json:jar:1.1.6:test
[INFO] |  |  +- org.jboss:jandex:jar:2.4.1.Final:compile
[INFO] |  |  \- org.jboss.logging:commons-logging-jboss-logging:jar:1.0.0.Final:test
[INFO] |  +- org.junit.jupiter:junit-jupiter:jar:5.8.1:test
[INFO] |  |  +- org.junit.jupiter:junit-jupiter-api:jar:5.8.1:test
[INFO] |  |  |  +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] |  |  |  +- org.junit.platform:junit-platform-commons:jar:1.8.1:test
[INFO] |  |  |  \- org.apiguardian:apiguardian-api:jar:1.1.2:test
[INFO] |  |  +- org.junit.jupiter:junit-jupiter-params:jar:5.8.1:test
[INFO] |  |  \- org.junit.jupiter:junit-jupiter-engine:jar:5.8.1:test
[INFO] |  |     \- org.junit.platform:junit-platform-engine:jar:1.8.1:test
[INFO] |  \- com.thoughtworks.xstream:xstream:jar:1.4.18:compile
[INFO] |     \- io.github.x-stream:mxparser:jar:1.2.2:compile
[INFO] |        \- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] \- io.rest-assured:rest-assured:jar:4.4.0:test
[INFO]    +- org.codehaus.groovy:groovy:jar:3.0.8:test
[INFO]    +- org.codehaus.groovy:groovy-xml:jar:3.0.8:test
[INFO]    +- org.apache.httpcomponents:httpclient:jar:4.5.13:test
[INFO]    |  +- org.apache.httpcomponents:httpcore:jar:4.4.14:test
[INFO]    |  \- commons-codec:commons-codec:jar:1.15:compile
[INFO]    +- org.apache.httpcomponents:httpmime:jar:4.5.13:test
[INFO]    +- org.hamcrest:hamcrest:jar:2.1:test
[INFO]    +- org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1:test
[INFO]    +- io.rest-assured:json-path:jar:4.4.0:test
[INFO]    |  +- org.codehaus.groovy:groovy-json:jar:3.0.8:test
[INFO]    |  \- io.rest-assured:rest-assured-common:jar:4.4.0:test
[INFO]    \- io.rest-assured:xml-path:jar:4.4.0:test
[INFO]       +- org.apache.commons:commons-lang3:jar:3.12.0:compile
[INFO]       +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:test
[INFO]       \- com.sun.xml.bind:jaxb-impl:jar:2.3.3:test

Versions

  • Quarkus: 2.4.2.Final
  • kogito-quarkus-decisions: 1.12.0.Final

DMN integration with OpenAPI support potential?

Hi Team,
Been swapping between RHPAM 7.3 and a Quarkus/Kogito based immutable infrastructure decision-server approach, and going to at least ask the question:

Seeing things like the kogito-dmn-rest-utils library, are there any potential ideas/approaches to make stronger openAPI contracts that define the actual InputModels rather than a generic dmn-context approach?

i.e. some way to interrogate DMNItemDefinitionInfo to through codegen or some other mechanism create an equiv complex pojo/json struct that strongly types the openAPI interface for a given DMN model?

(I may have worded this slightly incorrect, but hoping the intent is transferred!)

Springboot and DMN

Hi,

I'm trying to use kogito with springboot and a DMN model. So I've started from the jbpm-springboot-example and I've put a DMN model in the resources.

I see that the java class of the DMN endpoint is generated but unfortunately the endpoint is not available. Am I missing something? Is there something in particular to do on developer side to make it work?

Comments/Attachments on User Tasks should generate process events with the comment/attachment data - Missing Context for triggering Event?

Description

When a EventPublisher consumes DataEvents and the /comments and /attachment endpoints are used, there should be a event generated that contains the Comment/Attachment.

An Event is generated (ProcessInstanceDataEvent and a UserTaskInstanceDataEvent), but the event does not seem to contain the comment/attachment data.

Implementation ideas

No response

Questions about businessKey field

Hi ! There is not a lot of information about this field. According release notes it should be "meaningful process IDs" and i can get process instance by this id. But when i call

curl -X POST "http://localhost:8080/blankprocess?businessKey=Key-111" -H "accept: */*" -H "Content-Type: application/json" -d "{}"
then
curl -X GET "http://localhost:8080/blankprocess/Key-111" -H "accept: application/json"

I receive 404
But if i call service with generated id

curl -X GET "http://localhost:8080/blankprocess/30800430-cc97-4793-a6d2-62a69424a7ee" -H "accept: application/json"

it's OK.
Tested on 1.0.0.FInal and 1.2.0.Final
Am i missing something ?

Conditional Logic on configuration fields?

Description

Working in the modeler, is there fields that Kogito process will support for expression based configuration?

Such as a Task Name being generated at runtime, priority values, actors, groups, subjects, etc. Are there fields that support expressions such as ${...} #{...} etc?

If no, what is the pattern for handling runtime based configurations? Gateway logic uses embedded/copied java values coded into the codeGen. would this type of functionality planned for other fields?

Some common examples:

  1. You have process for handling Complaints. based on the type of complaint, you may change the Task title to add contextual info
  2. Priority of a task may be different based on business logic
  3. timer may be different based on business logic
  4. Default Actor assignment may be different
  5. Actor available may be different based on business logic
  6. Groups for a UT may be different based on business logic.

Implementation ideas

No response

Monitoring addon not working on Springboot

Hi,

I'm trying to use the monitoring addon on Springboot and apparently the endpoint metrics is not exposed.

How to reproduce:

  1. Checkout https://github.com/kiegroup/kogito-examples/tree/master/jbpm-springboot-example
  2. add the dependency
    <dependency>
      <groupId>org.kie.kogito</groupId>
      <artifactId>monitoring-prometheus-addon</artifactId>
    </dependency>

To the pom.xml
And create the class ProcessEventListenerConfig:

package org.kie.kogito.examples;

import org.kie.kogito.process.impl.DefaultProcessEventListenerConfig;
import org.springframework.stereotype.Component;
import org.kie.addons.monitoring.process.PrometheusProcessEventListener;

@Component
public class ProcessEventListenerConfig extends DefaultProcessEventListenerConfig {

    public ProcessEventListenerConfig() {
        super(new PrometheusProcessEventListener("test"));
    }
}
  1. run the app and execute
curl -d '{"approver" : "john", "order" : {"orderNumber" : "12345", "shipped" : false}}' -H "Content-Type: application/json" -X POST http://localhost:8080/orders
  1. go to http://localhost:8080/metrics -> endpoint not available.

OpenAPi codegen for processes should use Process Documentation and Start Event documentation to populate descriptions in openapi and swagger ui

Description

for a process there is the element doc and the "Process instances description" fields:

image

and on a start event we have:
image

This documentation would be very helpful add into the openapi spec / swagger ui.

if multiple Start Events are supported, then having descriptions on what each event does in the swagger would be very valuable.

Implementation ideas

No response

Current archetype 1.14.0.Final kogito-spring-boot-starter; Error ComponentsWidthsExtension XStream conversion failure

Using essentially default Archetype (just with scesim added), Simulator gives long list of debug warnings for XStream conversion failure.

Is this the correct place to create an issue?

[INFO] Running com.example.KogitoScenarioJunitActivatorTest 17:54:51.395 [main] DEBUG org.kie.dmn.core.compiler.DMNEvaluatorCompiler - default DMNEvaluatorCompiler. 17:54:51.441 [main] DEBUG org.kie.dmn.backend.marshalling.v1_2.xstream.DiagramElementExtensionConverter - Tried to convert the extension element child ComponentsWidthsExtension, but no converter is registered for this child.
and so on.

pom.xml.txt

JSON Schema Validations with DMN Input model

I am forced to use existing pojo model for my DMN execution. The pojo objects are created off of a json schema with a bunch of validations defined.

  1. Is it possible to validate the payload before DMN execution in Kogito?
  2. Is it possible to force to use existing pojo model and not to generate again from DMN input model?
  3. I tried to follow this thread - DMN integration with OpenAPI support potential? : if I keep my pojo model and dmn input model in sync (manually), it would help make a stronger OpenAPI definition? I did not understand and guess might not be related to what I need.

Quarkus Dev UI breaks during hot reload of BPMN change

Describe the bug

edit: this seems to break even after a full clean and compile.

image

Running https://github.com/kiegroup/kogito-examples/tree/stable/process-usertasks-quarkus

The change i made to the BPMN was to tag firstLineApprover and secondLineApprover process variables as "internal" so they would not show in the swagger UI.

using quarkus:dev

Modified the BPMN in VS Code and when you refresh localhost:8080/q everything breaks:

image

and

image

console does not show any errors. It shows a successful live reload

Thanks

Parent process remains in ACTIVE state when an exception occurs in re-usable subprocess

Scenario: you have a BPMN with re-usable subprocess being called from parent process.

if the sub process returns an exception (e.g. runtime exception), that sub process gets to state of ERROR (5) but the parent process remains in ACTIVE state (5) and the system responds with success response.

Also if you have listeners implemented (ProcessEventListener), you do not get a handle in any of the life cycle method for parent process since the process is not completed.

May be it would make sense to expose another lifecycle method, afterProcessErrored/Aborted so that application can get handle to decorate domain entities/perform some error handling.

Also parent process should not remain in ACTIVE state. it should get set with ERROR state with errors from subprocess being cascaded.

Default generated endpoints places variables into the root object: should variables be nested into a property?

Description

When you start a instance, you are submitted variables. But when you GET an instance you are receiving process instance ~metadata and process variables (or task/local variables).

The variables are mixed into the name level as the metadata. Should this data be moved into a nested property? such as "variables", or "data" (data because that is the name used internally).

I suggest this because as processes get complex, the number of variables increases and it is quickly easily to get mixed up on what are variables and what are process/task metadata. Then scale that out when you start to add new properties in the future, and could easily have variable name conflicts with newly added metadata.

Example: imagine one day you added a pre-calculated duration property for instances that showed the total duration (without the need to calculate it). This could easily become a conflict with business variables.

Implementation ideas

No response

Kogito Data Index Service as container

Downloading jar manually and executing it can be hard task.
It will be much easier to build data index container on github releases.
The container could be used only for demo/examples and it can use empirical volume

Process versioning protocol?

Description

In kogito, what is the protocol for process versioning?

Examples

  1. You deploy a process and find a bug, you make a change to the BPMN and restart the app?
  2. If you want to run multiple parallel versions, are these separate application deployments?
  3. Other considerations?

Implementation ideas

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.