You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Paul Lamb <pa...@oil-law.com> on 2000/10/09 05:23:34 UTC
[Patch] allows xsp to compile under catalina & tomcat 3.3
This allows the xsp compiler to use the classpath exposed by the latest
catalina or tomcat. I can't say that I really like this, but there doesn't
seem to be an alternative.
Paul Lamb
Index: xml-cocoon/src/org/apache/cocoon/processor/xsp/XSPProcessor.java
===================================================================
RCS file:
/home/cvspublic/xml-cocoon/src/org/apache/cocoon/processor/xsp/XSPProcessor.
java,v
retrieving revision 1.25
diff -u -r1.25 XSPProcessor.java
--- xml-cocoon/src/org/apache/cocoon/processor/xsp/XSPProcessor.java
2000/08/18 22:43:15 1.25
+++ xml-cocoon/src/org/apache/cocoon/processor/xsp/XSPProcessor.java
2000/10/09 03:16:53
@@ -206,6 +206,15 @@
+ ". Make sure you have writing permissions.");
}
+ String classpath = (String)
this.servletContext.getAttribute("org.apache.catalina.jsp_classpath");
+ if (classpath == null) {
+ classpath = (String)
this.servletContext.getAttribute("org.apache.tomcat.jsp_classpath");
+ }
+ if( classpath == null ) {
+ classpath = System.getProperty("java.class.path");
+ }
+
+
// Set repository for each language processor
Enumeration enum = this.languages.elements();
while (enum.hasMoreElements()) {
@@ -215,6 +224,7 @@
try {
languageProcessor.setEncoding(this.encoding);
languageProcessor.setRepository(this.repositoryFile);
+ languageProcessor.setClassPath(classpath);
} catch (Exception e) {
throw new RuntimeException(
"Error setting repository for language processor: " +
Index:
xml-cocoon/src/org/apache/cocoon/processor/xsp/language/XSPLanguageProcessor
.java
===================================================================
RCS file:
/home/cvspublic/xml-cocoon/src/org/apache/cocoon/processor/xsp/language/XSPL
anguageProcessor.java,v
retrieving revision 1.5
diff -u -r1.5 XSPLanguageProcessor.java
---
xml-cocoon/src/org/apache/cocoon/processor/xsp/language/XSPLanguageProcessor
.java 2000/05/07 00:43:57 1.5
+++
xml-cocoon/src/org/apache/cocoon/processor/xsp/language/XSPLanguageProcessor
.java 2000/10/09 03:16:54
@@ -52,8 +52,8 @@
package org.apache.cocoon.processor.xsp.language;
import java.io.File;
-import org.w3c.dom.Document;
-import javax.servlet.http.HttpServletRequest;
+//import org.w3c.dom.Document;
+//import javax.servlet.http.HttpServletRequest;
import org.apache.cocoon.processor.xsp.*;
@@ -70,6 +70,8 @@
public void setFormatOption(boolean format);
public String formatCode(String code) throws Exception;
+
+ public void setClassPath(String classpath);
public void compile(String filename) throws Exception;
Index:
xml-cocoon/src/org/apache/cocoon/processor/xsp/language/java/XSPJavaProcesso
r.java
===================================================================
RCS file:
/home/cvspublic/xml-cocoon/src/org/apache/cocoon/processor/xsp/language/java
/XSPJavaProcessor.java,v
retrieving revision 1.11
diff -u -r1.11 XSPJavaProcessor.java
---
xml-cocoon/src/org/apache/cocoon/processor/xsp/language/java/XSPJavaProcesso
r.java 2000/08/18 22:43:59 1.11
+++
xml-cocoon/src/org/apache/cocoon/processor/xsp/language/java/XSPJavaProcesso
r.java 2000/10/09 03:16:54
@@ -69,6 +69,7 @@
protected String encoding;
protected XSPClassLoader classLoader;
protected JavaCompiler javac;
+ protected String classpath;
protected boolean format;
@@ -112,6 +113,10 @@
// or similar to allow easier XSP code debugging (SM)
return code;
}
+
+ public void setClassPath(String classpath) {
+ this.classpath = classpath;
+ }
public void compile(String filename) throws Exception {
String repositoryName = this.repository.getCanonicalPath();
@@ -120,7 +125,7 @@
ByteArrayOutputStream err = new ByteArrayOutputStream(256);
javac.setEncoding(this.encoding);
- javac.setClasspath(repositoryName + File.pathSeparator +
System.getProperty("java.class.path"));
+ javac.setClasspath(repositoryName + File.pathSeparator +
this.classpath);
javac.setOutputDir(repositoryName);
javac.setMsgOutput(err);
Re: [Patch] allows xsp to compile under catalina & tomcat 3.3
Posted by "Pier P. Fumagalli" <pi...@betaversion.org>.
I thought Stefano took care of it a couple of weeks ago, but hey,
thanks! We're trying to fix the problems with a more decent solution,
but it's mostly a JavaC issue, neither Cocoon's or Tomcat/Catalina...
Stay tuned...
Pier
Paul Lamb wrote:
>
> This allows the xsp compiler to use the classpath exposed by the latest
> catalina or tomcat. I can't say that I really like this, but there doesn't
> seem to be an alternative.
>
> Paul Lamb
>
> Index: xml-cocoon/src/org/apache/cocoon/processor/xsp/XSPProcessor.java
> ===================================================================
> RCS file:
> /home/cvspublic/xml-cocoon/src/org/apache/cocoon/processor/xsp/XSPProcessor.
> java,v
> retrieving revision 1.25
> diff -u -r1.25 XSPProcessor.java
> --- xml-cocoon/src/org/apache/cocoon/processor/xsp/XSPProcessor.java
> 2000/08/18 22:43:15 1.25
> +++ xml-cocoon/src/org/apache/cocoon/processor/xsp/XSPProcessor.java
> 2000/10/09 03:16:53
> @@ -206,6 +206,15 @@
> + ". Make sure you have writing permissions.");
> }
>
> + String classpath = (String)
> this.servletContext.getAttribute("org.apache.catalina.jsp_classpath");
> + if (classpath == null) {
> + classpath = (String)
> this.servletContext.getAttribute("org.apache.tomcat.jsp_classpath");
> + }
> + if( classpath == null ) {
> + classpath = System.getProperty("java.class.path");
> + }
> +
> +
> // Set repository for each language processor
> Enumeration enum = this.languages.elements();
> while (enum.hasMoreElements()) {
> @@ -215,6 +224,7 @@
> try {
> languageProcessor.setEncoding(this.encoding);
> languageProcessor.setRepository(this.repositoryFile);
> + languageProcessor.setClassPath(classpath);
> } catch (Exception e) {
> throw new RuntimeException(
> "Error setting repository for language processor: " +
>
> Index:
> xml-cocoon/src/org/apache/cocoon/processor/xsp/language/XSPLanguageProcessor
> .java
> ===================================================================
> RCS file:
> /home/cvspublic/xml-cocoon/src/org/apache/cocoon/processor/xsp/language/XSPL
> anguageProcessor.java,v
> retrieving revision 1.5
> diff -u -r1.5 XSPLanguageProcessor.java
> ---
> xml-cocoon/src/org/apache/cocoon/processor/xsp/language/XSPLanguageProcessor
> .java 2000/05/07 00:43:57 1.5
> +++
> xml-cocoon/src/org/apache/cocoon/processor/xsp/language/XSPLanguageProcessor
> .java 2000/10/09 03:16:54
> @@ -52,8 +52,8 @@
> package org.apache.cocoon.processor.xsp.language;
>
> import java.io.File;
> -import org.w3c.dom.Document;
> -import javax.servlet.http.HttpServletRequest;
> +//import org.w3c.dom.Document;
> +//import javax.servlet.http.HttpServletRequest;
>
> import org.apache.cocoon.processor.xsp.*;
>
> @@ -70,6 +70,8 @@
>
> public void setFormatOption(boolean format);
> public String formatCode(String code) throws Exception;
> +
> + public void setClassPath(String classpath);
>
> public void compile(String filename) throws Exception;
>
>
> Index:
> xml-cocoon/src/org/apache/cocoon/processor/xsp/language/java/XSPJavaProcesso
> r.java
> ===================================================================
> RCS file:
> /home/cvspublic/xml-cocoon/src/org/apache/cocoon/processor/xsp/language/java
> /XSPJavaProcessor.java,v
> retrieving revision 1.11
> diff -u -r1.11 XSPJavaProcessor.java
> ---
> xml-cocoon/src/org/apache/cocoon/processor/xsp/language/java/XSPJavaProcesso
> r.java 2000/08/18 22:43:59 1.11
> +++
> xml-cocoon/src/org/apache/cocoon/processor/xsp/language/java/XSPJavaProcesso
> r.java 2000/10/09 03:16:54
> @@ -69,6 +69,7 @@
> protected String encoding;
> protected XSPClassLoader classLoader;
> protected JavaCompiler javac;
> + protected String classpath;
>
> protected boolean format;
>
> @@ -112,6 +113,10 @@
> // or similar to allow easier XSP code debugging (SM)
> return code;
> }
> +
> + public void setClassPath(String classpath) {
> + this.classpath = classpath;
> + }
>
> public void compile(String filename) throws Exception {
> String repositoryName = this.repository.getCanonicalPath();
> @@ -120,7 +125,7 @@
> ByteArrayOutputStream err = new ByteArrayOutputStream(256);
>
> javac.setEncoding(this.encoding);
> - javac.setClasspath(repositoryName + File.pathSeparator +
> System.getProperty("java.class.path"));
> + javac.setClasspath(repositoryName + File.pathSeparator +
> this.classpath);
> javac.setOutputDir(repositoryName);
> javac.setMsgOutput(err);
>