You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by lu...@apache.org on 2002/11/28 05:18:08 UTC
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/servlet JasperLoader.java JspServletWrapper.java
luehe 2002/11/27 20:18:08
Modified: jasper2/src/share/org/apache/jasper Constants.java
EmbededServletOptions.java
JspCompilationContext.java
jasper2/src/share/org/apache/jasper/compiler Compiler.java
Generator.java ImplicitTagLibraryInfo.java
JspRuntimeContext.java JspUtil.java Node.java
TagFileProcessor.java TagLibraryInfoImpl.java
jasper2/src/share/org/apache/jasper/servlet
JasperLoader.java JspServletWrapper.java
Log:
Avoid conflicts between tag files that are located in different
directories and therefore are considered to belong to different
implicit tag libraries.
The path of a tag file is now reflected in the directory in which the
corresponding tag handler is stored, and in the name of the package to
which the tag handler is assigned.
This change also avoids conflicts between tag files with the same name
and path under /META-INF/tags/ and /WEB-INF/tags/, by adding "meta" or
"web", respectively, to the directory and package names of the
respective tag handlers.
Revision Changes Path
1.10 +1 -2 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/Constants.java
Index: Constants.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/Constants.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- Constants.java 16 Nov 2002 04:20:09 -0000 1.9
+++ Constants.java 28 Nov 2002 04:18:07 -0000 1.10
@@ -158,8 +158,7 @@
/**
* The default package name for tag handlers generated from tag files
*/
- public static final String TAG_FILE_PACKAGE_NAME
- = "org.apache.jsp.tagfile";
+ public static final String TAG_FILE_PACKAGE_NAME = "org.apache.jsp.tag";
/**
* Servlet context and request attributes that the JSP engine
1.13 +10 -9 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/EmbededServletOptions.java
Index: EmbededServletOptions.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/EmbededServletOptions.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- EmbededServletOptions.java 16 Nov 2002 04:20:09 -0000 1.12
+++ EmbededServletOptions.java 28 Nov 2002 04:18:07 -0000 1.13
@@ -435,12 +435,14 @@
if (classpath != null)
this.classpath = classpath;
+ /*
+ * scratchdir
+ */
String dir = config.getInitParameter("scratchdir");
-
- if (dir != null)
+ if (dir != null) {
scratchDir = new File(dir);
- else {
- // First we try the Servlet 2.2 javax.servlet.context.tempdir property
+ } else {
+ // First try the Servlet 2.2 javax.servlet.context.tempdir property
scratchDir = (File) context.getAttribute(Constants.TMP_DIR);
if (scratchDir == null) {
// Not running in a Servlet 2.2 container.
@@ -449,8 +451,7 @@
if (dir != null)
scratchDir = new File(dir);
}
- }
-
+ }
if (this.scratchDir == null) {
Constants.message("jsp.error.no.scratch.dir", Logger.FATAL);
return;
1.25 +68 -54 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.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- JspCompilationContext.java 28 Oct 2002 18:16:19 -0000 1.24
+++ JspCompilationContext.java 28 Nov 2002 04:18:07 -0000 1.25
@@ -91,7 +91,7 @@
private Hashtable tagFileJars;
private boolean isPackagedTagFile;
- private String servletClassName;
+ private String className;
private String jspUri;
private boolean isErrPage;
private String servletPackageName;
@@ -301,40 +301,45 @@
*/
public String getServletClassName() {
- if (isTagFile) {
- return tagInfo.getTagName();
- }
-
- if (servletClassName != null) {
- return servletClassName;
+ if (className != null) {
+ return className;
}
- int iSep = jspUri.lastIndexOf('/') + 1;
- int iEnd = jspUri.length();
- StringBuffer modifiedClassName =
- new StringBuffer(jspUri.length() - iSep);
- if (!Character.isJavaIdentifierStart(jspUri.charAt(iSep)) ||
- jspUri.charAt(iSep) == '_' ) {
- // If the first char is not a start of Java identifier or is _
- // prepend a '_'.
- modifiedClassName.append('_');
+ if (isTagFile) {
+ className = tagInfo.getTagClassName();
+ int lastIndex = className.lastIndexOf('.');
+ if (lastIndex != -1) {
+ className = className.substring(lastIndex + 1);
+ }
+ } else {
+ int iSep = jspUri.lastIndexOf('/') + 1;
+ int iEnd = jspUri.length();
+ StringBuffer modifiedClassName =
+ new StringBuffer(jspUri.length() - iSep);
+ if (!Character.isJavaIdentifierStart(jspUri.charAt(iSep)) ||
+ jspUri.charAt(iSep) == '_' ) {
+ // If the first char is not a start of Java identifier or is _
+ // prepend a '_'.
+ modifiedClassName.append('_');
+ }
+ for (int i = iSep; i < iEnd; i++) {
+ char ch = jspUri.charAt(i);
+ if (Character.isJavaIdentifierPart(ch)) {
+ modifiedClassName.append(ch);
+ } else if (ch == '.') {
+ modifiedClassName.append('_');
+ } else {
+ modifiedClassName.append(mangleChar(ch));
+ }
+ }
+ className = modifiedClassName.toString();
}
- for (int i = iSep; i < iEnd; i++) {
- char ch = jspUri.charAt(i);
- if (Character.isJavaIdentifierPart(ch)) {
- modifiedClassName.append(ch);
- } else if (ch == '.') {
- modifiedClassName.append('_');
- } else {
- modifiedClassName.append(mangleChar(ch));
- }
- }
- servletClassName = modifiedClassName.toString();
- return servletClassName;
+
+ return className;
}
- public void setServletClassName(String servletClassName) {
- this.servletClassName = servletClassName;
+ public void setServletClassName(String className) {
+ this.className = className;
}
/**
@@ -441,8 +446,9 @@
}
if (isTagFile) {
- jspPath = "tagfiles/org/apache/jsp/tagfile/"
- + tagInfo.getTagName() + ".java";
+ jspPath = "tags/"
+ + tagInfo.getTagClassName().replace('.', File.separatorChar)
+ + ".java";
} else {
String dirName = getJspFile();
int pos = dirName.lastIndexOf('/');
@@ -583,14 +589,14 @@
rctxt.getPermissionCollection(),
rctxt.getCodeSource());
- String className;
+ String name;
if (isTagFile()) {
- className = tagInfo.getTagClassName();
+ name = tagInfo.getTagClassName();
} else {
- className = getServletPackageName() + "." +
+ name = getServletPackageName() + "." +
getServletClassName();
}
- servletClass = jspLoader.loadClass(className);
+ servletClass = jspLoader.loadClass(name);
} catch (FileNotFoundException ex) {
jspCompiler.removeGeneratedFiles();
throw ex;
@@ -609,26 +615,34 @@
}
public void createOutdir(String dirPath) {
- File outDirF = null;
+
try {
- URL outURL = options.getScratchDir().toURL();
- String outUri = outURL.toString();
- if (outUri.endsWith("/")) {
- outUri = outUri
- + dirPath.substring(1, dirPath.lastIndexOf("/") + 1);
+ // Append servlet or tag handler path to scratch dir
+ URL outUrl = options.getScratchDir().toURL();
+ String outUrlString = outUrl.toString();
+ if (outUrlString.endsWith("/")) {
+ outUrlString += dirPath.substring(1,
+ dirPath.lastIndexOf("/")+1);
} else {
- outUri = outUri
- + dirPath.substring(0, dirPath.lastIndexOf("/") + 1);
+ outUrlString += dirPath.substring(0,
+ dirPath.lastIndexOf("/")+1);
}
- outURL = new URL(outUri);
- outDirF = new File(outURL.getFile());
- if (!outDirF.exists()) {
- outDirF.mkdirs();
+ outUrl = new URL(outUrlString);
+ File outDirFile = new File(outUrl.getFile());
+ if (!outDirFile.exists()) {
+ outDirFile.mkdirs();
}
- this.outputDir = outDirF.toString() + File.separator;
+ this.outputDir = outDirFile.toString() + File.separator;
- outUrls[0] = new URL(outDirF.toURL().toString() + File.separator);
- outUrls[1] = new URL("file:" + options.getScratchDir() + File.separator + "tagfiles" + File.separator);
+ // Populate the URL array with the URLs from which to load the
+ // generated servlet and tag handler classes. The URL array is
+ // passed to our org.apache.jasper.servlet.JasperLoader, which
+ // extends URLClassLoader
+ outUrls[0] = new URL(outDirFile.toURL().toString()
+ + File.separator);
+ outUrls[1] = new URL("file:" + options.getScratchDir()
+ + File.separator + "tags"
+ + File.separator);
} catch (Exception e) {
throw new IllegalStateException("No output directory: " +
e.getMessage());
1.38 +1 -1 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Compiler.java
Index: Compiler.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Compiler.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- Compiler.java 21 Oct 2002 20:13:32 -0000 1.37
+++ Compiler.java 28 Nov 2002 04:18:08 -0000 1.38
@@ -373,7 +373,7 @@
javac.execute();
}
} catch (BuildException e) {
- log.error( "Javac execption ", e);
+ log.error( "Javac exception ", e);
success = false;
}
1.133 +9 -8 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java
Index: Generator.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -r1.132 -r1.133
--- Generator.java 27 Nov 2002 02:31:29 -0000 1.132
+++ Generator.java 28 Nov 2002 04:18:08 -0000 1.133
@@ -2830,10 +2830,11 @@
// Generate package declaration
String className = tagInfo.getTagClassName();
- if (className.indexOf('.') != -1) {
- String pkgName
- = className.substring(0, className.lastIndexOf("."));
- genPreamblePackage( pkgName );
+ int lastIndex = className.lastIndexOf('.');
+ if (lastIndex != -1) {
+ String pkgName = className.substring(0, lastIndex);
+ genPreamblePackage(pkgName);
+ className = className.substring(lastIndex + 1);
}
// Generate imports
@@ -2841,7 +2842,7 @@
// Generate class declaration
out.printin("public final class ");
- out.println(tagInfo.getTagName());
+ out.println(className);
out.printil(" extends javax.servlet.jsp.tagext.SimpleTagSupport");
/* Supress until we also implement resolveFunction()
out.printil(" implements "javax.servlet.jsp.el.FunctionMapper, ");
1.15 +5 -6 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java
Index: ImplicitTagLibraryInfo.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ImplicitTagLibraryInfo.java 30 Oct 2002 18:06:09 -0000 1.14
+++ ImplicitTagLibraryInfo.java 28 Nov 2002 04:18:08 -0000 1.15
@@ -110,9 +110,8 @@
// Determine the value of the <short-name> subelement of the
// "imaginary" <taglib> element
- if (tagdir.equals(WEB_INF_TAGS) ||
- tagdir.equals( WEB_INF_TAGS + "/" ) )
- {
+ if (tagdir.equals(WEB_INF_TAGS)
+ || tagdir.equals( WEB_INF_TAGS + "/")) {
shortname = TAGS_SHORTNAME;
} else {
shortname = tagdir.substring(WEB_INF_TAGS.length());
1.7 +5 -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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- JspRuntimeContext.java 7 Nov 2002 21:14:53 -0000 1.6
+++ JspRuntimeContext.java 28 Nov 2002 04:18:08 -0000 1.7
@@ -366,7 +366,7 @@
}
}
- cpath.append(options.getScratchDir() + "/tagfiles" + sep);
+ cpath.append(options.getScratchDir() + "/tags" + sep);
String cp = (String) context.getAttribute(Constants.SERVLET_CLASSPATH);
if (cp == null || cp.equals("")) {
1.24 +44 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspUtil.java
Index: JspUtil.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspUtil.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- JspUtil.java 27 Nov 2002 02:48:10 -0000 1.23
+++ JspUtil.java 28 Nov 2002 04:18:08 -0000 1.24
@@ -99,6 +99,9 @@
*/
public class JspUtil {
+ private static final String WEB_INF_TAGS = "/WEB-INF/tags/";
+ private static final String META_INF_TAGS = "/META-INF/tags/";
+
// Delimiters for request-time expressions (JSP and XML syntax)
private static final String OPEN_EXPR = "<%=";
private static final String CLOSE_EXPR = "%>";
@@ -750,6 +753,44 @@
return in;
}
+ /**
+ * Gets the fully-qualified class name of the tag handler corresponding to
+ * the given tag file path.
+ */
+ public static String getTagHandlerClassName(String path,
+ ErrorDispatcher err)
+ throws JasperException {
+
+ String className = null;
+ int begin = 0;
+ int index;
+
+ // Remove ".tag" suffix
+ index = path.lastIndexOf(".tag");
+ if (index != -1) {
+ path = path.substring(0, index);
+ } else {
+ err.jspError("XXX", path);
+ }
+
+ index = path.indexOf(WEB_INF_TAGS);
+ if (index != -1) {
+ className = "org.apache.jsp.tag.web.";
+ begin = index + WEB_INF_TAGS.length();
+ } else {
+ index = path.indexOf(META_INF_TAGS);
+ if (index != -1) {
+ className = "org.apache.jsp.tag.meta.";
+ begin = index + META_INF_TAGS.length();
+ } else {
+ err.jspError("jsp.error.tagfile.wrong.path", path);
+ }
+ }
+
+ className += path.substring(begin).replace(File.separatorChar, '.');
+
+ return className;
+ }
static InputStreamReader getReader(String fname, String encoding,
JarFile jarFile,
1.42 +4 -4 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java
Index: Node.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- Node.java 26 Nov 2002 01:25:29 -0000 1.41
+++ Node.java 28 Nov 2002 04:18:08 -0000 1.42
@@ -141,7 +141,7 @@
}
/**
- * Get the attribute that is non requrest time expression, either
+ * Get the attribute that is non request time expression, either
* from the attribute of the node, or from a jsp:attrbute
*/
public String getTextAttribute(String name) {
1.36 +20 -17 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.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- TagFileProcessor.java 30 Oct 2002 20:53:11 -0000 1.35
+++ TagFileProcessor.java 28 Nov 2002 04:18:08 -0000 1.36
@@ -123,7 +123,7 @@
private TagLibraryInfo tagLibInfo;
private String name = null;
- private String tagclass = null;
+ private String path = null;
private TagExtraInfo tei = null;
private String bodycontent = null;
private String description = null;
@@ -137,10 +137,12 @@
public TagFileDirectiveVisitor(Compiler compiler,
TagLibraryInfo tagLibInfo,
- String name) {
+ String name,
+ String path) {
err = compiler.getErrorDispatcher();
this.tagLibInfo = tagLibInfo;
this.name = name;
+ this.path = path;
attributeVector = new Vector();
variableVector = new Vector();
}
@@ -251,7 +253,7 @@
return variableVector;
}
- public TagInfo getTagInfo() {
+ public TagInfo getTagInfo() throws JasperException {
if (name == null) {
// XXX Get it from tag file name
@@ -261,7 +263,7 @@
bodycontent = TagInfo.BODY_CONTENT_SCRIPTLESS;
}
- tagclass = Constants.TAG_FILE_PACKAGE_NAME + "." + name;
+ String tagClassName = JspUtil.getTagHandlerClassName(path, err);
TagVariableInfo[] tagVariableInfos
= new TagVariableInfo[variableVector.size()];
@@ -272,7 +274,7 @@
attributeVector.copyInto(tagAttributeInfo);
return new TagInfo(name,
- tagclass,
+ tagClassName,
bodycontent,
description,
tagLibInfo,
@@ -299,7 +301,7 @@
*/
public static TagInfo parseTagFile(ParserController pc,
String name,
- String tagfile,
+ String path,
TagLibraryInfo tagLibInfo)
throws JasperException {
@@ -307,15 +309,16 @@
Node.Nodes page = null;
try {
- page = pc.parseTagFile(tagfile);
+ page = pc.parseTagFile(path);
} catch (FileNotFoundException e) {
- err.jspError("jsp.error.file.not.found", tagfile);
+ err.jspError("jsp.error.file.not.found", path);
} catch (IOException e) {
- err.jspError("jsp.error.file.not.found", tagfile);
+ err.jspError("jsp.error.file.not.found", path);
}
TagFileDirectiveVisitor tagFileVisitor
- = new TagFileDirectiveVisitor(pc.getCompiler(), tagLibInfo, name);
+ = new TagFileDirectiveVisitor(pc.getCompiler(), tagLibInfo, name,
+ path);
page.visit(tagFileVisitor);
/*
@@ -330,7 +333,7 @@
TagVariableInfo varInfo = (TagVariableInfo) varsIter.next();
if (attrInfo.getName().equals(varInfo.getNameGiven())) {
err.jspError("jsp.error.tagfile.var_name_given_equals_attr_name",
- tagfile, attrInfo.getName());
+ path, attrInfo.getName());
}
}
}
@@ -362,7 +365,7 @@
rctxt.addWrapper(tagFilePath,wrapper);
}
- Class tagClass;
+ Class tagClazz;
int tripCount = wrapper.incTripCount();
try {
if (tripCount > 0) {
@@ -378,11 +381,11 @@
tagInfo,
ctxt.getRuntimeContext(),
ctxt.getTagFileJars());
- tagClass = tempWrapper.loadTagFilePrototype();
+ tagClazz = tempWrapper.loadTagFilePrototype();
tempVector.add(
tempWrapper.getJspEngineContext().getCompiler());
} else {
- tagClass = wrapper.loadTagFile();
+ tagClazz = wrapper.loadTagFile();
}
} finally {
wrapper.decTripCount();
@@ -399,7 +402,7 @@
}
}
- return tagClass;
+ return tagClazz;
}
}
1.27 +11 -6 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.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- TagLibraryInfoImpl.java 27 Nov 2002 16:00:14 -0000 1.26
+++ TagLibraryInfoImpl.java 28 Nov 2002 04:18:08 -0000 1.27
@@ -196,8 +196,7 @@
pageInfo.addDependant(location[0]);
}
} else {
- // Location points to a jar file
- // tag library in jar file
+ // Tag library is packaged in JAR file
JarFile jarFile = null;
ZipEntry jarEntry = null;
InputStream stream = null;
@@ -439,12 +438,18 @@
path = path.replace('\\', '/');
if (!path.startsWith("/")) {
- // relative to uri of TLD file
+ // Tag file path is relative to uri of TLD file
path = uri.substring(0, uri.lastIndexOf("/") + 1) + path;
+ try {
+ path = new File(path).getCanonicalPath();
+ } catch (IOException ioe) {
+ throw new JasperException(ioe);
+ }
} else if (path.startsWith("/META-INF/tags")) {
// Tag file packaged in JAR
ctxt.getTagFileJars().put(path, jarFile);
}
+
TagInfo tagInfo = TagFileProcessor.parseTagFile(parserController,
name, path,
this);
1.7 +2 -2 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/servlet/JasperLoader.java
Index: JasperLoader.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/servlet/JasperLoader.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- JasperLoader.java 7 Nov 2002 21:13:05 -0000 1.6
+++ JasperLoader.java 28 Nov 2002 04:18:08 -0000 1.7
@@ -92,10 +92,10 @@
private SecurityManager securityManager;
private PrivilegedLoadClass privLoadClass;
- public JasperLoader(URL [] urls, String className, ClassLoader parent,
+ public JasperLoader(URL[] urls, String className, ClassLoader parent,
PermissionCollection permissionCollection,
CodeSource codeSource) {
- super(urls,parent);
+ super(urls, parent);
this.permissionCollection = permissionCollection;
this.codeSource = codeSource;
this.className = className;
1.21 +7 -15 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/servlet/JspServletWrapper.java
Index: JspServletWrapper.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/servlet/JspServletWrapper.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- JspServletWrapper.java 27 Nov 2002 16:00:41 -0000 1.20
+++ JspServletWrapper.java 28 Nov 2002 04:18:08 -0000 1.21
@@ -60,6 +60,7 @@
package org.apache.jasper.servlet;
import java.io.IOException;
+import java.io.File;
import java.io.FileNotFoundException;
import java.util.Hashtable;
import java.net.URL;
@@ -83,6 +84,7 @@
import org.apache.jasper.Options;
import org.apache.jasper.JspCompilationContext;
import org.apache.jasper.compiler.JspRuntimeContext;
+import org.apache.jasper.compiler.JspUtil;
import org.apache.jasper.runtime.JspSourceDependent;
import org.apache.jasper.logging.Logger;
@@ -152,18 +154,8 @@
ctxt = new JspCompilationContext(jspUri, tagInfo, options,
servletContext, this, rctxt,
tagFileJars);
-
- // Store tag handler .java and .class files in standard location
- // (/tagfiles/org/apache/jsp/), regardless of the original tag file
- // path
- String standard = null;
- if (tagFilePath.indexOf('/') != -1) {
- standard = "/tagfiles/org/apache/jsp/tagfile/"
- + tagFilePath.substring(tagFilePath.lastIndexOf("/") + 1);
- } else {
- standard = "/tagfiles/org/apache/jsp/tagfile/" + tagFilePath;
- }
- ctxt.createOutdir(standard);
+ ctxt.createOutdir("/tags/"
+ + tagInfo.getTagClassName().replace('.', File.separatorChar));
}
public JspCompilationContext getJspEngineContext() {
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>