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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Feb 17 10:32:32 EST 2007


Author: adamw
Date: 2007-02-17 10:32:32 -0500 (Sat, 17 Feb 2007)
New Revision: 9568

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/
   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/AbstractLabsDelegateCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsBaseCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegateCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatePagesCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatingCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatingCommandFactoryImpl.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsMainCommandFactory.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/url/
Removed:
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsBaseCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsBaseCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsMainCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPagesCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactoryImpl.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/
Modified:
   labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml
Log:
http://jira.jboss.com/jira/browse/JBLAB-837

Modified: labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml	2007-02-17 14:12:00 UTC (rev 9567)
+++ labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml	2007-02-17 15:32:32 UTC (rev 9568)
@@ -594,7 +594,7 @@
       <!-- LABS
       <depends
          optional-attribute-name="NextFactory"
-         proxy-type="attribute">portal:commandFactory=LabsMain</depends> -->
+         proxy-type="attribute">portal:commandFactory=LabsMain</depends>-->
    </mbean>
    <mbean
       code="org.jboss.portal.core.model.portal.DefaultPortalCommandFactory"
@@ -619,7 +619,7 @@
          optional-attribute-name="Container"
          proxy-type="attribute">portal:container=PortalObject</depends>
    </mbean>
-   <!-- LABS  -->
+   <!-- LABS -->
    <mbean
       code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
       name="portal:commandFactory=Delegate,path=portal"
@@ -725,7 +725,7 @@
    <!-- LABS command factories -->
 
    <mbean
-      code="org.jboss.labs.mapper.LabsMainCommandFactory"
+      code="org.jboss.labs.mapper.command.LabsMainCommandFactory"
       name="portal:commandFactory=LabsMain"
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
@@ -735,17 +735,12 @@
          proxy-type="attribute">portal:container=PortalObject</depends>
       <depends
          optional-attribute-name="DelegatingCF"
-         proxy-type="attribute">portal:commandFactory=LabsProjectsDelegating</depends>
-      <depends
-         optional-attribute-name="PagesCF"
-         proxy-type="attribute">portal:commandFactory=LabsPages</depends>
-      <depends>shotoku:service=shotoku</depends>
-      <depends>shotoku:service=svn</depends>
+         proxy-type="attribute">portal:commandFactory=LabsDelegating</depends>
    </mbean>
 
    <mbean
-      code="org.jboss.labs.mapper.projects.LabsProjectsDelegatingCommandFactoryImpl"
-      name="portal:commandFactory=LabsProjectsDelegating"
+      code="org.jboss.labs.mapper.command.LabsDelegatingCommandFactoryImpl"
+      name="portal:commandFactory=LabsDelegating"
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
       <xmbean/>
@@ -757,15 +752,15 @@
          proxy-type="attribute">portal:commandFactory=LabsPortalObject</depends>
    </mbean>
    <mbean
-      code="org.jboss.labs.mapper.projects.LabsProjectsPagesCommandFactory"
-      name="portal:commandFactory=LabsProjectsPages"
+      code="org.jboss.labs.mapper.command.LabsDelegatePagesCommandFactory"
+      name="portal:commandFactory=LabsDelegatePages"
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
       <xmbean/>
       <attribute name="Path">pages</attribute>
       <depends
          optional-attribute-name="DelegatingCF"
-         proxy-type="attribute">portal:commandFactory=LabsProjectsDelegating</depends>
+         proxy-type="attribute">portal:commandFactory=LabsDelegating</depends>
       <depends
          optional-attribute-name="PortalObjectCF"
          proxy-type="attribute">portal:commandFactory=LabsPortalObject</depends>
@@ -774,22 +769,8 @@
          proxy-type="attribute">portal:container=PortalObject</depends>
    </mbean>
 
-   <mbean
-      code="org.jboss.labs.mapper.LabsPagesCommandFactory"
-      name="portal:commandFactory=LabsPages"
-      xmbean-dd=""
-      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-      <xmbean/>
-      <depends
-         optional-attribute-name="Container"
-         proxy-type="attribute">portal:container=PortalObject</depends>
-      <depends
-         optional-attribute-name="PortalObjectCF"
-         proxy-type="attribute">portal:commandFactory=LabsPortalObject</depends>
-   </mbean>
-
     <mbean
-      code="org.jboss.labs.mapper.LabsPortalObjectCommandFactoryImpl"
+      code="org.jboss.labs.mapper.command.LabsPortalObjectCommandFactoryImpl"
       name="portal:commandFactory=LabsPortalObject"
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsBaseCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsBaseCommandFactory.java	2007-02-17 14:12:00 UTC (rev 9567)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsBaseCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -1,72 +0,0 @@
-package org.jboss.labs.mapper;
-
-import org.jboss.portal.core.model.portal.*;
-import org.jboss.portal.core.model.portal.command.InvokePortletWindowActionCommand;
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.jems.as.system.AbstractJBossService;
-import org.jboss.portal.server.ServerInvocation;
-import org.jboss.portal.portlet.PortletParameters;
-import org.jboss.portal.theme.navigation.WindowNavigationalState;
-import org.jboss.forge.common.Constants;
-
-import java.io.IOException;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public abstract class AbstractLabsBaseCommandFactory extends AbstractJBossService
-        implements LabsBaseCommandFactory {
-    protected final static String FREEZONE_PORTLET_NAME = "freezone";
-
-    private PortalObjectContainer container;
-
-    public PortalObjectContainer getContainer() {
-        return container;
-    }
-
-    public void setContainer(PortalObjectContainer container) {
-        this.container = container;
-    }
-
-    private PortalObjectId defaultPortalPath = PortalObjectId.parse("/" + Constants.LABS_PORTAL,
-            PortalObjectId.CANONICAL_FORMAT);
-
-    protected Portal getLabsPortal() {
-        return (Portal) getContainer().getObject(defaultPortalPath);
-    }
-
-    protected void sendRedirect(ServerInvocation invocation, String where) {
-        try {
-            invocation.getServerContext().getClientResponse().sendRedirect(where);
-        } catch (IOException e) {
-            // Oh well ...
-        }
-    }
-
-    protected ControllerCommand invokeActionCommand(ServerInvocation invocation, Window window,
-                                                    PortletParameters params) {
-        WindowNavigationalState windowNavState = (WindowNavigationalState)
-                invocation.getAttribute(ServerInvocation.NAVIGATIONAL_STATE_SCOPE,
-                        window.getId() + "_window");
-        if (windowNavState == null) {
-            windowNavState = new WindowNavigationalState();
-            invocation.setAttribute(ServerInvocation.NAVIGATIONAL_STATE_SCOPE,
-                    window.getId() + "_window", windowNavState);
-        }
-
-        return new InvokePortletWindowActionCommand(window.getId(), windowNavState.getMode(),
-                windowNavState.getWindowState(), null, null, params);
-    }
-    
-    /*
-     * Service lifecycle methods.
-     */
-
-    protected void startService() throws Exception {
-
-    }
-
-    protected void stopService() throws Exception {
-
-    }
-}

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsBaseCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsBaseCommandFactory.java	2007-02-17 14:12:00 UTC (rev 9567)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsBaseCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -1,11 +0,0 @@
-package org.jboss.labs.mapper;
-
-import org.jboss.portal.core.model.portal.PortalObjectContainer;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public interface LabsBaseCommandFactory {
-    public PortalObjectContainer getContainer();
-    public void setContainer(PortalObjectContainer container);
-}

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java	2007-02-17 14:12:00 UTC (rev 9567)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -1,13 +0,0 @@
-package org.jboss.labs.mapper;
-
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.core.model.portal.PortalObjectContainer;
-import org.jboss.portal.server.ServerInvocation;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public interface LabsCommandFactory extends LabsBaseCommandFactory {
-    public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
-                                       PathParser parser);
-}

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsMainCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsMainCommandFactory.java	2007-02-17 14:12:00 UTC (rev 9567)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsMainCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -1,240 +0,0 @@
-package org.jboss.labs.mapper;
-
-import org.jboss.portal.core.model.portal.Page;
-import org.jboss.portal.core.model.portal.Portal;
-import org.jboss.portal.core.model.portal.command.RenderPageCommand;
-import org.jboss.portal.core.controller.command.mapper.CommandFactory;
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.server.ServerInvocation;
-import org.jboss.shotoku.ContentManager;
-import org.jboss.shotoku.tools.Tools;
-import org.jboss.forge.common.projects.ProjectsHelper;
-import org.jboss.forge.common.projects.Projects;
-import org.jboss.forge.common.Constants;
-import org.jboss.forge.common.ForgeHelper;
-import org.jboss.labs.mapper.projects.LabsProjectsDelegatingCommandFactory;
-
-import java.io.IOException;
-
-/**
- * @author Adam Warski (adamw at aster.pl)
- */
-public class LabsMainCommandFactory extends AbstractLabsBaseCommandFactory implements CommandFactory {
-    private LabsProjectsDelegatingCommandFactory delegatingCF;
-    private LabsCommandFactory pagesCF;
-
-    private ContentManager cm;
-
-    /*
-     * Getters and setters.
-     */
-
-    public LabsProjectsDelegatingCommandFactory getDelegatingCF() {
-        return delegatingCF;
-    }
-
-    public void setDelegatingCF(LabsProjectsDelegatingCommandFactory delegatingCF) {
-        this.delegatingCF = delegatingCF;
-    }
-
-    public LabsCommandFactory getPagesCF() {
-        return pagesCF;
-    }
-
-    public void setPagesCF(LabsCommandFactory pagesCF) {
-        this.pagesCF = pagesCF;
-    }
-
-    /*
-     * Helper methods.
-     */
-
-    /**
-     * Gets a command to render a page with the given name.
-     * @return z
-     * @param name v
-     */
-    private ControllerCommand getPageCommand(ServerInvocation invocation, String name) {
-        Page p = ((Portal)getContainer().getRootObject().getChild("default")).getPage(name);
-        //Page p = container.getContext().getDefaultPortal().getPage(name);
-
-        if (p == null) {
-            return null;
-        }
-
-        /*if ("wiki".equals(name)) {
-            
-            Parameters params = new Parameters();
-            setParamIfNotNull(params, "page", getParameter(invocation, "page"));
-            setParamIfNotNull(params, "language", getParameter(invocation, "language"));
-
-            return new InvokeWindowActionCommand("default.wiki.WikiPortletWindow", null,
-                    null, null, null, params);
-        }*/
-
-        return new RenderPageCommand(p.getId());
-    }
-
-    /**
-     * Gets path to the resource definied by the given parameters in the CMS.
-     * @return a
-     * @param portalName a
-     * @param projectId a
-     * @param path a
-     */
-    private String getCmsPath(String portalName, String projectId, String path) {
-        /*
-           * If the requested path references a project, getting the page from
-           * the project's freezone dir. Otherwise, getting the page from the
-           * default directory.
-           */
-        String cmsPath = portalName + "/" + ProjectsHelper.MEMBERS_DIR + "/" +
-                projectId + "/" + ProjectsHelper.FREEZONE_DIR + "/" + path;
-
-        /*
-           * Checking if we don't have to add a default page to the constructed
-           * path.
-           */
-        if (!cmsPath.contains(".")) {
-            if (!cmsPath.endsWith("/"))
-                cmsPath += "/";
-
-            cmsPath += Constants.FREEZONE_DEFAULT_PAGE;
-        }
-
-        return cmsPath;
-    }
-
-    /**
-     * Sets an attribute of the given  and value both in session and request.
-     */
-    private void setAttribute(ServerInvocation invocation, String name, String value) {
-        invocation.getServerContext().getClientRequest().setAttribute(name, value);
-        invocation.getServerContext().getClientRequest().getSession().setAttribute(name, value);
-    }
-
-    
-
-    /**
-     * Gets the appropriate command basing on the given path and the selected
-     * project. Path must not be empty.
-     */
-    private ControllerCommand getCommand(ServerInvocation invocation, String path,
-                                         String projectId) {
-        String[] tokens = path.split("[/]", 2);
-
-        ControllerCommand c = getPageCommand(invocation, tokens[0]);
-        if (c == null) {
-            /*
-             * No such page. In this case, we have to invoke freezone. There
-             * are two possibilities:
-             * - the requested resource has an appropriate mime type to display
-             *   it (typically text/html) - then we call the freezone portlet.
-             * - the requested resource is of another mime type - in this case,
-             *   we send a redirect to the file-access servlet.
-             */
-            String cmsPath = getCmsPath(Constants.LABS_PORTAL, projectId, path);
-
-            try {
-                if (!Constants.PAGES_MIME_TYPE.equalsIgnoreCase(cm.getNode(cmsPath).getMimeType())) {
-                    sendRedirect(invocation, "/" + ForgeHelper.FILE_ACCESS_DIR + "/" + cmsPath);
-                    return getPageCommand(invocation, Constants.DEFAULT_PORTAL_PAGE);
-                }
-            } catch (Exception e) {
-                return getPageCommand(invocation, Constants.DEFAULT_PORTAL_PAGE);
-            }
-
-            setAttribute(invocation, Constants.FREEZONE_PATH_PARAM, cmsPath);
-
-            return getPageCommand(invocation, Constants.FREEZONE_PAGE);
-        } else {
-            if (tokens.length == 2) {
-                /*
-                     * Setting the rest of the path as an attribute so the portlets
-                     * can use it.
-                     */
-                setAttribute(invocation, Constants.FREEZONE_PATH_PARAM, tokens[1]);
-            }
-
-            return c;
-        }
-    }
-
-    /**
-     * Gets a command that should be executed, given the request path, if no
-     * project is selected.
-     */
-    private ControllerCommand getNormalCommand(ServerInvocation invocation, String path) {
-        if (Tools.isEmpty(path)) {
-            return getPageCommand(invocation, Constants.DEFAULT_PORTAL_PAGE);
-        }
-
-        return getCommand(invocation, path, Constants.GLOBAL_FREEZONE_PRJ);
-    }
-
-    /**
-     * Gets a command that should be executed, given the request path, if a
-     * project is selected.
-     */
-    private ControllerCommand getProjectCommand(ServerInvocation invocation, String path,
-                                                String projectId, Projects projects)
-            throws IOException {
-        if (Tools.isEmpty(path)) {
-            /*
-             * If the path is empty, we have to show the project's default
-             * page. This can be:
-             * - a normal info page
-             * - a freezone page - in this case we just redirect to a
-             *   freezone
-             * - an outside page - in this case, we redirect to this
-             *   outside page.
-             */
-            String freezonePage = projects.getProjectPageFreezone(projectId);
-            if (!Tools.isEmpty(freezonePage)) {
-                String redirect;
-                if (Tools.isOutsideLink(freezonePage)) {
-                    redirect = freezonePage;
-                } else {
-                    redirect = ProjectsHelper.createFreezonePageLink(
-                            Constants.LABS_PORTAL, projectId, freezonePage);
-                }
-
-                sendRedirect(invocation, redirect);
-            }
-
-            return getPageCommand(invocation, Constants.DEFAULT_PROJECT_PAGE);
-        }
-
-        return getCommand(invocation, path, projectId);
-    }
-
-    public ControllerCommand doMapping(ServerInvocation invocation, String host,
-                                       String contextPath, String requestPath) {
-        System.out.println("MAIN LABS CF");
-        PathParser parser = new PathParser(requestPath);
-
-        if (!parser.hasFirstToken()) {
-            return null;
-        }
-
-        Projects projects = ProjectsHelper.getProjects(Constants.LABS_PORTAL);
-        String firstToken = parser.getFirstToken();
-
-        if (projects.projectExists(firstToken)) {
-            System.out.println("RECOGNIZED A PROJECT: " + firstToken);
-            parser.proceed();
-            return delegatingCF.doMapping(invocation, host, contextPath, parser, firstToken);
-        }
-
-        System.out.println("PROCEEDING TO PAGES");
-        return pagesCF.doMapping(invocation, host, contextPath, parser);
-    }
-
-    /*
-     * Service lifecycle methods
-     */
-
-    protected void startService() throws Exception {
-        cm = ContentManager.getContentManager();
-    }
-}

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPagesCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPagesCommandFactory.java	2007-02-17 14:12:00 UTC (rev 9567)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPagesCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -1,25 +0,0 @@
-package org.jboss.labs.mapper;
-
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.server.ServerInvocation;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public class LabsPagesCommandFactory extends AbstractLabsBaseCommandFactory
-        implements LabsCommandFactory {
-    private LabsPortalObjectCommandFactory portalObjectCF;
-
-    public LabsPortalObjectCommandFactory getPortalObjectCF() {
-        return portalObjectCF;
-    }
-
-    public void setPortalObjectCF(LabsPortalObjectCommandFactory portalObjectCF) {
-        this.portalObjectCF = portalObjectCF;
-    }
-
-    public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
-                                       PathParser parser) {
-        return null;
-    }
-}

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactory.java	2007-02-17 14:12:00 UTC (rev 9567)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -1,13 +0,0 @@
-package org.jboss.labs.mapper;
-
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.core.model.portal.Page;
-import org.jboss.portal.server.ServerInvocation;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public interface LabsPortalObjectCommandFactory {
-    public ControllerCommand doMapping(ServerInvocation invocation, PathParser parser,
-                                       Page page, String freezoneWindowId);
-}

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactoryImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactoryImpl.java	2007-02-17 14:12:00 UTC (rev 9567)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactoryImpl.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -1,45 +0,0 @@
-package org.jboss.labs.mapper;
-
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.core.model.portal.Page;
-import org.jboss.portal.core.model.portal.Window;
-import org.jboss.portal.core.model.portal.command.RenderPageCommand;
-import org.jboss.portal.server.ServerInvocation;
-import org.jboss.portal.portlet.PortletParameters;
-import org.jboss.forge.common.Constants;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public class LabsPortalObjectCommandFactoryImpl extends AbstractLabsBaseCommandFactory
-        implements LabsPortalObjectCommandFactory {
-    public ControllerCommand doMapping(ServerInvocation invocation, PathParser parser,
-                                       Page page, String freezoneWindowId) {
-        if (page == null) {
-            return null;
-        }
-
-        if (!parser.hasFirstToken()) {
-            if (!parser.getFullPath().endsWith("/")) {
-                System.out.println("REDIRECTING");
-                sendRedirect(invocation, parser.getFullPath()+"/");
-                return null;
-            }
-
-            System.out.println("SHOWING NORMAL PAGE");
-            return new RenderPageCommand(page.getId());
-        } else {
-            Window freezone = page.getWindow(freezoneWindowId);
-
-            if (freezone == null) {
-                return null;
-            }
-
-            System.out.println("INVOKING FREEZONE: " + parser.getCurrent());
-            PortletParameters params = new PortletParameters();
-            params.put(Constants.FREEZONE_PATH_PARAM, new String[] { parser.getCurrent() });
-
-            return invokeActionCommand(invocation, freezone, params);
-        }
-    }
-}

Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsBaseCommandFactory.java (from rev 9567, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsBaseCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsBaseCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsBaseCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -0,0 +1,72 @@
+package org.jboss.labs.mapper.command;
+
+import org.jboss.portal.core.model.portal.*;
+import org.jboss.portal.core.model.portal.command.InvokePortletWindowActionCommand;
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.jems.as.system.AbstractJBossService;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.portal.portlet.PortletParameters;
+import org.jboss.portal.theme.navigation.WindowNavigationalState;
+import org.jboss.forge.common.Constants;
+
+import java.io.IOException;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public abstract class AbstractLabsBaseCommandFactory extends AbstractJBossService
+        implements LabsBaseCommandFactory {
+    protected final static String FREEZONE_PORTLET_NAME = "freezone";
+
+    private PortalObjectContainer container;
+
+    public PortalObjectContainer getContainer() {
+        return container;
+    }
+
+    public void setContainer(PortalObjectContainer container) {
+        this.container = container;
+    }       
+
+    private PortalObjectId defaultPortalPath = PortalObjectId.parse("/" + Constants.LABS_PORTAL,
+            PortalObjectId.CANONICAL_FORMAT);
+
+    protected Portal getLabsPortal() {
+        return (Portal) getContainer().getObject(defaultPortalPath);
+    }
+
+    protected void sendRedirect(ServerInvocation invocation, String where) {
+        try {
+            invocation.getServerContext().getClientResponse().sendRedirect(where);
+        } catch (IOException e) {
+            // Oh well ...
+        }
+    }
+
+    protected ControllerCommand invokeActionCommand(ServerInvocation invocation, Window window,
+                                                    PortletParameters params) {
+        WindowNavigationalState windowNavState = (WindowNavigationalState)
+                invocation.getAttribute(ServerInvocation.NAVIGATIONAL_STATE_SCOPE,
+                        window.getId() + "_window");
+        if (windowNavState == null) {
+            windowNavState = new WindowNavigationalState();
+            invocation.setAttribute(ServerInvocation.NAVIGATIONAL_STATE_SCOPE,
+                    window.getId() + "_window", windowNavState);
+        }
+
+        return new InvokePortletWindowActionCommand(window.getId(), windowNavState.getMode(),
+                windowNavState.getWindowState(), null, null, params);
+    }
+    
+    /*
+     * Service lifecycle methods.
+     */
+
+    protected void startService() throws Exception {
+
+    }
+
+    protected void stopService() throws Exception {
+
+    }
+}

Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsDelegateCommandFactory.java (from rev 9567, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/AbstractLabsProjectsCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsDelegateCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsDelegateCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -0,0 +1,47 @@
+package org.jboss.labs.mapper.command;
+
+import org.jboss.labs.mapper.command.AbstractLabsBaseCommandFactory;
+import org.jboss.labs.mapper.command.LabsPortalObjectCommandFactory;
+import org.jboss.labs.mapper.command.LabsDelegatingCommandFactory;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public abstract class AbstractLabsDelegateCommandFactory extends AbstractLabsBaseCommandFactory
+        implements LabsDelegateCommandFactory {
+    private LabsDelegatingCommandFactory delegatingCF;
+    private String path;
+    private LabsPortalObjectCommandFactory portalObjectCF;
+
+    public LabsDelegatingCommandFactory getDelegatingCF() {
+        return delegatingCF;
+    }
+
+    public void setDelegatingCF(LabsDelegatingCommandFactory delegatingCF) {
+        this.delegatingCF = delegatingCF;
+    }
+
+    public LabsPortalObjectCommandFactory getPortalObjectCF() {
+        return portalObjectCF;
+    }
+
+    public void setPortalObjectCF(LabsPortalObjectCommandFactory portalObjectCF) {
+        this.portalObjectCF = portalObjectCF;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    /*
+    * Service lifecycle methods.
+    */
+
+    protected void startService() throws Exception {
+        getDelegatingCF().register(getPath(), this);
+    }
+}

Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsBaseCommandFactory.java (from rev 9561, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsBaseCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsBaseCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsBaseCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -0,0 +1,11 @@
+package org.jboss.labs.mapper.command;
+
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface LabsBaseCommandFactory {
+    public PortalObjectContainer getContainer();
+    public void setContainer(PortalObjectContainer container);
+}

Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegateCommandFactory.java (from rev 9567, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegateCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegateCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -0,0 +1,26 @@
+package org.jboss.labs.mapper.command;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.labs.mapper.command.LabsBaseCommandFactory;
+import org.jboss.labs.mapper.PathParser;
+import org.jboss.labs.mapper.command.LabsPortalObjectCommandFactory;
+import org.jboss.labs.mapper.command.LabsDelegatingCommandFactory;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface LabsDelegateCommandFactory extends LabsBaseCommandFactory {
+    public ControllerCommand doMapping(ServerInvocation invocation,
+                                       String host, String contextPath,
+                                       PathParser parser, String projectId);
+
+    public LabsDelegatingCommandFactory getDelegatingCF();
+    public void setDelegatingCF(LabsDelegatingCommandFactory delegating);
+
+    public LabsPortalObjectCommandFactory getPortalObjectCF();
+    public void setPortalObjectCF(LabsPortalObjectCommandFactory portalObjectCF);
+
+    public String getPath();
+    public void setPath(String path);
+}

Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatePagesCommandFactory.java (from rev 9567, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsPagesCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatePagesCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatePagesCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -0,0 +1,16 @@
+package org.jboss.labs.mapper.command;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.labs.mapper.command.AbstractLabsDelegateCommandFactory;
+import org.jboss.labs.mapper.PathParser;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class LabsDelegatePagesCommandFactory extends AbstractLabsDelegateCommandFactory {
+    public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
+                                       PathParser parser, String projectId) {
+        return null;
+    }
+}

Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatingCommandFactory.java (from rev 9567, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsDelegatingCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatingCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatingCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -0,0 +1,17 @@
+package org.jboss.labs.mapper.command;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.labs.mapper.command.LabsBaseCommandFactory;
+import org.jboss.labs.mapper.PathParser;
+import org.jboss.labs.mapper.command.LabsDelegateCommandFactory;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface LabsDelegatingCommandFactory extends LabsBaseCommandFactory {
+    public ControllerCommand doMapping(ServerInvocation invocation,
+                                       String host, String contextPath,
+                                       PathParser parser, String projectId);
+    public void register(String path, LabsDelegateCommandFactory factory);
+}

Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatingCommandFactoryImpl.java (from rev 9567, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsDelegatingCommandFactoryImpl.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatingCommandFactoryImpl.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatingCommandFactoryImpl.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -0,0 +1,61 @@
+package org.jboss.labs.mapper.command;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.forge.common.ejb3.LabsServices;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
+import org.jboss.labs.mapper.PathParser;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class LabsDelegatingCommandFactoryImpl extends AbstractLabsBaseCommandFactory
+        implements LabsDelegatingCommandFactory {
+    private LabsPortalObjectCommandFactory portalObjectCF;
+
+    public LabsPortalObjectCommandFactory getPortalObjectCF() {
+        return portalObjectCF;
+    }
+
+    public void setPortalObjectCF(LabsPortalObjectCommandFactory portalObjectCF) {
+        this.portalObjectCF = portalObjectCF;
+    }
+
+    private Map<String, LabsDelegateCommandFactory> factories;
+
+    public LabsDelegatingCommandFactoryImpl() {
+        factories = new HashMap<String, LabsDelegateCommandFactory>();
+    }
+
+    public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
+                                       PathParser parser, String projectId) {
+        if (parser.hasFirstToken()) {
+            String firstToken = parser.getFirstToken();
+            for (String path : factories.keySet()) {
+                if (firstToken.equals(path)) {
+                    parser.proceed();
+                    return factories.get(path).doMapping(invocation, host, contextPath,
+                            parser, projectId);
+                }
+            }
+        }
+
+        // No match -> showing the default page.
+        try {
+            Page page = (projectId == null ? getLabsPortal().getDefaultPage() : getLabsPortal().getPage(projectId));
+            return getPortalObjectCF().doMapping(invocation, parser, page,
+                    LabsServices.getProjectPagesService().createWindowId(FREEZONE_PORTLET_NAME,
+                            projectId, null));
+        } catch (ServiceRetrievalException e) {
+            return null;
+        }
+    }
+
+    public synchronized void register(String path, LabsDelegateCommandFactory factory) {
+        factories.put(path, factory);
+    }
+}

Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsMainCommandFactory.java (from rev 9567, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsMainCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsMainCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsMainCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -0,0 +1,50 @@
+package org.jboss.labs.mapper.command;
+
+import org.jboss.portal.core.controller.command.mapper.CommandFactory;
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.projects.Projects;
+import org.jboss.forge.common.Constants;
+import org.jboss.labs.mapper.PathParser;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class LabsMainCommandFactory extends AbstractLabsBaseCommandFactory implements CommandFactory {
+    private LabsDelegatingCommandFactory delegatingCF;
+
+    /*
+     * Getters and setters.
+     */
+
+    public LabsDelegatingCommandFactory getDelegatingCF() {
+        return delegatingCF;
+    }
+
+    public void setDelegatingCF(LabsDelegatingCommandFactory delegatingCF) {
+        this.delegatingCF = delegatingCF;
+    }
+
+    public ControllerCommand doMapping(ServerInvocation invocation, String host,
+                                       String contextPath, String requestPath) {
+        System.out.println("MAIN LABS CF");
+        PathParser parser = new PathParser(requestPath);
+
+        if (!parser.hasFirstToken()) {
+            return null;
+        }
+
+        Projects projects = ProjectsHelper.getProjects(Constants.LABS_PORTAL);
+        String projectId = parser.getFirstToken();
+
+        if (projects.projectExists(projectId)) {
+            System.out.println("RECOGNIZED A PROJECT: " + projectId);
+            parser.proceed();
+        } else {
+            projectId = null;
+        }
+
+        return delegatingCF.doMapping(invocation, host, contextPath, parser, projectId);
+    }
+}

Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactory.java (from rev 9567, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactory.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -0,0 +1,14 @@
+package org.jboss.labs.mapper.command;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.labs.mapper.PathParser;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface LabsPortalObjectCommandFactory {
+    public ControllerCommand doMapping(ServerInvocation invocation, PathParser parser,
+                                       Page page, String freezoneWindowId);
+}

Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactoryImpl.java (from rev 9567, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactoryImpl.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactoryImpl.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactoryImpl.java	2007-02-17 15:32:32 UTC (rev 9568)
@@ -0,0 +1,47 @@
+package org.jboss.labs.mapper.command;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.core.model.portal.Window;
+import org.jboss.portal.core.model.portal.command.RenderPageCommand;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.portal.portlet.PortletParameters;
+import org.jboss.forge.common.Constants;
+import org.jboss.labs.mapper.command.AbstractLabsBaseCommandFactory;
+import org.jboss.labs.mapper.PathParser;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class LabsPortalObjectCommandFactoryImpl extends AbstractLabsBaseCommandFactory
+        implements LabsPortalObjectCommandFactory {
+    public ControllerCommand doMapping(ServerInvocation invocation, PathParser parser,
+                                       Page page, String freezoneWindowId) {
+        if (page == null) {
+            return null;
+        }
+
+        if (!parser.hasFirstToken()) {
+            if (!parser.getFullPath().endsWith("/")) {
+                System.out.println("REDIRECTING");
+                sendRedirect(invocation, parser.getFullPath()+"/");
+                return null;
+            }
+
+            System.out.println("SHOWING NORMAL PAGE");
+            return new RenderPageCommand(page.getId());
+        } else {
+            Window freezone = page.getWindow(freezoneWindowId);
+
+            if (freezone == null) {
+                return null;
+            }
+
+            System.out.println("INVOKING FREEZONE: " + parser.getCurrent());
+            PortletParameters params = new PortletParameters();
+            params.put(Constants.FREEZONE_PATH_PARAM, new String[] { parser.getCurrent() });
+
+            return invokeActionCommand(invocation, freezone, params);
+        }
+    }
+}




More information about the jboss-svn-commits mailing list