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]