struts-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jo...@apache.org
Subject [4/6] struts git commit: Fix wrong closing HTML tags in javadoc comments
Date Thu, 16 Jul 2015 20:02:35 GMT
http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/profiling/UtilTimerStack.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/profiling/UtilTimerStack.java b/core/src/main/java/com/opensymphony/xwork2/util/profiling/UtilTimerStack.java
index 7fb7ae2..deeaa1c 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/profiling/UtilTimerStack.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/profiling/UtilTimerStack.java
@@ -31,81 +31,86 @@ import org.apache.logging.log4j.Logger;
 
 
 /**
- * A timer stack.
- * <p/>
- * <p/>
- * <p/>
+ * <p>A timer stack.</p>
  * <!-- START SNIPPET: profilingAspect_struts2 -->
- * <p/>
- * Struts2 profiling aspects involves the following :-
- * <ul>
- * <li>ActionContextCleanUp</li>
- * <li>FreemarkerPageFilter</li>
- * <li>DispatcherFilter</li>
- * <ul>
- * <li>Dispatcher</li>
- * <ul>
- * <li>creation of DefaultActionProxy</li>
- * <ul>
- * <li>creation of DefaultActionInvocation</li>
- * <ul>
- * <li>creation of Action</li>
- * </ul>
- * </ul>
- * <li>execution of DefaultActionProxy</li>
- * <ul>
- * <li>invocation of DefaultActionInvocation</li>
+ * <p>
+ * Struts2 profiling aspects involves the following:
+ * </p>
+ *
  * <ul>
- * <li>invocation of Interceptors</li>
- * <li>invocation of Action</li>
- * <li>invocation of PreResultListener</li>
- * <li>invocation of Result</li>
- * </ul>
- * </ul>
- * </ul>
+ *  <li>ActionContextCleanUp</li>
+ *  <li>FreemarkerPageFilter</li>
+ *  <li>DispatcherFilter
+ *      <ul>
+ *          <li>Dispatcher
+ *              <ul>
+ *                  <li>creation of DefaultActionProxy
+ *                      <ul>
+ *                          <li>creation of DefaultActionInvocation
+ *                              <ul>
+ *                                  <li>creation of Action</li>
+ *                              </ul>
+ *                          </li>
+ *                      </ul>
+ *                  </li>
+ *                  <li>execution of DefaultActionProxy
+ *                      <ul>
+ *                          <li>invocation of DefaultActionInvocation
+ *                              <ul>
+ *                                  <li>invocation of Interceptors</li>
+ *                                  <li>invocation of Action</li>
+ *                                  <li>invocation of PreResultListener</li>
+ *                                  <li>invocation of Result</li>
+ *                              </ul>
+ *                          </li>
+ *                      </ul>
+ *                  </li>
+ *              </ul>
+ *          </li>
+ *      </ul>
+ *  </li>
  * </ul>
- * </ul>
- * <p/>
+ *
  * <!-- END SNIPPET: profilingAspect_struts2 -->
- * <p/>
- * <p/>
+ *
+ *
  * <!-- START SNIPPET: profilingAspect_xwork -->
- * <p/>
- * XWork2 profiling aspects involves the following :-
- * <ul>
- * <ul>
- * <li>creation of DefaultActionProxy</li>
- * <ul>
- * <li>creation of DefaultActionInvocation</li>
- * <ul>
- * <li>creation of Action</li>
- * </ul>
- * </ul>
- * <li>execution of DefaultActionProxy</li>
- * <ul>
- * <li>invocation of DefaultActionInvocation</li>
+ * <p>
+ * XWork2 profiling aspects involves the following:
+ * </p>
+ *
  * <ul>
- * <li>invocation of Interceptors</li>
- * <li>invocation of Action</li>
- * <li>invocation of PreResultListener</li>
- * <li>invocation of Result</li>
- * </ul>
- * </ul>
+ *  <li>creation of DefaultActionProxy
+ *      <ul>
+ *          <li>creation of DefaultActionInvocation</li>
+ *      <ul>
+ *  </li>
+ *  <li>creation of Action</li>
+ *  <li>execution of DefaultActionProxy</li>
+ *      <ul>
+ *          <li>invocation of DefaultActionInvocation
+ *              <ul>
+ *                  <li>invocation of Interceptors</li>
+ *                  <li>invocation of Action</li>
+ *                  <li>invocation of PreResultListener</li>
+ *                  <li>invocation of Result</li>
+ *              </ul>
+ *          </li>
+ *      </ul>
  * </ul>
- * </ul>
- * <p/>
+ *
  * <!-- END SNIPPET: profilingAspect_xwork -->
- * <p/>
- * <p/>
+ *
+ *
  * <!-- START SNIPPET: activationDescription -->
- * <p/>
- * Activating / Deactivating of the profiling feature could be done through:-
- * <p/>
+ * <p>
+ * Activating / Deactivating of the profiling feature could be done through:
+ * </p>
  * <!-- END SNIPPET: activationDescription -->
- * <p/>
- * <p/>
- * <p/>
- * System properties:- <p/>
+ *
+ *
+ *
+ * <p>System properties:</p>
  * <pre>
  * <!-- START SNIPPET: activationThroughSystemProperty -->
  *
@@ -113,16 +118,16 @@ import org.apache.logging.log4j.Logger;
  *
  * <!-- END SNIPPET: activationThroughSystemProperty -->
  * </pre>
- * <p/>
+ *
  * <!-- START SNIPPET: activationThroughSystemPropertyDescription -->
- * <p/>
+ * <p>
  * This could be done in the container startup script eg. CATALINA_OPTS in catalina.sh
- * (tomcat) or using "java -Dxwork.profile.activate=true -jar start.jar" (jetty)
- * <p/>
+ * (tomcat) or using 'java -Dxwork.profile.activate=true -jar start.jar' (jetty)
+ * </p>
  * <!-- END SNIPPET: activationThroughSystemPropertyDescription -->
- * <p/>
- * <p/>
- * Code :- <p/>
+ *
+ *
+ * <p>Code :</p>
  * <pre>
  * <!-- START SNIPPET: activationThroughCode -->
  *
@@ -130,27 +135,25 @@ import org.apache.logging.log4j.Logger;
  *
  * <!-- END SNIPPET: activationThroughCode -->
  * </pre>
- * <p/>
- * <p/>
- * <p/>
  * <!-- START SNIPPET: activationThroughCodeDescription -->
- * <p/>
- * This could be done in a static block, in a Spring bean with lazy-init="false",
+ * <p>
+ * This could be done in a static block, in a Spring bean with lazy-init='false',
  * in a Servlet with init-on-startup as some numeric value, in a Filter or
  * Listener's init method etc.
- * <p/>
+ * </p>
  * <!-- END SNIPPET: activationThroughCodeDescription -->
- * <p/>
- * <p/>
- * Parameter:-
- * <p/>
+ *
+ * <p>
+ * Parameter:
+ * </p>
+ *
  * <pre>
  * <!-- START SNIPPET: activationThroughParameter -->
  *
  * &lt;action ... &gt;
  *  ...
- *  &lt;interceptor-ref name="profiling"&gt;
- *      &lt;param name="profilingKey"&gt;profiling&lt;/param&gt;
+ *  &lt;interceptor-ref name=&quot;profiling&quot;&gt;
+ *      &lt;param name=&quot;profilingKey&quot;&gt;profiling&lt;/param&gt;
  *  &lt;/interceptor-ref&gt;
  *  ...
  * &lt;/action&gt;
@@ -159,7 +162,7 @@ import org.apache.logging.log4j.Logger;
  *
  * &lt;action .... &gt;
  * ...
- *  &lt;interceptor-ref name="profiling" /&gt;
+ *  &lt;interceptor-ref name=&quot;profiling&quot; /&gt;
  * ...
  * &lt;/action&gt;
  *
@@ -169,44 +172,44 @@ import org.apache.logging.log4j.Logger;
  *
  * through code
  *
- * ActionContext.getContext().getParameters().put("profiling", "true);
+ * ActionContext.getContext().getParameters().put(&quot;profiling&quot;, &quot;true);
  *
  * <!-- END SNIPPET: activationThroughParameter -->
  * </pre>
- * <p/>
- * <p/>
+ *
+ *
  * <!-- START SNIPPET: activationThroughParameterDescription -->
- * <p/>
+ * <p>
  * To use profiling activation through parameter, one will need to pass in through
  * the 'profiling' parameter (which is the default) and could be changed through
  * the param tag in the interceptor-ref.
- * <p/>
+ * </p>
  * <!-- END SNIPPET: activationThroughParameterDescription -->
- * <p/>
- * <p/>
- * Warning:<p/>
+ *
+ * <p>Warning:</p>
+ *
  * <!-- START SNIPPET: activationThroughParameterWarning -->
- * <p/>
+ * <p>
  * Profiling activation through a parameter requires the following:
- * <p/>
+ * </p>
+ *
  * <ul>
  * <li>Profiling interceptor in interceptor stack</li>
  * <li>dev mode on (struts.devMode=true in struts.properties)
  * </ul>
- * <p/>
+ *
  * <!-- END SNIPPET: activationThroughParameterWarning -->
- * <p/>
- * <p/>
- * <p/>
+ *
  * <!-- START SNIPPET: filteringDescription -->
- * <p/>
+ * <p>
  * One could filter out the profile logging by having a System property as follows. With this
  * 'xwork.profile.mintime' property, one could only log profile information when its execution time
  * exceed those specified in 'xwork.profile.mintime' system property. If no such property is specified,
  * it will be assumed to be 0, hence all profile information will be logged.
- * <p/>
+ * </p>
+ *
  * <!-- END SNIPPET: filteringDescription -->
- * <p/>
+ *
  * <pre>
  * <!-- START SNIPPET: filteringCode -->
  *
@@ -214,17 +217,17 @@ import org.apache.logging.log4j.Logger;
  *
  * <!-- END SNIPPET: filteringCode -->
  * </pre>
- * <p/>
+ *
  * <!-- START SNIPPET: methodDescription -->
- * <p/>
+ * <p>
  * One could extend the profiling feature provided by Struts2 in their web application as well.
- * <p/>
+ * </p>
  * <!-- END SNIPPET: methodDescription -->
- * <p/>
+ *
  * <pre>
  * <!-- START SNIPPET: method1 -->
  *
- *    String logMessage = "Log message";
+ *    String logMessage = &quot;Log message&quot;;
  *    UtilTimerStack.push(logMessage);
  *    try {
  *        // do some code
@@ -235,34 +238,33 @@ import org.apache.logging.log4j.Logger;
  *
  * <!-- END SNIPPET: method1 -->
  * </pre>
- * <p/>
+ * <p>
  * or
- * <p/>
+ * </p>
  * <pre>
  * <!-- START SNIPPET: method2 -->
  *
- *   String result = UtilTimerStack.profile("purchaseItem: ",
+ *   String result = UtilTimerStack.profile(&quot;purchaseItem: &quot;,
  *       new UtilTimerStack.ProfilingBlock<String>() {
  *            public String doProfiling() {
  *               // do some code
- *               return "Ok";
+ *               return &quot;Ok&quot;;
  *            }
  *       });
  *
  * <!-- END SNIPPET: method2 -->
  * </pre>
- * <p/>
- * <p/>
+ *
+ *
  * <!-- START SNIPPET: profileLogFile -->
- * <p/>
+ * <p>
  * Profiled result is logged using commons-logging under the logger named
  * 'com.opensymphony.xwork2.util.profiling.UtilTimerStack'. Depending on the underlying logging implementation
  * say if it is Log4j, one could direct the log to appear in a different file, being emailed to someone or have
  * it stored in the db.
- * <p/>
- * <!-- END SNIPPET: profileLogFile -->
+ * </p>
  *
- * @version $Date$ $Id$
+ * <!-- END SNIPPET: profileLogFile -->
  */
 public class UtilTimerStack {
 
@@ -270,8 +272,8 @@ public class UtilTimerStack {
     protected static ThreadLocal<ProfilingTimerBean> current = new ThreadLocal<>();
 
     /**
-     * System property that controls whether this timer should be used or not.  Set to "true" activates
-     * the timer.  Set to "false" to disactivate.
+     * System property that controls whether this timer should be used or not.  Set to &quot;true&quot; activates
+     * the timer.  Set to &quot;false&quot; to deactivate.
      */
     public static final String ACTIVATE_PROPERTY = "xwork.profile.activate";
 
@@ -400,13 +402,16 @@ public class UtilTimerStack {
 
 
     /**
+     * <p>
      * A convenience method that allows <code>block</code> of code subjected to profiling to be executed
      * and avoid the need of coding boiler code that does pushing (UtilTimeBean.push(...)) and
      * poping (UtilTimerBean.pop(...)) in a try ... finally ... block.
-     * <p/>
-     * <p/>
-     * <p/>
+     * </p>
+     *
+     * <p>
      * Example of usage:
+     * </p>
+     *
      * <pre>
      * 	 // we need a returning result
      *   String result = UtilTimerStack.profile("purchaseItem: ",
@@ -417,7 +422,9 @@ public class UtilTimerStack {
      *            }
      *       });
      * </pre>
+     *
      * or
+     *
      * <pre>
      *   // we don't need a returning result
      *   UtilTimerStack.profile("purchaseItem: ",

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionContextState.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionContextState.java b/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionContextState.java
index 9de464b..8caa039 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionContextState.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionContextState.java
@@ -87,15 +87,18 @@ public class ReflectionContextState {
 		context.put(XWorkConverter.LAST_BEAN_CLASS_ACCESSED, clazz);
 	}
 	/**
+	 * <p>
 	 * Gets the current property path but not completely.
 	 * It does not use the [ and ] used in some representations
 	 * of Maps and Lists. The reason for this is that the current
 	 * property path is only currently used for caching purposes
 	 * so there is no real reason to have an exact replica.
-     *
-	 * <p/>So if the real path is myProp.myMap['myKey'] this would
+     * </p>
+	 *
+	 * <p>So if the real path is myProp.myMap['myKey'] this would
 	 * return myProp.myMap.myKey.
-     * 
+     * </p>
+	 *
 	 * @param context
 	 */
 	public static String getCurrentPropertyPath(Map<String, Object> context) {

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java b/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
index e98f8ee..2bfac35 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
@@ -268,12 +268,12 @@ public class AnnotationActionValidatorManager implements ActionValidatorManager
     /**
      * <p>This method 'collects' all the validator configurations for a given
      * action invocation.</p>
-     * <p/>
+     *
      * <p>It will traverse up the class hierarchy looking for validators for every super class
      * and directly implemented interface of the current action, as well as adding validators for
      * any alias of this invocation. Nifty!</p>
-     * <p/>
-     * <p>Given the following class structure:
+     *
+     * <p>Given the following class structure:</p>
      * <pre>
      *   interface Thing;
      *   interface Animal extends Thing;
@@ -281,9 +281,9 @@ public class AnnotationActionValidatorManager implements ActionValidatorManager
      *   class AnimalImpl implements Animal;
      *   class QuadrapedImpl extends AnimalImpl implements Quadraped;
      *   class Dog extends QuadrapedImpl;
-     * </pre></p>
-     * <p/>
-     * <p>This method will look for the following config files for Dog:
+     * </pre>
+     *
+     * <p>This method will look for the following config files for Dog:</p>
      * <pre>
      *   Animal
      *   Animal-context
@@ -295,8 +295,8 @@ public class AnnotationActionValidatorManager implements ActionValidatorManager
      *   QuadrapedImpl-context
      *   Dog
      *   Dog-context
-     * </pre></p>
-     * <p/>
+     * </pre>
+     *
      * <p>Note that the validation rules for Thing is never looked for because no class in the
      * hierarchy directly implements Thing.</p>
      *

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java b/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java
index d9d7401..d16afcd 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java
@@ -32,12 +32,16 @@ import java.util.*;
 
 
 /**
+ * <p>
  * This is the entry point into XWork's rule-based validation framework.
- * <p/>
+ * </p>
+ *
+ * <p>
  * Validation rules are specified in XML configuration files named <code>className-contextName-validation.xml</code> where
  * className is the name of the class the configuration is for and -contextName is optional
  * (contextName is an arbitrary key that is used to look up additional validation rules for a
  * specific context).
+ * </p>
  *
  * @author Jason Carreira
  * @author Mark Woon
@@ -127,10 +131,10 @@ public class DefaultActionValidatorManager implements ActionValidatorManager {
         Set<String> shortcircuitedFields = null;
 
         for (final Validator validator : validators) {
-        try {
+            try {
                 validator.setValidatorContext(validatorContext);
 
-            LOG.debug("Running validator: {} for object {} and method {}", validator, object, method);
+                LOG.debug("Running validator: {} for object {} and method {}", validator, object, method);
 
                 FieldValidator fValidator = null;
                 String fullFieldName = null;
@@ -234,7 +238,7 @@ public class DefaultActionValidatorManager implements ActionValidatorManager {
      * and directly implemented interface of the current action, as well as adding validators for
      * any alias of this invocation. Nifty!</p>
      *
-     * <p>Given the following class structure:
+     * <p>Given the following class structure:</p>
      * <pre>
      *   interface Thing;
      *   interface Animal extends Thing;
@@ -242,9 +246,9 @@ public class DefaultActionValidatorManager implements ActionValidatorManager {
      *   class AnimalImpl implements Animal;
      *   class QuadrapedImpl extends AnimalImpl implements Quadraped;
      *   class Dog extends QuadrapedImpl;
-     * </pre></p>
+     * </pre>
      *
-     * <p>This method will look for the following config files for Dog:
+     * <p>This method will look for the following config files for Dog:</p>
      * <pre>
      *   Animal
      *   Animal-context
@@ -256,7 +260,7 @@ public class DefaultActionValidatorManager implements ActionValidatorManager {
      *   QuadrapedImpl-context
      *   Dog
      *   Dog-context
-     * </pre></p>
+     * </pre>
      *
      * <p>Note that the validation rules for Thing is never looked for because no class in the
      * hierarchy directly implements Thing.</p>

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/ValidationInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/ValidationInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/validator/ValidationInterceptor.java
index 5b2a65c..a7811e0 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/ValidationInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/ValidationInterceptor.java
@@ -28,31 +28,35 @@ import org.apache.logging.log4j.Logger;
 /**
  * <!-- START SNIPPET: description -->
  *
+ * <p>
  * This interceptor runs the action through the standard validation framework, which in turn checks the action against
  * any validation rules (found in files such as <i>ActionClass-validation.xml</i>) and adds field-level and action-level
  * error messages (provided that the action implements {@link ValidationAware}). This interceptor
  * is often one of the last (or second to last) interceptors applied in a stack, as it assumes that all values have
  * already been set on the action.
+ * </p>
  *
- * <p/>This interceptor does nothing if the name of the method being invoked is specified in the <b>excludeMethods</b>
+ * <p>
+ * This interceptor does nothing if the name of the method being invoked is specified in the <b>excludeMethods</b>
  * parameter. <b>excludeMethods</b> accepts a comma-delimited list of method names. For example, requests to
  * <b>foo!input.action</b> and <b>foo!back.action</b> will be skipped by this interceptor if you set the
  * <b>excludeMethods</b> parameter to "input, back".
- * 
- * </ol>
- * 
- * <p/> The workflow of the action request does not change due to this interceptor. Rather,
- * this interceptor is often used in conjuction with the <b>workflow</b> interceptor.
+ * </p>
  *
- * <p/>
- * 
+ * <p>
+ * The workflow of the action request does not change due to this interceptor. Rather,
+ * this interceptor is often used in conjunction with the <b>workflow</b> interceptor.
+ * </p>
+ *
+ * <p>
  * <b>NOTE:</b> As this method extends off MethodFilterInterceptor, it is capable of
  * deciding if it is applicable only to selective methods in the action class. See
  * <code>MethodFilterInterceptor</code> for more info.
+ * </p>
  *
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Interceptor parameters:</u>
+ * <p><u>Interceptor parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  *
@@ -71,9 +75,7 @@ import org.apache.logging.log4j.Logger;
  *
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Extending the interceptor:</u>
- *
- * <p/>
+ * <p><u>Extending the interceptor:</u></p>
  *
  * <!-- START SNIPPET: extending -->
  *
@@ -81,38 +83,38 @@ import org.apache.logging.log4j.Logger;
  *
  * <!-- END SNIPPET: extending -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
  * 
- * &lt;action name="someAction" class="com.examples.SomeAction"&gt;
- *     &lt;interceptor-ref name="params"/&gt;
- *     &lt;interceptor-ref name="validation"/&gt;
- *     &lt;interceptor-ref name="workflow"/&gt;
- *     &lt;result name="success"&gt;good_result.ftl&lt;/result&gt;
+ * &lt;action name=&quot;someAction&quot; class=&quot;com.examples.SomeAction&quot;&gt;
+ *     &lt;interceptor-ref name=&quot;params&quot;/&gt;
+ *     &lt;interceptor-ref name=&quot;validation&quot;/&gt;
+ *     &lt;interceptor-ref name=&quot;workflow&quot;/&gt;
+ *     &lt;result name=&quot;success&quot;&gt;good_result.ftl&lt;/result&gt;
  * &lt;/action&gt;
  * 
  * &lt;-- in the following case myMethod of the action class will not
  *        get validated --&gt;
- * &lt;action name="someAction" class="com.examples.SomeAction"&gt;
- *     &lt;interceptor-ref name="params"/&gt;
- *     &lt;interceptor-ref name="validation"&gt;
- *         &lt;param name="excludeMethods"&gt;myMethod&lt;/param&gt;
+ * &lt;action name=&quot;someAction&quot; class=&quot;com.examples.SomeAction&quot;&gt;
+ *     &lt;interceptor-ref name=&quot;params&quot;/&gt;
+ *     &lt;interceptor-ref name=&quot;validation&quot;&gt;
+ *         &lt;param name=&quot;excludeMethods&quot;&gt;myMethod&lt;/param&gt;
  *     &lt;/interceptor-ref&gt;
- *     &lt;interceptor-ref name="workflow"/&gt;
- *     &lt;result name="success"&gt;good_result.ftl&lt;/result&gt;
+ *     &lt;interceptor-ref name=&quot;workflow&quot;/&gt;
+ *     &lt;result name=&quot;success&quot;&gt;good_result.ftl&lt;/result&gt;
  * &lt;/action&gt;
  * 
  * &lt;-- in the following case only annotated methods of the action class will
  *        be validated --&gt;
- * &lt;action name="someAction" class="com.examples.SomeAction"&gt;
- *     &lt;interceptor-ref name="params"/&gt;
- *     &lt;interceptor-ref name="validation"&gt;
- *         &lt;param name="validateAnnotatedMethodOnly"&gt;true&lt;/param&gt;
+ * &lt;action name=&quot;someAction&quot; class=&quot;com.examples.SomeAction&quot;&gt;
+ *     &lt;interceptor-ref name=&quot;params&quot;/&gt;
+ *     &lt;interceptor-ref name=&quot;validation&quot;&gt;
+ *         &lt;param name=&quot;validateAnnotatedMethodOnly&quot;&gt;true&lt;/param&gt;
  *     &lt;/interceptor-ref&gt;
- *     &lt;interceptor-ref name="workflow"/&gt;
- *     &lt;result name="success"&gt;good_result.ftl&lt;/result&gt;
+ *     &lt;interceptor-ref name=&quot;workflow&quot;/&gt;
+ *     &lt;result name=&quot;success&quot;&gt;good_result.ftl&lt;/result&gt;
  * &lt;/action&gt;
  *
  *

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/Validator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/Validator.java b/core/src/main/java/com/opensymphony/xwork2/validator/Validator.java
index 1fcab44..5cff3f8 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/Validator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/Validator.java
@@ -22,43 +22,41 @@ import com.opensymphony.xwork2.util.ValueStack;
  * <!-- START SNIPPET: validatorFlavours -->
  * <p>The validators supplied by the XWork distribution (and any validators you
  * might write yourself) come in two different flavors:</p>
- * <p/>
+ *
  * <ol>
  * <li> Plain Validators / Non-Field validators </li>
  * <li> FieldValidators </li>
  * </ol>
- * <p/>
+ *
  * <p>Plain Validators (such as the ExpressionValidator) perform validation checks
  * that are not inherently tied to a single specified field. When you declare a
  * plain Validator in your -validation.xml file you do not associate a fieldname
  * attribute with it. (You should avoid using plain Validators within the
  * <field-validator> syntax described below.)</p>
- * <p/>
+ *
  * <p>FieldValidators (such as the EmailValidator) are designed to perform
  * validation checks on a single field. They require that you specify a fieldname
  * attribute in your -validation.xml file. There are two different (but equivalent)
  * XML syntaxes you can use to declare FieldValidators (see "<validator> vs.
- * <field-Validator> syntax" below).</p>
- * <p/>
+ * <field-Validator> syntax&quot; below).</p>
+ *
  * <p>There are two places where the differences between the two validator flavors
  * are important to keep in mind:</p>
- * <p/>
+ *
  * <ol>
  * <li> when choosing the xml syntax used for declaring a validator
  * (either <validator> or <field-validator>)</li>
  * <li> when using the short-circuit capability</li>
  * </ol>
- * <p/>
- * <p><b>NOTE:</b>Note that you do not declare what "flavor" of validator you are
+ *
+ * <p><b>NOTE:</b>Note that you do not declare what &quot;flavor&quot; of validator you are
  * using in your -validation.xml file, you just declare the name of the validator
- * to use and Struts will know whether it's a "plain Validator" or a "FieldValidator"
+ * to use and Struts will know whether it's a &quot;plain Validator&quot; or a &quot;FieldValidator&quot;
  * by looking at the validation class that the validator's programmer chose
  * to implement.</p>
  * <!-- END SNIPPET: validatorFlavours -->
- * <p/>
- * <p/>
- * <p/>
- * <p/>
+ *
+ *
  * <!-- START SNIPPET: validationRules -->
  * <p>To define validation rules for an Action, create a file named ActionName-validation.xml
  * in the same package as the Action. You may also create alias-specific validation rules which
@@ -66,12 +64,12 @@ import com.opensymphony.xwork2.util.ValueStack;
  * another file in the same directory named ActionName-aliasName-validation.xml. In both
  * cases, ActionName is the name of the Action class, and aliasName is the name of the
  * Action alias defined in the xwork.xml configuration for the Action.</p>
- * <p/>
+ *
  * <p>The framework will also search up the inheritance tree of the Action to
  * find validation rules for directly implemented interfaces and parent classes of the Action.
  * This is particularly powerful when combined with ModelDriven Actions and the VisitorFieldValidator.
  * Here's an example of how validation rules are discovered. Given the following class structure:</p>
- * <p/>
+ *
  * <ul>
  * <li>interface Animal;</li>
  * <li>interface Quadraped extends Animal;</li>
@@ -79,9 +77,9 @@ import com.opensymphony.xwork2.util.ValueStack;
  * <li>class QuadrapedImpl extends AnimalImpl implements Quadraped;</li>
  * <li>class Dog extends QuadrapedImpl;</li>
  * </ul>
- * <p/>
+ *
  * <p>The framework method will look for the following config files if Dog is to be validated:</p>
- * <p/>
+ *
  * <ul>
  * <li>Animal</li>
  * <li>Animal-aliasname</li>
@@ -94,20 +92,20 @@ import com.opensymphony.xwork2.util.ValueStack;
  * <li>Dog</li>
  * <li>Dog-aliasname</li>
  * </ul>
- * <p/>
+ *
  * <p>While this process is similar to what the XW:Localization framework does
  * when finding messages, there are some subtle differences. The most important
  * difference is that validation rules are discovered from the parent downwards.
  * </p>
- * <p/>
+ *
  * <p><b>NOTE:</b>Child's *-validation.xml will add on to parent's *-validation.xml
  * according to the class hierarchy defined above. With this feature, one could have
  * more generic validation rule at the parent and more specific validation rule at
  * the child.</p>
- * <p/>
+ *
  * <!-- END SNIPPET: validationRules -->
- * <p/>
- * <p/>
+ *
+ *
  * <!-- START SNIPPET: validatorVsFieldValidators1 -->
  * <p>There are two ways you can define validators in your -validation.xml file:</p>
  * <ol>
@@ -115,35 +113,34 @@ import com.opensymphony.xwork2.util.ValueStack;
  * <li> &lt;field-validator&gt; </li>
  * </ol>
  * <p>Keep the following in mind when using either syntax:</p>
- * <p/>
+ *
  * <p><b>Non-Field-Validator</b>
  * The &lt;validator&gt; element allows you to declare both types of validators
  * (either a plain Validator a field-specific FieldValidator).</p>
  * <!-- END SNIPPET: validatorVsFieldValidators1 -->
- * <p/>
+ *
  * <pre>
  * <!-- START SNIPPET: nonFieldValidatorUsingValidatorSyntax -->
  *    &lt;!-- Declaring a plain Validator using the &lt;validator&gt; syntax: --&gt;
- * <p/>
- *    &lt;validator type="expression&gt;
- *          &lt;param name="expression">foo gt bar&lt;/param&gt;
+ *
+ *    &lt;validator type=&quot;expression&gt;
+ *          &lt;param name=&quot;expression&quot;>foo gt bar&lt;/param&gt;
  *          &lt;message&gt;foo must be great than bar.&lt;/message&gt;
  *    &lt;/validator&gt;
  * <!-- END SNIPPET: nonFieldValidatorUsingValidatorSyntax -->
  * </pre>
- * <p/>
+ *
  * <pre>
  * <!-- START SNIPPET: fieldValidatorUsingValidatorSyntax -->
  *    &lt;!-- Declaring a field validator using the &lt;validator&gt; syntax; --&gt;
- * <p/>
- *    &lt;validator type="required"&gt;
- *         &lt;param name="fieldName"&gt;bar&lt;/param&gt;
+ *
+ *    &lt;validator type=&quot;required&quot;&gt;
+ *         &lt;param name=&quot;fieldName&quot;&gt;bar&lt;/param&gt;
  *         &lt;message&gt;You must enter a value for bar.&lt;/message&gt;
  *    &lt/validator&gt;
  * <!-- END SNIPPET: fieldValidatorUsingValidatorSyntax -->
  * </pre>
- * <p/>
- * <p/>
+ *
  * <!-- START SNIPPET: validatorVsFieldValidators2 -->
  * <p><b>field-validator</b>
  * The &lt;field-validator&gt; elements are basically the same as the &lt;validator&gt; elements
@@ -153,110 +150,110 @@ import com.opensymphony.xwork2.util.ValueStack;
  * attribute. The reason for this structure is to conveniently group the validators
  * for a particular field under one element, otherwise the fieldName attribute
  * would have to be repeated, over and over, for each individual &lt;validator&gt;.</p>
- * <p/>
+ *
  * <p><b>HINT:</b>
  * It is always better to defined field-validator inside a &lt;field&gt; tag instead of
  * using a &lt;validator&gt; tag and supplying fieldName as its param as the xml code itself
  * is clearer (grouping of field is clearer)</p>
- * <p/>
+ *
  * <p><b>NOTE:</b>
  * Note that you should only use FieldValidators (not plain Validators) within a
  * <field-validator> block. A plain Validator inside a &lt;field&gt; will not be
  * allowed and would generate error when parsing the xml, as it is not allowed in
  * the defined dtd (xwork-validator-1.0.2.dtd)</p>
  * <!-- END SNIPPET: validatorVsFieldValidators2 -->
- * <p/>
+ *
  * <pre>
  * <!-- START SNIPPET: fieldValidatorUsingFieldValidatorSyntax -->
  * Declaring a FieldValidator using the &lt;field-validator&gt; syntax:
- * <p/>
- * &lt;field name="email_address"&gt;
- *   &lt;field-validator type="required"&gt;
+ *
+ * &lt;field name=&quot;email_address&quot;&gt;
+ *   &lt;field-validator type=&quot;required&quot;&gt;
  *       &lt;message&gt;You cannot leave the email address field empty.&lt;/message&gt;
  *   &lt;/field-validator&gt;
- *   &lt;field-validator type="email"&gt;
+ *   &lt;field-validator type=&quot;email&quot;&gt;
  *       &lt;message&gt;The email address you entered is not valid.&lt;/message&gt;
  *   &lt;/field-validator&gt;
  * &lt;/field&gt;
  * <!-- END SNIPPET: fieldValidatorUsingFieldValidatorSyntax -->
  * </pre>
- * <p/>
- * <p/>
+ *
+ *
  * <!-- START SNIPPET: validatorVsFieldValidators3 -->
  * <p>The choice is yours. It's perfectly legal to only use <validator> elements
  * without the <field> elements and set the fieldName attribute for each of them.
- * The following are effectively equal:</P>
+ * The following are effectively equal:</p>
  * <!-- END SNIPPET: validatorVsFieldValidators3 -->
- * <p/>
+ *
  * <pre>
  * <!-- START SNIPPET: similarVaidatorDeclaredInDiffSyntax -->
- * &lt;field name="email_address"&gt;
- *   &lt;field-validator type="required"&gt;
+ * &lt;field name=&quot;email_address&quot;&gt;
+ *   &lt;field-validator type=&quot;required&quot;&gt;
  *       &lt;message&gt;You cannot leave the email address field empty.&lt;/message&gt;
  *   &lt;/field-validator&gt;
- *   &lt;field-validator type="email"&gt;
+ *   &lt;field-validator type=&quot;email&quot;&gt;
  *       &lt;message&gt;The email address you entered is not valid.&lt;/message&gt;
  *   &lt;/field-validator&gt;
  * &lt;/field&gt;
- * <p/>
- * <p/>
- * &lt;validator type="required"&gt;
- *   &lt;param name="fieldName"&gt;email_address&lt;/param&gt;
+ *
+ *
+ * &lt;validator type=&quot;required&quot;&gt;
+ *   &lt;param name=&quot;fieldName&quot;&gt;email_address&lt;/param&gt;
  *   &lt;message&gt;You cannot leave the email address field empty.&lt;/message&gt;
  * &lt;/validator&gt;
- * &lt;validator type="email"&gt;
- *   &lt;param name="fieldName"&gt;email_address&lt;/param&gt;
+ * &lt;validator type=&quot;email&quot;&gt;
+ *   &lt;param name=&quot;fieldName&quot;&gt;email_address&lt;/param&gt;
  *   &lt;message&gt;The email address you entered is not valid.&lt;/message&gt;
  * &lt;/validator&gt;
  * <!-- END SNIPPET: similarVaidatorDeclaredInDiffSyntax -->
  * </pre>
- * <p/>
- * <p/>
+ *
+ *
  * <!-- START SNIPPET: shortCircuitingValidators1 -->
  * <p>It is possible to short-circuit a stack of validators.
  * Here is another sample config file containing validation rules from the
  * Xwork test cases: Notice that some of the &lt;field-validator&gt; and
  * &lt;validator&gt; elements have the short-circuit attribute set to true.</p>
  * <!-- END SNIPPET : shortCircuitingValidators1 -->
- * <p/>
+ *
  * <pre>
  * &lt;!-- START SNIPPET: exShortCircuitingValidators --&gt;
  * &lt;!DOCTYPE validators PUBLIC
- *         "-//Apache Struts//XWork Validator 1.0.3//EN"
- *  	   "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"&gt;
+ *         &quot;-//Apache Struts//XWork Validator 1.0.3//EN&quot;
+ *  	   &quot;http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd&quot;&gt;
  * &lt;validators&gt;
  *   &lt;!-- Field Validators for email field --&gt;
- *   &lt;field name="email"&gt;
- *       &lt;field-validator type="required" short-circuit="true"&gt;
+ *   &lt;field name=&quot;email&quot;&gt;
+ *       &lt;field-validator type=&quot;required&quot; short-circuit=&quot;true&quot;&gt;
  *           &lt;message&gt;You must enter a value for email.&lt;/message&gt;
  *       &lt;/field-validator&gt;
- *       &lt;field-validator type="email" short-circuit="true"&gt;
+ *       &lt;field-validator type=&quot;email&quot; short-circuit=&quot;true&quot;&gt;
  *           &lt;message&gt;Not a valid e-mail.&lt;/message&gt;
  *       &lt;/field-validator&gt;
  *   &lt;/field&gt;
  *   &lt;!-- Field Validators for email2 field --&gt;
- *   &lt;field name="email2"&gt;
- *      &lt;field-validator type="required"&gt;
+ *   &lt;field name=&quot;email2&quot;&gt;
+ *      &lt;field-validator type=&quot;required&quot;&gt;
  *           &lt;message&gt;You must enter a value for email2.&lt;/message&gt;
  *       &lt;/field-validator&gt;
- *      &lt;field-validator type="email"&gt;
+ *      &lt;field-validator type=&quot;email&quot;&gt;
  *           &lt;message&gt;Not a valid e-mail2.&lt;/message&gt;
  *       &lt;/field-validator&gt;
  *   &lt;/field&gt;
  *   &lt;!-- Plain Validator 1 --&gt;
- *   &lt;validator type="expression"&gt;
- *       &lt;param name="expression"&gt;email.equals(email2)&lt;/param&gt;
+ *   &lt;validator type=&quot;expression&quot;&gt;
+ *       &lt;param name=&quot;expression&quot;&gt;email.equals(email2)&lt;/param&gt;
  *       &lt;message&gt;Email not the same as email2&lt;/message&gt;
  *   &lt;/validator&gt;
  *   &lt;!-- Plain Validator 2 --&gt;
- *   &lt;validator type="expression" short-circuit="true"&gt;
- *       &lt;param name="expression"&gt;email.startsWith('mark')&lt;/param&gt;
+ *   &lt;validator type=&quot;expression&quot; short-circuit=&quot;true&quot;&gt;
+ *       &lt;param name=&quot;expression&quot;&gt;email.startsWith('mark')&lt;/param&gt;
  *       &lt;message&gt;Email does not start with mark&lt;/message&gt;
  *   &lt;/validator&gt;
  * &lt;/validators&gt;
  * &lt;!-- END SNIPPET: exShortCircuitingValidators --&gt;
  * </pre>
- * <p/>
+ *
  * <!-- START SNIPPET:shortCircuitingValidators2  -->
  * <p><b>short-circuiting and Validator flavors</b></p>
  * <p>Plain validator takes precedence over field-validator. They get validated
@@ -265,25 +262,25 @@ import com.opensymphony.xwork2.util.ValueStack;
  * will prevent the evaluation of subsequent validators and an error (action
  * error or field error depending on the type of validator) will be added to
  * the ValidationContext of the object being validated.</p>
- * <p/>
+ *
  * <p>In the example above, the actual execution of validator would be as follows:</p>
- * <p/>
+ *
  * <ol>
  * <li> Plain Validator 1</li>
  * <li> Plain Validator 2</li>
  * <li> Field Validators for email field</li>
  * <li> Field Validators for email2 field</li>
  * </ol>
- * <p/>
+ *
  * <p>Since Plain Validator 2 is short-circuited, if its validation failed,
  * it will causes Field validators for email field and Field validators for email2
  * field to not be validated as well.</p>
- * <p/>
+ *
  * <p><b>Usefull Information:</b>
  * More complicated validation should probably be done in the validate()
  * method on the action itself (assuming the action implements Validatable
  * interface which ActionSupport already does).</p>
- * <p/>
+ *
  * <p>
  * A plain Validator (non FieldValidator) that gets short-circuited will
  * completely break out of the validation stack. No other validators will be
@@ -292,40 +289,39 @@ import com.opensymphony.xwork2.util.ValueStack;
  * get a chance to be evaluated.
  * </p>
  * <!-- END SNIPPET: shortCircuitingValidators2 -->
- * <p/>
- * <p/>
+ *
  * <!-- START SNIPPET: scAndValidatorFlavours1 -->
  * <p><b>Short cuircuiting and validator flavours</b></p>
  * <p>A FieldValidator that gets short-circuited will only prevent other
  * FieldValidators for the same field from being evaluated. Note that this
- * "same field" behavior applies regardless of whether the <validator> or
+ * &quot;same field&quot; behavior applies regardless of whether the <validator> or
  * <field-validator> syntax was used to declare the validation rule.
  * By way of example, given this -validation.xml file:</p>
  * <!-- END SNIPPET: scAndValidatorFlavours1 -->
- * <p/>
+ *
  * <pre>
  * <!-- START SNIPPET: exScAndValidatorFlavours -->
- * &lt;validator type="required" short-circuit="true"&gt;
- *   &lt;param name="fieldName"&gt;bar&lt;/param&gt;
+ * &lt;validator type=&quot;required&quot; short-circuit=&quot;true&quot;&gt;
+ *   &lt;param name=&quot;fieldName&quot;&gt;bar&lt;/param&gt;
  *   &lt;message&gt;You must enter a value for bar.&lt;/message&gt;
  * &lt;/validator&gt;
- * <p/>
- * &lt;validator type="expression"&gt;
- *   &lt;param name="expression">foo gt bar&lt;/param&gt;
+ *
+ * &lt;validator type=&quot;expression&quot;&gt;
+ *   &lt;param name=&quot;expression&quot;>foo gt bar&lt;/param&gt;
  *   &lt;message&gt;foo must be great than bar.&lt;/message&gt;
  * &lt;/validator&gt;
  * <!-- END SNIPPET: exScAndValidatorFlavours -->
  * </pre>
- * <p/>
+ *
  * <!-- START SNIPPET: scAndValidatorFlavours2 -->
- * <p>both validators will be run, even if the "required" validator short-circuits.
- * "required" validators are FieldValidator's and will not short-circuit the plain
+ * <p>both validators will be run, even if the &quot;required&quot; validator short-circuits.
+ * &quot;required&quot; validators are FieldValidator's and will not short-circuit the plain
  * ExpressionValidator because FieldValidators only short-circuit other checks on
  * that same field. Since the plain Validator is not field specific, it is
  * not short-circuited.</p>
  * <!-- END SNIPPET: scAndValidatorFlavours2 -->
- * <p/>
- * <p/>
+ *
+ *
  * <!-- START SNIPPET: howXworkFindsValidatorForAction -->
  * <p>As mentioned above, the framework will also search up the inheritance tree
  * of the action to find default validations for interfaces and parent classes of
@@ -353,36 +349,36 @@ import com.opensymphony.xwork2.util.ValueStack;
  * </p>
  * <!-- END SNIPPET: howXworkFindsValidatorForAction -->
  *
- * <p/>
+ *
  * <!-- START SNIPPET: i18n -->
  * Validator's validation messages could be internatinalized. For example,
  * <pre>
- *   &lt;field-validator type="required"&gt;
- *      &lt;message key="required.field" /&gt;
+ *   &lt;field-validator type=&quot;required&quot;&gt;
+ *      &lt;message key=&quot;required.field&quot; /&gt;
  *   &lt;/field-validator&gt;
  * </pre>
  * or
  * <pre>
- *   &lt;validator type="expression"&gt;
- *      &lt;param name="expression"&gt;email.startsWith('Mark')&lt;/param&gt;
- *      &lt;message key="email.invalid" /&gt;
+ *   &lt;validator type=&quot;expression&quot;&gt;
+ *      &lt;param name=&quot;expression&quot;&gt;email.startsWith('Mark')&lt;/param&gt;
+ *      &lt;message key=&quot;email.invalid&quot; /&gt;
  *   &lt;/validator&gt;
  * </pre>
  * In the first case, WebWork would look for i18n with key 'required.field' as the validation error message if
  * validation fails, and 'email.invalid' in the second case.
- * <p/>
+ *
  * We could also provide a default message such that if validation failed and the i18n key for the message
  * cannot be found, WebWork would fall back and use the default message. An example would be as follows :-
  * <pre>
- *   &lt;field-validator type="required"&gt;
- *      &lt;message key="required.field"&gt;This field is required.&lt;/message&gt;
+ *   &lt;field-validator type=&quot;required&quot;&gt;
+ *      &lt;message key=&quot;required.field&quot;&gt;This field is required.&lt;/message&gt;
  *   &lt;/field-validator&gt;
  * </pre>
  * or
  * <pre>
- *   &lt;validator type="expression"&gt;
- *      &lt;param name="expression"&gt;email.startsWith('Mark')&lt;/param&gt;
- *      &lt;message key="email.invalid"&gt;Email needs with starts with Mark&lt;/message&gt;
+ *   &lt;validator type=&quot;expression&quot;&gt;
+ *      &lt;param name=&quot;expression&quot;&gt;email.startsWith('Mark')&lt;/param&gt;
+ *      &lt;message key=&quot;email.invalid&quot;&gt;Email needs with starts with Mark&lt;/message&gt;
  *   &lt;/validator&gt;
  * </pre>
  *
@@ -429,16 +425,16 @@ public interface Validator<T> {
     String getMessageKey();
 
     /**
-     * Sets the messsage parameters to be used when parsing i18n messages
+     * Sets the message parameters to be used when parsing i18n messages
      *
-     * @param messageParameters  the messsage parameters
+     * @param messageParameters  the message parameters
      */
     void setMessageParameters(String[] messageParameters);
 
     /**
-     * Gets the messsage parameters to be used when parsing i18n messages
+     * Gets the message parameters to be used when parsing i18n messages
      *
-     * @return the messsage parameters
+     * @return the message parameters
      */
     String[] getMessageParameters();
 
@@ -473,7 +469,7 @@ public interface Validator<T> {
     void setValidatorType(String type);
 
     /**
-     * Gets the vaildator type used (see class javadoc).
+     * Gets the validator type used (see class javadoc).
      *
      * @return the type used
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConditionalVisitorFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConditionalVisitorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConditionalVisitorFieldValidator.java
index 29607ce..e609250 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConditionalVisitorFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConditionalVisitorFieldValidator.java
@@ -7,23 +7,28 @@ import java.lang.annotation.Target;
 
 /**
  * <!-- START SNIPPET: description -->
+ * <p>
  * The validator allows you to forward validator to object properties of your action
  * using the objects own validator files. This allows you to use the ModelDriven development
  * pattern and manage your validations for your models in one place, where they belong, next to
  * your model classes.
+ * </p>
  *
+ * <p>
  * The ConditionalVisitorFieldValidator can handle either simple Object properties, Collections of Objects, or Arrays.
  * The error message for the ConditionalVisitorFieldValidator will be appended in front of validator messages added
  * by the validations for the Object message.
+ * </p>
+ *
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -84,7 +89,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -100,7 +105,7 @@ public @interface ConditionalVisitorFieldValidator {
 
     /**
      * Determines the context to use for validating the Object property.
-     * If not defined, the context of the Action validator is propogated to the Object property validator.
+     * If not defined, the context of the Action validator is propagated to the Object property validator.
      * In the case of Action validator, this context is the Action alias.
      */
     String context() default "";
@@ -108,10 +113,10 @@ public @interface ConditionalVisitorFieldValidator {
     /**
      * Determines whether the field name of this field validator should be prepended to the field name of
      * the visited field to determine the full field name when an error occurs. For example, suppose that
-     * the bean being validated has a "name" property.
+     * the bean being validated has a 'name' property.
      *
-     * If appendPrefix is true, then the field error will be stored under the field "bean.name".
-     * If appendPrefix is false, then the field error will be stored under the field "name".
+     * If appendPrefix is true, then the field error will be stored under the field 'bean.name'.
+     * If appendPrefix is false, then the field error will be stored under the field 'name'.
      *
      * If you are using the ConditionalVisitorFieldValidator to validate the model from a ModelDriven Action,
      * you should set appendPrefix to false unless you are using "model.name" to reference the properties
@@ -148,7 +153,7 @@ public @interface ConditionalVisitorFieldValidator {
     /**
      * If this is activated, the validator will be used as short-circuit.
      *
-     * Adds the short-circuit="true" attribute value if <tt>true</tt>.
+     * Adds the short-circuit='true' attribute value if <tt>true</tt>.
      *
      */
     boolean shortCircuit() default false;

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConversionErrorFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConversionErrorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConversionErrorFieldValidator.java
index 9a6fc0a..2777f7a 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConversionErrorFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConversionErrorFieldValidator.java
@@ -24,16 +24,16 @@ import java.lang.annotation.Target;
 /**
  * <!-- START SNIPPET: description -->
  * This validator checks if there are any conversion errors for a field and applies them if they exist.
- * See <a href="http://wiki.opensymphony.com/display/XW/Type+Conversion+Error+Handling">Type Conversion Error Handling</a> for details.
+ * See <a href="https://struts.apache.org/docs/type-conversion.html#TypeConversion-TypeConversionErrorHandling">Type Conversion Error Handling</a> for details.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The ConversionErrorFieldValidator annotation must be applied at method level.
+ * <p>The ConversionErrorFieldValidator annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -82,7 +82,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -91,7 +91,6 @@ import java.lang.annotation.Target;
  * </pre>
  *
  * @author Rainer Hermanns
- * @version $Id$
  */
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/CustomValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/CustomValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/CustomValidator.java
index 27d63b2..e0305fd 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/CustomValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/CustomValidator.java
@@ -26,13 +26,13 @@ import java.lang.annotation.Target;
  * This annotation can be used for custom validators. Use the ValidationParameter annotation to supply additional params.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method or type level.
+ * <p>The annotation must be applied at method or type level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -81,7 +81,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -91,7 +91,6 @@ import java.lang.annotation.Target;
  *
  * @author jepjep
  * @author Rainer Hermanns
- * @version $Id$
  */
 @Target({ElementType.METHOD, ElementType.TYPE})
 @Retention(RetentionPolicy.RUNTIME)

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DateRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DateRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DateRangeFieldValidator.java
index d6457d5..47900c9 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DateRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DateRangeFieldValidator.java
@@ -26,13 +26,13 @@ import java.lang.annotation.Target;
  * This validator checks that a date field has a value within a specified range.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -119,7 +119,7 @@ import java.lang.annotation.Target;
  * <p>If neither <em>min</em> nor <em>max</em> is set, nothing will be done.</p>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -128,7 +128,6 @@ import java.lang.annotation.Target;
  * </pre>
  *
  * @author Rainer Hermanns
- * @version $Id$
  */
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DoubleRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DoubleRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DoubleRangeFieldValidator.java
index 5eb3049..1a5fb3b 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DoubleRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DoubleRangeFieldValidator.java
@@ -27,13 +27,13 @@ import java.lang.annotation.Target;
  * If neither min nor max is set, nothing will be done.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -134,7 +134,7 @@ import java.lang.annotation.Target;
  * <p>The values for min and max must be inserted as String values so that "0" can be handled as a possible value.</p>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -143,7 +143,6 @@ import java.lang.annotation.Target;
  * </pre>
  *
  * @author <a href="mailto:hermanns@aixcept.de">Rainer Hermanns</a>
- * @version $Id$
  */
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/EmailValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/EmailValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/EmailValidator.java
index 7b40811..ec54c05 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/EmailValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/EmailValidator.java
@@ -26,13 +26,13 @@ import java.lang.annotation.Target;
  * This validator checks that a field is a valid e-mail address if it contains a non-empty String.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -81,7 +81,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -90,7 +90,6 @@ import java.lang.annotation.Target;
  * </pre>
  *
  * @author Rainer Hermanns
- * @version $Id$
  */
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
@@ -120,7 +119,7 @@ public @interface EmailValidator {
     /**
      * If this is activated, the validator will be used as short-circuit.
      *
-     * Adds the short-circuit="true" attribute value if <tt>true</tt>.
+     * Adds the short-circuit='true' attribute value if <tt>true</tt>.
      *
      */
     boolean shortCircuit() default false;

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ExpressionValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ExpressionValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ExpressionValidator.java
index 8049388..7943750 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ExpressionValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ExpressionValidator.java
@@ -26,13 +26,13 @@ import java.lang.annotation.Target;
  * This non-field level validator validates a supplied regular expression.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -75,7 +75,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -84,7 +84,6 @@ import java.lang.annotation.Target;
  * </pre>
  *
  * @author Rainer Hermanns
- * @version $Id$
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ ElementType.METHOD})

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java
index 5941b04..83859d4 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java
@@ -28,13 +28,13 @@ import java.lang.annotation.Target;
  * false when it is evaluated against the value stack.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -83,7 +83,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -92,7 +92,6 @@ import java.lang.annotation.Target;
  * </pre>
  *
  * @author Rainer Hermanns
- * @version $Id$
  */
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
@@ -127,7 +126,7 @@ public @interface FieldExpressionValidator {
     /**
      * If this is activated, the validator will be used as short-circuit.
      *
-     * Adds the short-circuit="true" attribute value if <tt>true</tt>.
+     * Adds the short-circuit='true' attribute value if <tt>true</tt>.
      *
      */
     boolean shortCircuit() default false;

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/IntRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/IntRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/IntRangeFieldValidator.java
index cba539e..daa29c5 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/IntRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/IntRangeFieldValidator.java
@@ -27,13 +27,13 @@ import java.lang.annotation.Target;
  * If neither min nor max is set, nothing will be done.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -116,7 +116,7 @@ import java.lang.annotation.Target;
  * <p>The values for min and max must be inserted as String values so that "0" can be handled as a possible value.</p>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -128,7 +128,6 @@ import java.lang.annotation.Target;
  *
  *
  * @author Rainer Hermanns
- * @version $Id$
  */
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
@@ -178,7 +177,7 @@ public @interface IntRangeFieldValidator {
     /**
      * If this is activated, the validator will be used as short-circuit.
      *
-     * Adds the short-circuit="true" attribute value if <tt>true</tt>.
+     * Adds the short-circuit='true' attribute value if <tt>true</tt>.
      *
      */
     boolean shortCircuit() default false;

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RegexFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RegexFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RegexFieldValidator.java
index 3997916..0ef3b18 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RegexFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RegexFieldValidator.java
@@ -26,13 +26,13 @@ import java.lang.annotation.Target;
  * Validates a string field using a regular expression.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -87,7 +87,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -96,7 +96,6 @@ import java.lang.annotation.Target;
  * </pre>
  *
  * @author <a href="mailto:hermanns@aixcept.de">Rainer Hermanns</a>
- * @version $Id$
  */
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
@@ -169,7 +168,7 @@ public @interface RegexFieldValidator {
     /**
      * If this is activated, the validator will be used as short-circuit.
      *
-     * Adds the short-circuit="true" attribute value if <tt>true</tt>.
+     * Adds the short-circuit='true' attribute value if <tt>true</tt>.
      *
      */
     boolean shortCircuit() default false;

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredFieldValidator.java
index 3039d3c..c2456e7 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredFieldValidator.java
@@ -26,13 +26,13 @@ import java.lang.annotation.Target;
  * This validator checks that a field is non-null.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -81,7 +81,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -91,7 +91,6 @@ import java.lang.annotation.Target;
  *
  *
  * @author Rainer Hermanns
- * @version $Id$
  */
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredStringValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredStringValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredStringValidator.java
index 7fe64ad..0620ba9 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredStringValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredStringValidator.java
@@ -26,13 +26,13 @@ import java.lang.annotation.Target;
  * This validator checks that a String field is not empty (i.e. non-null with a length > 0).
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -87,7 +87,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ShortRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ShortRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ShortRangeFieldValidator.java
index dfe57ae..8f93196 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ShortRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ShortRangeFieldValidator.java
@@ -27,13 +27,13 @@ import java.lang.annotation.Target;
  * If neither min nor max is set, nothing will be done.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -116,7 +116,7 @@ import java.lang.annotation.Target;
  * <p>The values for min and max must be inserted as String values so that "0" can be handled as a possible value.</p>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/StringLengthFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/StringLengthFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/StringLengthFieldValidator.java
index 6db6175..87d4b31 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/StringLengthFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/StringLengthFieldValidator.java
@@ -27,13 +27,13 @@ import java.lang.annotation.Target;
  * If neither minLength nor maxLength is set, nothing will be done.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -115,7 +115,7 @@ import java.lang.annotation.Target;
  *
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -124,7 +124,6 @@ import java.lang.annotation.Target;
  * </pre>
  *
  * @author Rainer Hermanns
- * @version $Id$
  */
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validation.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validation.java
index 2769b12..5688e1f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validation.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validation.java
@@ -27,13 +27,13 @@ import java.lang.annotation.Target;
  * is no longer necessary.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- *  <p/>The Validation annotation must be applied at Type level.
+ * <p>The Validation annotation must be applied at Type level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -52,7 +52,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <u>An Annotated Interface</u>
  * <pre>
@@ -73,7 +73,7 @@ import java.lang.annotation.Target;
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <u>An Annotated Class</u>
  * <pre>
@@ -124,7 +124,6 @@ import java.lang.annotation.Target;
  *
  * @author Rainer Hermanns
  * @deprecated Since Struts 2.1 because it isn't necessary anymore
- * @version $Id$
  */
 @Target({ElementType.TYPE})
 @Retention(RetentionPolicy.RUNTIME)

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ValidationParameter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ValidationParameter.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ValidationParameter.java
index 1482aed..81390cc 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ValidationParameter.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ValidationParameter.java
@@ -26,13 +26,13 @@ import java.lang.annotation.Target;
  * The ValidationParameter annotation is used as a parameter for CustomValidators.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must embedded into CustomValidator annotations as a parameter.
+ * <p>The annotation must embedded into CustomValidator annotations as a parameter.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -57,7 +57,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validations.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validations.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validations.java
index 5d1eceb..ee587ad 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validations.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validations.java
@@ -26,13 +26,13 @@ import java.lang.annotation.Target;
  * <p>If you want to use several annotations of the same type, these annotations must be nested within the @Validations() annotation.</p>
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>Used at METHOD level.
+ * <p>Used at METHOD level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -112,7 +112,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -149,7 +149,6 @@ import java.lang.annotation.Target;
  *
  * @author jepjep
  * @author Rainer Hermanns
- * @version $Id$
  */
 @Target( { ElementType.METHOD, ElementType.TYPE })
 @Retention(RetentionPolicy.RUNTIME)

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/annotations/VisitorFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/VisitorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/VisitorFieldValidator.java
index 7d42339..6501748 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/VisitorFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/VisitorFieldValidator.java
@@ -33,13 +33,13 @@ import java.lang.annotation.Target;
  * by the validations for the Object message.
  * <!-- END SNIPPET: description -->
  *
- * <p/> <u>Annotation usage:</u>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * <p/>The annotation must be applied at method level.
+ * <p>The annotation must be applied at method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p/> <u>Annotation parameters:</u>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <table class='confluenceTable'>
@@ -94,7 +94,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p/> <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -103,7 +103,6 @@ import java.lang.annotation.Target;
  * </pre>
  *
  * @author Rainer Hermanns
- * @version $Id$
  */
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
@@ -111,7 +110,7 @@ public @interface VisitorFieldValidator {
 
     /**
      * Determines the context to use for validating the Object property.
-     * If not defined, the context of the Action validator is propogated to the Object property validator.
+     * If not defined, the context of the Action validator is propagated to the Object property validator.
      * In the case of Action validator, this context is the Action alias.
      */
     String context() default "";

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConversionErrorFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConversionErrorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConversionErrorFieldValidator.java
index 4fe0ea3..4bfb171 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConversionErrorFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConversionErrorFieldValidator.java
@@ -27,7 +27,7 @@ import java.util.Map;
  * <!-- START SNIPPET: javadoc -->
  * Field Validator that checks if a conversion error occurred for this field.
  * <!-- END SNIPPET: javadoc -->
- * <p/>
+ *
  * <!-- START SNIPPET: parameters -->
  * <ul>
  *     <li>fieldName - The field name this validator is validating. Required if using Plain-Validator Syntax otherwise not required</li>
@@ -53,8 +53,6 @@ import java.util.Map;
  *
  * @author Jason Carreira
  * @author tm_jee
- * 
- * @version $Date $Id$
  */
 public class ConversionErrorFieldValidator extends RepopulateConversionErrorFieldValidatorSupport {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
index 572d307..cae4a6c 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
@@ -30,8 +30,6 @@ import java.util.Date;
  *
  * <!-- END SNIPPET: javadoc -->
  *
- * <p/>
- *
  * <!-- START SNIPPET: parameters -->
  * <ul>
  * 		<li>fieldName - The field name this validator is validating. Required if using Plain-Validator Syntax otherwise not required</li>
@@ -84,7 +82,6 @@ import java.util.Date;
  *
  *
  * @author Jason Carreira
- * @version $Date$ $Id$
  */
 public final class DateRangeFieldValidator extends RangeValidatorSupport<Date> {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/validators/ExpressionValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ExpressionValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ExpressionValidator.java
index d7f129b..6e59af2 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ExpressionValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ExpressionValidator.java
@@ -21,8 +21,7 @@ import com.opensymphony.xwork2.validator.ValidationException;
  * <!-- START SNIPPET: javadoc -->
  * A Non-Field Level validator that validates based on regular expression supplied.
  * <!-- END SNIPPET: javadoc -->
- * <p/>
- * 
+ *
  * <!-- START SNIPPET: parameters -->
  * <ul>
  * 	 <li>expression - the Ognl expression to be evaluated against the stack (Must evaluate to a Boolean)</li>

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java
index 197314b..12dd7c5 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java
@@ -22,8 +22,7 @@ import com.opensymphony.xwork2.validator.ValidationException;
  * <!-- START SNIPPET: javadoc -->
  * Validates a field using an OGNL expression.
  * <!-- END SNIPPET: javadoc -->
- * <p/>
- * 
+ *
  * <!-- START SNIPPET: parameters -->
  * <ul>
  *    <li>fieldName - The field name this validator is validating. Required if using Plain-Validator Syntax otherwise not required</li>
@@ -53,10 +52,6 @@ import com.opensymphony.xwork2.validator.ValidationException;
  *    &lt;/vaidators&gt;
  * <!-- END SNIPPET: example -->
  * </pre>
- * 
- *
- * @author $Author$
- * @version $Revision$
  */
 public class FieldExpressionValidator extends FieldValidatorSupport {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/validators/RepopulateConversionErrorFieldValidatorSupport.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/RepopulateConversionErrorFieldValidatorSupport.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/RepopulateConversionErrorFieldValidatorSupport.java
index 6dcb60f..af0edf3 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/RepopulateConversionErrorFieldValidatorSupport.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/RepopulateConversionErrorFieldValidatorSupport.java
@@ -28,33 +28,30 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 
 /**
- *
- *
+ * <p>
  * An abstract base class that adds in the capability to populate the stack with
  * a fake parameter map when a conversion error has occurred and the 'repopulateField'
  * property is set to "true".
- *
- * <p/>
- *
+ * </p>
  *
  * <!-- START SNIPPET: javadoc -->
- *
+ * <p>
  * The capability of auto-repopulating the stack with a fake parameter map when
  * a conversion error has occurred can be done with 'repopulateField' property
  * set to "true".
+ * </p>
  *
- * <p/>
- *
- * This is typically usefull when one wants to repopulate the field with the original value
+ * <p>
+ * This is typically useful when one wants to repopulate the field with the original value
  * when a conversion error occurred. Eg. with a textfield that only allows an Integer
  * (the action class have an Integer field declared), upon conversion error, the incorrectly
  * entered integer (maybe a text 'one') will not appear when dispatched back. With 'repopulateField'
- * porperty set to true, it will, meaning the textfield will have 'one' as its value
+ * property set to true, it will, meaning the textfield will have 'one' as its value
  * upon conversion error.
+ * </p>
  *
  * <!-- END SNIPPET: javadoc -->
- *
- * <p/>
+
  *
  * <pre>
  * <!-- START SNIPPET: exampleJspPage -->
@@ -130,7 +127,6 @@ import java.util.Map;
  * </pre>
  *
  * @author tm_jee
- * @version $Date$ $Id$
  */
 public abstract class RepopulateConversionErrorFieldValidatorSupport extends FieldValidatorSupport {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredFieldValidator.java
index 6b103f2..dffd37a 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredFieldValidator.java
@@ -22,16 +22,13 @@ import com.opensymphony.xwork2.validator.ValidationException;
  * <!-- START SNIPPET: javadoc -->
  * RequiredFieldValidator checks if the specified field is not null.
  * <!-- END SNIPPET: javadoc -->
- * <p/>
- * 
- * 
+ *
  * <!-- START SNIPPET: parameters -->
  * <ul>
  * 		<li>fieldName - field name if plain-validator syntax is used, not needed if field-validator syntax is used</li>
  * </ul>
  * <!-- END SNIPPET: parameters -->
- * 
- * 
+ *
  * <pre>
  * <!-- START SNIPPET: example -->
  * 	   &lt;validators&gt;
@@ -57,7 +54,6 @@ import com.opensymphony.xwork2.validator.ValidationException;
  * 
  *
  * @author rainerh
- * @version $Revision$
  */
 public class RequiredFieldValidator extends FieldValidatorSupport {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidator.java
index 7b2cbfd..1044aed 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidator.java
@@ -24,7 +24,6 @@ import com.opensymphony.xwork2.validator.ValidationException;
  * (i.e. it isn't "").  The "trim" parameter determines whether it will {@link String#trim() trim}
  * the String before performing the length check.  If unspecified, the String will be trimmed.
  * <!-- END SNIPPET: javadoc -->
- * <p/>
  *
  * <!-- START SNIPPET: parameters -->
  * <ul>
@@ -68,7 +67,6 @@ import com.opensymphony.xwork2.validator.ValidationException;
  * </pre>
  * 
  * @author rainerh
- * @version $Date$ $Id$
  */
 public class RequiredStringValidator extends FieldValidatorSupport {
 


Mime
View raw message