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]

Reply via email to