Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-5061

DMN strongly typed codegen DMNContext and DMNResult

XMLWordPrintable

    • Icon: Epic Epic
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • dmn engine
    • 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

              Unassigned Unassigned
              mmortari@redhat.com Matteo Mortari
              Tibor Zimányi Tibor Zimányi
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: