[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