You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ki...@apache.org on 2001/10/05 20:48:04 UTC

cvs commit: jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/servlet JspCServletContext.java

kinman      01/10/05 11:48:04

  Modified:    jasper/src/share/org/apache/jasper/compiler
                        TagLibraryInfoImpl.java
               jasper/src/share/org/apache/jasper/servlet
                        JspCServletContext.java
  Log:
  PR: 3640
  Submitted by:	Peter Rossbach (pr@webapp.de)
  Jspc now works when taglibs are in a .jar
  
  Revision  Changes    Path
  1.24      +10 -8     jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java
  
  Index: TagLibraryInfoImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- TagLibraryInfoImpl.java	2001/07/10 23:50:24	1.23
  +++ TagLibraryInfoImpl.java	2001/10/05 18:48:04	1.24
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v 1.23 2001/07/10 23:50:24 horwat Exp $
  - * $Revision: 1.23 $
  - * $Date: 2001/07/10 23:50:24 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v 1.24 2001/10/05 18:48:04 kinman Exp $
  + * $Revision: 1.24 $
  + * $Date: 2001/10/05 18:48:04 $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -224,8 +224,13 @@
   	    ZipEntry jarEntry = null;
   	    InputStream stream = null;
   	    try {
  -		url = ctxt.getResource(location[0]);
  -		if (url == null) return;
  +                String path = location[0] ;
  +                if(ctxt.getClassLoader() != null &&
  +                   java.net.URLClassLoader.class.equals(ctxt.getClassLoader().getClass())
  +                       && path.startsWith("/"))
  +                   path = path.substring(1,path.length()) ;
  +                url = ctxt.getResource(path);
  +                if (url == null) return;
   		url = new URL("jar:" + url.toString() + "!/");
   		JarURLConnection conn =
   		    (JarURLConnection) url.openConnection();
  @@ -359,9 +364,6 @@
                        "description".equals(tname))
                   info = element.getBody();
               else if ("variable".equals(tname)) {
  -                if (teiclass != null)
  -                    throw new JasperException
  -                        (Constants.getString("tld.error.variableNotAllowed"));
                   variableVector.addElement(createVariable(element));
               } else if ("attribute".equals(tname))
                   attributeVector.addElement(createAttribute(element));
  
  
  
  1.2       +3 -3      jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/servlet/JspCServletContext.java
  
  Index: JspCServletContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/servlet/JspCServletContext.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JspCServletContext.java	2001/09/14 05:21:33	1.1
  +++ JspCServletContext.java	2001/10/05 18:48:04	1.2
  @@ -80,7 +80,7 @@
    * Simple <code>ServletContext</code> implementation without
    * HTTP-specific methods.
    *
  - * @author Peter Robbach (pr@webapp.de)
  + * @author Peter Rossbach (pr@webapp.de)
    */
   
   public class JspCServletContext implements ServletContext {
  @@ -320,9 +320,9 @@
           for (int i = 0; i < theFiles.length; i++) {
               File testFile = new File(basePath + File.separator + theFiles[i]);
               if (testFile.isFile())
  -                thePaths.add("/" + theFiles[i]);
  +                thePaths.add(path + theFiles[i]);
               else if (testFile.isDirectory())
  -                thePaths.add("/" + theFiles[i] + "/");
  +                thePaths.add(path + theFiles[i] + "/");
           }
           return (thePaths);