-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: string escape characters #750
Conversation
Hey @saig0 , I tried to solve the bug about the new line character. I thought that the problem involved also all the other special characters, so I changed a bit the behaviour of the engine. Please let me know your thoughts 👍 💭 🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nicpuppa awesome. 🎉
I have a few minor comments before merging. Please have a look. 🍪
src/test/scala/org/camunda/feel/impl/interpreter/InterpreterStringExpressionTest.scala
Outdated
Show resolved
Hide resolved
src/test/scala/org/camunda/feel/impl/interpreter/InterpreterStringExpressionTest.scala
Show resolved
Hide resolved
Expressions which contain escapes are now translated as if in a string literal
Instead of using a Java 15 escape function (not compatible with java 11), using a built-in scala function to parse escpae characters in strings
fbf0dc8
to
ebdb110
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nicpuppa very nice! 🎉
I did a manual test with the changes to see how it works in Zeebe. And it looks good. ✔️ The newline characters are not escaped anymore, except for the static value but this is probably related to Zeebe and not the FEEL engine. It seems that Unicode characters are still escaped but we can follow up on this issue.
Before merging, please have a look at my comments. 🚀
Use a more functional expression in translateEscapes new function. Use translateEscapes function also in parseUnaryTests
/backport |
Successfully created backport PR for |
/backport |
Backport failed for Please cherry-pick the changes locally and resolve any conflicts. git fetch origin 1.16
git worktree add -d .worktree/backport-750-to-1.16 origin/1.16
cd .worktree/backport-750-to-1.16
git switch --create backport-750-to-1.16
git cherry-pick -x dbef7e42c2c9c2ba59e8bd959dabe50f7c8c2c01 f1f320479a04c24e320e0b2d8a88bffa3ae31275 37c2b4b67a441b8273478837c5aa3da1c0c62ef0 ccd4e02c5a4df7a3c5431a1babf5c5a23f991117 ebdb11056b4c09ef4926a403c0b8f6ad356e85db 2c8c1b7c7ef51205535cabd29d184c2c12088da4 |
This comment was marked as resolved.
This comment was marked as resolved.
#21884) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.camunda.feel:feel-engine](http://www.camunda.org) ([source](https://redirect.github.com/camunda/feel-scala)) | `1.18.0-alpha1` -> `1.18.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.camunda.feel:feel-engine/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.camunda.feel:feel-engine/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.camunda.feel:feel-engine/1.18.0-alpha1/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.camunda.feel:feel-engine/1.18.0-alpha1/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>camunda/feel-scala (org.camunda.feel:feel-engine)</summary> ### [`v1.18.0`](https://redirect.github.com/camunda/feel-scala/releases/tag/1.18.0) [Compare Source](https://redirect.github.com/camunda/feel-scala/compare/1.18.0-alpha1...1.18.0) #### What's Changed ##### Features ✨ - feat: Add built-in function to strip whitespace by [@​skayliu](https://redirect.github.com/skayliu) in [https://github.com/camunda/feel-scala/pull/826](https://redirect.github.com/camunda/feel-scala/pull/826) - feat: Add built-in function to generate a UUID string by [@​skayliu](https://redirect.github.com/skayliu) in [https://github.com/camunda/feel-scala/pull/834](https://redirect.github.com/camunda/feel-scala/pull/834) - feat: Add built-in function to encode a string as base64 by [@​sbuettner](https://redirect.github.com/sbuettner) in [https://github.com/camunda/feel-scala/pull/847](https://redirect.github.com/camunda/feel-scala/pull/847) - feat: Add built-in function to check if a list is empty by [@​skayliu](https://redirect.github.com/skayliu) in [https://github.com/camunda/feel-scala/pull/851](https://redirect.github.com/camunda/feel-scala/pull/851) - feat: Make the FeelEngineBuilder available from Java/Kotlin by [@​vicmosin](https://redirect.github.com/vicmosin) in [https://github.com/camunda/feel-scala/pull/832](https://redirect.github.com/camunda/feel-scala/pull/832) - feat: I can interrupt an expression evaluation by [@​vicmosin](https://redirect.github.com/vicmosin) in [https://github.com/camunda/feel-scala/pull/824](https://redirect.github.com/camunda/feel-scala/pull/824) ##### Fixes 🐛 - fix: Regression in string() function for string and null values by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/749](https://redirect.github.com/camunda/feel-scala/pull/749) - fix: String escape characters by [@​nicpuppa](https://redirect.github.com/nicpuppa) in [https://github.com/camunda/feel-scala/pull/750](https://redirect.github.com/camunda/feel-scala/pull/750) - fix: Double quotes in string literal are escaped by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/780](https://redirect.github.com/camunda/feel-scala/pull/780) - fix: Variable resolution for custom context by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/786](https://redirect.github.com/camunda/feel-scala/pull/786) - fix: `string()` function can handle a context with custom value types by [@​mustafadagher](https://redirect.github.com/mustafadagher) in [https://github.com/camunda/feel-scala/pull/833](https://redirect.github.com/camunda/feel-scala/pull/833) - fix: Invoke `context()` function with a list containing a custom context by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/858](https://redirect.github.com/camunda/feel-scala/pull/858) - fix: `substring()` with exceeding length by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/893](https://redirect.github.com/camunda/feel-scala/pull/893) - fix: `number()` to return null if the given string is invalid by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/892](https://redirect.github.com/camunda/feel-scala/pull/892) - fix: Return `null` if a date is invalid by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/889](https://redirect.github.com/camunda/feel-scala/pull/889) - fix: Function `context put()` works for more than two keys by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/902](https://redirect.github.com/camunda/feel-scala/pull/902) - fix: Unary-test behavior with special input variable `?` by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/887](https://redirect.github.com/camunda/feel-scala/pull/887) - fix: List operation returns null if the value is not a list by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/895](https://redirect.github.com/camunda/feel-scala/pull/895) - fix: Variable name starting with "in" by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/909](https://redirect.github.com/camunda/feel-scala/pull/909) - fix: Parse expression with NBSP character by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/914](https://redirect.github.com/camunda/feel-scala/pull/914) - fix: Detect duplicated context values in `distinct values()` + `union()` + `duplicate values()` by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/908](https://redirect.github.com/camunda/feel-scala/pull/908) ##### Dependencies 🤖 - chore(deps): bump org.apache.maven.plugins:maven-shade-plugin from 3.5.0 to 3.5.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/733](https://redirect.github.com/camunda/feel-scala/pull/733) - build: Update mvn-scalafmt plugin by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/721](https://redirect.github.com/camunda/feel-scala/pull/721) - chore(deps-dev): bump version.log4j from 2.20.0 to 2.21.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/745](https://redirect.github.com/camunda/feel-scala/pull/745) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.1.2 to 3.2.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/755](https://redirect.github.com/camunda/feel-scala/pull/755) - chore(deps-dev): bump version.log4j from 2.21.0 to 2.21.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/754](https://redirect.github.com/camunda/feel-scala/pull/754) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.1 to 3.2.2 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/760](https://redirect.github.com/camunda/feel-scala/pull/760) - chore(deps-dev): bump version.log4j from 2.21.1 to 2.22.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/764](https://redirect.github.com/camunda/feel-scala/pull/764) - chore(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.4.5 to 3.5.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/766](https://redirect.github.com/camunda/feel-scala/pull/766) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.2 to 3.2.3 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/775](https://redirect.github.com/camunda/feel-scala/pull/775) - chore(deps-dev): bump version.log4j from 2.22.0 to 2.22.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/787](https://redirect.github.com/camunda/feel-scala/pull/787) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/793](https://redirect.github.com/camunda/feel-scala/pull/793) - chore(deps): bump actions/cache from 3 to 4 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/795](https://redirect.github.com/camunda/feel-scala/pull/795) - chore(deps): bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/812](https://redirect.github.com/camunda/feel-scala/pull/812) - chore(deps-dev): bump version.log4j from 2.22.1 to 2.23.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/811](https://redirect.github.com/camunda/feel-scala/pull/811) - chore(deps): bump org.scala-lang:scala-library from 2.13.12 to 2.13.13 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/813](https://redirect.github.com/camunda/feel-scala/pull/813) - chore(deps-dev): bump version.log4j from 2.23.0 to 2.23.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/816](https://redirect.github.com/camunda/feel-scala/pull/816) - chore(deps): bump org.apache.maven.plugins:maven-assembly-plugin from 3.6.0 to 3.7.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/817](https://redirect.github.com/camunda/feel-scala/pull/817) - chore(deps): bump org.apache.maven.plugins:maven-assembly-plugin from 3.7.0 to 3.7.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/819](https://redirect.github.com/camunda/feel-scala/pull/819) - chore(deps): bump com.lihaoyi:fastparse\_2.13 from 3.0.2 to 3.1.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/827](https://redirect.github.com/camunda/feel-scala/pull/827) - chore(deps): bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/828](https://redirect.github.com/camunda/feel-scala/pull/828) - chore(deps): bump org.apache.maven.plugins:maven-jar-plugin from 3.4.0 to 3.4.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/837](https://redirect.github.com/camunda/feel-scala/pull/837) - chore(deps): bump org.apache.maven.plugins:maven-shade-plugin from 3.5.2 to 3.5.3 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/842](https://redirect.github.com/camunda/feel-scala/pull/842) - chore(deps): bump net.alchim31.maven:scala-maven-plugin from 4.8.1 to 4.9.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/841](https://redirect.github.com/camunda/feel-scala/pull/841) - chore(deps): bump org.scala-lang:scala-library from 2.13.13 to 2.13.14 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/845](https://redirect.github.com/camunda/feel-scala/pull/845) - chore(deps): bump net.alchim31.maven:scala-maven-plugin from 4.9.0 to 4.9.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/849](https://redirect.github.com/camunda/feel-scala/pull/849) - chore(deps): bump org.apache.maven.plugins:maven-shade-plugin from 3.5.3 to 3.6.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/862](https://redirect.github.com/camunda/feel-scala/pull/862) - chore(deps): bump com.fasterxml.uuid:java-uuid-generator from 5.0.0 to 5.1.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/863](https://redirect.github.com/camunda/feel-scala/pull/863) - chore(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.5.0 to 3.6.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/868](https://redirect.github.com/camunda/feel-scala/pull/868) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.5 to 3.3.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/866](https://redirect.github.com/camunda/feel-scala/pull/866) - chore(deps): bump org.apache.maven.plugins:maven-jar-plugin from 3.4.1 to 3.4.2 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/869](https://redirect.github.com/camunda/feel-scala/pull/869) - chore(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.6.0 to 3.6.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/871](https://redirect.github.com/camunda/feel-scala/pull/871) - chore(deps): bump net.alchim31.maven:scala-maven-plugin from 4.9.1 to 4.9.2 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/872](https://redirect.github.com/camunda/feel-scala/pull/872) - chore(deps): bump com.lihaoyi:fastparse\_2.13 from 3.1.0 to 3.1.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/875](https://redirect.github.com/camunda/feel-scala/pull/875) - chore(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.6.1 to 3.6.2 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/878](https://redirect.github.com/camunda/feel-scala/pull/878) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.3.0 to 3.3.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/876](https://redirect.github.com/camunda/feel-scala/pull/876) - chore(deps): bump org.apache.maven.plugins:maven-site-plugin from 3.12.1 to 3.20.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/886](https://redirect.github.com/camunda/feel-scala/pull/886) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.3.1 to 3.4.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/885](https://redirect.github.com/camunda/feel-scala/pull/885) - chore(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.6.2 to 3.7.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/894](https://redirect.github.com/camunda/feel-scala/pull/894) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.4.0 to 3.5.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/910](https://redirect.github.com/camunda/feel-scala/pull/910) #### New Contributors - [@​lzgabel](https://redirect.github.com/lzgabel) made their first contribution in [https://github.com/camunda/feel-scala/pull/734](https://redirect.github.com/camunda/feel-scala/pull/734) - [@​jonathanlukas](https://redirect.github.com/jonathanlukas) made their first contribution in [https://github.com/camunda/feel-scala/pull/794](https://redirect.github.com/camunda/feel-scala/pull/794) - [@​vicmosin](https://redirect.github.com/vicmosin) made their first contribution in [https://github.com/camunda/feel-scala/pull/824](https://redirect.github.com/camunda/feel-scala/pull/824) - [@​skayliu](https://redirect.github.com/skayliu) made their first contribution in [https://github.com/camunda/feel-scala/pull/826](https://redirect.github.com/camunda/feel-scala/pull/826) - [@​mustafadagher](https://redirect.github.com/mustafadagher) made their first contribution in [https://github.com/camunda/feel-scala/pull/833](https://redirect.github.com/camunda/feel-scala/pull/833) - [@​sbuettner](https://redirect.github.com/sbuettner) made their first contribution in [https://github.com/camunda/feel-scala/pull/847](https://redirect.github.com/camunda/feel-scala/pull/847) - [@​andromaqui](https://redirect.github.com/andromaqui) made their first contribution in [https://github.com/camunda/feel-scala/pull/870](https://redirect.github.com/camunda/feel-scala/pull/870) **Full Changelog**: camunda/feel-scala@1.17.0...1.18.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/camunda/camunda). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXV0b21lcmdlIl19-->
Description
This PR changes the evaluation of escape characters within a string. Instead of escaping those characters now are translated.
Related issues
closes #701