-
Feature Request
-
Resolution: Unresolved
-
L3 - Default
-
None
-
None
-
None
User Story (Required on creation):
As a user, in modeling resources (e.g., on sequence flows), I can define expressions that call methods on a bean.
Functional Requirements (Required before implementation):
E.g., in a sequence flow camunda:expression attribute, I can use the following expression:
${myService.checkCondition('foo')}
Technical Requirements (Required before implementation):
Quarkus ArC does not support the API method BeanManager#getELResolver. Replace it with something else.
Limitations of Scope (Optional):
Hints (Optional):
Right now, only a simple JUEL expression referencing a delegate bean directly can be resolved: ${myDelegateBean}. Referencing a delegate bean via a more complex expression is not possible ${myBean.getDelegateBean()} due to missing support in Quarkus ArC of BeanManager#getELResolver. Let's evaluate if and how we can fix this.
Solution ideas
- Shade de.odysseus.juel into the Quarkus extension like we already do it in the legacy JUEL FEEL Engine.
- Or even cleaner: create a shaded jar containing de.odysseus.juel the DMN legacy FEEL Engine, as well as Quarkus, uses.
- Identify Quarkus environment by catching the UnsupportedOperationException when BeanManager#getELResolver is called in CdiResolver#getWrappedResolver.
- Register the javax.el.BeanELResolver instead.
- Tries to create a ExpressionFactory by looking up the SPI.
- Register an ExpressionFactory SPI in the Qurkus extension pointing to de.odysseus.el.ExpressionFactoryImpl.
- See prototypical implementation (shading is missing): fix-quarkus-el-support.patch.txt
- Wait until Quarkus supports BeanManager#getELResolver
This is the controller panel for Smart Panels app
[CAM-13637] Support JUEL delegate expressions in Quarkus
Summary | Original: [OPTIONAL] In Quarkus Extension, more complex JUEL expressions referencing a delegate bean can be resolved | New: [OPTIONAL] In Quarkus Extension, more complex JUEL expressions referencing a delegate bean cannot be resolved |
Description | Original: Right now, only a simple JUEL expression referencing a delegate bean directly can be resolved: {{$\{myDelegateBean\}}}. Referencing a delegate bean via a more complex expression is not possible {{$\{myBean.getDelegateBean()\}}} due to missing support in Quarkus ARC of {{BeanManager#getELResolver}}. Let's evaluate if and how we can fix this. |
New:
Right now, only a simple JUEL expression referencing a delegate bean directly can be resolved: {{$\{myDelegateBean\}}}. Referencing a delegate bean via a more complex expression is not possible {{$\{myBean.getDelegateBean()\}}} due to missing support in Quarkus ARC of {{BeanManager#getELResolver}}. Let's evaluate if and how we can fix this.
h4. Solution idea See |
Summary | Original: [OPTIONAL] In Quarkus Extension, more complex JUEL expressions referencing a delegate bean cannot be resolved | New: In Quarkus Extension, more complex JUEL expressions referencing a delegate bean cannot be resolved |
Summary | Original: In Quarkus Extension, more complex JUEL expressions referencing a delegate bean cannot be resolved | New: In Quarkus Extension, more complex JUEL expressions referencing a delegate bean can be resolved |
Epic Link |
Original:
|
Component/s | New: quarkus [ 15363 ] |
Issue Type | Original: Bug Report [ 1 ] | New: Feature Request [ 2 ] |