You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ki...@apache.org on 2003/02/21 19:23:14 UTC
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler JspRuntimeContext.java TagFileProcessor.java TagLibraryInfoImpl.java
kinman 2003/02/21 10:23:14
Modified: jasper2/src/bin jasper.sh jspc.sh
jasper2/src/share/org/apache/jasper JspC.java
JspCompilationContext.java
jasper2/src/share/org/apache/jasper/compiler
JspRuntimeContext.java TagFileProcessor.java
TagLibraryInfoImpl.java
Log:
- Applied Hans Bergsten's patch on TagLibraryInfoImpl for Jspc problem.
- Reverted mods to TagFileProcessor.java
- Created a dummy JspRuntimeContext for handling tag file compilations.
- Added debugging option to jspc.sh
Manual precompilation with jspc.sh seems to work now, but precompilation
in ant still fail. The problem seems to be related to processing tld
in jars. Weird.
Stay tuned.
Revision Changes Path
1.5 +11 -1 jakarta-tomcat-jasper/jasper2/src/bin/jasper.sh
Index: jasper.sh
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/bin/jasper.sh,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- jasper.sh 4 Aug 2002 18:21:08 -0000 1.4
+++ jasper.sh 21 Feb 2003 18:23:14 -0000 1.5
@@ -87,6 +87,16 @@
exec "$_RUNJAVA" $JAVA_OPTS $JASPER_OPTS \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
-Djasper.home="$JASPER_HOME" \
+ -Dcatalina.home="$JASPER_HOME" \
+ org.apache.jasper.JspC "$@"
+
+elif [ "$1" = "debug" ] ; then
+
+ shift
+ exec "$_RUNJDB" $JAVA_OPTS $JASPER_OPTS \
+ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+ -Djasper.home="$JASPER_HOME" \
+ -Dcatalina.home="$JASPER_HOME" \
org.apache.jasper.JspC "$@"
else
1.4 +7 -2 jakarta-tomcat-jasper/jasper2/src/bin/jspc.sh
Index: jspc.sh
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/bin/jspc.sh,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- jspc.sh 4 Aug 2002 18:21:08 -0000 1.3
+++ jspc.sh 21 Feb 2003 18:23:14 -0000 1.4
@@ -28,4 +28,9 @@
exit 1
fi
-exec "$PRGDIR"/"$EXECUTABLE" jspc "$@"
+if [ "$1" = "debug" ]; then
+ shift
+ exec "$PRGDIR"/"$EXECUTABLE" debug "$@"
+else
+ exec "$PRGDIR"/"$EXECUTABLE" jspc "$@"
+fi
1.30 +23 -12 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspC.java
Index: JspC.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspC.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- JspC.java 10 Feb 2003 10:31:49 -0000 1.29
+++ JspC.java 21 Feb 2003 18:23:14 -0000 1.30
@@ -68,13 +68,12 @@
import org.apache.jasper.compiler.ServletWriter;
import org.apache.jasper.compiler.Compiler;
import org.apache.jasper.compiler.TldLocationsCache;
-
-import org.apache.jasper.servlet.JspCServletContext;
-
-import org.apache.jasper.compiler.JspConfig;
import org.apache.jasper.compiler.JspConfig;
import org.apache.jasper.compiler.TagPluginManager;
import org.apache.jasper.compiler.Localizer;
+import org.apache.jasper.compiler.JspRuntimeContext;
+import org.apache.jasper.servlet.JspCServletContext;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -195,6 +194,10 @@
static PrintStream logStream;
JspCServletContext context;
+ /*
+ * Maintain a dummy JspRuntimeContext for compiling tag files
+ */
+ JspRuntimeContext rctxt;
/**
* Cache for the TLD locations
@@ -204,6 +207,7 @@
private JspConfig jspConfig = null;
private TagPluginManager tagPluginManager = null;
+ private boolean verbose = false;
private boolean listErrors = false;
private boolean showSuccess = false;
@@ -530,7 +534,7 @@
String baseDir = scratchDir.getCanonicalPath();
this.setOutputDir( baseDir + jspUri.substring( 0, jspUri.lastIndexOf( '/' ) ) );
JspCompilationContext clctxt = new JspCompilationContext
- ( jspUri, false, this, context, null, null );
+ ( jspUri, false, this, context, null, rctxt );
/* Override the defaults */
if ((targetClassName != null) && (targetClassName.length() > 0)) {
@@ -591,6 +595,8 @@
e);
if ( listErrors ) {
logStream.println( "Error in File: " + file );
+ logStream.println(e.getMessage());
+ e.printStackTrace(logStream);
return true;
} else if (dieLevel != NO_DIE_LEVEL) {
dieOnExit = true;
@@ -745,12 +751,13 @@
(new PrintWriter(System.out),
new URL("file:" + uriRoot.replace('\\','/') + '/'));
tldLocationsCache = new
- TldLocationsCache(context);
+ TldLocationsCache(context, true);
} catch (MalformedURLException me) {
System.out.println("**" + me);
}
- jspConfig = new JspConfig(context);
- tagPluginManager = new TagPluginManager(context);
+ rctxt = new JspRuntimeContext(context, this);
+ jspConfig = new JspConfig(context);
+ tagPluginManager = new TagPluginManager(context);
}
@@ -865,7 +872,11 @@
die = dieLevel;
while ((tok = nextArg()) != null) {
- if (tok.equals(SWITCH_OUTPUT_DIR)) {
+ if (tok.equals(SWITCH_VERBOSE)) {
+ verbose = true;
+ showSuccess = true;
+ listErrors = true;
+ } else if (tok.equals(SWITCH_OUTPUT_DIR)) {
tok = nextArg();
setOutputDir( tok );
} else if (tok.equals(SWITCH_OUTPUT_SIMPLE_DIR)) {
1.34 +3 -5 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspCompilationContext.java
Index: JspCompilationContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspCompilationContext.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- JspCompilationContext.java 19 Feb 2003 07:39:49 -0000 1.33
+++ JspCompilationContext.java 21 Feb 2003 18:23:14 -0000 1.34
@@ -201,8 +201,6 @@
public ClassLoader getClassLoader() {
if( loader != null )
return loader;
- if( rctxt == null)
- return getClass().getClassLoader();
return rctxt.getParentClassLoader();
}
1.11 +10 -5 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspRuntimeContext.java
Index: JspRuntimeContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspRuntimeContext.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- JspRuntimeContext.java 22 Jan 2003 20:08:24 -0000 1.10
+++ JspRuntimeContext.java 21 Feb 2003 18:23:14 -0000 1.11
@@ -185,8 +185,13 @@
}
}
- initSecurity();
initClassPath();
+
+ if (context instanceof org.apache.jasper.servlet.JspCServletContext) {
+ return;
+ }
+
+ initSecurity();
// If this web application context is running from a
// directory, start the background compilation thread
1.44 +45 -64 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagFileProcessor.java
Index: TagFileProcessor.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagFileProcessor.java,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- TagFileProcessor.java 21 Feb 2003 16:29:51 -0000 1.43
+++ TagFileProcessor.java 21 Feb 2003 18:23:14 -0000 1.44
@@ -412,78 +412,59 @@
JspCompilationContext ctxt = compiler.getCompilationContext();
JspRuntimeContext rctxt = ctxt.getRuntimeContext();
- JspServletWrapper wrapper = null;
- int tripCount;
- if( rctxt != null ) {
- wrapper =
+ JspServletWrapper wrapper =
(JspServletWrapper) rctxt.getWrapper(tagFilePath);
- synchronized(rctxt) {
- if (wrapper == null) {
- wrapper = new JspServletWrapper(ctxt.getServletContext(),
- ctxt.getOptions(),
- tagFilePath,
- tagInfo,
- ctxt.getRuntimeContext(),
- (JarFile) ctxt.getTagFileJars().get(tagFilePath));
+ synchronized(rctxt) {
+ if (wrapper == null) {
+ wrapper = new JspServletWrapper(ctxt.getServletContext(),
+ ctxt.getOptions(),
+ tagFilePath,
+ tagInfo,
+ ctxt.getRuntimeContext(),
+ (JarFile) ctxt.getTagFileJars().get(tagFilePath));
rctxt.addWrapper(tagFilePath,wrapper);
- }
- tripCount = wrapper.incTripCount();
-
}
- } else {
- wrapper = new JspServletWrapper(ctxt.getServletContext(),
- ctxt.getOptions(),
- tagFilePath,
- tagInfo,
- ctxt.getRuntimeContext(),
- (JarFile)ctxt.getTagFileJars().get(tagFilePath)
- );
- tripCount = wrapper.incTripCount();
- }
-
- Class tagClazz;
- try {
- if (tripCount > 0) {
- // When tripCount is greater than zero, a circular
- // dependency exists. The circularily dependant tag
- // file is compiled in prototype mode, to avoid infinite
- // recursion.
+ Class tagClazz;
+ int tripCount = wrapper.incTripCount();
+ try {
+ if (tripCount > 0) {
+ // When tripCount is greater than zero, a circular
+ // dependency exists. The circularily dependant tag
+ // file is compiled in prototype mode, to avoid infinite
+ // recursion.
- JspServletWrapper tempWrapper
- = new JspServletWrapper(ctxt.getServletContext(),
- ctxt.getOptions(),
- tagFilePath,
- tagInfo,
- ctxt.getRuntimeContext(),
- (JarFile) ctxt.getTagFileJars().get(tagFilePath));
- tempWrapper.getJspEngineContext()
- .setClassPath(ctxt.getClassPath());
- tagClazz = tempWrapper.loadTagFilePrototype();
- tempVector.add(
+ JspServletWrapper tempWrapper
+ = new JspServletWrapper(ctxt.getServletContext(),
+ ctxt.getOptions(),
+ tagFilePath,
+ tagInfo,
+ ctxt.getRuntimeContext(),
+ (JarFile) ctxt.getTagFileJars().get(tagFilePath));
+ tagClazz = tempWrapper.loadTagFilePrototype();
+ tempVector.add(
tempWrapper.getJspEngineContext().getCompiler());
- } else {
- wrapper.getJspEngineContext()
- .setClassPath(ctxt.getClassPath());
- tagClazz = wrapper.loadTagFile();
+ } else {
+ tagClazz = wrapper.loadTagFile();
+ }
+ } finally {
+ wrapper.decTripCount();
}
- } finally {
- wrapper.decTripCount();
- }
- // Add the dependants for this tag file to its parent's
- // dependant list.
- PageInfo pageInfo = wrapper.getJspEngineContext().getCompiler().
- getPageInfo();
- if (pageInfo != null) {
- Iterator iter = pageInfo.getDependants().iterator();
- if (iter.hasNext()) {
- parentPageInfo.addDependant((String)iter.next());
+ // Add the dependants for this tag file to its parent's
+ // dependant list.
+ PageInfo pageInfo = wrapper.getJspEngineContext().getCompiler().
+ getPageInfo();
+ if (pageInfo != null) {
+ Iterator iter = pageInfo.getDependants().iterator();
+ if (iter.hasNext()) {
+ parentPageInfo.addDependant((String)iter.next());
+ }
}
- }
- return tagClazz;
+ return tagClazz;
+ }
}
1.35 +5 -7 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java
Index: TagLibraryInfoImpl.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- TagLibraryInfoImpl.java 22 Jan 2003 21:06:44 -0000 1.34
+++ TagLibraryInfoImpl.java 21 Feb 2003 18:23:14 -0000 1.35
@@ -207,10 +207,6 @@
InputStream stream = null;
try {
String path = location[0] ;
- if(ctxt.getClassLoader() != null &&
- URLClassLoader.class.equals(ctxt.getClassLoader().getClass())
- && path.startsWith("/"))
- path = path.substring(1,path.length()) ;
url = ctxt.getResource(path);
if (url == null) return;
url = new URL("jar:" + url.toString() + "!/");
@@ -232,11 +228,13 @@
stream.close();
} catch (Throwable t) {}
}
+ /*
if (jarFile != null) {
try {
jarFile.close();
} catch (Throwable t) {}
}
+ */
throw new JasperException(ex);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org