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

Improve Expression Language pluggability

    • Icon: Feature Request Feature Request
    • Resolution: Fixed
    • Icon: L3 - Default L3 - Default
    • 7.18.0, 7.18.0-alpha2
    • None
    • engine
    • None

      User Story (Required on creation):

      I want to use an alternative default Expression Language than JUEL, e.g. Spring Expression Language (SpEL). Since the ExpressionManager used in the engine configuration is not an interface, I have to subclass it and overwrite JUEL-specific code. This is an inconvenient API experience. Furthermore, the ExpressionManager is an internal API and might change at any point without further notice.

      Functional Requirements (Required before implementation):

      Have the process engine configuration rely on an interface, using a default implementation that uses JUEL.

      Technical Requirements (Required before implementation):

      • Turn the ExpressionManager into an interface
      • Turn the current implementation into a concrete implementation of that interface using JUEL
      • Allow setting a different expression manager in the engine configuration
      • Take care of providing an ElProvider in the DMN engine configuration from the process engine configuration. This can be based on the Expression Manager and derived from it by default, but could also be a new configuration option.

      Limitations of Scope (Optional):

      Hints (optional):

        This is the controller panel for Smart Panels app

            [CAM-14530] Improve Expression Language pluggability

            Jan Cheng created issue -
            Tobias Metzke-Bernstein made changes -
            Assignee New: Tobias Metzke-Bernstein [ tobias.metzke ]
            Tobias Metzke-Bernstein made changes -
            Link New: This issue is related to CAMTEAM-233 [ CAMTEAM-233 ]
            Tobias Metzke-Bernstein made changes -
            Summary Original: ExpressionManager should be interface to make it easy to implement a alternative el like spel. New: Turn ExpressionManager into an interface
            Tobias Metzke-Bernstein made changes -
            Labels Original: expression
            Tobias Metzke-Bernstein made changes -
            Description Original: h3. User Story (Required on creation):

            I want implement a alternative el instead of juel, e.g. spring expression language. It's wired to extends ExpressionManager, because it contains juel specified implement.
            h3. Functional Requirements (Required before implementation):
            h3. Technical Requirements (Required before implementation):
            h3. Limitations of Scope (Optional):
            h3. Hints (optional):
            New: h3. User Story (Required on creation):

            I want to use an alternative default Expression Language than JUEL, e.g. Spring Expression Language (SpEL). Since the ExpressionManager used in the engine configuration is not an interface, I have to subclass it and overwrite JUEL-specifc code. This is an inconvenient API experience. Furthermore, the ExpressionManager is internal API and might change at any point without further notice.

            h3. Functional Requirements (Required before implementation):

            Have the process engine configuration rely on an interface, using a default implementation that uses JUEL.

            h3. Technical Requirements (Required before implementation):

            * Turn the ExpressionManager into an interace
            * Turn the current implementation into a concrete implementation of that interface using JUEL
            * Allow setting a different expression manager in the engine configuration

            h3. Limitations of Scope (Optional):
            h3. Hints (optional):
            Tobias Metzke-Bernstein made changes -
            Assignee Original: Tobias Metzke-Bernstein [ tobias.metzke ]
            Tobias Metzke-Bernstein made changes -
            Status Original: Open [ 1 ] New: Ready [ 10005 ]
            Tobias Metzke-Bernstein made changes -
            Description Original: h3. User Story (Required on creation):

            I want to use an alternative default Expression Language than JUEL, e.g. Spring Expression Language (SpEL). Since the ExpressionManager used in the engine configuration is not an interface, I have to subclass it and overwrite JUEL-specifc code. This is an inconvenient API experience. Furthermore, the ExpressionManager is internal API and might change at any point without further notice.

            h3. Functional Requirements (Required before implementation):

            Have the process engine configuration rely on an interface, using a default implementation that uses JUEL.

            h3. Technical Requirements (Required before implementation):

            * Turn the ExpressionManager into an interace
            * Turn the current implementation into a concrete implementation of that interface using JUEL
            * Allow setting a different expression manager in the engine configuration

            h3. Limitations of Scope (Optional):
            h3. Hints (optional):
            New: h3. User Story (Required on creation):

            I want to use an alternative default Expression Language than JUEL, e.g. Spring Expression Language (SpEL). Since the ExpressionManager used in the engine configuration is not an interface, I have to subclass it and overwrite JUEL-specific code. This is an inconvenient API experience. Furthermore, the ExpressionManager is an internal API and might change at any point without further notice.

            h3. Functional Requirements (Required before implementation):

            Have the process engine configuration rely on an interface, using a default implementation that uses JUEL.

            h3. Technical Requirements (Required before implementation):

            * Turn the ExpressionManager into an interface
            * Turn the current implementation into a concrete implementation of that interface using JUEL
            * Make sure the new interface only uses the public API as well - this might require creating further interfaces for classes that are currently JUEL-specific implementation classes
            * Allow setting a different expression manager in the engine configuration

            h3. Limitations of Scope (Optional):
            h3. Hints (optional):
            Tobias Metzke-Bernstein made changes -
            Summary Original: Turn ExpressionManager into an interface New: Improve Expression Language pluggability
            Tobias Metzke-Bernstein made changes -
            Assignee New: Tobias Metzke-Bernstein [ tobias.metzke ]

              Unassigned Unassigned
              jan Jan Cheng
              Tobias Metzke-Bernstein Tobias Metzke-Bernstein
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: