static Object eval(String expression, Options options, Configuration configuration) {
        ELProcessorFactory elpFactory = (ELProcessorFactory) configuration
                .getPropertyValue(ELProcessorFactory.EL_PROCESSOR_FACTORY_KEY);
        ELProcessor elp = elpFactory.createELProcessor(configuration);
        elp.getELManager().addELResolver(new OptionsELResolver(options));
        return elp.eval(expression);
    }
static Object eval(String expression, Options options, Configuration configuration) {
        ELProcessorFactory elpFactory = (ELProcessorFactory) configuration
                .getPropertyValue(ELProcessorFactory.EL_PROCESSOR_FACTORY_KEY);
        ELProcessor elp = elpFactory.createELProcessor(configuration);
        elp.getELManager().addELResolver(new OptionsELResolver(options));
        return elp.eval(expression);
    }
static Object eval ( String expression , Options options , Configuration configuration ) { ELProcessorFactory elpFactory = ( ELProcessorFactory ) configuration . getPropertyValue ( ELProcessorFactory . EL_PROCESSOR_FACTORY_KEY ) ; ELProcessor elp = elpFactory . createELProcessor ( configuration ) ; elp . getELManager ( ) . addELResolver ( new OptionsELResolver ( options ) ) ; return elp . eval ( expression ) ; }
Note that we have to use a separate {@link ELProcessor} for each evaluation
as the {@link OptionsELResolver} may not be reused.

@param expression
@param options
@param configuration
@return the result of the expression evaluation
Note that we have to use a separate { @link ELProcessor } for each evaluation as the { @link OptionsELResolver } may not be reused .