[CONF] Confluence Changes in the last 24 hours

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

-
Updated Spaces:
-

Apache Camel (CAMEL) http://cwiki.apache.org/confluence/display/CAMEL
 |
 |-New Comments in This Space
 |-- http://cwiki.apache.org/confluence/display/CAMEL/Spring+Example (2)

Apache Struts 2 Documentation (WW) http://cwiki.apache.org/confluence/display/WW
|
|-Pages Added or Edited in This Space
 |-- Core Developers Guide was last edited by [EMAIL PROTECTED] (09:57 AM).
 |   http://cwiki.apache.org/confluence/display/WW/Core+Developers+Guide
 |-- Localization was last edited by husted (04:41 AM).
 |   http://cwiki.apache.org/confluence/display/WW/Localization
 |-- Tutorials was last edited by husted (04:39 AM).
 |   http://cwiki.apache.org/confluence/display/WW/Tutorials

Apache MINA (MINA) http://cwiki.apache.org/confluence/display/MINA
|
|-Pages Added or Edited in This Space
 |-- Index was last edited by trustin (08:11 PM).
 |   http://cwiki.apache.org/confluence/display/MINA/Index
 |-- Apache MINA 1.0.5 and 1.1.2 Released was created by trustin (07:42 PM).
 |   
http://cwiki.apache.org/confluence/display/MINA/2007/08/12/Apache+MINA+1.0.5+and+1.1.2+Released
 |-- Developer Guide was last edited by trustin (07:21 PM).
 |   http://cwiki.apache.org/confluence/display/MINA/Developer+Guide
 |-- Downloads was last edited by trustin (07:06 PM).
 |   http://cwiki.apache.org/confluence/display/MINA/Downloads


-
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: r565259 [9/9] - in /struts/struts2/branches/STRUTS_2_0_X/core/src: main/java/org/apache/struts2/views/annotations/ site/resources/tags/

2007-08-13 Thread mrdon
Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html?view=diff&rev=565259&r1=565258&r2=565259
==
--- struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html 
(original)
+++ struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html 
Mon Aug 13 00:55:18 2007
@@ -31,7 +31,7 @@
action
false

-   true
+   false
String
The 
action to generate the URL for, if not using value

@@ -39,7 +39,7 @@
anchor
false

-   true
+   false
String
The 
anchor for this URL

@@ -47,7 +47,7 @@
encode
false
true
-   true
+   false
Boolean
Whether 
to encode parameters

@@ -55,7 +55,7 @@
escapeAmp
false
true
-   true
+   false
Boolean
Specifies 
whether to escape ampersand (&) to (&) or not

@@ -63,7 +63,7 @@
id
false

-   true
+   false
String
id for 
referencing element. For UI and form tags it will be used as HTML id 
attribute

@@ -71,7 +71,7 @@
includeContext
false
true
-   true
+   false
Boolean
Whether 
actual context should be included in URL

@@ -79,7 +79,7 @@
includeParams
false
get
-   true
+   false
String
The 
includeParams attribute may have the value 'none', 'get' or 'all'

@@ -87,7 +87,7 @@
method
false

-   true
+   false
String
The 
method of action to use

@@ -95,7 +95,7 @@
namespace
false

-   true
+   false
String
The 
namespace to use

@@ -103,7 +103,7 @@
portletMode
false

-   true
+   false
String
The 
resulting portlet mode

@@ -111,7 +111,7 @@
portletUrlType
false

-   true
+   false
String
Specifies 
if t

svn commit: r565264 - in /struts/struts2/trunk/plugins/dojo/src: main/java/org/apache/struts2/dojo/components/ main/java/org/apache/struts2/dojo/views/jsp/ui/ main/resources/template/ajax/ test/java/o

2007-08-13 Thread rgielen
Author: rgielen
Date: Mon Aug 13 01:13:30 2007
New Revision: 565264

URL: http://svn.apache.org/viewvc?view=rev&rev=565264
Log:
WW-2108:
Make  being able to remember last selected tab using a cookie

Added:

struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTagTest.java
Modified:

struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java

struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTag.java

struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/tabbedpanel.ftl

struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/TabbedPanel-1.txt

struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/TabbedPanel-2.txt

struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/TabbedPanel-3.txt

Modified: 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java?view=diff&rev=565264&r1=565263&r2=565264
==
--- 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java
 (original)
+++ 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java
 Mon Aug 13 01:13:30 2007
@@ -34,6 +34,11 @@
  * 
  * The tabbedpanel widget is primarily an AJAX component, where each tab can 
either be local content or remote
  * content (refreshed each time the user selects that tab).
+ * If the useSelectedTabCookie attribute is set to true, the id of the 
selected tab is saved in a cookie on activation.
+ * When coming back to this view, the cookie is read and the tab will be 
activated again, unless an actual value for the
+ * selectedTab attribute is specified.
+ * If you want to use the cookie feature, please be sure that you provide a 
unique id for your tabbedpanel component,
+ * since this will also be the identifying name component of the stored 
cookie.
  * 
  *
  *  Examples
@@ -92,7 +97,8 @@
 protected String beforeSelectTabNotifyTopics;
 protected String afterSelectTabNotifyTopics;
 protected String disabledTabCssClass; 
-
+protected String useSelectedTabCookie;
+
 public TabbedPanel(ValueStack stack, HttpServletRequest request, 
HttpServletResponse response) {
 super(stack, request, response);
 }
@@ -123,7 +129,10 @@
 addParameter("afterSelectTabNotifyTopics", 
findString(afterSelectTabNotifyTopics));
 if (disabledTabCssClass!= null)
 addParameter("disabledTabCssClass", 
findString(disabledTabCssClass));
-
+if(useSelectedTabCookie != null) {
+addParameter("useSelectedTabCookie", 
findString(useSelectedTabCookie));
+}
+
 }
 
 @Override
@@ -194,5 +203,12 @@
 @StrutsTagAttribute(description="Css class to be applied to the tab button 
of disabled tabs", defaultValue="strutsDisabledTab")
 public void setDisabledTabCssClass(String disabledTabCssClass) {
 this.disabledTabCssClass = disabledTabCssClass;
+}
+
+@StrutsTagAttribute(required = false, defaultValue = "false", description 
= "If set to true, the id of the last selected " +
+"tab will be stored in cookie. If the view is rendered, it will be 
tried to read this cookie and activate " +
+"the corresponding tab on success, unless overridden by the 
selectedTab attribute. The cookie name is 
\"Struts2TabbedPanel_selectedTab_\"+id.")
+public void setUseSelectedTabCookie( String useSelectedTabCookie ) {
+this.useSelectedTabCookie = useSelectedTabCookie;
 }
 }

Modified: 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTag.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTag.java?view=diff&rev=565264&r1=565263&r2=565264
==
--- 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTag.java
 (original)
+++ 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTag.java
 Mon Aug 13 01:13:30 2007
@@ -42,8 +42,9 @@
 private String templateCssPath;
 private String beforeSelectTabNotifyTopics;
 private String afterSelectTabNotifyTopics;
-protected String disabledTabCssClass; 
-
+private String disabledTabCssClass;
+private String useSelectedTabCookie;
+
 public Component getBean(ValueStack stack, HttpServletRequest req, 
HttpServletResponse res) {
 return new TabbedPanel(stack, req, r

svn commit: r565265 - in /struts/struts2/branches/STRUTS_2_0_X/core/src: main/java/org/apache/struts2/components/ main/java/org/apache/struts2/views/jsp/ui/ main/resources/template/simple/ site/resour

2007-08-13 Thread rgielen
Author: rgielen
Date: Mon Aug 13 01:18:07 2007
New Revision: 565265

URL: http://svn.apache.org/viewvc?view=rev&rev=565265
Log:
WW-2108:
Make  being able to remember last selected tab using a cookie

Added:

struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/jsp/ui/TabbedPanelTagTest.java
Modified:

struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/TabbedPanel.java

struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java

struts/struts2/branches/STRUTS_2_0_X/core/src/main/resources/template/simple/tabbedpanel.ftl

struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/tabbedPanel.html

struts/struts2/branches/STRUTS_2_0_X/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-1.txt

struts/struts2/branches/STRUTS_2_0_X/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-2.txt

struts/struts2/branches/STRUTS_2_0_X/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-3.txt

Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/TabbedPanel.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/TabbedPanel.java?view=diff&rev=565265&r1=565264&r2=565265
==
--- 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/TabbedPanel.java
 (original)
+++ 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/TabbedPanel.java
 Mon Aug 13 01:18:07 2007
@@ -32,6 +32,11 @@
  * 
  * The tabbedpanel widget is primarily an AJAX component, where each tab can 
either be local content or remote
  * content (refreshed each time the user selects that tab).
+ * If the useSelectedTabCookie attribute is set to true, the id of the 
selected tab is saved in a cookie on activation.
+ * When coming back to this view, the cookie is read and the tab will be 
activated again, unless an actual value for the
+ * selectedTab attribute is specified.
+ * If you want to use the cookie feature, please be sure that you provide a 
unique id for your tabbedpanel component,
+ * since this will also be the identifying name component of the stored 
cookie.
  * 
  *
  *  Examples
@@ -67,6 +72,7 @@
 protected String closeButton;
 protected String doLayout ;
 protected String templateCssPath;
+protected String useSelectedTabCookie;
 
 public TabbedPanel(ValueStack stack, HttpServletRequest request, 
HttpServletResponse response) {
 super(stack, request, response);
@@ -92,6 +98,9 @@
 }
 if(templateCssPath != null)
 addParameter("templateCssPath", findString(templateCssPath));
+if(useSelectedTabCookie != null) {
+addParameter("useSelectedTabCookie", 
findString(useSelectedTabCookie));
+}
 }
 
 public String getDefaultOpenTemplate() {
@@ -131,5 +140,12 @@
 @StrutsTagAttribute(description="Template css path")
 public void setTemplateCssPath(String templateCssPath) {
 this.templateCssPath = templateCssPath;
+}
+
+@StrutsTagAttribute(required = false, defaultValue = "false", description 
= "If set to true, the id of the last selected " +
+"tab will be stored in cookie. If the view is rendered, it will be 
tried to read this cookie and activate " +
+"the corresponding tab on success, unless overridden by the 
selectedTab attribute. The cookie name is 
\"Struts2TabbedPanel_selectedTab_\"+id.")
+public void setUseSelectedTabCookie( String useSelectedTabCookie ) {
+this.useSelectedTabCookie = useSelectedTabCookie;
 }
 }

Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java?view=diff&rev=565265&r1=565264&r2=565265
==
--- 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java
 (original)
+++ 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java
 Mon Aug 13 01:18:07 2007
@@ -39,6 +39,7 @@
 private String closeButton;
 private String doLayout;
 private String templateCssPath;
+private String useSelectedTabCookie;
 
 public Component getBean(ValueStack stack, HttpServletRequest req, 
HttpServletResponse res) {
 return new TabbedPanel(stack, req, res);
@@ -52,6 +53,7 @@
 tabbedPanel.setDoLayout(doLayout);
 tabbedPanel.setLabelposition(labelPosition);
 tabbedPanel.setTemplateCssPath(templateCssPath);
+tabbedPanel.setUseSelect

svn commit: r565267 - /struts/struts2/trunk/core/src/site/resources/tags/ajax/tabbedpanel.html

2007-08-13 Thread rgielen
Author: rgielen
Date: Mon Aug 13 01:33:44 2007
New Revision: 565267

URL: http://svn.apache.org/viewvc?view=rev&rev=565267
Log:
WW-2108:
Make  being able to remember last selected tab using a cookie

Modified:
struts/struts2/trunk/core/src/site/resources/tags/ajax/tabbedpanel.html

Modified: 
struts/struts2/trunk/core/src/site/resources/tags/ajax/tabbedpanel.html
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/site/resources/tags/ajax/tabbedpanel.html?view=diff&rev=565267&r1=565266&r2=565267
==
--- struts/struts2/trunk/core/src/site/resources/tags/ajax/tabbedpanel.html 
(original)
+++ struts/struts2/trunk/core/src/site/resources/tags/ajax/tabbedpanel.html Mon 
Aug 13 01:33:44 2007
@@ -132,6 +132,14 @@
Label 
expression used for rendering a element specific label


+   labelSeparator
+   false
+   :
+   true
+   String
+   String 
that will be appended to the labe
+   
+   
labelposition
false

@@ -370,6 +378,14 @@
true
String
Icon path 
used for image that will have the tooltip
+   
+   
+   useSelectedTabCookie
+   false
+   false
+   true
+   String
+   If set to 
true, the id of the last selected tab will be stored in cookie. If the view is 
rendered, it will be tried to read this cookie and activate the corresponding 
tab on success, unless overridden by the selectedTab attribute. The cookie name 
is "Struts2TabbedPanel_selectedTab_"+id.


value




svn commit: r565288 - /struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTagTest.java

2007-08-13 Thread rgielen
Author: rgielen
Date: Mon Aug 13 03:02:48 2007
New Revision: 565288

URL: http://svn.apache.org/viewvc?view=rev&rev=565288
Log:
WW-2108:
Fix for failing Bamboo build

Modified:

struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTagTest.java

Modified: 
struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTagTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTagTest.java?view=diff&rev=565288&r1=565287&r2=565288
==
--- 
struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTagTest.java
 (original)
+++ 
struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTagTest.java
 Mon Aug 13 03:02:48 2007
@@ -20,8 +20,6 @@
  */
 package org.apache.struts2.dojo.views.jsp.ui;
 
-import org.apache.struts2.views.jsp.AbstractUITagTest;
-
 /**
  * TabbedPanelTagTest.
  */




Issues Opened: week of 2007-08-13

2007-08-13 Thread dblevins

Struts2 - Monday, August 13, 2007

  17 opened in last 7 days

[WW-2090]  should detect when there's only one error and emit 
no  tags
  Matt Raible - Improvement - []
  http://issues.apache.org/struts/browse/WW-2090

[WW-2095] Changing portlet mode after validation errors fails
  Nils-Helge Garli - Bug - []
  http://issues.apache.org/struts/browse/WW-2095

[WW-2106] HTML loaded by the ajax tags is parsed for dojo widgets, this 
should be optional and there should be a "parseContent" attribute to control it
  Musachy Barroso - Improvement - []
  http://issues.apache.org/struts/browse/WW-2106

[WW-2089] Blank sample application is failing
  James Mitchell - Bug - []
  http://issues.apache.org/struts/browse/WW-2089

[WW-2102] action-tag will not call action method from a jsp page that is 
rendered from an "input" result
  Toni Lyytikäinen - Bug - []
  http://issues.apache.org/struts/browse/WW-2102

[WW-2108] Make  being able to remember selected tab using a 
cookie
  Rene Gielen - New Feature - []
  http://issues.apache.org/struts/browse/WW-2108

[WW-2091] Incomplete Ajax Validation example on Struts website.
  Oguntona Remshell - Bug - []
  http://issues.apache.org/struts/browse/WW-2091

[WW-2103] Invalid Javascript generated for StringLength validator 
  Jeremy Mikola - Bug - []
  http://issues.apache.org/struts/browse/WW-2103

[WW-2099] s:submit with ajax theme inside a form do not wait for return 
value of onclick before invoking the action
  santosh yadav - Bug - []
  http://issues.apache.org/struts/browse/WW-2099

[WW-2093] Server validation not ok for a simple select list
  Leneveut Michaël - Bug - []
  http://issues.apache.org/struts/browse/WW-2093

[WW-2092] UI tags can't  custom html tag attributes
  zhouyanming - Improvement - []
  http://issues.apache.org/struts/browse/WW-2092

[WW-2100] Refreshing a div from javascript using dojo fails on subsequent 
attempts after first refresh in IE 6.0. It works fine in firefox.
  santosh yadav - Bug - []
  http://issues.apache.org/struts/browse/WW-2100

[WW-2087] JSCalendar Integration
  Derik Vercueil - New Feature - []
  http://issues.apache.org/struts/browse/WW-2087

[WW-2104] Need to create StrutsRequestWrapper objects to resolve request 
attributes from the value stack
  Nils-Helge Garli - Bug - []
  http://issues.apache.org/struts/browse/WW-2104

[WW-2098] datetimepicker breaks validation in Firefox
  Benjamin McCann - Bug - []
  http://issues.apache.org/struts/browse/WW-2098

[WW-2094] Error DateTimePicker when erase input then click again the 
calendar
  Leneveut Michaël - Bug - []
  http://issues.apache.org/struts/browse/WW-2094

[WW-2107] Arbitrary user-submitted OGNL possible when using JSP EL or 
FreeMarker
  Don Brown - Bug - []
  http://issues.apache.org/struts/browse/WW-2107



svn commit: r565422 - in /struts/struts2/branches/STRUTS_2_0_X/core/src: main/java/org/apache/struts2/components/ main/java/org/apache/struts2/views/jsp/ site/resources/tags/ test/java/org/apache/stru

2007-08-13 Thread jholmes
Author: jholmes
Date: Mon Aug 13 10:09:16 2007
New Revision: 565422

URL: http://svn.apache.org/viewvc?view=rev&rev=565422
Log:
WW-1948 s:url tag does not provide forceAddSchemeHostAndPort parameter

Modified:

struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java

struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html

struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java

Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java?view=diff&rev=565422&r1=565421&r2=565422
==
--- 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java
 (original)
+++ 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java
 Mon Aug 13 10:09:16 2007
@@ -88,6 +88,7 @@
  *  portletMode (String) - The resulting portlet mode.
  *  windowState (String) - The resulting portlet window state.
  *  portletUrlType (String) - Specifies if this should be a portlet 
render or action URL.
+ *  forceAddSchemeHostAndPort (Boolean) - Specifies whether to force 
the addition of scheme, host and port or not.
  * 
  *
  * 
@@ -150,6 +151,7 @@
 protected String windowState;
 protected String portletUrlType;
 protected String anchor;
+protected boolean forceAddSchemeHostAndPort;
 protected String urlIncludeParams;
 protected ExtraParameterProvider extraParameterProvider;
 
@@ -247,14 +249,14 @@
 
 String result;
 if (value == null && action != null) {
-if(Dispatcher.getInstance().isPortletSupportActive() && 
PortletActionContext.isPortletRequest()) {
+if (Dispatcher.getInstance().isPortletSupportActive() && 
PortletActionContext.isPortletRequest()) {
 result = PortletUrlHelper.buildUrl(action, namespace, 
parameters, portletUrlType, portletMode, windowState);
 }
 else {
-result = determineActionURL(action, namespace, method, req, 
res, parameters, scheme, includeContext, encode, false, escapeAmp);
+result = determineActionURL(action, namespace, method, req, 
res, parameters, scheme, includeContext, encode, forceAddSchemeHostAndPort, 
escapeAmp);
 }
 } else {
-if(Dispatcher.getInstance().isPortletSupportActive() && 
PortletActionContext.isPortletRequest()) {
+if (Dispatcher.getInstance().isPortletSupportActive() && 
PortletActionContext.isPortletRequest()) {
 result = PortletUrlHelper.buildResourceUrl(value, parameters);
 }
 else {
@@ -265,7 +267,7 @@
 if (_value != null && _value.indexOf("?") > 0) {
 _value = _value.substring(0, _value.indexOf("?"));
 }
-result = UrlHelper.buildUrl(_value, req, res, parameters, 
scheme, includeContext, encode, false, escapeAmp);
+result = UrlHelper.buildUrl(_value, req, res, parameters, 
scheme, includeContext, encode, forceAddSchemeHostAndPort, escapeAmp);
 }
 }
 if ( anchor != null && anchor.length() > 0 ) {
@@ -352,6 +354,11 @@
 @StrutsTagAttribute(description="Specifies whether to escape ampersand 
(&) to (&) or not", type="Boolean", defaultValue="true")
 public void setEscapeAmp(boolean escapeAmp) {
 this.escapeAmp = escapeAmp;
+}
+
+@StrutsTagAttribute(description="Specifies whether to force the addition 
of scheme, host and port or not", type="Boolean", defaultValue="false")
+public void setForceAddSchemeHostAndPort(boolean 
forceAddSchemeHostAndPort) {
+this.forceAddSchemeHostAndPort = forceAddSchemeHostAndPort;
 }
 
 

Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java?view=diff&rev=565422&r1=565421&r2=565422
==
--- 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
 (original)
+++ 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
 Mon Aug 13 10:09:16 2007
@@ -49,6 +49,7 @@
 protected String windowState;
 protected String portletUrlType;
 protected String anchor;
+protected String forceAddSchemeHostAndPort;
 
 public Component getBean(ValueStack stack, HttpServletRequest req, 
HttpServletResponse res) {
 

svn commit: r565429 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/components/ main/java/org/apache/struts2/views/jsp/ site/resources/tags/ test/java/org/apache/struts2/views/jsp/

2007-08-13 Thread jholmes
Author: jholmes
Date: Mon Aug 13 10:15:28 2007
New Revision: 565429

URL: http://svn.apache.org/viewvc?view=rev&rev=565429
Log:
WW-1948 s:url tag does not provide forceAddSchemeHostAndPort parameter

Modified:

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

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

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

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

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java?view=diff&rev=565429&r1=565428&r2=565429
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
 Mon Aug 13 10:15:28 2007
@@ -56,7 +56,7 @@
 
   String result;
if (urlComponent.value == null && urlComponent.action != null) {
-   result = 
urlComponent.determineActionURL(urlComponent.action, urlComponent.namespace, 
urlComponent.method, urlComponent.req, urlComponent.res, 
urlComponent.parameters, scheme, urlComponent.includeContext, 
urlComponent.encode, false, urlComponent.escapeAmp);
+   result = 
urlComponent.determineActionURL(urlComponent.action, urlComponent.namespace, 
urlComponent.method, urlComponent.req, urlComponent.res, 
urlComponent.parameters, scheme, urlComponent.includeContext, 
urlComponent.encode, urlComponent.forceAddSchemeHostAndPort, 
urlComponent.escapeAmp);
} else {
String _value = urlComponent.value;
 
@@ -65,7 +65,7 @@
if (_value != null && _value.indexOf("?") > 0) {
_value = _value.substring(0, _value.indexOf("?"));
}
-   result = UrlHelper.buildUrl(_value, urlComponent.req, 
urlComponent.res, urlComponent.parameters, scheme, urlComponent.includeContext, 
urlComponent.encode, false, urlComponent.escapeAmp);
+   result = UrlHelper.buildUrl(_value, urlComponent.req, 
urlComponent.res, urlComponent.parameters, scheme, urlComponent.includeContext, 
urlComponent.encode, urlComponent.forceAddSchemeHostAndPort, 
urlComponent.escapeAmp);
}
if ( urlComponent.anchor != null && 
urlComponent.anchor.length() > 0 ) {
result += '#' + urlComponent.anchor;

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java?view=diff&rev=565429&r1=565428&r2=565429
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java 
(original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java 
Mon Aug 13 10:15:28 2007
@@ -84,6 +84,7 @@
  *  portletMode (String) - The resulting portlet mode.
  *  windowState (String) - The resulting portlet window state.
  *  portletUrlType (String) - Specifies if this should be a portlet 
render or action URL.
+ *  forceAddSchemeHostAndPort (Boolean) - Specifies whether to force 
the addition of scheme, host and port or not.
  * 
  *
  * 
@@ -146,6 +147,7 @@
 protected String windowState;
 protected String portletUrlType;
 protected String anchor;
+protected boolean forceAddSchemeHostAndPort;
 protected String urlIncludeParams;
 protected ExtraParameterProvider extraParameterProvider;
protected UrlRenderer urlRenderer;
@@ -306,6 +308,11 @@
 @StrutsTagAttribute(description="Specifies whether to escape ampersand 
(&) to (&) or not", type="Boolean", defaultValue="true")
 public void setEscapeAmp(boolean escapeAmp) {
 this.escapeAmp = escapeAmp;
+}
+
+@StrutsTagAttribute(description="Specifies whether to force the addition 
of scheme, host and port or not", type="Boolean", defaultValue="false")
+public void setForceAddSchemeHostAndPort(boolean 
forceAddSchemeHostAndPort) {
+this.forceAddSchemeHostAndPort = forceAddSchemeHostAndPort;
 }
 
 

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java?view=diff&rev=565429&r1=565428&r2=565429
==
--- 

svn commit: r565492 - in /struts/struts2/branches/STRUTS_2_0_X/core/src: main/java/org/apache/struts2/views/util/UrlHelper.java test/java/org/apache/struts2/views/util/UrlHelperTest.java

2007-08-13 Thread jholmes
Author: jholmes
Date: Mon Aug 13 13:00:08 2007
New Revision: 565492

URL: http://svn.apache.org/viewvc?view=rev&rev=565492
Log: (empty)

Modified:

struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java

struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java

Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java?view=diff&rev=565492&r1=565491&r2=565492
==
--- 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java
 (original)
+++ 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java
 Mon Aug 13 13:00:08 2007
@@ -67,6 +67,7 @@
 private static int httpsPort = DEFAULT_HTTPS_PORT;
 private static String customEncoding;
 
+
 @Inject(StrutsConstants.STRUTS_URL_HTTP_PORT)
 public static void setHttpPort(String val) {
 httpPort = Integer.parseInt(val);
@@ -109,22 +110,30 @@
 link.append(request.getServerName());
 
 if (scheme != null) {
-if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) 
|| (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT))
-{
-link.append(":");
-link.append(scheme.equals("http") ? httpPort : httpsPort);
+// If switching schemes, use the configured port for the 
particular scheme.
+if (!scheme.equals(reqScheme)) {
+if ((scheme.equals("http") && (httpPort != 
DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != 
DEFAULT_HTTPS_PORT)) {
+link.append(":");
+link.append(scheme.equals("http") ? httpPort : 
httpsPort);
+}
+   // Else use the port from the current request.
+} else {
+int reqPort = request.getServerPort();
+
+if ((scheme.equals("http") && (reqPort != 
DEFAULT_HTTP_PORT)) || (scheme.equals("https") && reqPort != 
DEFAULT_HTTPS_PORT)) {
+link.append(":");
+link.append(reqPort);
+}
 }
 }
 }
-else if (
-   (scheme != null) && !scheme.equals(request.getScheme())) {
+else if ((scheme != null) && !scheme.equals(request.getScheme())) {
 changedScheme = true;
 link.append(scheme);
 link.append("://");
 link.append(request.getServerName());
 
-if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || 
(scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT))
-{
+if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || 
(scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT)) {
 link.append(":");
 link.append(scheme.equals("http") ? httpPort : httpsPort);
 }

Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java?view=diff&rev=565492&r1=565491&r2=565492
==
--- 
struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
 (original)
+++ 
struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
 Mon Aug 13 13:00:08 2007
@@ -40,8 +40,6 @@
  */
 public class UrlHelperTest extends StrutsTestCase {
 
-
-
 public void testForceAddSchemeHostAndPort() throws Exception {
 String expectedUrl = 
"http://localhost/contextPath/path1/path2/myAction.action";;
 
@@ -49,7 +47,8 @@
 mockHttpServletRequest.expectAndReturn("getScheme", "http");
 mockHttpServletRequest.expectAndReturn("getServerName", "localhost");
 mockHttpServletRequest.expectAndReturn("getContextPath", 
"/contextPath");
-
+   mockHttpServletRequest.expectAndReturn("getServerPort", 80);
+   
 Mock mockHttpServletResponse = new Mock(HttpServletResponse.class);
 mockHttpServletResponse.expectAndReturn("encodeURL", expectedUrl, 
expectedUrl);
 
@@ -74,14 +73,30 @@
 assertEquals(expectedUrl, result);
 }
 
+public void testForceAddSchemeHostAndPortWithNonStandardPort() throws 
Exception {
+String expectedUrl = 
"http://localhost:9090/contextPath/path1/path2/myAction.action";;
+
+Mock mockHttpServletRequest = new Mock(HttpServletRequest.c

svn commit: r565512 - in /struts/struts2/trunk/plugins/dojo/src: main/java/org/apache/struts2/dojo/components/ main/java/org/apache/struts2/dojo/views/jsp/ui/ main/resources/template/ajax/ test/java/o

2007-08-13 Thread musachy
Author: musachy
Date: Mon Aug 13 13:47:50 2007
New Revision: 565512

URL: http://svn.apache.org/viewvc?view=rev&rev=565512
Log:
WW-2106 HTML loaded by the ajax tags is parsed for dojo widgets, this should be 
optional and there should be a "parseContent" attribute to control it

Modified:

struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java

struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteBean.java

struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java

struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractRemoteTag.java

struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/SubmitTag.java

struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/ajax-common.ftl
struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/bind.ftl

struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java

struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java

struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/DivTest.java

struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java

struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt

struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/div-1.txt

struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt

struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt

Modified: 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java?view=diff&rev=565512&r1=565511&r2=565512
==
--- 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java
 (original)
+++ 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteBean.java
 Mon Aug 13 13:47:50 2007
@@ -51,6 +51,7 @@
 protected String highlightDuration;
 protected String separateScripts;
 protected String transport;
+protected String parseContent;
 
 public AbstractRemoteBean(ValueStack stack, HttpServletRequest request,
 HttpServletResponse response) {
@@ -100,6 +101,10 @@
 addParameter("separateScripts", findValue(separateScripts, 
Boolean.class));
 if (transport != null)
 addParameter("transport", findString(transport));
+if (parseContent != null)
+addParameter("parseContent", findValue(parseContent, 
Boolean.class));
+else
+addParameter("parseContent", true);
 }
 
 @Override
@@ -232,5 +237,10 @@
 @StrutsTagAttribute(description="Transport used by Dojo to make the 
request", defaultValue="XMLHTTPTransport")
 public void setTransport(String transport) {
 this.transport = transport;
+}
+
+@StrutsTagAttribute(description="Parse returned HTML for Dojo widgets", 
defaultValue="true", type="Boolean")
+public void setParseContent(String parseContent) {
+this.parseContent = parseContent;
 }
 }

Modified: 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteBean.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteBean.java?view=diff&rev=565512&r1=565511&r2=565512
==
--- 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteBean.java
 (original)
+++ 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteBean.java
 Mon Aug 13 13:47:50 2007
@@ -66,4 +66,6 @@
 void setSeparateScripts(String separateScripts);
 
 void setTransport(String transport);
+
+void setParseContent(String parseContent);
 }

Modified: 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java?view=diff&rev=565512&r1=565511&r2=565512
==
--- 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java
 (original)
+++ 
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/S

svn commit: r565513 - in /struts/struts2/trunk/core/src/site/resources/tags/ajax: a.html autocompleter.html datetimepicker.html div.html submit.html tree.html treenode.html

2007-08-13 Thread musachy
Author: musachy
Date: Mon Aug 13 13:48:26 2007
New Revision: 565513

URL: http://svn.apache.org/viewvc?view=rev&rev=565513
Log:
Update tags reference documentation

Modified:
struts/struts2/trunk/core/src/site/resources/tags/ajax/a.html
struts/struts2/trunk/core/src/site/resources/tags/ajax/autocompleter.html
struts/struts2/trunk/core/src/site/resources/tags/ajax/datetimepicker.html
struts/struts2/trunk/core/src/site/resources/tags/ajax/div.html
struts/struts2/trunk/core/src/site/resources/tags/ajax/submit.html
struts/struts2/trunk/core/src/site/resources/tags/ajax/tree.html
struts/struts2/trunk/core/src/site/resources/tags/ajax/treenode.html

Modified: struts/struts2/trunk/core/src/site/resources/tags/ajax/a.html
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/site/resources/tags/ajax/a.html?view=diff&rev=565513&r1=565512&r2=565513
==
--- struts/struts2/trunk/core/src/site/resources/tags/ajax/a.html (original)
+++ struts/struts2/trunk/core/src/site/resources/tags/ajax/a.html Mon Aug 13 
13:48:26 2007
@@ -196,6 +196,14 @@
Label 
expression used for rendering a element specific label


+   labelSeparator
+   false
+   :
+   true
+   String
+   String 
that will be appended to the labe
+   
+   
labelposition
false


Modified: 
struts/struts2/trunk/core/src/site/resources/tags/ajax/autocompleter.html
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/site/resources/tags/ajax/autocompleter.html?view=diff&rev=565513&r1=565512&r2=565513
==
--- struts/struts2/trunk/core/src/site/resources/tags/ajax/autocompleter.html 
(original)
+++ struts/struts2/trunk/core/src/site/resources/tags/ajax/autocompleter.html 
Mon Aug 13 13:48:26 2007
@@ -236,6 +236,14 @@
Label 
expression used for rendering a element specific label


+   labelSeparator
+   false
+   :
+   true
+   String
+   String 
that will be appended to the labe
+   
+   
labelposition
false


Modified: 
struts/struts2/trunk/core/src/site/resources/tags/ajax/datetimepicker.html
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/site/resources/tags/ajax/datetimepicker.html?view=diff&rev=565513&r1=565512&r2=565513
==
--- struts/struts2/trunk/core/src/site/resources/tags/ajax/datetimepicker.html 
(original)
+++ struts/struts2/trunk/core/src/site/resources/tags/ajax/datetimepicker.html 
Mon Aug 13 13:48:26 2007
@@ -121,7 +121,7 @@

true
String
-   id for 
referencing element. For UI and form tags it will be used as HTML id 
attribute
+   HTML id 
attribute


javascriptTooltip
@@ -146,6 +146,14 @@
true
String
Label 
expression used for rendering a element specific label
+   
+   
+   labelSeparator
+   false
+   :
+   true
+   String
+   String 
that will be appended to the labe


labelposition

Modified: struts/struts2/trunk/core/src/site/resources/tags/ajax/div.html
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/site/resources/tags/ajax/div.html?view=diff&rev=565513&r1=565512&r2=565513

svn propchange: r565492 - svn:log

2007-08-13 Thread jholmes
Author: jholmes
Revision: 565492
Modified property: svn:log

Modified: svn:log at Mon Aug 13 18:29:55 2007
--
--- svn:log (original)
+++ svn:log Mon Aug 13 18:29:55 2007
@@ -0,0 +1 @@
+WW-1950 UrlHelper.buildUrl does not output port even if 
forceAddSchemeHostAndPort turned on (TestCase included)



svn commit: r565609 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/views/util/UrlHelper.java test/java/org/apache/struts2/views/util/UrlHelperTest.java

2007-08-13 Thread jholmes
Author: jholmes
Date: Mon Aug 13 19:02:49 2007
New Revision: 565609

URL: http://svn.apache.org/viewvc?view=rev&rev=565609
Log:
WW-1950 UrlHelper.buildUrl does not output port even if 
forceAddSchemeHostAndPort turned on (TestCase included)

Modified:

struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java

struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java?view=diff&rev=565609&r1=565608&r2=565609
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java
 Mon Aug 13 19:02:49 2007
@@ -108,15 +108,24 @@
 link.append(request.getServerName());
 
 if (scheme != null) {
-if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) 
|| (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT))
-{
-link.append(":");
-link.append(scheme.equals("http") ? httpPort : httpsPort);
+// If switching schemes, use the configured port for the 
particular scheme.
+if (!scheme.equals(reqScheme)) {
+if ((scheme.equals("http") && (httpPort != 
DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != 
DEFAULT_HTTPS_PORT)) {
+link.append(":");
+link.append(scheme.equals("http") ? httpPort : 
httpsPort);
+}
+// Else use the port from the current request.
+} else {
+int reqPort = request.getServerPort();
+
+if ((scheme.equals("http") && (reqPort != 
DEFAULT_HTTP_PORT)) || (scheme.equals("https") && reqPort != 
DEFAULT_HTTPS_PORT)) {
+link.append(":");
+link.append(reqPort);
+}
 }
 }
 }
-else if (
-   (scheme != null) && !scheme.equals(request.getScheme())) {
+else if ((scheme != null) && !scheme.equals(request.getScheme())) {
 changedScheme = true;
 link.append(scheme);
 link.append("://");

Modified: 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java?view=diff&rev=565609&r1=565608&r2=565609
==
--- 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
 (original)
+++ 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
 Mon Aug 13 19:02:49 2007
@@ -46,6 +46,7 @@
 mockHttpServletRequest.expectAndReturn("getScheme", "http");
 mockHttpServletRequest.expectAndReturn("getServerName", "localhost");
 mockHttpServletRequest.expectAndReturn("getContextPath", 
"/contextPath");
+mockHttpServletRequest.expectAndReturn("getServerPort", 80);
 
 Mock mockHttpServletResponse = new Mock(HttpServletResponse.class);
 mockHttpServletResponse.expectAndReturn("encodeURL", expectedUrl, 
expectedUrl);
@@ -71,6 +72,22 @@
 assertEquals(expectedUrl, result);
 }
 
+public void testForceAddSchemeHostAndPortWithNonStandardPort() throws 
Exception {
+String expectedUrl = 
"http://localhost:9090/contextPath/path1/path2/myAction.action";;
+
+Mock mockHttpServletRequest = new Mock(HttpServletRequest.class);
+mockHttpServletRequest.expectAndReturn("getScheme", "http");
+mockHttpServletRequest.expectAndReturn("getServerName", "localhost");
+mockHttpServletRequest.expectAndReturn("getContextPath", 
"/contextPath");
+mockHttpServletRequest.expectAndReturn("getServerPort", 9090);
+
+Mock mockHttpServletResponse = new Mock(HttpServletResponse.class);
+mockHttpServletResponse.expectAndReturn("encodeURL", expectedUrl, 
expectedUrl);
+
+String result = UrlHelper.buildUrl("/path1/path2/myAction.action", 
(HttpServletRequest) mockHttpServletRequest.proxy(), 
(HttpServletResponse)mockHttpServletResponse.proxy(), null, "http", true, true, 
true);
+assertEquals(expectedUrl, result);
+mockHttpServletRequest.verify();
+}
 
 public void testBuildParametersStringWithUrlHavingSomeExistingParameters() 
throws Exception {
 String expectedUrl = 
"http://localhost:8080/myContext/myPage.jsp?initParam=initValue¶m1=value1¶m2=value2";;