]
Matteo Mortari reassigned DROOLS-5061:
--------------------------------------
Assignee: Matteo Mortari (was: Luca Molteni)
DMN strongly typed codegen DMNContext and DMNResult
---------------------------------------------------
Key: DROOLS-5061
URL:
https://issues.redhat.com/browse/DROOLS-5061
Project: Drools
Issue Type: Epic
Components: dmn engine
Reporter: Matteo Mortari
Assignee: Matteo Mortari
Priority: Major
*Motivation*: currently interacting with DMN evaluation is mostly based on dynamic
(map-based) data structure to exchange IN/OUT. This is not always fully satisfactory, for
instance when interacting over REST or from/back-to BPMN.
*Goals*: A codegen facility is required to generate statically code strongly typed for
the input/output of a DMN model, considering also the data types defined inside the DMN
model as ItemDefinition.
*Impacts*: integration with BPMN, integration with Kogito for OpenAPI/Swagger, new APIs
for DMN, will need documentation.
A codegen facility is required to generate statically code strongly typed for the
input/output of a DMN model, considering also the data types defined inside the DMN model
as ItemDefinition.
Surface and interface common to:
* BPMN integration: when invoking DMN from BPMN, the return of the evaluation is a Map
and not the domain model
* Kogito/OpenAPI/Swagger: when using the codegenerated version, annotation shall explain
the swagger API the expected input/output type of the REST request for DMN
** for Quarkus based, use RegisterForReflection annotation
** use MP validation for allowedvalues
* DMN Editor: when importing a Java Class in the editor, it shall use the user-supplied
Java Class
Documentation:
* the programmatic use of the generated classes, directly, is DISCOURAGED
* if anything, a programmatic use will eventually be stable by making use of the
available interfaces in kie-dmn-core