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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 20 06:34:36 EST 2007


Author: adamw
Date: 2007-02-20 06:34:35 -0500 (Tue, 20 Feb 2007)
New Revision: 9632

Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsBaseCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactory.java
   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 urls

Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsBaseCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsBaseCommandFactory.java	2007-02-20 11:24:13 UTC (rev 9631)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsBaseCommandFactory.java	2007-02-20 11:34:35 UTC (rev 9632)
@@ -9,6 +9,8 @@
 import org.jboss.portal.portlet.StateString;
 import org.jboss.portal.portlet.impl.PortletRequestDecoder;
 
+import java.io.IOException;
+
 /**
  * A base class for Labs command factories.
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
@@ -52,6 +54,18 @@
                     PortletRequestDecoder.META_PARAMETER) != null;
     }
 
+    protected void sendRedirect(ServerInvocation invocation, String where) {
+        try {
+            String queryString = invocation.getServerContext().getClientRequest().getQueryString();
+            if (queryString != null) {
+                where += "?" + queryString;
+            }
+            invocation.getServerContext().getClientResponse().sendRedirect(where);
+        } catch (IOException e) {
+            // Oh well ...
+        }
+    }
+
     /*
      * Service lifecycle methods.
      */

Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactory.java	2007-02-20 11:24:13 UTC (rev 9631)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactory.java	2007-02-20 11:34:35 UTC (rev 9632)
@@ -21,5 +21,5 @@
                                        Window window);
 
     public ControllerCommand doMapping(ServerInvocation invocation, Window window,
-                                        Map<String, String> additionalParameters);
+                                        Map<String, Object> additionalParameters);
 }

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 11:24:13 UTC (rev 9631)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactoryImpl.java	2007-02-20 11:34:35 UTC (rev 9632)
@@ -24,7 +24,6 @@
 import org.jboss.shotoku.ContentManager;
 import org.jboss.shotoku.exceptions.ResourceDoesNotExist;
 
-import java.io.IOException;
 import java.util.Map;
 import java.util.HashMap;
 
@@ -42,14 +41,27 @@
     }
 
     public ControllerCommand doMapping(ServerInvocation invocation, Window window,
-                                        Map<String, String> additionalParameters) {
+                                        Map<String, Object> additionalParameters) {
         if (window == null) {
             throw new IllegalArgumentException("Window cannot be null.");
         }
 
+        Map<String, String[]> queryParams = new HashMap<String, String[]>(
+                invocation.getServerContext().getQueryParameterMap());
+        if (additionalParameters != null) {
+            for (String key : additionalParameters.keySet()) {
+                Object value = additionalParameters.get(key);
+                if (value instanceof String[]) {
+                    queryParams.put(key, (String[]) value);
+                } else if (value != null) {
+                    queryParams.put(key, new String[] { value.toString() });
+                }
+            }
+        }
+
         // Decoding the window state.
         PortletRequestDecoder decoder = new PortletRequestDecoder();
-        decoder.decode(invocation.getServerContext().getQueryParameterMap(),
+        decoder.decode(queryParams,
                 invocation.getServerContext().getBodyParameterMap());
 
         // Get the window navigational state
@@ -70,13 +82,13 @@
         // If any additional navigational parameters where passed and if we
         // can add them, adding them.
         StateString navState = decoder.getNavigationalstate();
-        if ((additionalParameters != null) && (navState instanceof PortletParametersStateString)) {
+        /*if ((additionalParameters != null) && (navState instanceof PortletParametersStateString)) {
             PortletParametersStateString ppss = (PortletParametersStateString) navState;
 
             for (String key : additionalParameters.keySet()) {
                 ppss.setValue(key, additionalParameters.get(key));
             }
-        }
+        }*/
 
         // Returning an appropriate command.
         switch (decoder.getType())
@@ -111,18 +123,6 @@
         }
     }
 
-    private void sendRedirect(ServerInvocation invocation, String where) {
-        try {
-            String queryString = invocation.getServerContext().getClientRequest().getQueryString();
-            if (queryString != null) {
-                where += "?" + queryString;
-            }
-            invocation.getServerContext().getClientResponse().sendRedirect(where);
-        } catch (IOException e) {
-            // Oh well ...
-        }
-    }
-
     public ControllerCommand doMapping(ServerInvocation invocation, PathParser parser,
                                        Page page) {
         if (page == null) {
@@ -172,7 +172,7 @@
             if (hasMetaParameter(invocation)) {
                 // If so, invoking default portal actions on a window action request,
                 // with a default path parameter.
-                Map<String, String> additionalParameters = new HashMap<String, String>();
+                Map<String, Object> additionalParameters = new HashMap<String, Object>();
                 additionalParameters.put(Constants.FREEZONE_PATH_PARAM, path);
 
                 return doMapping(invocation, freezone, additionalParameters);

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 11:24:13 UTC (rev 9631)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/WikiCommandFactory.java	2007-02-20 11:34:35 UTC (rev 9632)
@@ -6,11 +6,10 @@
 import org.jboss.portal.core.model.portal.command.RenderPageCommand;
 import org.jboss.portal.server.ServerInvocation;
 import org.jboss.portal.portlet.PortletParametersStateString;
+import org.jboss.portal.portlet.impl.PortletRequestDecoder;
 import org.jboss.labs.mapper.PathParser;
 import org.jboss.forge.common.Constants;
 
-import java.util.Map;
-
 /**
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
  */
@@ -65,8 +64,6 @@
 
     public ControllerCommand doMapping(ServerInvocation invocation, String host,
                                        String contextPath, PathParser parser) {
-        System.out.println("IN WIKI CF");
-
         if (!parser.hasFirstToken()) {
             return getDefaultCommand();
         }
@@ -80,7 +77,6 @@
         }
 
         String page = null;
-        String file = null;
         while (parser.hasFirstToken()) {
             firstToken = parser.getFirstToken();
             if (Character.isUpperCase(firstToken.charAt(0))) {
@@ -89,11 +85,14 @@
                 } else {
                     page += "/" + firstToken;
                 }
-            } else if (firstToken.startsWith("file:")) {
-                file = parser.getCurrent().substring(5);
+            } else if ((firstToken.startsWith("file:")) ||
+                    (Character.isLowerCase(firstToken.charAt(0)))) {
+                sendRedirect(invocation, "/wiki-files/" + parser.getFullPath());
             } else {
                 return getDefaultCommand();
             }
+
+            parser.proceed();
         }
 
         if (page == null) {
@@ -109,23 +108,11 @@
             } else {
                 return getDefaultCommand();
             }
-        } else if ((file != null) && (file.contains(":"))) {
-            String[] tokens = file.split("[:]", 2);
-            if ((tokens.length == 2)) {
-                file = tokens[0];
-                version = tokens[1];
-            } else {
-                return getDefaultCommand();
-            }
         }
 
-        if (file != null) {
-            // Redirect - where?
-            // TODO
-            return null;
-        }
-
         PortletParametersStateString params = new PortletParametersStateString();
+        params.setValue("org.apache.myfaces.portlet.MyFacesGenericPortlet.VIEW_ID",
+                "/views/wiki_view.xhtml");
         params.setValue("page", page);
         if (language != null) { params.setValue("language", language); }
         if (version != null) { params.setValue("version", version); }
@@ -134,8 +121,9 @@
         if (hasMetaParameter(invocation)) {
             return getPortalObjectCF().doMapping(invocation, wikiWindow, params.getMap());
         } else {
-            return invokeRenderCommand(invocation, wikiWindow,
-                    params);
+            params.setValue(PortletRequestDecoder.META_PARAMETER,
+                    Integer.toString(PortletRequestDecoder.ACTION_MASK));            
+            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 11:24:13 UTC (rev 9631)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/WikiUrlFactory.java	2007-02-20 11:34:35 UTC (rev 9632)
@@ -74,11 +74,8 @@
                         PortletRequestEncoder.encodeAction(url, actionCmd.getNavigationalState(),
                                 actionCmd.getInteractionState(), actionCmd.getMode(),
                                 actionCmd.getWindowState());
-                    } else if (renderCmd != null) {
-                        PortletRequestEncoder.encodeRender(url, navigationalState,
-                                renderCmd.getMode(), renderCmd.getWindowState());
 
-                        // If the request isn't only a render request, but also, for
+                        // If the request isn't only an action request, but also, for
                         // example, window state change, we leave the meta
                         // parameter intact. Otherwise, we remove it from the
                         // url.
@@ -88,13 +85,17 @@
                         if (meta != null) {
                             int metaInt = Integer.parseInt(((String []) meta)[0], 16);
 
-                            if ((metaInt | PortletRequestDecoder.RENDER_MASK) ==
-                                    PortletRequestDecoder.RENDER_MASK) {
+                            if ((metaInt | PortletRequestDecoder.ACTION_MASK) ==
+                                    PortletRequestDecoder.ACTION_MASK) {
                                 url.getParameterMap().remove(PortletRequestDecoder.META_PARAMETER);
                             }
                         }
+                    } else if (renderCmd != null) {
+                        PortletRequestEncoder.encodeRender(url, navigationalState,
+                                renderCmd.getMode(), renderCmd.getWindowState());
                     }
 
+                    url.getParameterMap().remove("org.apache.myfaces.portlet.MyFacesGenericPortlet.VIEW_ID");
                     url.getParameterMap().remove("language");
                     url.getParameterMap().remove("page");
                     url.getParameterMap().remove("version");




More information about the jboss-svn-commits mailing list