You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by lu...@apache.org on 2002/10/28 20:25:47 UTC

cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler JspDocumentParser.java

luehe       2002/10/28 11:25:47

  Modified:    jasper2/src/share/org/apache/jasper/compiler
                        JspDocumentParser.java
  Log:
  Added support for URIs of the form:
    urn:jsptagdir:<path>
  
  Revision  Changes    Path
  1.21      +50 -25    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.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- JspDocumentParser.java	22 Oct 2002 03:00:20 -0000	1.20
  +++ JspDocumentParser.java	28 Oct 2002 19:25:47 -0000	1.21
  @@ -87,6 +87,7 @@
       private static final String XMLNS_JSP = "xmlns:jsp";
       private static final String JSP_VERSION = "version";
       private static final String URN_JSPTLD = "urn:jsptld:";
  +    private static final String URN_JSPTAGDIR = "urn:jsptagdir:";
       private static final String LEXICAL_HANDLER_PROPERTY
   	= "http://xml.org/sax/properties/lexical-handler";
   
  @@ -505,7 +506,8 @@
           }
          
   	return new Node.CustomTag(attrs, start, qName, prefix, shortName,
  -				  tagInfo, tagFileInfo, tagHandlerClass, parent);
  +				  tagInfo, tagFileInfo, tagHandlerClass,
  +				  parent);
       }
   
       /*
  @@ -533,35 +535,58 @@
   		    continue;
   		}
   
  -		// get the uri
  -		String uri = attrs.getValue(i);
  -		if (uri.startsWith(URN_JSPTLD)) {
  -		    // uri value is of the form "urn:jsptld:path"
  -		    uri = uri.substring(URN_JSPTLD.length());
  -		}
  -
  -                TldLocationsCache cache
  -		    = ctxt.getOptions().getTldLocationsCache();
  -                TagLibraryInfo tl = cache.getTagLibraryInfo(uri);
  -                if (tl == null) {
  -                    // get the location
  -                    String[] location = ctxt.getTldLocation(uri);
  -                
  -                    tl = new TagLibraryInfoImpl(ctxt, parserController, prefix,
  -						uri, location, err);
  -                }
                   if( taglibs.containsKey( prefix ) ) {
                       // Prefix already in taglib map.
                       throw new JasperException( err.getString(
                           "jsp.error.xmlns.redefinition.notimplemented",
                           prefix ) );
                   }
  -                else {
  -                    taglibs.put(prefix, tl);
  -                    result.removeAttribute( i );
  -                }
  +
  +		// get the uri
  +		String uri = attrs.getValue(i);
  +
  +		TagLibraryInfo tagLibInfo = null;
  +		if (uri.startsWith(URN_JSPTAGDIR)) {
  +		    /*
  +		     * uri references tag file directory
  +		     * (is of the form "urn:jsptagdir:path")
  +		     */
  +		    String tagdir = uri.substring(URN_JSPTAGDIR.length());
  +		    tagLibInfo = new ImplicitTagLibraryInfo(ctxt,
  +							    parserController,
  +							    prefix, 
  +							    tagdir,
  +							    err);
  +		} else {
  +		    /*
  +		     * uri references TLD file
  +		     */
  +		    if (uri.startsWith(URN_JSPTLD)) {
  +			// uri is of the form "urn:jsptld:path"
  +			uri = uri.substring(URN_JSPTLD.length());
  +		    }
  +
  +		    TldLocationsCache cache
  +			= ctxt.getOptions().getTldLocationsCache();
  +		    tagLibInfo = cache.getTagLibraryInfo(uri);
  +		    if (tagLibInfo == null) {
  +			// get the location
  +			String[] location = ctxt.getTldLocation(uri);
  +                
  +			tagLibInfo = new TagLibraryInfoImpl(ctxt,
  +							    parserController,
  +							    prefix,
  +							    uri,
  +							    location,
  +							    err);
  +		    }
  +		}
  +                
  +		taglibs.put(prefix, tagLibInfo);
  +		result.removeAttribute( i );
   	    }
           }
  +
           return result;
       }
   
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>