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.
Even though this feature request is yet not resolved, it is possible to already use the alternative solution by applying the following configurations to your Quarkus Application.
3. Configure a service loader in src/main/resources/META-INF/services/javax.el.ExpressionFactory with de.odysseus.el.ExpressionFactoryImpl
Tassilo Weidner
added a comment - - edited Even though this feature request is yet not resolved, it is possible to already use the alternative solution by applying the following configurations to your Quarkus Application.
1. Configure the process engine accordingly:
@ApplicationScoped
public class MyConfig {
@Produces
public QuarkusProcessEngineConfiguration customEngineConfig() {
return new QuarkusProcessEngineConfiguration() {
@Override
protected void initExpressionManager() {
expressionManager = new ExpressionManager() {
protected ELResolver createElResolver() {
CompositeELResolver compositeElResolver = new CompositeELResolver();
compositeElResolver.add( new VariableScopeElResolver());
compositeElResolver.add( new VariableContextElResolver());
compositeElResolver.add( new CdiResolver() {
protected javax.el.ELResolver getWrappedResolver() {
return new javax.el.BeanELResolver();
}
});
compositeElResolver.add( new ArrayELResolver());
compositeElResolver.add( new ListELResolver());
compositeElResolver.add( new MapELResolver());
compositeElResolver.add( new BeanELResolver());
return compositeElResolver;
}
};
this .expressionManager.addFunctionMapper( new CommandContextFunctionMapper());
this .expressionManager.addFunctionMapper( new DateTimeFunctionMapper());
}
};
}
}
2. Add a JUEL implementation by adding the following dependencies to your `pom.xml` file:
<dependency>
<groupId> de.odysseus.juel </groupId>
<artifactId> juel-api </artifactId>
<version> 2.2.7 </version>
</dependency>
<dependency>
<groupId> de.odysseus.juel </groupId>
<artifactId> juel-spi </artifactId>
<version> 2.2.7 </version>
</dependency>
<dependency>
<groupId> de.odysseus.juel </groupId>
<artifactId> juel-impl </artifactId>
<version> 2.2.7 </version>
</dependency>
3. Configure a service loader in src/main/resources/META-INF/services/javax.el.ExpressionFactory with de.odysseus.el.ExpressionFactoryImpl
Thorben Lindhauer
added a comment - This ticket was migrated to github: https://github.com/camunda/camunda-bpm-platform/issues/2610 . Please use this link for any future references and continue any discussion there.
Unassigned
Tassilo Weidner
Votes:
4Vote for this issue
Watchers:
4Start watching this issue
Created:
Updated:
{"searchers":{"groups":[{"searchers":[{"name":"Project","id":"project","key":"issue.field.project","isShown":true,"lastViewed":1743585085353},{"name":"Summary","id":"summary","key":"issue.field.summary","isShown":true},{"name":"Type","id":"issuetype","key":"issue.field.issuetype","isShown":true,"lastViewed":1743585085354},{"name":"Status","id":"status","key":"issue.field.status","isShown":true,"lastViewed":1743585085363},{"name":"Priority","id":"priority","key":"issue.field.priority","isShown":true},{"name":"Resolution","id":"resolution","key":"issue.field.resolution","isShown":true},{"name":"Creator","id":"creator","key":"issue.field.creator","isShown":true},{"name":"Affects Version","id":"version","key":"issue.field.affectsversions","isShown":true},{"name":"Fix Version","id":"fixfor","key":"issue.field.fixversions","isShown":true},{"name":"Component","id":"component","key":"issue.field.components","isShown":true,"lastViewed":1743585085366},{"name":"% Limits","id":"workratio","key":"issue.field.workratio","isShown":true},{"name":"Link types","id":"issue_link_type","key":"issue.field.issuelinks","isShown":true},{"name":"Environment","id":"environment","key":"issue.field.environment","isShown":true},{"name":"Description","id":"description","key":"issue.field.description","isShown":true},{"name":"Comment","id":"comment","key":"issue.field.comment","isShown":true},{"name":"Label","id":"labels","key":"issue.field.labels","isShown":true},{"name":"Query","id":"text","key":"text","isShown":true},{"name":"Approvals","id":"customfield_12210","key":"com.atlassian.servicedesk.approvals-plugin:sd-approvals","isShown":true},{"name":"Association Count","id":"customfield_13911","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":true},{"name":"Associations","id":"customfield_13910","key":"com.atlassian.jira.plugin.system.customfieldtypes:textarea","isShown":true},{"name":"BPM Version","id":"customfield_12911","key":"com.atlassian.jira.plugin.system.customfieldtypes:select","isShown":true},{"name":"Customer Request Type","id":"customfield_11010","key":"com.atlassian.servicedesk:vp-origin","isShown":true},{"name":"Development","id":"customfield_12310","key":"com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary","isShown":true},{"name":"Effort","id":"customfield_12810","key":"com.atlassian.jira.plugin.system.customfieldtypes:select","isShown":false},{"name":"Email Distribution List","id":"customfield_12915","key":"com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes","isShown":true},{"name":"Environment","id":"customfield_10411","key":"com.atlassian.jira.plugin.system.customfieldtypes:textarea","isShown":false},{"name":"Environment","id":"customfield_11210","key":"com.atlassian.jira.plugin.system.customfieldtypes:textarea","isShown":false},{"name":"Epic","id":"customfield_11810","key":"com.atlassian.jira.plugin.system.customfieldtypes:labels","isShown":true},{"name":"Epic","id":"customfield_10031","key":"com.atlassian.jira.plugin.system.customfieldtypes:labels","isShown":false},{"name":"Epic Colour","id":"customfield_10813","key":"com.pyxis.greenhopper.jira:gh-epic-color","isShown":false},{"name":"Epic Link","id":"customfield_10810","key":"com.pyxis.greenhopper.jira:gh-epic-link","isShown":true},{"name":"Epic Name","id":"customfield_10811","key":"com.pyxis.greenhopper.jira:gh-epic-label","isShown":true},{"name":"Epic Status","id":"customfield_10812","key":"com.pyxis.greenhopper.jira:gh-epic-status","isShown":false},{"name":"Epic/Theme","id":"customfield_10091","key":"com.atlassian.jira.plugin.system.customfieldtypes:labels","isShown":true},{"name":"Flagged","id":"customfield_10090","key":"com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes","isShown":true},{"name":"Global Rank","id":"customfield_10110","key":"com.pyxis.greenhopper.jira:gh-global-rank","isShown":true},{"name":"Groups","id":"customfield_14510","key":"com.atlassian.servicedesk:sd-request-groups","isShown":true},{"name":"Help Request Type","id":"customfield_12713","key":"com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons","isShown":true},{"name":"High Level Steps","id":"customfield_12616","key":"com.atlassian.jira.plugin.system.customfieldtypes:textarea","isShown":true},{"name":"LDAP Groups Picker","id":"customfield_12914","key":"com.onresolve.jira.groovy.groovyrunner:multiple-ldap-picker-cf","isShown":false},{"name":"Linked major incidents","id":"customfield_13010","key":"com.atlassian.servicedesk.incident-management-plugin:sd-incidents-link","isShown":false},{"name":"Number of Licenses Needed","id":"customfield_12116","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":true},{"name":"Optimize PM Priority","id":"customfield_12811","key":"com.pyxis.greenhopper.jira:gh-lexo-rank","isShown":true},{"name":"Organizations","id":"customfield_12211","key":"com.atlassian.servicedesk:sd-customer-organizations","isShown":true},{"name":"Original story points","id":"customfield_13413","key":"com.atlassian.jpo:jpo-custom-field-original-story-points","isShown":true},{"name":"PM Priority","id":"customfield_12010","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":false},{"name":"Parent Link","id":"customfield_13410","key":"com.atlassian.jpo:jpo-custom-field-parent","isShown":false},{"name":"Preconditions - Dats","id":"customfield_12615","key":"com.atlassian.jira.plugin.system.customfieldtypes:textarea","isShown":true},{"name":"Preconditions - Users","id":"customfield_12614","key":"com.atlassian.jira.plugin.system.customfieldtypes:textarea","isShown":true},{"name":"Progress","id":"customfield_13110","key":"com.atlassian.jira.plugin.system.customfieldtypes:textfield","isShown":true},{"name":"Project","id":"customfield_11910","key":"com.atlassian.jira.plugin.system.customfieldtypes:labels","isShown":true},{"name":"Purpose of the IT-Tool","id":"customfield_12114","key":"com.atlassian.jira.plugin.system.customfieldtypes:textfield","isShown":true},{"name":"Questions","id":"customfield_12910","key":"com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes","isShown":true},{"name":"Rank","id":"customfield_11410","key":"com.pyxis.greenhopper.jira:gh-lexo-rank","isShown":true},{"name":"Rank","id":"customfield_11411","key":"com.pyxis.greenhopper.jira:gh-lexo-rank","isShown":true},{"name":"Rank (Obsolete)","id":"customfield_10041","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":false},{"name":"Rank (Obsolete)","id":"customfield_10092","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":false},{"name":"Rank (Obsolete)","id":"customfield_10414","key":"com.pyxis.greenhopper.jira:gh-global-rank","isShown":true},{"name":"Rank (Obsolete)","id":"customfield_10415","key":"com.pyxis.greenhopper.jira:gh-global-rank","isShown":true},{"name":"Release Version History","id":"customfield_10210","key":"com.pyxis.greenhopper.jira:greenhopper-releasedmultiversionhistory","isShown":true},{"name":"Request participants","id":"customfield_11412","key":"com.atlassian.servicedesk:sd-request-participants","isShown":true},{"name":"SP Effort","id":"customfield_13310","key":"com.atlassian.jira.plugin.system.customfieldtypes:select","isShown":true},{"name":"Satisfaction","id":"customfield_12212","key":"com.atlassian.servicedesk:sd-request-feedback","isShown":true},{"name":"Sprint","id":"customfield_10710","key":"com.pyxis.greenhopper.jira:gh-sprint","isShown":true},{"name":"Steps","id":"customfield_12618","key":"com.atlassian.jira.plugin.system.customfieldtypes:textarea","isShown":true},{"name":"Story Points","id":"customfield_11710","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":false},{"name":"Target Quality","id":"customfield_13510","key":"com.atlassian.jira.plugin.system.customfieldtypes:select","isShown":false},{"name":"Team","id":"customfield_13414","key":"com.atlassian.teams:rm-teams-custom-field-team","isShown":true},{"name":"Test Goals","id":"customfield_12613","key":"com.atlassian.jira.plugin.system.customfieldtypes:textarea","isShown":true},{"name":"Time to Resolution","id":"customfield_11124","key":"com.atlassian.servicedesk:sd-sla-field","isShown":true},{"name":"Time to Response","id":"customfield_11121","key":"com.atlassian.servicedesk:sd-sla-field","isShown":true},{"name":"Time to Response - Ericsson","id":"customfield_11122","key":"com.atlassian.servicedesk:sd-sla-field","isShown":true},{"name":"Time to Response - Test","id":"customfield_11123","key":"com.atlassian.servicedesk:sd-sla-field","isShown":true},{"name":"Time to resolution","id":"customfield_11110","key":"com.atlassian.servicedesk:sd-sla-field","isShown":true},{"name":"Time to temporary Solution","id":"customfield_11510","key":"com.atlassian.servicedesk:sd-sla-field","isShown":true},{"name":"Tips","id":"customfield_12617","key":"com.atlassian.jira.plugin.system.customfieldtypes:textarea","isShown":true},{"name":"Title Keywords","id":"customfield_10070","key":"com.atlassian.jira.plugin.system.customfieldtypes:textfield","isShown":true},{"name":"Tool Price per Year","id":"customfield_12612","key":"com.atlassian.jira.plugin.system.customfieldtypes:textfield","isShown":true},{"name":"URL of DPA","id":"customfield_12610","key":"com.atlassian.jira.plugin.system.customfieldtypes:url","isShown":true},{"name":"URL of Terms and Conditions","id":"customfield_12611","key":"com.atlassian.jira.plugin.system.customfieldtypes:url","isShown":true},{"name":"URL of the Tool","id":"customfield_12112","key":"com.atlassian.jira.plugin.system.customfieldtypes:url","isShown":true},{"name":"Which Data will be Processed?","id":"customfield_12117","key":"com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes","isShown":true},{"name":"issueFunction","id":"customfield_11311","key":"com.onresolve.jira.groovy.groovyrunner:jqlFunctionsCustomFieldType","isShown":true}],"type":"DETAILS","title":"Details"},{"searchers":[{"name":"Created Date","id":"created","key":"issue.field.created","isShown":true},{"name":"Updated Date","id":"updated","key":"issue.field.updated","isShown":true},{"name":"Resolution Date","id":"resolutiondate","key":"issue.field.resolution.date","isShown":true},{"name":"Due Date","id":"duedate","key":"issue.field.duedate","isShown":true},{"name":"Postponed Until","id":"customfield_12712","key":"com.atlassian.jira.plugin.system.customfieldtypes:datetime","isShown":true},{"name":"Satisfaction date","id":"customfield_12213","key":"com.atlassian.servicedesk:sd-request-feedback-date","isShown":true},{"name":"Target end","id":"customfield_13412","key":"com.atlassian.jpo:jpo-custom-field-baseline-end","isShown":true},{"name":"Target start","id":"customfield_13411","key":"com.atlassian.jpo:jpo-custom-field-baseline-start","isShown":true}],"type":"DATES","title":"Dates"},{"searchers":[{"name":"Assignee","id":"assignee","key":"issue.field.assignee","isShown":true,"lastViewed":1743585085365},{"name":"Reporter","id":"reporter","key":"issue.field.reporter","isShown":true},{"name":"Authorized support contacts","id":"customfield_10410","key":"com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker","isShown":false},{"name":"DRI","id":"customfield_13210","key":"com.atlassian.jira.plugin.system.customfieldtypes:userpicker","isShown":true},{"name":"Manager","id":"customfield_12620","key":"com.atlassian.jira.plugin.system.customfieldtypes:userpicker","isShown":true},{"name":"Reviewer","id":"customfield_12121","key":"com.atlassian.jira.plugin.system.customfieldtypes:userpicker","isShown":true},{"name":"Reviewer - Ext","id":"customfield_12619","key":"com.atlassian.jira.plugin.system.customfieldtypes:userpicker","isShown":true},{"name":"Tester","id":"customfield_13311","key":"com.atlassian.jira.plugin.system.customfieldtypes:userpicker","isShown":true}],"type":"PEOPLE","title":"People"}]},"values":{"issuetype":{"name":"Type","editHtml":"\n\n\n\n <div class=\"field-group aui-field-issuetype\" >\n <label for=\"searcher-type\">Type</label> <select class=\"select js-default-checkboxmultiselect\"\n id=\"searcher-type\"\n multiple=\"multiple\"\n name=\"type\"\n data-max-inline-results-displayed=\"100\"\n data-placeholder-text=\"Find Issue Types...\">\n <optgroup>\n \n <option class=\" \"\n id=\"type_-2\"\n title=\"All Standard Issue Types\"\n value=\"-2\">All Standard Issue Types</option>\n \n <option class=\" \"\n id=\"type_-3\"\n title=\"All Sub-Task Issue Types\"\n value=\"-3\">All Sub-Task Issue Types</option>\n </optgroup>\n\n <optgroup label=\"Standard Issue Types\">\n \n <option class=\" imagebacked 13832 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=12443&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_1\"\n title=\"Bug Report\"\n value=\"1\">Bug Report</option>\n \n <option class=\" imagebacked 13832 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=12454&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_7\"\n title=\"Epic\"\n value=\"7\">Epic</option>\n \n <option class=\" imagebacked 13832 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=12451&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_2\"\n title=\"Feature Request\"\n value=\"2\">Feature Request</option>\n \n <option class=\" imagebacked 13832 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=12458&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_3\"\n title=\"Task\"\n value=\"3\">Task</option>\n </optgroup>\n\n <optgroup label=\"Sub-Task Issue Types\">\n \n <option class=\" imagebacked 13832 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=12456&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_6\"\n title=\"Sub-task\"\n value=\"6\">Sub-task</option>\n </optgroup>\n </select>\n </div>\n ","validSearcher":true,"isShown":true},"component":{"name":"Component","viewHtml":" <div class=\"searcherValue\">\n \n <label class=\"fieldLabel\" for=\"fieldcomponent\">Component:</label><span id=\"fieldcomponent\" class=\"fieldValue\">\n \n quarkus </span></div>\n","editHtml":"\n <div class=\"field-group aui-field-projectconstant\" >\n <label for=\"searcher-component\">Component</label> <select class=\"select js-default-checkboxmultiselectcomponent\"\n id=\"searcher-component\"\n multiple=\"multiple\"\n name=\"component\"\n data-max-inline-results-displayed=\"100\"\n aria-label=\"Search for components\">\n <optgroup label=\"\">\n <option value=\"-1\" title=\"No Component\">No Component</option>\n <option value=\"id:admin\" title=\"admin\">admin</option>\n <option value=\"id:archetypes\" title=\"archetypes\">archetypes</option>\n <option value=\"id:assert\" title=\"assert\">assert</option>\n <option value=\"id:blog.camunda.org\" title=\"blog.camunda.org\">blog.camunda.org</option>\n <option value=\"id:bpmn model api\" title=\"bpmn model api\">bpmn model api</option>\n <option value=\"id:camunda modeler\" title=\"camunda modeler\">camunda modeler</option>\n <option value=\"id:camunda modeler eclipse plugin\" title=\"camunda modeler eclipse plugin\">camunda modeler eclipse plugin</option>\n <option value=\"id:camunda.org\" title=\"camunda.org\">camunda.org</option>\n <option value=\"id:CI\" title=\"CI\">CI</option>\n <option value=\"id:cmmn model api\" title=\"cmmn model api\">cmmn model api</option>\n <option value=\"id:cockpit\" title=\"cockpit\">cockpit</option>\n <option value=\"id:commons\" title=\"commons\">commons</option>\n <option value=\"id:commons-ui\" title=\"commons-ui\">commons-ui</option>\n <option value=\"id:connect\" title=\"connect\">connect</option>\n <option value=\"id:continuous integration\" title=\"continuous integration\">continuous integration</option>\n <option value=\"id:cycle\" title=\"cycle\">cycle</option>\n <option value=\"id:dmn model api\" title=\"dmn model api\">dmn model api</option>\n <option value=\"id:dmn-engine\" title=\"dmn-engine\">dmn-engine</option>\n <option value=\"id:dmn-ui\" title=\"dmn-ui\">dmn-ui</option>\n <option value=\"id:docker\" title=\"docker\">docker</option>\n <option value=\"id:documentation\" title=\"documentation\">documentation</option>\n <option value=\"id:engine\" title=\"engine\">engine</option>\n <option value=\"id:environments\" title=\"environments\">environments</option>\n <option value=\"id:external task client java\" title=\"external task client java\">external task client java</option>\n <option value=\"id:external task client js\" title=\"external task client js\">external task client js</option>\n <option value=\"id:forum\" title=\"forum\">forum</option>\n <option value=\"id:license-book\" title=\"license-book\">license-book</option>\n <option value=\"id:network\" title=\"network\">network</option>\n <option value=\"id:online-trial\" title=\"online-trial\">online-trial</option>\n <option value=\"id:optimize\" title=\"optimize\">optimize</option>\n <option selected=\"selected\" value=\"id:quarkus\" title=\"quarkus\">quarkus</option>\n <option value=\"id:renderer\" title=\"renderer\">renderer</option>\n <option value=\"id:rest-distro\" title=\"rest-distro\">rest-distro</option>\n <option value=\"id:rpa\" title=\"rpa\">rpa</option>\n <option value=\"id:run\" title=\"run\">run</option>\n <option value=\"id:scala-dmn\" title=\"scala-dmn\">scala-dmn</option>\n <option value=\"id:sdk-js\" title=\"sdk-js\">sdk-js</option>\n <option value=\"id:spin\" title=\"spin\">spin</option>\n <option value=\"id:spring-boot\" title=\"spring-boot\">spring-boot</option>\n <option value=\"id:tasklist\" title=\"tasklist\">tasklist</option>\n <option value=\"id:template-engines\" title=\"template-engines\">template-engines</option>\n <option value=\"id:user interface\" title=\"user interface\">user interface</option>\n <option value=\"id:webapp\" title=\"webapp\">webapp</option>\n <option value=\"id:webapp-react\" title=\"webapp-react\">webapp-react</option>\n <option value=\"id:welcome\" title=\"welcome\">welcome</option>\n <option value=\"id:wildfly-swarm\" title=\"wildfly-swarm\">wildfly-swarm</option>\n </optgroup>\n </select>\n </div>\n \n","jql":"component = quarkus","validSearcher":true,"isShown":true},"project":{"name":"Project","viewHtml":" <div class=\"searcherValue\">\n \n <label class=\"fieldLabel\" for=\"fieldpid\">Project:</label><span id=\"fieldpid\" class=\"fieldValue\">\n \n <a data-pid=\"10230\" data-issue-type-ids=\"\" href=\"/browse/CAM\" title=\"Browse camunda BPM project\">camunda BPM</a> </span></div>\n","editHtml":" \n <div class=\"field-group aui-field-project\" >\n <label for=\"searcher-pid\">Project</label> <select class=\"js-project-checkboxmultiselect\"\n data-placeholder-text=\"Find Projects...\"\n id=\"searcher-pid\"\n multiple=\"multiple\"\n name=\"pid\">\n <optgroup label=\"Recent Projects\">\n </optgroup>\n <optgroup label=\"All Projects\" >\n <option data-icon=\"/secure/projectavatar?pid=10230&size=small\"\n selected=\"selected\" title=\"camunda BPM\"\n value=\"10230\">\n camunda BPM (CAM)\n </option>\n \n <option data-icon=\"/secure/projectavatar?pid=10730&size=small\"\n title=\"Camunda Optimize\"\n value=\"10730\">\n Camunda Optimize (OPT)\n </option>\n </optgroup>\n </select>\n </div>\n \n\n","jql":"project = CAM","validSearcher":true,"isShown":true},"assignee":{"name":"Assignee","editHtml":"\n \n <div class=\"field-group aui-field-userlist\" >\n <label for=\"searcher-assigneeSelect\">Assignee</label> <fieldset rel=\"assignee\" class=\"hidden user-group-searcher-params\">\n </fieldset>\n <select class=\"js-usergroup-checkboxmultiselect\" multiple=\"multiple\" id=\"assignee\" name=\"assignee\" data-placeholder-text=\"Enter username or group\">\n <optgroup>\n <option class=\"headerOption\" data-icon=\"https://jira.camunda.com/secure/useravatar?size=xsmall&avatarId=10163\" value=\"empty\" title=\"Unassigned\">Unassigned</option>\n </optgroup>\n <optgroup>\n </optgroup>\n </select>\n <input type=\"hidden\" name=\"check_prev_assignee\" value=\"true\">\n </div>\n \n","validSearcher":true,"isShown":true},"status":{"name":"Status","editHtml":"\n <div class=\"field-group aui-field-constants\" >\n <label for=\"searcher-status\">Status</label> <select class=\"select js-default-checkboxmultiselectstatuslozenge\"\n data-placeholder-text=\"Find Statuses...\"\n id=\"searcher-status\"\n multiple=\"multiple\"\n name=\"status\"\n data-max-inline-results-displayed=\"100\"\n data-footer-text=\"-92 more options. Continue typing to refine further.\" data-status-lozenge=\"true\">\n <optgroup >\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/open.png\" value=\"1\" title=\"Open\" data-simple-status=\"{"id":"1","name":"Open","description":"The issue is open and ready for the assignee to start work on it.","iconUrl":"/images/icons/statuses/open.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">Open</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/inprogress.png\" value=\"3\" title=\"In Progress\" data-simple-status=\"{"id":"3","name":"In Progress","description":"This issue is being actively worked on at the moment by the assignee.","iconUrl":"/images/icons/statuses/inprogress.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">In Progress</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/reopened.png\" value=\"4\" title=\"Reopened\" data-simple-status=\"{"id":"4","name":"Reopened","description":"This issue was once resolved, but the resolution was deemed incorrect. From here issues are either marked assigned or resolved.","iconUrl":"/images/icons/statuses/reopened.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">Reopened</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/resolved.png\" value=\"5\" title=\"Resolved\" data-simple-status=\"{"id":"5","name":"Resolved","description":"A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.","iconUrl":"/images/icons/statuses/resolved.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Resolved</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/closed.png\" value=\"6\" title=\"Closed\" data-simple-status=\"{"id":"6","name":"Closed","description":"The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.","iconUrl":"/images/icons/statuses/closed.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Closed</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/invisible.png\" value=\"10004\" title=\"In Test\" data-simple-status=\"{"id":"10004","name":"In Test","description":"","iconUrl":"/images/icons/statuses/invisible.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">In Test</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10005\" title=\"Ready\" data-simple-status=\"{"id":"10005","name":"Ready","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">Ready</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"11414\" title=\"Documentation Review\" data-simple-status=\"{"id":"11414","name":"Documentation Review","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">Documentation Review</option>\n </optgroup>\n</select>\n </div>\n \n","validSearcher":true,"isShown":true}}}
[{"id":-1,"name":"My open issues","jql":"assignee = currentUser() AND resolution = Unresolved order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":true},{"id":-2,"name":"Reported by me","jql":"reporter = currentUser() order by created DESC","isSystem":true,"sharePermissions":[],"requiresLogin":true},{"id":-4,"name":"All issues","jql":"order by created DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-5,"name":"Open issues","jql":"resolution = Unresolved order by priority DESC,updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-9,"name":"Done issues","jql":"statusCategory = Done order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-3,"name":"Viewed recently","jql":"issuekey in issueHistory() order by lastViewed DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-6,"name":"Created recently","jql":"created >= -1w order by created DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-7,"name":"Resolved recently","jql":"resolutiondate >= -1w order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-8,"name":"Updated recently","jql":"updated >= -1w order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false}]
We are heavily reliant on method expressions, so upvoting this for future inclusion.