kpiroumian    02/04/22 04:17:15

  Modified:    src/java/org/apache/cocoon/generation Tag:
                        cocoon_2_0_3_branch JspGenerator.java
  Log:
  Allow relative paths in sitemap.
  Fixes: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2631
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.6.2.1   +14 -10    
xml-cocoon2/src/java/org/apache/cocoon/generation/JspGenerator.java
  
  Index: JspGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/generation/JspGenerator.java,v
  retrieving revision 1.6
  retrieving revision 1.6.2.1
  diff -u -r1.6 -r1.6.2.1
  --- JspGenerator.java 22 Feb 2002 07:03:51 -0000      1.6
  +++ JspGenerator.java 22 Apr 2002 11:17:15 -0000      1.6.2.1
  @@ -74,7 +74,7 @@
    * results into SAX events.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Davanum Srinivas</a>
  - * @version CVS $Id: JspGenerator.java,v 1.6 2002/02/22 07:03:51 cziegeler Exp $
  + * @version CVS $Id: JspGenerator.java,v 1.6.2.1 2002/04/22 11:17:15 kpiroumian Exp 
$
    */
   public class JspGenerator extends ServletGenerator implements Configurable {
   
  @@ -101,22 +101,27 @@
   
           JSPEngine engine = null;
           Parser parser = null;
  -        Source src = null;
           try {
  -            src = this.resolver.resolve(this.source);
  -            String url = src.getSystemId();
  -            // Guarantee src parameter is a file
  -            if (!url.startsWith("file:/"))
  -                throw new IOException("Protocol not supported: " + url);
  +            // FIXME (KP): Should we exclude not supported protocols, say 'context'?
  +            String url = this.source;
  +            // absolute path is processed as is
  +            if (!url.startsWith("/")) {
  +                // get current request path
  +                String servletPath = httpRequest.getServletPath();
  +                // remove file part
  +                servletPath = servletPath.substring(0, servletPath.lastIndexOf('/') 
+ 1);
  +                url = servletPath + url;
  +            }
  +
  +            engine = (JSPEngine)this.manager.lookup(JSPEngine.ROLE);
   
  -            url = url.substring(5);
               getLogger().debug("JspGenerator executing JSP:" + url);
   
  -            engine = (JSPEngine)this.manager.lookup(JSPEngine.ROLE);
               byte[] bytes = engine.executeJSP(url, httpRequest, httpResponse, 
httpContext);
   
               // explicitly specify bytestream encoding
               InputSource input = new InputSource(new ByteArrayInputStream(bytes));
  +            // FIXME (KP): Why do we need this?
               input.setEncoding("utf-8");
   
               // pipe the results into the parser
  @@ -139,7 +144,6 @@
               getLogger().debug("Exception in JspGenerator.generate()", e);
               throw new ProcessingException("Exception JspGenerator.generate()",e);
           } finally {
  -            if (src != null) src.recycle();
               this.manager.release(parser);
               this.manager.release(engine);
           }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to