dims        01/10/01 07:56:50

  Modified:    src/org/apache/cocoon/servlet Tag: cocoon_20_branch
                        CocoonServlet.java
  Log:
  Fix extra-classpath problems. Now you can specify either
  - a relative (to context) class directory or jar file
  - an absolute directory or jar file
  - specify a single token which is replaced at run-time using system.getProperty like 
${user.home}/hello.jar
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.13.2.23 +18 -6     xml-cocoon2/src/org/apache/cocoon/servlet/CocoonServlet.java
  
  Index: CocoonServlet.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/servlet/CocoonServlet.java,v
  retrieving revision 1.13.2.22
  retrieving revision 1.13.2.23
  diff -u -r1.13.2.22 -r1.13.2.23
  --- CocoonServlet.java        2001/09/06 17:37:43     1.13.2.22
  +++ CocoonServlet.java        2001/10/01 14:56:50     1.13.2.23
  @@ -67,7 +67,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Berin Loritsch</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Leo Sutic</a>
  - * @version CVS $Revision: 1.13.2.22 $ $Date: 2001/09/06 17:37:43 $
  + * @version CVS $Revision: 1.13.2.23 $ $Date: 2001/10/01 14:56:50 $
    */
   
   public class CocoonServlet extends HttpServlet {
  @@ -310,14 +310,26 @@
                while (st.hasMoreTokens()) {
                    String s = st.nextToken();
                    if (i++ > 0)
  -                     sb.append(System.getProperty("path.separator"));
  -                 if ((s.charAt(0) == 
System.getProperty("file.separator").charAt(0)) ||
  +                     sb.append(java.io.File.pathSeparatorChar);
  +                 if ((s.charAt(0) == java.io.File.separatorChar) ||
                        (s.charAt(1) == ':')) {
  -                     log.debug ("extraClassPath is absolute: " + extraClassPath);
  +                     log.debug ("extraClassPath is absolute: " + s);
                        sb.append(s);
                    } else {
  -                     log.debug ("extraClassPath is not absolute: " + 
this.servletContext.getRealPath("/") + extraClassPath);
  -                     sb.append(this.servletContext.getRealPath("/") + 
extraClassPath);
  +                     if(s.indexOf("${")!=-1) {
  +                         int startToken = s.indexOf("${");
  +                         int endToken = s.indexOf("}",startToken);
  +                         String token = s.substring(startToken+2,endToken);
  +                         StringBuffer value = new StringBuffer();
  +                         value.append(s.substring(0,startToken));
  +                         value.append(System.getProperty(token));
  +                         value.append(s.substring(endToken+1));
  +                         sb.append(value.toString());
  +                         log.debug ("extraClassPath is not absolute replacing using 
token: [" + token + "] : " + value.toString());
  +                     } else {
  +                         log.debug ("extraClassPath is not absolute pre-pending 
context path: " + this.servletContext.getRealPath("/") + s);
  +                         sb.append(this.servletContext.getRealPath("/") + s);
  +                     }
                    }
                }
                return sb.toString();
  
  
  

----------------------------------------------------------------------
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