[
https://issues.apache.org/jira/browse/APEXMALHAR-1972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15096560#comment-15096560
]
Chinmay Kolhatkar commented on APEXMALHAR-1972:
-----------------------------------------------
Hi Ram,
Thanks for the comment.
I've updated the first comment for operators support. All are supported as it
really a Java Expression.
About comparing to other packages, there are some folks in open web who have
already done comparison and janino based expression evaluators seems to be the
best option in terms of performance:
https://dzone.com/articles/even-faster-java-expression
The problem I saw with out of the box evaluators are, some are really greater
in performance but has limited functional set, for eg. restricted math
operations OR only unary operations etc.
But some which provide a good functional coverage lacks in performance. Above
link shows the result.
I also ran some quick and dirty tests which showed the same results.
With this ExpressionEvaluator, one can write any quasi-Java expression compile
it and because it uses janino, it becomes part of JVM execution giving
performance as well.
I tried to look for similar functionally complete but performant
implementation, but failed to find any.
Hence took this approach.
For completeness, I've also added a performance test
(ExpressionPerformanceTest.java) for this evaluator as a part of pull request.
So, for testing on this is done in 3 folds:
1) Performance - ExpressionPerformanceTest
2) Functional - ExpressionEvaluatorTest
3) As a part of Apex DAG (Local Mode) - ExpressionApplicationTest
-Chinmay.
> Create Expression Evaluator Support quasi-Java Expression Language
> ------------------------------------------------------------------
>
> Key: APEXMALHAR-1972
> URL: https://issues.apache.org/jira/browse/APEXMALHAR-1972
> Project: Apache Apex Malhar
> Issue Type: New Feature
> Components: utilities
> Reporter: Chinmay Kolhatkar
> Assignee: Chinmay Kolhatkar
>
> Create Expression Evaluator utility which will have support for quasi-Java
> expression language.
> Usecases, Design, etc need to be added as a comment.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)