-
Epic
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
DMN strongly typed codegen DMNContext and DMNResult
-
To Do
-
NEW
-
NEW
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