Author: rgielen
Date: Sat Apr  2 10:00:30 2011
New Revision: 1087987

URL: http://svn.apache.org/viewvc?rev=1087987&view=rev
Log:
- Ignore mode namespace for serveResource-URLS, since there is no mode context 
for this type of URL
- refactored out some constants

Modified:
    
struts/sandbox/trunk/struts2-portlet2-plugin/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
    
struts/sandbox/trunk/struts2-portlet2-plugin/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelperJSR286.java

Modified: 
struts/sandbox/trunk/struts2-portlet2-plugin/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-portlet2-plugin/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java?rev=1087987&r1=1087986&r2=1087987&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-portlet2-plugin/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
 (original)
+++ 
struts/sandbox/trunk/struts2-portlet2-plugin/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
 Sat Apr  2 10:00:30 2011
@@ -57,6 +57,13 @@ public class PortletUrlHelper {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(PortletUrlHelper.class);
 
+    protected static final String PORTLETMODE_NAME_EDIT = "edit";
+    protected static final String PORTLETMODE_NAME_VIEW = "view";
+    protected static final String PORTLETMODE_NAME_HELP = "help";
+
+    protected static final String URLTYPE_NAME_ACTION = "action";
+    protected static final String URLTYPE_NAME_RESOURCE = "resource";
+
     /**
      * Create a portlet URL with for the specified action and namespace.
      *
@@ -87,7 +94,7 @@ public class PortletUrlHelper {
         PortletRequest request = PortletActionContext.getRequest();
         LOG.debug("Creating url. Action = " + action + ", Namespace = "
                 + namespace + ", Type = " + type);
-        namespace = prependNamespace(namespace, portletMode);
+        namespace = prependNamespace(namespace, portletMode, 
!URLTYPE_NAME_RESOURCE.equalsIgnoreCase(type));
         if (StringUtils.isEmpty(portletMode)) {
             portletMode = 
PortletActionContext.getRequest().getPortletMode().toString();
         }
@@ -142,7 +149,7 @@ public class PortletUrlHelper {
     protected Object createUrl( String scheme, String type, Map<String, 
String[]> portletParams ) {
         RenderResponse response = PortletActionContext.getRenderResponse();
         PortletURL url;
-        if ("action".equalsIgnoreCase(type)) {
+        if (URLTYPE_NAME_ACTION.equalsIgnoreCase(type)) {
             if (LOG.isDebugEnabled()) LOG.debug("Creating action url");
             url = response.createActionURL();
         }
@@ -164,23 +171,32 @@ public class PortletUrlHelper {
     }
 
     /**
-     *
      * Prepend the namespace configuration for the specified namespace and 
PortletMode.
      *
-     * @param namespace The base namespace.
-     * @param portletMode The PortletMode.
-     *
+     * @param namespace            The base namespace.
+     * @param portletMode          The PortletMode.
+     * @param prependModeNamespace In JSR286, the new URL type resource was 
added, which does not operate in the context
+     *                             of a portlet mode. If the URL to create is 
of type resource, this parameter should be
+     *                             set to false. Set it to true in any other 
case.
      * @return prepended namespace.
      */
-    private String prependNamespace(String namespace, String portletMode) {
+    private String prependNamespace(String namespace, String portletMode, 
boolean prependModeNamespace) {
         StringBuffer sb = new StringBuffer();
-        PortletMode mode = PortletActionContext.getRequest().getPortletMode();
-        if(StringUtils.isNotEmpty(portletMode)) {
-            mode = new PortletMode(portletMode);
+        String modeNamespace;
+        if (prependModeNamespace) {
+            PortletMode mode = 
PortletActionContext.getRequest().getPortletMode();
+            if(StringUtils.isNotEmpty(portletMode)) {
+                mode = new PortletMode(portletMode);
+            }
+            modeNamespace = 
(String)PortletActionContext.getModeNamespaceMap().get(mode);
+        } else {
+            modeNamespace = null;
         }
         String portletNamespace = PortletActionContext.getPortletNamespace();
-        String modeNamespace = 
(String)PortletActionContext.getModeNamespaceMap().get(mode);
-        if (LOG.isDebugEnabled()) LOG.debug("PortletNamespace: " + 
portletNamespace + ", modeNamespace: " + modeNamespace);
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("PortletNamespace: " + portletNamespace + ", 
modeNamespace: "
+                    + (modeNamespace!=null ? modeNamespace : "IGNORED"));
+        }
         if(StringUtils.isNotEmpty(portletNamespace)) {
             sb.append(portletNamespace);
         }
@@ -303,11 +319,11 @@ public class PortletUrlHelper {
         PortletMode mode = portletReq.getPortletMode();
 
         if (StringUtils.isNotEmpty(portletMode)) {
-            if ("edit".equalsIgnoreCase(portletMode)) {
+            if (PORTLETMODE_NAME_EDIT.equalsIgnoreCase(portletMode)) {
                 mode = PortletMode.EDIT;
-            } else if ("view".equalsIgnoreCase(portletMode)) {
+            } else if (PORTLETMODE_NAME_VIEW.equalsIgnoreCase(portletMode)) {
                 mode = PortletMode.VIEW;
-            } else if ("help".equalsIgnoreCase(portletMode)) {
+            } else if (PORTLETMODE_NAME_HELP.equalsIgnoreCase(portletMode)) {
                 mode = PortletMode.HELP;
             }
         }

Modified: 
struts/sandbox/trunk/struts2-portlet2-plugin/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelperJSR286.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-portlet2-plugin/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelperJSR286.java?rev=1087987&r1=1087986&r2=1087987&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-portlet2-plugin/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelperJSR286.java
 (original)
+++ 
struts/sandbox/trunk/struts2-portlet2-plugin/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelperJSR286.java
 Sat Apr  2 10:00:30 2011
@@ -27,11 +27,11 @@ public class PortletUrlHelperJSR286 exte
     protected Object createUrl( String scheme, String type, Map<String, 
String[]> portletParams ) {
         MimeResponse response = (MimeResponse) 
PortletActionContext.getResponse();
         BaseURL url;
-        if ("action".equalsIgnoreCase(type)) {
+        if (URLTYPE_NAME_ACTION.equalsIgnoreCase(type)) {
             if (LOG.isDebugEnabled()) LOG.debug("Creating action url");
             url = response.createActionURL();
         }
-        else if("resource".equalsIgnoreCase(type)) {
+        else if(URLTYPE_NAME_RESOURCE.equalsIgnoreCase(type)) {
                if (LOG.isDebugEnabled()) LOG.debug("Creating resource url");
                url = response.createResourceURL();
         }


Reply via email to