[jboss-svn-commits] JBL Code SVN: r9567 - in labs/jbosslabs/trunk/portal-extensions: configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF and 9 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Feb 17 09:12:00 EST 2007
Author: adamw
Date: 2007-02-17 09:12:00 -0500 (Sat, 17 Feb 2007)
New Revision: 9567
Added:
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/
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/projects/LabsProjectsCommandFactory.java
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/projects/LabsProjectsDelegatingCommandFactoryImpl.java
labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsPagesCommandFactory.java
Removed:
labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsProjectsCommandFactory.java
labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCmsCommandFactory.java
labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsCommandFactory.java
labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactory.java
labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactoryImpl.java
labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsPagesCommandFactory.java
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/portal-server.war/WEB-INF/web.xml
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/Constants.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectPagesService.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java
labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java
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/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/PathParser.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/downloads/Downloads.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/Freezone.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet2.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/portlet-instances.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 09:22:33 UTC (rev 9566)
+++ 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)
@@ -591,10 +591,10 @@
xmbean-dd=""
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
<xmbean/>
- <!-- LABS -->
- <!--<depends
+ <!-- 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"
@@ -737,16 +737,14 @@
optional-attribute-name="DelegatingCF"
proxy-type="attribute">portal:commandFactory=LabsProjectsDelegating</depends>
<depends
- optional-attribute-name="CmsCF"
- proxy-type="attribute">portal:commandFactory=LabsCms</depends>
- <depends
optional-attribute-name="PagesCF"
proxy-type="attribute">portal:commandFactory=LabsPages</depends>
<depends>shotoku:service=shotoku</depends>
+ <depends>shotoku:service=svn</depends>
</mbean>
<mbean
- code="org.jboss.labs.mapper.LabsProjectsDelegatingCommandFactoryImpl"
+ code="org.jboss.labs.mapper.projects.LabsProjectsDelegatingCommandFactoryImpl"
name="portal:commandFactory=LabsProjectsDelegating"
xmbean-dd=""
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
@@ -754,9 +752,12 @@
<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.LabsProjectsPagesCommandFactory"
+ code="org.jboss.labs.mapper.projects.LabsProjectsPagesCommandFactory"
name="portal:commandFactory=LabsProjectsPages"
xmbean-dd=""
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
@@ -766,6 +767,9 @@
optional-attribute-name="DelegatingCF"
proxy-type="attribute">portal:commandFactory=LabsProjectsDelegating</depends>
<depends
+ optional-attribute-name="PortalObjectCF"
+ proxy-type="attribute">portal:commandFactory=LabsPortalObject</depends>
+ <depends
optional-attribute-name="Container"
proxy-type="attribute">portal:container=PortalObject</depends>
</mbean>
@@ -779,10 +783,14 @@
<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.LabsCmsCommandFactory"
- name="portal:commandFactory=LabsCms"
+
+ <mbean
+ code="org.jboss.labs.mapper.LabsPortalObjectCommandFactoryImpl"
+ name="portal:commandFactory=LabsPortalObject"
xmbean-dd=""
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
<xmbean/>
Modified: labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml 2007-02-17 14:12:00 UTC (rev 9567)
@@ -107,10 +107,10 @@
<filter-class>org.jboss.forge.portal.InjectLoginLinks</filter-class>
</filter>
- <filter-mapping>
+ <!--<filter-mapping>
<filter-name>injectLoginLinkFilter</filter-name>
<url-pattern>/*</url-pattern>
- </filter-mapping>
+ </filter-mapping>-->
<filter>
<filter-name>autologinFilter</filter-name>
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/Constants.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/Constants.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/Constants.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -27,9 +27,9 @@
*/
public class Constants {
/*
- * Attributes passed to portlets from the URL.
+ * Parameter name for passing to freezone path to the requsted resource.
*/
- public static final String ATTR_REQ_PATH = "path";
+ public static final String FREEZONE_PATH_PARAM = "path";
public static final String ATTR_URL = "nav-url";
/*
@@ -52,7 +52,7 @@
/**
* Default freezone page (if not specified).
*/
- public static final String DEFAULT_FREEZONE_PAGE = "index.html";
+ public static final String FREEZONE_DEFAULT_PAGE = "index.html";
/**
* Mime type of pages that can be displayed.
@@ -75,7 +75,7 @@
*/
public final static String FALSE_VALUE = "false";
/**
- * <code>LABS_PORTAL</code> - name of the portal where the labs page is.
+ * Name of the portal where the labs page is.
*/
public final static String LABS_PORTAL = "default";
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -195,9 +195,22 @@
+ resource;
}
- /**
+ /**
* Creates a path which lets portlets to include pages (JSP and other) from
* the repository.
+ *
+ * @param resource
+ * Resource we want to access.
+ * @return A repository-access path.
+ */
+ public static String createRepoAccessPath(String resource) {
+ return "/" + ForgeHelper.REPO_ACCESS_DIR + "/" + Constants.LABS_PORTAL + "/"
+ + resource;
+ }
+
+ /**
+ * Creates a path which lets portlets to include pages (JSP and other) from
+ * the repository.
*
* @param request
* The current render request.
@@ -207,11 +220,7 @@
*/
public static String createRepoAccessPath(JBossRenderRequest request,
String resource) {
- PortalContext portalCtx = request.getPortalContext();
- String portalName = portalCtx
- .getProperty(Constants.PROP_SHOTOKU_PORTAL_DIRECTORY);
-
- return createRepoAccessPath(portalName, resource);
+ return createRepoAccessPath(resource);
}
/**
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/LabsServices.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -60,8 +60,12 @@
ProjectsService.PROJECTS_SERVICE);
}
- public static ProjectPagesService getProjectPagesService() throws NamingException {
- return (ProjectPagesService) getStatelessBean(ProjectPagesService.PROJECT_PAGES_SERVICE);
+ public static ProjectPagesService getProjectPagesService() throws ServiceRetrievalException {
+ try {
+ return (ProjectPagesService) getStatelessBean(ProjectPagesService.PROJECT_PAGES_SERVICE);
+ } catch (NamingException e) {
+ throw new ServiceRetrievalException(e);
+ }
}
public static ProjectsPortletsService getProjectsPortletsService() throws ServiceRetrievalException {
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectPagesService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectPagesService.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectPagesService.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -22,9 +22,19 @@
public void removeExcessPages(Set<String> projectIds);
/**
+ * Creates name of a portal window for the given portlet.
+ * @param portletName Name of the portlet.
+ * @param projectId Id of the project.
+ * @param pageName Name of the page on which the window should be. Null, if it is
+ * the default page.
+ * @return Name of a portal window for the given portlet.
+ */
+ public String createWindowId(String portletName, String projectId, String pageName);
+
+ /**
* DEBUG ONLY
* TODO: remove
- * @return
+ * @return X
*/
public String getTree();
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -33,6 +33,7 @@
import org.jboss.forge.common.ForgeHelper;
import org.jboss.forge.common.SearchTools;
import org.jboss.forge.common.XmlTools;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
import org.jboss.forge.common.ejb3.LabsServices;
import org.jboss.forge.common.ejb3.ProjectPagesService;
import org.jboss.forge.common.projects.XmlInputFactory.XmlNotFoundException;
@@ -170,7 +171,7 @@
}
pps.removeExcessPages(getProjectIds());
- } catch (NamingException e) {
+ } catch (ServiceRetrievalException e) {
log.error("Error getting labs project pages service.", e);
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -131,6 +131,10 @@
return projects;
}
+ public static Projects getProjects() {
+ return getProjects(Constants.LABS_PORTAL);
+ }
+
private static String getSeletedProjectId(PortletRequest request) {
return request.getPreferences().getValue("projectId", "default");
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -299,7 +299,7 @@
private void addInstanceToPage(String projectId, String pageName, String portletName,
Page page, Instance instance,
String region, int order) {
- String windowId = createCamelCase(portletName, projectId, pageName, "window");
+ String windowId = createWindowId(portletName, projectId, pageName);
Window window = page.getWindow(windowId);
if (window != null) {
@@ -332,8 +332,6 @@
Instance downloads = getProjectPortletInstance(projectId, null, "downloads");
Instance info = getProjectPortletInstance(projectId, null, "info");
- addInstanceToPage(projectId, pageName, "freezoneNavigation", page,
- pic.getDefinition("FreezoneNavigationInstance"), "left", 0);
addInstanceToPage(projectId, pageName, "freezone", page, freezone, "center", 0);
addInstanceToPage(projectId, pageName, "downloads", page, downloads, "center", 1);
addInstanceToPage(projectId, pageName, "info", page, info, "center", 2);
@@ -349,6 +347,10 @@
updateProjectPage(projectId, null);
}
+ public String createWindowId(String portletName, String projectId, String pageName) {
+ return createCamelCase(portletName, projectId, pageName, "window");
+ }
+
public void removeExcessPages(Set<String> projectIds) {
}
}
Modified: 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 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsBaseCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -1,13 +1,23 @@
package org.jboss.labs.mapper;
-import org.jboss.portal.core.model.portal.PortalObjectContainer;
+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 {
+ implements LabsBaseCommandFactory {
+ protected final static String FREEZONE_PORTLET_NAME = "freezone";
+
private PortalObjectContainer container;
public PortalObjectContainer getContainer() {
@@ -17,6 +27,36 @@
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.
Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsProjectsCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsProjectsCommandFactory.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsProjectsCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -1,34 +0,0 @@
-package org.jboss.labs.mapper;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public abstract class AbstractLabsProjectsCommandFactory extends AbstractLabsBaseCommandFactory
- implements LabsProjectsCommandFactory {
- private LabsProjectsDelegatingCommandFactory delegatingCF;
- private String path;
-
- public LabsProjectsDelegatingCommandFactory getDelegatingCF() {
- return delegatingCF;
- }
-
- public void setDelegatingCF(LabsProjectsDelegatingCommandFactory delegatingCF) {
- this.delegatingCF = delegatingCF;
- }
-
- 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);
- }
-}
Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCmsCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCmsCommandFactory.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCmsCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -1,15 +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 LabsCmsCommandFactory extends AbstractLabsBaseCommandFactory
- implements LabsCommandFactory {
- public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
- PathParser parser) {
- return null;
- }
-}
Modified: 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 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsMainCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -12,6 +12,7 @@
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;
@@ -21,7 +22,6 @@
public class LabsMainCommandFactory extends AbstractLabsBaseCommandFactory implements CommandFactory {
private LabsProjectsDelegatingCommandFactory delegatingCF;
private LabsCommandFactory pagesCF;
- private LabsCommandFactory cmsCF;
private ContentManager cm;
@@ -45,14 +45,6 @@
this.pagesCF = pagesCF;
}
- public LabsCommandFactory getCmsCF() {
- return cmsCF;
- }
-
- public void setCmsCF(LabsCommandFactory cmsCF) {
- this.cmsCF = cmsCF;
- }
-
/*
* Helper methods.
*/
@@ -107,7 +99,7 @@
if (!cmsPath.endsWith("/"))
cmsPath += "/";
- cmsPath += Constants.DEFAULT_FREEZONE_PAGE;
+ cmsPath += Constants.FREEZONE_DEFAULT_PAGE;
}
return cmsPath;
@@ -121,12 +113,7 @@
invocation.getServerContext().getClientRequest().getSession().setAttribute(name, value);
}
- /**
- * Sets the response to be a redirect to the given location/
- */
- private void sendRedirect(ServerInvocation invocation, String where) throws IOException {
- invocation.getServerContext().getClientResponse().sendRedirect(where);
- }
+
/**
* Gets the appropriate command basing on the given path and the selected
@@ -157,7 +144,7 @@
return getPageCommand(invocation, Constants.DEFAULT_PORTAL_PAGE);
}
- setAttribute(invocation, Constants.ATTR_REQ_PATH, cmsPath);
+ setAttribute(invocation, Constants.FREEZONE_PATH_PARAM, cmsPath);
return getPageCommand(invocation, Constants.FREEZONE_PAGE);
} else {
@@ -166,7 +153,7 @@
* Setting the rest of the path as an attribute so the portlets
* can use it.
*/
- setAttribute(invocation, Constants.ATTR_REQ_PATH, tokens[1]);
+ setAttribute(invocation, Constants.FREEZONE_PATH_PARAM, tokens[1]);
}
return c;
@@ -223,6 +210,7 @@
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()) {
@@ -233,18 +221,13 @@
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);
}
- ControllerCommand command;
- command = pagesCF.doMapping(invocation, host, contextPath, parser);
-
- if (command != null) {
- return command;
- }
-
- return cmsCF.doMapping(invocation, host, contextPath, parser);
+ System.out.println("PROCEEDING TO PAGES");
+ return pagesCF.doMapping(invocation, host, contextPath, parser);
}
/*
Modified: 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 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPagesCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -1,6 +1,5 @@
package org.jboss.labs.mapper;
-import org.jboss.portal.core.model.portal.PortalObjectContainer;
import org.jboss.portal.core.controller.ControllerCommand;
import org.jboss.portal.server.ServerInvocation;
@@ -9,6 +8,16 @@
*/
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;
Added: 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 (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -0,0 +1,13 @@
+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);
+}
Added: 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 (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPortalObjectCommandFactoryImpl.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -0,0 +1,45 @@
+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);
+ }
+ }
+}
Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsCommandFactory.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -1,19 +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 interface LabsProjectsCommandFactory extends LabsBaseCommandFactory {
- public ControllerCommand doMapping(ServerInvocation invocation,
- String host, String contextPath,
- PathParser parser, String projectName);
-
- public LabsProjectsDelegatingCommandFactory getDelegatingCF();
- public void setDelegatingCF(LabsProjectsDelegatingCommandFactory delegating);
-
- public String getPath();
- public void setPath(String path);
-}
Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactory.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -1,14 +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 interface LabsProjectsDelegatingCommandFactory extends LabsBaseCommandFactory {
- public ControllerCommand doMapping(ServerInvocation invocation,
- String host, String contextPath,
- PathParser parser, String projectName);
- public void register(String path, LabsProjectsCommandFactory factory);
-}
Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactoryImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactoryImpl.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactoryImpl.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -1,40 +0,0 @@
-package org.jboss.labs.mapper;
-
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.server.ServerInvocation;
-
-import java.util.Map;
-import java.util.HashMap;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public class LabsProjectsDelegatingCommandFactoryImpl extends AbstractLabsBaseCommandFactory
- implements LabsProjectsDelegatingCommandFactory {
- private Map<String, LabsProjectsCommandFactory> factories;
-
- public LabsProjectsDelegatingCommandFactoryImpl() {
- factories = new HashMap<String, LabsProjectsCommandFactory>();
- }
-
- public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
- PathParser parser, String projectName) {
- 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, projectName);
- }
- }
- }
-
- // No match -> showing the default page.
- return null;
- }
-
- public synchronized void register(String path, LabsProjectsCommandFactory factory) {
- factories.put(path, factory);
- }
-}
Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsPagesCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsPagesCommandFactory.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsPagesCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -1,14 +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 LabsProjectsPagesCommandFactory extends AbstractLabsProjectsCommandFactory {
- public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
- PathParser parser, String projectName) {
- return null;
- }
-}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/PathParser.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/PathParser.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/PathParser.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -6,7 +6,20 @@
public class PathParser {
private String firstToken;
private String rest;
+ private String fullPath;
+ private String lastRest;
+ public PathParser(String path) {
+ if (path == null) {
+ return;
+ }
+
+ fullPath = path;
+ path = normalize(path);
+
+ doSplit(path);
+ }
+
private String normalize(String path) {
while (path.indexOf("//") != -1) {
path = path.replace("//", "/");
@@ -16,10 +29,16 @@
path = path.substring(1);
}
+ if (path.endsWith("/")) {
+ path = path.substring(0, path.length()-1);
+ }
+
return path;
}
private void doSplit(String path) {
+ lastRest = rest;
+
if (path == null) {
firstToken = null;
rest = null;
@@ -31,15 +50,6 @@
rest = (tokens.length > 1 ? tokens[1] : null);
}
- public PathParser(String path) {
- if (path == null) {
- return;
- }
-
- path = normalize(path);
- doSplit(path);
- }
-
public String getFirstToken() {
return firstToken;
}
@@ -59,6 +69,20 @@
public void proceed() {
if (hasMoreTokens()) {
doSplit(rest);
+ } else {
+ firstToken = null;
}
}
+
+ public String getCurrent() {
+ return lastRest;
+ }
+
+ /**
+ *
+ * @return The original path, passed to the parser.
+ */
+ public String getFullPath() {
+ return fullPath;
+ }
}
Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/AbstractLabsProjectsCommandFactory.java (from rev 9561, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsProjectsCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/AbstractLabsProjectsCommandFactory.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/AbstractLabsProjectsCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -0,0 +1,46 @@
+package org.jboss.labs.mapper.projects;
+
+import org.jboss.labs.mapper.AbstractLabsBaseCommandFactory;
+import org.jboss.labs.mapper.LabsPortalObjectCommandFactory;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public abstract class AbstractLabsProjectsCommandFactory extends AbstractLabsBaseCommandFactory
+ implements LabsProjectsCommandFactory {
+ private LabsProjectsDelegatingCommandFactory delegatingCF;
+ private String path;
+ private LabsPortalObjectCommandFactory portalObjectCF;
+
+ public LabsPortalObjectCommandFactory getPortalObjectCF() {
+ return portalObjectCF;
+ }
+
+ public void setPortalObjectCF(LabsPortalObjectCommandFactory portalObjectCF) {
+ this.portalObjectCF = portalObjectCF;
+ }
+
+ public LabsProjectsDelegatingCommandFactory getDelegatingCF() {
+ return delegatingCF;
+ }
+
+ public void setDelegatingCF(LabsProjectsDelegatingCommandFactory delegatingCF) {
+ this.delegatingCF = delegatingCF;
+ }
+
+ 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/projects/LabsProjectsCommandFactory.java (from rev 9561, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsCommandFactory.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -0,0 +1,25 @@
+package org.jboss.labs.mapper.projects;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.labs.mapper.LabsBaseCommandFactory;
+import org.jboss.labs.mapper.PathParser;
+import org.jboss.labs.mapper.LabsPortalObjectCommandFactory;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface LabsProjectsCommandFactory extends LabsBaseCommandFactory {
+ public ControllerCommand doMapping(ServerInvocation invocation,
+ String host, String contextPath,
+ PathParser parser, String projectId);
+
+ public LabsProjectsDelegatingCommandFactory getDelegatingCF();
+ public void setDelegatingCF(LabsProjectsDelegatingCommandFactory 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/projects/LabsProjectsDelegatingCommandFactory.java (from rev 9561, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsDelegatingCommandFactory.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsDelegatingCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -0,0 +1,16 @@
+package org.jboss.labs.mapper.projects;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.labs.mapper.LabsBaseCommandFactory;
+import org.jboss.labs.mapper.PathParser;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface LabsProjectsDelegatingCommandFactory extends LabsBaseCommandFactory {
+ public ControllerCommand doMapping(ServerInvocation invocation,
+ String host, String contextPath,
+ PathParser parser, String projectId);
+ public void register(String path, LabsProjectsCommandFactory factory);
+}
Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsDelegatingCommandFactoryImpl.java (from rev 9561, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactoryImpl.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsDelegatingCommandFactoryImpl.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsDelegatingCommandFactoryImpl.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -0,0 +1,62 @@
+package org.jboss.labs.mapper.projects;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+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.AbstractLabsBaseCommandFactory;
+import org.jboss.labs.mapper.PathParser;
+import org.jboss.labs.mapper.LabsPortalObjectCommandFactory;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class LabsProjectsDelegatingCommandFactoryImpl extends AbstractLabsBaseCommandFactory
+ implements LabsProjectsDelegatingCommandFactory {
+ private LabsPortalObjectCommandFactory portalObjectCF;
+
+ public LabsPortalObjectCommandFactory getPortalObjectCF() {
+ return portalObjectCF;
+ }
+
+ public void setPortalObjectCF(LabsPortalObjectCommandFactory portalObjectCF) {
+ this.portalObjectCF = portalObjectCF;
+ }
+
+ private Map<String, LabsProjectsCommandFactory> factories;
+
+ public LabsProjectsDelegatingCommandFactoryImpl() {
+ factories = new HashMap<String, LabsProjectsCommandFactory>();
+ }
+
+ 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 {
+ return getPortalObjectCF().doMapping(invocation, parser,
+ getLabsPortal().getPage(projectId),
+ LabsServices.getProjectPagesService().createWindowId(FREEZONE_PORTLET_NAME,
+ projectId, null));
+ } catch (ServiceRetrievalException e) {
+ return null;
+ }
+ }
+
+ public synchronized void register(String path, LabsProjectsCommandFactory factory) {
+ factories.put(path, factory);
+ }
+}
Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsPagesCommandFactory.java (from rev 9561, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsPagesCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsPagesCommandFactory.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/projects/LabsProjectsPagesCommandFactory.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -0,0 +1,16 @@
+package org.jboss.labs.mapper.projects;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.labs.mapper.projects.AbstractLabsProjectsCommandFactory;
+import org.jboss.labs.mapper.PathParser;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class LabsProjectsPagesCommandFactory extends AbstractLabsProjectsCommandFactory {
+ public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
+ PathParser parser, String projectId) {
+ return null;
+ }
+}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/downloads/Downloads.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/downloads/Downloads.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/downloads/Downloads.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -59,7 +59,7 @@
// Getting the selected category (null if no selected category)
String categoryId = ForgeHelper.getRequestParameter(request,
- Constants.ATTR_REQ_PATH);
+ Constants.FREEZONE_PATH_PARAM);
// Getting the appropriate context
DelegateContext context = projects.getDownloadsContext(
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/Freezone.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/Freezone.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/Freezone.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -65,7 +65,27 @@
response.getWriter().println(ERROR_404_MSG);
}
- public void labsDoView(JBossRenderRequest request,
+ private String getRequestedPath(String projectId, RenderRequest request) {
+ // Getting the path from render parameters.
+ String requestedRelPath = request.getParameter(Constants.FREEZONE_PATH_PARAM);
+
+ // It is used if an instance has defined preference in instance
+ // descriptor.
+ Object requestedPathFromPref = request.getPreferences().getValue("page", null);
+
+ if ((requestedRelPath == null) && (!Tools.isEmpty((String) requestedPathFromPref))) {
+ requestedRelPath = requestedPathFromPref.toString();
+ }
+
+ if (requestedRelPath == null) {
+ requestedRelPath = Constants.FREEZONE_DEFAULT_PAGE;
+ }
+
+ return Constants.LABS_PORTAL + "/" + ProjectsHelper.MEMBERS_DIR + "/" +
+ projectId + "/" + ProjectsHelper.FREEZONE_DIR + "/" + requestedRelPath;
+ }
+
+ public void labsDoView(JBossRenderRequest request,
JBossRenderResponse response) throws IOException, PortletException {
/*
* Checking if the user has access to the selected project (this isn't
@@ -74,10 +94,8 @@
String projectId = ProjectsHelper.getSelectedProjectId(request);
System.out.println("PROJECT ID: " + projectId);
- String portalName = ForgeHelper.getPortalName(request);
-
if ((projectId != null) && (!"default".equals(projectId))
- && (!ProjectsHelper.getProjects(portalName)
+ && (!ProjectsHelper.getProjects(Constants.LABS_PORTAL)
.projectExists(
new RenderRequestPermissionsChecker(request),
projectId))) {
@@ -85,43 +103,23 @@
return;
}
- // Getting the path requested by the user.
- Object requestedPathObject = request
- .getAttribute(Constants.ATTR_REQ_PATH);
+ if (projectId == null) {
+ projectId = "default";
+ }
- String requestedPath;
- if (requestedPathObject == null) {
- requestedPath = request.getParameter(Constants.ATTR_REQ_PATH);
- } else {
- requestedPath = requestedPathObject.toString();
- }
+ // Getting the path requested by the user.
+ String requestedPath = getRequestedPath(projectId, request);
- // It is used if an instance has defined preference in instance
- // descriptor.
- Object requestedPathFromPref = request.getPreferences().getValue(
- "page", null);
-
- //System.out.println("REQ PATH FROM PREF: " + requestedPathFromPref);
-
- if (!Tools.isEmpty((String) requestedPathFromPref)) {
- requestedPath = (String) requestedPathFromPref;
- }
-
- if (requestedPath == null) {
- requestedPath = "default/members/" + projectId + "/freezone/index.html";
- //sendResponseNotFound(response);
- }
-
Node requestedNode;
try {
requestedNode = cm.getNode(requestedPath);
} catch (ResourceDoesNotExist e) {
// Even if the resource doesn't exist, writing an edit link, to
// (possibly) create a new page.ru
- if (isAllowedToEdit(portalName, request, response)) {
+ if (isAllowedToEdit(request, response)) {
response.setContentType(Constants.PAGES_MIME_TYPE);
- writeTagmeButton(portalName, request, response, requestedPath);
- writeEditLink(portalName, requestedPath, request, response);
+ writeTagmeButton(request, response, requestedPath);
+ writeEditLink(requestedPath, request, response);
response.getWriter().println(ERROR_404_MSG);
} else {
sendResponseNotFound(response);
@@ -131,9 +129,9 @@
}
response.setContentType(Constants.PAGES_MIME_TYPE);
- writeTagmeButton(portalName, request, response, requestedPath);
- if (isAllowedToEdit(portalName, request, response)) {
- writeEditLink(portalName, requestedPath, request, response);
+ writeTagmeButton(request, response, requestedPath);
+ if (isAllowedToEdit(request, response)) {
+ writeEditLink(requestedPath, request, response);
Tools.transfer(requestedNode.getContentInputStream(), response
.getWriter());
} else {
@@ -142,8 +140,8 @@
}
}
- private void writeTagmeButton(String portalName,
- JBossRenderRequest request, JBossRenderResponse response,
+ private void writeTagmeButton(JBossRenderRequest request,
+ JBossRenderResponse response,
String requestedPath) throws PortletException, IOException {
if (request.getUser() != null) {
request.setAttribute("TAGME_PATH", requestedPath);
@@ -151,8 +149,7 @@
PortletRequestDispatcher rd = getPortletContext()
.getRequestDispatcher(
- ForgeHelper.createRepoAccessPath(portalName,
- TAGME_JSP));
+ ForgeHelper.createRepoAccessPath(TAGME_JSP));
rd.include(request, response);
}
@@ -162,19 +159,9 @@
@Override
protected boolean isAllowed(JBossRenderRequest request,
JBossRenderResponse response) {
- Object requestedPathFromPref = request.getPreferences().getValue(
- "page", null);
- Object cmsPathObject = request.getAttribute(Constants.ATTR_REQ_PATH);
- String cmsPath = null;
- if (cmsPathObject != null) {
- cmsPath = cmsPathObject.toString();
- }
- if (requestedPathFromPref != null) {
- cmsPath = (String) requestedPathFromPref;
- }
+ String cmsPath = getRequestedPath(ProjectsHelper.getSelectedProjectId(request), request);
- List<String> loggedInOnly = conf
- .get(ForgeHelper.getPortalName(request));
+ List<String> loggedInOnly = conf.get(ForgeHelper.getPortalName(request));
return (request.getUser() != null)
|| (loggedInOnly != null && !loggedInOnly.contains(cmsPath));
@@ -207,29 +194,22 @@
private final static String CONTENT = "content";
- protected boolean isAllowedToEdit(String portalName,
- JBossRenderRequest request, JBossRenderResponse response) {
- return ProjectsHelper.getProjects(portalName).editPermissionAllowed(
+ protected boolean isAllowedToEdit(JBossRenderRequest request, JBossRenderResponse response) {
+ return ProjectsHelper.getProjects().editPermissionAllowed(
new RenderRequestPermissionsChecker(request),
ProjectsHelper.getSelectedProjectId(request, true));
}
- protected void writeEditLink(String portalName, String requestedPath,
+ protected void writeEditLink(String requestedPath,
JBossRenderRequest request, JBossRenderResponse response)
throws IOException, PortletException {
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
- ForgeHelper.createRepoAccessPath(portalName, EDIT_LINK_JSP));
+ ForgeHelper.createRepoAccessPath(EDIT_LINK_JSP));
String ret = request.getParameter(ATTR_RETURN);
- if (ret == null) {
- Object retObj = request.getAttribute(Constants.ATTR_URL);
- if (retObj != null) {
- ret = retObj.toString();
- }
- }
request.setAttribute(ATTR_RETURN, ret);
- request.setAttribute(Constants.ATTR_REQ_PATH, requestedPath);
+ request.setAttribute(Constants.FREEZONE_PATH_PARAM, requestedPath);
rd.include(request, response);
}
@@ -255,7 +235,7 @@
response.setContentType(Constants.PAGES_MIME_TYPE);
// First checking if a user is allowed to edit the page.
- if (!isAllowedToEdit(portalName, request, response)) {
+ if (!isAllowedToEdit(request, response)) {
response.getWriter().write(ERROR_403_MSG);
return;
}
@@ -264,7 +244,7 @@
String content = request.getParameter(CONTENT);
if (content == null) {
content = getNodeForPath(
- request.getParameter(Constants.ATTR_REQ_PATH)).getContent();
+ request.getParameter(Constants.FREEZONE_PATH_PARAM)).getContent();
}
request.setAttribute(CONTENT, content);
@@ -278,16 +258,19 @@
public void processAction(ActionRequest request, ActionResponse response)
throws PortletException, IOException {
- // Passing necessary parameters.
- response.setRenderParameter(Constants.ATTR_REQ_PATH, request
- .getParameter(Constants.ATTR_REQ_PATH));
- response.setRenderParameter(ATTR_RETURN, request
- .getParameter(ATTR_RETURN));
- /*
- * request.setAttribute(ProjectsHelper.PROJECT_URL_PARAM,
- * request.getParameter(ProjectsHelper.PROJECT_URL_PARAM));
- */
+ System.out.println("FREEZONE PARAM: " + request.getParameter(Constants.FREEZONE_PATH_PARAM));
+ // Passing necessary parameters.
+ String requestPathParam = request
+ .getParameter(Constants.FREEZONE_PATH_PARAM);
+ if (requestPathParam != null) {
+ response.setRenderParameter(Constants.FREEZONE_PATH_PARAM, requestPathParam);
+ }
+
+ // TODO fix
+ //response.setRenderParameter(ATTR_RETURN, request
+ // .getParameter(ATTR_RETURN));
+
if (request.getParameter(ACTION_PREVIEW) != null) {
// Preview.
response.setRenderParameter(CONTENT, request.getParameter(CONTENT));
@@ -298,7 +281,7 @@
if (request.getParameter(ACTION_SAVE) != null) {
// Save.
Node n = getNodeForPath(request
- .getParameter(Constants.ATTR_REQ_PATH));
+ .getParameter(Constants.FREEZONE_PATH_PARAM));
n.setContent(request.getParameter(CONTENT));
try {
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -1,6 +1,7 @@
package org.jboss.forge.projects.freezone;
import org.jboss.forge.common.ejb3.LabsServices;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -21,7 +22,7 @@
try {
LabsServices.getProjectPagesService().updatePages("jbossas");
- } catch (NamingException e) {
+ } catch (ServiceRetrievalException e) {
e.printStackTrace();
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet2.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet2.java 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/TestServlet2.java 2007-02-17 14:12:00 UTC (rev 9567)
@@ -1,6 +1,7 @@
package org.jboss.forge.projects.freezone;
import org.jboss.forge.common.ejb3.LabsServices;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -21,7 +22,7 @@
try {
response.getWriter().println(LabsServices.getProjectPagesService().getTree());
- } catch (NamingException e) {
+ } catch (ServiceRetrievalException e) {
e.printStackTrace();
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/portlet-instances.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/portlet-instances.xml 2007-02-17 09:22:33 UTC (rev 9566)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/portlet-instances.xml 2007-02-17 14:12:00 UTC (rev 9567)
@@ -39,19 +39,6 @@
</preferences>
</instance>
</deployment>
- <deployment>
- <if-exists>overwrite</if-exists>
- <instance>
- <instance-id>FreezoneNavigationInstance</instance-id>
- <portlet-ref>FreezonePortlet</portlet-ref>
- <preferences>
- <preference>
- <name>page</name>
- <value>default/members/default/freezone/navigation.html</value>
- </preference>
- </preferences>
- </instance>
- </deployment>
<deployment>
<if-exists>overwrite</if-exists>
More information about the jboss-svn-commits
mailing list