Author: dion
Date: Mon Apr  3 18:13:22 2006
New Revision: 391207

URL: http://svn.apache.org/viewcvs?rev=391207&view=rev
Log:
Allow static methods to be executed on classes, e.g.
if the context contains: Boolean.class as 'variable', 
variable.valueOf('true') should work.

Modified:
    
jakarta/commons/proper/jexl/trunk/src/java/org/apache/commons/jexl/util/introspection/UberspectImpl.java
    
jakarta/commons/proper/jexl/trunk/src/test/org/apache/commons/jexl/JexlTest.java

Modified: 
jakarta/commons/proper/jexl/trunk/src/java/org/apache/commons/jexl/util/introspection/UberspectImpl.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/jexl/trunk/src/java/org/apache/commons/jexl/util/introspection/UberspectImpl.java?rev=391207&r1=391206&r2=391207&view=diff
==============================================================================
--- 
jakarta/commons/proper/jexl/trunk/src/java/org/apache/commons/jexl/util/introspection/UberspectImpl.java
 (original)
+++ 
jakarta/commons/proper/jexl/trunk/src/java/org/apache/commons/jexl/util/introspection/UberspectImpl.java
 Mon Apr  3 18:13:22 2006
@@ -135,6 +135,9 @@
             return null;
 
         Method m = introspector.getMethod(obj.getClass(), methodName, args);
+        if (m == null && obj instanceof Class) {
+            m = introspector.getMethod((Class) obj, methodName, args);
+        }
 
         return (m == null) ? null : new VelMethodImpl(m);
     }

Modified: 
jakarta/commons/proper/jexl/trunk/src/test/org/apache/commons/jexl/JexlTest.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/jexl/trunk/src/test/org/apache/commons/jexl/JexlTest.java?rev=391207&r1=391206&r2=391207&view=diff
==============================================================================
--- 
jakarta/commons/proper/jexl/trunk/src/test/org/apache/commons/jexl/JexlTest.java
 (original)
+++ 
jakarta/commons/proper/jexl/trunk/src/test/org/apache/commons/jexl/JexlTest.java
 Mon Apr  3 18:13:22 2006
@@ -855,6 +855,14 @@
         assertExpression(jc, "aBool.valueOf('true')", Boolean.TRUE);
     }
     
+    public void testStaticMethodInvocationOnClasses() throws Exception
+    {
+        JexlContext jc = JexlHelper.createContext();
+        jc.getVars().put("Boolean", Boolean.class);
+        assertExpression(jc, "Boolean.valueOf('true')", Boolean.TRUE);
+        
+    }
+    
     /**
      * Make sure bad syntax throws ParseException
      * @throws Exception on errors



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to