apex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chinmay Kolhatkar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (APEXMALHAR-1972) Create Expression Evaluator Support quasi-Java Expression Language
Date Wed, 13 Jan 2016 17:08:39 GMT

    [ 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)

Mime
View raw message