You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by xi...@apache.org on 2011/12/15 19:30:44 UTC
svn commit: r1214905 -
/geronimo/external/trunk/tomcat-parent-6.0.35/jasper/src/main/java/org/apache/jasper/compiler/Generator.java
Author: xiaming
Date: Thu Dec 15 18:30:43 2011
New Revision: 1214905
URL: http://svn.apache.org/viewvc?rev=1214905&view=rev
Log:
More change about InstanceManager in jasper module for jsp compiler
Modified:
geronimo/external/trunk/tomcat-parent-6.0.35/jasper/src/main/java/org/apache/jasper/compiler/Generator.java
Modified: geronimo/external/trunk/tomcat-parent-6.0.35/jasper/src/main/java/org/apache/jasper/compiler/Generator.java
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-6.0.35/jasper/src/main/java/org/apache/jasper/compiler/Generator.java?rev=1214905&r1=1214904&r2=1214905&view=diff
==============================================================================
--- geronimo/external/trunk/tomcat-parent-6.0.35/jasper/src/main/java/org/apache/jasper/compiler/Generator.java (original)
+++ geronimo/external/trunk/tomcat-parent-6.0.35/jasper/src/main/java/org/apache/jasper/compiler/Generator.java Thu Dec 15 18:30:43 2011
@@ -75,10 +75,10 @@ class Generator {
private static final String VAR_EXPRESSIONFACTORY =
System.getProperty("org.apache.jasper.compiler.Generator.VAR_EXPRESSIONFACTORY", "_el_expressionfactory");
- private static final String VAR_ANNOTATIONPROCESSOR =
- System.getProperty("org.apache.jasper.compiler.Generator.VAR_ANNOTATIONPROCESSOR", "_jsp_annotationprocessor");
+ private static final String VAR_INSTANCEMANAGER =
+ System.getProperty("org.apache.jasper.compiler.Generator.VAR_INSTANCEMANAGER", "_jsp_instancemanager");
private static final boolean POOL_TAGS_WITH_EXTENDS =
- Boolean.getBoolean("org.apache.jasper.compiler.Generator.POOL_TAGS_WITH_EXTENDS");
+ Boolean.getBoolean("org.apache.jasper.compiler.Generator.VAR_EXPRESSIONFACTORY");
/* System property that controls if the requirement to have the object
* used in jsp:getProperty action to be previously "introduced"
@@ -437,14 +437,14 @@ class Generator {
}
out.println(".getServletContext()).getExpressionFactory();");
- out.printin(VAR_ANNOTATIONPROCESSOR);
- out.print(" = (org.apache.AnnotationProcessor) ");
+ out.printin(VAR_INSTANCEMANAGER);
+ out.print(" = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(");
if (ctxt.isTagFile()) {
out.print("config");
} else {
out.print("getServletConfig()");
}
- out.println(".getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());");
+ out.println(");");
out.popIndent();
out.printil("}");
@@ -548,8 +548,8 @@ class Generator {
out.printin("private javax.el.ExpressionFactory ");
out.print(VAR_EXPRESSIONFACTORY);
out.println(";");
- out.printin("private org.apache.AnnotationProcessor ");
- out.print(VAR_ANNOTATIONPROCESSOR);
+ out.printin("private org.apache.InstanceManager ");
+ out.print(VAR_INSTANCEMANAGER);
out.println(";");
out.println();
}
@@ -2204,11 +2204,11 @@ class Generator {
String tagHandlerClassName = JspUtil
.getCanonicalName(tagHandlerClass);
- out.printin(tagHandlerClassName);
- out.print(" ");
- out.print(tagHandlerVar);
- out.print(" = ");
if (isPoolingEnabled && !(n.implementsJspIdConsumer())) {
+ out.printin(tagHandlerClassName);
+ out.print(" ");
+ out.print(tagHandlerVar);
+ out.print(" = ");
out.print("(");
out.print(tagHandlerClassName);
out.print(") ");
@@ -2217,14 +2217,7 @@ class Generator {
out.print(tagHandlerClassName);
out.println(".class);");
} else {
- out.print("new ");
- out.print(tagHandlerClassName);
- out.println("();");
- out.printin("org.apache.jasper.runtime.AnnotationHelper.postConstruct(");
- out.print(VAR_ANNOTATIONPROCESSOR);
- out.print(", ");
- out.print(tagHandlerVar);
- out.println(");");
+ writeNewInstance(tagHandlerVar, tagHandlerClassName);
}
// includes setting the context
@@ -2282,8 +2275,7 @@ class Generator {
out.println("[0]++;");
}
out.printin(tagHandlerVar);
- out
- .println(".setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);");
+ out.println(".setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);");
out.printin(tagHandlerVar);
out.println(".doInitBody();");
@@ -2309,6 +2301,40 @@ class Generator {
n.setEndJavaLine(out.getJavaLine());
}
+ private void writeNewInstance(String tagHandlerVar, String tagHandlerClassName) {
+ if (Constants.USE_INSTANCE_MANAGER_FOR_TAGS) {
+ out.printin(tagHandlerClassName);
+ out.print(" ");
+ out.print(tagHandlerVar);
+ out.print(" = (");
+ out.print(tagHandlerClassName);
+ out.print(")");
+ out.print(VAR_INSTANCEMANAGER);
+ out.print(".newInstance(\"");
+ out.print(tagHandlerClassName);
+ out.println("\", this.getClass().getClassLoader());");
+ } else {
+ out.printin(tagHandlerClassName);
+ out.print(" ");
+ out.print(tagHandlerVar);
+ out.print(" = (");
+ out.print("new ");
+ out.print(tagHandlerClassName);
+ out.println("());");
+ out.printin(VAR_INSTANCEMANAGER);
+ out.print(".newInstance(");
+ out.print(tagHandlerVar);
+ out.println(");");
+ }
+ }
+
+ private void writeDestroyInstance(String tagHandlerVar) {
+ out.printin(VAR_INSTANCEMANAGER);
+ out.print(".destroyInstance(");
+ out.print(tagHandlerVar);
+ out.println(");");
+ }
+
private void generateCustomEnd(Node.CustomTag n, String tagHandlerVar,
String tagEvalVar, String tagPushBodyCountVar) {
@@ -2370,11 +2396,7 @@ class Generator {
} else {
out.printin(tagHandlerVar);
out.println(".release();");
- out.printin("org.apache.jasper.runtime.AnnotationHelper.preDestroy(");
- out.print(VAR_ANNOTATIONPROCESSOR);
- out.print(", ");
- out.print(tagHandlerVar);
- out.println(");");
+ writeDestroyInstance(tagHandlerVar);
}
}
if (isTagFile || isFragment) {
@@ -2417,11 +2439,7 @@ class Generator {
} else {
out.printin(tagHandlerVar);
out.println(".release();");
- out.printin("org.apache.jasper.runtime.AnnotationHelper.preDestroy(");
- out.print(VAR_ANNOTATIONPROCESSOR);
- out.print(", ");
- out.print(tagHandlerVar);
- out.println(");");
+ writeDestroyInstance(tagHandlerVar);
}
if (n.implementsTryCatchFinally()) {
@@ -2453,21 +2471,8 @@ class Generator {
String tagHandlerClassName = JspUtil
.getCanonicalName(tagHandlerClass);
- out.printin(tagHandlerClassName);
- out.print(" ");
- out.print(tagHandlerVar);
- out.print(" = ");
- out.print("new ");
- out.print(tagHandlerClassName);
- out.println("();");
+ writeNewInstance(tagHandlerVar, tagHandlerClassName);
- // Resource injection
- out.printin("org.apache.jasper.runtime.AnnotationHelper.postConstruct(");
- out.print(VAR_ANNOTATIONPROCESSOR);
- out.print(", ");
- out.print(tagHandlerVar);
- out.println(");");
-
generateSetters(n, tagHandlerVar, handlerInfo, true);
// JspIdConsumer (after context has been set)
@@ -2520,11 +2525,7 @@ class Generator {
syncScriptingVars(n, VariableInfo.AT_END);
// Resource injection
- out.printin("org.apache.jasper.runtime.AnnotationHelper.preDestroy(");
- out.print(VAR_ANNOTATIONPROCESSOR);
- out.print(", ");
- out.print(tagHandlerVar);
- out.println(");");
+ writeDestroyInstance(tagHandlerVar);
n.setEndJavaLine(out.getJavaLine());
}