Orion Poplawski d7e576
diff -up commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/ExpressionImpl.java.javadoc commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/ExpressionImpl.java
Orion Poplawski d7e576
--- commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/ExpressionImpl.java.javadoc	2011-12-19 06:15:00.000000000 -0700
Orion Poplawski d7e576
+++ commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/ExpressionImpl.java	2015-04-15 19:05:24.054352570 -0600
Orion Poplawski d7e576
@@ -32,7 +32,7 @@ public class ExpressionImpl implements E
Orion Poplawski d7e576
     /** The engine for this expression. */
Orion Poplawski d7e576
     protected final JexlEngine jexl;
Orion Poplawski d7e576
     /**
Orion Poplawski d7e576
-     * Original expression stripped from leading & trailing spaces.
Orion Poplawski d7e576
+     * Original expression stripped from leading & trailing spaces.
Orion Poplawski d7e576
      */
Orion Poplawski d7e576
     protected final String expression;
Orion Poplawski d7e576
     /**
Orion Poplawski d7e576
@@ -171,4 +171,4 @@ public class ExpressionImpl implements E
Orion Poplawski d7e576
         };
Orion Poplawski d7e576
     }
Orion Poplawski d7e576
 
Orion Poplawski d7e576
-}
Orion Poplawski d7e576
\ No newline at end of file
Orion Poplawski d7e576
+}
Orion Poplawski d7e576
diff -up commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/introspection/IntrospectorBase.java.javadoc commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/introspection/IntrospectorBase.java
Orion Poplawski d7e576
--- commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/introspection/IntrospectorBase.java.javadoc	2011-12-19 06:15:01.000000000 -0700
Orion Poplawski d7e576
+++ commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/introspection/IntrospectorBase.java	2015-04-15 19:05:24.055352589 -0600
Orion Poplawski d7e576
@@ -31,7 +31,7 @@ import org.apache.commons.logging.Log;
Orion Poplawski d7e576
  * This basic function of this class is to return a Method object for a
Orion Poplawski d7e576
  * particular class given the name of a method and the parameters to the method
Orion Poplawski d7e576
  * in the form of an Object[]
Orion Poplawski d7e576
- * 

Orion Poplawski d7e576
+ * 

Orion Poplawski d7e576
  * The first time the Introspector sees a class it creates a class method map
Orion Poplawski d7e576
  * for the class in question. Basically the class method map is a Hastable where
Orion Poplawski d7e576
  * Method objects are keyed by a concatenation of the method name and the names
Orion Poplawski d7e576
@@ -324,4 +324,4 @@ public class IntrospectorBase {
Orion Poplawski d7e576
             return classMap;
Orion Poplawski d7e576
         }
Orion Poplawski d7e576
     }
Orion Poplawski d7e576
-}
Orion Poplawski d7e576
\ No newline at end of file
Orion Poplawski d7e576
+}
Orion Poplawski d7e576
diff -up commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/introspection/MethodKey.java.javadoc commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/introspection/MethodKey.java
Orion Poplawski d7e576
--- commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/introspection/MethodKey.java.javadoc	2011-12-19 06:15:01.000000000 -0700
Orion Poplawski d7e576
+++ commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/introspection/MethodKey.java	2015-04-15 19:05:24.055352589 -0600
Orion Poplawski d7e576
@@ -40,7 +40,7 @@ import java.util.Arrays;
Orion Poplawski d7e576
  * 

Orion Poplawski d7e576
  * A key can be constructed either from arguments (array of objects) or from parameters
Orion Poplawski d7e576
  * (array of class).
Orion Poplawski d7e576
- * Roughly 3x faster than string key to access the map & uses less memory.
Orion Poplawski d7e576
+ * Roughly 3x faster than string key to access the map & uses less memory.
Orion Poplawski d7e576
  */
Orion Poplawski d7e576
 public final class MethodKey {
Orion Poplawski d7e576
     /** The hash code. */
Orion Poplawski d7e576
diff -up commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/Introspector.java.javadoc commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/Introspector.java
Orion Poplawski d7e576
--- commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/Introspector.java.javadoc	2011-12-19 06:15:01.000000000 -0700
Orion Poplawski d7e576
+++ commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/internal/Introspector.java	2015-04-15 19:05:24.055352589 -0600
Orion Poplawski d7e576
@@ -28,11 +28,11 @@ import org.apache.commons.logging.Log;
Orion Poplawski d7e576
 
Orion Poplawski d7e576
 /**
Orion Poplawski d7e576
  *  Default introspection services.
Orion Poplawski d7e576
- *  

Finding methods as well as property getters & setters.

Orion Poplawski d7e576
+ *  

Finding methods as well as property getters & setters.

Orion Poplawski d7e576
  * @since 1.0
Orion Poplawski d7e576
  */
Orion Poplawski d7e576
 public class Introspector {
Orion Poplawski d7e576
-    /** The logger to use for all warnings & errors. */
Orion Poplawski d7e576
+    /** The logger to use for all warnings & errors. */
Orion Poplawski d7e576
     protected final Log rlog;
Orion Poplawski d7e576
     /** The soft reference to the introspector currently in use. */
Orion Poplawski d7e576
     private volatile SoftReference<IntrospectorBase> ref;
Orion Poplawski d7e576
diff -up commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/introspection/Sandbox.java.javadoc commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/introspection/Sandbox.java
Orion Poplawski d7e576
--- commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/introspection/Sandbox.java.javadoc	2011-12-19 06:14:59.000000000 -0700
Orion Poplawski d7e576
+++ commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/introspection/Sandbox.java	2015-04-15 19:34:32.872928036 -0600
Orion Poplawski d7e576
@@ -26,6 +26,7 @@ import java.util.Set;
Orion Poplawski d7e576
  * through "whitelists" and "blacklists".
Orion Poplawski d7e576
  * 

Orion Poplawski d7e576
  * A whitelist explicitly allows methods/properties for a class;
Orion Poplawski d7e576
+ * 

Orion Poplawski d7e576
  * 
Orion Poplawski d7e576
  * 
  • Orion Poplawski d7e576
      * If a whitelist is empty and thus does not contain any names, all properties/methods are allowed for its class.
    
    Orion Poplawski d7e576
    @@ -34,9 +35,9 @@ import java.util.Set;
    Orion Poplawski d7e576
      * If it is not empty, the only allowed properties/methods are the ones contained.
    
    Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
    - * 

    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * A blacklist explicitly forbids methods/properties for a class;
    
    Orion Poplawski d7e576
    + * 

    Orion Poplawski d7e576
      * 
    Orion Poplawski d7e576
      * 
  • Orion Poplawski d7e576
      * If a blacklist is empty and thus does not contain any names, all properties/methods are forbidden for its class.
    
    Orion Poplawski d7e576
    @@ -47,12 +48,12 @@ import java.util.Set;
    Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * Permissions are composed of three lists, read, write, execute, each being "white" or "black":
    
    Orion Poplawski d7e576
    + * 

    Orion Poplawski d7e576
      * 
    Orion Poplawski d7e576
      * 
  • read controls readable properties
  • Orion Poplawski d7e576
      * 
  • write controls writeable properties
  • Orion Poplawski d7e576
      * 
  • execute controls executable methods and constructor
  • Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
    - * 

    Orion Poplawski d7e576
      * @since 2.1
    
    Orion Poplawski d7e576
      */
    
    Orion Poplawski d7e576
     public final class Sandbox {
    
    Orion Poplawski d7e576
    diff -up commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java.javadoc commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java
    Orion Poplawski d7e576
    --- commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java.javadoc	2011-12-19 06:14:59.000000000 -0700
    Orion Poplawski d7e576
    +++ commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java	2015-04-15 19:53:47.277461744 -0600
    Orion Poplawski d7e576
    @@ -26,6 +26,7 @@ import java.math.MathContext;
    Orion Poplawski d7e576
      * Perform arithmetic.
    
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * All arithmetic operators (+, - , *, /, %) follow the same rules regarding their arguments.
    
    Orion Poplawski d7e576
    + * 

    Orion Poplawski d7e576
      * 
    Orion Poplawski d7e576
      * 
  • If both are null, result is 0
  • Orion Poplawski d7e576
      * 
  • If either is a BigDecimal, coerce both to BigDecimal and and perform operation
  • Orion Poplawski d7e576
    @@ -39,7 +40,6 @@ import java.math.MathContext;
    Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
    - * 

    Orion Poplawski d7e576
      * Note that the only exception throw by JexlArithmetic is ArithmeticException.
    
    Orion Poplawski d7e576
      * @since 2.0
    
    Orion Poplawski d7e576
      */
    
    Orion Poplawski d7e576
    @@ -630,7 +630,7 @@ public class JexlArithmetic {
    Orion Poplawski d7e576
          * Performs a bitwise and.
    
    Orion Poplawski d7e576
          * @param left the left operand
    
    Orion Poplawski d7e576
          * @param right the right operator
    
    Orion Poplawski d7e576
    -     * @return left & right
    
    Orion Poplawski d7e576
    +     * @return left & right
    
    Orion Poplawski d7e576
          * @since 2.1
    
    Orion Poplawski d7e576
          */
    
    Orion Poplawski d7e576
         public Object bitwiseAnd(Object left, Object right) {
    
    Orion Poplawski d7e576
    @@ -681,7 +681,7 @@ public class JexlArithmetic {
    Orion Poplawski d7e576
          * @param left the left operand
    
    Orion Poplawski d7e576
          * @param right the right operator
    
    Orion Poplawski d7e576
          * @param operator the operator
    
    Orion Poplawski d7e576
    -     * @return -1 if left  < right; +1 if left &gt > right; 0 if left == right
    
    Orion Poplawski d7e576
    +     * @return -1 if left < right; +1 if left > right; 0 if left == right
    
    Orion Poplawski d7e576
          * @throws ArithmeticException if either left or right is null
    
    Orion Poplawski d7e576
          * @since 2.1
    
    Orion Poplawski d7e576
          */
    
    Orion Poplawski d7e576
    @@ -761,7 +761,7 @@ public class JexlArithmetic {
    Orion Poplawski d7e576
         }
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
         /**
    
    Orion Poplawski d7e576
    -     * Test if left < right.
    
    Orion Poplawski d7e576
    +     * Test if left < right.
    
    Orion Poplawski d7e576
          *
    
    Orion Poplawski d7e576
          * @param left first value
    
    Orion Poplawski d7e576
          * @param right second value
    
    Orion Poplawski d7e576
    @@ -777,7 +777,7 @@ public class JexlArithmetic {
    Orion Poplawski d7e576
         }
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
         /**
    
    Orion Poplawski d7e576
    -     * Test if left > right.
    
    Orion Poplawski d7e576
    +     * Test if left > right.
    
    Orion Poplawski d7e576
          *
    
    Orion Poplawski d7e576
          * @param left first value
    
    Orion Poplawski d7e576
          * @param right second value
    
    Orion Poplawski d7e576
    @@ -792,7 +792,7 @@ public class JexlArithmetic {
    Orion Poplawski d7e576
         }
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
         /**
    
    Orion Poplawski d7e576
    -     * Test if left <= right.
    
    Orion Poplawski d7e576
    +     * Test if left ≤ right.
    
    Orion Poplawski d7e576
          *
    
    Orion Poplawski d7e576
          * @param left first value
    
    Orion Poplawski d7e576
          * @param right second value
    
    Orion Poplawski d7e576
    @@ -809,7 +809,7 @@ public class JexlArithmetic {
    Orion Poplawski d7e576
         }
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
         /**
    
    Orion Poplawski d7e576
    -     * Test if left >= right.
    
    Orion Poplawski d7e576
    +     * Test if left ≥ right.
    
    Orion Poplawski d7e576
          *
    
    Orion Poplawski d7e576
          * @param left first value
    
    Orion Poplawski d7e576
          * @param right second value
    
    Orion Poplawski d7e576
    @@ -1141,4 +1141,4 @@ public class JexlArithmetic {
    Orion Poplawski d7e576
             }
    
    Orion Poplawski d7e576
             return result;
    
    Orion Poplawski d7e576
         }
    
    Orion Poplawski d7e576
    -}
    Orion Poplawski d7e576
    \ No newline at end of file
    Orion Poplawski d7e576
    +}
    
    Orion Poplawski d7e576
    diff -up commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/JexlEngine.java.javadoc commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/JexlEngine.java
    Orion Poplawski d7e576
    --- commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/JexlEngine.java.javadoc	2011-12-19 06:15:00.000000000 -0700
    Orion Poplawski d7e576
    +++ commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/JexlEngine.java	2015-04-15 19:29:36.837248669 -0600
    Orion Poplawski d7e576
    @@ -53,14 +53,14 @@ import org.apache.commons.jexl2.parser.A
    Orion Poplawski d7e576
     /**
    
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * Creates and evaluates Expression and Script objects.
    
    Orion Poplawski d7e576
    - * Determines the behavior of Expressions & Scripts during their evaluation with respect to:
    
    Orion Poplawski d7e576
    + * Determines the behavior of Expressions & Scripts during their evaluation with respect to:
    
    Orion Poplawski d7e576
    + * 

    Orion Poplawski d7e576
      * 
    Orion Poplawski d7e576
      *  
  • Introspection, see {@link Uberspect}
  • Orion Poplawski d7e576
    - *  
  • Arithmetic & comparison, see {@link JexlArithmetic}
  • Orion Poplawski d7e576
    + *  
  • Arithmetic & comparison, see {@link JexlArithmetic}
  • Orion Poplawski d7e576
      *  
  • Error reporting
  • Orion Poplawski d7e576
      *  
  • Logging
  • Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
    - * 

    Orion Poplawski d7e576
      * 

    The setSilent and setLenient methods allow to fine-tune an engine instance behavior

    Orion Poplawski d7e576
      * according to various error control needs. The lenient/strict flag tells the engine when and if null as operand is
    
    Orion Poplawski d7e576
      * considered an error, the silent/verbose flag tells the engine what to do with the error
    
    Orion Poplawski d7e576
    @@ -68,7 +68,7 @@ import org.apache.commons.jexl2.parser.A
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * 
    Orion Poplawski d7e576
      * 
  • When "silent" & "lenient":
  • Orion Poplawski d7e576
    - * 

    0 & null should be indicators of "default" values so that even in an case of error,

    Orion Poplawski d7e576
    + * 

    0 & null should be indicators of "default" values so that even in an case of error,

    Orion Poplawski d7e576
      * something meaningfull can still be inferred; may be convenient for configurations.
    
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
    @@ -84,7 +84,7 @@ import org.apache.commons.jexl2.parser.A
    Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
      * 
  • When "verbose" & "strict":
  • Orion Poplawski d7e576
      * 

    The finest error control grain is obtained; it is the closest to Java code -

    Orion Poplawski d7e576
    - * still augmented by "script" capabilities regarding automated conversions & type matching.
    
    Orion Poplawski d7e576
    + * still augmented by "script" capabilities regarding automated conversions & type matching.
    
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
    @@ -872,7 +872,7 @@ public class JexlEngine {
    Orion Poplawski d7e576
          * Creates a cache.
    
    Orion Poplawski d7e576
          * @param <K> the key type
    
    Orion Poplawski d7e576
          * @param <V> the value type
    
    Orion Poplawski d7e576
    -     * @param cacheSize the cache size, must be > 0
    
    Orion Poplawski d7e576
    +     * @param cacheSize the cache size, must be > 0
    
    Orion Poplawski d7e576
          * @return a Map usable as a cache bounded to the given size
    
    Orion Poplawski d7e576
          */
    
    Orion Poplawski d7e576
         protected <K, V> Map<K, V> createCache(final int cacheSize) {
    
    Orion Poplawski d7e576
    @@ -1312,7 +1312,7 @@ public class JexlEngine {
    Orion Poplawski d7e576
         }
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
         /**
    
    Orion Poplawski d7e576
    -     * Trims the expression from front & ending spaces.
    
    Orion Poplawski d7e576
    +     * Trims the expression from front & ending spaces.
    
    Orion Poplawski d7e576
          * @param str expression to clean
    
    Orion Poplawski d7e576
          * @return trimmed expression ending in a semi-colon
    
    Orion Poplawski d7e576
          */
    
    Orion Poplawski d7e576
    diff -up commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt.javadoc commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt
    Orion Poplawski d7e576
    --- commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt.javadoc	2011-12-19 06:14:59.000000000 -0700
    Orion Poplawski d7e576
    +++ commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt	2015-04-15 19:06:23.342339942 -0600
    Orion Poplawski d7e576
    @@ -62,7 +62,7 @@ PARSER_END(Parser)
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     /***************************************
    
    Orion Poplawski d7e576
    - *     Skip & Number literal tokens
    
    Orion Poplawski d7e576
    + *     Skip & Number literal tokens
    
    Orion Poplawski d7e576
      ***************************************/
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     <*> SKIP : /* WHITE SPACE */
    
    Orion Poplawski d7e576
    @@ -145,7 +145,7 @@ PARSER_END(Parser)
    Orion Poplawski d7e576
     }
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     /***************************************
    
    Orion Poplawski d7e576
    - *     Identifier & String tokens
    
    Orion Poplawski d7e576
    + *     Identifier & String tokens
    
    Orion Poplawski d7e576
      ***************************************/
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     <*> TOKEN : /* IDENTIFIERS */
    
    Orion Poplawski d7e576
    @@ -275,7 +275,7 @@ void LValueVar() #Reference : {}
    Orion Poplawski d7e576
     }
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     /***************************************
    
    Orion Poplawski d7e576
    - *      Conditional & relational
    
    Orion Poplawski d7e576
    + *      Conditional & relational
    
    Orion Poplawski d7e576
      ***************************************/
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     void ConditionalExpression() #void : {}
    
    Orion Poplawski d7e576
    @@ -398,7 +398,7 @@ void UnaryExpression() #void : {}
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     /***************************************
    
    Orion Poplawski d7e576
    - *      Identifier & Literals
    
    Orion Poplawski d7e576
    + *      Identifier & Literals
    
    Orion Poplawski d7e576
      ***************************************/
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     void Identifier(boolean top) :
    
    Orion Poplawski d7e576
    @@ -501,7 +501,7 @@ void MapEntry() : {}
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     /***************************************
    
    Orion Poplawski d7e576
    - *      Functions & Methods
    
    Orion Poplawski d7e576
    + *      Functions & Methods
    
    Orion Poplawski d7e576
      ***************************************/
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
     void EmptyFunction() : {}
    
    Orion Poplawski d7e576
    diff -up commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngineFactory.java.javadoc commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngineFactory.java
    Orion Poplawski d7e576
    --- commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngineFactory.java.javadoc	2011-12-19 06:15:00.000000000 -0700
    Orion Poplawski d7e576
    +++ commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngineFactory.java	2015-04-15 19:05:24.058352644 -0600
    Orion Poplawski d7e576
    @@ -29,9 +29,9 @@ import org.apache.commons.jexl2.parser.S
    Orion Poplawski d7e576
     /**
    
    Orion Poplawski d7e576
      * Implements the Jexl ScriptEngineFactory for JSF-223.
    
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
    - * Supports the following:<br.>
    
    Orion Poplawski d7e576
    - * Language short names: "JEXL", "Jexl", "jexl", "JEXL2", "Jexl2", "jexl2" 
    Orion Poplawski d7e576
    - * File Extensions: ".jexl", ".jexl2"
    Orion Poplawski d7e576
    + * Supports the following:
    Orion Poplawski d7e576
    + * Language short names: "JEXL", "Jexl", "jexl", "JEXL2", "Jexl2", "jexl2" 
    Orion Poplawski d7e576
    + * File Extensions: ".jexl", ".jexl2"
    Orion Poplawski d7e576
      * "jexl2" etc. were added for engineVersion="2.0".
    
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
    diff -up commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java.javadoc commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java
    Orion Poplawski d7e576
    --- commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java.javadoc	2011-12-19 06:15:00.000000000 -0700
    Orion Poplawski d7e576
    +++ commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java	2015-04-15 19:33:18.303497441 -0600
    Orion Poplawski d7e576
    @@ -95,6 +95,7 @@ public class JexlScriptEngine extends Ab
    Orion Poplawski d7e576
          * Those properties are allways bound to the default engine scope context.
    
    Orion Poplawski d7e576
          * 

    Orion Poplawski d7e576
          * The following properties are defined:
    
    Orion Poplawski d7e576
    +     * 

    Orion Poplawski d7e576
          * 
    Orion Poplawski d7e576
          * 
  • in - refers to the engine scope reader that defaults to reading System.err
  • Orion Poplawski d7e576
          * 
  • out - refers the engine scope writer that defaults to writing in System.out
  • Orion Poplawski d7e576
    @@ -102,7 +103,6 @@ public class JexlScriptEngine extends Ab
    Orion Poplawski d7e576
          * 
  • logger - the JexlScriptEngine logger
  • Orion Poplawski d7e576
          * 
  • System - the System.class
  • Orion Poplawski d7e576
          * 
    
    Orion Poplawski d7e576
    -     * 

    Orion Poplawski d7e576
          * @since 2.0
    
    Orion Poplawski d7e576
          */
    
    Orion Poplawski d7e576
         public class JexlScriptObject {
    
    Orion Poplawski d7e576
    diff -up commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/UnifiedJEXL.java.javadoc commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/UnifiedJEXL.java
    Orion Poplawski d7e576
    --- commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/UnifiedJEXL.java.javadoc	2011-12-19 06:14:58.000000000 -0700
    Orion Poplawski d7e576
    +++ commons-jexl-2.1.1-src/src/main/java/org/apache/commons/jexl2/UnifiedJEXL.java	2015-04-15 19:51:40.950152677 -0600
    Orion Poplawski d7e576
    @@ -38,21 +38,21 @@ import org.apache.commons.jexl2.parser.S
    Orion Poplawski d7e576
      * and facilitate the implementation of expression evaluation.
    
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * An expression can mix immediate, deferred and nested sub-expressions as well as string constants;
    
    Orion Poplawski d7e576
    + * 

    Orion Poplawski d7e576
      * 
    Orion Poplawski d7e576
      * 
  • The "immediate" syntax is of the form "...${jexl-expr}..."
  • Orion Poplawski d7e576
      * 
  • The "deferred" syntax is of the form "...#{jexl-expr}..."
  • Orion Poplawski d7e576
      * 
  • The "nested" syntax is of the form "...#{...${jexl-expr0}...}..."
  • Orion Poplawski d7e576
      * 
  • The "composite" syntax is of the form "...${jexl-expr0}... #{jexl-expr1}..."
  • Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
    - * 

    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
    - * Deferred & immediate expression carry different intentions:
    
    Orion Poplawski d7e576
    + * Deferred & immediate expression carry different intentions:
    
    Orion Poplawski d7e576
    + * 

    Orion Poplawski d7e576
      * 
    Orion Poplawski d7e576
      * 
  • An immediate expression indicate that evaluation is intended to be performed close to
  • Orion Poplawski d7e576
      * the definition/parsing point.
    
    Orion Poplawski d7e576
      * 
  • A deferred expression indicate that evaluation is intended to occur at a later stage.
  • Orion Poplawski d7e576
      * 
    
    Orion Poplawski d7e576
    - * 

    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * For instance: "Hello ${name}, now is #{time}" is a composite "deferred" expression since one
    
    Orion Poplawski d7e576
      * of its subexpressions is deferred. Furthermore, this (composite) expression intent is
    
    Orion Poplawski d7e576
    @@ -62,14 +62,14 @@ import org.apache.commons.jexl2.parser.S
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * The API reflects this feature in 2 methods, prepare and evaluate. The prepare method
    
    Orion Poplawski d7e576
      * will evaluate the immediate subexpression and return an expression that contains only
    
    Orion Poplawski d7e576
    - * the deferred subexpressions (& constants), a prepared expression. Such a prepared expression
    
    Orion Poplawski d7e576
    + * the deferred subexpressions (& constants), a prepared expression. Such a prepared expression
    
    Orion Poplawski d7e576
      * is suitable for a later phase evaluation that may occur with a different JexlContext.
    
    Orion Poplawski d7e576
      * Note that it is valid to call evaluate without prepare in which case the same JexlContext
    
    Orion Poplawski d7e576
      * is used for the 2 evaluation phases.
    
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * In the most common use-case where deferred expressions are to be kept around as properties of objects,
    
    Orion Poplawski d7e576
    - * one should parse & prepare an expression before storing it and evaluate it each time
    
    Orion Poplawski d7e576
    + * one should parse & prepare an expression before storing it and evaluate it each time
    
    Orion Poplawski d7e576
      * the property storing it is accessed.
    
    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
      * 

    Orion Poplawski d7e576
    @@ -339,7 +339,7 @@ public final class UnifiedJEXL {
    Orion Poplawski d7e576
              * 

    Orion Poplawski d7e576
              * In effect, this binds the result of the immediate sub-expressions evaluation in the
    
    Orion Poplawski d7e576
              * context, allowing to differ evaluation of the remaining (deferred) expression within another context.
    
    Orion Poplawski d7e576
    -         * This only has an effect to nested & composite expressions that contain differed & immediate sub-expressions.
    
    Orion Poplawski d7e576
    +         * This only has an effect to nested & composite expressions that contain differed & immediate sub-expressions.
    
    Orion Poplawski d7e576
              * 

    Orion Poplawski d7e576
              * 

    Orion Poplawski d7e576
              * If the underlying JEXL engine is silent, errors will be logged through its logger as warning.
    
    Orion Poplawski d7e576
    @@ -409,7 +409,7 @@ public final class UnifiedJEXL {
    Orion Poplawski d7e576
              * Prepares a sub-expression for interpretation.
    
    Orion Poplawski d7e576
              * @param interpreter a JEXL interpreter
    
    Orion Poplawski d7e576
              * @return a prepared expression
    
    Orion Poplawski d7e576
    -         * @throws JexlException (only for nested & composite)
    
    Orion Poplawski d7e576
    +         * @throws JexlException (only for nested & composite)
    
    Orion Poplawski d7e576
              */
    
    Orion Poplawski d7e576
             protected Expression prepare(Interpreter interpreter) {
    
    Orion Poplawski d7e576
                 return this;
    
    Orion Poplawski d7e576
    @@ -419,7 +419,7 @@ public final class UnifiedJEXL {
    Orion Poplawski d7e576
              * Intreprets a sub-expression.
    
    Orion Poplawski d7e576
              * @param interpreter a JEXL interpreter
    
    Orion Poplawski d7e576
              * @return the result of interpretation
    
    Orion Poplawski d7e576
    -         * @throws JexlException (only for nested & composite)
    
    Orion Poplawski d7e576
    +         * @throws JexlException (only for nested & composite)
    
    Orion Poplawski d7e576
              */
    
    Orion Poplawski d7e576
             protected abstract Object evaluate(Interpreter interpreter);
    
    Orion Poplawski d7e576
         }
    
    Orion Poplawski d7e576
    @@ -734,7 +734,7 @@ public final class UnifiedJEXL {
    Orion Poplawski d7e576
         }
    
    Orion Poplawski d7e576
     
    
    Orion Poplawski d7e576
         /** Creates a a {@link UnifiedJEXL.Expression} from an expression string.
    
    Orion Poplawski d7e576
    -     *  Uses & fills up the expression cache if any.
    
    Orion Poplawski d7e576
    +     *  Uses & fills up the expression cache if any.
    
    Orion Poplawski d7e576
          * 

    Orion Poplawski d7e576
          * If the underlying JEXL engine is silent, errors will be logged through its logger as warnings.
    
    Orion Poplawski d7e576
          * 

    Orion Poplawski d7e576
    @@ -1010,20 +1010,23 @@ public final class UnifiedJEXL {
    Orion Poplawski d7e576
          * evaluation and their output gathered through a writer. 
    
    Orion Poplawski d7e576
          * It is thus possible to use looping or conditional construct "around" expressions generating output.
    
    Orion Poplawski d7e576
          * 

    Orion Poplawski d7e576
    -     * For instance:
    
    Orion Poplawski d7e576
    -     * 

    Orion Poplawski d7e576
    +     * 

    For instance:

    Orion Poplawski d7e576
    +     * 

    Orion Poplawski d7e576
    +     * 
    Orion Poplawski d7e576
          * $$ for(var x : [1, 3, 5, 42, 169]) {
    
    Orion Poplawski d7e576
          * $$   if (x == 42) {
    
    Orion Poplawski d7e576
          * Life, the universe, and everything
    
    Orion Poplawski d7e576
    -     * $$   } else if (x > 42) {
    
    Orion Poplawski d7e576
    +     * $$   } else if (x > 42) {
    
    Orion Poplawski d7e576
          * The value $(x} is over fourty-two
    
    Orion Poplawski d7e576
          * $$   } else {
    
    Orion Poplawski d7e576
          * The value ${x} is under fourty-two
    
    Orion Poplawski d7e576
          * $$   }
    
    Orion Poplawski d7e576
          * $$ }
    
    Orion Poplawski d7e576
          * 
    
    Orion Poplawski d7e576
    +     * 

    Orion Poplawski d7e576
          * Will evaluate as:
    
    Orion Poplawski d7e576
    -     * 

    Orion Poplawski d7e576
    +     * 

    Orion Poplawski d7e576
    +     * 
    Orion Poplawski d7e576
          * The value 1 is under fourty-two
    
    Orion Poplawski d7e576
          * The value 3 is under fourty-two
    
    Orion Poplawski d7e576
          * The value 5 is under fourty-two
    
    Orion Poplawski d7e576
    @@ -1033,10 +1036,10 @@ public final class UnifiedJEXL {
    Orion Poplawski d7e576
          * 

    Orion Poplawski d7e576
          * During evaluation, the template context exposes its writer as '$jexl' which is safe to use in this case.
    
    Orion Poplawski d7e576
          * This allows writing directly through the writer without adding new-lines as in:
    
    Orion Poplawski d7e576
    -     * 

    Orion Poplawski d7e576
    +     * 

    Orion Poplawski d7e576
    +     * 
    Orion Poplawski d7e576
          * $$ for(var cell : cells) { $jexl.print(cell); $jexl.print(';') }
    
    Orion Poplawski d7e576
          * 
    
    Orion Poplawski d7e576
    -     * 

    Orion Poplawski d7e576
          * 

    Orion Poplawski d7e576
          * A template is expanded as one JEXL script and a list of UnifiedJEXL expressions; each UnifiedJEXL expression
    
    Orion Poplawski d7e576
          * being replace in the script by a call to jexl:print(expr) (the expr is in fact the expr number in the template).
    
    Orion Poplawski d7e576
    @@ -1461,4 +1464,4 @@ public final class UnifiedJEXL {
    Orion Poplawski d7e576
         public Template createTemplate(String source) {
    
    Orion Poplawski d7e576
             return new Template("$$", new StringReader(source), (String[]) null);
    
    Orion Poplawski d7e576
         }
    
    Orion Poplawski d7e576
    -}
    Orion Poplawski d7e576
    \ No newline at end of file
    Orion Poplawski d7e576
    +}