kinman 2002/11/04 09:44:25 Modified: jsr152/src/share/javax/servlet/jsp/tagext BodyTag.java IterationTag.java SimpleTag.java Tag.java TagData.java TagExtraInfo.java TagInfo.java VariableInfo.java jsr154/src/share/dtd web-jsptaglibrary_2_0.xsd Log: - Patch by Mark Roth Here is a patch with some more javadoc clarifications, to make the API more testable. Thanks go to Ryan Lubke for helping out! Change summary: --------------- jsr152/src/share/javax/servlet/jsp/tagext/VariableInfo.java - Fixed incorrect wording from last patch, for variable synchronization. jsr152/src/share/javax/servlet/jsp/tagext/TagExtraInfo.java - Fixed wording to preserve forwards compatibility for existing TEI implementations. jsr152/src/share/javax/servlet/jsp/tagext/TagInfo.java - Fixed default implementation of getVariableInfo() to return a variable for the id attribute, if specified. Clarified intent in javadocs. jsr152/src/share/javax/servlet/jsp/tagext/TagData.java - Fixed getId() description, as we're not returning the jsp:id in this case. jsr152/src/share/javax/servlet/jsp/tagext/BodyTag.java jsr152/src/share/javax/servlet/jsp/tagext/IterationTag.java jsr152/src/share/javax/servlet/jsp/tagext/SimpleTag.java jsr152/src/share/javax/servlet/jsp/tagext/Tag.java - Clarified javadocs w.r.t. variable synchronization jsr152/src/share/dtd/web-jsptaglibrary_2_0.xsd jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd - Removed fragment element under variable element, as fragment-scoped variables are no longer supported. Revision Changes Path 1.3 +3 -3 jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/BodyTag.java Index: BodyTag.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/BodyTag.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- BodyTag.java 29 Oct 2002 01:18:12 -0000 1.2 +++ BodyTag.java 4 Nov 2002 17:44:24 -0000 1.3 @@ -200,9 +200,9 @@ * tags whose doStartTag() method returns SKIP_BODY or EVAL_BODY_INCLUDE. * * <p> - * The JSP container will resynchronize any variable values that - * are indicated as so in TagExtraInfo or TLD after the invocation of - * doInitBody(). + * The JSP container will resynchronize the values of any AT_BEGIN and + * NESTED variables (defined by the associated TagExtraInfo or TLD) after + * the invocation of doInitBody(). * * @throws JspException * @see #doAfterBody 1.3 +3 -3 jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/IterationTag.java Index: IterationTag.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/IterationTag.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- IterationTag.java 29 Oct 2002 01:18:12 -0000 1.2 +++ IterationTag.java 4 Nov 2002 17:44:24 -0000 1.3 @@ -138,9 +138,9 @@ * of external computation. * * <p> - * The JSP container will resynchronize any variable values that are - * indicated as so in TagExtraInfo or TLD after the invocation of - * doAfterBody(). + * The JSP container will resynchronize the values of any AT_BEGIN and + * NESTED variables (defined by the associated TagExtraInfo or TLD) after + * the invocation of doAfterBody(). * * @return whether additional evaluations of the body are desired * @throws JspException 1.4 +5 -0 jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/SimpleTag.java Index: SimpleTag.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/SimpleTag.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- SimpleTag.java 29 Oct 2002 01:18:12 -0000 1.3 +++ SimpleTag.java 4 Nov 2002 17:44:24 -0000 1.4 @@ -111,6 +111,11 @@ * Called by the container to invoke this tag. * The implementation of this method is provided by the tag library * developer, and handles all tag processing, body iteration, etc. + * + * <p> + * The JSP container will resynchronize any AT_BEGIN and AT_END + * variables (defined by the associated tag file, TagExtraInfo, or TLD) + * after the invocation of doTag(). * * @throws javax.servlet.jsp.JspException If an error occurred * while processing this tag. 1.4 +8 -6 jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/Tag.java Index: Tag.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/Tag.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Tag.java 29 Oct 2002 01:18:12 -0000 1.3 +++ Tag.java 4 Nov 2002 17:44:24 -0000 1.4 @@ -243,9 +243,11 @@ * implements BodyTag. * * <p> - * The JSP container will resynchronize any variable values that are - * indicated as so in TagExtraInfo or the TLD after the invocation of - * doStartTag(). + * The JSP container will resynchronize the values of any AT_BEGIN and + * NESTED variables (defined by the associated TagExtraInfo or TLD) + * after the invocation of doStartTag(), except for a tag handler + * implementing BodyTag whose doStartTag() method returns + * BodyTag.EVAL_BODY_BUFFERED. * * @return EVAL_BODY_INCLUDE if the tag wants to process body, SKIP_BODY * if it does not want to process it. @@ -275,9 +277,9 @@ * only the current page evaluation is stopped. * * <p> - * The JSP container will resynchronize any variable values that are - * indicated as so in TagExtraInfo or the TLD after the invocation of - * doEndTag(). + * The JSP container will resynchronize the values of any AT_BEGIN and + * AT_END variables (defined by the associated TagExtraInfo or TLD) + * after the invocation of doEndTag(). * * @return indication of whether to continue evaluating the JSP page. * @throws JspException if an error occurred while processing this tag 1.4 +3 -2 jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/TagData.java Index: TagData.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/TagData.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TagData.java 29 Oct 2002 01:18:12 -0000 1.3 +++ TagData.java 4 Nov 2002 17:44:24 -0000 1.4 @@ -119,9 +119,10 @@ } /** - * The value of the jsp:id attribute. + * The value of the tag's id attribute. * - * @return the value of the jsp:id attribute. + * @return the value of the tag's id attribute, or null if no such + * attribute was specified. */ public String getId() { 1.4 +1 -1 jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/TagExtraInfo.java Index: TagExtraInfo.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/TagExtraInfo.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TagExtraInfo.java 29 Oct 2002 01:18:12 -0000 1.3 +++ TagExtraInfo.java 4 Nov 2002 17:44:24 -0000 1.4 @@ -97,7 +97,7 @@ * Request-time attributes are indicated as such in the TagData parameter. * * @param data The TagData instance. - * @return An array of VariableInfo data, or a zero length array + * @return An array of VariableInfo data, or null or a zero length array * if no scripting variables are to be defined. */ public VariableInfo[] getVariableInfo(TagData data) { 1.4 +19 -10 jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/TagInfo.java Index: TagInfo.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/TagInfo.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TagInfo.java 29 Oct 2002 01:18:12 -0000 1.3 +++ TagInfo.java 4 Nov 2002 17:44:24 -0000 1.4 @@ -265,22 +265,31 @@ /** * Information on the scripting objects created by this tag at runtime. * This is a convenience method on the associated TagExtraInfo class. - * <p> - * Default is null if the tag has no "id" attribute, - * otherwise, {"id", Object} * * @param data TagData describing this action. - * @return Array of VariableInfo elements, or a zero length - * array if the associated TagExtraInfo defines no scripting - * variables. + * @return if a TagExtraInfo object is associated with this TagInfo, the + * the result of getTagExtraInfo().getVariableInfo( data ), otherwise + * null if the tag has no "id" attribute or new VariableInfo[] { + * new VariableInfo( data.getId(), "java.lang.Object", true, + * VariableInfo.NESTED ) } if an "id" attribute is present. */ - public VariableInfo[] getVariableInfo(TagData data) { + VariableInfo[] result = null; TagExtraInfo tei = getTagExtraInfo(); - if (tei == null) { - return null; + if (tei != null) { + result = tei.getVariableInfo( data ); } - return tei.getVariableInfo(data); + else { + String idValue = data.getId(); + if( idValue != null ) { + result = + new VariableInfo[] { + new VariableInfo( idValue, "java.lang.Object", + true, VariableInfo.NESTED ) + }; + } + } + return result; } /** 1.5 +1 -2 jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/VariableInfo.java Index: VariableInfo.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/VariableInfo.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- VariableInfo.java 31 Oct 2002 23:02:01 -0000 1.4 +++ VariableInfo.java 4 Nov 2002 17:44:24 -0000 1.5 @@ -137,8 +137,7 @@ * The scope value for a variable implies what methods may affect its * value and thus where synchronization is needed as illustrated by * the table below. <b>Note:</b> the synchronization of the variable(s) - * will occur <em>after</em> the associated method has been called. - * + * will occur <em>after</em> the respective method has been called. * * <blockquote> * <table cellpadding="2" cellspacing="2" border="0" width="55%" 1.5 +5 -3 jakarta-servletapi-5/jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd Index: web-jsptaglibrary_2_0.xsd =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- web-jsptaglibrary_2_0.xsd 3 Oct 2002 23:01:44 -0000 1.4 +++ web-jsptaglibrary_2_0.xsd 4 Nov 2002 17:44:25 -0000 1.5 @@ -10,7 +10,7 @@ <xsd:annotation> <xsd:documentation> -@(#)web-jsptaglibrary_2_0.xsds 1.19 09/30/02 +@(#)web-jsptaglibrary_2_0.xsds 1.21 10/15/02 </xsd:documentation> </xsd:annotation> <xsd:annotation> @@ -318,7 +318,9 @@ path Where to find the .tag file implementing this action, relative to the root of the web application or the root of the JAR file for a tag library packaged in - a JAR. + a JAR. This must begin with /WEB-INF/tags if the .tag + file resides in the WAR, or /META-INF/tags if the .tag + file resides in a JAR. </xsd:documentation> </xsd:annotation> @@ -816,7 +818,7 @@ variables defined by using this tag. It is a (translation time) error for a tag that has one or more variable subelements to have a TagExtraInfo class that returns a -non-null object. +non-null value from a call to getVariableInfo(). The subelements of variableType are of the form:
-- To unsubscribe, e-mail: <mailto:tomcat-dev-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:tomcat-dev-help@;jakarta.apache.org>