-
Sub-task
-
Resolution: Unresolved
-
L3 - Default
-
None
-
None
-
None
AT
In the Process Engine, I can restore the DMN legacy behavior to keep my current DMN models as-is.
Scope
- Minimum: legacy mode can be turned on for all DMN models or none
- Maximum: legacy mode can be turned on/off per DMN model
Implementation outline
- Different factories for different versions of the engine (Legacy & Scala)
- Flag for enabling legacy behavior to generate the legacy engine or Scala engine
- DecisionInvocation uses the DmnEngine from the config
- ProcessEngineConfigurationImpl#initDmnEngine should look for a flag for legacy behavior and initialize the corresponding engine
- Maximum Scope
- Gradual update of single models could be achieved by
- Register two DMN deployers (legacy and Scala) that receive the deployment unit and need to decide based on the config if they parse the DMN deployment or not
- Allow to configure which models to parse as legacy by either
- Provide an engine config option with a list of DMN model keys that should be parsed as legacy OR
- Allow to define a marker in the respective models to be parsed as legacy or not
- Get the right engine for the model by either
- introduce new getter in engine config “getDmnEngineByKey” that receives the engine respecting the DMN model key OR
- change the current getter “getDmnEngine” to require a key parameter so people notice right away something changed in that behavior (it is private API)
- Gradual update of single models could be achieved by
This is the controller panel for Smart Panels app
- depends on
-
CAM-12924 In platform, move legacy implementation into dedicated module
- Ready
- links to