Author: remm
Date: Tue May 9 07:05:23 2006
New Revision: 405437
URL: http://svn.apache.org/viewcvs?rev=405437&view=rev
Log:
- Use the ignore annotation flag.
- It needs recompilation in case the value is changed. It could do without, but
would need
additional code in the generated servlets (a field, read a servlet context
param), so
it would generally be (even) more intrusive :(
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/jasper/EmbeddedServletOptions.java
tomcat/tc6.0.x/trunk/java/org/apache/jasper/JspC.java
tomcat/tc6.0.x/trunk/java/org/apache/jasper/Options.java
tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java
tomcat/tc6.0.x/trunk/java/org/apache/jasper/runtime/TagHandlerPool.java
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/jasper/EmbeddedServletOptions.java
URL:
http://svn.apache.org/viewcvs/tomcat/tc6.0.x/trunk/java/org/apache/jasper/EmbeddedServletOptions.java?rev=405437&r1=405436&r2=405437&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/jasper/EmbeddedServletOptions.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/EmbeddedServletOptions.java Tue
May 9 07:05:23 2006
@@ -174,6 +174,11 @@
*/
private boolean xpoweredBy;
+ /**
+ * Should annotations be ignored?
+ */
+ private boolean ignoreAnnotations = false;
+
public String getProperty(String name ) {
return settings.getProperty( name );
}
@@ -245,6 +250,13 @@
}
/**
+ * Should annotations on tags be ignored?
+ */
+ public boolean getIgnoreAnnotations() {
+ return ignoreAnnotations;
+ }
+
+ /**
* Is the generation of SMAP info for JSR45 debuggin suppressed?
*/
public boolean isSmapSuppressed() {
@@ -384,6 +396,11 @@
String validating=config.getInitParameter( "validating");
if( "false".equals( validating )) ParserUtils.validating=false;
+ String annotations =
config.getInitParameter("org.apache.jasper.IGNORE_ANNOTATIONS");
+ if ("true".equals(annotations)) {
+ ignoreAnnotations = true;
+ }
+
String keepgen = config.getInitParameter("keepgenerated");
if (keepgen != null) {
if (keepgen.equalsIgnoreCase("true")) {
Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/JspC.java
URL:
http://svn.apache.org/viewcvs/tomcat/tc6.0.x/trunk/java/org/apache/jasper/JspC.java?rev=405437&r1=405436&r2=405437&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/jasper/JspC.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/JspC.java Tue May 9 07:05:23
2006
@@ -159,6 +159,7 @@
private boolean smapSuppressed = true;
private boolean smapDumped = false;
private boolean caching = true;
+ private boolean ignoreAnnotations = false;
private Map cache = new HashMap();
private String compiler = null;
@@ -588,6 +589,20 @@
*/
public void setCompilerSourceVM(String vm) {
compilerSourceVM = vm;
+ }
+
+ /**
+ * Should annotations on tags be ignored?
+ */
+ public boolean getIgnoreAnnotations() {
+ return ignoreAnnotations;
+ }
+
+ /**
+ * Should annotations on tags be ignored?
+ */
+ public void setIgnoreAnnotations(boolean ignoreAnnotations) {
+ this.ignoreAnnotations = ignoreAnnotations;
}
public TldLocationsCache getTldLocationsCache() {
Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/Options.java
URL:
http://svn.apache.org/viewcvs/tomcat/tc6.0.x/trunk/java/org/apache/jasper/Options.java?rev=405437&r1=405436&r2=405437&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/jasper/Options.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/Options.java Tue May 9
07:05:23 2006
@@ -92,6 +92,11 @@
public boolean getTrimSpaces();
/**
+ * Should annotations on tags be ignored?
+ */
+ public boolean getIgnoreAnnotations();
+
+ /**
* Class ID for use in the plugin tag when the browser is IE.
*/
public String getIeClassId();
Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java
URL:
http://svn.apache.org/viewcvs/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java?rev=405437&r1=405436&r2=405437&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java Tue May
9 07:05:23 2006
@@ -2143,9 +2143,11 @@
out.print("new ");
out.print(tagHandlerClassName);
out.println("();");
-
out.printin("org.apache.jasper.runtime.AnnotationProcessor.postConstruct(");
- out.print(tagHandlerVar);
- out.println(");");
+ if (!ctxt.getOptions().getIgnoreAnnotations()) {
+
out.printin("org.apache.jasper.runtime.AnnotationProcessor.postConstruct(");
+ out.print(tagHandlerVar);
+ out.println(");");
+ }
}
// includes setting the context
@@ -2291,19 +2293,21 @@
} else {
out.printin(tagHandlerVar);
out.println(".release();");
- out.printil("try {");
- out.pushIndent();
-
out.printin("org.apache.jasper.runtime.AnnotationProcessor.preDestroy(");
- out.print(tagHandlerVar);
- out.println(");");
- out.popIndent();
- out.printil("} catch (Exception e) {");
- out.pushIndent();
- out.printin("log(\"Error processing preDestroy on tag
instance of \" +");
- out.print(tagHandlerVar);
- out.println(".getClass().getName());");
- out.popIndent();
- out.printil("}");
+ if (!ctxt.getOptions().getIgnoreAnnotations()) {
+ out.printil("try {");
+ out.pushIndent();
+
out.printin("org.apache.jasper.runtime.AnnotationProcessor.preDestroy(");
+ out.print(tagHandlerVar);
+ out.println(");");
+ out.popIndent();
+ out.printil("} catch (Exception e) {");
+ out.pushIndent();
+ out.printin("log(\"Error processing preDestroy on tag
instance of \" +");
+ out.print(tagHandlerVar);
+ out.println(".getClass().getName());");
+ out.popIndent();
+ out.printil("}");
+ }
}
}
if (isTagFile || isFragment) {
@@ -2346,19 +2350,21 @@
} else {
out.printin(tagHandlerVar);
out.println(".release();");
- out.printil("try {");
- out.pushIndent();
-
out.printin("org.apache.jasper.runtime.AnnotationProcessor.preDestroy(");
- out.print(tagHandlerVar);
- out.println(");");
- out.popIndent();
- out.printil("} catch (Exception e) {");
- out.pushIndent();
- out.printin("log(\"Error processing preDestroy on tag instance
of \" +");
- out.print(tagHandlerVar);
- out.println(".getClass().getName());");
- out.popIndent();
- out.printil("}");
+ if (!ctxt.getOptions().getIgnoreAnnotations()) {
+ out.printil("try {");
+ out.pushIndent();
+
out.printin("org.apache.jasper.runtime.AnnotationProcessor.preDestroy(");
+ out.print(tagHandlerVar);
+ out.println(");");
+ out.popIndent();
+ out.printil("} catch (Exception e) {");
+ out.pushIndent();
+ out.printin("log(\"Error processing preDestroy on tag
instance of \" +");
+ out.print(tagHandlerVar);
+ out.println(".getClass().getName());");
+ out.popIndent();
+ out.printil("}");
+ }
}
if (n.implementsTryCatchFinally()) {
@@ -2399,9 +2405,11 @@
out.println("();");
// Resource injection
-
out.printin("org.apache.jasper.runtime.AnnotationProcessor.postConstruct(");
- out.print(tagHandlerVar);
- out.println(");");
+ if (!ctxt.getOptions().getIgnoreAnnotations()) {
+
out.printin("org.apache.jasper.runtime.AnnotationProcessor.postConstruct(");
+ out.print(tagHandlerVar);
+ out.println(");");
+ }
generateSetters(n, tagHandlerVar, handlerInfo, true);
@@ -2447,9 +2455,11 @@
syncScriptingVars(n, VariableInfo.AT_END);
// Resource injection
-
out.printin("org.apache.jasper.runtime.AnnotationProcessor.preDestroy(");
- out.print(tagHandlerVar);
- out.println(");");
+ if (!ctxt.getOptions().getIgnoreAnnotations()) {
+
out.printin("org.apache.jasper.runtime.AnnotationProcessor.preDestroy(");
+ out.print(tagHandlerVar);
+ out.println(");");
+ }
n.setEndJavaLine(out.getJavaLine());
}
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/jasper/runtime/TagHandlerPool.java
URL:
http://svn.apache.org/viewcvs/tomcat/tc6.0.x/trunk/java/org/apache/jasper/runtime/TagHandlerPool.java?rev=405437&r1=405436&r2=405437&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/jasper/runtime/TagHandlerPool.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/runtime/TagHandlerPool.java Tue
May 9 07:05:23 2006
@@ -40,6 +40,7 @@
// index of next available tag handler
private int current;
+ private boolean ignoreAnnotations = false;
public static TagHandlerPool getTagHandlerPool( ServletConfig config) {
TagHandlerPool result=null;
@@ -75,6 +76,10 @@
}
this.handlers = new Tag[maxSize];
this.current = -1;
+ String annotations = getOption(config,
"org.apache.jasper.IGNORE_ANNOTATIONS", null);
+ if ("true".equals(annotations)) {
+ ignoreAnnotations = true;
+ }
}
/**
@@ -119,7 +124,9 @@
// wait for us to construct a tag for this thread.
try {
Tag instance = (Tag) handlerClass.newInstance();
- AnnotationProcessor.postConstruct(instance);
+ if (!ignoreAnnotations) {
+ AnnotationProcessor.postConstruct(instance);
+ }
return instance;
} catch (Exception e) {
throw new JspException(e.getMessage(), e);
@@ -142,11 +149,13 @@
}
// There is no need for other threads to wait for us to release
handler.release();
- try {
- AnnotationProcessor.preDestroy(handler);
- } catch (Exception e) {
- log.warn("Error processing preDestroy on tag instance of "
- + handler.getClass().getName(), e);
+ if (!ignoreAnnotations) {
+ try {
+ AnnotationProcessor.preDestroy(handler);
+ } catch (Exception e) {
+ log.warn("Error processing preDestroy on tag instance of "
+ + handler.getClass().getName(), e);
+ }
}
}
@@ -157,11 +166,13 @@
public synchronized void release() {
for (int i = current; i >= 0; i--) {
handlers[i].release();
- try {
- AnnotationProcessor.preDestroy(handlers[i]);
- } catch (Exception e) {
- log.warn("Error processing preDestroy on tag instance of "
- + handlers[i].getClass().getName(), e);
+ if (!ignoreAnnotations) {
+ try {
+ AnnotationProcessor.preDestroy(handlers[i]);
+ } catch (Exception e) {
+ log.warn("Error processing preDestroy on tag instance of "
+ + handlers[i].getClass().getName(), e);
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]