http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java index a46cf34..34b6920 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java @@ -27,12 +27,13 @@ import java.util.Set; /** * <!-- START SNIPPET: javadoc --> - * + * + * <p> * MethodFilterInterceptor is an abstract <code>Interceptor</code> used as * a base class for interceptors that will filter execution based on method * names according to specified included/excluded method lists. * - * <p/> + * </p> * * Settable parameters are as follows: * @@ -41,13 +42,13 @@ import java.util.Set; * <li>includeMethods - method names to be included in interceptor processing</li> * </ul> * - * <p/> + * <p> * * <b>NOTE:</b> If method name are available in both includeMethods and * excludeMethods, it will be considered as an included method: * includeMethods takes precedence over excludeMethods. * - * <p/> + * </p> * * Interceptors that extends this capability include: *
http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/interceptor/ModelDrivenInterceptor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/ModelDrivenInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/ModelDrivenInterceptor.java index 06a91b5..afc6edc 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/ModelDrivenInterceptor.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/ModelDrivenInterceptor.java @@ -26,15 +26,16 @@ import com.opensymphony.xwork2.util.ValueStack; * * Watches for {@link ModelDriven} actions and adds the action's model on to the value stack. * - * <p/> <b>Note:</b> The ModelDrivenInterceptor must come before the both {@link StaticParametersInterceptor} and + * <p> <b>Note:</b> The ModelDrivenInterceptor must come before the both {@link StaticParametersInterceptor} and * {@link ParametersInterceptor} if you want the parameters to be applied to the model. - * - * <p/> <b>Note:</b> The ModelDrivenInterceptor will only push the model into the stack when the + * </p> + * <p> <b>Note:</b> The ModelDrivenInterceptor will only push the model into the stack when the * model is not null, else it will be ignored. + * </p> * * <!-- END SNIPPET: description --> * - * <p/> <u>Interceptor parameters:</u> + * <p><u>Interceptor parameters:</u></p> * * <!-- START SNIPPET: parameters --> * @@ -49,9 +50,7 @@ import com.opensymphony.xwork2.util.ValueStack; * * <!-- END SNIPPET: parameters --> * - * <p/> <u>Extending the interceptor:</u> - * - * <p/> + * <p><u>Extending the interceptor:</u></p> * * <!-- START SNIPPET: extending --> * @@ -59,14 +58,14 @@ import com.opensymphony.xwork2.util.ValueStack; * * <!-- END SNIPPET: extending --> * - * <p/> <u>Example code:</u> + * <p><u>Example code:</u></p> * * <pre> * <!-- START SNIPPET: example --> - * <action name="someAction" class="com.examples.SomeAction"> - * <interceptor-ref name="modelDriven"/> - * <interceptor-ref name="basicStack"/> - * <result name="success">good_result.ftl</result> + * <action name="someAction" class="com.examples.SomeAction"> + * <interceptor-ref name="modelDriven"/> + * <interceptor-ref name="basicStack"/> + * <result name="success">good_result.ftl</result> * </action> * <!-- END SNIPPET: example --> * </pre> http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/interceptor/NoParameters.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/NoParameters.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/NoParameters.java index 8db8fbc..2de46b1 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/NoParameters.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/NoParameters.java @@ -17,14 +17,16 @@ package com.opensymphony.xwork2.interceptor; /** - * Marker interface to incidate no auto setting of parameters. - * <p/> + * Marker interface to indicate no auto setting of parameters. + * + * <p> * This marker interface should be implemented by actions that do not want any * request parameters set on them automatically (by the ParametersInterceptor). * This may be useful if one is using the action tag and want to supply * the parameters to the action manually using the param tag. * It may also be useful if one for security reasons wants to make sure that * parameters cannot be set by malicious users. + * </p> * * @author Dick Zetterberg ([email protected]) */ http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java index 865eeb8..eac4d8b 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java @@ -241,9 +241,10 @@ public class ParametersInterceptor extends MethodFilterInterceptor { * * @param ac The action context * @param newParams The parameter map to apply - * <p/> + * <p> * In this class this is a no-op, since the parameters were fetched from the same location. * In subclasses both retrieveParameters() and addParametersToContext() should be overridden. + * </p> */ protected void addParametersToContext(ActionContext ac, Map<String, Object> newParams) { } @@ -468,9 +469,10 @@ public class ParametersInterceptor extends MethodFilterInterceptor { /** * Sets a comma-delimited list of regular expressions to match * parameters that are allowed in the parameter map (aka whitelist). - * <p/> + * <p> * Don't change the default unless you know what you are doing in terms * of security implications. + * </p> * * @param commaDelim A comma-delimited list of regular expressions */ http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java index 5a6e5a1..bbf8277 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java @@ -23,16 +23,16 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** + * <p> * A utility class for invoking prefixed methods in action class. * * Interceptors that made use of this class are: + * </p> * <ul> * <li>DefaultWorkflowInterceptor</li> * <li>PrepareInterceptor</li> * </ul> - * - * <p/> - * + * * * <!-- START SNIPPET: javadocDefaultWorkflowInterceptor --> * * <b>In DefaultWorkflowInterceptor</b> @@ -70,37 +70,45 @@ public class PrefixMethodInvocationUtil { private static final Class[] EMPTY_CLASS_ARRAY = new Class[0]; /** + * <p> * This method will prefix <code>actionInvocation</code>'s <code>ActionProxy</code>'s * <code>method</code> with <code>prefixes</code> before invoking the prefixed method. * Order of the <code>prefixes</code> is important, as this method will return once * a prefixed method is found in the action class. - * - * <p/> - * + * </p> + * + * <p> * For example, with + * </p> + * * <pre> * invokePrefixMethod(actionInvocation, new String[] { "prepare", "prepareDo" }); * </pre> - * + * + * <p> * Assuming <code>actionInvocation.getProxy(),getMethod()</code> returns "submit", * the order of invocation would be as follows:- + * </p> + * * <ol> * <li>prepareSubmit()</li> * <li>prepareDoSubmit()</li> * </ol> - * + * + * <p> * If <code>prepareSubmit()</code> exists, it will be invoked and this method * will return, <code>prepareDoSubmit()</code> will NOT be invoked. - * - * <p/> - * + * </p> + * + * <p> * On the other hand, if <code>prepareDoSubmit()</code> does not exists, and * <code>prepareDoSubmit()</code> exists, it will be invoked. - * - * <p/> - * + * </p> + * + * <p> * If none of those two methods exists, nothing will be invoked. - * + * </p> + * * @param actionInvocation the action invocation * @param prefixes prefixes for method names * @throws InvocationTargetException is thrown if invocation of a method failed. http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/interceptor/PrepareInterceptor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/PrepareInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/PrepareInterceptor.java index 6a327c3..e1d0b52 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/PrepareInterceptor.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/PrepareInterceptor.java @@ -31,7 +31,8 @@ import java.lang.reflect.InvocationTargetException; * {@link Preparable}. This interceptor is very useful for any situation where * you need to ensure some logic runs before the actual execute method runs. * - * <p/> A typical use of this is to run some logic to load an object from the + * <p> + * A typical use of this is to run some logic to load an object from the * database so that when parameters are set they can be set on this object. For * example, suppose you have a User object with two properties: <i>id</i> and * <i>name</i>. Provided that the params interceptor is called twice (once @@ -39,21 +40,24 @@ import java.lang.reflect.InvocationTargetException; * the id property, and then when the second params interceptor is called the * parameter <i>user.name</i> will be set, as desired, on the actual object * loaded from the database. See the example for more info. - * - * <p/> + * </p> + * <p> * <b>Note:</b> Since XWork 2.0.2, this interceptor extends {@link MethodFilterInterceptor}, therefore being * able to deal with excludeMethods / includeMethods parameters. See [Workflow Interceptor] * (class {@link DefaultWorkflowInterceptor}) for documentation and examples on how to use this feature. + * </p> * - * <p/><b>Update</b>: Added logic to execute a prepare{MethodName} and conditionally + * <p> + * <b>Update</b>: Added logic to execute a prepare{MethodName} and conditionally * the a general prepare() Method, depending on the 'alwaysInvokePrepare' parameter/property * which is by default true. This allows us to run some logic based on the method * name we specify in the {@link com.opensymphony.xwork2.ActionProxy}. For example, you can specify a * prepareInput() method that will be run before the invocation of the input method. + * </p> * * <!-- END SNIPPET: description --> * - * <p/> <u>Interceptor parameters:</u> + * <p><u>Interceptor parameters:</u></p> * * <!-- START SNIPPET: parameters --> * @@ -66,9 +70,7 @@ import java.lang.reflect.InvocationTargetException; * * <!-- END SNIPPET: parameters --> * - * <p/> <u>Extending the interceptor:</u> - * - * <p/> + * <p><u>Extending the interceptor:</u></p> * * <!-- START SNIPPET: extending --> * @@ -76,7 +78,7 @@ import java.lang.reflect.InvocationTargetException; * * <!-- END SNIPPET: extending --> * - * <p/> <u>Example code:</u> + * <p> <u>Example code:</u></p> * * <pre> * <!-- START SNIPPET: example --> @@ -107,9 +109,10 @@ public class PrepareInterceptor extends MethodFilterInterceptor { private boolean firstCallPrepareDo = false; /** - * Sets if the <code>preapare</code> method should always be executed. - * <p/> + * Sets if the <code>prepare</code> method should always be executed. + * <p> * Default is <tt>true</tt>. + * </p> * * @param alwaysInvokePrepare if <code>prepare</code> should always be executed or not. */ @@ -119,9 +122,9 @@ public class PrepareInterceptor extends MethodFilterInterceptor { /** * Sets if the <code>prepareDoXXX</code> method should be called first - * <p/> + * <p> * Default is <tt>false</tt> for backward compatibility - * + * </p> * @param firstCallPrepareDo if <code>prepareDoXXX</code> should be called first */ public void setFirstCallPrepareDo(String firstCallPrepareDo) { http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptor.java index 9d32fbe..858a33e 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptor.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptor.java @@ -30,12 +30,12 @@ import java.util.Map; * * An interceptor that enables scoped model-driven actions. * - * <p/>This interceptor only activates on actions that implement the {@link ScopedModelDriven} interface. If - * detected, it will retrieve the model class from the configured scope, then provide it to the Action. + * <p>This interceptor only activates on actions that implement the {@link ScopedModelDriven} interface. If + * detected, it will retrieve the model class from the configured scope, then provide it to the Action.</p> * * <!-- END SNIPPET: description --> * - * <p/> <u>Interceptor parameters:</u> + * <p><u>Interceptor parameters:</u></p> * * <!-- START SNIPPET: parameters --> * @@ -51,9 +51,7 @@ import java.util.Map; * * <!-- END SNIPPET: parameters --> * - * <p/> <u>Extending the interceptor:</u> - * - * <p/> + * <p><u>Extending the interceptor:</u></p> * * <!-- START SNIPPET: extending --> * @@ -61,7 +59,7 @@ import java.util.Map; * * <!-- END SNIPPET: extending --> * - * <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/interceptor/StaticParametersInterceptor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java index e47af30..934dd54 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java @@ -39,11 +39,11 @@ import java.util.TreeMap; * implements {@link Parameterizable}, a map of the static parameters will be also be passed directly to the action. * The static params will be added to the request params map, unless "merge" is set to false. * - * <p/> Parameters are typically defined with <param> elements within xwork.xml. + * <p> Parameters are typically defined with <param> elements within xwork.xml.</p> * * <!-- END SNIPPET: description --> * - * <p/> <u>Interceptor parameters:</u> + * <p><u>Interceptor parameters:</u></p> * * <!-- START SNIPPET: parameters --> * @@ -55,15 +55,15 @@ import java.util.TreeMap; * * <!-- END SNIPPET: parameters --> * - * <p/> <u>Extending the interceptor:</u> + * <p><u>Extending the interceptor:</u></p> * * <!-- START SNIPPET: extending --> * - * <p/>There are no extension points to this interceptor. + * <p>There are no extension points to this interceptor.</p> * * <!-- END SNIPPET: extending --> * - * <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/interceptor/ValidationAware.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/ValidationAware.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/ValidationAware.java index 5aa19b6..53c72f1 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/ValidationAware.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/ValidationAware.java @@ -113,8 +113,6 @@ public interface ValidationAware { /** * Checks whether there are any action errors or field errors. - * <p/> - * <b>Note</b>: that this does not have the same meaning as in WW 1.x. * * @return <code>(hasActionErrors() || hasFieldErrors())</code> */ http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/After.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/After.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/After.java index 3fc2fcd..978a49a 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/After.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/After.java @@ -26,14 +26,14 @@ import java.lang.annotation.Target; * executed. Return value is ignored. * <!-- END SNIPPET: description --> * - * <p/> <u>Annotation usage:</u> + * <p><u>Annotation usage:</u></p> * * <!-- START SNIPPET: usage --> * The After annotation can be applied at method level. * * <!-- 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> * * <pre> * <!-- START SNIPPET: example --> http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationParameterFilterIntereptor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationParameterFilterIntereptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationParameterFilterIntereptor.java index f978e46..327d2c6 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationParameterFilterIntereptor.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationParameterFilterIntereptor.java @@ -17,13 +17,16 @@ import java.util.Map; /** * Annotation based version of {@link ParameterFilterInterceptor}. - * <p/> + * + * <p> * This {@link Interceptor} must be placed in the stack before the {@link ParametersInterceptor} * When a parameter matches a field that is marked {@link Blocked} then it is removed from * the parameter map. - * <p/> + * </p> + * <p> * If an {@link Action} class is marked with {@link BlockByDefault} then all parameters are * removed unless a field on the Action exists and is marked with {@link Allowed} + * </p> * * @author martin.gilday */ http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationWorkflowInterceptor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationWorkflowInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationWorkflowInterceptor.java index 665ed1c..dbe4315 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationWorkflowInterceptor.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationWorkflowInterceptor.java @@ -30,50 +30,49 @@ import java.util.List; /** * <!-- START SNIPPET: javadoc --> * <p>Invokes any annotated methods on the action. Specifically, it supports the following - * annotations: + * annotations:</p> * <ul> * <li> @{@link Before} - will be invoked before the action method. If the returned value is not null, it is * returned as the action result code</li> * <li> @{@link BeforeResult} - will be invoked after the action method but before the result execution</li> * <li> @{@link After} - will be invoked after the action method and result execution</li> * </ul> - * </p> - * <p/> + * * <p>There can be multiple methods marked with the same annotations, but the order of their execution * is not guaranteed. However, the annotated methods on the superclass chain are guaranteed to be invoked before the * annotated method in the current class in the case of a {@link Before} annotations and after, if the annotations is * {@link After}.</p> * <!-- END SNIPPET: javadoc --> - * <p/> + * * <pre> * <!-- START SNIPPET: javacode --> * public class BaseAnnotatedAction { * protected String log = ""; - * <p/> + * * @Before * public String baseBefore() { * log = log + "baseBefore-"; * return null; * } * } - * <p/> + * * public class AnnotatedAction extends BaseAnnotatedAction { * @Before * public String before() { * log = log + "before"; * return null; * } - * <p/> + * * public String execute() { * log = log + "-execute"; * return Action.SUCCESS; * } - * <p/> + * * @BeforeResult * public void beforeResult() throws Exception { * log = log +"-beforeResult"; * } - * <p/> + * * @After * public void after() { * log = log + "-after"; @@ -81,13 +80,13 @@ import java.util.List; * } * <!-- END SNIPPET: javacode --> * </pre> - * <p/> + * * <!-- START SNIPPET: example --> * <p>With the interceptor applied and the action executed on <code>AnnotatedAction</code> the log * instance variable will contain <code>baseBefore-before-execute-beforeResult-after</code>.</p> * <!-- END SNIPPET: example --> - * <p/> - * <p/>Configure a stack in xwork.xml that replaces the PrepareInterceptor with the AnnotationWorkflowInterceptor: + * + * <p>Configure a stack in xwork.xml that replaces the PrepareInterceptor with the AnnotationWorkflowInterceptor:</p> * <pre> * <!-- START SNIPPET: stack --> * <interceptor-stack name="annotatedStack"> http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/Before.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/Before.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/Before.java index cb0e555..fb546de 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/Before.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/Before.java @@ -25,14 +25,14 @@ import java.lang.annotation.Target; * Marks a action method that needs to be executed before the main action method. * <!-- END SNIPPET: description --> * - * <p/> <u>Annotation usage:</u> + * <p><u>Annotation usage:</u></p> * * <!-- START SNIPPET: usage --> * The Before annotation can be applied at method level. * * <!-- END SNIPPET: usage --> * - * <p/> <u>Annotation parameters:</u> + * <p><u>Annotation parameters:</u></p> * * <!-- START SNIPPET: parameters --> * <table class='confluenceTable'> @@ -51,7 +51,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/interceptor/annotations/BeforeResult.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/BeforeResult.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/BeforeResult.java index faeb400..44825bd 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/BeforeResult.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/BeforeResult.java @@ -25,14 +25,14 @@ import java.lang.annotation.Target; * Marks a action method that needs to be executed before the result. Return value is ignored. * <!-- END SNIPPET: description --> * - * <p/> <u>Annotation usage:</u> + * <p><u>Annotation usage:</u></p> * * <!-- START SNIPPET: usage --> * The BeforeResult annotation can be applied at method level. * * <!-- END SNIPPET: usage --> * - * <p/> <u>Annotation parameters:</u> + * <p><u>Annotation parameters:</u></p> * * <!-- START SNIPPET: parameters --> * <table class='confluenceTable'> @@ -51,7 +51,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/interceptor/annotations/InputConfig.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/InputConfig.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/InputConfig.java index 5d70744..33f7ab1 100644 --- a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/InputConfig.java +++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/InputConfig.java @@ -27,14 +27,14 @@ import com.opensymphony.xwork2.Action; * Marks a action method that if it's not validated by ValidationInterceptor then execute input method or input result. * <!-- END SNIPPET: description --> * - * <p/> <u>Annotation usage:</u> + * <p><u>Annotation usage:</u></p> * * <!-- START SNIPPET: usage --> * The InputConfig annotation can be applied at method level. * * <!-- END SNIPPET: usage --> * - * <p/> <u>Annotation parameters:</u> + * <p><u>Annotation parameters:</u></p> * * <!-- START SNIPPET: parameters --> * <table class='confluenceTable'> @@ -59,7 +59,7 @@ import com.opensymphony.xwork2.Action; * </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/spring/SpringObjectFactory.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java b/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java index 6475957..bc30d57 100644 --- a/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java +++ b/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java @@ -32,10 +32,14 @@ import java.util.HashMap; import java.util.Map; /** + * <p> * Simple implementation of the ObjectFactory that makes use of Spring's application context if one has been configured, - * before falling back on the default mechanism of instantiating a new class using the class name. <p/> In order to use - * this class in your application, you will need to instantiate a copy of this class and set it as XWork's ObjectFactory + * before falling back on the default mechanism of instantiating a new class using the class name. + * </p> + * <p> + * In order to use this class in your application, you will need to instantiate a copy of this class and set it as XWork's ObjectFactory * before the xwork.xml file is parsed. In a servlet environment, this could be done using a ServletContextListener. + * </p> * * @author Simon Stewart ([email protected]) */ http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java index fe02ca5..7c11b85 100644 --- a/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java +++ b/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java @@ -77,16 +77,20 @@ public class ActionAutowiringInterceptor extends AbstractInterceptor implements } /** + * <p> * Looks for the <code>ApplicationContext</code> under the attribute that the Spring listener sets in * the servlet context. The configuration is done the first time here instead of in init() since the * <code>ActionContext</code> is not available during <code>Interceptor</code> initialization. - * <p/> + * </p> + * + * <p> * Autowires the action to Spring beans and places the <code>ApplicationContext</code> * on the <code>ActionContext</code> - * <p/> - * TODO Should this check to see if the <code>SpringObjectFactory</code> has already been configured - * instead of instantiating a new one? Or is there a good reason for the interceptor to have it's own - * factory? + * </p> + * + * <p> + * TODO: Should this check to see if the <code>SpringObjectFactory</code> has already been configured instead of instantiating a new one? Or is there a good reason for the interceptor to have it's own factory? + * </p> * * @param invocation * @throws Exception http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java b/core/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java index 919f5af..46cfe9f 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java @@ -24,10 +24,10 @@ import java.util.*; /** * This class is extremely useful for loading resources and classes in a fault tolerant manner * that works across different applications servers. - * <p/> + * <p> * It has come out of many months of frustrating use of multiple application servers at Atlassian, * please don't change things unless you're sure they're not going to break in one server or another! - * + * </p> */ public class ClassLoaderUtil { @@ -73,8 +73,10 @@ public class ClassLoaderUtil { /** * Load a given resource. - * <p/> + * <p> * This method will try to load the resource using the following methods (in order): + * </p> + * * <ul> * <li>From {@link Thread#getContextClassLoader() Thread.currentThread().getContextClassLoader()} * <li>From {@link Class#getClassLoader() ClassLoaderUtil.class.getClassLoader()} @@ -125,14 +127,19 @@ public class ClassLoaderUtil { } /** + * <p> * Load a class with a given name. - * <p/> + * </p> + * + * <p> * It will try to load the class in the following order: + * </p> + * * <ul> - * <li>From {@link Thread#getContextClassLoader() Thread.currentThread().getContextClassLoader()} - * <li>Using the basic {@link Class#forName(java.lang.String) } - * <li>From {@link Class#getClassLoader() ClassLoaderUtil.class.getClassLoader()} - * <li>From the {@link Class#getClassLoader() callingClass.getClassLoader() } + * <li>From {@link Thread#getContextClassLoader() Thread.currentThread().getContextClassLoader()} + * <li>Using the basic {@link Class#forName(java.lang.String) } + * <li>From {@link Class#getClassLoader() ClassLoaderUtil.class.getClassLoader()} + * <li>From the {@link Class#getClassLoader() callingClass.getClassLoader() } * </ul> * * @param className The name of the class to load http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/CreateIfNull.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/CreateIfNull.java b/core/src/main/java/com/opensymphony/xwork2/util/CreateIfNull.java index 050ec2a..0ab63b6 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/CreateIfNull.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/CreateIfNull.java @@ -23,15 +23,15 @@ import java.lang.annotation.Target; /** * <!-- START SNIPPET: description --> - * <p/>Sets the CreateIfNull for type conversion. + * <p>Sets the CreateIfNull for type conversion.</p> * <!-- END SNIPPET: description --> * - * <p/> <u>Annotation usage:</u> + * <p><u>Annotation usage:</u></p> * * <!-- START SNIPPET: usage --> - * <p/>The CreateIfNull annotation must be applied at field or method level. + * <p>The CreateIfNull annotation must be applied at field or method level.</p> * <!-- END SNIPPET: usage --> - * <p/> <u>Annotation parameters:</u> + * <p><u>Annotation parameters:</u></p> * * <!-- START SNIPPET: parameters --> * <table> @@ -54,7 +54,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 --> * @CreateIfNull( value = true ) @@ -63,7 +63,6 @@ import java.lang.annotation.Target; * </pre> * * @author Rainer Hermanns - * @version $Id$ */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.METHOD}) http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/Element.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/Element.java b/core/src/main/java/com/opensymphony/xwork2/util/Element.java index 30903d2..de66d1f 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/Element.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/Element.java @@ -23,15 +23,15 @@ import java.lang.annotation.Target; /** * <!-- START SNIPPET: description --> - * <p/>Sets the Element for type conversion. + * <p>Sets the Element for type conversion.</p> * <!-- END SNIPPET: description --> * - * <p/> <u>Annotation usage:</u> + * <p><u>Annotation usage:</u></p> * * <!-- START SNIPPET: usage --> - * <p/>The Element annotation must be applied at field or method level. + * <p>The Element annotation must be applied at field or method level.</p> * <!-- END SNIPPET: usage --> - * <p/> <u>Annotation parameters:</u> + * <p><u>Annotation parameters:</u></p> * * <!-- START SNIPPET: parameters --> * <table> @@ -54,7 +54,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 --> * // The key property for User objects within the users collection is the <code>userName</code> attribute. @@ -67,7 +67,6 @@ import java.lang.annotation.Target; * </pre> * * @author Rainer Hermanns - * @version $Id$ */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.METHOD}) http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/Key.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/Key.java b/core/src/main/java/com/opensymphony/xwork2/util/Key.java index c1b0fc8..5d2fb6d 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/Key.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/Key.java @@ -23,15 +23,15 @@ import java.lang.annotation.Target; /** * <!-- START SNIPPET: description --> - * <p/>Sets the Key for type conversion. + * <p>Sets the Key for type conversion.</p> * <!-- END SNIPPET: description --> * - * <p/> <u>Annotation usage:</u> + * <p><u>Annotation usage:</u></p> * * <!-- START SNIPPET: usage --> - * <p/>The Key annotation must be applied at field or method level. + * <p>The Key annotation must be applied at field or method level.</p> * <!-- END SNIPPET: usage --> - * <p/> <u>Annotation parameters:</u> + * <p><u>Annotation parameters:</u></p> * * <!-- START SNIPPET: parameters --> * <table> @@ -54,7 +54,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 --> * // The key property for User objects within the users collection is the <code>userName</code> attribute. @@ -64,7 +64,6 @@ import java.lang.annotation.Target; * </pre> * * @author Rainer Hermanns - * @version $Id$ */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.METHOD}) http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/KeyProperty.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/KeyProperty.java b/core/src/main/java/com/opensymphony/xwork2/util/KeyProperty.java index 8832bee..396af47 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/KeyProperty.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/KeyProperty.java @@ -23,16 +23,16 @@ import java.lang.annotation.Target; /** * <!-- START SNIPPET: description --> - * <p/>Sets the KeyProperty for type conversion. + * <p>Sets the KeyProperty for type conversion.</p> * <!-- END SNIPPET: description --> * - * <p/> <u>Annotation usage:</u> + * <p><u>Annotation usage:</u></p> * * <!-- START SNIPPET: usage --> - * <p/>The KeyProperty annotation must be applied at field or method level. - * <p/>This annotation should be used with Generic types, if the key property of the key element needs to be specified. + * <p>The KeyProperty annotation must be applied at field or method level.</p> + * <p>This annotation should be used with Generic types, if the key property of the key element needs to be specified.</p> * <!-- END SNIPPET: usage --> - * <p/> <u>Annotation parameters:</u> + * <p><u>Annotation parameters:</u></p> * * <!-- START SNIPPET: parameters --> * <table> @@ -55,7 +55,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 --> * // The key property for User objects within the users collection is the <code>userName</code> attribute. http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java b/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java index 2d9afa2..2372499 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java @@ -42,10 +42,10 @@ import java.util.concurrent.ConcurrentMap; /** * Provides support for localization in XWork. - * <p/> + * * <!-- START SNIPPET: searchorder --> - * Resource bundles are searched in the following order:<p/> - * <p/> + * <p>Resource bundles are searched in the following order:</p> + * * <ol> * <li>ActionClass.properties</li> * <li>Interface.properties (every interface and sub-interface)</li> @@ -55,11 +55,11 @@ import java.util.concurrent.ConcurrentMap; * <li>search up the i18n message key hierarchy itself</li> * <li>global resource properties</li> * </ol> - * <p/> + * * <!-- END SNIPPET: searchorder --> - * <p/> + * * <!-- START SNIPPET: packagenote --> - * To clarify #5, while traversing the package hierarchy, Struts 2 will look for a file package.properties:<p/> + * <p>To clarify #5, while traversing the package hierarchy, Struts 2 will look for a file package.properties:</p> * com/<br/> * acme/<br/> * package.properties<br/> @@ -67,22 +67,22 @@ import java.util.concurrent.ConcurrentMap; * package.properties<br/> * FooAction.java<br/> * FooAction.properties<br/> - * <p/> + * <p> * If FooAction.properties does not exist, com/acme/action/package.properties will be searched for, if * not found com/acme/package.properties, if not found com/package.properties, etc. - * <p/> + * </p> * <!-- END SNIPPET: packagenote --> - * <p/> + * * <!-- START SNIPPET: globalresource --> - * A global resource bundle could be specified programatically, as well as the locale. - * <p/> + * <p> + * A global resource bundle could be specified programmatically, as well as the locale. + * </p> * <!-- END SNIPPET: globalresource --> * * @author Jason Carreira * @author Mark Woon * @author Rainer Hermanns * @author tm_jee - * @version $Date$ $Id$ */ public class LocalizedTextUtil { @@ -132,8 +132,9 @@ public class LocalizedTextUtil { /** * Add's the bundle to the internal list of default bundles. - * <p/> + * <p> * If the bundle already exists in the list it will be readded. + * </p> * * @param resourceBundleName the name of the bundle to add. */ @@ -250,9 +251,10 @@ public class LocalizedTextUtil { } /** - * Finds the given resorce bundle by it's name. - * <p/> + * Finds the given resource bundle by it's name. + * <p> * Will use <code>Thread.currentThread().getContextClassLoader()</code> as the classloader. + * </p> * * @param aBundleName the name of the bundle (usually it's FQN classname). * @param locale the locale. @@ -328,10 +330,12 @@ public class LocalizedTextUtil { } /** + * <p> * Finds a localized text message for the given key, aTextName. Both the key and the message * itself is evaluated as required. The following algorithm is used to find the requested * message: - * <p/> + * </p> + * * <ol> * <li>Look for message in aClass' class hierarchy. * <ol> @@ -350,19 +354,25 @@ public class LocalizedTextUtil { * <li>If still not found, look for the message in the default resource bundles.</li> * <li>Return defaultMessage</li> * </ol> - * <p/> + * + * <p> * When looking for the message, if the key indexes a collection (e.g. user.phone[0]) and a * message for that specific key cannot be found, the general form will also be looked up * (i.e. user.phone[*]). - * <p/> + * </p> + * + * <p> * If a message is found, it will also be interpolated. Anything within <code>${...}</code> * will be treated as an OGNL expression and evaluated as such. + * </p> * * @param aClass the class whose name to use as the start point for the search * @param aTextName the key to find the text message for * @param locale the locale the message should be for * @param defaultMessage the message to be returned if no text message can be found in any * resource bundle + * @param args arguments + * resource bundle * @return the localized text, or null if none can be found and no defaultMessage is provided */ public static String findText(Class aClass, String aTextName, Locale locale, String defaultMessage, Object[] args) { @@ -372,10 +382,12 @@ public class LocalizedTextUtil { } /** + * <p> * Finds a localized text message for the given key, aTextName. Both the key and the message * itself is evaluated as required. The following algorithm is used to find the requested * message: - * <p/> + * </p> + * * <ol> * <li>Look for message in aClass' class hierarchy. * <ol> @@ -394,21 +406,28 @@ public class LocalizedTextUtil { * <li>If still not found, look for the message in the default resource bundles.</li> * <li>Return defaultMessage</li> * </ol> - * <p/> + * + * <p> * When looking for the message, if the key indexes a collection (e.g. user.phone[0]) and a * message for that specific key cannot be found, the general form will also be looked up * (i.e. user.phone[*]). - * <p/> + * </p> + * + * <p> * If a message is found, it will also be interpolated. Anything within <code>${...}</code> * will be treated as an OGNL expression and evaluated as such. - * <p/> + * </p> + * + * <p> * If a message is <b>not</b> found a WARN log will be logged. + * </p> * * @param aClass the class whose name to use as the start point for the search * @param aTextName the key to find the text message for * @param locale the locale the message should be for * @param defaultMessage the message to be returned if no text message can be found in any * resource bundle + * @param args arguments * @param valueStack the value stack to use to evaluate expressions instead of the * one in the ActionContext ThreadLocal * @return the localized text, or null if none can be found and no defaultMessage is provided @@ -581,11 +600,15 @@ public class LocalizedTextUtil { } /** + * <p> * Finds a localized text message for the given key, aTextName, in the specified resource bundle * with aTextName as the default message. - * <p/> + * </p> + * + * <p> * If a message is found, it will also be interpolated. Anything within <code>${...}</code> * will be treated as an OGNL expression and evaluated as such. + * </p> * * @see #findText(java.util.ResourceBundle, String, java.util.Locale, String, Object[]) */ @@ -594,13 +617,19 @@ public class LocalizedTextUtil { } /** + * <p> * Finds a localized text message for the given key, aTextName, in the specified resource * bundle. - * <p/> + * </p> + * + * <p> * If a message is found, it will also be interpolated. Anything within <code>${...}</code> * will be treated as an OGNL expression and evaluated as such. - * <p/> + * </p> + * + * <p> * If a message is <b>not</b> found a WARN log will be logged. + * </p> * * @param bundle the bundle * @param aTextName the key @@ -614,13 +643,19 @@ public class LocalizedTextUtil { } /** + * <p> * Finds a localized text message for the given key, aTextName, in the specified resource * bundle. - * <p/> + * </p> + * + * <p> * If a message is found, it will also be interpolated. Anything within <code>${...}</code> * will be treated as an OGNL expression and evaluated as such. - * <p/> + * </p> + * + * <p> * If a message is <b>not</b> found a WARN log will be logged. + * </p> * * @param bundle the bundle * @param aTextName the key http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/PropertiesReader.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/PropertiesReader.java b/core/src/main/java/com/opensymphony/xwork2/util/PropertiesReader.java index a25a679..04cb3e7 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/PropertiesReader.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/PropertiesReader.java @@ -21,13 +21,17 @@ import java.util.ArrayList; import java.util.List; /** + * <p> * This class is used to read properties lines. These lines do * not terminate with new-line chars but rather when there is no * backslash sign a the end of the line. This is used to * concatenate multiple lines for readability. - * <p/> + * </p> + * + * <p> * This class was pulled out of Jakarta Commons Configuration and * Jakarta Commons Lang trunk revision 476093 + * </p> */ public class PropertiesReader extends LineNumberReader { /** @@ -403,7 +407,7 @@ public class PropertiesReader extends LineNumberReader { /** * <p>Checks if the object is in the given array.</p> - * <p/> + * * <p>The method returns <code>false</code> if a <code>null</code> array is passed in.</p> * * @param array the array to search through @@ -449,11 +453,11 @@ public class PropertiesReader extends LineNumberReader { /** * <p>Unescapes any Java literals found in the <code>String</code> to a * <code>Writer</code>.</p> - * <p/> + * * <p>For example, it will turn a sequence of <code>'\'</code> and * <code>'n'</code> into a newline character, unless the <code>'\'</code> * is preceded by another <code>'\'</code>.</p> - * <p/> + * * <p>A <code>null</code> string input has no effect.</p> * * @param out the <code>Writer</code> used to output unescaped characters http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java b/core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java index db1af6d..fe6f76e 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java @@ -56,7 +56,7 @@ public class TextParseUtil { * could be null, if it is it will just be skipped as if it is just calling * {@link #translateVariables(char, String, ValueStack)}. * - * <p/> + * <br> * * A typical use-case would be when we need to URL Encode the parsed value. To do so * we could just supply a URLEncodingEvaluator for example. @@ -266,24 +266,24 @@ public class TextParseUtil { /** + * <p> * A parsed value evaluator for {@link TextParseUtil}. It could be supplied by * calling {@link TextParseUtil#translateVariables(char, String, ValueStack, Class, ParsedValueEvaluator)}. + * </p> * - * <p/> - * + * <p> * By supplying this <code>ParsedValueEvaluator</code>, the parsed value * (parsed against the value stack) value will be * given to <code>ParsedValueEvaluator</code> to be evaluated before the * translateVariable process goes on. + * </p> * - * <p/> - * + * <p> * A typical use-case would be to have a custom <code>ParseValueEvaluator</code> * to URL Encode the parsed value. + * </p> * * @author tm_jee - * - * @version $Date$ $Id$ */ public static interface ParsedValueEvaluator { http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/XWorkList.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/XWorkList.java b/core/src/main/java/com/opensymphony/xwork2/util/XWorkList.java index 2a50197..fa1f05b 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/XWorkList.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/XWorkList.java @@ -52,13 +52,17 @@ public class XWorkList extends ArrayList { } /** + * <p> * Inserts the specified element at the specified position in this list. Shifts the element * currently at that position (if any) and any subsequent elements to the right (adds one to * their indices). - * <p/> + * </p> + * + * <p> * This method is guaranteed to work since it will create empty beans to fill the gap between * the current list size and the requested index to enable the element to be set. This method * also performs any necessary type conversion. + * </p> * * @param index index at which the specified element is to be inserted. * @param element element to be inserted. @@ -75,9 +79,13 @@ public class XWorkList extends ArrayList { } /** + * <p> * Appends the specified element to the end of this list. - * <p/> + * </p> + * + * <p> * This method performs any necessary type conversion. + * </p> * * @param element element to be appended to this list. * @return <tt>true</tt> (as per the general contract of Collection.add). @@ -90,13 +98,17 @@ public class XWorkList extends ArrayList { } /** + * <p> * Appends all of the elements in the specified Collection to the end of this list, in the order * that they are returned by the specified Collection's Iterator. The behavior of this * operation is undefined if the specified Collection is modified while the operation is in * progress. (This implies that the behavior of this call is undefined if the specified * Collection is this list, and this list is nonempty.) - * <p/> + * </p> + * + * <p> * This method performs any necessary type conversion. + * </p> * * @param collection the elements to be inserted into this list. * @return <tt>true</tt> if this list changed as a result of the call. @@ -116,14 +128,18 @@ public class XWorkList extends ArrayList { } /** + * <p> * Inserts all of the elements in the specified Collection into this list, starting at the * specified position. Shifts the element currently at that position (if any) and any * subsequent elements to the right (increases their indices). The new elements will appear in * the list in the order that they are returned by the specified Collection's iterator. - * <p/> + * </p> + * + * <p> * This method is guaranteed to work since it will create empty beans to fill the gap between * the current list size and the requested index to enable the element to be set. This method * also performs any necessary type conversion. + * </p> * * @param index index at which to insert first element from the specified collection. * @param collection elements to be inserted into this list. @@ -153,10 +169,14 @@ public class XWorkList extends ArrayList { } /** + * <p> * Returns the element at the specified position in this list. - * <p/> + * </p> + * + * <p> * An object is guaranteed to be returned since it will create empty beans to fill the gap * between the current list size and the requested index. + * </p> * * @param index index of element to return. * @return the element at the specified position in this list. @@ -179,11 +199,15 @@ public class XWorkList extends ArrayList { } /** + * <p> * Replaces the element at the specified position in this list with the specified element. - * <p/> + * </p> + * + * <p> * This method is guaranteed to work since it will create empty beans to fill the gap between * the current list size and the requested index to enable the element to be set. This method * also performs any necessary type conversion. + * </p> * * @param index index of element to replace. * @param element element to be stored at the specified position. http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/classloader/ReloadingClassLoader.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/classloader/ReloadingClassLoader.java b/core/src/main/java/com/opensymphony/xwork2/util/classloader/ReloadingClassLoader.java index 55fe34f..e44e261 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/classloader/ReloadingClassLoader.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/classloader/ReloadingClassLoader.java @@ -33,12 +33,16 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; /** + * <p> * The ReloadingClassLoader uses a delegation mechanism to allow * classes to be reloaded. That means that loadClass calls may * return different results if the class was changed in the underlying * ResourceStore. - * <p/> + * </p> + * + * <p> * class taken from Apache JCI + * </p> */ public class ReloadingClassLoader extends ClassLoader { private static final Logger LOG = LogManager.getLogger(ReloadingClassLoader.class); http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/finder/ClassFinder.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/finder/ClassFinder.java b/core/src/main/java/com/opensymphony/xwork2/util/finder/ClassFinder.java index 50fde4a..a096264 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/finder/ClassFinder.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/finder/ClassFinder.java @@ -25,15 +25,24 @@ public interface ClassFinder { boolean isAnnotationPresent(Class<? extends Annotation> annotation); /** + * <p> * Returns a list of classes that could not be loaded in last invoked findAnnotated* method. - * <p/> + * </p> + * + * <p> * The list will only contain entries of classes whose byte code matched the requirements * of last invoked find* method, but were unable to be loaded and included in the results. - * <p/> + * </p> + * + * <p> * The list returned is unmodifiable. Once obtained, the returned list will be a live view of the * results from the last findAnnotated* method call. - * <p/> + * </p> + * + * <p> * This method is not thread safe. + * </p> + * * @return an unmodifiable live view of classes that could not be loaded in previous findAnnotated* call. */ List<String> getClassesNotLoaded(); http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/finder/ResourceFinder.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/finder/ResourceFinder.java b/core/src/main/java/com/opensymphony/xwork2/util/finder/ResourceFinder.java index c7f9fd1..75368e2 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/finder/ResourceFinder.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/finder/ResourceFinder.java @@ -30,7 +30,6 @@ import java.util.jar.JarFile; /** * @author David Blevins - * @version $Rev$ $Date$ */ public class ResourceFinder { private static final Logger LOG = LogManager.getLogger(ResourceFinder.class); @@ -84,16 +83,22 @@ public class ResourceFinder { } /** + * <p> * Returns a list of resources that could not be loaded in the last invoked findAvailable* or * mapAvailable* methods. - * <p/> + * </p> + * + * <p> * The list will only contain entries of resources that match the requirements * of the last invoked findAvailable* or mapAvailable* methods, but were unable to be * loaded and included in their results. - * <p/> + * </p> + * + * <p> * The list returned is unmodifiable and the results of this method will change * after each invocation of a findAvailable* or mapAvailable* methods. - * <p/> + * </p> + * * This method is not thread safe. */ public List<String> getResourcesNotLoaded() { @@ -200,24 +205,34 @@ public class ResourceFinder { } /** + * <p> * Reads the contents of all non-directory URLs immediately under the specified * location and returns them in a map keyed by the file name. - * <p/> + * </p> + * + * <p> * Any URLs that cannot be read will cause an exception to be thrown. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre> * META-INF/serializables/one * META-INF/serializables/two * META-INF/serializables/three * META-INF/serializables/four/foo.txt - * <p/> + * </pre> + * + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * Map map = finder.mapAvailableStrings("serializables"); * map.contains("one"); // true * map.contains("two"); // true * map.contains("three"); // true * map.contains("four"); // false + * </pre> * * @param uri * @return a list of the content of each resource URL found @@ -236,25 +251,35 @@ public class ResourceFinder { } /** + * <p> * Reads the contents of all non-directory URLs immediately under the specified * location and returns them in a map keyed by the file name. - * <p/> + * </p> + * + * <p> * Individual URLs that cannot be read are skipped and added to the * list of 'resourcesNotLoaded' - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre> * META-INF/serializables/one * META-INF/serializables/two # not readable * META-INF/serializables/three * META-INF/serializables/four/foo.txt - * <p/> + * </pre> + * + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * Map map = finder.mapAvailableStrings("serializables"); * map.contains("one"); // true * map.contains("two"); // false * map.contains("three"); // true * map.contains("four"); // false + * </pre> * * @param uri * @return a list of the content of each resource URL found @@ -298,10 +323,14 @@ public class ResourceFinder { } /** + * <p> * Executes findAllStrings assuming the strings are * the names of a classes that should be loaded and returned. - * <p/> + * </p> + * + * <p> * Any URL or class that cannot be loaded will cause an exception to be thrown. + * </p> * * @param uri * @return @@ -319,11 +348,15 @@ public class ResourceFinder { } /** + * <p> * Executes findAvailableStrings assuming the strings are * the names of a classes that should be loaded and returned. - * <p/> + * </p> + * + * <p> * Any class that cannot be loaded will be skipped and placed in the * 'resourcesNotLoaded' collection. + * </p> * * @param uri * @return @@ -345,22 +378,30 @@ public class ResourceFinder { } /** + * <p> * Executes mapAllStrings assuming the value of each entry in the * map is the name of a class that should be loaded. - * <p/> + * </p> + * + * <p> * Any class that cannot be loaded will be cause an exception to be thrown. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * <pre> * META-INF/xmlparsers/xerces * META-INF/xmlparsers/crimson - * <p/> + * </pre> + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * Map map = finder.mapAvailableStrings("xmlparsers"); * map.contains("xerces"); // true * map.contains("crimson"); // true * Class xercesClass = map.get("xerces"); * Class crimsonClass = map.get("crimson"); + * </pre> * * @param uri * @return @@ -380,23 +421,31 @@ public class ResourceFinder { } /** + * <p> * Executes mapAvailableStrings assuming the value of each entry in the * map is the name of a class that should be loaded. - * <p/> + * </p> + * + * <p> * Any class that cannot be loaded will be skipped and placed in the * 'resourcesNotLoaded' collection. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * <pre> * META-INF/xmlparsers/xerces * META-INF/xmlparsers/crimson - * <p/> + * </pre> + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * Map map = finder.mapAvailableStrings("xmlparsers"); * map.contains("xerces"); // true * map.contains("crimson"); // true * Class xercesClass = map.get("xerces"); * Class crimsonClass = map.get("crimson"); + * </p> * * @param uri * @return @@ -426,20 +475,28 @@ public class ResourceFinder { // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /** + * <p> * Assumes the class specified points to a file in the classpath that contains * the name of a class that implements or is a subclass of the specfied class. - * <p/> + * </p> + * + * <p> * Any class that cannot be loaded will be cause an exception to be thrown. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre> * META-INF/java.io.InputStream # contains the classname org.acme.AcmeInputStream * META-INF/java.io.OutputStream - * <p/> + * </pre> + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * Class clazz = finder.findImplementation(java.io.InputStream.class); * clazz.getName(); // returns "org.acme.AcmeInputStream" - * + * </pre> * @param interfase a superclass or interface * @return * @throws IOException if the URL cannot be read @@ -456,23 +513,33 @@ public class ResourceFinder { } /** + * <p> * Assumes the class specified points to a file in the classpath that contains * the name of a class that implements or is a subclass of the specfied class. - * <p/> + * </p> + * + * <p> * Any class that cannot be loaded or assigned to the specified interface will be cause * an exception to be thrown. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre> * META-INF/java.io.InputStream # contains the classname org.acme.AcmeInputStream * META-INF/java.io.InputStream # contains the classname org.widget.NeatoInputStream * META-INF/java.io.InputStream # contains the classname com.foo.BarInputStream - * <p/> + * </pre> + * + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * List classes = finder.findAllImplementations(java.io.InputStream.class); * classes.contains("org.acme.AcmeInputStream"); // true * classes.contains("org.widget.NeatoInputStream"); // true * classes.contains("com.foo.BarInputStream"); // true + * </pre> * * @param interfase a superclass or interface * @return @@ -494,24 +561,33 @@ public class ResourceFinder { } /** + * <p> * Assumes the class specified points to a file in the classpath that contains * the name of a class that implements or is a subclass of the specfied class. - * <p/> + * </p> + * + * <p> * Any class that cannot be loaded or are not assignable to the specified class will be * skipped and placed in the 'resourcesNotLoaded' collection. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre> * META-INF/java.io.InputStream # contains the classname org.acme.AcmeInputStream * META-INF/java.io.InputStream # contains the classname org.widget.NeatoInputStream * META-INF/java.io.InputStream # contains the classname com.foo.BarInputStream - * <p/> + * </pre> + * + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * List classes = finder.findAllImplementations(java.io.InputStream.class); * classes.contains("org.acme.AcmeInputStream"); // true * classes.contains("org.widget.NeatoInputStream"); // true * classes.contains("com.foo.BarInputStream"); // true - * + * </pre> * @param interfase a superclass or interface * @return * @throws IOException if classLoader.getResources throws an exception @@ -536,23 +612,33 @@ public class ResourceFinder { } /** + * <p> * Assumes the class specified points to a directory in the classpath that holds files - * containing the name of a class that implements or is a subclass of the specfied class. - * <p/> + * containing the name of a class that implements or is a subclass of the specified class. + * </p> + * + * <p> * Any class that cannot be loaded or assigned to the specified interface will be cause * an exception to be thrown. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre> * META-INF/java.net.URLStreamHandler/jar * META-INF/java.net.URLStreamHandler/file * META-INF/java.net.URLStreamHandler/http - * <p/> + * </pre> + * + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * Map map = finder.mapAllImplementations(java.net.URLStreamHandler.class); * Class jarUrlHandler = map.get("jar"); * Class fileUrlHandler = map.get("file"); * Class httpUrlHandler = map.get("http"); + * </pre> * * @param interfase a superclass or interface * @return @@ -576,23 +662,33 @@ public class ResourceFinder { } /** + * <p> * Assumes the class specified points to a directory in the classpath that holds files - * containing the name of a class that implements or is a subclass of the specfied class. - * <p/> + * containing the name of a class that implements or is a subclass of the specified class. + * </p> + * + * <p> * Any class that cannot be loaded or are not assignable to the specified class will be * skipped and placed in the 'resourcesNotLoaded' collection. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre> * META-INF/java.net.URLStreamHandler/jar * META-INF/java.net.URLStreamHandler/file * META-INF/java.net.URLStreamHandler/http - * <p/> + * </pre> + * + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * Map map = finder.mapAllImplementations(java.net.URLStreamHandler.class); * Class jarUrlHandler = map.get("jar"); * Class fileUrlHandler = map.get("file"); * Class httpUrlHandler = map.get("http"); + * </pre> * * @param interfase a superclass or interface * @return @@ -626,14 +722,22 @@ public class ResourceFinder { // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /** + * <p> * Finds the corresponding resource and reads it in as a properties file - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre>> * META-INF/widget.properties - * <p/> + * </pre> + * + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * Properties widgetProps = finder.findProperties("widget.properties"); + * </pre> * * @param uri * @return @@ -651,18 +755,28 @@ public class ResourceFinder { } /** + * <p> * Finds the corresponding resources and reads them in as a properties files - * <p/> + * </p> + * + * <p> * Any URL that cannot be read in as a properties file will cause an exception to be thrown. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre> * META-INF/app.properties * META-INF/app.properties * META-INF/app.properties - * <p/> + * </pre> + * + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * List<Properties> appProps = finder.findAllProperties("app.properties"); + * </pre> * * @param uri * @return @@ -683,19 +797,29 @@ public class ResourceFinder { } /** + * <p> * Finds the corresponding resources and reads them in as a properties files - * <p/> + * </p> + * + * <p> * Any URL that cannot be read in as a properties file will be added to the * 'resourcesNotLoaded' collection. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre> * META-INF/app.properties * META-INF/app.properties * META-INF/app.properties - * <p/> + * </pre> + * + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * List<Properties> appProps = finder.findAvailableProperties("app.properties"); + * </pre> * * @param uri * @return @@ -721,21 +845,31 @@ public class ResourceFinder { } /** + * <p> * Finds the corresponding resources and reads them in as a properties files - * <p/> + * </p> + * + * <p> * Any URL that cannot be read in as a properties file will cause an exception to be thrown. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre> * META-INF/jdbcDrivers/oracle.properties * META-INF/jdbcDrivers/mysql.props * META-INF/jdbcDrivers/derby - * <p/> + * </pre> + * + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * List<Properties> driversList = finder.findAvailableProperties("jdbcDrivers"); * Properties oracleProps = driversList.get("oracle.properties"); * Properties mysqlProps = driversList.get("mysql.props"); * Properties derbyProps = driversList.get("derby"); + * </pre> * * @param uri * @return @@ -754,22 +888,32 @@ public class ResourceFinder { } /** + * <p> * Finds the corresponding resources and reads them in as a properties files - * <p/> + * </p> + * + * <p> * Any URL that cannot be read in as a properties file will be added to the * 'resourcesNotLoaded' collection. - * <p/> + * </p> + * + * <p> * Example classpath: - * <p/> + * </p> + * + * <pre> * META-INF/jdbcDrivers/oracle.properties * META-INF/jdbcDrivers/mysql.props * META-INF/jdbcDrivers/derby - * <p/> + * </pre> + * + * <pre> * ResourceFinder finder = new ResourceFinder("META-INF/"); * List<Properties> driversList = finder.findAvailableProperties("jdbcDrivers"); * Properties oracleProps = driversList.get("oracle.properties"); * Properties mysqlProps = driversList.get("mysql.props"); * Properties derbyProps = driversList.get("derby"); + * </p> * * @param uri * @return @@ -825,7 +969,7 @@ public class ResourceFinder { } /** - * Gets a list of subpckages from jars or dirs + * Gets a list of subpackages from jars or dirs */ public Set<String> findPackages(String uri) throws IOException { String basePath = path + uri; @@ -854,7 +998,7 @@ public class ResourceFinder { } /** - * Gets a list of subpckages from jars or dirs + * Gets a list of subpackages from jars or dirs */ public Map<URL, Set<String>> findPackagesMap(String uri) throws IOException { String basePath = path + uri; http://git-wip-us.apache.org/repos/asf/struts/blob/eb564a25/core/src/main/java/com/opensymphony/xwork2/util/profiling/ObjectProfiler.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/profiling/ObjectProfiler.java b/core/src/main/java/com/opensymphony/xwork2/util/profiling/ObjectProfiler.java index 7438113..66cc005 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/profiling/ObjectProfiler.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/profiling/ObjectProfiler.java @@ -37,10 +37,15 @@ import java.lang.reflect.Proxy; public class ObjectProfiler { /** + * <p> * Given a class, and an interface that it implements, return a proxied version of the class that implements * the interface. - * <p/> + * </p> + * + * <p> * The usual use of this is to profile methods from Factory objects: + * </p> + * * <pre> * public PersistenceManager getPersistenceManager() * { @@ -53,8 +58,10 @@ public class ObjectProfiler { * return ObjectProfiler.getProfiledObject(PersistenceManager.class, new DefaultPersistenceManager()); * } * </pre> - * <p/> + * + * <p> * A side effect of this is that you will no longer be able to downcast to DefaultPersistenceManager. This is probably a *good* thing. + * </p> * * @param interfaceClazz The interface to implement. * @param o The object to proxy
