You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by lu...@apache.org on 2003/02/05 00:38:46 UTC
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime PageContextImpl.java ProtectedFunctionMapper.java ExpressionEvaluatorImpl.java
luehe 2003/02/04 15:38:46
Modified: jasper2/src/share/org/apache/jasper/compiler JspUtil.java
jasper2/src/share/org/apache/jasper/runtime
PageContextImpl.java ProtectedFunctionMapper.java
Removed: jasper2/src/share/org/apache/jasper/runtime
ExpressionEvaluatorImpl.java
Log:
Integrated commons-el
Revision Changes Path
1.30 +6 -7 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspUtil.java
Index: JspUtil.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspUtil.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- JspUtil.java 3 Feb 2003 20:11:41 -0000 1.29
+++ JspUtil.java 4 Feb 2003 23:38:46 -0000 1.30
@@ -79,11 +79,10 @@
import org.xml.sax.Attributes;
// EL interpreter (subject to change)
-import javax.servlet.jsp.el.ExpressionEvaluator;
import javax.servlet.jsp.el.FunctionMapper;
import javax.servlet.jsp.el.ELException;
import javax.servlet.jsp.el.ELParseException;
-import org.apache.jasper.runtime.ExpressionEvaluatorImpl;
+import org.apache.commons.el.ExpressionEvaluatorImpl;
/**
* This class has all the utility method(s).
@@ -108,8 +107,8 @@
private static final String CLOSE_EXPR_XML = "%";
private static int tempSequenceNumber = 0;
- private static ExpressionEvaluatorImpl expressionEvaluator =
- new ExpressionEvaluatorImpl( null );
+ private static ExpressionEvaluatorImpl expressionEvaluator
+ = new ExpressionEvaluatorImpl();
public static char[] removeQuotes(char []chars) {
CharArrayWriter caw = new CharArrayWriter();
1.40 +32 -52 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/PageContextImpl.java
Index: PageContextImpl.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/PageContextImpl.java,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- PageContextImpl.java 22 Jan 2003 20:08:25 -0000 1.39
+++ PageContextImpl.java 4 Feb 2003 23:38:46 -0000 1.40
@@ -95,7 +95,10 @@
import org.apache.jasper.Constants;
import org.apache.jasper.compiler.Localizer;
-import org.apache.jasper.runtime.el.jstl.JSTLVariableResolver;
+
+import org.apache.commons.el.VariableResolverImpl;
+import org.apache.commons.el.ExpressionEvaluatorImpl;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -117,22 +120,14 @@
/**
* The expression evaluator, for evaluating EL expressions.
*/
- private ExpressionEvaluatorImpl expressionEvaluator = null;
+ private static ExpressionEvaluatorImpl expressionEvaluator
+ = new ExpressionEvaluatorImpl();
/**
* The variable resolver, for evaluating EL expressions.
*/
- private static JSTLVariableResolver variableResolver =
- new JSTLVariableResolver();
-
- /**
- * Expression evaluator for proprietary EL evaluation.
- * XXX - This should be going away once the EL evaluator moves from
- * the JSTL implementation to its own project.
- */
- private static org.apache.jasper.runtime.el.jstl.Evaluator
- proprietaryEvaluator = new
- org.apache.jasper.runtime.el.jstl.Evaluator();
+ private VariableResolverImpl variableResolver
+ = new VariableResolverImpl(this);
PageContextImpl(JspFactory factory) {
this.factory = factory;
@@ -558,13 +553,7 @@
* ExpressionEvaluator that can parse EL expressions.
*/
public ExpressionEvaluator getExpressionEvaluator() {
- if( this.expressionEvaluator == null ) {
- this.expressionEvaluator = new ExpressionEvaluatorImpl( this );
- // no need to synchronize - not a big deal even if we create
- // two of these.
- }
-
- return this.expressionEvaluator;
+ return expressionEvaluator;
}
public void handlePageException(Exception ex)
@@ -640,16 +629,8 @@
/**
* VariableResolver interface
*/
- public Object resolveVariable( String pName )
- throws ELException
- {
- try {
- return PageContextImpl.variableResolver.resolveVariable( pName,
- this );
- }
- catch( org.apache.jasper.runtime.el.jstl.ELException e ) {
- throw new ELException( e );
- }
+ public Object resolveVariable(String pName) throws ELException {
+ return variableResolver.resolveVariable(pName);
}
private static String XmlEscape(String s) {
@@ -687,15 +668,14 @@
* @param defaultPrefix Default prefix for this evaluation
* @return The result of the evaluation
*/
- public static Object proprietaryEvaluate( final String expression,
- final Class expectedType, final PageContext pageContext,
- final ProtectedFunctionMapper functionMap, final String defaultPrefix,
- final boolean escape )
- throws ELException
+ public static Object proprietaryEvaluate(final String expression,
+ final Class expectedType,
+ final PageContext pageContext,
+ final ProtectedFunctionMapper functionMap,
+ final String defaultPrefix,
+ final boolean escape)
+ throws ELException
{
- final java.util.HashMap funcMap =
- (functionMap == null)? null: functionMap.getFnMap();
-
Object retValue;
if (System.getSecurityManager() != null){
try {
@@ -703,9 +683,11 @@
new PrivilegedExceptionAction(){
public Object run() throws Exception{
- return PageContextImpl.proprietaryEvaluator.evaluate( "<unknown>",
- expression, expectedType, null, pageContext,
- funcMap, defaultPrefix );
+ return expressionEvaluator.evaluate(expression,
+ expectedType,
+ pageContext.getVariableResolver(),
+ functionMap,
+ defaultPrefix);
}
});
} catch( PrivilegedActionException ex ) {
@@ -713,18 +695,16 @@
throw new ELException( e );
}
} else {
- try{
- retValue = PageContextImpl.proprietaryEvaluator.evaluate(
- "<unknown>",
- expression, expectedType, null, pageContext,
- funcMap, defaultPrefix );
- } catch(JspException e){
- throw new ELException( e );
- }
+ retValue = expressionEvaluator.evaluate(expression,
+ expectedType,
+ pageContext.getVariableResolver(),
+ functionMap,
+ defaultPrefix);
}
if (escape) {
retValue = XmlEscape(retValue.toString());
}
+
return retValue;
}
1.4 +15 -13 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/ProtectedFunctionMapper.java
Index: ProtectedFunctionMapper.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/ProtectedFunctionMapper.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ProtectedFunctionMapper.java 22 Jan 2003 21:13:51 -0000 1.3
+++ ProtectedFunctionMapper.java 4 Feb 2003 23:38:46 -0000 1.4
@@ -66,6 +66,8 @@
import java.security.PrivilegedAction;
import java.security.PrivilegedExceptionAction;
import java.security.PrivilegedActionException;
+import java.lang.reflect.Method;
+import javax.servlet.jsp.el.FunctionMapper;
/**
* Maps EL functions to their Java method counterparts. Keeps the
@@ -75,7 +77,7 @@
* @author Mark Roth
* @author Kin-man Chung
*/
-public final class ProtectedFunctionMapper {
+public final class ProtectedFunctionMapper implements FunctionMapper {
/**
* Maps "prefix:name" to java.lang.Method objects. Lazily created.
@@ -149,16 +151,16 @@
this.fnmap.put( prefix + ":" + fnName, method );
}
-
/**
- * Only the org.apache.jasper.runtime package can access the actual
- * function map.
- *
- * @return A HashMap, with keys as "name:prefix" and values as
- * the corresponding java.lang.Method instances.
- */
- HashMap getFnMap() {
- return this.fnmap;
+ * Resolves the specified local name and prefix into a Java.lang.Method.
+ * Returns null if the prefix and local name are not found.
+ *
+ * @param prefix the prefix of the function
+ * @param localName the short name of the function
+ * @return the result of the method mapping. Null means no entry found.
+ **/
+ public Method resolveFunction(String prefix, String localName) {
+ return (Method) this.fnmap.get(prefix + ":" + localName);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org