Repository navigation
Conversation
…etition collections JSON value nodes (text, number, boolean, null) used as the element variable of a BPMN multi instance or CMMN collection repetition are now set as plain Java values. Jackson value node accessor methods (e.g. asText(), asString(), asInt(), isTextual()) keep working on String, Number and Boolean values through a new EL resolver.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When a JSON array is used as the collection of a BPMN multi instance or a CMMN collection repetition, the element variable was set to the Jackson value node. Using it in an expression such as
flowable:assignee="${assignee}"gave the JSON representation ("kermit", including the quotes) instead of the plain value.JSON value nodes (text, number, boolean, null) are now set as plain Java values (
String,Integer,Long,Double,BigDecimal,BigInteger,Boolean,null). Object and array elements are kept as JSON nodes. This works for both Jackson 2 and Jackson 3.To stay backwards compatible, the new
JsonValueNodeMethodsELResolverkeeps the Jackson value node accessor methods (e.g.asText(),asString(),textValue(),asInt(),isTextual()) working onString,NumberandBooleanvalues. It is registered in theDefaultExpressionManagerand theJuelScriptEngine. The methods behave like the Jackson 2 value node methods, which are more lenient than the Jackson 3 ones. One consequence: with Jackson 3, the methods with a default value (e.g.asInt(9)) now coerce the value like Jackson 2 does (" 12 ".asInt(9)returns12instead of9).The tests run through the engine and compare every supported method on the element with the same method on the original Jackson 2 or Jackson 3 node.
Check List: