Author: remm
Date: Thu Oct 26 17:24:37 2006
New Revision: 468205

URL: http://svn.apache.org/viewvc?view=rev&rev=468205
Log:
- Implement the JspIdConsumer feature.

Modified:
    tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java
    tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Node.java

Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java?view=diff&rev=468205&r1=468204&r2=468205
==============================================================================
--- 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 Thu Oct 
26 17:24:37 2006
@@ -35,6 +35,7 @@
 
 import javax.el.MethodExpression;
 import javax.el.ValueExpression;
+import javax.servlet.jsp.tagext.JspIdConsumer;
 import javax.servlet.jsp.tagext.TagAttributeInfo;
 import javax.servlet.jsp.tagext.TagInfo;
 import javax.servlet.jsp.tagext.TagVariableInfo;
@@ -2151,7 +2152,7 @@
             out.print(" ");
             out.print(tagHandlerVar);
             out.print(" = ");
-            if (isPoolingEnabled) {
+            if (isPoolingEnabled && 
!(JspIdConsumer.class.isAssignableFrom(tagHandlerClass))) {
                 out.print("(");
                 out.print(tagHandlerClassName);
                 out.print(") ");
@@ -2305,7 +2306,7 @@
                     .println(".doEndTag() == 
javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {");
             out.pushIndent();
             if (!n.implementsTryCatchFinally()) {
-                if (isPoolingEnabled) {
+                if (isPoolingEnabled && 
!(JspIdConsumer.class.isAssignableFrom(n.getTagHandlerClass()))) {
                     out.printin(n.getTagHandlerPoolName());
                     out.print(".reuse(");
                     out.print(tagHandlerVar);
@@ -2835,7 +2836,7 @@
                         sb.append(getJspContextVar());
                         sb.append(".getELContext()");
                         sb.append(")");
-                    } 
+                    }
                     attrValue = sb.toString();
                 } else if (attr.isDeferredMethodInput()
                         || MethodExpression.class.getName().equals(type)) {
@@ -2925,6 +2926,14 @@
                 TagHandlerInfo handlerInfo, boolean simpleTag)
                 throws JasperException {
 
+            // Set the id of the tag
+            if (JspIdConsumer.class.isAssignableFrom(n.getTagHandlerClass())) {
+                out.printin(tagHandlerVar);
+                out.print(".setJspId(\"");
+                out.print(n.getId());
+                out.println("\");");
+            }
+            
             // Set context
             if (simpleTag) {
                 // Generate alias map

Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Node.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Node.java?view=diff&rev=468205&r1=468204&r2=468205
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Node.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Node.java Thu Oct 26 
17:24:37 2006
@@ -1354,6 +1354,8 @@
      */
     public static class CustomTag extends Node {
 
+        private static int id = 0;
+        
         private String uri;
 
         private String prefix;
@@ -1624,6 +1626,10 @@
             return this.numCount;
         }
 
+        public String getId() {
+            return "_" + (++id);
+        }
+        
         public void setScriptingVars(Vector vec, int scope) {
             switch (scope) {
             case VariableInfo.AT_BEGIN:



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to