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:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to