[jboss-svn-commits] JBL Code SVN: r9640 - in labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper: command and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 20 08:18:50 EST 2007


Author: adamw
Date: 2007-02-20 08:18:50 -0500 (Tue, 20 Feb 2007)
New Revision: 9640

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/MapperTools.java
Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactoryImpl.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/WikiCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/WikiUrlFactory.java
Log:
Wiki mappers

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/MapperTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/MapperTools.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/MapperTools.java	2007-02-20 13:18:50 UTC (rev 9640)
@@ -0,0 +1,8 @@
+package org.jboss.labs.mapper;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class MapperTools {
+    public static final String JSF_VIEW_ID_PARAM = "org.apache.myfaces.portlet.MyFacesGenericPortlet.VIEW_ID";
+}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactoryImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactoryImpl.java	2007-02-20 12:36:15 UTC (rev 9639)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactoryImpl.java	2007-02-20 13:18:50 UTC (rev 9640)
@@ -26,6 +26,7 @@
 
 import java.util.Map;
 import java.util.HashMap;
+import java.util.Collections;
 
 /**
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
@@ -46,10 +47,17 @@
             throw new IllegalArgumentException("Window cannot be null.");
         }
 
+        Map bodyParams = invocation.getServerContext().getBodyParameterMap();
+        if (bodyParams == null) { bodyParams = Collections.emptyMap(); }
         Map<String, String[]> queryParams = new HashMap<String, String[]>(
                 invocation.getServerContext().getQueryParameterMap());
-        if (additionalParameters != null) {
+        
+        if (additionalParameters != null) {            
             for (String key : additionalParameters.keySet()) {
+                if (queryParams.containsKey(key) || bodyParams.containsKey(key)) {
+                    continue;
+                }
+                
                 Object value = additionalParameters.get(key);
                 if (value instanceof String[]) {
                     queryParams.put(key, (String[]) value);
@@ -61,8 +69,7 @@
 
         // Decoding the window state.
         PortletRequestDecoder decoder = new PortletRequestDecoder();
-        decoder.decode(queryParams,
-                invocation.getServerContext().getBodyParameterMap());
+        decoder.decode(queryParams, bodyParams);
 
         // Get the window navigational state
         WindowNavigationalState windowNavState = getWindowNavState(invocation, window);

Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/WikiCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/WikiCommandFactory.java	2007-02-20 12:36:15 UTC (rev 9639)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/WikiCommandFactory.java	2007-02-20 13:18:50 UTC (rev 9640)
@@ -8,6 +8,7 @@
 import org.jboss.portal.portlet.PortletParametersStateString;
 import org.jboss.portal.portlet.impl.PortletRequestDecoder;
 import org.jboss.labs.mapper.PathParser;
+import org.jboss.labs.mapper.MapperTools;
 import org.jboss.forge.common.Constants;
 
 /**
@@ -64,14 +65,11 @@
 
     public ControllerCommand doMapping(ServerInvocation invocation, String host,
                                        String contextPath, PathParser parser) {
-        if (!parser.hasFirstToken()) {
-            return getDefaultCommand();
-        }
-
         String firstToken = parser.getFirstToken();
         String language = null;
 
-        if ((firstToken.length() == 2) && (Character.isUpperCase(firstToken.charAt(1)))) {
+        if ((firstToken != null) && (firstToken.length() == 2) &&
+                (Character.isUpperCase(firstToken.charAt(1)))) {
             language = firstToken;
             parser.proceed();
         }
@@ -85,22 +83,16 @@
                 } else {
                     page += "/" + firstToken;
                 }
-            } else if ((firstToken.startsWith("file:")) ||
-                    (Character.isLowerCase(firstToken.charAt(0)))) {
-                sendRedirect(invocation, "/wiki-files/" + parser.getFullPath());
             } else {
-                return getDefaultCommand();
+                sendRedirect(invocation, "/wiki-files/" + parser.getFullPath());
+                return null;
             }
 
             parser.proceed();
         }
 
-        if (page == null) {
-            return getDefaultCommand();
-        }
-
         String version = null;
-        if (page.contains(":")) {
+        if ((page != null) && (page.contains(":"))) {
             String[] tokens = page.split("[:]", 2);
             if ((tokens.length == 2)) {
                 page = tokens[0];
@@ -111,12 +103,11 @@
         }
 
         PortletParametersStateString params = new PortletParametersStateString();
-        params.setValue("org.apache.myfaces.portlet.MyFacesGenericPortlet.VIEW_ID",
-                "/views/wiki_view.xhtml");
-        params.setValue("page", page);
+        params.setValue(MapperTools.JSF_VIEW_ID_PARAM, "/views/wiki_view.xhtml");
+        if (page != null) params.setValue("page", page);
         if (language != null) { params.setValue("language", language); }
         if (version != null) { params.setValue("version", version); }
-
+        
         Window wikiWindow = (Window) getContainer().getObject(windowId);
         if (hasMetaParameter(invocation)) {
             return getPortalObjectCF().doMapping(invocation, wikiWindow, params.getMap());

Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/WikiUrlFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/WikiUrlFactory.java	2007-02-20 12:36:15 UTC (rev 9639)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/WikiUrlFactory.java	2007-02-20 13:18:50 UTC (rev 9640)
@@ -8,6 +8,7 @@
 import org.jboss.portal.portlet.PortletParametersStateString;
 import org.jboss.portal.portlet.impl.PortletRequestEncoder;
 import org.jboss.portal.portlet.impl.PortletRequestDecoder;
+import org.jboss.labs.mapper.MapperTools;
 
 /**
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
@@ -95,7 +96,13 @@
                                 renderCmd.getMode(), renderCmd.getWindowState());
                     }
 
-                    url.getParameterMap().remove("org.apache.myfaces.portlet.MyFacesGenericPortlet.VIEW_ID");
+                    String[] jsfPageParam = (String[]) url.getParameterMap().get(
+                            MapperTools.JSF_VIEW_ID_PARAM);
+                    String jsfPage = jsfPageParam == null ? null : jsfPageParam[0];
+
+                    if ("/views/wiki_view.xhtml".equals(jsfPage)) {
+                        url.getParameterMap().remove(MapperTools.JSF_VIEW_ID_PARAM);
+                    }
                     url.getParameterMap().remove("language");
                     url.getParameterMap().remove("page");
                     url.getParameterMap().remove("version");




More information about the jboss-svn-commits mailing list