Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-13207

Make DefaultDmnDecisionContext interchangeable

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Won't Do
    • Icon: L3 - Default L3 - Default
    • None
    • 7.15.0-alpha4
    • dmn-engine
    • None

      User Story (Required on creation):

      For generated graph of tables and literal expresions, we need to return not only the decision result of the final decision, but also a map of all intermediate results.

      I built a spike for this here: I build a spike for this here: https://github.com/jangalinski/dmn-literal-expression-spike

      Functional Requirements (Required before implementation):

      Currently the DefaultDmnEngine creates the DmnDecisionContext via "new" ... so in order to hook into the default behavior, I have to implement my own engine configuration, which builds my own engine implementation and than calls my own decision context ... where I just collect results inside the for loop ...

      By switching to an interchangeable factory + interface for the dmnDecisionContext (keeping the default implementation) I would just have to register my custom context, not re-implementing the engine and its configuration.

      Technical Requirements (Required before implementation):

      Introduce an Interface for DefaultDmnDecisionContext (wonder why there is non ... all other classes in the den-engine module that start with Default are ... default implementations of an interface ...) and a factory that can create such instance.

      Limitations of Scope (Optional):

      Hints (Optional):

      <https://github.com/camunda/camunda-bpm-platform/pull/1357>

        This is the controller panel for Smart Panels app

              Unassigned Unassigned
              jan.galinski@holisticon.de Jan Galinski
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: