luehe 2002/06/26 09:50:38
Modified: jasper2/src/share/org/apache/jasper
EmbededServletOptions.java JspC.java Options.java
jasper2/src/share/org/apache/jasper/compiler Generator.java
jasper2/src/share/org/apache/jasper/resources
messages.properties messages_es.properties
messages_ja.properties
Log:
Added boolean context init parameter 'enablePooling', which determines
whether tag handler pooling is turned on (true by default)
Revision Changes Path
1.8 +27 -5
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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- EmbededServletOptions.java 20 Jun 2002 22:48:44 -0000 1.7
+++ EmbededServletOptions.java 26 Jun 2002 16:50:37 -0000 1.8
@@ -100,7 +100,12 @@
* data being used literally in the generated servlet.
*/
public boolean largeFile = false;
-
+
+ /**
+ * Determines whether tag handler pooling is enabled.
+ */
+ public boolean poolingEnabled = true;
+
/**
* Do you want support for "mapped" files? This will generate
* servlet that has a print statement per line of the JSP file.
@@ -185,6 +190,10 @@
public boolean getLargeFile() {
return largeFile;
}
+
+ public boolean isPoolingEnabled() {
+ return poolingEnabled;
+ }
/**
* Are we supporting HTML mapped servlets?
@@ -274,7 +283,9 @@
* Create an EmbededServletOptions object using data available from
* ServletConfig and ServletContext.
*/
- public EmbededServletOptions(ServletConfig config, ServletContext context) {
+ public EmbededServletOptions(ServletConfig config,
+ ServletContext context) {
+
Enumeration enum=config.getInitParameterNames();
while( enum.hasMoreElements() ) {
String k=(String)enum.nextElement();
@@ -313,6 +324,17 @@
else if (mapFile.equalsIgnoreCase("false"))
this.mappedFile = false;
else Constants.message ("jsp.warning.mappedFile", Logger.WARNING);
+ }
+
+ poolingEnabled = true;
+ String poolingEnabledParam
+ = config.getInitParameter("enablePooling");
+ if (poolingEnabledParam != null
+ && !poolingEnabledParam.equalsIgnoreCase("true")) {
+ if (poolingEnabledParam.equalsIgnoreCase("false"))
+ this.poolingEnabled = false;
+ else Constants.message("jsp.warning.enablePooling",
+ Logger.WARNING);
}
String senderr = config.getInitParameter("sendErrToClient");
1.12 +7 -3
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.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- JspC.java 20 Jun 2002 22:49:54 -0000 1.11
+++ JspC.java 26 Jun 2002 16:50:38 -0000 1.12
@@ -205,6 +205,10 @@
return largeFile;
}
+ public boolean isPoolingEnabled() {
+ return true;
+ }
+
/**
* Are we supporting HTML mapped servlets?
*/
1.6 +7 -3
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/Options.java
Index: Options.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/Options.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Options.java 31 May 2002 05:13:13 -0000 1.5
+++ Options.java 26 Jun 2002 16:50:38 -0000 1.6
@@ -89,6 +89,10 @@
*/
public boolean getLargeFile();
+ /**
+ * Returns true if tag handler pooling is enabled, false otherwise.
+ */
+ public boolean isPoolingEnabled();
/**
* Are we supporting HTML mapped servlets?
1.34 +41 -22
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.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- Generator.java 21 Jun 2002 23:29:22 -0000 1.33
+++ Generator.java 26 Jun 2002 16:50:38 -0000 1.34
@@ -394,8 +394,12 @@
// Class variable declarations
- // Declare tag pools, one per (tag with specific attribute list).
- if (!tagHandlerPoolNames.isEmpty()) {
+ /*
+ * Declare tag handler pools (tags of the same type and with the same
+ * attribute set share the same tag handler pool)
+ */
+ if (ctxt.getOptions().isPoolingEnabled()
+ && !tagHandlerPoolNames.isEmpty()) {
for (int i=0; i<tagHandlerPoolNames.size(); i++) {
out.printil("private org.apache.jasper.runtime.TagHandlerPool "
+ tagHandlerPoolNames.elementAt(i) + ";");
@@ -404,7 +408,8 @@
}
// Constructor
- if (!tagHandlerPoolNames.isEmpty()) {
+ if (ctxt.getOptions().isPoolingEnabled()
+ && !tagHandlerPoolNames.isEmpty()) {
generateServletConstructor(servletClassName);
}
@@ -418,7 +423,8 @@
out.printil("}");
out.println();
- if (!tagHandlerPoolNames.isEmpty()) {
+ if (ctxt.getOptions().isPoolingEnabled()
+ && !tagHandlerPoolNames.isEmpty()) {
generateDestroy();
}
@@ -546,7 +552,8 @@
/**
* Constructor.
*/
- public GenerateVisitor(ServletWriter out, MethodsBuffer methodsBuffer) {
+ public GenerateVisitor(ServletWriter out,
+ MethodsBuffer methodsBuffer) {
this.out = out;
this.methodsBuffer = methodsBuffer;
methodNesting = 0;
@@ -1314,13 +1321,20 @@
out.printin(tagHandlerClass.getName());
out.print(" ");
out.print(tagHandlerVar);
- out.print(" = (");
- out.print(tagHandlerClass.getName());
- out.print(") ");
- out.print(n.getTagHandlerPoolName());
- out.print(".get(");
- out.print(tagHandlerClass.getName());
- out.println(".class);");
+ out.print(" = ");
+ if (ctxt.getOptions().isPoolingEnabled()) {
+ out.print("(");
+ out.print(tagHandlerClass.getName());
+ out.print(") ");
+ out.print(n.getTagHandlerPoolName());
+ out.print(".get(");
+ out.print(tagHandlerClass.getName());
+ out.println(".class);");
+ } else {
+ out.print("new ");
+ out.print(tagHandlerClass.getName());
+ out.println("();");
+ }
generateSetters(n, tagHandlerVar, handlerInfo);
@@ -1436,17 +1450,18 @@
out.pushIndent();
out.printin(tagHandlerVar);
out.println(".doFinally();");
+ }
+
+ if (ctxt.getOptions().isPoolingEnabled()) {
out.printin(n.getTagHandlerPoolName());
out.print(".reuse(");
out.print(tagHandlerVar);
out.println(");");
+ }
+
+ if (implementsTryCatchFinally) {
out.popIndent();
out.println("}");
- } else {
- out.printin(n.getTagHandlerPoolName());
- out.print(".reuse(");
- out.print(tagHandlerVar);
- out.println(");");
}
// Synchronize AT_END variables
@@ -1873,7 +1888,9 @@
pageInfo = compiler.getPageInfo();
beanInfo = pageInfo.getBeanRepository();
breakAtLF = ctxt.getOptions().getMappedFile();
- tagHandlerPoolNames = new Vector();
+ if (ctxt.getOptions().isPoolingEnabled()) {
+ tagHandlerPoolNames = new Vector();
+ }
}
/**
@@ -1886,7 +1903,9 @@
Node.Nodes page) throws JasperException {
Generator gen = new Generator(out, compiler);
- gen.compileTagHandlerPoolList(page);
+ if (gen.ctxt.getOptions().isPoolingEnabled()) {
+ gen.compileTagHandlerPoolList(page);
+ }
gen.generatePreamble(page);
page.visit(gen.new GenerateVisitor(out, gen.methodsBuffer));
gen.generatePostamble(page);
1.8 +3 -3
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties
Index: messages.properties
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- messages.properties 24 May 2002 23:57:42 -0000 1.7
+++ messages.properties 26 Jun 2002 16:50:38 -0000 1.8
@@ -112,8 +112,8 @@
jsp.error.setproperty.paramOrValue=setProperty: either param or value can be present
jsp.error.setproperty.arrayVal=setProperty: can't set array property {0} through a
string constant value
jsp.warning.keepgen=Warning: Invalid value for the initParam keepgenerated. Will
use the default value of \"false\"
-jsp.warning.largeFile=Warning: Invalid value for the initParam
-largeFile. Will use the default value of \"true\"
+jsp.warning.largeFile=Warning: Invalid value for the initParam largeFile. Will use
the default value of \"true\"
+jsp.warning.enablePooling=Warning: Invalid value for the initParam enablePooling.
Will use the default value of \"true\"
jsp.warning.mappedFile=Warning: Invalid value for the initParam mappedFile. Will
use the default value of \"false\"
jsp.warning.sendErrToClient=Warning: Invalid value for the initParam
sendErrToClient. Will use the default value of \"false\"
jsp.warning.classDebugInfo=Warning: Invalid value for the initParam classdebuginfo.
Will use the default value of \"false\"
1.2 +2 -1
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages_es.properties
Index: messages_es.properties
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages_es.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- messages_es.properties 28 Mar 2002 18:46:19 -0000 1.1
+++ messages_es.properties 26 Jun 2002 16:50:38 -0000 1.2
@@ -97,6 +97,7 @@
jsp.error.setproperty.arrayVal=setProperty: No puede escribir a la propiedad de
array {0} a traves de una valor de cadena literal
jsp.warning.keepgen=Aviso: valor incorrecto para el initParam keepgen. Se usara el
valor por defecto de \"false\"
jsp.warning.largeFile=Aviso: valor incorrecto para el initParam largeFile. se usara
el valor por defecto de \"true\"
+jsp.warning.enablePooling=Aviso: valor incorrecto para el initParam enablePooling.
se usara el valor por defecto de \"true\"
jsp.warning.mappedFile=Aviso: valor incorrecto para the initParam mappedFile. se
usara el valor por defecto de \"false\"
jsp.warning.sendErrToClient=Aviso: valor incorrecto para the initParam
sendErrToClient. se usara el valor por defecto de \"false\"
jsp.warning.classDebugInfo=Aviso: valor incorrecto para the initParam
classdebuginfo. se usara el valor por defecto de \"false\"
1.2 +2 -1
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages_ja.properties
Index: messages_ja.properties
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages_ja.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- messages_ja.properties 28 Mar 2002 18:46:19 -0000 1.1
+++ messages_ja.properties 26 Jun 2002 16:50:38 -0000 1.2
@@ -109,6 +109,7 @@
jsp.error.setproperty.arrayVal=setProperty: \u5c5e\u6027\u914d\u5217 {0}
\u3092\u6587\u5b57\u5217\u5b9a\u6570\u5024\u3067\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093
jsp.warning.keepgen=\u8b66\u544a: initParam
keepgenerated\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002
\u30c7\u30d5\u30a9\u30eb\u30c8\u5024 \"false\" \u3092\u4f7f\u7528\u3057\u307e\u3059
jsp.warning.largeFile=\u8b66\u544a: initParam
largeFile\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u5024
\"true\" \u3092\u4f7f\u7528\u3057\u307e\u3059
+jsp.warning.enablePooling=\u8b66\u544a: initParam
enablePooling\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u5024
\"true\" \u3092\u4f7f\u7528\u3057\u307e\u3059
jsp.warning.mappedFile=\u8b66\u544a: initParam
mappedFile\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u5024
\"false\" \u3092\u4f7f\u7528\u3057\u307e\u3059
jsp.warning.sendErrToClient=\u8b66\u544a: initParam
sendErrToClient\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u5024
\"false\" \u3092\u4f7f\u7528\u3057\u307e\u3059
jsp.warning.classDebugInfo=\u8b66\u544a: initParam
classdebuginfo\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u5024
\"false\"\u3092\u4f7f\u7528\u3057\u307e\u3059
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>