Issue Details (XML | Word | Printable)

Key: JEXL-3
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: dion gillard
Votes: 1
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Commons JEXL

[JEXL] Static method resolution and changes to context

Created: 04/Apr/06 08:37 AM   Updated: 17/Jul/09 05:55 PM
Return to search
Component/s: None
Affects Version/s: 1.0
Fix Version/s: 2.0

Time Tracking:
Not Specified

File Attachments:
  Size
Zip Archive jexl-patch.zip 2006-04-04 08:39 AM dion gillard 12 kB
Environment:
Operating System: other
Platform: Other

Bugzilla Id: 39193
Resolution Date: 17/Jul/09 05:55 PM


 Description  « Hide
From: Guido Anzuoni <ganzuoni@gmail.com>

Here I will try to explain may changes to see if you agree to include in the trunk.
1. UberspectImpl
I need to include static methods resolution in expressions (e.g.
System.currentTimeMillis()). I patched the class to allow it.

2. JexlContext
Resolving vars using a Map is not enough flexible for my needs. I have modified
it to have a single method
public Object resolveVariable(String var);

This allows me for better flexibility in the resolution process.
I have implemented a JextContext based on a java.util.Map, an extensible
JexlContext and a delegating JexlContext.
The extensible resolver is abstract and has a "parent" context to which
delegates in the case local resolution failes.
Delegating implementation extends the extensible context and uses another
JexlContext for local resolution.

More, I have removed any reference to JexlContex.getVars() in the code.

If you wish I can send the modified classes to better evaluate my changes.



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
dion gillard added a comment - 04/Apr/06 08:39 AM
Created an attachment (id=18022)
Changes as per description

dion gillard added a comment - 04/Apr/06 09:13 AM
I've implemented the static method resolution of this bug, but the rework of
context I think should happen in Jexl 2.x

Rahul Akolkar added a comment - 09/Aug/06 04:45 AM
I agree that the VariableResolver style API is much better than get/set vars. This has to be moved to a major release (if this change is to be made). Therefore, updating fix version to 2.0.

Fyodor Kupolov added a comment - 07/May/07 07:28 AM
Scriptella open source ETL tool actively use JEXL as an expression engine. Thank you for such a great library, but I see one critical limitation of JEXL - it's impossible to instantiate objects and invoke static methods without object instance.

Could you please tell me when 2.0 is going to be released?


Joydeep Sen Sarma added a comment - 07/Apr/08 03:20 PM
+1 - we are considering using JEXL in Hive - a query engine over hadoop.

Henri Biestro added a comment - 17/Jul/09 02:53 PM - edited
Static method resolution is fixed in 2.0.

Rahul Akolkar added a comment - 17/Jul/09 05:55 PM
This should be fixed in the 2.0 branch in SVN. Please try it out (by building the branch) and if further work is needed, reopen this issue with a complete JUnit test that fails.