You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ho...@apache.org on 2001/04/13 23:51:34 UTC

cvs commit: jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler DelegatingListener.java JspParseEventListener.java Parser.java XmlOutputter.java

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;
       }