[CONF] Confluence Changes in the last 24 hours

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

-
Updated Spaces:
-

Apache Directory Community & Resources (directory) 
http://cwiki.apache.org/confluence/display/directory
|
|-Pages Added or Edited in This Space
 |-- Apache Directory Studio, a new Open Source LDAP & Directory Tooling 
Platform was last edited by pamarcelot (02:17 AM).
 |   http://cwiki.apache.org/confluence/pages/viewpage.action?pageId=62859

Apache Geronimo SandBox (GMOxSBOX) 
http://cwiki.apache.org/confluence/display/GMOxSBOX
|
|-Pages Added or Edited in This Space
 |-- Java EE 5.0 App Development on Geronimo simplified using Eclipse was 
created by shivakumar (09:57 AM).
 |   
http://cwiki.apache.org/confluence/display/GMOxSBOX/Java+EE+5.0+App+Development+on+Geronimo+simplified+using+Eclipse

Apache Directory Server v1.5 (DIRxSRVx11) 
http://cwiki.apache.org/confluence/display/DIRxSRVx11
|
|-Pages Added or Edited in This Space
 |-- Triggers was created by ersiner (08:20 AM).
 |   http://cwiki.apache.org/confluence/display/DIRxSRVx11/Triggers

Apache Geronimo Project Management (GMOxPMGT) 
http://cwiki.apache.org/confluence/display/GMOxPMGT
|
|-Pages Added or Edited in This Space
 |-- Release Eclipse Plugin Process was last edited by mcconne (07:15 AM).
 |   
http://cwiki.apache.org/confluence/display/GMOxPMGT/Release+Eclipse+Plugin+Process

Apache Struts 2 Documentation (WW) http://cwiki.apache.org/confluence/display/WW
|
|-Pages Added or Edited in This Space
 |-- Creating and Signing a Struts 2.1.x Distribution was last edited by wsmoak 
(06:55 AM).
 |   
http://cwiki.apache.org/confluence/display/WW/Creating+and+Signing+a+Struts+2.1.x+Distribution
 |
 |-New Comments in This Space
 |-- http://cwiki.apache.org/confluence/display/WW/FAQs (1)
 |-- http://cwiki.apache.org/confluence/display/WW/Selecting+Results (1)

Apache Wicket Website (WICKETxSITE) 
http://cwiki.apache.org/confluence/display/WICKETxSITE
|
|-Pages Added or Edited in This Space
 |-- QuickStart was last edited by gwynevans (06:29 AM).
 |   http://cwiki.apache.org/confluence/display/WICKETxSITE/QuickStart
 |-- Index was last edited by gwynevans (01:14 AM).
 |   http://cwiki.apache.org/confluence/display/WICKETxSITE/Index
 |-- Navigation was last edited by gwynevans (01:12 AM).
 |   http://cwiki.apache.org/confluence/display/WICKETxSITE/Navigation

Apache Directory Website (DIRxSITE) 
http://cwiki.apache.org/confluence/display/DIRxSITE
|
|-Pages Added or Edited in This Space
 |-- Apache Directory Studio 1.0 released was created by ccustine (06:10 PM).
 |   
http://cwiki.apache.org/confluence/display/DIRxSITE/2007/09/07/Apache+Directory+Studio+1.0+released

Apache Tuscany (TUSCANY) http://cwiki.apache.org/confluence/display/TUSCANY
|
|-Pages Added or Edited in This Space
 |-- Get Involved Section was last edited by haleh (03:23 PM).
 |   http://cwiki.apache.org/confluence/display/TUSCANY/Get+Involved+Section
 |-- Tuscany SCA Java - FAQ was last edited by slaws (08:29 AM).
 |   http://cwiki.apache.org/confluence/display/TUSCANY/Tuscany+SCA+Java+-+FAQ

Apache Wicket (WICKET) http://cwiki.apache.org/confluence/display/WICKET
|
|-Pages Added or Edited in This Space
 |-- How to redirect to an external non-Wicket page was last edited by almaw 
(08:44 AM).
 |   
http://cwiki.apache.org/confluence/display/WICKET/How+to+redirect+to+an+external+non-Wicket+page
 |-- Wicket Source Code Style was created by gwynevans (03:19 AM).
 |   http://cwiki.apache.org/confluence/display/WICKET/Wicket+Source+Code+Style

Apache Felix (FELIX) http://cwiki.apache.org/confluence/display/FELIX
|
|-Pages Added or Edited in This Space
 |-- Board Report (09-2007) was created by [EMAIL PROTECTED] (12:44 PM).
 |   http://cwiki.apache.org/confluence/display/FELIX/Board+Report+%2809-2007%29

Apache Geronimo Documentation (geronimo) 
http://cwiki.apache.org/confluence/display/geronimo
|
|-Pages Added or Edited in This Space
 |-- Pluggable Administration Console was last edited by hcunico (02:48 PM).
 |   
http://cwiki.apache.org/confluence/display/geronimo/Pluggable+Administration+Console
 |-- Presentations was last edited by hcunico (10:50 AM).
 |   http://cwiki.apache.org/confluence/display/geronimo/Presentations
 |-- Java EE 5.0 App Development on Geronimo simplified using Eclipse was 
created by hcunico (10:23 AM).
 |   
http://cwiki.apache.org/confluence/display/geronimo/Java+EE+5.0+App+Development+on+Geronimo+simplified+using+Eclipse
 |-- Index was last edited by hcunico (10:14 AM).
 |   http://cwiki.apache.org/confluence/display/geronimo/Index

Apache Geronimo (GMOxSITE) http://cwiki.apache.org/confluence/display/GMOxSITE
|
|-Pages Added or Edited in This Space
 |-- MEJB Security Alert was created by hcunico (08:12 AM).
 |   
http://cwiki.apache.org/confluence/display/GMOxSITE/2007/09/07

svn commit: r573790 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/dispatcher/mapper/ main/resources/org/apache/struts2/ test/java/org/apache/struts2/dispatcher/ test/java/org/apach

2007-09-08 Thread mrdon
Author: mrdon
Date: Sat Sep  8 00:07:48 2007
New Revision: 573790

URL: http://svn.apache.org/viewvc?rev=573790&view=rev
Log:
Make it possible to access actions without an extension
WW-2163

Modified:

struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java

struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties

struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java

struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java?rev=573790&r1=573789&r2=573790&view=diff
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
 Sat Sep  8 00:07:48 2007
@@ -22,11 +22,14 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Scanner;
 import java.util.Set;
+import java.util.StringTokenizer;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -178,7 +181,7 @@
 
 protected PrefixTrie prefixTrie = null;
 
-protected List extensions = new ArrayList() {{ add("action");}};
+protected List extensions = new ArrayList() {{ 
add("action"); add("");}};
 
 protected  Container container;
 
@@ -270,7 +273,12 @@
 @Inject(StrutsConstants.STRUTS_ACTION_EXTENSION)
 public void setExtensions(String extensions) {
 if (!"".equals(extensions)) {
-this.extensions = Arrays.asList(extensions.split(","));
+List list = new ArrayList();
+Scanner scanner = new Scanner(extensions).useDelimiter(",");
+while (scanner.hasNext()) {
+list.add(scanner.next());
+}
+this.extensions = Collections.unmodifiableList(list);
 } else {
 this.extensions = null;
 }
@@ -414,13 +422,18 @@
 if (extensions == null) {
 return name;
 }
-Iterator it = extensions.iterator();
-while (it.hasNext()) {
-String extension = "." + (String) it.next();
-if (name.endsWith(extension)) {
-name = name.substring(0, name.length() - extension.length());
-return name;
-}
+for (String ext : extensions) {
+if ("".equals(ext)) {
+if (name.indexOf('.') == -1) {
+return name;
+}
+} else {
+String extension = "." + ext;
+if (name.endsWith(extension)) {
+name = name.substring(0, name.length() - 
extension.length());
+return name;
+}
+} 
 }
 return null;
 }

Modified: 
struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties?rev=573790&r1=573789&r2=573790&view=diff
==
--- 
struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties
 (original)
+++ 
struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties
 Sat Sep  8 00:07:48 2007
@@ -73,7 +73,9 @@
 
 ### Used by the DefaultActionMapper
 ### You may provide a comma separated list, e.g. 
struts.action.extension=action,jnlp,do
-struts.action.extension=action
+### The blank extension allows you to match directory listings as well as pure 
action names
+### without interfering with static resources.
+struts.action.extension=action,,
 
 ### Used by FilterDispatcher
 ### If true then Struts serves static content from inside its jar. 

Modified: 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java?rev=573790&r1=573789&r2=573790&view=diff
==
--- 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
 (original)
+++ 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
 Sat Sep  8 00:07:48 2007
@@ -132,8 +132,8 @@
 return _dispatcher;
 }
 };
- 

svn commit: r573805 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/dispatcher/ main/java/org/apache/struts2/dispatcher/mapper/ test/java/org/apache/struts2/dispatcher/mapper/

2007-09-08 Thread mrdon
Author: mrdon
Date: Sat Sep  8 02:16:43 2007
New Revision: 573805

URL: http://svn.apache.org/viewvc?rev=573805&view=rev
Log:
Fix handling of empty extension during url creation
WW-2163

Modified:

struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java

struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java

struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java?rev=573805&r1=573804&r2=573805&view=diff
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java
 Sat Sep  8 02:16:43 2007
@@ -137,6 +137,13 @@
 public void setLocation(String location) {
 this.location = location;
 }
+
+/**
+ * Gets the location it was created with, mainly for testing
+ */
+public String getLocation() {
+return location;
+}
 
 /**
  * Returns the last parsed and encoded location value

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java?rev=573805&r1=573804&r2=573805&view=diff
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
 Sat Sep  8 02:16:43 2007
@@ -228,7 +228,7 @@
 ServletRedirectResult redirect = new 
ServletRedirectResult();
 container.inject(redirect);
 String extension = getDefaultExtension();
-if (extension != null) {
+if (extension != null && extension.length() > 0) {
 location += "." + extension;
 }
 redirect.setLocation(location);
@@ -499,8 +499,11 @@
 
 String extension = getDefaultExtension();
 if (extension != null) {
-if (uri.indexOf('.' + extension) == -1) {
-uri.append(".").append(extension);
+
+if (extension.length() == 0 || (extension.length() > 0 && 
uri.indexOf('.' + extension) == -1)) {
+if (extension.length() > 0) {
+uri.append(".").append(extension);
+}
 if (params.length() > 0) {
 uri.append(params);
 }

Modified: 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java?rev=573805&r1=573804&r2=573805&view=diff
==
--- 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
 (original)
+++ 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
 Sat Sep  8 02:16:43 2007
@@ -27,6 +27,7 @@
 import org.apache.struts2.StrutsTestCase;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.dispatcher.ServletRedirectResult;
+import org.apache.struts2.dispatcher.StrutsResultSupport;
 import org.apache.struts2.views.jsp.StrutsMockHttpServletRequest;
 import org.apache.struts2.views.jsp.StrutsMockHttpServletResponse;
 
@@ -376,9 +377,34 @@
 ActionMapping actionMapping = defaultActionMapper.getMapping(request, 
configManager);
 
 
-Result result = actionMapping.getResult();
+StrutsResultSupport result = (StrutsResultSupport) 
actionMapping.getResult();
 assertNotNull(result);
 assertTrue(result instanceof ServletRedirectResult);
+
+assertEquals("myAction.action", result.getLocation());
+
+// TODO: need to test location but there's noaccess to the 
property/method, unless we use reflection
+}
+
+public void testRedirectActionPrefixWithEmptyExtension() throws Exception {
+Map parameterMap = new HashMap();
+parameterMap.put(DefaultActionMapper.REDIRECT_ACTION_PREFIX + 
"myAction", "");
+
+StrutsMockHttpServletRequest request = new 
StrutsMockHttpServletRequest

svn commit: r573816 - in /struts/struts2/trunk/plugins/codebehind/src: main/java/org/apache/struts2/codebehind/CodebehindUnknownHandler.java test/java/org/apache/struts2/codebehind/CodebehindUnknownHa

2007-09-08 Thread mrdon
Author: mrdon
Date: Sat Sep  8 03:56:10 2007
New Revision: 573816

URL: http://svn.apache.org/viewvc?rev=573816&view=rev
Log:
Adding ability to load templates from classpath, in addition to web context
WW-2146

Modified:

struts/struts2/trunk/plugins/codebehind/src/main/java/org/apache/struts2/codebehind/CodebehindUnknownHandler.java

struts/struts2/trunk/plugins/codebehind/src/test/java/org/apache/struts2/codebehind/CodebehindUnknownHandlerTest.java

Modified: 
struts/struts2/trunk/plugins/codebehind/src/main/java/org/apache/struts2/codebehind/CodebehindUnknownHandler.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/codebehind/src/main/java/org/apache/struts2/codebehind/CodebehindUnknownHandler.java?rev=573816&r1=573815&r2=573816&view=diff
==
--- 
struts/struts2/trunk/plugins/codebehind/src/main/java/org/apache/struts2/codebehind/CodebehindUnknownHandler.java
 (original)
+++ 
struts/struts2/trunk/plugins/codebehind/src/main/java/org/apache/struts2/codebehind/CodebehindUnknownHandler.java
 Sat Sep  8 03:56:10 2007
@@ -21,6 +21,7 @@
 package org.apache.struts2.codebehind;
 
 import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -32,6 +33,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.struts2.util.ClassLoaderUtils;
 
 import com.opensymphony.xwork2.Action;
 import com.opensymphony.xwork2.ActionContext;
@@ -107,7 +109,7 @@
 }
 String path = string(pathPrefix, actionName, "." , ext);
 try {
-if (servletContext.getResource(path) != null) {
+if (locateTemplate(path) != null) {
 actionConfig = buildActionConfig(path, namespace, 
actionName, resultsByExtension.get(ext));
 break;
 }
@@ -148,7 +150,7 @@
 }
 String path = string(pathPrefix, actionName, "-", resultCode, "." 
, ext);
 try {
-if (servletContext.getResource(path) != null) {
+if (locateTemplate(path) != null) {
 result = buildResult(path, resultCode, 
resultsByExtension.get(ext), actionContext);
 break;
 }
@@ -158,7 +160,7 @@
 
 path = string(pathPrefix, actionName, "." , ext);
 try {
-if (servletContext.getResource(path) != null) {
+if (locateTemplate(path) != null) {
 result = buildResult(path, resultCode, 
resultsByExtension.get(ext), actionContext);
 break;
 }
@@ -209,6 +211,22 @@
 }
 return prefix + ns;
 }
+
+URL locateTemplate(String path) throws MalformedURLException {
+URL template = servletContext.getResource(path);
+if (template != null) {
+if (LOG.isDebugEnabled()) {
+LOG.debug("Loaded template '" + path + "' from servlet 
context.");
+}
+} else {
+template = ClassLoaderUtils.getResource(path, getClass());
+if (template != null && LOG.isDebugEnabled()) {
+LOG.debug("Loaded template '" + path + "' from class path.");  
  
+}
+}
+return template;
+}
+
 
 /**
  * Not used

Modified: 
struts/struts2/trunk/plugins/codebehind/src/test/java/org/apache/struts2/codebehind/CodebehindUnknownHandlerTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/codebehind/src/test/java/org/apache/struts2/codebehind/CodebehindUnknownHandlerTest.java?rev=573816&r1=573815&r2=573816&view=diff
==
--- 
struts/struts2/trunk/plugins/codebehind/src/test/java/org/apache/struts2/codebehind/CodebehindUnknownHandlerTest.java
 (original)
+++ 
struts/struts2/trunk/plugins/codebehind/src/test/java/org/apache/struts2/codebehind/CodebehindUnknownHandlerTest.java
 Sat Sep  8 03:56:10 2007
@@ -20,6 +20,8 @@
  */
 package org.apache.struts2.codebehind;
 
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.HashMap;
 
 import javax.servlet.ServletContext;
@@ -28,6 +30,7 @@
 import org.apache.struts2.config.NullResult;
 import org.apache.struts2.dispatcher.ServletDispatcherResult;
 
+import com.mockobjects.dynamic.C;
 import com.mockobjects.dynamic.Mock;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
@@ -71,6 +74,22 @@
 assertEquals("/foo/", handler.determinePath("/", "/foo"));
 assertEquals("/foo/", handler.determinePath("/", "/foo/"));
 assertEquals("/foo/", handler.determinePath("/", "foo"));
+}
+
+public void testLocateTemplate() throws MalformedURLException {
+URL