horwat      01/04/13 14:51:34

  Modified:    jasper/src/share/org/apache/jasper/compiler
                        DelegatingListener.java JspParseEventListener.java
                        Parser.java XmlOutputter.java
  Log:
  Fixed mapping between JSP and XML syntax according to Section 5.3 of JSP 1.2 
specification:
        - tag library namespaces are now added to root element instead of using the 
"directive.taglib" syntax
        - fixed character data handling
  
  Bugzilla #1221
  
  Revision  Changes    Path
  1.7       +6 -4      
jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/DelegatingListener.java
  
  Index: DelegatingListener.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/DelegatingListener.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DelegatingListener.java   2000/12/05 11:05:19     1.6
  +++ DelegatingListener.java   2001/04/13 21:51:33     1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/DelegatingListener.java,v
 1.6 2000/12/05 11:05:19 pierred Exp $
  - * $Revision: 1.6 $
  - * $Date: 2000/12/05 11:05:19 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/DelegatingListener.java,v
 1.7 2001/04/13 21:51:33 horwat Exp $
  + * $Revision: 1.7 $
  + * $Date: 2001/04/13 21:51:33 $
    *
    * ====================================================================
    * 
  @@ -238,6 +238,8 @@
           throws JasperException {}
   
       public void handleJspCdata(Mark start, Mark stop, char[] data)
  -        throws JasperException {}
  +        throws JasperException {
  +        delegate.handleJspCdata(start, stop, data);
  +    }
   }
   
  
  
  
  1.25      +9 -5      
jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java
  
  Index: JspParseEventListener.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- JspParseEventListener.java        2001/04/09 23:38:12     1.24
  +++ JspParseEventListener.java        2001/04/13 21:51:33     1.25
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
 1.24 2001/04/09 23:38:12 horwat Exp $
  - * $Revision: 1.24 $
  - * $Date: 2001/04/09 23:38:12 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
 1.25 2001/04/13 21:51:33 horwat Exp $
  + * $Revision: 1.25 $
  + * $Date: 2001/04/13 21:51:33 $
    *
    * ====================================================================
    *
  @@ -752,9 +752,12 @@
            String uri = attrs.getValue("uri");
            String prefix = attrs.getValue("prefix");
               processTaglibDirective(uri, prefix);
  +
  +            //Add xmlns to root element for each taglib
  +            xo.addRootNamespaces(prefix, uri);
           }
   
  -     if (directive.equals("include")) {
  +     else if (directive.equals("include")) {
            String file = attrs.getValue("file");
            if (file == null)
                throw new CompileException(start,
  @@ -781,7 +784,8 @@
                                           ex.getMessage());
            }
        }
  -     if (!directive.equals("include")) {
  +
  +     else if (!directive.equals("include")) {
            xo.append("jsp:directive." + directive, attrs);
        }
       }
  
  
  
  1.8       +4 -2      
jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/Parser.java
  
  Index: Parser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/Parser.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Parser.java       2001/02/09 00:19:19     1.7
  +++ Parser.java       2001/04/13 21:51:34     1.8
  @@ -1063,8 +1063,10 @@
   
       void flushCharData(Mark start, Mark stop) throws JasperException {
           char[] array = caw.toCharArray();
  -        if (array.length != 0) // Avoid unnecessary out.write("") statements...
  -            listener.handleCharData(start, stop, caw.toCharArray());
  +        // Avoid unnecessary out.write("") statements...
  +        if (array.length != 0) {
  +            listener.handleJspCdata(start, stop, caw.toCharArray());
  +        }
           caw = new CharArrayWriter();
       }
   
  
  
  
  1.8       +15 -4     
jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java
  
  Index: XmlOutputter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XmlOutputter.java 2000/12/15 12:29:25     1.7
  +++ XmlOutputter.java 2001/04/13 21:51:34     1.8
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v
 1.7 2000/12/15 12:29:25 pierred Exp $
  - * $Revision: 1.7 $
  - * $Date: 2000/12/15 12:29:25 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v
 1.8 2001/04/13 21:51:34 horwat Exp $
  + * $Revision: 1.8 $
  + * $Date: 2001/04/13 21:51:34 $
    *
    * ====================================================================
    *
  @@ -127,6 +127,14 @@
           }
       }
   
  +    /**
  +     * Add a namespace entry for every taglib in the <jsp:root> tag.
  +     */
  +     void addRootNamespaces(String prefix, String uri) {
  +      rootAttrs.addAttribute("", "localname", "xmlns:" + prefix, "CDATA", uri);
  +     }
  +
  +
       /*
        * Only put the </jsp:root> tag when we're dealing
        * with the top level 'container' page.
  @@ -212,7 +220,7 @@
        * Append the end tag to the xml stream.
        */
       void append(String tag) {
  -        sb.append("</").append(tag).append(">");
  +        sb.append("</").append(tag).append(">\n");
       }
   
       //*********************************************************************
  @@ -227,8 +235,11 @@
           buff.append(PROLOG);
           append("jsp:root", rootAttrs, buff);
        buff.append(sb.toString());
  +        buff.append("</jsp:root>");
        InputStream is = 
            new ByteArrayInputStream(buff.toString().getBytes());
  +//DELETE
  +System.out.println("getPageData: \n" + buff.toString());
        PageData pageData = new PageDataImpl(is);
           return pageData;
       }
  
  
  

Reply via email to