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

Standalone FEEL Engine cannot be used together with the DMN Engine

      Problem

      • The camunda-engine-feel-scala artifact contains the classes of org.camunda.feel:feel-engine
      • When using the Standalone FEEL Engine together with the DMN Engine, the classes are overlapping, which could lead to unexpected behavior

      Solution

      • A new artifact of the FEEL Engine is published, which already shades the Scala Library
      • The shaded FEEL Engine artifact is included in Camunda BPM distros by default
      • The DMN Engine cannot be reconfigured to use the unshaded FEEL Engine artifact, which means that calling the API directly results in handling prefixed Scala Library classes, e.g., camundajar.impl.scala.Either; this can be avoided by using the FEEL Engine as Java Script Engine (JSR 223)

      Reasoning
      An anti-solution would be to relocate the FEEL Engine in the camunda-engine-feel-scala artifact:

      • The package name of the FEEL Engine would suddenly change
      • This would be surprising for 7.13 users who already implemented code against the FEEL Engine classes (e.g., org.camunda.feel.syntaxtree.ZonedTime)

      Hints

        This is the controller panel for Smart Panels app

            [CAM-12136] Standalone FEEL Engine cannot be used together with the DMN Engine

            Tassilo Weidner created issue -
            Tassilo Weidner made changes -
            Mentioned Roles
            Tassilo Weidner made changes -
            Mentioned Groups
            Tassilo Weidner made changes -
            Description Original: *Problem*

            * The {{camunda-engine-feel-scala}} artifact contain the classes of {{org.camunda.feel:feel-engine}}
            * The Scala Library is shaded to the package name {{camundajar.impl.scala}}
            * When using the Standalone FEEL Engine together with the DMN Engine, the classes are overlapping which could lead to unexpected behavior

            *Solution*

            * A new artifact of the FEEL Engine is published which already shades the Scala Library
            * The shaded FEEL Engine artifact is included in Camunda BPM distros by default

            *Reasoning*

            * Users are not forced to use a specific version of the Scala Library in their projects
            * An anti-solution is to relocate the FEEL Engine in the {{camunda-engine-feel-scala}} artifact
            ** The package name of the FEEL Engine would suddenly change
            ** This would be surprising for 7.13 users which already implemented against the FEEL Engine classes (e.g., against {{org.camunda.feel.syntaxtree.ZonedTime}})
            * Users which use the standalone FEEL Engine can use the not shaded artifact
            ** Users would need to take care themselves to have the compatible Scala Library on the classpath

            *Hints*

            * Add documentation here: https://docs.camunda.org/manual/7.13/update/patch-level/#special-considerations
            * The maven coordinates of the FEEL Engine shouldn't change by default, instead, introduce a new artifact with a new artifact id (e.g., {{feel-engine-scala-shaded}}
            New: *Problem*
             * The {{camunda-engine-feel-scala}} artifact contains the classes of {{org.camunda.feel:feel-engine}}
             * The Scala Library is shaded to the package name {{camundajar.impl.scala}}
             * When using the Standalone FEEL Engine together with the DMN Engine, the classes are overlapping which could lead to unexpected behavior

            *Solution*
             * A new artifact of the FEEL Engine is published which already shades the Scala Library
             * The shaded FEEL Engine artifact is included in Camunda BPM distros by default

            *Reasoning*
             * Users are not forced to use a specific version of the Scala Library in their projects
             * An anti-solution is to relocate the FEEL Engine in the {{camunda-engine-feel-scala}} artifact
             ** The package name of the FEEL Engine would suddenly change
             ** This would be surprising for 7.13 users who already implemented against the FEEL Engine classes (e.g., against {{org.camunda.feel.syntaxtree.ZonedTime}})
             * Users who use the standalone FEEL Engine can use the not shaded artifact
             ** Users themselves would need to take care to have the compatible Scala Library on the classpath

            *Hints*
             * Add documentation here: [https://docs.camunda.org/manual/7.13/update/patch-level/#special-considerations]
             * The maven coordinates of the FEEL Engine shouldn't change by default, instead, introduce a new artifact with a new artifact id (e.g., {{feel-engine-scala-shaded}}
            Tassilo Weidner made changes -
            Mentioned Roles
            Tassilo Weidner made changes -
            Mentioned Groups
            Tassilo Weidner made changes -
            Description Original: *Problem*
             * The {{camunda-engine-feel-scala}} artifact contains the classes of {{org.camunda.feel:feel-engine}}
             * The Scala Library is shaded to the package name {{camundajar.impl.scala}}
             * When using the Standalone FEEL Engine together with the DMN Engine, the classes are overlapping which could lead to unexpected behavior

            *Solution*
             * A new artifact of the FEEL Engine is published which already shades the Scala Library
             * The shaded FEEL Engine artifact is included in Camunda BPM distros by default

            *Reasoning*
             * Users are not forced to use a specific version of the Scala Library in their projects
             * An anti-solution is to relocate the FEEL Engine in the {{camunda-engine-feel-scala}} artifact
             ** The package name of the FEEL Engine would suddenly change
             ** This would be surprising for 7.13 users who already implemented against the FEEL Engine classes (e.g., against {{org.camunda.feel.syntaxtree.ZonedTime}})
             * Users who use the standalone FEEL Engine can use the not shaded artifact
             ** Users themselves would need to take care to have the compatible Scala Library on the classpath

            *Hints*
             * Add documentation here: [https://docs.camunda.org/manual/7.13/update/patch-level/#special-considerations]
             * The maven coordinates of the FEEL Engine shouldn't change by default, instead, introduce a new artifact with a new artifact id (e.g., {{feel-engine-scala-shaded}}
            New: *Problem*
             * The {{camunda-engine-feel-scala}} artifact contains the classes of {{org.camunda.feel:feel-engine}}
             * The Scala Library is shaded to the package name {{camundajar.impl.scala}}
             * When using the Standalone FEEL Engine together with the DMN Engine, the classes are overlapping which could lead to unexpected behavior

            *Solution*
             * A new artifact of the FEEL Engine is published which already shades the Scala Library
             * The shaded FEEL Engine artifact is included in Camunda BPM distros by default

            *Reasoning*
             * Users who use the standalone FEEL Engine can use the not shaded artifact
             ** Users themselves would need to take care to have the compatible Scala Library on the classpath
             * By default, users are not forced to use a specific version of the Scala Library in their projects
             * An anti-solution would be to relocate the FEEL Engine in the {{camunda-engine-feel-scala}} artifact
             ** The package name of the FEEL Engine would suddenly change
             ** This would be surprising for 7.13 users who already implemented code against the FEEL Engine classes (e.g., {{org.camunda.feel.syntaxtree.ZonedTime}})

            *Hints*
             * Add documentation here: [https://docs.camunda.org/manual/7.13/update/patch-level/#special-considerations]
             * The maven coordinates of the FEEL Engine shouldn't change, instead, introduce a new artifact with a new artifact id (e.g., {{feel-engine-scala-shaded}}
            Tassilo Weidner made changes -
            Mentioned Roles
            Tassilo Weidner made changes -
            Mentioned Groups
            Tassilo Weidner made changes -
            Labels New: SUPPORT

              tassilo.weidner Tassilo Weidner
              tassilo.weidner Tassilo Weidner
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: