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 2002/07/31 00:41:37 UTC

cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime ExpressionEvaluatorImpl.java ExpressionEvaluatorManager.java JspRuntimeLibrary.java

luehe       2002/07/30 15:41:37

  Modified:    jasper2/src/share/org/apache/jasper/compiler Generator.java
                        JspUtil.java
               jasper2/src/share/org/apache/jasper/runtime
                        ExpressionEvaluatorImpl.java
                        ExpressionEvaluatorManager.java
                        JspRuntimeLibrary.java
  Log:
  Made changes to comply with new signature of javax.servlet.jsp.el.ExpressionEvaluator.evaluate()
  
  Revision  Changes    Path
  1.49      +40 -7     jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java
  
  Index: Generator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- Generator.java	29 Jul 2002 23:17:49 -0000	1.48
  +++ Generator.java	30 Jul 2002 22:41:37 -0000	1.49
  @@ -410,6 +410,9 @@
           // Static data for EL function maps:
           generateELFunctionMap();
   
  +        // Static data for EL function maps:
  +	generatePrefixMap();
  +
    	// Class variable declarations
        	
   	/*
  @@ -652,6 +655,34 @@
       }
   
       /*
  +     * Generates prefix map section.
  +     * The prefix map is a map with keys containing prefixes and values being
  +     * the URI corresponding to that prefix in the taglib machinery.
  +     */
  +    private void generatePrefixMap() throws JasperException {
  +        Hashtable taglibs = pageInfo.getTagLibraries();
  +        Iterator iter = taglibs.keySet().iterator();
  +        
  +        out.printil("private static java.util.HashMap _jspx_prefix_map = null;");
  +	iter = taglibs.keySet().iterator();
  +	out.println();
  +	out.printil("static {");
  +	out.pushIndent();
  +	out.printil("_jspx_prefix_map = new java.util.HashMap();");
  +	while (iter.hasNext()) {
  +	    String key = (String) iter.next();
  +	    TagLibraryInfo tli = (TagLibraryInfo) taglibs.get(key);
  +	    out.printin("_jspx_prefix_map.put(");
  +	    out.print(quote(tli.getPrefixString()));
  +	    out.print(", ");
  +	    out.print(quote(tli.getURI()));
  +	    out.println(");");
  +        }
  +	out.popIndent();
  +	out.printil("}");
  +    }
  +
  +    /*
        * Generates the servlet constructor.
        */
       private void generateServletConstructor(String servletClassName) {
  @@ -753,7 +784,8 @@
               if (attr.isExpression() || attr.isELInterpreterInput()) {
   		if (attr.isELInterpreterInput()) {
   		    v = JspUtil.interpreterCall( attr.getValue(), 
  -                        expectedType, "_jspx_fnmap", defaultPrefix );
  +                        expectedType, "_jspx_prefix_map", "_jspx_fnmap",
  +			defaultPrefix );
   		}
   		if (encode) {
   		    return "java.net.URLEncoder.encode(" + v + ")";
  @@ -831,7 +863,7 @@
                       "out.write("
                         + JspUtil.interpreterCall(
                         "${" + new String(n.getText()) + "}", String.class,
  -                      "_jspx_fnmap", "null" )
  +                      "_jspx_prefix_map", "_jspx_fnmap", "null" )
                       + ");");
               } else {
                   out.printil("out.write(" +
  @@ -1042,7 +1074,7 @@
                       "pageContext.findAttribute(\""  + name + "\"), \""
                       + property + "\", "
                       + quote(value.getValue()) + ", "
  -                    + "pageContext, _jspx_fnmap);");
  +                    + "pageContext, _jspx_prefix_map, _jspx_fnmap);");
               } else if( value.isNamedAttribute() ) {
                   // If the value for setProperty was specified via
                   // jsp:attribute, first generate code to evaluate
  @@ -2361,7 +2393,8 @@
   		} else if (attrs[i].isELInterpreterInput()) {
                       // run attrValue through the expression interpreter
                       attrValue = JspUtil.interpreterCall( attrValue,
  -                        c[0], "_jspx_fnmap", n.getPrefix() );
  +                        c[0], "_jspx_prefix_map", "_jspx_fnmap",
  +                        n.getPrefix() );
                   } else {
   		    attrValue = convertString(
                                   c[0], attrValue, attrName,
  
  
  
  1.8       +5 -3      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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JspUtil.java	25 Jul 2002 01:04:44 -0000	1.7
  +++ JspUtil.java	30 Jul 2002 22:41:37 -0000	1.8
  @@ -543,6 +543,7 @@
        */
       public static String interpreterCall(String expression,
                                            Class expectedType,
  +					 String prefixMap,
                                            String fnMap,
                                            String defaultPrefix) 
       {
  @@ -552,6 +553,7 @@
                  + "(" + Generator.quote(expression) + ", "
                  +       expectedType.getName() + ".class, "
                  +       "pageContext,"
  +               +       prefixMap + ", "
                  +       fnMap + ", "
                  +       Generator.quote( defaultPrefix ) + ")";
       }
  
  
  
  1.2       +18 -4     jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/ExpressionEvaluatorImpl.java
  
  Index: ExpressionEvaluatorImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/ExpressionEvaluatorImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ExpressionEvaluatorImpl.java	16 Jul 2002 19:30:52 -0000	1.1
  +++ ExpressionEvaluatorImpl.java	30 Jul 2002 22:41:37 -0000	1.2
  @@ -60,6 +60,7 @@
   import javax.servlet.jsp.JspException;
   import javax.servlet.jsp.PageContext;
   import javax.servlet.jsp.el.ExpressionEvaluator;
  +import javax.servlet.jsp.el.VariableResolver;
   import org.apache.taglibs.standard.lang.jstl.Evaluator;
   
   /**
  @@ -97,13 +98,26 @@
       public Object evaluate( String expression, 
                               Class expectedType, 
                               JspContext jspContext,
  -                            Map elFunctions,
  -                            String defaultPrefix ) 
  -       throws JspException
  +                            Map prefixMap,
  +                            Map functionMap,
  +                            String defaultURI ) 
  +	throws JspException
       {
           // XXX - Assume PageContext for now, until JSTL APIs are updated.
           // change back to JspContext later.
           return delegate.evaluate( "", expression, expectedType, null,
  -            (PageContext)jspContext, elFunctions, defaultPrefix );
  +            (PageContext)jspContext, functionMap, defaultURI );
  +    }
  +
  +    public Object evaluate( String expression, 
  +                            Class expectedType, 
  +                            VariableResolver resolver,
  +                            Map prefixMap,
  +			    Map functionMap,
  +                            String defaultURI )
  +	throws JspException
  +    {
  +	// XXX
  +	return null;
       }
   }
  
  
  
  1.2       +3 -1      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/ExpressionEvaluatorManager.java
  
  Index: ExpressionEvaluatorManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/ExpressionEvaluatorManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ExpressionEvaluatorManager.java	16 Jul 2002 19:30:52 -0000	1.1
  +++ ExpressionEvaluatorManager.java	30 Jul 2002 22:41:37 -0000	1.2
  @@ -93,6 +93,7 @@
       public static Object evaluate( String expression, 
                                      Class expectedType, 
                                      JspContext jspContext,
  +				   Map prefixMap,
                                      Map elFunctions,
                                      String defaultPrefix ) 
              throws JspException
  @@ -103,7 +104,8 @@
   
           // delegate the call
           return (target.evaluate(
  -            expression, expectedType, jspContext, elFunctions, defaultPrefix));
  +            expression, expectedType, jspContext, prefixMap, elFunctions,
  +	    defaultPrefix));
       }
   
       /**
  
  
  
  1.3       +7 -4      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspRuntimeLibrary.java
  
  Index: JspRuntimeLibrary.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspRuntimeLibrary.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JspRuntimeLibrary.java	16 Jul 2002 19:30:52 -0000	1.2
  +++ JspRuntimeLibrary.java	30 Jul 2002 22:41:37 -0000	1.3
  @@ -64,6 +64,7 @@
   
   import java.io.IOException;
   import java.util.Enumeration;
  +import java.util.Map;
   
   import java.lang.reflect.Method;
   
  @@ -531,7 +532,8 @@
   						   String prop,
   						   String expression,
   						   PageContext pageContext,
  -                                                   java.util.Map fnMap )
  +						   Map prefixMap,
  +                                                   Map fnMap )
   	throws JasperException
       {
   	try {
  @@ -541,6 +543,7 @@
   		    expression,
   		    method.getParameterTypes()[0],
   		    pageContext,
  +		    prefixMap,
                       fnMap,
                       "null" )
   	    });
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>