kinman      2002/08/08 13:41:03

  Modified:    jasper2/src/share/org/apache/jasper/compiler Generator.java
                        Parser.java TagFileProcessor.java Validator.java
               jasper2/src/share/org/apache/jasper/resources
                        messages.properties
  Log:
  - Mod to use new JSP api
  - Implement isELEnabled attribute to page directive
  - Add other new (PD2) attributes to tag directive.
  
  Revision  Changes    Path
  1.64      +12 -14    
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.63
  retrieving revision 1.64
  diff -u -r1.63 -r1.64
  --- Generator.java    8 Aug 2002 11:04:51 -0000       1.63
  +++ Generator.java    8 Aug 2002 20:41:02 -0000       1.64
  @@ -859,7 +859,7 @@
   
           public void visit(Node.ELExpression n) throws JasperException {
               n.setBeginJavaLine(out.getJavaLine());
  -            if ( true /*isELEnabled*/ ) {
  +            if ( pageInfo.isELEnabled() ) {
                   out.printil(
                       "out.write("
                    + JspUtil.interpreterCall(this.isTagFile,
  @@ -1987,7 +1987,11 @@
            out.print(tagHandlerVar);
            out.println(".doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)");
            out.pushIndent();
  -         out.printil((methodNesting > 0)? "return true;": "return;");
  +         if (isTagFile) {
  +             out.printil("throw new javax.servlet.jsp.SkipPageException();");
  +         } else {
  +             out.printil((methodNesting > 0)? "return true;": "return;");
  +         }
            out.popIndent();
   
            // Synchronize AT_BEGIN and AT_END scripting variables
  @@ -2089,12 +2093,8 @@
                isSimpleTagHandler = tmpIsSimpleTagHandler;
            }
   
  -         out.printin("if (");
  -         out.print(tagHandlerVar);
  -         out.println(".doTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)");
  -         out.pushIndent();
  -         out.printil((methodNesting > 0)? "return true;": "return;");
  -         out.popIndent();
  +         out.printin(tagHandlerVar);
  +         out.println(".doTag();");
   
            // Synchronize AT_BEGIN and AT_END scripting variables
            syncScriptingVariables(n, VariableInfo.AT_BEGIN);
  @@ -2818,7 +2818,7 @@
        if (tagInfo.hasDynamicAttributes())
            generateSetDynamicAttribute();
   
  -     out.printil("public int doTag() throws javax.servlet.jsp.JspException {");
  +     out.printil("public void doTag() throws javax.servlet.jsp.JspException {");
        out.pushIndent();
        // Declare parameter map for fragment/body invocation
        out.printil("java.util.Map params = null;");
  @@ -2845,8 +2845,6 @@
           out.printil("getJspContext().popPageScope();");
           out.popIndent();
        out.printil("}");
  -     out.println();
  -     out.printil("return EVAL_PAGE;");
        out.popIndent();
        out.printil("}");
        out.popIndent();
  
  
  
  1.19      +3 -7      
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Parser.java
  
  Index: Parser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Parser.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- Parser.java       1 Aug 2002 20:55:04 -0000       1.18
  +++ Parser.java       8 Aug 2002 20:41:02 -0000       1.19
  @@ -133,10 +133,6 @@
                                   boolean isTagFile) throws JasperException {
        Parser parser = new Parser(pc, reader, isTagFile);
   
  -     // Tag files takes only scriptless body.
  -     if (isTagFile)
  -         parser.scriptlessCount++;
  -
        Node.Root root = new Node.Root(null, reader.mark(), parent);
   
        while (reader.hasMoreInput()) {
  
  
  
  1.11      +20 -8     
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagFileProcessor.java
  
  Index: TagFileProcessor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagFileProcessor.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- TagFileProcessor.java     6 Aug 2002 00:11:36 -0000       1.10
  +++ TagFileProcessor.java     8 Aug 2002 20:41:03 -0000       1.11
  @@ -95,7 +95,11 @@
               new JspUtil.ValidAttribute("large-icon"),
               new JspUtil.ValidAttribute("description"),
               new JspUtil.ValidAttribute("example"),
  -            new JspUtil.ValidAttribute("pageEncoding") };
  +            new JspUtil.ValidAttribute("pageEncoding"),
  +            new JspUtil.ValidAttribute("language"),
  +            new JspUtil.ValidAttribute("import"),
  +            new JspUtil.ValidAttribute("isScriptingEnabled"),
  +            new JspUtil.ValidAttribute("isELEnabled") };
   
        private static final JspUtil.ValidAttribute[] attributeDirectiveAttrs = {
            new JspUtil.ValidAttribute("name", true),
  @@ -152,8 +156,12 @@
                                    err);
   
            String tname = n.getAttributeValue("name");
  -         if (tname != null && name != null && !tname.equals(name)) {
  -             err.jspError("jsp.error.tagfile.tld.name", name, tname);
  +         if (tname != null) {
  +                if (name == null) {
  +                 name = tname;
  +                } else if (!tname.equals(name)) {
  +                 err.jspError("jsp.error.tagfile.tld.name", name, tname);
  +                }
            }
               bodycontent = n.getAttributeValue("body-content");
               if (bodycontent != null &&
  @@ -184,13 +192,17 @@
               boolean fragment = JspUtil.booleanValue(
                                        n.getAttributeValue("fragment"));
            String type = n.getAttributeValue("type");
  -            if (type == null)
  -                type = "java.lang.String";
  -
               if (fragment) {
                   n.setFragmentInputs(new Vector());
                   fragmentAttributesMap.put(name, n);
  +
  +                if (type != null) {
  +                    err.jspError("jsp.error.fragmentwithtype");
  +                }
               } else {
  +                if (type == null)
  +                    type = "java.lang.String";
  +
                   attributeVector.addElement(
                       new TagAttributeInfo(name, required, type, rtexprvalue));
               }
  
  
  
  1.20      +14 -5     
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java
  
  Index: Validator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- Validator.java    5 Aug 2002 23:46:29 -0000       1.19
  +++ Validator.java    8 Aug 2002 20:41:03 -0000       1.20
  @@ -111,7 +111,8 @@
            new JspUtil.ValidAttribute("isErrorPage"),
            new JspUtil.ValidAttribute("contentType"),
            new JspUtil.ValidAttribute("pageEncoding"),
  -         new JspUtil.ValidAttribute("isScriptingEnabled")
  +         new JspUtil.ValidAttribute("isScriptingEnabled"),
  +         new JspUtil.ValidAttribute("isELEnabled")
        };
   
        private boolean languageSeen = false;
  @@ -227,6 +228,14 @@
                        pageInfo.setScriptingEnabled(false);
                    else
                        err.jspError(n, "jsp.error.isScriptingEnabled.invalid");
  +             } else if ("isELEnabled".equals(attr)) {
  +                 // XXX Test for multiple occurrence?
  +                 if ("true".equalsIgnoreCase(value))
  +                     pageInfo.setELEnabled(true);
  +                 else if ("false".equalsIgnoreCase(value))
  +                     pageInfo.setELEnabled(false);
  +                 else
  +                     err.jspError(n, "jsp.error.isELEnabled.invalid");
                } else if ("isErrorPage".equals(attr)) {
                    if (isErrorPageSeen)
                        err.jspError(n, "jsp.error.page.multiple.iserrorpage");
  @@ -549,7 +558,7 @@
        }
   
        public void visit(Node.ELExpression n) throws JasperException {
  -            if ( true /*isELEnabled*/ ) {
  +            if ( pageInfo.isELEnabled() ) {
                   JspUtil.validateExpressions(n.getStart(),
                       "${" + new String(n.getText()) + "}", err);
               }
  
  
  
  1.22      +3 -2      
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties
  
  Index: messages.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- messages.properties       1 Aug 2002 21:19:09 -0000       1.21
  +++ messages.properties       8 Aug 2002 20:41:03 -0000       1.22
  @@ -276,8 +276,9 @@
   jsp.error.tld.fn.invalid.signature=Invalid syntax for function signature in TLD.  
Tag Library: {0}, Function: {1}
   
   jsp.error.dynamic.attributes.not.implemented=The {0} tag declares that it accepts 
dynamic attributes but does not implement the required interface
  -jsp.error.nomatching.fragment=an attribute directive whose name attribute equals 
{0} and whose fragment attribute equals true must be declared prior to this directive.
  +jsp.error.nomatching.fragment=Cannot find an attribute directive (with name={0} and 
fragment=true) prior to the fragment directive.
   jsp.error.attribute.noequal=equal symbol expected
   jsp.error.attribute.noquote=quote symbol expected
   jsp.error.attribute.unterminated=attribute for {0} is not properly terminated
   jsp.error.missing.tagInfo=TagInfo object for {0} is missing from TLD
  +jsp.error.fragmentwithtype=Both fragment and type attribute specified in a tag 
directive
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to