You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by hu...@apache.org on 2006/02/09 15:11:14 UTC
svn commit: r376300 [3/6] - in
/struts/action/trunk/src/java/org/apache/struts: ./ action/ chain/
chain/commands/ chain/commands/generic/ chain/commands/servlet/
chain/commands/util/ chain/contexts/ config/ config/impl/ mock/ upload/
util/ validator/ v...
Modified: struts/action/trunk/src/java/org/apache/struts/config/ConfigRuleSet.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/ConfigRuleSet.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/ConfigRuleSet.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/ConfigRuleSet.java Thu Feb 9 06:11:07 2006
@@ -51,121 +51,108 @@
ClassLoader cl = digester.getClassLoader();
digester.addRule("struts-config/action-mappings",
- new SetActionMappingClassRule());
+ new SetActionMappingClassRule());
digester.addFactoryCreate("struts-config/action-mappings/action",
- new ActionMappingFactory(cl));
+ new ActionMappingFactory(cl));
digester.addSetProperties("struts-config/action-mappings/action");
digester.addSetNext("struts-config/action-mappings/action",
- "addActionConfig", "org.apache.struts.config.ActionConfig");
+ "addActionConfig", "org.apache.struts.config.ActionConfig");
digester.addRule("struts-config/action-mappings/action/set-property",
- new BaseConfigSetPropertyRule());
+ new BaseConfigSetPropertyRule());
- digester.addObjectCreate(
- "struts-config/action-mappings/action/exception",
- "org.apache.struts.config.ExceptionConfig",
- "className");
+ digester.addObjectCreate("struts-config/action-mappings/action/exception",
+ "org.apache.struts.config.ExceptionConfig", "className");
digester.addSetProperties(
- "struts-config/action-mappings/action/exception");
+ "struts-config/action-mappings/action/exception");
digester.addSetNext("struts-config/action-mappings/action/exception",
- "addExceptionConfig",
- "org.apache.struts.config.ExceptionConfig");
+ "addExceptionConfig", "org.apache.struts.config.ExceptionConfig");
- digester.addRule(
- "struts-config/action-mappings/action/exception/set-property",
- new BaseConfigSetPropertyRule());
-
- digester.addFactoryCreate(
- "struts-config/action-mappings/action/forward",
- new ActionForwardFactory(cl));
+ digester.addRule("struts-config/action-mappings/action/exception/set-property",
+ new BaseConfigSetPropertyRule());
+
+ digester.addFactoryCreate("struts-config/action-mappings/action/forward",
+ new ActionForwardFactory(cl));
digester.addSetProperties(
- "struts-config/action-mappings/action/forward");
+ "struts-config/action-mappings/action/forward");
digester.addSetNext("struts-config/action-mappings/action/forward",
- "addForwardConfig", "org.apache.struts.config.ForwardConfig");
+ "addForwardConfig", "org.apache.struts.config.ForwardConfig");
- digester.addRule(
- "struts-config/action-mappings/action/forward/set-property",
- new BaseConfigSetPropertyRule());
+ digester.addRule("struts-config/action-mappings/action/forward/set-property",
+ new BaseConfigSetPropertyRule());
digester.addObjectCreate("struts-config/controller",
- "org.apache.struts.config.ControllerConfig", "className");
+ "org.apache.struts.config.ControllerConfig", "className");
digester.addSetProperties("struts-config/controller");
digester.addSetNext("struts-config/controller", "setControllerConfig",
- "org.apache.struts.config.ControllerConfig");
+ "org.apache.struts.config.ControllerConfig");
digester.addRule("struts-config/controller/set-property",
- new BaseConfigSetPropertyRule());
+ new BaseConfigSetPropertyRule());
digester.addRule("struts-config/form-beans",
- new SetActionFormBeanClassRule());
+ new SetActionFormBeanClassRule());
digester.addFactoryCreate("struts-config/form-beans/form-bean",
- new ActionFormBeanFactory(cl));
+ new ActionFormBeanFactory(cl));
digester.addSetProperties("struts-config/form-beans/form-bean");
digester.addSetNext("struts-config/form-beans/form-bean",
- "addFormBeanConfig",
- "org.apache.struts.config.FormBeanConfig");
+ "addFormBeanConfig", "org.apache.struts.config.FormBeanConfig");
- digester.addObjectCreate(
- "struts-config/form-beans/form-bean/form-property",
- "org.apache.struts.config.FormPropertyConfig",
- "className");
+ digester.addObjectCreate("struts-config/form-beans/form-bean/form-property",
+ "org.apache.struts.config.FormPropertyConfig", "className");
digester.addSetProperties(
- "struts-config/form-beans/form-bean/form-property");
+ "struts-config/form-beans/form-bean/form-property");
digester.addSetNext("struts-config/form-beans/form-bean/form-property",
- "addFormPropertyConfig",
- "org.apache.struts.config.FormPropertyConfig");
+ "addFormPropertyConfig",
+ "org.apache.struts.config.FormPropertyConfig");
- digester.addRule(
- "struts-config/form-beans/form-bean/form-property/set-property",
- new BaseConfigSetPropertyRule());
+ digester.addRule("struts-config/form-beans/form-bean/form-property/set-property",
+ new BaseConfigSetPropertyRule());
digester.addRule("struts-config/form-beans/form-bean/set-property",
- new BaseConfigSetPropertyRule());
+ new BaseConfigSetPropertyRule());
digester.addObjectCreate("struts-config/global-exceptions/exception",
- "org.apache.struts.config.ExceptionConfig", "className");
+ "org.apache.struts.config.ExceptionConfig", "className");
digester.addSetProperties("struts-config/global-exceptions/exception");
digester.addSetNext("struts-config/global-exceptions/exception",
- "addExceptionConfig",
- "org.apache.struts.config.ExceptionConfig");
+ "addExceptionConfig", "org.apache.struts.config.ExceptionConfig");
- digester.addRule(
- "struts-config/global-exceptions/exception/set-property",
- new BaseConfigSetPropertyRule());
+ digester.addRule("struts-config/global-exceptions/exception/set-property",
+ new BaseConfigSetPropertyRule());
digester.addRule("struts-config/global-forwards",
- new SetActionForwardClassRule());
+ new SetActionForwardClassRule());
digester.addFactoryCreate("struts-config/global-forwards/forward",
- new GlobalForwardFactory(cl));
+ new GlobalForwardFactory(cl));
digester.addSetProperties("struts-config/global-forwards/forward");
digester.addSetNext("struts-config/global-forwards/forward",
- "addForwardConfig", "org.apache.struts.config.ForwardConfig");
+ "addForwardConfig", "org.apache.struts.config.ForwardConfig");
digester.addRule("struts-config/global-forwards/forward/set-property",
- new BaseConfigSetPropertyRule());
+ new BaseConfigSetPropertyRule());
digester.addObjectCreate("struts-config/message-resources",
- "org.apache.struts.config.MessageResourcesConfig",
- "className");
+ "org.apache.struts.config.MessageResourcesConfig", "className");
digester.addSetProperties("struts-config/message-resources");
digester.addSetNext("struts-config/message-resources",
- "addMessageResourcesConfig",
- "org.apache.struts.config.MessageResourcesConfig");
+ "addMessageResourcesConfig",
+ "org.apache.struts.config.MessageResourcesConfig");
digester.addRule("struts-config/message-resources/set-property",
- new BaseConfigSetPropertyRule());
+ new BaseConfigSetPropertyRule());
digester.addObjectCreate("struts-config/plug-in",
- "org.apache.struts.config.PlugInConfig");
+ "org.apache.struts.config.PlugInConfig");
digester.addSetProperties("struts-config/plug-in");
digester.addSetNext("struts-config/plug-in", "addPlugInConfig",
- "org.apache.struts.config.PlugInConfig");
+ "org.apache.struts.config.PlugInConfig");
digester.addRule("struts-config/plug-in/set-property",
- new PlugInSetPropertyRule());
+ new PlugInSetPropertyRule());
// PluginConfig does not extend BaseConfig, at least for now.
}
@@ -173,8 +160,8 @@
/**
- * Class that records the name and value of a configuration property to be
- * used in configuring a <code>PlugIn</code> instance when instantiated.
+ * <p> Class that records the name and value of a configuration property to be
+ * used in configuring a <code>PlugIn</code> instance when instantiated. </p>
*/
final class PlugInSetPropertyRule extends Rule {
public PlugInSetPropertyRule() {
@@ -182,19 +169,19 @@
}
public void begin(String namespace, String names, Attributes attributes)
- throws Exception {
+ throws Exception {
PlugInConfig plugInConfig = (PlugInConfig) digester.peek();
plugInConfig.addProperty(attributes.getValue("property"),
- attributes.getValue("value"));
+ attributes.getValue("value"));
}
}
/**
- * Class that sets the name of the class to use when creating action form bean
- * instances. The value is set on the object on the top of the stack, which
- * must be a <code>org.apache.struts.config.ModuleConfig</code>.
+ * <p> Class that sets the name of the class to use when creating action form
+ * bean instances. The value is set on the object on the top of the stack,
+ * which must be a <code>org.apache.struts.config.ModuleConfig</code>. </p>
*/
final class SetActionFormBeanClassRule extends Rule {
public SetActionFormBeanClassRule() {
@@ -202,7 +189,7 @@
}
public void begin(String namespace, String name, Attributes attributes)
- throws Exception {
+ throws Exception {
String className = attributes.getValue("type");
if (className != null) {
@@ -215,14 +202,14 @@
/**
- * A variant of the standard Digester <code>SetPropertyRule</code>. If the
- * element being processed has a "key" attribute, then the value will be used
- * to call <code>setProperty(key,value)</code> on the object on top of the
- * stack, which will be assumed to be of type <code>ActionConfig</code>.
+ * <p> A variant of the standard Digester <code>SetPropertyRule</code>. If
+ * the element being processed has a "key" attribute, then the value will be
+ * used to call <code>setProperty(key,value)</code> on the object on top of
+ * the stack, which will be assumed to be of type <code>ActionConfig</code>.
* Otherwise, the standard <code>SetPropertyRule</code> behavior is invoked,
* and the value will be used to set a bean property on the object on top of
* the Digester stack. In that case, the element being processed is assumed to
- * have attributes "property" and "value".
+ * have attributes "property" and "value". </p>
*/
final class BaseConfigSetPropertyRule extends SetPropertyRule {
public BaseConfigSetPropertyRule() {
@@ -230,7 +217,7 @@
}
public void begin(Attributes attributes)
- throws Exception {
+ throws Exception {
if (attributes.getIndex("key") == -1) {
super.begin(attributes);
@@ -239,7 +226,7 @@
if (attributes.getIndex("property") != -1) {
throw new IllegalArgumentException(
- "<set-property> accepts only one of 'key' or 'property' attributes.");
+ "<set-property> accepts only one of 'key' or 'property' attributes.");
}
Object topOfStack = digester.peek();
@@ -248,24 +235,24 @@
BaseConfig config = (BaseConfig) topOfStack;
config.setProperty(attributes.getValue("key"),
- attributes.getValue("value"));
+ attributes.getValue("value"));
} else {
throw new IllegalArgumentException(
- "'key' attribute of <set-property> only applicable to subclasses of BaseConfig; "
- + "object on top of stack is " + topOfStack
- + " [key: "
- + attributes.getValue("key") + ", value: "
- + attributes.getValue("value") + "]");
+ "'key' attribute of <set-property> only applicable to subclasses of BaseConfig; "
+ + "object on top of stack is " + topOfStack + " [key: "
+ + attributes.getValue("key") + ", value: "
+ + attributes.getValue("value") + "]");
}
}
}
/**
- * An object creation factory which creates action form bean instances, taking
- * into account the default class name, which may have been specified on the
- * parent element and which is made available through the object on the top of
- * the stack, which must be a <code>org.apache.struts.config.ModuleConfig</code>.
+ * <p> An object creation factory which creates action form bean instances,
+ * taking into account the default class name, which may have been specified
+ * on the parent element and which is made available through the object on the
+ * top of the stack, which must be a <code>org.apache.struts.config.ModuleConfig</code>.
+ * </p>
*/
final class ActionFormBeanFactory extends AbstractObjectCreationFactory {
private ClassLoader cl;
@@ -290,10 +277,8 @@
try {
actionFormBean = RequestUtils.applicationInstance(className, cl);
- }
- catch (Exception e) {
- digester.getLogger()
- .error("ActionFormBeanFactory.createObject: ", e);
+ } catch (Exception e) {
+ digester.getLogger().error("ActionFormBeanFactory.createObject: ", e);
}
return actionFormBean;
@@ -302,9 +287,9 @@
/**
- * Class that sets the name of the class to use when creating action mapping
- * instances. The value is set on the object on the top of the stack, which
- * must be a <code>org.apache.struts.config.ModuleConfig</code>.
+ * <p> Class that sets the name of the class to use when creating action
+ * mapping instances. The value is set on the object on the top of the stack,
+ * which must be a <code>org.apache.struts.config.ModuleConfig</code>. </p>
*/
final class SetActionMappingClassRule extends Rule {
public SetActionMappingClassRule() {
@@ -312,7 +297,7 @@
}
public void begin(String namespace, String name, Attributes attributes)
- throws Exception {
+ throws Exception {
String className = attributes.getValue("type");
if (className != null) {
@@ -325,10 +310,11 @@
/**
- * An object creation factory which creates action mapping instances, taking
- * into account the default class name, which may have been specified on the
- * parent element and which is made available through the object on the top of
- * the stack, which must be a <code>org.apache.struts.config.ModuleConfig</code>.
+ * <p> An object creation factory which creates action mapping instances,
+ * taking into account the default class name, which may have been specified
+ * on the parent element and which is made available through the object on the
+ * top of the stack, which must be a <code>org.apache.struts.config.ModuleConfig</code>.
+ * </p>
*/
final class ActionMappingFactory extends AbstractObjectCreationFactory {
private ClassLoader cl;
@@ -353,10 +339,8 @@
try {
actionMapping = RequestUtils.applicationInstance(className, cl);
- }
- catch (Exception e) {
- digester.getLogger()
- .error("ActionMappingFactory.createObject: ", e);
+ } catch (Exception e) {
+ digester.getLogger().error("ActionMappingFactory.createObject: ", e);
}
return actionMapping;
@@ -365,9 +349,9 @@
/**
- * Class that sets the name of the class to use when creating global forward
- * instances. The value is set on the object on the top of the stack, which
- * must be a <code>org.apache.struts.config.ModuleConfig</code>.
+ * <p> Class that sets the name of the class to use when creating global
+ * forward instances. The value is set on the object on the top of the stack,
+ * which must be a <code>org.apache.struts.config.ModuleConfig</code>. </p>
*/
final class SetActionForwardClassRule extends Rule {
public SetActionForwardClassRule() {
@@ -375,7 +359,7 @@
}
public void begin(String namespace, String name, Attributes attributes)
- throws Exception {
+ throws Exception {
String className = attributes.getValue("type");
if (className != null) {
@@ -388,10 +372,11 @@
/**
- * An object creation factory which creates global forward instances, taking
- * into account the default class name, which may have been specified on the
- * parent element and which is made available through the object on the top of
- * the stack, which must be a <code>org.apache.struts.config.ModuleConfig</code>.
+ * <p> An object creation factory which creates global forward instances,
+ * taking into account the default class name, which may have been specified
+ * on the parent element and which is made available through the object on the
+ * top of the stack, which must be a <code>org.apache.struts.config.ModuleConfig</code>.
+ * </p>
*/
final class GlobalForwardFactory extends AbstractObjectCreationFactory {
private ClassLoader cl;
@@ -416,10 +401,8 @@
try {
globalForward = RequestUtils.applicationInstance(className, cl);
- }
- catch (Exception e) {
- digester.getLogger()
- .error("GlobalForwardFactory.createObject: ", e);
+ } catch (Exception e) {
+ digester.getLogger().error("GlobalForwardFactory.createObject: ", e);
}
return globalForward;
@@ -428,10 +411,11 @@
/**
- * An object creation factory which creates action forward instances, taking
- * into account the default class name, which may have been specified on the
- * parent element and which is made available through the object on the top of
- * the stack, which must be a <code>org.apache.struts.config.ModuleConfig</code>.
+ * <p> An object creation factory which creates action forward instances,
+ * taking into account the default class name, which may have been specified
+ * on the parent element and which is made available through the object on the
+ * top of the stack, which must be a <code>org.apache.struts.config.ModuleConfig</code>.
+ * </p>
*/
final class ActionForwardFactory extends AbstractObjectCreationFactory {
private ClassLoader cl;
@@ -456,10 +440,8 @@
try {
actionForward = RequestUtils.applicationInstance(className, cl);
- }
- catch (Exception e) {
- digester.getLogger()
- .error("ActionForwardFactory.createObject: ", e);
+ } catch (Exception e) {
+ digester.getLogger().error("ActionForwardFactory.createObject: ", e);
}
return actionForward;
Modified: struts/action/trunk/src/java/org/apache/struts/config/ControllerConfig.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/ControllerConfig.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/ControllerConfig.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/ControllerConfig.java Thu Feb 9 06:11:07 2006
@@ -31,37 +31,49 @@
// ------------------------------------------------------------- Properties
/**
- * The input buffer size for file uploads.
+ * <p> The input buffer size for file uploads. </p>
*/
protected int bufferSize = 4096;
/**
- * The content type and character encoding to be set on each response.
+ * <p> The content type and character encoding to be set on each response.
+ * </p>
*/
protected String contentType = "text/html";
/**
- * The chain catalog name for this module.
+ * <p> The chain catalog name for this module. </p>
*/
protected String catalog = "struts";
/**
- * The chain command to execute for each request.
+ * <p> The chain command to execute for each request. </p>
*/
protected String command = "servlet-standard";
/**
* <p>The replacement pattern used to determine a context-relative URL
* from a {@link ForwardConfig} element. The pattern may consist of any
- * combination of the following markers and characters:</p> <ul>
+ * combination of the following markers and characters:</p>
+ *
+ * <ul>
+ *
* <li><code><strong>$M</strong></code> - Replaced by the module prefix
- * for the current module.</li> <li><code><strong>$P</strong></code> -
- * Replaced by the <code>path</code> property of a {@link ForwardConfig}
- * instance.</li> <li><code><strong>$$</strong></code> - Renders a literal
- * dollar sign ("$") character in the resulting URL.</li> <li>A dollar
- * sign followed by any other character is reserved for future use, and
- * both characters are silently swallowed.</li> <li>All other characters
- * in the pattern are passed through unchanged. </li> </ul>
+ * for the current module.</li>
+ *
+ * <li><code><strong>$P</strong></code> - Replaced by the
+ * <code>path</code> property of a {@link ForwardConfig} instance.</li>
+ *
+ * <li><code><strong>$$</strong></code> - Renders a literal dollar sign
+ * ("$") character in the resulting URL.</li>
+ *
+ * <li>A dollar sign followed by any other character is reserved for
+ * future use, and both characters are silently swallowed.</li>
+ *
+ * <li>All other characters in the pattern are passed through unchanged.
+ * </li>
+ *
+ * </ul>
*
* <p>If this property is set to <code>null</code>, a default pattern of
* <code>$M$P</code> is utilized, which is backwards compatible with the
@@ -81,29 +93,30 @@
protected boolean inputForward = false;
/**
- * Should we store a Locale object in the user's session if needed?
+ * <p> Should we store a Locale object in the user's session if needed?
+ * </p>
*/
protected boolean locale = true;
/**
- * The maximum file size to process for file uploads.
+ * <p> The maximum file size to process for file uploads. </p>
*/
protected String maxFileSize = "250M";
/**
- * The maximum file size to retain in memory.
+ * <p> The maximum file size to retain in memory. </p>
*/
protected String memFileSize = "256K";
/**
- * The fully qualified Java class name of the MultipartRequestHandler
- * class to be used.
+ * <p> The fully qualified Java class name of the MultipartRequestHandler
+ * class to be used. </p>
*/
protected String multipartClass =
- "org.apache.struts.upload.CommonsMultipartRequestHandler";
+ "org.apache.struts.upload.CommonsMultipartRequestHandler";
/**
- * Should we set no-cache HTTP headers on each response?
+ * <p> Should we set no-cache HTTP headers on each response? </p>
*/
protected boolean nocache = false;
@@ -111,15 +124,26 @@
* <p>The replacement pattern used to determine a context-relative URL
* from the <code>page</code> attribute of Struts tags and configuration
* properties. The pattern may consist of any combination of the
- * following markers and characters:</p> <ul> <li><code><strong>$M</strong></code>
- * - Replaced by the module prefix for the current module.</li>
+ * following markers and characters:</p>
+ *
+ * <ul>
+ *
+ * <li><code><strong>$M</strong></code> - Replaced by the module prefix
+ * for the current module.</li>
+ *
* <li><code><strong>$P</strong></code> - Replaced by the
* <code>page</code> attribute value being evaluated.</li>
+ *
* <li><code><strong>$$</strong></code> - Renders a literal dollar sign
- * ("$") character in the resulting URL.</li> <li>A dollar sign followed
- * by any other character is reserved for future use, and both characters
- * are silently swallowed.</li> <li>All other characters in the pattern
- * are passed through unchanged. </li> </ul>
+ * ("$") character in the resulting URL.</li>
+ *
+ * <li>A dollar sign followed by any other character is reserved for
+ * future use, and both characters are silently swallowed.</li>
+ *
+ * <li>All other characters in the pattern are passed through unchanged.
+ * </li>
+ *
+ * </ul>
*
* <p>If this property is set to <code>null</code>, a default pattern of
* <code>$M$P</code> is utilized, which is backwards compatible with the
@@ -128,14 +152,14 @@
protected String pagePattern = null;
/**
- * The fully qualified class name of the RequestProcessor implementation
- * class to be used for this module.
+ * <p> The fully qualified class name of the RequestProcessor
+ * implementation class to be used for this module. </p>
*/
protected String processorClass =
- "org.apache.struts.chain.ComposableRequestProcessor";
+ "org.apache.struts.chain.ComposableRequestProcessor";
/**
- * The temporary working directory to use for file uploads.
+ * <p> The temporary working directory to use for file uploads. </p>
*/
protected String tempDir = null;
@@ -298,7 +322,7 @@
// --------------------------------------------------------- Public Methods
/**
- * Return a String representation of this object.
+ * <p> Return a String representation of this object. </p>
*/
public String toString() {
StringBuffer sb = new StringBuffer("ControllerConfig[");
Modified: struts/action/trunk/src/java/org/apache/struts/config/ExceptionConfig.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/ExceptionConfig.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/ExceptionConfig.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/ExceptionConfig.java Thu Feb 9 06:11:07 2006
@@ -180,7 +180,7 @@
* @return true if circular inheritance was detected.
*/
protected boolean checkCircularInheritance(ModuleConfig moduleConfig,
- ActionConfig actionConfig) {
+ ActionConfig actionConfig) {
String ancestorType = getExtends();
if (ancestorType == null) {
@@ -284,7 +284,7 @@
* @see #processExtends(ModuleConfig, ActionConfig)
*/
public void inheritFrom(ExceptionConfig config)
- throws ClassNotFoundException, IllegalAccessException,
+ throws ClassNotFoundException, IllegalAccessException,
InstantiationException, InvocationTargetException {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
@@ -295,8 +295,7 @@
setBundle(config.getBundle());
}
- if (getHandler().equals("org.apache.struts.action.ExceptionHandler"))
- {
+ if (getHandler().equals("org.apache.struts.action.ExceptionHandler")) {
setHandler(config.getHandler());
}
@@ -332,8 +331,8 @@
* @see #inheritFrom(ExceptionConfig)
*/
public void processExtends(ModuleConfig moduleConfig,
- ActionConfig actionConfig)
- throws ClassNotFoundException, IllegalAccessException,
+ ActionConfig actionConfig)
+ throws ClassNotFoundException, IllegalAccessException,
InstantiationException, InvocationTargetException {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
@@ -345,8 +344,8 @@
ExceptionConfig baseConfig = null;
// We only check the action config if we're not a global handler
- boolean checkActionConfig = (this != moduleConfig
- .findExceptionConfig(getType()));
+ boolean checkActionConfig =
+ (this != moduleConfig.findExceptionConfig(getType()));
// ... and the action config was provided
checkActionConfig &= (actionConfig != null);
@@ -368,15 +367,14 @@
if (baseConfig == null) {
throw new NullPointerException("Unable to find "
- + "handler for '" + ancestorType + "' to extend.");
+ + "handler for '" + ancestorType + "' to extend.");
}
// Check for circular inheritance and make sure the base config's
// own inheritance has been processed already
if (checkCircularInheritance(moduleConfig, actionConfig)) {
throw new IllegalArgumentException(
- "Circular inheritance detected for forward "
- + getType());
+ "Circular inheritance detected for forward " + getType());
}
if (!baseConfig.isExtensionProcessed()) {
Modified: struts/action/trunk/src/java/org/apache/struts/config/FormBeanConfig.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/FormBeanConfig.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/FormBeanConfig.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/FormBeanConfig.java Thu Feb 9 06:11:07 2006
@@ -33,6 +33,7 @@
import org.apache.struts.validator.BeanValidatorForm;
import java.lang.reflect.InvocationTargetException;
+
import java.util.HashMap;
/**
@@ -210,7 +211,7 @@
// get our ancestor's ancestor
FormBeanConfig ancestor =
- moduleConfig.findFormBeanConfig(ancestorName);
+ moduleConfig.findFormBeanConfig(ancestorName);
ancestorName = ancestor.getExtends();
}
@@ -226,7 +227,7 @@
* @see #inheritFrom(FormBeanConfig)
*/
protected void inheritFormProperties(FormBeanConfig config)
- throws ClassNotFoundException, IllegalAccessException,
+ throws ClassNotFoundException, IllegalAccessException,
InstantiationException, InvocationTargetException {
throwIfConfigured();
@@ -237,14 +238,14 @@
FormPropertyConfig baseFpc = baseFpcs[i];
// Do we have this prop?
- FormPropertyConfig prop = this.findFormPropertyConfig(baseFpc
- .getName());
+ FormPropertyConfig prop =
+ this.findFormPropertyConfig(baseFpc.getName());
if (prop == null) {
// We don't have this, so let's copy it
- prop = (FormPropertyConfig) RequestUtils
- .applicationInstance(baseFpc.getClass()
- .getName());
+ prop =
+ (FormPropertyConfig) RequestUtils.applicationInstance(baseFpc.getClass()
+ .getName());
BeanUtils.copyProperties(prop, baseFpc);
this.addFormPropertyConfig(prop);
@@ -275,7 +276,7 @@
* some other reason
*/
public ActionForm createActionForm(ActionServlet servlet)
- throws IllegalAccessException, InstantiationException {
+ throws IllegalAccessException, InstantiationException {
Object obj = null;
// Create a new form bean instance
@@ -296,11 +297,10 @@
form.setServlet(servlet);
if (form instanceof DynaBean
- && ((DynaBean) form)
- .getDynaClass() instanceof MutableDynaClass) {
+ && ((DynaBean) form).getDynaClass() instanceof MutableDynaClass) {
DynaBean dynaBean = (DynaBean) form;
- MutableDynaClass dynaClass = (MutableDynaClass) dynaBean
- .getDynaClass();
+ MutableDynaClass dynaClass =
+ (MutableDynaClass) dynaBean.getDynaClass();
// Add properties
dynaClass.setRestricted(false);
@@ -338,7 +338,7 @@
* some other reason
*/
public ActionForm createActionForm(ActionContext context)
- throws IllegalAccessException, InstantiationException {
+ throws IllegalAccessException, InstantiationException {
ActionServlet actionServlet = null;
if (context instanceof ServletActionContext) {
@@ -379,25 +379,22 @@
// what we really want is to compare against the
// BeanValidatorForm's getInstance()
BeanValidatorForm beanValidatorForm =
- (BeanValidatorForm) form;
+ (BeanValidatorForm) form;
- formClass =
- beanValidatorForm.getInstance().getClass();
+ formClass = beanValidatorForm.getInstance().getClass();
}
- Class configClass = ClassUtils.getApplicationClass(this
- .getType());
+ Class configClass =
+ ClassUtils.getApplicationClass(this.getType());
if (configClass.isAssignableFrom(formClass)) {
log.debug("Can reuse existing instance (non-dynamic)");
return (true);
}
- }
- catch (Exception e) {
- log.debug(
- "Error testing existing instance for reusability; just create a new instance",
- e);
+ } catch (Exception e) {
+ log.debug("Error testing existing instance for reusability; just create a new instance",
+ e);
}
}
}
@@ -418,7 +415,7 @@
if (formProperties.containsKey(config.getName())) {
throw new IllegalArgumentException("Property " + config.getName()
- + " already defined");
+ + " already defined");
}
formProperties.put(config.getName(), config);
@@ -439,11 +436,10 @@
* none, a zero-length array is returned.
*/
public FormPropertyConfig[] findFormPropertyConfigs() {
- FormPropertyConfig[] results = new FormPropertyConfig[formProperties
- .size()];
+ FormPropertyConfig[] results =
+ new FormPropertyConfig[formProperties.size()];
- return ((FormPropertyConfig[]) formProperties.values()
- .toArray(results));
+ return ((FormPropertyConfig[]) formProperties.values().toArray(results));
}
/**
@@ -485,7 +481,7 @@
* @see #processExtends(ModuleConfig)
*/
public void inheritFrom(FormBeanConfig config)
- throws ClassNotFoundException, IllegalAccessException,
+ throws ClassNotFoundException, IllegalAccessException,
InstantiationException, InvocationTargetException {
throwIfConfigured();
@@ -516,7 +512,7 @@
* @see #inheritFrom(FormBeanConfig)
*/
public void processExtends(ModuleConfig moduleConfig)
- throws ClassNotFoundException, IllegalAccessException,
+ throws ClassNotFoundException, IllegalAccessException,
InstantiationException, InvocationTargetException {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
@@ -526,19 +522,18 @@
if ((!extensionProcessed) && (ancestor != null)) {
FormBeanConfig baseConfig =
- moduleConfig.findFormBeanConfig(ancestor);
+ moduleConfig.findFormBeanConfig(ancestor);
if (baseConfig == null) {
throw new NullPointerException("Unable to find "
- + "form bean '" + ancestor + "' to extend.");
+ + "form bean '" + ancestor + "' to extend.");
}
// Check against circule inheritance and make sure the base config's
// own extends have been processed already
if (checkCircularInheritance(moduleConfig)) {
throw new IllegalArgumentException(
- "Circular inheritance detected for form bean "
- + getName());
+ "Circular inheritance detected for form bean " + getName());
}
// Make sure the ancestor's own extension has been processed.
@@ -593,7 +588,7 @@
*/
protected Class formBeanClass() {
ClassLoader classLoader =
- Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().getContextClassLoader();
if (classLoader == null) {
classLoader = this.getClass().getClassLoader();
@@ -601,8 +596,7 @@
try {
return (classLoader.loadClass(getType()));
- }
- catch (Exception e) {
+ } catch (Exception e) {
return (null);
}
}
Modified: struts/action/trunk/src/java/org/apache/struts/config/FormPropertyConfig.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/FormPropertyConfig.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/FormPropertyConfig.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/FormPropertyConfig.java Thu Feb 9 06:11:07 2006
@@ -37,8 +37,7 @@
/**
* The logging instance
*/
- private static final Log log =
- LogFactory.getLog(FormPropertyConfig.class);
+ private static final Log log = LogFactory.getLog(FormPropertyConfig.class);
// ----------------------------------------------------- Instance Variables
// ------------------------------------------------------------- Properties
@@ -110,7 +109,7 @@
* to its initial value.
*/
public FormPropertyConfig(String name, String type, String initial,
- String reset) {
+ String reset) {
this(name, type, initial, reset, 0);
}
@@ -123,8 +122,7 @@
* @param size Size of the array to be created if this property is an
* array with no defined initial value
*/
- public FormPropertyConfig(String name, String type, String initial,
- int size) {
+ public FormPropertyConfig(String name, String type, String initial, int size) {
this(name, type, initial, null, size);
}
@@ -140,7 +138,7 @@
* to its initial value.
*/
public FormPropertyConfig(String name, String type, String initial,
- String reset, int size) {
+ String reset, int size) {
super();
setName(name);
setType(type);
@@ -248,8 +246,8 @@
} else if ("short".equals(baseType)) {
baseClass = Short.TYPE;
} else {
- ClassLoader classLoader = Thread.currentThread()
- .getContextClassLoader();
+ ClassLoader classLoader =
+ Thread.currentThread().getContextClassLoader();
if (classLoader == null) {
classLoader = this.getClass().getClassLoader();
@@ -257,8 +255,7 @@
try {
baseClass = classLoader.loadClass(baseType);
- }
- catch (Throwable t) {
+ } catch (Throwable t) {
baseClass = null;
}
}
@@ -275,25 +272,44 @@
/**
* <p>Return an object representing the initial value of this property.
- * This is calculated according to the following algorithm:</p> <ul>
+ * This is calculated according to the following algorithm:</p>
+ *
+ * <ul>
+ *
* <li>If the value you have specified for the <code>type</code> property
- * represents an array (i.e. it ends with "[]"): <ul> <li>If you have
- * specified a value for the <code>initial</code> property,
- * <code>ConvertUtils.convert</code> will be called to convert it into an
- * instance of the specified array type.</li> <li>If you have not
- * specified a value for the <code>initial</code> property, an array of
- * the length specified by the <code>size</code> property will be created.
- * Each element of the array will be instantiated via the zero-args
+ * represents an array (i.e. it ends with "[]"):
+ *
+ * <ul>
+ *
+ * <li>If you have specified a value for the <code>initial</code>
+ * property, <code>ConvertUtils.convert</code> will be called to convert
+ * it into an instance of the specified array type.</li>
+ *
+ * <li>If you have not specified a value for the <code>initial</code>
+ * property, an array of the length specified by the <code>size</code>
+ * property will be created. Each element of the array will be
+ * instantiated via the zero-args constructor on the specified class (if
+ * any). Otherwise, <code>null</code> will be returned.</li>
+ *
+ * </ul></li>
+ *
+ * <li>If the value you have specified for the <code>type</code> property
+ * does not represent an array:
+ *
+ * <ul>
+ *
+ * <li>If you have specified a value for the <code>initial</code>
+ * property, <code>ConvertUtils.convert</code> will be called to convert
+ * it into an object instance.</li>
+ *
+ * <li>If you have not specified a value for the <code>initial</code>
+ * attribute, Struts will instantiate an instance via the zero-args
* constructor on the specified class (if any). Otherwise,
- * <code>null</code> will be returned.</li> </ul></li> <li>If the value
- * you have specified for the <code>type</code> property does not
- * represent an array: <ul> <li>If you have specified a value for the
- * <code>initial</code> property, <code>ConvertUtils.convert</code> will
- * be called to convert it into an object instance.</li> <li>If you have
- * not specified a value for the <code>initial</code> attribute, Struts
- * will instantiate an instance via the zero-args constructor on the
- * specified class (if any). Otherwise, <code>null</code> will be
- * returned.</li> </ul></li> </ul>
+ * <code>null</code> will be returned.</li>
+ *
+ * </ul></li>
+ *
+ * </ul>
*/
public Object initial() {
Object initialValue = null;
@@ -305,22 +321,19 @@
if (initial != null) {
initialValue = ConvertUtils.convert(initial, clazz);
} else {
- initialValue = Array.newInstance(clazz.getComponentType(),
- size);
+ initialValue =
+ Array.newInstance(clazz.getComponentType(), size);
if (!(clazz.getComponentType().isPrimitive())) {
for (int i = 0; i < size; i++) {
try {
Array.set(initialValue, i,
- clazz.getComponentType().newInstance());
- }
- catch (Throwable t) {
+ clazz.getComponentType().newInstance());
+ } catch (Throwable t) {
log.error("Unable to create instance of "
- + clazz.getName() + " for property="
- + name
- + ", type=" + type + ", initial="
- + initial
- + ", size=" + size + ".");
+ + clazz.getName() + " for property=" + name
+ + ", type=" + type + ", initial=" + initial
+ + ", size=" + size + ".");
//FIXME: Should we just dump the entire application/module ?
}
@@ -334,8 +347,7 @@
initialValue = clazz.newInstance();
}
}
- }
- catch (Throwable t) {
+ } catch (Throwable t) {
initialValue = null;
}
@@ -362,7 +374,7 @@
* values from.
*/
public void inheritFrom(FormPropertyConfig config)
- throws IllegalAccessException, InvocationTargetException,
+ throws IllegalAccessException, InvocationTargetException,
InstantiationException, ClassNotFoundException {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
Modified: struts/action/trunk/src/java/org/apache/struts/config/ForwardConfig.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/ForwardConfig.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/ForwardConfig.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/ForwardConfig.java Thu Feb 9 06:11:07 2006
@@ -50,19 +50,28 @@
/**
* <p>The URL to which this <code>ForwardConfig</code> entry points, which
* must start with a slash ("/") character. It is interpreted according
- * to the following rules:</p> <ul> <li>If <code>contextRelative</code>
- * property is <code>true</code>, the path is considered to be
- * context-relative within the current web application (even if we are in
- * a named module). It will be prefixed by the context path to create a
- * server-relative URL.</li> <li>If the <code>contextRelative</code>
- * property is false, the path is considered to be the module-relative
- * portion of the URL. It will be used as the replacement for the
- * <code>$P</code> marker in the <code>forwardPattern</code> property
- * defined on the {@link ControllerConfig} element for our current module.
- * For the default <code>forwardPattern</code> value of
- * <code>$C$M$P</code>, the resulting server-relative URL will be the
- * concatenation of the context path, the module prefix, and the
- * <code>path</code> from this <code>ForwardConfig</code>.</li> </ul>
+ * to the following rules:</p>
+ *
+ * <ul>
+ *
+ * <li>If <code>contextRelative</code> property is <code>true</code>, the
+ * path is considered to be context-relative within the current web
+ * application (even if we are in a named module). It will be prefixed by
+ * the context path to create a server-relative URL.</li>
+ *
+ * <li>If the <code>contextRelative</code> property is false, the path is
+ * considered to be the module-relative portion of the URL. It will be
+ * used as the replacement for the <code>$P</code> marker in the
+ * <code>forwardPattern</code> property defined on the {@link
+ * ControllerConfig} element for our current module. For the default
+ * <code>forwardPattern</code> value of <code>$C$M$P</code>, the resulting
+ * server-relative URL will be the concatenation of the context path, the
+ * module prefix, and the <code>path</code> from this
+ * <code>ForwardConfig</code>.
+ *
+ * </li>
+ *
+ * </ul>
*/
protected String path = null;
@@ -131,7 +140,7 @@
* @param module Module prefix, if any
*/
public ForwardConfig(String name, String path, boolean redirect,
- String module) {
+ String module) {
super();
setName(name);
setPath(path);
@@ -240,7 +249,7 @@
* @return true if circular inheritance was detected.
*/
protected boolean checkCircularInheritance(ModuleConfig moduleConfig,
- ActionConfig actionConfig) {
+ ActionConfig actionConfig) {
String ancestorName = getExtends();
if (ancestorName == null) {
@@ -344,7 +353,7 @@
* @see #processExtends(ModuleConfig, ActionConfig)
*/
public void inheritFrom(ForwardConfig config)
- throws ClassNotFoundException, IllegalAccessException,
+ throws ClassNotFoundException, IllegalAccessException,
InstantiationException, InvocationTargetException {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
@@ -391,8 +400,8 @@
* @see #inheritFrom(ForwardConfig)
*/
public void processExtends(ModuleConfig moduleConfig,
- ActionConfig actionConfig)
- throws ClassNotFoundException, IllegalAccessException,
+ ActionConfig actionConfig)
+ throws ClassNotFoundException, IllegalAccessException,
InstantiationException, InvocationTargetException {
if (configured) {
throw new IllegalStateException("Configuration is frozen");
@@ -405,7 +414,7 @@
// We only check the action config if we're not a global forward
boolean checkActionConfig =
- (this != moduleConfig.findForwardConfig(getName()));
+ (this != moduleConfig.findForwardConfig(getName()));
// ... and the action config was provided
checkActionConfig &= (actionConfig != null);
@@ -427,15 +436,14 @@
if (baseConfig == null) {
throw new NullPointerException("Unable to find " + "forward '"
- + ancestorName + "' to extend.");
+ + ancestorName + "' to extend.");
}
// Check for circular inheritance and make sure the base config's
// own extends have been processed already
if (checkCircularInheritance(moduleConfig, actionConfig)) {
throw new IllegalArgumentException(
- "Circular inheritance detected for forward "
- + getName());
+ "Circular inheritance detected for forward " + getName());
}
if (!baseConfig.isExtensionProcessed()) {
Modified: struts/action/trunk/src/java/org/apache/struts/config/MessageResourcesConfig.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/MessageResourcesConfig.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/MessageResourcesConfig.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/MessageResourcesConfig.java Thu Feb 9 06:11:07 2006
@@ -36,7 +36,7 @@
* should use.
*/
protected String factory =
- "org.apache.struts.util.PropertyMessageResourcesFactory";
+ "org.apache.struts.util.PropertyMessageResourcesFactory";
/**
* The servlet context attributes key under which this MessageResources
Modified: struts/action/trunk/src/java/org/apache/struts/config/ModuleConfig.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/ModuleConfig.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/ModuleConfig.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/ModuleConfig.java Thu Feb 9 06:11:07 2006
@@ -33,37 +33,47 @@
*/
public interface ModuleConfig {
/**
+ * <p>
* Has this module been completely configured yet. Once this flag has
* been set, any attempt to modify the configuration will return an
* IllegalStateException.
+ * </p>
*/
boolean getConfigured();
/**
+ * <p>
* The controller configuration object for this module.
+ * </p>
*/
ControllerConfig getControllerConfig();
/**
+ * <p>
* The controller configuration object for this module.
+ * </p>
*
* @param cc The controller configuration object for this module.
*/
void setControllerConfig(ControllerConfig cc);
/**
+ * <p>
* The prefix of the context-relative portion of the request URI, used to
* select this configuration versus others supported by the controller
* servlet. A configuration with a prefix of a zero-length String is the
* default configuration for this web module.
+ * </p>
*/
String getPrefix();
/**
+ * <p>
* The prefix of the context-relative portion of the request URI, used to
* select this configuration versus others supported by the controller
* servlet. A configuration with a prefix of a zero-length String is the
* default configuration for this web module.
+ * </p>
*
* @param prefix The prefix of the context-relative portion of the request
* URI.
@@ -71,14 +81,18 @@
public void setPrefix(String prefix);
/**
+ * <p>
* The default class name to be used when creating action form bean
* instances.
+ * </p>
*/
String getActionFormBeanClass();
/**
+ * <p>
* The default class name to be used when creating action form bean
* instances.
+ * </p>
*
* @param actionFormBeanClass default class name to be used when creating
* action form bean instances.
@@ -86,14 +100,18 @@
void setActionFormBeanClass(String actionFormBeanClass);
/**
+ * <p>
* The default class name to be used when creating action mapping
* instances.
+ * </p>
*/
String getActionMappingClass();
/**
+ * <p>
* The default class name to be used when creating action mapping
* instances.
+ * </p>
*
* @param actionMappingClass default class name to be used when creating
* action mapping instances.
@@ -101,8 +119,10 @@
void setActionMappingClass(String actionMappingClass);
/**
+ * <p>
* Add a new <code>ActionConfig</code> instance to the set associated with
* this module.
+ * </p>
*
* @param config The new configuration instance to be added
* @throws IllegalStateException if this module configuration has been
@@ -111,8 +131,10 @@
void addActionConfig(ActionConfig config);
/**
+ * <p>
* Add a new <code>ExceptionConfig</code> instance to the set associated
* with this module.
+ * </p>
*
* @param config The new configuration instance to be added
* @throws IllegalStateException if this module configuration has been
@@ -121,8 +143,10 @@
void addExceptionConfig(ExceptionConfig config);
/**
+ * <p>
* Add a new <code>FormBeanConfig</code> instance to the set associated
* with this module.
+ * </p>
*
* @param config The new configuration instance to be added
* @throws IllegalStateException if this module configuration has been
@@ -131,14 +155,18 @@
void addFormBeanConfig(FormBeanConfig config);
/**
+ * <p>
* The default class name to be used when creating action forward
* instances.
+ * </p>
*/
String getActionForwardClass();
/**
+ * <p>
* The default class name to be used when creating action forward
* instances.
+ * </p>
*
* @param actionForwardClass default class name to be used when creating
* action forward instances.
@@ -146,8 +174,10 @@
void setActionForwardClass(String actionForwardClass);
/**
+ * <p>
* Add a new <code>ForwardConfig</code> instance to the set of global
* forwards associated with this module.
+ * </p>
*
* @param config The new configuration instance to be added
* @throws IllegalStateException if this module configuration has been
@@ -156,8 +186,10 @@
void addForwardConfig(ForwardConfig config);
/**
+ * <p>
* Add a new <code>MessageResourcesConfig</code> instance to the set
* associated with this module.
+ * </p>
*
* @param config The new configuration instance to be added
* @throws IllegalStateException if this module configuration has been
@@ -166,54 +198,67 @@
void addMessageResourcesConfig(MessageResourcesConfig config);
/**
+ * <p>
* Add a newly configured {@link PlugInConfig} instance to the set of
* plug-in Actions for this module.
+ * </p>
*
* @param plugInConfig The new configuration instance to be added
*/
void addPlugInConfig(PlugInConfig plugInConfig);
/**
+ * <p>
* Return the action configuration for the specified path, if any;
* otherwise return <code>null</code>.
+ * </p>
*
* @param path Path of the action configuration to return
*/
ActionConfig findActionConfig(String path);
/**
+ * <p>
* Return the action configurations for this module. If there are none, a
* zero-length array is returned.
+ * </p>
*/
ActionConfig[] findActionConfigs();
/**
+ * <p>
* Return the exception configuration for the specified type, if any;
* otherwise return <code>null</code>.
+ * </p>
*
* @param type Exception class name to find a configuration for
*/
ExceptionConfig findExceptionConfig(String type);
/**
+ * <p>
* Perform a recursive search for an ExceptionConfig registered for this
* class, or for any superclass. This should only be used in the case
* when an <code>ActionConfig</code> is not available; otherwise, use
* <code>ActionConfig.findException(Class)</code> to preserve the search
* order.
+ * </p>
*
* @param type Exception class name to find a configuration for
- * @see ActionConfig.findException(Class)
+ * @see ActionConfig findException(Class)
*/
ExceptionConfig findException(Class type);
/**
+ * <p>
* Return the exception configurations for this module. If there are
* none, a zero-length array is returned.
+ * </p>
*/
ExceptionConfig[] findExceptionConfigs();
/**
+ * <p>
* Return the form bean configuration for the specified key, if any;
* otherwise return <code>null</code>.
*
@@ -222,54 +267,70 @@
FormBeanConfig findFormBeanConfig(String name);
/**
+ * <p>
* Return the form bean configurations for this module. If there are
* none, a zero-length array is returned.
+ * </p>
*/
FormBeanConfig[] findFormBeanConfigs();
/**
+ * <p>
* Return the forward configuration for the specified key, if any;
* otherwise return <code>null</code>.
+ * </p>
*
* @param name Name of the forward configuration to return
*/
ForwardConfig findForwardConfig(String name);
/**
+ * <p>
* Return the form bean configurations for this module. If there are
* none, a zero-length array is returned.
+ * </p>
*/
ForwardConfig[] findForwardConfigs();
/**
+ * <p>
* Return the message resources configuration for the specified key, if
* any; otherwise return <code>null</code>.
+ * </p>
*
* @param key Key of the data source configuration to return
*/
MessageResourcesConfig findMessageResourcesConfig(String key);
/**
+ * <p>
* Return the message resources configurations for this module. If there
* are none, a zero-length array is returned.
+ * </p>
*/
MessageResourcesConfig[] findMessageResourcesConfigs();
/**
+ * <p>
* Return the configured plug-in actions for this module. If there are
* none, a zero-length array is returned.
+ * </p>
*/
PlugInConfig[] findPlugInConfigs();
/**
+ * <p>
* Freeze the configuration of this module. After this method returns,
* any attempt to modify the configuration will return an
* IllegalStateException.
+ * </p>
*/
void freeze();
/**
+ * <p>
* Remove the specified action configuration instance.
+ * </p>
*
* @param config ActionConfig instance to be removed
* @throws IllegalStateException if this module configuration has been
@@ -278,7 +339,9 @@
void removeActionConfig(ActionConfig config);
/**
+ * <p>
* Remove the specified exception configuration instance.
+ * </p>
*
* @param config ActionConfig instance to be removed
* @throws IllegalStateException if this module configuration has been
@@ -287,7 +350,9 @@
void removeExceptionConfig(ExceptionConfig config);
/**
+ * <p>
* Remove the specified form bean configuration instance.
+ * </p>
*
* @param config FormBeanConfig instance to be removed
* @throws IllegalStateException if this module configuration has been
@@ -296,7 +361,9 @@
void removeFormBeanConfig(FormBeanConfig config);
/**
+ * <p>
* Remove the specified forward configuration instance.
+ * </p>
*
* @param config ForwardConfig instance to be removed
* @throws IllegalStateException if this module configuration has been
@@ -305,7 +372,9 @@
void removeForwardConfig(ForwardConfig config);
/**
+ * <p>
* Remove the specified message resources configuration instance.
+ * </p>
*
* @param config MessageResourcesConfig instance to be removed
* @throws IllegalStateException if this module configuration has been
Modified: struts/action/trunk/src/java/org/apache/struts/config/ModuleConfigFactory.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/ModuleConfigFactory.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/ModuleConfigFactory.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/ModuleConfigFactory.java Thu Feb 9 06:11:07 2006
@@ -38,15 +38,14 @@
/**
* Commons Logging instance.
*/
- private static final Log LOG =
- LogFactory.getLog(ModuleConfigFactory.class);
+ private static final Log LOG = LogFactory.getLog(ModuleConfigFactory.class);
/**
* The fully qualified class name to be used for <code>ModuleConfigFactory</code>
* instances.
*/
protected static String factoryClass =
- "org.apache.struts.config.impl.DefaultModuleConfigFactory";
+ "org.apache.struts.config.impl.DefaultModuleConfigFactory";
/**
* Create and return a newly instansiated {@link ModuleConfig}. This
@@ -98,14 +97,11 @@
}
factory = (ModuleConfigFactory) clazz.newInstance();
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
LOG.error("ModuleConfigFactory.createFactory()", e);
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
LOG.error("ModuleConfigFactory.createFactory()", e);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
LOG.error("ModuleConfigFactory.createFactory()", e);
}
Modified: struts/action/trunk/src/java/org/apache/struts/config/PlugInConfig.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/PlugInConfig.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/PlugInConfig.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/PlugInConfig.java Thu Feb 9 06:11:07 2006
@@ -18,6 +18,7 @@
package org.apache.struts.config;
import java.io.Serializable;
+
import java.util.HashMap;
import java.util.Map;
Modified: struts/action/trunk/src/java/org/apache/struts/config/impl/DefaultModuleConfigFactory.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/impl/DefaultModuleConfigFactory.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/impl/DefaultModuleConfigFactory.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/impl/DefaultModuleConfigFactory.java Thu Feb 9 06:11:07 2006
@@ -23,7 +23,7 @@
import java.io.Serializable;
/**
- * A factory for creating {@link ModuleConfig} instances.
+ * <p>A factory for creating {@link ModuleConfig} instances.</p>
*
* @version $Rev$ $Date: 2005-05-07 12:45:39 -0400 (Sat, 07 May 2005)
* $
@@ -31,12 +31,12 @@
* @see ModuleConfigFactory
*/
public class DefaultModuleConfigFactory extends ModuleConfigFactory
- implements Serializable {
+ implements Serializable {
// --------------------------------------------------------- Public Methods
/**
- * Create and return a newly instansiated {@link ModuleConfig}. This
- * method must be implemented by concrete subclasses.
+ * <p>Create and return a newly instansiated {@link ModuleConfig}. This
+ * method must be implemented by concrete subclasses.</p>
*
* @param prefix Module prefix for Configuration
*/
Modified: struts/action/trunk/src/java/org/apache/struts/config/impl/ModuleConfigImpl.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/config/impl/ModuleConfigImpl.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/config/impl/ModuleConfigImpl.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/config/impl/ModuleConfigImpl.java Thu Feb 9 06:11:07 2006
@@ -31,6 +31,7 @@
import org.apache.struts.config.PlugInConfig;
import java.io.Serializable;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -49,9 +50,9 @@
* @since Struts 1.1
*/
public class ModuleConfigImpl extends BaseConfig implements Serializable,
- ModuleConfig {
+ ModuleConfig {
/**
- * Commons Logging instance.
+ * <p>Commons Logging instance. </p>
*/
protected static Log log = LogFactory.getLog(ModuleConfigImpl.class);
@@ -59,88 +60,89 @@
// Instance Variables at end to make comparing Interface and implementation easier.
/**
- * The set of action configurations for this module, if any, keyed by the
- * <code>path</code> property.
+ * <p>The set of action configurations for this module, if any, keyed by
+ * the <code>path</code> property.</p>
*/
protected HashMap actionConfigs = null;
/**
- * The set of action configurations for this module, if any, listed in the
- * order in which they are added.
+ * <p>The set of action configurations for this module, if any, listed in
+ * the order in which they are added.</p>
*/
protected List actionConfigList = null;
/**
- * The set of exception handling configurations for this module, if any,
- * keyed by the <code>type</code> property.
+ * <p>The set of exception handling configurations for this module, if
+ * any, keyed by the <code>type</code> property.</p>
*/
protected HashMap exceptions = null;
/**
- * The set of form bean configurations for this module, if any, keyed by
- * the <code>name</code> property.
+ * <p>The set of form bean configurations for this module, if any, keyed
+ * by the <code>name</code> property.</p>
*/
protected HashMap formBeans = null;
/**
- * The set of global forward configurations for this module, if any, keyed
- * by the <code>name</code> property.
+ * <p>The set of global forward configurations for this module, if any,
+ * keyed by the <code>name</code> property.</p>
*/
protected HashMap forwards = null;
/**
- * The set of message resources configurations for this module, if any,
- * keyed by the <code>key</code> property.
+ * <p>The set of message resources configurations for this module, if any,
+ * keyed by the <code>key</code> property.</p>
*/
protected HashMap messageResources = null;
/**
- * The set of configured plug-in Actions for this module, if any, in the
- * order they were declared and configured.
+ * <p>The set of configured plug-in Actions for this module, if any, in
+ * the order they were declared and configured.</p>
*/
protected ArrayList plugIns = null;
/**
- * The controller configuration object for this module.
+ * <p>The controller configuration object for this module.</p>
*/
protected ControllerConfig controllerConfig = null;
/**
- * The prefix of the context-relative portion of the request URI, used to
- * select this configuration versus others supported by the controller
+ * <p>The prefix of the context-relative portion of the request URI, used
+ * to select this configuration versus others supported by the controller
* servlet. A configuration with a prefix of a zero-length String is the
- * default configuration for this web module.
+ * default configuration for this web module.</p>
*/
protected String prefix = null;
/**
- * The default class name to be used when creating action form bean
- * instances.
+ * <p>The default class name to be used when creating action form bean
+ * instances.</p>
*/
protected String actionFormBeanClass =
- "org.apache.struts.action.ActionFormBean";
+ "org.apache.struts.action.ActionFormBean";
/**
* The default class name to be used when creating action mapping
* instances.
*/
protected String actionMappingClass =
- "org.apache.struts.action.ActionMapping";
+ "org.apache.struts.action.ActionMapping";
/**
* The default class name to be used when creating action forward
* instances.
*/
protected String actionForwardClass =
- "org.apache.struts.action.ActionForward";
+ "org.apache.struts.action.ActionForward";
/**
- * Matches action config paths against compiled wildcard patterns
+ * <p>Matches action config paths against compiled wildcard patterns</p>
*/
protected ActionConfigMatcher matcher = null;
/**
- * Constructor for ModuleConfigImpl. Assumes default configuration.
+ * <p>Constructor for ModuleConfigImpl. Assumes default
+ * configuration.</p>
*
* @since Struts 1.2.8
*/
@@ -149,8 +151,8 @@
}
/**
- * Construct an ModuleConfigImpl object according to the specified
- * parameter values.
+ * <p>Construct an ModuleConfigImpl object according to the specified
+ * parameter values.</p>
*
* @param prefix Context-relative URI prefix for this module
*/
@@ -174,16 +176,16 @@
// --------------------------------------------------------- Public Methods
/**
- * Has this module been completely configured yet. Once this flag has
- * been set, any attempt to modify the configuration will return an
- * IllegalStateException.
+ * </p> Has this module been completely configured yet. Once this flag
+ * has been set, any attempt to modify the configuration will return an
+ * IllegalStateException.</p>
*/
public boolean getConfigured() {
return (this.configured);
}
/**
- * The controller configuration object for this module.
+ * <p>The controller configuration object for this module.</p>
*/
public ControllerConfig getControllerConfig() {
if (this.controllerConfig == null) {
@@ -194,7 +196,7 @@
}
/**
- * The controller configuration object for this module.
+ * <p>The controller configuration object for this module.</p>
*
* @param cc The controller configuration object for this module.
*/
@@ -204,20 +206,20 @@
}
/**
- * The prefix of the context-relative portion of the request URI, used to
- * select this configuration versus others supported by the controller
+ * <p>The prefix of the context-relative portion of the request URI, used
+ * to select this configuration versus others supported by the controller
* servlet. A configuration with a prefix of a zero-length String is the
- * default configuration for this web module.
+ * default configuration for this web module.</p>
*/
public String getPrefix() {
return (this.prefix);
}
/**
- * The prefix of the context-relative portion of the request URI, used to
- * select this configuration versus others supported by the controller
+ * <p>The prefix of the context-relative portion of the request URI, used
+ * to select this configuration versus others supported by the controller
* servlet. A configuration with a prefix of a zero-length String is the
- * default configuration for this web module.
+ * default configuration for this web module.</p>
*/
public void setPrefix(String prefix) {
throwIfConfigured();
@@ -225,16 +227,16 @@
}
/**
- * The default class name to be used when creating action form bean
- * instances.
+ * <p>The default class name to be used when creating action form bean
+ * instances.</p>
*/
public String getActionFormBeanClass() {
return this.actionFormBeanClass;
}
/**
- * The default class name to be used when creating action form bean
- * instances.
+ * <p>The default class name to be used when creating action form bean
+ * instances.</p>
*
* @param actionFormBeanClass default class name to be used when creating
* action form bean instances.
@@ -244,16 +246,16 @@
}
/**
- * The default class name to be used when creating action mapping
- * instances.
+ * <p>The default class name to be used when creating action mapping
+ * instances.</p>
*/
public String getActionMappingClass() {
return this.actionMappingClass;
}
/**
- * The default class name to be used when creating action mapping
- * instances.
+ * <p> The default class name to be used when creating action mapping
+ * instances. </p>
*
* @param actionMappingClass default class name to be used when creating
* action mapping instances.
@@ -263,8 +265,8 @@
}
/**
- * Add a new <code>ActionConfig</code> instance to the set associated with
- * this module.
+ * </p> Ad d a new <code>ActionConfig</code> instance to the set
+ * associated with this module. </p>
*
* @param config The new configuration instance to be added
* @throws IllegalStateException if this module configuration has been
@@ -285,8 +287,8 @@
}
/**
- * Add a new <code>ExceptionConfig</code> instance to the set associated
- * with this module.
+ * <p> Add a new <code>ExceptionConfig</code> instance to the set
+ * associated with this module. </p>
*
* @param config The new configuration instance to be added
* @throws IllegalStateException if this module configuration has been
@@ -305,8 +307,10 @@
}
/**
+ * <p>
* Add a new <code>FormBeanConfig</code> instance to the set associated
* with this module.
+ * </p>
*
* @param config The new configuration instance to be added
* @throws IllegalStateException if this module configuration has been
@@ -325,16 +329,20 @@
}
/**
+ * <p>
* The default class name to be used when creating action forward
* instances.
+ * </p>
*/
public String getActionForwardClass() {
return this.actionForwardClass;
}
/**
+ * <p>
* The default class name to be used when creating action forward
* instances.
+ * </p>
*
* @param actionForwardClass default class name to be used when creating
* action forward instances.
@@ -344,8 +352,10 @@
}
/**
+ * <p>
* Add a new <code>ForwardConfig</code> instance to the set of global
* forwards associated with this module.
+ * </p>
*
* @param config The new configuration instance to be added
* @throws IllegalStateException if this module configuration has been
@@ -364,8 +374,10 @@
}
/**
+ * <p>
* Add a new <code>MessageResourcesConfig</code> instance to the set
* associated with this module.
+ * </p>
*
* @param config The new configuration instance to be added
* @throws IllegalStateException if this module configuration has been
@@ -384,8 +396,10 @@
}
/**
+ * <p>
* Add a newly configured {@link org.apache.struts.config.PlugInConfig}
* instance to the set of plug-in Actions for this module.
+ * </p>
*
* @param plugInConfig The new configuration instance to be added
*/
@@ -395,9 +409,11 @@
}
/**
+ * <p>
* Return the action configuration for the specified path, first looking a
* direct match, then if none found, a wildcard pattern match; otherwise
* return <code>null</code>.
+ * </p>
*
* @param path Path of the action configuration to return
*/
@@ -414,8 +430,10 @@
}
/**
+ * <p>
* Return the action configurations for this module. If there are none, a
* zero-length array is returned.
+ * </p>
*/
public ActionConfig[] findActionConfigs() {
ActionConfig[] results = new ActionConfig[actionConfigList.size()];
@@ -424,8 +442,10 @@
}
/**
+ * <p>
* Return the exception configuration for the specified type, if any;
* otherwise return <code>null</code>.
+ * </p>
*
* @param type Exception class name to find a configuration for
*/
@@ -476,8 +496,10 @@
}
/**
+ * <p>
* Return the exception configurations for this module. If there are
* none, a zero-length array is returned.
+ * </p>
*/
public ExceptionConfig[] findExceptionConfigs() {
ExceptionConfig[] results = new ExceptionConfig[exceptions.size()];
@@ -486,8 +508,10 @@
}
/**
+ * <p>
* Return the form bean configuration for the specified key, if any;
* otherwise return <code>null</code>.
+ * </p>
*
* @param name Name of the form bean configuration to return
*/
@@ -496,8 +520,10 @@
}
/**
+ * <p>
* Return the form bean configurations for this module. If there are
* none, a zero-length array is returned.
+ * </p>
*/
public FormBeanConfig[] findFormBeanConfigs() {
FormBeanConfig[] results = new FormBeanConfig[formBeans.size()];
@@ -506,8 +532,10 @@
}
/**
+ * <p>
* Return the forward configuration for the specified key, if any;
* otherwise return <code>null</code>.
+ * </p>
*
* @param name Name of the forward configuration to return
*/
@@ -516,8 +544,10 @@
}
/**
+ * <p>
* Return the form bean configurations for this module. If there are
* none, a zero-length array is returned.
+ * </p>
*/
public ForwardConfig[] findForwardConfigs() {
ForwardConfig[] results = new ForwardConfig[forwards.size()];
@@ -526,8 +556,10 @@
}
/**
+ * <p>
* Return the message resources configuration for the specified key, if
* any; otherwise return <code>null</code>.
+ * </p>
*
* @param key Key of the data source configuration to return
*/
@@ -536,21 +568,23 @@
}
/**
+ * <p>
* Return the message resources configurations for this module. If there
* are none, a zero-length array is returned.
+ * </p>
*/
public MessageResourcesConfig[] findMessageResourcesConfigs() {
MessageResourcesConfig[] results =
- new MessageResourcesConfig[messageResources
- .size()];
+ new MessageResourcesConfig[messageResources.size()];
- return ((MessageResourcesConfig[]) messageResources.values()
- .toArray(results));
+ return ((MessageResourcesConfig[]) messageResources.values().toArray(results));
}
/**
+ * <p>
* Return the configured plug-in actions for this module. If there are
* none, a zero-length array is returned.
+ * </p>
*/
public PlugInConfig[] findPlugInConfigs() {
PlugInConfig[] results = new PlugInConfig[plugIns.size()];
@@ -559,9 +593,11 @@
}
/**
+ * <p>
* Freeze the configuration of this module. After this method returns,
* any attempt to modify the configuration will return an
* IllegalStateException.
+ * </p>
*/
public void freeze() {
super.freeze();
@@ -608,7 +644,9 @@
}
/**
+ * <p>
* Remove the specified action configuration instance.
+ * </p>
*
* @param config ActionConfig instance to be removed
* @throws IllegalStateException if this module configuration has been
@@ -622,7 +660,9 @@
}
/**
+ * <p>
* Remove the specified exception configuration instance.
+ * </p>
*
* @param config ActionConfig instance to be removed
* @throws IllegalStateException if this module configuration has been
@@ -634,7 +674,9 @@
}
/**
+ * <p>
* Remove the specified form bean configuration instance.
+ * </p>
*
* @param config FormBeanConfig instance to be removed
* @throws IllegalStateException if this module configuration has been
@@ -646,7 +688,9 @@
}
/**
+ * <p>
* Remove the specified forward configuration instance.
+ * </p>
*
* @param config ForwardConfig instance to be removed
* @throws IllegalStateException if this module configuration has been
@@ -658,7 +702,9 @@
}
/**
+ * <p>
* Remove the specified message resources configuration instance.
+ * </p>
*
* @param config MessageResourcesConfig instance to be removed
* @throws IllegalStateException if this module configuration has been
Modified: struts/action/trunk/src/java/org/apache/struts/mock/MockActionServlet.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/mock/MockActionServlet.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/mock/MockActionServlet.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/mock/MockActionServlet.java Thu Feb 9 06:11:07 2006
@@ -44,23 +44,23 @@
protected ServletConfig servletConfig;
/**
- * Constructor.
+ * <p>Constructor.</p>
*/
public MockActionServlet(ServletContext servletContext,
- ServletConfig servletConfig) {
+ ServletConfig servletConfig) {
this.servletContext = servletContext;
this.servletConfig = servletConfig;
}
/**
- * Constructor.
+ * <p>Constructor.</p>
*/
public MockActionServlet() {
; // do nothing
}
/**
- * Set property
+ * <p> Set property </p>
*
* @param servletContext
*/
@@ -69,7 +69,7 @@
}
/**
- * Get property
+ * <p> Get property </p>
*
* @return
*/
@@ -78,7 +78,7 @@
}
/**
- * Set property
+ * <p> Set property
*
* @param servletConfig
*/
@@ -87,7 +87,7 @@
}
/**
- * Get property
+ * <p> Get property </p>
*
* @return
*/
@@ -96,11 +96,11 @@
}
/**
- * Expose as public so that test classes can exercise things which
- * retrieve messages.
+ * <p> Expose as public so that test classes can exercise things which
+ * retrieve messages. </p>
*/
public void initInternal()
- throws ServletException {
+ throws ServletException {
super.initInternal();
}
}
Modified: struts/action/trunk/src/java/org/apache/struts/mock/MockFormBean.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/mock/MockFormBean.java?rev=376300&r1=376299&r2=376300&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/mock/MockFormBean.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/mock/MockFormBean.java Thu Feb 9 06:11:07 2006
@@ -30,8 +30,10 @@
*/
public class MockFormBean extends ActionForm {
/*
+ * <p>
* Flag to indicate whether certain methods should complete properly
* or throw an Exception
+ * </p>
*/
private boolean throwException = false;
private boolean returnNulls = false;
@@ -57,7 +59,7 @@
}
public MockFormBean(boolean throwException, boolean returnNulls,
- String defaultValue) {
+ String defaultValue) {
this(throwException, returnNulls);
this.defaultValue = defaultValue;
}
@@ -67,25 +69,25 @@
}
public MockFormBean(boolean throwException, boolean returnNulls,
- String defaultValue, int arrayCount) {
+ String defaultValue, int arrayCount) {
this(throwException, returnNulls, defaultValue);
this.arrayCount = arrayCount;
}
public MockFormBean(boolean throwException, boolean returnNulls,
- Double defaultDouble) {
+ Double defaultDouble) {
this(throwException, returnNulls);
this.defaultDouble = defaultDouble;
}
// ------------------- public methods
public String getJustThrowAnException()
- throws Exception {
+ throws Exception {
throw new Exception();
}
public Object getThrowIllegalAccessException()
- throws Exception {
+ throws Exception {
if (true) {
throw new IllegalAccessException();
}
@@ -94,7 +96,7 @@
}
public String getStringValue()
- throws Exception {
+ throws Exception {
if (throwException) {
throw new Exception();
}
@@ -107,7 +109,7 @@
}
public String[] getStringArray()
- throws Exception {
+ throws Exception {
if (throwException) {
throw new Exception();
}
@@ -126,7 +128,7 @@
}
public Double getDoubleValue()
- throws Exception {
+ throws Exception {
if (throwException) {
throw new Exception();
}
@@ -158,8 +160,8 @@
public Map getMapPropertyArrayValues() {
HashMap map = new HashMap();
- map.put("foo1", new String[]{"bar1", "baz1"});
- map.put("foo2", new String[]{"bar2", "baz2"});
+ map.put("foo1", new String[] { "bar1", "baz1" });
+ map.put("foo2", new String[] { "bar2", "baz2" });
return (map);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org