tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lu...@apache.org
Subject cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler JspDocumentParser.java ParserController.java TagConstants.java
Date Mon, 28 Oct 2002 23:21:08 GMT
luehe       2002/10/28 15:21:08

  Modified:    jasper2/src/share/org/apache/jasper/compiler
                        JspDocumentParser.java ParserController.java
                        TagConstants.java
  Log:
  Added support for tag files in XML syntax
  
  Revision  Changes    Path
  1.22      +34 -21    jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspDocumentParser.java
  
  Index: JspDocumentParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspDocumentParser.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- JspDocumentParser.java	28 Oct 2002 19:25:47 -0000	1.21
  +++ JspDocumentParser.java	28 Oct 2002 23:21:08 -0000	1.22
  @@ -113,6 +113,7 @@
   
       private ErrorDispatcher err;
       private boolean isTagFile;
  +    private boolean directivesOnly;
   
       /*
        * Constructor
  @@ -120,7 +121,8 @@
       public JspDocumentParser(ParserController pc,
   			     String path,
   			     InputStreamReader reader,
  -			     boolean isTagFile) {
  +			     boolean isTagFile,
  +			     boolean directivesOnly) {
   	this.parserController = pc;
   	this.ctxt = pc.getJspCompilationContext();
   	this.pageInfo = pc.getCompiler().getPageInfo();
  @@ -129,6 +131,7 @@
   	this.path = path;
   	this.inputSource = new InputSource(reader);
   	this.isTagFile = isTagFile;
  +	this.directivesOnly = directivesOnly;
       }
   
       /*
  @@ -140,10 +143,13 @@
   				   String path,
   				   InputStreamReader reader,
   				   Node parent,
  -				   boolean isTagFile) throws JasperException {
  +				   boolean isTagFile,
  +				   boolean directivesOnly)
  +	        throws JasperException {
   
   	JspDocumentParser handler = new JspDocumentParser(pc, path, reader,
  -							  isTagFile);
  +							  isTagFile,
  +							  directivesOnly);
   	Node.Nodes pageNodes = null;
   	Node.JspRoot jspRoot = null;
   
  @@ -196,24 +202,28 @@
   			     String qName,
   			     Attributes attrs) throws SAXException {
   
  +	if (directivesOnly && !qName.startsWith(JSP_DIRECTIVE)) {
  +	    return;
  +	}
  +
   	Mark start = new Mark(path, locator.getLineNumber(),
   			      locator.getColumnNumber());
  -	Attributes attrsCopy;
  +	Attributes attrsCopy = null;
   
   	Node node = null;
   
  -        // XXX - As of JSP 2.0, xmlns: can appear in any node (not just
  -        // <jsp:root>).  The spec still needs clarification here.
  -        // What we implement is that it can appear in any node and
  -        // is valid from that point forward.  Redefinitions cause an
  -        // error.  This isn't quite consistent with how xmlns: normally
  -        // works.
  -        try {
  -            attrsCopy = addCustomTagLibraries(attrs);
  -        } catch (JasperException je) {
  -            throw new SAXParseException( err.getString(
  +	// XXX - As of JSP 2.0, xmlns: can appear in any node (not just
  +	// <jsp:root>).  The spec still needs clarification here.
  +	// What we implement is that it can appear in any node and
  +	// is valid from that point forward.  Redefinitions cause an
  +	// error.  This isn't quite consistent with how xmlns: normally
  +	// works.
  +	try {
  +	    attrsCopy = addCustomTagLibraries(attrs);
  +	} catch (JasperException je) {
  +	    throw new SAXParseException( err.getString(
                   "jsp.error.could.not.add.taglibraries" ), locator, je );
  -        }
  +	}
   
   	if (qName.equals(JSP_ROOT)) {
               // give the <jsp:root> element the original attributes set
  @@ -352,6 +362,11 @@
       public void endElement(String uri,
   			   String localName,
   			   String qName) throws SAXException {
  +
  +	if (directivesOnly && !qName.startsWith(JSP_DIRECTIVE)) {
  +	    return;
  +	}
  +
   	if (current instanceof Node.NamedAttribute
   	        && ((Node.NamedAttribute) current).isTrim()) {
   	    // Ignore any whitespace (including spaces, carriage returns,
  @@ -366,9 +381,7 @@
   	    if (lastNode instanceof Node.TemplateText) {
   		((Node.TemplateText) lastNode).rtrim();
   	    }
  -	}
  -
  -	if (current instanceof Node.ScriptingElement) {
  +	} else if (current instanceof Node.ScriptingElement) {
   	    checkScriptingBody((Node.ScriptingElement) current);
   	}
   
  
  
  
  1.23      +2 -1      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ParserController.java
  
  Index: ParserController.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ParserController.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- ParserController.java	21 Oct 2002 20:13:32 -0000	1.22
  +++ ParserController.java	28 Oct 2002 23:21:08 -0000	1.23
  @@ -218,7 +218,8 @@
               if (isXml) {
                   parsedPage = JspDocumentParser.parse(this, absFileName,
   						     reader, parent,
  -						     isTagFile);
  +						     isTagFile,
  +						     directivesOnly);
               } else {
   		JspReader r = new JspReader(ctxt, absFileName, encoding,
   					    reader, err);
  
  
  
  1.6       +5 -3      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagConstants.java
  
  Index: TagConstants.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagConstants.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TagConstants.java	22 Aug 2002 21:31:28 -0000	1.5
  +++ TagConstants.java	28 Oct 2002 23:21:08 -0000	1.6
  @@ -61,6 +61,8 @@
   package org.apache.jasper.compiler;
   
   public interface TagConstants {
  +
  +    public static final String JSP_DIRECTIVE = "jsp:directive.";
       public static final String JSP_ROOT = "jsp:root";
       public static final String JSP_ROOT_END = "</jsp:root>";
       public static final String JSP_PAGE_DIRECTIVE = "jsp:directive.page";
  
  
  

--
To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-dev-help@jakarta.apache.org>


Mime
View raw message