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();
}