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]