tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pier...@locus.apache.org
Subject cvs commit: jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler DelegatingListener.java JspParseEventListener.java ParseEventListener.java ParserXJspSax.java ParserXJspSaxHandler.java
Date Tue, 05 Dec 2000 11:05:32 GMT
pierred     00/12/05 03:05:30

  Modified:    jasper/src/share/org/apache/jasper/compiler
                        DelegatingListener.java JspParseEventListener.java
                        ParseEventListener.java ParserXJspSax.java
                        ParserXJspSaxHandler.java
  Log:
  Changes from JSP1.2 PD1 to JSP1.2 PFD that were not explicitely flagged
  in the PFD changes section:
  - Template text not accepted anymore if it is not encapsultated within
    the <jsp:cdata> element
  - Tag Libraries used by a JSP document in XML syntax are defined via
    the <jsp:root> xmlns attributes (no jsp:directive.taglib anymore)
  
  Revision  Changes    Path
  1.6       +12 -8     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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DelegatingListener.java	2000/11/30 21:47:48	1.5
  +++ DelegatingListener.java	2000/12/05 11:05:19	1.6
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/DelegatingListener.java,v
1.5 2000/11/30 21:47:48 pierred Exp $
  - * $Revision: 1.5 $
  - * $Date: 2000/11/30 21:47:48 $
  + * $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 $
    *
    * ====================================================================
    * 
  @@ -227,13 +227,17 @@
           return delegate.getTagLibraries();
       }
   
  -    public void handleRootBegin(Attributes attrs) {}
  +    public void handleRootBegin(Attributes attrs) throws JasperException {}
       public void handleRootEnd() {}
   
  -    public void handleUninterpretedTagBegin(Mark start,Mark stop,String rawName,Attributes
attrs) throws JasperException {}
  -
  +    public void handleUninterpretedTagBegin(Mark start, Mark stop,
  +                                            String rawName,Attributes attrs) 
  +        throws JasperException {}
       public void handleUninterpretedTagEnd(Mark start, Mark stop,
  -					  String rawName)
  -	throws JasperException {}
  +                                          String rawName, char[] data)
  +        throws JasperException {}
  +
  +    public void handleJspCdata(Mark start, Mark stop, char[] data)
  +        throws JasperException {}
   }
   
  
  
  
  1.14      +40 -20    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.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- JspParseEventListener.java	2000/11/30 21:47:54	1.13
  +++ JspParseEventListener.java	2000/12/05 11:05:19	1.14
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
1.13 2000/11/30 21:47:54 pierred Exp $
  - * $Revision: 1.13 $
  - * $Date: 2000/11/30 21:47:54 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
1.14 2000/12/05 11:05:19 pierred Exp $
  + * $Revision: 1.14 $
  + * $Date: 2000/12/05 11:05:19 $
    *
    * ====================================================================
    *
  @@ -742,21 +742,6 @@
               throw new CompileException(start, Constants.getString(
   	    				"jsp.error.page.bad_b_and_a_combo"));
   
  -	if (directive.equals("taglib")) {
  -            String uri = attrs.getValue("uri");
  -            String prefix = attrs.getValue("prefix");
  -	    TagLibraryInfo tl = null;
  -
  -	    String[] location = 
  -		ctxt.getTldLocation(uri);
  -	    if (location == null) {
  -		tl = new TagLibraryInfoImpl(ctxt, prefix, uri);
  -	    } else {
  -		tl = new TagLibraryInfoImpl(ctxt, prefix, uri, location);
  -	    }
  -	    libraries.addTagLibrary(prefix, tl);
  -	}
  -
   	if (directive.equals("include")) {
   	    String file = attrs.getValue("file");
   	    String encoding = attrs.getValue("encoding");
  @@ -1046,7 +1031,33 @@
   	xo.append("jsp:root");
       }
       
  -    public void handleRootBegin(Attributes attrs) {
  +    public void handleRootBegin(Attributes attrs) 
  +	throws JasperException 
  +    {
  +        int attrsLength = attrs.getLength();
  +        for (int i = 0; i < attrsLength; i++) {
  +	    String qName = attrs.getQName(i);
  +	    if (qName.startsWith("xmlns:")) {
  +		String prefix = qName.substring(6);
  +		if (!prefix.equals("jsp")) {
  +		    String uri = attrs.getValue(i);
  +		    System.out.println("prefix: " + prefix);
  +		    System.out.println("uri: " + uri);
  +		    if (uri.startsWith("urn:jsptld:")) {
  +			uri = uri.substring(11);
  +		    }
  +		    TagLibraryInfo tl = null;
  +		    String[] location = 
  +			ctxt.getTldLocation(uri);
  +		    if (location == null) {
  +			tl = new TagLibraryInfoImpl(ctxt, prefix, uri);
  +		    } else {
  +			tl = new TagLibraryInfoImpl(ctxt, prefix, uri, location);
  +		    }
  +		    libraries.addTagLibrary(prefix, tl);
  +		}
  +	    }
  +        }
           xo.addRootAttrs(attrs);
       }
       
  @@ -1062,14 +1073,23 @@
       }
   
       public void handleUninterpretedTagEnd(Mark start, Mark stop,
  -					  String rawName)
  +					  String rawName, char[] data)
   	throws JasperException
       {
  +	if (data != null) {
  +	    handleCharData(start, stop, data);
  +	}
           UninterpretedTagEndGenerator gen = 
   	    new UninterpretedTagEndGenerator(rawName);
           Generator genWrapper = new GeneratorWrapper(gen, start, stop);
   	addGenerator(genWrapper);
           xo.append(rawName);
  +    }
  +
  +    public void handleJspCdata(Mark start, Mark stop, char[] data)
  +	throws JasperException
  +    {
  +	handleCharData(start, stop, data);
       }
   
       /**
  
  
  
  1.6       +46 -32    jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParseEventListener.java
  
  Index: ParseEventListener.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParseEventListener.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ParseEventListener.java	2000/11/30 21:47:56	1.5
  +++ ParseEventListener.java	2000/12/05 11:05:20	1.6
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParseEventListener.java,v
1.5 2000/11/30 21:47:56 pierred Exp $
  - * $Revision: 1.5 $
  - * $Date: 2000/11/30 21:47:56 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParseEventListener.java,v
1.6 2000/12/05 11:05:20 pierred Exp $
  + * $Revision: 1.6 $
  + * $Date: 2000/12/05 11:05:20 $
    *
    * ====================================================================
    * 
  @@ -92,25 +92,36 @@
   
       void handleComment(Mark start, Mark stop, char[] text) throws JasperException;
       void handleDirective(String directive, 
  -			 Mark start, Mark stop, 
  -			 Attributes attrs) throws JasperException;
  -    void handleDeclaration(Mark start, Mark stop, Attributes attrs, char[] text) throws
JasperException;
  -    void handleScriptlet(Mark start, Mark stop, Attributes attrs, char[] text) throws JasperException;
  -    void handleExpression(Mark start, Mark stop, Attributes attrs, char[] text) throws
JasperException;
  +                         Mark start, Mark stop, 
  +                         Attributes attrs) 
  +        throws JasperException;
  +    void handleDeclaration(Mark start, Mark stop, Attributes attrs, char[] text) 
  +        throws JasperException;
  +    void handleScriptlet(Mark start, Mark stop, Attributes attrs, char[] text) 
  +        throws JasperException;
  +    void handleExpression(Mark start, Mark stop, Attributes attrs, char[] text)
  +        throws JasperException;
       void handleBean(Mark start, Mark stop, Attributes attrs) 
  -	throws JasperException;
  +        throws JasperException;
       void handleBean(Mark start, Mark stop, Attributes attrs, boolean isXml) 
  -	throws JasperException;
  +        throws JasperException;
       void handleBeanEnd (Mark start, Mark stop, Attributes attrs)
  -	throws JasperException;
  -    void handleGetProperty(Mark start, Mark stop, Attributes attrs) throws JasperException;
  -    void handleSetProperty(Mark start, Mark stop, Attributes attrs) throws JasperException;
  -    void handleSetProperty(Mark start, Mark stop, Attributes attrs, boolean isXml) throws
JasperException;
  +        throws JasperException;
  +    void handleGetProperty(Mark start, Mark stop, Attributes attrs) 
  +        throws JasperException;
  +    void handleSetProperty(Mark start, Mark stop, Attributes attrs) 
  +        throws JasperException;
  +    void handleSetProperty(Mark start, Mark stop, Attributes attrs, 
  +                           boolean isXml) 
  +        throws JasperException;
       void handlePlugin(Mark start, Mark stop, Attributes attrs, Hashtable param, 
  -    			String fallback) throws JasperException;
  +                      String fallback) 
  +        throws JasperException;
       void handlePlugin(Mark start, Mark stop, Attributes attrs, Hashtable param, 
  -    			String fallback, boolean isXml) throws JasperException;
  -    void handleCharData(Mark start, Mark stop, char[] chars) throws JasperException;
  +                      String fallback, boolean isXml) 
  +        throws JasperException;
  +    void handleCharData(Mark start, Mark stop, char[] chars) 
  +        throws JasperException;
   
   
       /*
  @@ -124,35 +135,38 @@
        * stop: can be null if the body contained JSP tags... 
        */
       void handleTagBegin(Mark start, Mark stop, Attributes attrs, String prefix, String
shortTagName,
  -			TagLibraryInfo tli, TagInfo ti) 
  -	throws JasperException;
  +                        TagLibraryInfo tli, TagInfo ti) 
  +        throws JasperException;
       void handleTagBegin(Mark start, Mark stop, Attributes attrs, String prefix, String
shortTagName,
  -			TagLibraryInfo tli, TagInfo ti, boolean isXml) 
  -	throws JasperException;
  +                        TagLibraryInfo tli, TagInfo ti, boolean isXml) 
  +        throws JasperException;
   
       void handleTagEnd(Mark start, Mark stop, String prefix, String shortTagName,
  -		      Attributes attrs, TagLibraryInfo tli, TagInfo ti)
  -	throws JasperException;
  +                      Attributes attrs, TagLibraryInfo tli, TagInfo ti)
  +        throws JasperException;
   
       void handleForward(Mark start, Mark stop, Attributes attrs, Hashtable param)
  -	throws JasperException;
  +        throws JasperException;
       void handleForward(Mark start, Mark stop, Attributes attrs, Hashtable param, boolean
isXml)
  -	throws JasperException;
  +        throws JasperException;
       void handleInclude(Mark start, Mark stop, Attributes attrs, Hashtable param)
  -	throws JasperException;
  +        throws JasperException;
       void handleInclude(Mark start, Mark stop, Attributes attrs, Hashtable param, boolean
isXml)
  -	throws JasperException;
  +        throws JasperException;
   
       void endPageProcessing() throws JasperException;
   
  -    public void handleRootBegin(Attributes attrs);
  +    public void handleRootBegin(Attributes attrs) throws JasperException;
       public void handleRootEnd();
   
       public void handleUninterpretedTagBegin(Mark start, Mark stop,
  -					    String rawName, Attributes attrs)
  -	throws JasperException;
  +                                            String rawName, Attributes attrs)
  +        throws JasperException;
       public void handleUninterpretedTagEnd(Mark start, Mark stop,
  -					  String rawName)
  -	throws JasperException;
  +                                          String rawName, char[] data)
  +        throws JasperException;
  +
  +    public void handleJspCdata(Mark start, Mark stop, char[] data)
  +        throws JasperException;
   }
   
  
  
  
  1.3       +1 -3      jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParserXJspSax.java
  
  Index: ParserXJspSax.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParserXJspSax.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ParserXJspSax.java	2000/10/12 23:34:13	1.2
  +++ ParserXJspSax.java	2000/12/05 11:05:21	1.3
  @@ -140,6 +140,7 @@
       // Parse
       
       public void parse() throws JasperException {
  +	//System.out.println("in ParserXJspSax");
           try {
   	    SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
   	    SAXParser saxParser = saxParserFactory.newSAXParser();
  @@ -195,9 +196,6 @@
           } catch (SAXException ex) {
   	    Exception ex2 = ex;
   	    if (ex.getException() != null) ex2 = ex.getException();
  -	    System.out.println("**** ICI ***");
  -	    System.out.println(ex2.getMessage());
  -	    System.out.println(ex2.getClass().getName());
   	    throw new JasperException(ex2);
           }
       }
  
  
  
  1.5       +33 -38    jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParserXJspSaxHandler.java
  
  Index: ParserXJspSaxHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParserXJspSaxHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ParserXJspSaxHandler.java	2000/11/30 21:47:57	1.4
  +++ ParserXJspSaxHandler.java	2000/12/05 11:05:22	1.5
  @@ -77,7 +77,6 @@
    *
    * @@@ TODO
    * - make sure validation is in sync with Parser (jsp syntax)
  - * - fix the node.validate()
    */
   class ParserXJspSaxHandler 
       extends DefaultHandler implements LexicalHandler 
  @@ -169,30 +168,16 @@
       public void characters(char[] ch, int start, int length)
           throws SAXException
       {
  -	// @@@ have startMark computed from stopMark
  -	Mark stopMark = new Mark(filePath, locator.getLineNumber(),
  -				 locator.getColumnNumber());
  -
   	//p("\n*** characters");
   	//printLocation();
   	//p("|" + String.valueOf(ch, start, length) + "|");
   
   	Node node = (Node)stack.peek();
  -	if (node.isRoot() || node.isUninterpretedTag()) {
  -	    // template data in <jsp:root>.
  -	    //p("these chars are added directly in jsp:root");
  -	    try {
  -		jspHandler.handleCharData(stopMark, stopMark,
  -					  makeCharArray(ch, start, length)); 
  -	    } catch (Exception ex) {
  -		throw new SAXException(ex);
  -	    }
  -	} else {
  -	    // characters added to the body content of the element
  -	    // at the top of the stack
  -	    //p("these chars are added to node " + node.rawName + " in stack");
  -	    node.addText(ch, start, length);
  -	}
  +
  +	// characters added to the body content of the element
  +	// at the top of the stack
  +	//p("these chars are added to node " + node.rawName + " in stack");
  +	node.addText(ch, start, length);
       }
   
       public void ignorableWhitespace(char[] ch,
  @@ -294,7 +279,6 @@
   	//p("namespaceURI: " + namespaceURI);
   	//p("localName: " + localName);
   	//p("rawName: " + rawName);
  -	//p("attrs: " + attrs.toString());
   
   	Mark stop = new Mark(filePath, locator.getLineNumber(),
   			     locator.getColumnNumber());
  @@ -305,19 +289,19 @@
   
   	try {
   	    if (name.equals("jsp:root")) {
  +		node.validate(true, false);
   		jspHandler.handleRootEnd();
  +	    } else if (name.equals("jsp:cdata")) {
  +		node.validate(false, true);
  +		jspHandler.handleJspCdata(node.start, stop, node.getText());
   	    } else if (name.equals("jsp:directive.include")) {
   		node.validate(true, false);
   		jspHandler.handleDirective("include", node.start, stop, 
  -                        node.attrs);
  +					   node.attrs);
   	    } else if (name.equals("jsp:directive.page")) {
   		node.validate(true, false);
   		jspHandler.handleDirective("page", node.start, stop, 
  -                        node.attrs);
  -	    } else if (name.equals("jsp:directive.taglib")) {
  -		node.validate(true, false);
  -		jspHandler.handleDirective("taglib", node.start, stop,
  -                        node.attrs);
  +					   node.attrs);
   	    } else if (name.equals("jsp:declaration")) {
   		node.validate(false, true);
   		jspHandler.handleDeclaration(
  @@ -346,7 +330,7 @@
   		    params = popParams();
   		    node = (Node)stack.pop();
   		}
  -		node.validate(true, true); //@@@
  +		node.validate(true, false);
   		jspHandler.handleInclude(node.start, stop, node.attrs, params, true);
   	    } else if (name.equals("jsp:forward")) {
   		Hashtable params = null;
  @@ -356,16 +340,16 @@
   		    params = popParams();
   		    node = (Node)stack.pop();
   		}
  -		node.validate(true, true);
  +		node.validate(true, false);
   		jspHandler.handleForward(node.start, stop, node.attrs, params, true);
   	    } else if (name.equals("jsp:useBean")) {
  -		node.validate(true, true); // @@@
  +		node.validate(true, false);
   		jspHandler.handleBeanEnd(node.start, stop, node.attrs);
   	    } else if (name.equals("jsp:getProperty")) {
  -		node.validate(true, true); // @@@
  +		node.validate(true, false);
   		jspHandler.handleGetProperty(node.start, stop, node.attrs);
   	    } else if (name.equals("jsp:setProperty")) {
  -		node.validate(true, true); // @@@
  +		node.validate(true, false);
   		jspHandler.handleSetProperty(node.start, stop, node.attrs, true);
   	    } else if (name.equals("jsp:plugin")) {
   		//@@@ test jsp parser to see if fallback can come first?
  @@ -382,22 +366,27 @@
   		    params = popParams();
   		    node = (Node)stack.pop();
   		}
  -		node.validate(true, true);
  +		node.validate(true, false);
   		//p(node);
   		jspHandler.handlePlugin(node.start, stop, node.attrs, params, 
                           fallback, true);
   	    } else {
   		if (node.isUninterpretedTag()) {
   		    // this is an 'uninterpreted' tag
  -		    jspHandler.handleUninterpretedTagEnd(stop, stop, rawName);
  +		    jspHandler.handleUninterpretedTagEnd(stop, stop, rawName,
  +							 node.getText());
   		} else {
   		    // this is a custom tag
  +		    node.validate(true, false);
   		    processCustomTagEnd((NodeTag)node, stop);
   		}
   	    }
   	} catch (Exception ex) {
  -	    ex.printStackTrace();
  -	    throw new SAXException(ex);
  +	    if (ex instanceof SAXException) {
  +		throw (SAXException)ex;
  +	    } else {
  +		throw new SAXException(ex);
  +	    }
   	}
       }
   
  @@ -639,10 +628,16 @@
   				       rawName + " cannot have attributes.");
   	    }
   	    if (!canHaveText && text != null) {
  -		throw new SAXException("VALIDATE ERROR: " +
  -				       rawName + " cannot have text.");
  +		String data = text.toString().trim();
  +		if (data.length() > 0) {
  +		throw new SAXException(
  +		    Constants.getString(
  +			"jspx.error.templateDataNotInJspCdata",
  +			new Object[]{rawName, JspUtil.escapeXml(data)}));
  +		}
   	    }
   	}
  +
   	public void display() {
   	    p("NODE: " + rawName);
   	    for (int i=0; i<attrs.getLength(); i++) {
  
  
  

Mime
View raw message