dims 01/10/01 07:56:35
Modified: src/org/apache/cocoon/servlet 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
1.38 +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.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- CocoonServlet.java 2001/09/06 17:37:58 1.37
+++ CocoonServlet.java 2001/10/01 14:56:35 1.38
@@ -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.37 $ $Date: 2001/09/06 17:37:58 $
+ * @version CVS $Revision: 1.38 $ $Date: 2001/10/01 14:56:35 $
*/
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]