[CONF] Confluence Changes in the last 24 hours

2007-07-07 Thread confluence
-
This is a daily summary of all recent changes in Confluence.

-
Updated Spaces:
-

Apache CXF 2.0 Documentation (CXF20DOC) 
http://cwiki.apache.org/confluence/display/CXF20DOC
|
|-Pages Added or Edited in This Space
 |-- XFire Migration Guide was last edited by mabaumga (08:39 AM).
 |   http://cwiki.apache.org/confluence/display/CXF20DOC/XFire+Migration+Guide
 |-- WSDL to Java was last edited by mmao (02:22 AM).
 |   http://cwiki.apache.org/confluence/display/CXF20DOC/WSDL+to+Java

Apache ActiveMQ (ACTIVEMQ) http://cwiki.apache.org/confluence/display/ACTIVEMQ
|
|-Pages Added or Edited in This Space
 |-- Articles was last edited by bsnyder (07:36 AM).
 |   http://cwiki.apache.org/confluence/display/ACTIVEMQ/Articles

Apache Geronimo v2.0 (GMOxDOC20) 
http://cwiki.apache.org/confluence/display/GMOxDOC20
|
|-Pages Added or Edited in This Space
 |-- Creating a new sample was last edited by [EMAIL PROTECTED] (07:14 AM).
 |   http://cwiki.apache.org/confluence/display/GMOxDOC20/Creating+a+new+sample

Apache Directory SandBox (DIRxSBOX) 
http://cwiki.apache.org/confluence/display/DIRxSBOX
|
|-Pages Added or Edited in This Space
 |-- Draft - ACI Based Access Control - Step by Step Guide was created by 
ersiner (06:47 AM).
 |   
http://cwiki.apache.org/confluence/display/DIRxSBOX/Draft+-+ACI+Based+Access+Control+-+Step+by+Step+Guide

Apache ServiceMix (SM) http://cwiki.apache.org/confluence/display/SM
|
|-Pages Added or Edited in This Space
 |-- Flows was created by achen001 (10:20 AM).
 |   http://cwiki.apache.org/confluence/display/SM/Flows

Apache Cayenne Website (CAYSITE) 
http://cwiki.apache.org/confluence/display/CAYSITE
|
|-Pages Added or Edited in This Space
 |-- Documentation was last edited by andrus (03:39 AM).
 |   http://cwiki.apache.org/confluence/display/CAYSITE/Documentation

Apache Struts 2 Documentation (WW) http://cwiki.apache.org/confluence/display/WW
 |
 |-New Comments in This Space
 |-- http://cwiki.apache.org/confluence/pages/viewpage.action?pageId=33168 (1)

Tuscany Wiki (TUSCANYWIKI) 
http://cwiki.apache.org/confluence/display/TUSCANYWIKI
|
|-Pages Added or Edited in This Space
 |-- Tuscany Geronimo Integration was created by rfeng (03:33 PM).
 |   
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Tuscany+Geronimo+Integration

Apache Cayenne Documentation (CAYDOC) 
http://cwiki.apache.org/confluence/display/CAYDOC
|
|-Pages Added or Edited in This Space
 |-- Overview was last edited by andrus (09:50 AM).
 |   http://cwiki.apache.org/confluence/display/CAYDOC/Overview
 |-- Documentation was last edited by andrus (03:44 AM).
 |   http://cwiki.apache.org/confluence/display/CAYDOC/Documentation
 |-- Cayenne Guide was last edited by andrus (03:37 AM).
 |   http://cwiki.apache.org/confluence/display/CAYDOC/Cayenne+Guide

UIMA (UIMA) http://cwiki.apache.org/confluence/display/UIMA
|
|-Pages Added or Edited in This Space
 |-- TestPlan2.2 was last edited by alally (01:15 PM).
 |   http://cwiki.apache.org/confluence/display/UIMA/TestPlan2.2
 |-- TestPlanCpp2.2 was created by eaepstein (11:56 AM).
 |   http://cwiki.apache.org/confluence/display/UIMA/TestPlanCpp2.2
 |-- Release Plan was last edited by eaepstein (10:12 AM).
 |   http://cwiki.apache.org/confluence/display/UIMA/Release+Plan

Apache Tuscany (TUSCANY) http://cwiki.apache.org/confluence/display/TUSCANY
|
|-Pages Added or Edited in This Space
 |-- Tuscany SCA Web Application Integration Story was last edited by [EMAIL 
PROTECTED] (03:47 PM).
 |   
http://cwiki.apache.org/confluence/display/TUSCANY/Tuscany+SCA+Web+Application+Integration+Story

-
Updated User Profiles:
-

[EMAIL PROTECTED]
|- http://cwiki.apache.org/confluence/display/[EMAIL PROTECTED]

-
CONFLUENCE INFORMATION
This message is automatically generated by Confluence

Unsubscribe or edit your notifications preferences
   http://cwiki.apache.org/confluence/users/viewnotifications.action

If you think it was sent incorrectly contact one of the administrators
   http://cwiki.apache.org/confluence/administrators.action

If you want more information on Confluence, or have a bug to report see
   http://www.atlassian.com/software/confluence




svn commit: r554151 - in /struts/maven/trunk/struts2-archetype-blank: pom.xml src/main/resources/archetype-resources/pom.xml

2007-07-07 Thread mrdon
Author: mrdon
Date: Sat Jul  7 00:15:57 2007
New Revision: 554151

URL: http://svn.apache.org/viewvc?view=rev&rev=554151
Log:
Updating to 2.0.8

Modified:
struts/maven/trunk/struts2-archetype-blank/pom.xml

struts/maven/trunk/struts2-archetype-blank/src/main/resources/archetype-resources/pom.xml

Modified: struts/maven/trunk/struts2-archetype-blank/pom.xml
URL: 
http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-blank/pom.xml?view=diff&rev=554151&r1=554150&r2=554151
==
--- struts/maven/trunk/struts2-archetype-blank/pom.xml (original)
+++ struts/maven/trunk/struts2-archetype-blank/pom.xml Sat Jul  7 00:15:57 2007
@@ -9,7 +9,7 @@
 
   4.0.0
   struts2-archetype-blank
-  2.0.5-SNAPSHOT
+  2.0.8-SNAPSHOT
   maven-plugin
   Struts 2 Archetypes - Blank
 

Modified: 
struts/maven/trunk/struts2-archetype-blank/src/main/resources/archetype-resources/pom.xml
URL: 
http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-blank/src/main/resources/archetype-resources/pom.xml?view=diff&rev=554151&r1=554150&r2=554151
==
--- 
struts/maven/trunk/struts2-archetype-blank/src/main/resources/archetype-resources/pom.xml
 (original)
+++ 
struts/maven/trunk/struts2-archetype-blank/src/main/resources/archetype-resources/pom.xml
 Sat Jul  7 00:15:57 2007
@@ -21,13 +21,13 @@
 
 org.springframework
 spring-mock
-2.0.1
+2.0.5
 test
 
 
 org.springframework
 spring-core
-2.0.1
+2.0.5
 test
 
 
@@ -48,7 +48,7 @@
 
 org.apache.struts
 struts2-core
-2.0.5
+2.0.8
 
 
 




svn commit: r554201 - /struts/maven/trunk/struts2-archetype-plugin/src/main/resources/archetype-resources/src/main/resources/struts-plugin.xml

2007-07-07 Thread mrdon
Author: mrdon
Date: Sat Jul  7 06:37:31 2007
New Revision: 554201

URL: http://svn.apache.org/viewvc?view=rev&rev=554201
Log:
Fix result-type name

Modified:

struts/maven/trunk/struts2-archetype-plugin/src/main/resources/archetype-resources/src/main/resources/struts-plugin.xml

Modified: 
struts/maven/trunk/struts2-archetype-plugin/src/main/resources/archetype-resources/src/main/resources/struts-plugin.xml
URL: 
http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-plugin/src/main/resources/archetype-resources/src/main/resources/struts-plugin.xml?view=diff&rev=554201&r1=554200&r2=554201
==
--- 
struts/maven/trunk/struts2-archetype-plugin/src/main/resources/archetype-resources/src/main/resources/struts-plugin.xml
 (original)
+++ 
struts/maven/trunk/struts2-archetype-plugin/src/main/resources/archetype-resources/src/main/resources/struts-plugin.xml
 Sat Jul  7 06:37:31 2007
@@ -40,9 +40,9 @@
In this example, we create a package that defines a result: -->
 
 
-
+
 
-
+
 
 
 




svn commit: r554216 - /struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java

2007-07-07 Thread pbenedict
Author: pbenedict
Date: Sat Jul  7 08:00:03 2007
New Revision: 554216

URL: http://svn.apache.org/viewvc?view=rev&rev=554216
Log:
STR-1674: Limit cancellation change to no form only

Modified:

struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java

Modified: 
struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java
URL: 
http://svn.apache.org/viewvc/struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java?view=diff&rev=554216&r1=554215&r2=554216
==
--- 
struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java
 (original)
+++ 
struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java
 Sat Jul  7 08:00:03 2007
@@ -57,11 +57,6 @@
 return (false);
 }
 
-// If request is cancelled, form manipulation is prevented
-if (actionCtx.getCancelled().booleanValue()) {
-return (false);
-}
-
 // Reset and repopulate the form bean property values
 reset(actionCtx, actionConfig, actionForm);
 populate(actionCtx, actionConfig, actionForm);




svn commit: r554219 - /struts/site/src/site/fml/kickstart.fml

2007-07-07 Thread husted
Author: husted
Date: Sat Jul  7 08:31:16 2007
New Revision: 554219

URL: http://svn.apache.org/viewvc?view=rev&rev=554219
Log:
Add FAQs for security vulnerabilities and press inquiries. (Of course, we will 
need to update the security@ address when the new [EMAIL PROTECTED] address is 
setup.)

Modified:
struts/site/src/site/fml/kickstart.fml

Modified: struts/site/src/site/fml/kickstart.fml
URL: 
http://svn.apache.org/viewvc/struts/site/src/site/fml/kickstart.fml?view=diff&rev=554219&r1=554218&r2=554219
==
--- struts/site/src/site/fml/kickstart.fml (original)
+++ struts/site/src/site/fml/kickstart.fml Sat Jul  7 08:31:16 2007
@@ -225,9 +225,13 @@
 in your
 email client before posting.
 
+
+  Queries from the press (and ONLY queries from the press, NOT 
support questions or 
+  anything else!) should go to our media relations address: 
[press (at) apache (dot) org].
+
 
 
-
+
 
 Is commercial support available?
 
@@ -269,6 +273,27 @@
 can apply the patch to your copy of the framework and 
still use
 the feature in your own application. (Which is what open
 source is ~really~ all about.)
+
+
+
+
+Is there a press kit for Apache Struts?
+
+
+  No, outside of our announcements 
page, there is not a formal press or media kit for Apache Struts. 
+  Queries from the press (and ONLY queries from the press, NOT 
support questions or 
+  anything else!) should go to our media relations address: 
[press (at) apache (dot) org].
+
+
+
+
+Where can I report a potential security 
vulnerability?
+
+
+  If you believe you've found a security vulnerability in 
Apache Struts, please contact our 
+  security address - any emails not relating to security 
vulnerabilities will be ignored without
+  a reply (all security related information will be kept 
confidential unless otherwise indicated): 
+  [security (at) apache (dot) org].
 
 
 




svn commit: r554223 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/components/IteratorComponent.java test/java/org/apache/struts2/views/jsp/IteratorTagTest.java

2007-07-07 Thread musachy
Author: musachy
Date: Sat Jul  7 08:43:51 2007
New Revision: 554223

URL: http://svn.apache.org/viewvc?view=rev&rev=554223
Log:
WW-2024 Iterator tag does associate a value with the name specified on the "id" 
property when the value is null

Modified:

struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java

struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IteratorTagTest.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java?view=diff&rev=554223&r1=554222&r2=554223
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java
 Sat Jul  7 08:43:51 2007
@@ -248,7 +248,7 @@
 
 String id = getId();
 
-if ((id != null) && (currentValue != null)) {
+if (id != null) {
 //pageContext.setAttribute(id, currentValue);
 //pageContext.setAttribute(id, currentValue, 
PageContext.REQUEST_SCOPE);
 stack.getContext().put(id, currentValue);

Modified: 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IteratorTagTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IteratorTagTest.java?view=diff&rev=554223&r1=554222&r2=554223
==
--- 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IteratorTagTest.java
 (original)
+++ 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IteratorTagTest.java
 Sat Jul  7 08:43:51 2007
@@ -101,6 +101,49 @@
 result = tag.doEndTag();
 assertEquals(result, TagSupport.EVAL_PAGE);
 }
+
+public void testIteratingWithIdSpecifiedAndNullElementOnCollection() 
throws Exception {
+List list = new ArrayList();
+list.add("one");
+list.add(null);
+list.add("three");
+
+Foo foo = new Foo();
+foo.setList(list);
+
+stack.push(foo);
+
+tag.setValue("list");
+tag.setId("myId");
+
+// one
+int result = tag.doStartTag();
+assertEquals(result, TagSupport.EVAL_BODY_INCLUDE);
+assertEquals(stack.peek(), "one");
+assertEquals(stack.getContext().get("myId"), "one");
+
+
+tag.doInitBody();
+
+// two
+result = tag.doAfterBody();
+assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
+assertNull(stack.peek());
+assertNull(stack.getContext().get("myId"));
+
+
+// three
+result = tag.doAfterBody();
+assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
+assertEquals(stack.peek(), "three");
+assertEquals(stack.getContext().get("myId"), "three");
+
+result = tag.doAfterBody();
+assertEquals(result, TagSupport.SKIP_BODY);
+
+result = tag.doEndTag();
+assertEquals(result, TagSupport.EVAL_PAGE);
+}
 
 
 public void testArrayIterator() {




svn commit: r554228 - /struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ContextBean.java

2007-07-07 Thread musachy
Author: musachy
Date: Sat Jul  7 10:08:55 2007
New Revision: 554228

URL: http://svn.apache.org/viewvc?view=rev&rev=554228
Log:
WW-2027 Tags that push values into the value stack should use the "var" 
attribute to specify the name of the variable
* Make ContextBean abstract

Modified:

struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ContextBean.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ContextBean.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ContextBean.java?view=diff&rev=554228&r1=554227&r2=554228
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ContextBean.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ContextBean.java
 Sat Jul  7 10:08:55 2007
@@ -27,7 +27,7 @@
 /**
  * Base class for control and data tags
  */
-public class ContextBean extends Component {
+public abstract class ContextBean extends Component {
 protected String var;
 
 public ContextBean(ValueStack stack) {




svn commit: r554257 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/components/Set.java main/java/org/apache/struts2/views/jsp/SetTag.java site/resources/tags/set.html

2007-07-07 Thread musachy
Author: musachy
Date: Sat Jul  7 13:30:04 2007
New Revision: 554257

URL: http://svn.apache.org/viewvc?view=rev&rev=554257
Log:
WW-2027 Tags that push values into the value stack should use the "var" 
attribute to specify the name of the variable
* Deprecate 'name' on 'set', use 'var' instead

Modified:

struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java

struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/SetTag.java
struts/struts2/trunk/core/src/site/resources/tags/set.html

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java?view=diff&rev=554257&r1=554256&r2=554257
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java 
(original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java 
Sat Jul  7 13:30:04 2007
@@ -78,8 +78,7 @@
  *
  */
 @StrutsTag(name="set", tldBodyContent="JSP", 
tldTagClass="org.apache.struts2.views.jsp.SetTag", description="Assigns a value 
to a variable in a specified scope")
-public class Set extends Component {
-protected String name;
+public class Set extends ContextBean {
 protected String scope;
 protected String value;
 
@@ -92,47 +91,41 @@
 
 Object o;
 if (value == null) {
-   if (body!=null && !body.equals("")) {
-   o = body;
-   } else {
-   o = findValue("top");
-   }
+if (body != null && !body.equals("")) {
+o = body;
+} else {
+o = findValue("top");
+}
 } else {
-   o = findValue(value);
+o = findValue(value);
 }
 
 body="";
-
-String name;
-if (altSyntax()) {
-name = findString(this.name, "name", "Name is required");
-} else {
-name = this.name;
-
-if (this.name == null) {
-throw fieldError("name", "Name is required", null);
-}
-}
-
+
 if ("application".equalsIgnoreCase(scope)) {
-stack.setValue("#application['" + name + "']", o);
+stack.setValue("#application['" + getVar() + "']", o);
 } else if ("session".equalsIgnoreCase(scope)) {
-stack.setValue("#session['" + name + "']", o);
+stack.setValue("#session['" + getVar() + "']", o);
 } else if ("request".equalsIgnoreCase(scope)) {
-stack.setValue("#request['" + name + "']", o);
+stack.setValue("#request['" + getVar() + "']", o);
 } else if ("page".equalsIgnoreCase(scope)) {
-stack.setValue("#attr['" + name + "']", o, false);
+stack.setValue("#attr['" + getVar() + "']", o, false);
 } else {
-stack.getContext().put(name, o);
-stack.setValue("#attr['" + name + "']", o, false);
+stack.getContext().put(getVar(), o);
+stack.setValue("#attr['" + getVar() + "']", o, false);
 }
 
 return super.end(writer, body);
 }
 
-@StrutsTagAttribute(description=" The name of the new variable that is 
assigned the value of value", required=true)
+@StrutsTagAttribute(description="Name used to reference the value pushed 
into the Value Stack", required=true)
+public void setVar(String var) {
+   super.setVar(var);
+}
+
+@StrutsTagAttribute(description="Deprecated. Use 'var' instead", 
required=true)
 public void setName(String name) {
-this.name = name;
+setVar(name);
 }
 
 @StrutsTagAttribute(description="The scope in which to assign the 
variable. Can be application" +

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/SetTag.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/SetTag.java?view=diff&rev=554257&r1=554256&r2=554257
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/SetTag.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/SetTag.java
 Sat Jul  7 13:30:04 2007
@@ -32,11 +32,10 @@
 /**
  * @see Set
  */
-public class SetTag extends ComponentTagSupport {
+public class SetTag extends ContextBeanTag {
 
 private static final long serialVersionUID = -5074213926790716974L;
 
-protected String name;
 protected String scope;
 protected String value;
 
@@ -48,13 +47,12 @@
 super.populateParams();
 
 Set set = (Set) component;
-set.setName(name);
 set.setScope(scope);
 set.setValue(value);
 }
 
 public void setName(String name) {
- 

svn commit: r554267 - in /struts/site/src/site: fml/kickstart.fml resources/doap_Struts.rdf

2007-07-07 Thread husted
Author: husted
Date: Sat Jul  7 14:13:48 2007
New Revision: 554267

URL: http://svn.apache.org/viewvc?view=rev&rev=554267
Log:
Add anchor links to new FAQs. Update doap file. 

Modified:
struts/site/src/site/fml/kickstart.fml
struts/site/src/site/resources/doap_Struts.rdf

Modified: struts/site/src/site/fml/kickstart.fml
URL: 
http://svn.apache.org/viewvc/struts/site/src/site/fml/kickstart.fml?view=diff&rev=554267&r1=554266&r2=554267
==
--- struts/site/src/site/fml/kickstart.fml (original)
+++ struts/site/src/site/fml/kickstart.fml Sat Jul  7 14:13:48 2007
@@ -225,10 +225,6 @@
 in your
 email client before posting.
 
-
-  Queries from the press (and ONLY queries from the press, NOT 
support questions or 
-  anything else!) should go to our media relations address: 
[press (at) apache (dot) org].
-
 
 
 
@@ -276,17 +272,17 @@
 
 
 
-
+
 Is there a press kit for Apache Struts?
 
 
-  No, outside of our announcements 
page, there is not a formal press or media kit for Apache Struts. 
+  Except for our announcements 
page, there is not a formal press or media kit for Apache Struts. 
   Queries from the press (and ONLY queries from the press, NOT 
support questions or 
   anything else!) should go to our media relations address: 
[press (at) apache (dot) org].
 
 
 
-
+
 Where can I report a potential security 
vulnerability?
 
 

Modified: struts/site/src/site/resources/doap_Struts.rdf
URL: 
http://svn.apache.org/viewvc/struts/site/src/site/resources/doap_Struts.rdf?view=diff&rev=554267&r1=554266&r2=554267
==
--- struts/site/src/site/resources/doap_Struts.rdf (original)
+++ struts/site/src/site/resources/doap_Struts.rdf Sat Jul  7 14:13:48 2007
@@ -19,8 +19,8 @@
 Apache Struts
 http://struts.apache.org"; />
 http://struts.apache.org"; />
-Home of several MVC Web Frameworks
-The goal of the Apache Struts project is to encourage 
application architectures based on the "Model 2" approach, a variation of the 
classic Model-View-Controller (MVC) design paradigm.
+Apache Struts is a free open-source framework for creating Java 
web applications.
+The Apache Struts Project offers two major versions of the 
Struts framework. Struts 1 is recognized as the most popular web application 
framework for Java. Struts 1 is the best choice for teams who value proven 
solutions to common problems. Struts 2 was originally known as WebWork 2. The 
2.x framework is the best choice for teams who value elegant solutions to 
difficult problems.
 http://issues.apache.org/struts/"; />
 http://struts.apache.org/mail.html"; />
 http://struts.apache.org/downloads.html"; />