You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mr...@apache.org on 2007/01/07 06:18:56 UTC

svn commit: r493648 [2/11] - in /struts/struts2/trunk/core: ./ src/main/java/org/apache/struts2/components/ src/main/java/org/apache/struts2/components/table/ src/main/resources/META-INF/ src/site/ src/site/resources/ src/site/resources/tags/

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/GenericUIBean.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/GenericUIBean.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/GenericUIBean.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/GenericUIBean.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
 import org.apache.struts2.util.ContainUtil;
 
 import com.opensymphony.xwork2.util.ValueStack;
@@ -108,9 +109,8 @@
  *
  * <!-- END SNIPPET: note -->
  *
- * @s.tag name="component" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.ComponentTag"
- * description="Render a custom ui widget"
  */
+@StrutsTag(name="component", tldTagClass="org.apache.struts2.views.jsp.ui.ComponentTag", description="Render a custom ui widget")
 public class GenericUIBean extends UIBean {
     private final static String TEMPLATE = "empty";
 

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Head.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Head.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Head.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Head.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
 import org.apache.struts2.StrutsConstants;
 
 import com.opensymphony.xwork2.inject.Inject;
@@ -74,9 +76,9 @@
  * <!-- END SNIPPET: example3 -->
  * </pre>
  *
- * @s.tag name="head" tld-body-content="empty" tld-tag-class="org.apache.struts2.views.jsp.ui.HeadTag"
- * description="Render a chunk of HEAD for your HTML file"
  */
+@StrutsTag(name="head", tldBodyContent="empty", tldTagClass="org.apache.struts2.views.jsp.ui.HeadTag",
+    description="Render a chunk of HEAD for your HTML file")
 public class Head extends UIBean {
     public static final String TEMPLATE = "head";
 
@@ -91,7 +93,7 @@
     protected String getDefaultTemplate() {
         return TEMPLATE;
     }
-    
+
     @Inject(StrutsConstants.STRUTS_I18N_ENCODING)
     public void setEncoding(String encoding) {
         this.encoding = encoding;
@@ -119,11 +121,9 @@
         return calendarcss;
     }
 
-    /**
-     * The jscalendar css theme to use" default="calendar-blue.css
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The jscalendar css theme to use", defaultValue="calendar-blue.css")
     public void setCalendarcss(String calendarcss) {
+        //TODO remove this one
         this.calendarcss = calendarcss;
     }
 
@@ -131,10 +131,7 @@
         return debug;
     }
 
-    /**
-     * Set to true to enable debugging mode for AJAX themes
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set to true to enable debugging mode for AJAX themes")
     public void setDebug(boolean debug) {
         this.debug = debug;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Hidden.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Hidden.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Hidden.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Hidden.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -46,9 +48,8 @@
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- * @s.tag name="hidden" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.HiddenTag"
- * description="Render a hidden input field"
   */
+@StrutsTag(name="hidden", tldTagClass="org.apache.struts2.views.jsp.ui.HiddenTag", description="Render a hidden input field")
 public class Hidden extends UIBean {
     final public static String TEMPLATE = "hidden";
 

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/I18n.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/I18n.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/I18n.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/I18n.java Sat Jan  6 21:18:49 2007
@@ -24,6 +24,8 @@
 import java.util.Locale;
 import java.util.ResourceBundle;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
 import org.apache.struts2.StrutsException;
 
 import com.opensymphony.xwork2.ActionContext;
@@ -76,9 +78,9 @@
  * <!-- END SNIPPET: i18nExample -->
  * </pre>
  *
- * @s.tag name="i18n" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.I18nTag"
- * description="Get a resource bundle and place it on the value stack"
  */
+@StrutsTag(name="i18n", tldTagClass="org.apache.struts2.views.jsp.I18nTag", description="Get a resource bundle" +
+                " and place it on the value stack")
 public class I18n extends Component {
     protected boolean pushed;
     protected String name;
@@ -123,10 +125,7 @@
         return super.end(writer, body);
     }
 
-    /**
-     * Name of ressource bundle to use (eg foo/bar/customBundle)
-     * @s.tagattribute required="true" default="String"
-     */
+    @StrutsTagAttribute(description="Name of ressource bundle to use (eg foo/bar/customBundle)", required=true, defaultValue="String")
     public void setName(String name) {
         this.name = name;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/If.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/If.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/If.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/If.java Sat Jan  6 21:18:49 2007
@@ -22,6 +22,9 @@
 
 import java.io.Writer;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -61,18 +64,15 @@
  * @see Else
  * @see ElseIf
  *
- * @s.tag name="if" tld-body-content="JSP" description="If tag" tld-tag-class="org.apache.struts2.views.jsp.IfTag"
  */
+@StrutsTag(name="if", tldTagClass="If tag", description="org.apache.struts2.views.jsp.IfTag")
 public class If extends Component {
     public static final String ANSWER = "struts.if.answer";
 
     Boolean answer;
     String test;
 
-    /**
-     * Expression to determine if body of tag is to be displayed
-     * @s.tagattribute required="true" type="Boolean"
-     */
+    @StrutsTagAttribute(description="Expression to determine if body of tag is to be displayed", type="Boolean", required=true)
     public void setTest(String test) {
         this.test = test;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Include.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Include.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Include.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Include.java Sat Jan  6 21:18:49 2007
@@ -42,6 +42,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
 import org.apache.struts2.RequestUtils;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.util.FastByteArrayOutputStream;
@@ -90,9 +92,9 @@
  * <!-- END SNIPPET: exampledescription -->
  * </pre>
  *
- * @s.tag name="include" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.IncludeTag"
- * description="Include a servlet's output (result of servlet or a JSP page)"
  */
+@StrutsTag(name="include", tldTagClass="org.apache.struts2.views.jsp.IncludeTag", description="Include a servlet's output " +
+                "(result of servlet or a JSP page)")
 public class Include extends Component {
 
     private static final Log _log = LogFactory.getLog(Include.class);
@@ -110,7 +112,7 @@
         this.req = req;
         this.res = res;
     }
-    
+
     @Inject(StrutsConstants.STRUTS_I18N_ENCODING)
     public static void setDefaultEncoding(String encoding) {
         defaultEncoding = encoding;
@@ -165,10 +167,7 @@
         return super.end(writer, body);
     }
 
-    /**
-     * The jsp/servlet output to include
-     * @s.tagattribute required="true" type="String"
-     */
+    @StrutsTagAttribute(description="The jsp/servlet output to include", required=true)
     public void setValue(String value) {
         this.value = value;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,8 @@
 import java.io.Writer;
 import java.util.Iterator;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
 import org.apache.struts2.util.MakeIterator;
 import org.apache.struts2.views.jsp.IteratorStatus;
 
@@ -179,9 +181,8 @@
  * <!-- END SNIPPET: example5code -->
  * </pre>
  *
- * @s.tag name="iterator" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.IteratorTag"
- * description="Iterate over a iterable value"
  */
+@StrutsTag(name="iterator", tldTagClass="org.apache.struts2.views.jsp.IteratorTag", description="Iterate over a iterable value")
 public class IteratorComponent extends Component {
     protected Iterator iterator;
     protected IteratorStatus status;
@@ -274,18 +275,13 @@
         }
     }
 
-    /**
-     * if specified, an instanceof IteratorStatus will be pushed into stack upon each iteration
-     * @s.tagattribute required="false" type="Boolean" default="false"
-     */
+    @StrutsTagAttribute(description="If specified, an instanceof IteratorStatus will be pushed into stack upon each iteration",
+        type="Boolean", defaultValue="false")
     public void setStatus(String status) {
         this.statusAttr = status;
     }
 
-    /**
-     * the iteratable source to iterate over, else an the object itself will be put into a newly created List
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="the iteratable source to iterate over, else an the object itself will be put into a newly created List")
     public void setValue(String value) {
         this.value = value;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -49,9 +52,9 @@
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- * @s.tag name="label" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.LabelTag"
- * description="Render a label that displays read-only information"
  */
+@StrutsTag(name="label", tldTagClass="org.apache.struts2.views.jsp.ui.LabelTag", description="Render a label that displays" +
+                " read-only information")
 public class Label extends UIBean {
     final public static String TEMPLATE = "label";
 
@@ -85,10 +88,7 @@
         }
     }
 
-    /**
-     * HTML for attribute
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description=" HTML for attribute")
     public void setFor(String forAttr) {
         this.forAttr = forAttr;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ListUIBean.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ListUIBean.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ListUIBean.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ListUIBean.java Sat Jan  6 21:18:49 2007
@@ -27,6 +27,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTagAttribute;
 import org.apache.struts2.util.ContainUtil;
 import org.apache.struts2.util.MakeIterator;
 
@@ -128,26 +129,18 @@
         return null; // don't convert nameValue to anything, we need the raw value
     }
 
-    /**
-     * Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option "value" parameter and the Map value will become the option body.
-     * @s.tagattribute required="true"
-     */
+    @StrutsTagAttribute(description="Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value'" +
+                " parameter and the Map value will become the option body.", required=true)
     public void setList(Object list) {
         this.list = list;
     }
 
-    /**
-     * Property of list objects to get field value from
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description=" Property of list objects to get field value from")
     public void setListKey(String listKey) {
         this.listKey = listKey;
     }
 
-    /**
-     * Property of list objects to get field content from
-     * @s.tagattribute required="false"
-      */
+    @StrutsTagAttribute(description="Property of list objects to get field content from")
     public void setListValue(String listValue) {
         this.listValue = listValue;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/MergeIterator.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/MergeIterator.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/MergeIterator.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/MergeIterator.java Sat Jan  6 21:18:49 2007
@@ -27,6 +27,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
 import org.apache.struts2.components.Param.UnnamedParametric;
 import org.apache.struts2.util.MakeIterator;
 import org.apache.struts2.util.MergeIteratorFilter;
@@ -125,9 +127,9 @@
  * @see org.apache.struts2.util.MergeIteratorFilter
  * @see org.apache.struts2.views.jsp.iterator.MergeIteratorTag
  *
- * @s.tag name="merge" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.iterator.MergeIteratorTag"
- * description="Merge the values of a list of iterators into one iterator"
  */
+@StrutsTag(name="merge", tldTagClass="org.apache.struts2.views.jsp.iterator.MergeIteratorTag", description="Merge the values " +
+                "of a list of iterators into one iterator")
 public class MergeIterator extends Component implements UnnamedParametric {
 
     private static final Log _log = LogFactory.getLog(MergeIterator.class);
@@ -170,10 +172,7 @@
         return super.end(writer, body);
     }
 
-    /**
-     * the id where the resultant merged iterator will be stored in the stack's context
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The id where the resultant merged iterator will be stored in the stack's context")
     public void setId(String id) {
         super.setId(id);
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/OptGroup.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/OptGroup.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/OptGroup.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/OptGroup.java Sat Jan  6 21:18:49 2007
@@ -29,6 +29,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
@@ -65,9 +67,8 @@
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- * @s.tag name="optgroup" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.OptGroupTag"
- * description="Renders a Select Tag's OptGroup Tag"
  */
+@StrutsTag(name="optgroup", tldTagClass="org.apache.struts2.views.jsp.ui.OptGroupTag", description="Renders a Select Tag's OptGroup Tag")
 public class OptGroup extends Component {
 
     public static final String INTERNAL_LIST_UI_BEAN_LIST_PARAMETER_KEY = "optGroupInternalListUiBeanList";
@@ -110,42 +111,27 @@
         return false;
     }
 
-    /**
-     * Set the label attribute.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set the label attribute")
     public void setLabel(String label) {
         internalUiBean.setLabel(label);
     }
 
-    /**
-     * Set the disable attribute.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set the disable attribute.")
     public void setDisabled(String disabled) {
         internalUiBean.setDisabled(disabled);
     }
 
-    /**
-     * Set the list attribute.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set the list attribute.")
     public void setList(String list) {
         internalUiBean.setList(list);
     }
 
-    /**
-     * Set the listKey attribute.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set the listKey attribute.")
     public void setListKey(String listKey) {
         internalUiBean.setListKey(listKey);
     }
 
-    /**
-     * Set the listValue attribute.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set the listValue attribute.")
     public void setListValue(String listValue) {
         internalUiBean.setListValue(listValue);
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java Sat Jan  6 21:18:49 2007
@@ -28,6 +28,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
@@ -89,9 +91,8 @@
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- * @s.tag name="optiontransferselect" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.OptionTransferSelectTag"
- * description="Renders an input form"
  */
+@StrutsTag(name="optiontransferselect", tldTagClass="org.apache.struts2.views.jsp.ui.OptionTransferSelectTag", description="Renders an input form")
 public class OptionTransferSelect extends DoubleListUIBean {
 
     private static final Log _log = LogFactory.getLog(OptionTransferSelect.class);
@@ -303,10 +304,7 @@
         return addAllToLeftLabel;
     }
 
-    /**
-     * set Add To Left button label
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set Add To Left button label")
     public void setAddAllToLeftLabel(String addAllToLeftLabel) {
         this.addAllToLeftLabel = addAllToLeftLabel;
     }
@@ -315,10 +313,7 @@
         return addAllToRightLabel;
     }
 
-    /**
-     * set Add All To Right button label
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set Add All To Right button label")
     public void setAddAllToRightLabel(String addAllToRightLabel) {
         this.addAllToRightLabel = addAllToRightLabel;
     }
@@ -327,10 +322,7 @@
         return addToLeftLabel;
     }
 
-    /**
-     * set Add To Left button label
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set Add To Left button label")
     public void setAddToLeftLabel(String addToLeftLabel) {
         this.addToLeftLabel = addToLeftLabel;
     }
@@ -339,10 +331,7 @@
         return addToRightLabel;
     }
 
-    /**
-     * set Add To Right button label
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set Add To Right button label")
     public void setAddToRightLabel(String addToRightLabel) {
         this.addToRightLabel = addToRightLabel;
     }
@@ -351,10 +340,7 @@
         return allowAddAllToLeft;
     }
 
-    /**
-     * enable Add All To Left button
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Enable Add All To Left button")
     public void setAllowAddAllToLeft(String allowAddAllToLeft) {
         this.allowAddAllToLeft = allowAddAllToLeft;
     }
@@ -363,10 +349,7 @@
         return allowAddAllToRight;
     }
 
-    /**
-     * enable Add All To Right button
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Enable Add All To Right button")
     public void setAllowAddAllToRight(String allowAddAllToRight) {
         this.allowAddAllToRight = allowAddAllToRight;
     }
@@ -375,10 +358,7 @@
         return allowAddToLeft;
     }
 
-    /**
-     * enable Add To Left button
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Enable Add To Left button")
     public void setAllowAddToLeft(String allowAddToLeft) {
         this.allowAddToLeft = allowAddToLeft;
     }
@@ -387,10 +367,7 @@
         return allowAddToRight;
     }
 
-    /**
-     * enable Add To Right button
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Enable Add To Right button")
     public void setAllowAddToRight(String allowAddToRight) {
         this.allowAddToRight = allowAddToRight;
     }
@@ -399,11 +376,7 @@
         return leftTitle;
     }
 
-
-    /**
-     * enable up / down on the left side
-     * @a2 tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Enable up / down on the left side")
     public void setAllowUpDownOnLeft(String allowUpDownOnLeft) {
         this.allowUpDownOnLeft = allowUpDownOnLeft;
     }
@@ -412,11 +385,7 @@
         return this.allowUpDownOnLeft;
     }
 
-
-    /**
-     * enable up / down on the right side
-     * @a2 tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Enable up / down on the right side")
     public void setAllowUpDownOnRight(String allowUpDownOnRight) {
         this.allowUpDownOnRight = allowUpDownOnRight;
     }
@@ -425,11 +394,7 @@
         return this.allowUpDownOnRight;
     }
 
-
-    /**
-     * set Left title
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set Left title")
     public void setLeftTitle(String leftTitle) {
         this.leftTitle = leftTitle;
     }
@@ -438,19 +403,12 @@
         return rightTitle;
     }
 
-    /**
-     * set Right title
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set Right title")
     public void setRightTitle(String rightTitle) {
         this.rightTitle = rightTitle;
     }
 
-
-    /**
-     * enable Select All button
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Enable Select All button")
     public void setAllowSelectAll(String allowSelectAll) {
         this.allowSelectAll = allowSelectAll;
     }
@@ -459,11 +417,7 @@
         return this.allowSelectAll;
     }
 
-
-    /**
-     * set Select All button label
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set Select All button label")
     public void setSelectAllLabel(String selectAllLabel) {
         this.selectAllLabel = selectAllLabel;
     }
@@ -472,11 +426,7 @@
         return this.selectAllLabel;
     }
 
-
-    /**
-     * set buttons css class
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set buttons css class")
     public void setButtonCssClass(String buttonCssClass) {
         this.buttonCssClass = buttonCssClass;
     }
@@ -485,11 +435,7 @@
         return buttonCssClass;
     }
 
-
-    /**
-     * set button css style
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Set button css style")
     public void setButtonCssStyle(String buttonCssStyle) {
         this.buttonCssStyle = buttonCssStyle;
     }
@@ -498,11 +444,7 @@
         return this.buttonCssStyle;
     }
 
-
-    /**
-     * Up label for the left side
-     * @a2 tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Up label for the left side")
     public void setLeftUpLabel(String leftUpLabel) {
         this.leftUpLabel = leftUpLabel;
     }
@@ -510,10 +452,7 @@
         return this.leftUpLabel;
     }
 
-    /**
-     * Down label for the left side.
-     * @a2 tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Down label for the left side.")
     public void setLeftDownLabel(String leftDownLabel) {
         this.leftDownlabel = leftDownLabel;
     }
@@ -521,10 +460,7 @@
         return this.leftDownlabel;
     }
 
-    /**
-     * Up label for the right side.
-     * @a2 tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Up label for the right side.")
     public void setRightUpLabel(String rightUpLabel) {
         this.rightUpLabel = rightUpLabel;
     }
@@ -532,11 +468,7 @@
         return this.rightUpLabel;
     }
 
-
-    /**
-     * Down label for the left side.
-     * @a2 tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Down label for the left side.")
     public void setRightDownLabel(String rightDownlabel) {
         this.rightDownLabel = rightDownlabel;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Param.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Param.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Param.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Param.java Sat Jan  6 21:18:49 2007
@@ -22,6 +22,8 @@
 
 import java.io.Writer;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
 import org.apache.struts2.StrutsException;
 
 import com.opensymphony.xwork2.util.ValueStack;
@@ -86,9 +88,8 @@
  * @see Bean
  * @see Text
  *
- * @s.tag name="param" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ParamTag"
- * description="Parametrize other tags"
  */
+@StrutsTag(name="param", tldTagClass="org.apache.struts2.views.jsp.ParamTag", description="Parametrize other tags")
 public class Param extends Component {
     protected String name;
     protected String value;
@@ -127,18 +128,12 @@
         return true;
     }
 
-    /**
-     * Name of Parameter to set
-     * @s.tagattribute required="false" type="String"
-     */
+    @StrutsTagAttribute(description="Name of Parameter to set")
     public void setName(String name) {
         this.name = name;
     }
 
-    /**
-     * Value expression for Parameter to set
-     * @s.tagattribute required="false" default="The value of evaluating provided name against stack"
-     */
+    @StrutsTagAttribute(description="Value expression for Parameter to set", defaultValue="The value of evaluating provided name against stack")
     public void setValue(String value) {
         this.value = value;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Password.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Password.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Password.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Password.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -42,9 +45,8 @@
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- * @s.tag name="password" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.PasswordTag"
- * description="Render an HTML input tag of type password"
  */
+@StrutsTag(name="password", tldTagClass="org.apache.struts2.views.jsp.ui.PasswordTag", description="Render an HTML input tag of type password")
 public class Password extends TextField {
     final public static String TEMPLATE = "password";
 
@@ -66,10 +68,7 @@
         }
     }
 
-    /**
-     * Whether to show input
-     * @s.tagattribute required="false" type="Boolean" default="false"
-     */
+    @StrutsTagAttribute(description="Whether to show input", type="Boolean", defaultValue="false")
     public void setShowPassword(String showPassword) {
         this.showPassword = showPassword;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Property.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Property.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Property.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Property.java Sat Jan  6 21:18:49 2007
@@ -25,6 +25,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.TextUtils;
@@ -83,9 +85,9 @@
  * <!-- END SNIPPET: i18nExample -->
  * </pre>
  *
- * @s.tag name="property" tld-body-content="empty" tld-tag-class="org.apache.struts2.views.jsp.PropertyTag"
- * description="Print out expression which evaluates against the stack"
  */
+@StrutsTag(name="property", tldBodyContent="empty", tldTagClass="org.apache.struts2.views.jsp.PropertyTag",
+    description="Print out expression which evaluates against the stack")
 public class Property extends Component {
     private static final Log LOG = LogFactory.getLog(Property.class);
 
@@ -97,26 +99,17 @@
     private String value;
     private boolean escape = true;
 
-    /**
-     * The default value to be used if <u>value</u> attribute is null
-     * @s.tagattribute required="false" type="String"
-     */
+    @StrutsTagAttribute(description="The default value to be used if <u>value</u> attribute is null")
     public void setDefault(String defaultValue) {
         this.defaultValue = defaultValue;
     }
 
-    /**
-     * Whether to escape HTML
-     * @s.tagattribute required="false" type="Boolean" default="true"
-     */
+    @StrutsTagAttribute(description=" Whether to escape HTML", type="Boolean", defaultValue="true")
     public void setEscape(boolean escape) {
         this.escape = escape;
     }
 
-    /**
-     * value to be displayed
-     * @s.tagattribute required="false" type="Object" default="&lt;top of stack&gt;"
-     */
+    @StrutsTagAttribute(description="Value to be displayed", type="Object", defaultValue="&lt;top of stack&gt;")
     public void setValue(String value) {
         this.value = value;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Push.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Push.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Push.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Push.java Sat Jan  6 21:18:49 2007
@@ -22,6 +22,9 @@
 
 import java.io.Writer;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -105,9 +108,8 @@
  * <!-- END SNIPPET: example4description -->
  * </pre>
  *
- * @s.tag name="push" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.PushTag"
- * description="Push value on stack for simplified usage."
  */
+@StrutsTag(name="push", tldTagClass="org.apache.struts2.views.jsp.PushTag", description="Push value on stack for simplified usage.")
 public class Push extends Component {
     protected String value;
     protected boolean pushed;
@@ -141,10 +143,7 @@
         return super.end(writer, body);
     }
 
-    /**
-     * Value to push on stack
-     * @s.tagattribute required="true"
-     */
+    @StrutsTagAttribute(description="Value to push on stack", required=true)
     public void setValue(String value) {
         this.value = value;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Radio.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Radio.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Radio.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Radio.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -46,9 +48,8 @@
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- * @s.tag name="radio" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.RadioTag"
- * description="Renders a radio button input field"
  */
+@StrutsTag(name="radio", tldTagClass="org.apache.struts2.views.jsp.ui.RadioTag", description="Renders a radio button input field")
 public class Radio extends ListUIBean {
     final public static String TEMPLATE = "radiomap";
 

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/RemoteUICallBean.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/RemoteUICallBean.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/RemoteUICallBean.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/RemoteUICallBean.java Sat Jan  6 21:18:49 2007
@@ -1,92 +1,32 @@
 package org.apache.struts2.components;
 
+
 public interface RemoteUICallBean {
 
-    /**
-     * Topic that will trigger the remote call
-     *
-     * @s.tagattribute required="false" type="String"
-     */
     void setListenTopics(String topics);
 
-    /**
-     * Topic that will published when the remote call completes
-     *
-     * @s.tagattribute required="false" type="String"
-     */
     void setNotifyTopics(String topics);
 
-    /**
-     * The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.
-     * @s.tagattribute required="false" type="String"
-     */
     void setHref(String href);
 
-    /**
-     * The text to display to the user if the is an error fetching the content
-     * @s.tagattribute required="false" type="String"
-     */
     void setErrorText(String errorText);
 
-    /**
-     * Javascript code name that will be executed after the content has been fetched
-     * @s.tagattribute required="false" type="String"
-     */
     void setAfterLoading(String afterLoading);
 
-    /**
-     * Javascript code that will be executed before the content has been fetched
-     * @s.tagattribute required="false" type="String"
-     */
     void setBeforeLoading(String beforeLoading);
 
-    /**
-     * Javascript code in the fetched content will be executed
-     * @s.tagattribute required="false" type="Boolean" default="false"
-     */
     void setExecuteScripts(String executeScripts);
 
-    /**
-     * Text to be shown while content is being fetched
-     *
-     * @s.tagattribute required="false" type="String" default="Loading..."
-     */
     void setLoadingText(String loadingText);
 
-    /**
-     * Javascript function name that will make the request
-     *
-     * @s.tagattribute required="false" type="String"
-     */
     void setHandler(String handler);
 
-    /**
-     * Function name used to filter the fields of the form.
-     * This function takes as a parameter the element and returns true if the element
-     * must be included.
-     * @s.tagattribute required="false" type="String"
-     */
     void setFormFilter(String formFilter);
 
-    /**
-     * Form id whose fields will be serialized and passed as parameters
-     *
-     * @s.tagattribute required="false" type="String"
-     */
     void setFormId(String formId);
 
-    /**
-     * Set whether errors will be shown or not
-     *
-     * @s.tagattribute required="false" type="Boolean"
-     */
     void setShowErrorTransportText(String showError);
 
-    /**
-     * Id of element that will be shown while making request
-     *
-     * @s.tagattribute required="false" type="String"
-     */
     void setIndicator(String indicator);
 
 }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Reset.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Reset.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Reset.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Reset.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -52,9 +55,8 @@
  * <!-- END SNIPPET: example2 -->
  * </pre>
  *
- * @s.tag name="reset" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.ResetTag"
- * description="Render a reset button"
  */
+@StrutsTag(name="reset", tldTagClass="org.apache.struts2.views.jsp.ui.ResetTag", description="Render a reset button")
 public class Reset extends FormButton {
     final public static String TEMPLATE = "reset";
 
@@ -94,12 +96,8 @@
         return false;
     }
 
-    /**
-     * Supply a reset button text apart from reset value. Will have no effect for <i>input</i> type reset, since button
-     * text will always be the value parameter.
-     *
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Supply a reset button text apart from reset value. Will have no effect for " +
+                "<i>input</i> type reset, since button text will always be the value parameter.")
     public void setLabel(String label) {
         super.setLabel(label);
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Select.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Select.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Select.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Select.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -73,9 +76,8 @@
  *
  * <!-- END SNIPPET: exnote -->
  *
- * @s.tag name="select" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.SelectTag"
- * description="Render a select element"
  */
+@StrutsTag(name="select", tldTagClass="org.apache.struts2.views.jsp.ui.SelectTag", description="Render a select element")
 public class Select extends ListUIBean {
     final public static String TEMPLATE = "select";
 
@@ -114,42 +116,29 @@
         }
     }
 
-    /**
-     * Whether or not to add an empty (--) option after the header option
-     * @s.tagattribute required="false" type="Boolean" default="false"
-     */
+    @StrutsTagAttribute(description="Whether or not to add an empty (--) option after the header option", type="Boolean", defaultValue="false")
     public void setEmptyOption(String emptyOption) {
         this.emptyOption = emptyOption;
     }
 
-    /**
-     * Key for first item in list. Must not be empty! "'-1'" and "''" is correct, "" is bad.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description=" Key for first item in list. Must not be empty! '-1' and '' is correct, '' is bad.")
     public void setHeaderKey(String headerKey) {
         this.headerKey = headerKey;
     }
 
-    /**
-     * Value expression for first item in list
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Value expression for first item in list")
     public void setHeaderValue(String headerValue) {
         this.headerValue = headerValue;
     }
 
-    /**
-     * Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute. Passing a Collection may work too? Haven't tested this.
-     * @s.tagattribute required="false"  type="Boolean" default="false"
-     */
+    @StrutsTagAttribute(description=" Creates a multiple select. The tag will pre-select multiple values" +
+                " if the values are passed as an Array (of appropriate types) via the value attribute. Passing " +
+                "a Collection may work too? Haven't tested this.", type="Boolean", defaultValue="false")
     public void setMultiple(String multiple) {
         this.multiple = multiple;
     }
 
-    /**
-     * Size of the element box (# of elements to show)
-     * @s.tagattribute required="false" type="Integer"
-     */
+    @StrutsTagAttribute(description="Size of the element box (# of elements to show)", type="Integer")
     public void setSize(String size) {
         this.size = size;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java Sat Jan  6 21:18:49 2007
@@ -22,6 +22,9 @@
 
 import java.io.Writer;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -71,9 +74,8 @@
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- * @s.tag name="set" tld-body-content="empty" tld-tag-class="org.apache.struts2.views.jsp.SetTag"
- * description="Assigns a value to a variable in a specified scope"
  */
+@StrutsTag(name="set", tldBodyContent="empty", tldTagClass="org.apache.struts2.views.jsp.SetTag", description="Assigns a value to a variable in a specified scope")
 public class Set extends Component {
     protected String name;
     protected String scope;
@@ -119,26 +121,18 @@
         return super.end(writer, body);
     }
 
-    /**
-     * The name of the new variable that is assigned the value of <i>value</i>
-     * @s.tagattribute required="true" type="String"
-     */
+    @StrutsTagAttribute(description=" The name of the new variable that is assigned the value of <i>value</i>", required=true)
     public void setName(String name) {
         this.name = name;
     }
 
-    /**
-     * The scope in which to assign the variable. Can be <b>application</b>, <b>session</b>, <b>request</b>, <b>page</b>, or <b>action</b>.
-     * @s.tagattribute required="false" type="String" default="action"
-     */
+    @StrutsTagAttribute(description="The scope in which to assign the variable. Can be <b>application</b>" +
+                ", <b>session</b>, <b>request</b>, <b>page</b>, or <b>action</b>.", defaultValue="action")
     public void setScope(String scope) {
         this.scope = scope;
     }
 
-    /**
-     * The value that is assigned to the variable named <i>name</i>
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The value that is assigned to the variable named <i>name</i>")
     public void setValue(String value) {
         this.value = value;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Submit.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Submit.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Submit.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Submit.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
 import org.apache.struts2.views.util.UrlHelper;
 
 import com.opensymphony.xwork2.util.ValueStack;
@@ -110,7 +112,7 @@
  * shown in. This is an inner HTML approah. Your results get jammed into
  * the div for you. Here is a sample of this approach:
  * <!-- END SNIPPET: ajxExDescription1 -->
- * 
+ *
  * <pre>
  * <!-- START SNIPPET: ajxExample1 -->
  * Remote form replacing another div:
@@ -129,10 +131,8 @@
  * <!-- END SNIPPET: ajxExample1 -->
  * </pre>
  *
- *
- * @s.tag name="submit" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.SubmitTag"
- * description="Render a submit button"
  */
+@StrutsTag(name="submit", tldTagClass="org.apache.struts2.views.jsp.ui.SubmitTag", description="Render a submit button")
 public class Submit extends FormButton implements RemoteUICallBean{
     final public static String TEMPLATE = "submit";
 
@@ -219,119 +219,86 @@
         return true;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setRefreshListenTopic(java.lang.String)
-     */
+    @StrutsTagAttribute(description="Topic that will trigger the remote call")
     public void setListenTopics(String listenTopics) {
         this.listenTopics = listenTopics;
     }
 
-    /**
-     * The theme to use for the element. <b>This tag will usually use the ajax theme.</b>
-     * @s.tagattribute required="false" type="String"
-     */
+    @StrutsTagAttribute(description="The theme to use for the element. <b>This tag will usually use the ajax theme.</b>")
     public void setTheme(String theme) {
         super.setTheme(theme);
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setHref(java.lang.String)
-     */
+    @StrutsTagAttribute(description="The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.")
     public void setHref(String href) {
         this.href = href;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setErrorText(java.lang.String)
-     */
+    @StrutsTagAttribute(description="The text to display to the user if the is an error fetching the content")
     public void setErrorText(String errorText) {
         this.errorText = errorText;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setAfterLoading(java.lang.String)
-     */
+    @StrutsTagAttribute(name="onLoadJS", description="Deprecated. Use 'notifyTopics'. Javascript code execute after reload")
     public void setAfterLoading(String afterLoading) {
         this.afterLoading = afterLoading;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setBeforeLoading(java.lang.String)
-     */
+
+    @StrutsTagAttribute(name="preInvokeJS", description="Deprecated. Use 'notifyTopics'. Javascript code execute before reload")
     public void setBeforeLoading(String beforeLoading) {
         this.beforeLoading = beforeLoading;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setExecuteScripts(java.lang.String)
-     */
+    @StrutsTagAttribute(description="Javascript code in the fetched content will be executed", type="Boolean", defaultValue="false")
     public void setExecuteScripts(String executeScripts) {
         this.executeScripts = executeScripts;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setLoadingText(java.lang.String)
-     */
+    @StrutsTagAttribute(description="Text to be shown while content is being fetched", defaultValue="Loading...")
     public void setLoadingText(String loadingText) {
         this.loadingText = loadingText;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setHandler(java.lang.String)
-     */
+    @StrutsTagAttribute(description="Javascript function name that will make the request")
     public void setHandler(String handler) {
         this.handler = handler;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setFormFilter(java.lang.String)
-     */
+    @StrutsTagAttribute(description="Function name used to filter the fields of the form.")
     public void setFormFilter(String formFilter) {
         this.formFilter = formFilter;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setFormId(java.lang.String)
-     */
+    @StrutsTagAttribute(description="Form id whose fields will be serialized and passed as parameters")
     public void setFormId(String formId) {
         this.formId = formId;
     }
 
-    /**
-     * Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.")
     public void setSrc(String src) {
         this.src = src;
     }
 
-    /**
-     * Comma delimited list of ids of the elements whose content will be updated
-     * @s.tagattribute required="false" type="String"
-     */
+    @StrutsTagAttribute(description="Comma delimited list of ids of the elements whose content will be updated")
     public void setTargets(String targets) {
         this.targets = targets;
     }
 
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setNotifyTopics(java.lang.String)
-     */
+    @StrutsTagAttribute(description="Topics that will published when the remote call completes")
     public void setNotifyTopics(String notifyTopics) {
         this.notifyTopics = notifyTopics;
     }
 
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.components.RemoteUICallBean#setShowErrorTransportText(java.lang.String)
-     */
+    @StrutsTagAttribute(description="Set whether errors will be shown or not", type="Boolean", defaultValue="true")
     public void setShowErrorTransportText(String showErrorTransportText) {
         this.showErrorTransportText = showErrorTransportText;
     }
 
-    /**
-     * @param indicator The indicator to set.
-     */
+
+    @StrutsTagAttribute(description="Set indicator")
     public void setIndicator(String indicator) {
         this.indicator = indicator;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TabbedPanel.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TabbedPanel.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TabbedPanel.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TabbedPanel.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -53,9 +56,8 @@
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- * @s.tag name="tabbedPanel" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.TabbedPanelTag"
- * description="Render a tabbedPanel widget."
  */
+@StrutsTag(name="tabbedPanel", tldTagClass="org.apache.struts2.views.jsp.ui.TabbedPanelTag", description="Render a tabbedPanel widget.")
 public class TabbedPanel extends ClosingUIBean {
     public static final String TEMPLATE = "tabbedpanel";
     public static final String TEMPLATE_CLOSE = "tabbedpanel-close";
@@ -101,36 +103,24 @@
         return COMPONENT_NAME;
     }
 
-    /**
-     * The id to assign to the component.
-     * @s.tagattribute required="true" type="String"
-     */
+    @StrutsTagAttribute(description="The id to assign to the component.", required=true)
     public void setId(String id) {
         // This is required to override tld generation attributes to required=true
         super.setId(id);
     }
 
 
-    /**
-     * The id of the tab that will be selected by default
-     * @s.tagattribute required="false" type="String"
-     */
+    @StrutsTagAttribute(description=" The id of the tab that will be selected by default")
     public void setSelectedTab(String selectedTab) {
       this.selectedTab = selectedTab;
     }
 
-    /**
-     * Where the close button will be placed, possible values are "tab" and "pane"
-     * @s.tagattribute required="false" type="String"
-     */
+    @StrutsTagAttribute(description="Where the close button will be placed, possible values are 'tab' and 'pane'")
     public void setCloseButton(String closeButton) {
         this.closeButton = closeButton;
     }
 
-    /**
-     * If doLayout is false, the tab container's height equals the height of the currently selected tab
-     * @s.tagattribute required="false" default="false" type="Boolean"
-     */
+    @StrutsTagAttribute(description="If doLayout is false, the tab container's height equals the height of the currently selected tab", type="Boolean", defaultValue="false")
     public void setDoLayout(String doLayout) {
         this.doLayout = doLayout;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Text.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Text.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Text.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Text.java Sat Jan  6 21:18:49 2007
@@ -29,6 +29,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.util.TextUtils;
 import com.opensymphony.xwork2.util.ValueStack;
@@ -110,9 +112,8 @@
  *
  * @see Param
  *
- * @s.tag name="text" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.TextTag"
- * description="Render a I18n text message."
  */
+@StrutsTag(name="text", tldTagClass="org.apache.struts2.views.jsp.TextTag", description="Render a I18n text message")
 public class Text extends Component implements Param.UnnamedParametric {
     private static final Log LOG = LogFactory.getLog(Text.class);
 
@@ -124,10 +125,7 @@
         super(stack);
     }
 
-    /**
-     *  Name of resource property to fetch
-     * @s.tagattribute required="true"
-     */
+    @StrutsTagAttribute(description=" Name of resource property to fetch", required=true)
     public void setName(String name) {
         this.name = name;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextArea.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextArea.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextArea.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextArea.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -40,9 +43,8 @@
  *
  * @see TabbedPanel
  *
- * @s.tag name="textarea" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.TextareaTag"
- * description="Render HTML textarea tag."
  */
+@StrutsTag(name="textarea", tldTagClass="org.apache.struts2.views.jsp.ui.TextareaTag", description="Render HTML textarea tag.")
 public class TextArea extends UIBean {
     final public static String TEMPLATE = "textarea";
 
@@ -79,34 +81,22 @@
         }
     }
 
-    /**
-     * HTML cols attribute
-     * @s.tagattribute required="false" type="Integer"
-     */
+    @StrutsTagAttribute(description="HTML cols attribute", type="Integer")
     public void setCols(String cols) {
         this.cols = cols;
     }
 
-    /**
-     * Whether the textarea is readonly
-     * @s.tagattribute required="false" type="Boolean" default="false"
-     */
+    @StrutsTagAttribute(description="Whether the textarea is readonly", type="Boolean", defaultValue="false")
     public void setReadonly(String readonly) {
         this.readonly = readonly;
     }
 
-    /**
-     * HTML rows attribute
-     * @s.tagattribute required="false" type="Integer"
-     */
+    @StrutsTagAttribute(description="HTML rows attribute", type="Integer")
     public void setRows(String rows) {
         this.rows = rows;
     }
 
-    /**
-     * HTML wrap attribute
-     * @s.tagattribute required="false" type="String"
-     */
+    @StrutsTagAttribute(description="HTML wrap attribute")
     public void setWrap(String wrap) {
         this.wrap = wrap;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextField.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextField.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextField.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextField.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -47,9 +50,8 @@
  * <!-- END SNIPPET: example -->
  * </pre>
 
- * @s.tag name="textfield" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.TextFieldTag"
- * description="Render an HTML input field of type text"
  */
+@StrutsTag(name="textfield", tldTagClass="org.apache.struts2.views.jsp.ui.TextFieldTag", description="Render an HTML input field of type text")
 public class TextField extends UIBean {
     /**
      * The name of the default template for the TextFieldTag
@@ -85,34 +87,22 @@
         }
     }
 
-    /**
-     * HTML maxlength attribute
-     * @s.tagattribute required="false" type="Integer"
-     */
+    @StrutsTagAttribute(description="HTML maxlength attribute", type="Integer")
     public void setMaxlength(String maxlength) {
         this.maxlength = maxlength;
     }
 
-    /**
-     * Deprecated. Use maxlength instead.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Deprecated. Use maxlength instead.", type="Integer")
     public void setMaxLength(String maxlength) {
         this.maxlength = maxlength;
     }
 
-    /**
-     * Whether the input is readonly
-     * @s.tagattribute required="false" type="Boolean" default="false"
-     */
+    @StrutsTagAttribute(description="Whether the input is readonly", type="Boolean", defaultValue="false")
     public void setReadonly(String readonly) {
         this.readonly = readonly;
     }
 
-    /**
-     * HTML size attribute
-     * @s.tagattribute required="false" type="Integer"
-     */
+    @StrutsTagAttribute(description="HTML size attribute",  type="Integer")
     public void setSize(String size) {
         this.size = size;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TimePicker.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TimePicker.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TimePicker.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TimePicker.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -55,37 +58,25 @@
              addParameter("language", findString(language));
          if(value != null)
              addParameter("value", findString(value));
-  	}
+     }
+
+     protected String getDefaultTemplate() {
+         return TEMPLATE;
+     }
 
-  	protected String getDefaultTemplate() {
-          return TEMPLATE;
-      }
-
-      /**
-      * Set default minutes to current time
-      *
-      * @s.tagattribute required="false" type="Boolean" default="false"
-       */
+     @StrutsTagAttribute(description="Set default minutes to current time", type="Boolean", defaultValue="false")
      public void setUseDefaultMinutes(String useDefaultMinutes) {
          this.useDefaultMinutes = useDefaultMinutes;
-      }
+     }
 
-      /**
-      * Set default time
-      *
-      * @s.tagattribute required="false" type="Boolean" default="true"
-       */
+     @StrutsTagAttribute(description="Set time to current time", type="Boolean", defaultValue="true")
      public void setUseDefaultTime(String useDefaultTime) {
          this.useDefaultTime = useDefaultTime;
-      }
+     }
 
-      /**
-      * Language to display this widget in (like en-us).
-      *
-      * @s.tagattribute required="false" type="String" default="brower's specified preferred language"
-       */
+     @StrutsTagAttribute(description="Language to display this widget in", defaultValue="brower's specified preferred language")
      public void setLanguage(String language) {
          this.language = language;
-      }
+     }
 
 }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Token.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Token.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Token.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Token.java Sat Jan  6 21:18:49 2007
@@ -25,6 +25,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
 import org.apache.struts2.util.TokenHelper;
 
 import com.opensymphony.xwork2.util.ValueStack;
@@ -49,9 +50,8 @@
  * @see org.apache.struts2.interceptor.TokenInterceptor
  * @see org.apache.struts2.interceptor.TokenSessionStoreInterceptor
  *
- * @s.tag name="token" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.TokenTag"
- * description="Stop double-submission of forms"
  */
+@StrutsTag(name="token", tldTagClass="org.apache.struts2.views.jsp.ui.TokenTag", description="Stop double-submission of forms")
 public class Token extends UIBean {
 
     public static final String TEMPLATE = "token";

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Tree.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Tree.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Tree.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Tree.java Sat Jan  6 21:18:49 2007
@@ -25,6 +25,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -63,10 +66,8 @@
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- *
- * @s.tag name="tree" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.TreeTag"
- * description="Render a tree widget."
  */
+@StrutsTag(name="tree", tldTagClass="org.apache.struts2.views.jsp.ui.TreeTag", description="Render a tree widget.")
 public class Tree extends ClosingUIBean {
 
     private static final String TEMPLATE = "tree-close";
@@ -222,10 +223,7 @@
         return toggle;
     }
 
-    /**
-     * The toggle property (either 'explode' or 'fade'). Default is 'fade'.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The toggle property (either 'explode' or 'fade')", defaultValue="fade")
     public void setToggle(String toggle) {
         this.toggle = toggle;
     }
@@ -234,10 +232,7 @@
         return treeSelectedTopic;
     }
 
-    /**
-     * The treeSelectedTopic property.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The treeSelectedTopic property")
     public void setTreeSelectedTopic(String treeSelectedTopic) {
         this.treeSelectedTopic = treeSelectedTopic;
     }
@@ -246,10 +241,7 @@
         return treeExpandedTopic;
     }
 
-    /**
-     * The treeExpandedTopic property.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The treeExpandedTopic property.")
     public void setTreeExpandedTopic(String treeExpandedTopic) {
         this.treeExpandedTopic = treeExpandedTopic;
     }
@@ -258,10 +250,7 @@
         return treeCollapsedTopic;
     }
 
-    /**
-     * The treeCollapsedTopic property.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The treeCollapsedTopic property.")
     public void setTreeCollapsedTopic(String treeCollapsedTopic) {
         this.treeCollapsedTopic = treeCollapsedTopic;
     }
@@ -270,10 +259,7 @@
         return rootNodeAttr;
     }
 
-    /**
-     * The rootNode property.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The rootNode property.")
     public void setRootNode(String rootNode) {
         this.rootNodeAttr = rootNode;
     }
@@ -282,10 +268,7 @@
         return childCollectionProperty;
     }
 
-    /**
-     * The childCollectionProperty property.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The childCollectionProperty property.")
     public void setChildCollectionProperty(String childCollectionProperty) {
         this.childCollectionProperty = childCollectionProperty;
     }
@@ -294,10 +277,7 @@
         return nodeTitleProperty;
     }
 
-    /**
-     * The nodeTitleProperty property.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The nodeTitleProperty property.")
     public void setNodeTitleProperty(String nodeTitleProperty) {
         this.nodeTitleProperty = nodeTitleProperty;
     }
@@ -306,18 +286,12 @@
         return nodeIdProperty;
     }
 
-    /**
-     * The nodeIdProperty property.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The nodeIdProperty property.")
     public void setNodeIdProperty(String nodeIdProperty) {
         this.nodeIdProperty = nodeIdProperty;
     }
 
-    /**
-     * The showRootGrid property (default true).
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="The showRootGrid property (default true).")
     public void setShowRootGrid(String showRootGrid) {
         this.showRootGrid = showRootGrid;
     }
@@ -330,10 +304,7 @@
         return blankIconSrc;
     }
 
-    /**
-     * Blank icon image source.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Blank icon image source.")
     public void setBlankIconSrc(String blankIconSrc) {
         this.blankIconSrc = blankIconSrc;
     }
@@ -342,10 +313,7 @@
         return expandIconSrcMinus;
     }
 
-    /**
-     * Expand icon (-) image source.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Expand icon (-) image source.")
     public void setExpandIconSrcMinus(String expandIconSrcMinus) {
         this.expandIconSrcMinus = expandIconSrcMinus;
     }
@@ -354,10 +322,7 @@
         return expandIconSrcPlus;
     }
 
-    /**
-     * Expand Icon (+) image source.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Expand Icon (+) image source.")
     public void setExpandIconSrcPlus(String expandIconSrcPlus) {
         this.expandIconSrcPlus = expandIconSrcPlus;
     }
@@ -366,10 +331,7 @@
         return gridIconSrcC;
     }
 
-    /**
-     * Image source for under child item child icons.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Image source for under child item child icons.")
     public void setGridIconSrcC(String gridIconSrcC) {
         this.gridIconSrcC = gridIconSrcC;
     }
@@ -379,10 +341,7 @@
     }
 
 
-    /**
-     * Image source for last child grid.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description=" Image source for last child grid.")
     public void setGridIconSrcL(String gridIconSrcL) {
         this.gridIconSrcL = gridIconSrcL;
     }
@@ -391,10 +350,7 @@
         return gridIconSrcP;
     }
 
-    /**
-     * Image source for under parent item child icons.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Image source for under parent item child icons.")
     public void setGridIconSrcP(String gridIconSrcP) {
         this.gridIconSrcP = gridIconSrcP;
     }
@@ -403,10 +359,7 @@
         return gridIconSrcV;
     }
 
-    /**
-     * Image source for vertical line.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Image source for vertical line.")
     public void setGridIconSrcV(String gridIconSrcV) {
         this.gridIconSrcV = gridIconSrcV;
     }
@@ -415,10 +368,7 @@
         return gridIconSrcX;
     }
 
-    /**
-     * Image source for grid for sole root item.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Image source for grid for sole root item.")
     public void setGridIconSrcX(String gridIconSrcX) {
         this.gridIconSrcX = gridIconSrcX;
     }
@@ -427,10 +377,7 @@
         return gridIconSrcY;
     }
 
-    /**
-     * Image source for grid for last root item.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Image source for grid for last root item.")
     public void setGridIconSrcY(String gridIconSrcY) {
         this.gridIconSrcY = gridIconSrcY;
     }
@@ -440,10 +387,7 @@
     }
 
 
-    /**
-     * Icon height (default 18 pixels).
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Icon height", defaultValue="18px")
     public void setIconHeight(String iconHeight) {
         this.iconHeight = iconHeight;
     }
@@ -452,10 +396,7 @@
         return iconWidth;
     }
 
-    /**
-     * Icon width (default 19 pixels).
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Icon width", defaultValue="19px")
     public void setIconWidth(String iconWidth) {
         this.iconWidth = iconWidth;
     }
@@ -466,10 +407,7 @@
         return templateCssPath;
     }
 
-    /**
-     * Template css path (default {contextPath}/struts/tree.css.
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Template css path", defaultValue="{contextPath}/struts/tree.css.")
     public void setTemplateCssPath(String templateCssPath) {
         this.templateCssPath = templateCssPath;
     }
@@ -478,10 +416,7 @@
         return toggleDuration;
     }
 
-    /**
-     * Toggle duration (default 150 ms)
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Toggle duration in milliseconds", defaultValue="150")
     public void setToggleDuration(String toggleDuration) {
         this.toggleDuration = toggleDuration;
     }
@@ -490,10 +425,7 @@
         return showGrid;
     }
 
-    /**
-     * Show grid (default true).
-     * @s.tagattribute required="false"
-     */
+    @StrutsTagAttribute(description="Show grid", type="Boolean", defaultValue="true")
     public void setShowGrid(String showGrid) {
         this.showGrid = showGrid;
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TreeNode.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TreeNode.java?view=diff&rev=493648&r1=493647&r2=493648
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TreeNode.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TreeNode.java Sat Jan  6 21:18:49 2007
@@ -23,6 +23,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts.annotations.StrutsTag;
+import org.apache.struts.annotations.StrutsTagAttribute;
+
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -75,10 +78,8 @@
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- *
- * @s.tag name="treenode" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.TreeNodeTag"
- * description="Render a tree node within a tree widget."
  */
+@StrutsTag(name="treenode", tldTagClass="org.apache.struts2.views.jsp.ui.TreeNodeTag", description="Render a tree node within a tree widget.")
 public class TreeNode extends ClosingUIBean {
     private static final String TEMPLATE = "treenode-close";
     private static final String OPEN_TEMPLATE = "treenode";
@@ -95,10 +96,7 @@
         return TEMPLATE;
     }
 
-    /**
-     * Label expression used for rendering tree node label.
-     * @s.tagattribute required="true"
-     */
+    @StrutsTagAttribute(description="Label expression used for rendering tree node label.", required=true)
     public void setLabel(String label) {
         super.setLabel(label);
     }