[jboss-svn-commits] JBL Code SVN: r9591 - in labs/jbosslabs/trunk/portal-extensions: forge-common/src/java/org/jboss/forge/common and 8 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Feb 19 07:21:19 EST 2007
Author: adamw
Date: 2007-02-19 07:21:19 -0500 (Mon, 19 Feb 2007)
New Revision: 9591
Removed:
labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatePagesCommandFactory.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/forge-common/src/java/org/jboss/forge/common/Constants.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.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/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/PathParser.java
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/LabsDelegateCommandFactory.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/LabsMainUrlFactory.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/web/WEB-INF/portlet-instances.xml
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/portlet.xml
labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml
Log:
New URL/Command factories; 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-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml 2007-02-19 12:21:19 UTC (rev 9591)
@@ -591,10 +591,10 @@
xmbean-dd=""
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
<xmbean/>
- <!-- LABS
+ <!-- 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"
@@ -633,7 +633,7 @@
<depends
optional-attribute-name="DelegateFactory"
proxy-type="attribute">portal:commandFactory=PortalObject</depends>
- </mbean>
+ </mbean> -->
<mbean
code="org.jboss.portal.core.controller.command.mapper.SimpleCommandFactory"
name="portal:commandFactory=SignOut"
@@ -736,6 +736,9 @@
<depends
optional-attribute-name="DelegatingCF"
proxy-type="attribute">portal:commandFactory=LabsDelegating</depends>
+ <depends
+ optional-attribute-name="PortalObjectCF"
+ proxy-type="attribute">portal:commandFactory=LabsPortalObject</depends>
</mbean>
<mbean
@@ -747,27 +750,7 @@
<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.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=LabsDelegating</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>
<mbean
code="org.jboss.labs.mapper.command.LabsPortalObjectCommandFactoryImpl"
@@ -778,6 +761,7 @@
<depends
optional-attribute-name="Container"
proxy-type="attribute">portal:container=PortalObject</depends>
+ <depends>shotoku:service=svn</depends>
</mbean>
<!-- URL factories -->
@@ -788,6 +772,7 @@
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
<xmbean/>
</mbean>
+ <!-- LABS
<mbean
code="org.jboss.portal.core.model.portal.PortalObjectURLFactory"
name="portal:urlFactory=PortalObject"
@@ -798,7 +783,7 @@
<depends
optional-attribute-name="Factory"
proxy-type="attribute">portal:urlFactory=Delegating</depends>
- </mbean>
+ </mbean> -->
<mbean
code="org.jboss.portal.core.controller.command.mapper.SimpleURLFactory"
name="portal:urlFactory=SignOut"
@@ -848,6 +833,22 @@
proxy-type="attribute">portal:urlFactory=Delegating</depends>
</mbean>
+ <!-- LABS URL factories -->
+
+ <mbean
+ code="org.jboss.labs.mapper.url.LabsMainUrlFactory"
+ name="portal:urlFactory=LabsMain"
+ xmbean-dd=""
+ xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+ <xmbean/>
+ <depends
+ optional-attribute-name="Factory"
+ proxy-type="attribute">portal:urlFactory=Delegating</depends>
+ <depends
+ optional-attribute-name="Container"
+ proxy-type="attribute">portal:container=PortalObject</depends>
+ </mbean>
+
<!-- The federating portlet invoker -->
<mbean
code="org.jboss.portal.federation.impl.FederatingPortletInvokerService"
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-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/Constants.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -49,7 +49,7 @@
/**
* Beginning of links to portal pages.
*/
- public static final String LINK_BASE = "/portal/";
+ public static final String LINK_BASE = "/";
/**
* Default freezone project name (global freezone).
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -88,7 +88,7 @@
}
public static String getPortalName() {
- return getRequestProperty(Constants.PROP_SHOTOKU_PORTAL_DIRECTORY);
+ return Constants.LABS_PORTAL;
}
public static boolean hasPermission(String permission) {
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-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -39,16 +39,12 @@
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
-import javax.management.MalformedObjectNameException;
import javax.portlet.PortalContext;
import javax.portlet.PortletRequest;
import javax.servlet.ServletRequest;
-import org.jboss.mx.util.MBeanProxyExt;
-import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.portlet.JBossRenderRequest;
import org.jboss.shotoku.ContentManager;
-import org.jboss.shotoku.tools.Tools;
import org.jboss.shotoku.aop.CacheItem;
import org.w3c.dom.Node;
@@ -196,6 +192,17 @@
}
/**
+ *
+ * @param path Absolute path to the Shotoku resource.
+ * @return A path to the given resource, accessible by the client using
+ * the file-access servlet.
+ */
+ public static String createFileAccessPath(String path) {
+ return "/" + ForgeHelper.FILE_ACCESS_DIR + "/" + path;
+ }
+
+
+ /**
* Creates a path which lets portlets to include pages (JSP and other) from
* the repository.
*
@@ -251,8 +258,7 @@
* @return Name of the current portal.
*/
public static String getPortalName(PortletRequest request) {
- PortalContext portalCtx = request.getPortalContext();
- return portalCtx.getProperty(Constants.PROP_SHOTOKU_PORTAL_DIRECTORY);
+ return Constants.LABS_PORTAL;
}
/**
@@ -395,12 +401,6 @@
return link;
}
- private static String removeParameter(String link, String param) {
- link = link.replace("?" + param + "&", "?");
- link = link.replace("?" + param, "");
- return link.replace("&" + param, "");
- }
-
public static String prepareLinkForChecking(String portalName, String link) {
if (link == null)
return link;
@@ -553,4 +553,26 @@
return md5.asHex();
}
+
+ /**
+ * Creates a camel-case concatenation of the given words.
+ * Null words are ommited.
+ * @param words Words to concatenate.
+ * @return A camel-case concatenation of the given words.
+ */
+ public static String createCamelCase(String... words) {
+ StringBuilder result = new StringBuilder("");
+ for (String word : words) {
+ if (word == null) { continue; }
+ if (word.length() == 1) {
+ result.append(word.toUpperCase());
+ continue;
+ }
+
+ result.append(word.substring(0, 1).toUpperCase()).append(
+ word.substring(1).toLowerCase());
+ }
+
+ return result.toString();
+ }
}
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-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -42,94 +42,94 @@
/**
* Various helper methods for project-specific portlets.
- *
+ *
* @author Adam Warski (adamw at aster.pl)
* @author Ryszard Kozmik
*/
public class ProjectsHelper {
-
- private static Logger log = Logger.getLogger(ProjectsHelper.class);
-
- /**
- * This class cannot be instatiated.
- */
- private ProjectsHelper() {
- }
+ private static Logger log = Logger.getLogger(ProjectsHelper.class);
- /**
- * <code>PROJECT_ID</code> - name of the attribute under which the
- * selected project's id can be found in a servlet response object.
- */
- public final static String PROJECT_ID = "projectId";
- /**
- * <code>LEVEL_ID</code> - name of the attribute under which the
- * selected level's id can be found in a servlet response object.
- */
- public final static String LEVEL_ID = "levelId";
- /**
- * <code>PROJECT_NAME</code> - name of the attribute under which the
- * selected project's name can be found in a servlet response object.
- */
- public final static String PROJECT_NAME = "projectName";
+ /**
+ * This class cannot be instatiated.
+ */
+ private ProjectsHelper() {
- /**
- * <code>DEFAULT_PROJECT</code> - name of the project to return if there
- * is no project selected.
- */
- private final static String DEFAULT_PROJECT = "default";
+ }
- /**
- * <code>projectsObjects</code> - portalName -> Projects object
- */
- private static Map<String, Projects> projectsObjects;
+ /**
+ * <code>PROJECT_ID</code> - name of the attribute under which the
+ * selected project's id can be found in a servlet response object.
+ */
+ public final static String PROJECT_ID = "projectId";
+ /**
+ * <code>LEVEL_ID</code> - name of the attribute under which the
+ * selected level's id can be found in a servlet response object.
+ */
+ public final static String LEVEL_ID = "levelId";
+ /**
+ * <code>PROJECT_NAME</code> - name of the attribute under which the
+ * selected project's name can be found in a servlet response object.
+ */
+ public final static String PROJECT_NAME = "projectName";
- public final static String PROJECT_DESC = "project.xml";
- public final static String PROJECTS_DESC = "projects.xml";
+ /**
+ * <code>DEFAULT_PROJECT</code> - name of the project to return if there
+ * is no project selected.
+ */
+ private final static String DEFAULT_PROJECT = "default";
- public final static String LEVELS_DESC = "levels.xml";
- protected final static String PAGES_DESC = "pages.xml";
- protected final static String JEMS_DESC = "jems.xml";
- protected final static String CATEGORIES_DESC = "categories.xml";
- protected final static String DOWNLOADS_DESC = "downloads.xml";
- protected final static String DOWNLOADCOUNTER_DESC = "counter.xml";
- protected final static String DOWNLOADCOUNTERMAIN_DESC = "counters.xml";
- public final static String POLLS_DESC = "polls.xml";
- public final static String POLL_DESC = "poll.xml";
+ /**
+ * <code>projectsObjects</code> - portalName -> Projects object
+ */
+ private static Map<String, Projects> projectsObjects;
- /**
- * <code>MEMBERS_DIRECTORY</code> - base repository directory in which
- * members store their files.
- */
- public final static String MEMBERS_DIR = "members";
- public final static String DOWNLOADS_DIR = "downloads";
- public final static String BLOG_DIR = "blog";
- public final static String FREEZONE_DIR = "freezone";
+ public final static String PROJECT_DESC = "project.xml";
+ public final static String PROJECTS_DESC = "projects.xml";
- static {
- projectsObjects = new HashMap<String, Projects>();
- }
+ public final static String LEVELS_DESC = "levels.xml";
+ protected final static String PAGES_DESC = "pages.xml";
+ protected final static String JEMS_DESC = "jems.xml";
+ protected final static String CATEGORIES_DESC = "categories.xml";
+ protected final static String DOWNLOADS_DESC = "downloads.xml";
+ protected final static String DOWNLOADCOUNTER_DESC = "counter.xml";
+ protected final static String DOWNLOADCOUNTERMAIN_DESC = "counters.xml";
+ public final static String POLLS_DESC = "polls.xml";
+ public final static String POLL_DESC = "poll.xml";
- /**
- * Gets an instance of the Projects object for the given portal.
- *
- * @param portalName
- * Name of the portal.
- * @return An appropriate instance of class Projects.
- */
- public static Projects getProjects(String portalName) {
- Projects projects = projectsObjects.get(portalName);
- if (projects == null) {
+ /**
+ * <code>MEMBERS_DIRECTORY</code> - base repository directory in which
+ * members store their files.
+ */
+ public final static String MEMBERS_DIR = "members";
+ public final static String DOWNLOADS_DIR = "downloads";
+ public final static String BLOG_DIR = "blog";
+ public final static String FREEZONE_DIR = "freezone";
+
+ static {
+ projectsObjects = new HashMap<String, Projects>();
+ }
+
+ /**
+ * Gets an instance of the Projects object for the given portal.
+ *
+ * @param portalName
+ * Name of the portal.
+ * @return An appropriate instance of class Projects.
+ */
+ public static Projects getProjects(String portalName) {
+ Projects projects = projectsObjects.get(portalName);
+ if (projects == null) {
synchronized (ProjectsHelper.class) {
if (projects == null) {
projects = new Projects(portalName);
projectsObjects.put(portalName, projects);
}
}
- }
+ }
- return projects;
- }
+ return projects;
+ }
public static Projects getProjects() {
return getProjects(Constants.LABS_PORTAL);
@@ -140,148 +140,172 @@
}
/**
- * Equivalent to <code>getSelectedProjectId(request, false)</code>.
- * @param request
- * A request object from which the selected project name will be
- * read.
- * @return Selected project's id, or null, if no project is selected (never
- * the default project, as it cannot be selected).
- */
- public static String getSelectedProjectId(JBossRenderRequest request) {
- return getSelectedProjectId(request, false);
- }
+ * Equivalent to <code>getSelectedProjectId(request, false)</code>.
+ * @param request
+ * A request object from which the selected project name will be
+ * read.
+ * @return Selected project's id, or null, if no project is selected (never
+ * the default project, as it cannot be selected).
+ */
+ public static String getSelectedProjectId(JBossRenderRequest request) {
+ return getSelectedProjectId(request, false);
+ }
- /**
- * @param request
- * A request object from which the selected project name will be
- * read.
- * @param withDefault
- * True if default project name should be returned if no project
- * is selected. False if null should be returned in such case.
- * @return Selected project's id, or the default project's id/ null, depending
- * on <code>withDefault</code>, if no project is selected.
- */
- public static String getSelectedProjectId(JBossRenderRequest request,
- boolean withDefault) {
+ /**
+ * @param request
+ * A request object from which the selected project name will be
+ * read.
+ * @param withDefault
+ * True if default project name should be returned if no project
+ * is selected. False if null should be returned in such case.
+ * @return Selected project's id, or the default project's id/ null, depending
+ * on <code>withDefault</code>, if no project is selected.
+ */
+ public static String getSelectedProjectId(JBossRenderRequest request,
+ boolean withDefault) {
String projectId = getSeletedProjectId(request);
if ((projectId == null) && (withDefault)) {
- projectId = DEFAULT_PROJECT;
- } else if ((!withDefault) && (DEFAULT_PROJECT.equals(projectId))) {
- projectId = null;
- } else if ((!DEFAULT_PROJECT.equals(projectId)) &&
- (getProjects(ForgeHelper.getPortalName(request)).getProjectContext(
- new RenderRequestPermissionsChecker(request), projectId) == null)) {
- // No project context --> project does not exist.
- projectId = null;
- }
+ projectId = DEFAULT_PROJECT;
+ } else if ((!withDefault) && (DEFAULT_PROJECT.equals(projectId))) {
+ projectId = null;
+ } else if ((!DEFAULT_PROJECT.equals(projectId)) &&
+ (getProjects(ForgeHelper.getPortalName(request)).getProjectContext(
+ new RenderRequestPermissionsChecker(request), projectId) == null)) {
+ // No project context --> project does not exist.
+ projectId = null;
+ }
return projectId;
- }
+ }
- /**
- * Equivalent to <code>getSelectedProjectId(request, false)</code>.
- * @param request
- * A request object from which the selected project name will be
- * read.
- * @return Selected project's id, or null, if no project is selected (never
- * the default project, as it cannot be selected).
- */
- public static String getSelectedProjectId(JBossActionRequest request) {
- return getSelectedProjectId(request, false);
- }
+ /**
+ * Equivalent to <code>getSelectedProjectId(request, false)</code>.
+ * @param request
+ * A request object from which the selected project name will be
+ * read.
+ * @return Selected project's id, or null, if no project is selected (never
+ * the default project, as it cannot be selected).
+ */
+ public static String getSelectedProjectId(JBossActionRequest request) {
+ return getSelectedProjectId(request, false);
+ }
- /**
- * @param request
- * A request object from which the selected project name will be
- * read.
- * @param withDefault
- * True if default project name should be returned if no project
- * is selected. False if null should be returned in such case.
- * @return Selected project's id, or the default project's id/ null, depending
- * on <code>withDefault</code>, if no project is selected.
- * @deprecated
- */
- public static String getSelectedProjectId(JBossActionRequest request,
- boolean withDefault) {
+ /**
+ * @param request
+ * A request object from which the selected project name will be
+ * read.
+ * @param withDefault
+ * True if default project name should be returned if no project
+ * is selected. False if null should be returned in such case.
+ * @return Selected project's id, or the default project's id/ null, depending
+ * on <code>withDefault</code>, if no project is selected.
+ */
+ public static String getSelectedProjectId(JBossActionRequest request,
+ boolean withDefault) {
String projectId = getSeletedProjectId(request);
if ((projectId == null) && (withDefault)) {
- projectId = DEFAULT_PROJECT;
- } else if ((!withDefault) && (DEFAULT_PROJECT.equals(projectId))) {
- projectId = null;
- } else if ((!DEFAULT_PROJECT.equals(projectId)) &&
- (getProjects(ForgeHelper.getPortalName(request)).getProjectContext(
- new ActionRequestPermissionsChecker(request), projectId) == null)) {
- // No project context --> project does not exist.
- projectId = null;
- }
+ projectId = DEFAULT_PROJECT;
+ } else if ((!withDefault) && (DEFAULT_PROJECT.equals(projectId))) {
+ projectId = null;
+ } else if ((!DEFAULT_PROJECT.equals(projectId)) &&
+ (getProjects(ForgeHelper.getPortalName(request)).getProjectContext(
+ new ActionRequestPermissionsChecker(request), projectId) == null)) {
+ // No project context --> project does not exist.
+ projectId = null;
+ }
return projectId;
- }
+ }
- /**
- * Prepares a request object for generating a JSP. PROJECT_NAME and
- * PROJECT_ID attributes are set.
- *
- * @param request
- * Request to prepare.
- */
- public static void prepareRequest(JBossRenderRequest request) {
- }
+ /**
+ * Prepares a request object for generating a JSP. PROJECT_NAME and
+ * PROJECT_ID attributes are set.
+ *
+ * @param request
+ * Request to prepare.
+ */
+ public static void prepareRequest(JBossRenderRequest request) {
+ }
- /**
- * Creates a link to a freezone page basing on the given parameters.
- *
- * @param portalName
- * Name of the portal.
- * @param projectId
- * Id of the project.
- * @param page
- * Page to link to.
- * @return A link to the given page.
- */
- public static String createFreezonePageLink(String portalName, String projectId,
- String page) {
- return Constants.LINK_BASE + projectId + "/" + page;
- }
+ /**
+ * Creates a link to a freezone page basing on the given parameters.
+ *
+ * @param portalName
+ * Name of the portal.
+ * @param projectId
+ * Id of the project.
+ * @param page
+ * Page to link to.
+ * @return A link to the given page.
+ */
+ public static String createFreezonePageLink(String portalName, String projectId,
+ String page) {
+ return Constants.LINK_BASE + projectId + "/" + page;
+ }
- /**
- * Creates a link to a portal page based on the given parameters.
- * @param portalName Name of the portal.
- * @param projectId Id of the project for which the page should be displayed.
- * @param page Page to display.
- * @return A link to the given portal page.
- */
- public static String createPageLink(String portalName, String projectId, String page) {
- return Constants.LINK_BASE + projectId + "/" + page;
- }
+ /**
+ * Creates a link to a portal page based on the given parameters.
+ * @param portalName Name of the portal.
+ * @param projectId Id of the project for which the page should be displayed.
+ * @param page Page to display.
+ * @return A link to the given portal page.
+ */
+ public static String createPageLink(String portalName, String projectId, String page) {
+ return Constants.LINK_BASE + projectId + "/" + page;
+ }
- public static Map<String, String> getProjectsNameId(String portalName) {
- return getProjects(portalName).getProjectsNameId();
- }
-
- public static Set<String> getProjectIds(String portalName) {
- return getProjects(portalName).getProjectIds();
- }
+ public static Map<String, String> getProjectsNameId(String portalName) {
+ return getProjects(portalName).getProjectsNameId();
+ }
- public static ProjectsService getProjectsService() {
-
- ProjectsService service = null;
-
- try {
- MBeanServer server = MBeanServerLocator.locate();
+ public static Set<String> getProjectIds(String portalName) {
+ return getProjects(portalName).getProjectIds();
+ }
- service = (ProjectsService) MBeanProxyExt.create(
- ProjectsService.class,
- ProjectsService.PROJECTS_SERVICE,
- server);
-
-
- } catch (MalformedObjectNameException e) {
- log.warn("Unable to get ProjectsService", e);
- }
-
- return service;
- }
+ public static ProjectsService getProjectsService() {
+
+ ProjectsService service = null;
+
+ try {
+ MBeanServer server = MBeanServerLocator.locate();
+
+ service = (ProjectsService) MBeanProxyExt.create(
+ ProjectsService.class,
+ ProjectsService.PROJECTS_SERVICE,
+ server);
+
+
+ } catch (MalformedObjectNameException e) {
+ log.warn("Unable to get ProjectsService", e);
+ }
+
+ return service;
+ }
+
+ /**
+ *
+ * @param projectId Id of the project to which freezone's the given path
+ * is relative.
+ * @param relPath Relative path of the resource.
+ * @return Absolute path to the given Shotoku resource in the given's
+ * project's freezone. If the path denotes a directory, default page
+ * is added to the path.
+ */
+ public static String createAbsoluteFreezonePath(String projectId, String relPath) {
+ String path = Constants.LABS_PORTAL + "/" + ProjectsHelper.MEMBERS_DIR + "/" +
+ projectId + "/" + ProjectsHelper.FREEZONE_DIR + "/" +
+ (relPath == null ? "" : relPath);
+
+ if (!path.contains(".")) {
+ if (!path.endsWith("/")) {
+ path += "/";
+ }
+
+ path += Constants.FREEZONE_DEFAULT_PAGE;
+ }
+
+ return path;
+ }
}
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-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -3,6 +3,7 @@
import org.jboss.forge.common.ejb3.ProjectPagesService;
import org.jboss.forge.common.ejb3.LabsServices;
import org.jboss.forge.common.Constants;
+import org.jboss.forge.common.ForgeHelper;
import org.jboss.forge.common.exceptions.ServiceRetrievalException;
import org.jboss.forge.common.projects.portlets.ProjectsPortlet;
import org.jboss.portal.core.model.portal.*;
@@ -61,32 +62,6 @@
}
/*
- * Utility functions.
- */
-
- /**
- * Creates a camel-case concatenation of the given words.
- * Null words are ommited.
- * @param words Words to concatenate.
- * @return A camel-case concatenation of the given words.
- */
- private String createCamelCase(String... words) {
- StringBuilder result = new StringBuilder("");
- for (String word : words) {
- if (word == null) { continue; }
- if (word.length() == 1) {
- result.append(word.toUpperCase());
- continue;
- }
-
- result.append(word.substring(0, 1).toUpperCase()).append(
- word.substring(1).toLowerCase());
- }
-
- return result.toString();
- }
-
- /*
* DEBUG
*/
@@ -267,7 +242,7 @@
String portletId = portlet.getPortalId();
// Constructing the instance id.
- String instanceId = createCamelCase(portletName, projectId, pageName, "instance");
+ String instanceId = ForgeHelper.createCamelCase(portletName, projectId, pageName, "instance");
// Checking if the instance already exists.
Instance instance = pic.getDefinition(instanceId);
@@ -348,7 +323,7 @@
}
public String createWindowId(String portletName, String projectId, String pageName) {
- return createCamelCase(portletName, projectId, pageName, "window");
+ return ForgeHelper.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/PathParser.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/PathParser.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/PathParser.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -1,6 +1,8 @@
package org.jboss.labs.mapper;
/**
+ * A simple path parser, which enables to access tokens of a given
+ * string split around '/'.
* @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
*/
public class PathParser {
@@ -50,22 +52,42 @@
rest = (tokens.length > 1 ? tokens[1] : null);
}
+ /**
+ *
+ * @return The current first token.
+ */
public String getFirstToken() {
return firstToken;
}
+ /**
+ *
+ * @return The current rest of the path.
+ */
public String getRest() {
return rest;
}
+ /**
+ *
+ * @return True iff there are more non-null tokens.
+ */
public boolean hasMoreTokens() {
return rest != null;
}
+ /**
+ *
+ * @return True iff a non-null first token is present
+ */
public boolean hasFirstToken() {
return firstToken != null;
}
+ /**
+ * Shifts the parser by one token, that is, forgets the first one
+ * and reads the next from the previous rest of the path.
+ */
public void proceed() {
if (hasMoreTokens()) {
doSplit(rest);
@@ -74,6 +96,11 @@
}
}
+ /**
+ *
+ * @return The current full path, that is, the first token
+ * concatenated with '/' and the rest of the path
+ */
public String getCurrent() {
return lastRest;
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsBaseCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsBaseCommandFactory.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsBaseCommandFactory.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -1,23 +1,14 @@
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;
-
/**
+ * A base class for Labs command factories.
* @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() {
@@ -26,37 +17,7 @@
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.
Modified: 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/AbstractLabsDelegateCommandFactory.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/AbstractLabsDelegateCommandFactory.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -1,17 +1,13 @@
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;
-
/**
+ * A base class for Labs delegate command factories.
* @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;
@@ -21,14 +17,6 @@
this.delegatingCF = delegatingCF;
}
- public LabsPortalObjectCommandFactory getPortalObjectCF() {
- return portalObjectCF;
- }
-
- public void setPortalObjectCF(LabsPortalObjectCommandFactory portalObjectCF) {
- this.portalObjectCF = portalObjectCF;
- }
-
public String getPath() {
return path;
}
@@ -38,8 +26,8 @@
}
/*
- * Service lifecycle methods.
- */
+ * Service lifecycle methods.
+ */
protected void startService() throws Exception {
getDelegatingCF().register(getPath(), this);
Modified: 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/LabsDelegateCommandFactory.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegateCommandFactory.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -2,25 +2,22 @@
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;
/**
+ * A base interface for factories, to which mapping requests can
+ * be delegated basing on the request path, by
+ * {@see 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);
+ PathParser parser);
public LabsDelegatingCommandFactory getDelegatingCF();
public void setDelegatingCF(LabsDelegatingCommandFactory delegating);
- public LabsPortalObjectCommandFactory getPortalObjectCF();
- public void setPortalObjectCF(LabsPortalObjectCommandFactory portalObjectCF);
-
public String getPath();
public void setPath(String path);
}
Deleted: 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/LabsDelegatePagesCommandFactory.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatePagesCommandFactory.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -1,16 +0,0 @@
-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;
- }
-}
Modified: 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/LabsDelegatingCommandFactory.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatingCommandFactory.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -7,11 +7,21 @@
import org.jboss.labs.mapper.command.LabsDelegateCommandFactory;
/**
+ * A delegating command factory, which delegates mapping to registered
+ * factories based on the first token of the requested path.
* @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);
+ PathParser parser);
+
+ /**
+ * Registeres a factory so that requests with the given first token
+ * will be delegated to it.
+ * @param path First token of the request path that must be matched
+ * in order to delegate the mapping.
+ * @param factory Factory to which mapping should be delegated.
+ */
public void register(String path, LabsDelegateCommandFactory factory);
}
Modified: 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/LabsDelegatingCommandFactoryImpl.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsDelegatingCommandFactoryImpl.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -1,58 +1,42 @@
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) {
+ public ControllerCommand doMapping(ServerInvocation invocation, String host,
+ String contextPath, PathParser parser) {
if (parser.hasFirstToken()) {
+ // Checking if there is any delegate factory registered for the
+ // given token.
String firstToken = parser.getFirstToken();
for (String path : factories.keySet()) {
if (firstToken.equals(path)) {
+ // Found a match; skipping the matched token and proceeding
+ // with the mapping.
parser.proceed();
return factories.get(path).doMapping(invocation, host, contextPath,
- parser, projectId);
+ parser);
}
}
}
- // 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;
- }
+ return null;
}
public synchronized void register(String path, LabsDelegateCommandFactory factory) {
Modified: 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/LabsMainCommandFactory.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsMainCommandFactory.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -2,22 +2,34 @@
import org.jboss.portal.core.controller.command.mapper.CommandFactory;
import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.core.model.portal.*;
import org.jboss.portal.server.ServerInvocation;
-import org.jboss.forge.common.projects.ProjectsHelper;
-import org.jboss.forge.common.projects.Projects;
+import org.jboss.labs.mapper.PathParser;
import org.jboss.forge.common.Constants;
-import org.jboss.labs.mapper.PathParser;
/**
+ * Main Labs command factory. Finds the most specific portal object
+ * the request reffers to; then tries to delegate the mapping to
+ * some registered delegate factory and if this is unsuccessfull,
+ * default portal object mapping is invoked.
* @author Adam Warski (adamw at aster.pl)
*/
public class LabsMainCommandFactory extends AbstractLabsBaseCommandFactory implements CommandFactory {
private LabsDelegatingCommandFactory delegatingCF;
+ private LabsPortalObjectCommandFactory portalObjectCF;
/*
* Getters and setters.
*/
+ public LabsPortalObjectCommandFactory getPortalObjectCF() {
+ return portalObjectCF;
+ }
+
+ public void setPortalObjectCF(LabsPortalObjectCommandFactory portalObjectCF) {
+ this.portalObjectCF = portalObjectCF;
+ }
+
public LabsDelegatingCommandFactory getDelegatingCF() {
return delegatingCF;
}
@@ -26,25 +38,75 @@
this.delegatingCF = delegatingCF;
}
+ /**
+ * Portal id of the labs portal.
+ */
+ private PortalObjectId defaultPortalPath = PortalObjectId.parse("/" + Constants.LABS_PORTAL,
+ PortalObjectId.CANONICAL_FORMAT);
+
+ /**
+ *
+ * @return A portal object representing the Labs portal.
+ */
+ private Portal getLabsPortal() {
+ return (Portal) getContainer().getObject(defaultPortalPath);
+ }
+
+ /**
+ *
+ * @param parser Parser from which to read the data.
+ * @return The most specific portal object, corresponding to the data from
+ * the parser.
+ */
+ private PortalObject getPortalObject(PathParser parser) {
+ PortalObject o = getLabsPortal();
+
+ while (true) {
+ if (!parser.hasFirstToken()) {
+ return o;
+ }
+
+ PortalObject child = o.getChild(parser.getFirstToken());
+
+ if (child == null) {
+ return o;
+ }
+
+ o = child;
+ parser.proceed();
+ }
+ }
+
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;
+ // Getting the portal object referenced by the path.
+ PortalObject target = getPortalObject(parser);
+
+ // In case the portal object is a portal, the "real" target is this
+ // portal's default page.
+ if (target instanceof Portal) {
+ target = ((Portal) target).getDefaultPage();
}
- Projects projects = ProjectsHelper.getProjects(Constants.LABS_PORTAL);
- String projectId = parser.getFirstToken();
+ if (target instanceof Page) {
+ // First trying to delegate the mapping.
+ ControllerCommand cmd = delegatingCF.doMapping(invocation, host, contextPath, parser);
- if (projects.projectExists(projectId)) {
- System.out.println("RECOGNIZED A PROJECT: " + projectId);
- parser.proceed();
+ if (cmd == null) {
+ // If this is unsuccessfull, doing the default page mappnig.
+ return getPortalObjectCF().doMapping(invocation, parser, (Page) target);
+ } else {
+ return cmd;
+ }
+ } else if (target instanceof Window) {
+ // If the path referenced a window, then the mapping cannot be
+ // delegated; doing the default window mapping.
+ return getPortalObjectCF().doMapping(invocation, parser, (Window) target);
} else {
- projectId = null;
+ // Unknown portal object type.
+ return null;
}
-
- return delegatingCF.doMapping(invocation, host, contextPath, parser, projectId);
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactory.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactory.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -2,13 +2,19 @@
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.server.ServerInvocation;
import org.jboss.labs.mapper.PathParser;
/**
+ * A command factory which maps a page/ window request to a freezone
+ * request, or a portal action/ render request.
* @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);
+ Page page);
+
+ public ControllerCommand doMapping(ServerInvocation invocation, PathParser parser,
+ Window window);
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactoryImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactoryImpl.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/LabsPortalObjectCommandFactoryImpl.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -4,44 +4,212 @@
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.core.model.portal.command.InvokePortletWindowRenderCommand;
+import org.jboss.portal.core.model.portal.command.InvokePortletWindowActionCommand;
+import org.jboss.portal.core.model.portal.command.ImportPageToDashboardCommand;
import org.jboss.portal.server.ServerInvocation;
-import org.jboss.portal.portlet.PortletParameters;
+import org.jboss.portal.portlet.PortletParametersStateString;
+import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.impl.PortletRequestDecoder;
+import org.jboss.portal.theme.navigation.WindowNavigationalState;
+import org.jboss.portal.WindowState;
+import org.jboss.portal.Mode;
import org.jboss.forge.common.Constants;
-import org.jboss.labs.mapper.command.AbstractLabsBaseCommandFactory;
+import org.jboss.forge.common.ForgeHelper;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
+import org.jboss.forge.common.ejb3.LabsServices;
import org.jboss.labs.mapper.PathParser;
+import org.jboss.shotoku.aop.Inject;
+import org.jboss.shotoku.ContentManager;
+import org.jboss.shotoku.exceptions.ResourceDoesNotExist;
+import java.io.IOException;
+import java.util.Map;
+import java.util.HashMap;
+
/**
* @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
*/
public class LabsPortalObjectCommandFactoryImpl extends AbstractLabsBaseCommandFactory
implements LabsPortalObjectCommandFactory {
+ @Inject
+ private ContentManager cm;
+
+ private WindowNavigationalState getWindowNavState(ServerInvocation invocation, Window window) {
+ 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 windowNavState;
+ }
+
+ private ControllerCommand invokeRenderCommand(ServerInvocation invocation, Window window,
+ StateString params) {
+ WindowNavigationalState windowNavState = getWindowNavState(invocation, window);
+
+ return new InvokePortletWindowRenderCommand(window.getId(), windowNavState.getMode(),
+ windowNavState.getWindowState(), params);
+ }
+
public ControllerCommand doMapping(ServerInvocation invocation, PathParser parser,
- Page page, String freezoneWindowId) {
+ Window window) {
+ return doMapping(invocation, window, null);
+ }
+
+ private ControllerCommand doMapping(ServerInvocation invocation, Window window,
+ Map<String, String> additionalParameters) {
+ if (window == null) {
+ throw new IllegalArgumentException("Window cannot be null.");
+ }
+
+ // Decoding the window state.
+ PortletRequestDecoder decoder = new PortletRequestDecoder();
+ decoder.decode(invocation.getServerContext().getQueryParameterMap(),
+ invocation.getServerContext().getBodyParameterMap());
+
+ // Get the window navigational state
+ WindowNavigationalState windowNavState = getWindowNavState(invocation, window);
+
+ //
+ WindowState windowState = decoder.getWindowState();
+ if (windowState == null) {
+ windowState = windowNavState.getWindowState();
+ }
+
+ //
+ Mode mode = decoder.getMode();
+ if (mode == null) {
+ mode = windowNavState.getMode();
+ }
+
+ // If any additional navigational parameters where passed and if we
+ // can add them, adding them.
+ StateString navState = decoder.getNavigationalstate();
+ if ((additionalParameters != null) && (navState instanceof PortletParametersStateString)) {
+ PortletParametersStateString ppss = (PortletParametersStateString) navState;
+
+ for (String key : additionalParameters.keySet()) {
+ ppss.setValue(key, additionalParameters.get(key));
+ }
+ }
+
+ // Returning an appropriate command.
+ switch (decoder.getType())
+ {
+ case PortletRequestDecoder.NAV_TYPE:
+ return new InvokePortletWindowRenderCommand(window.getId(), mode, windowState);
+ case PortletRequestDecoder.ACTION_TYPE:
+ return new InvokePortletWindowActionCommand(window.getId(), mode, windowState,
+ navState, decoder.getInteractionState(),
+ decoder.getForm());
+ case PortletRequestDecoder.RENDER_TYPE:
+ return new InvokePortletWindowRenderCommand(window.getId(), mode, windowState,
+ navState);
+ }
+
+ return null;
+ }
+
+ protected final static String FREEZONE_PORTLET_NAME = "freezone";
+
+ private String getFreezoneWindowId(String projectId, Page page) {
+ try {
+ if (projectId == null) {
+ return LabsServices.getProjectPagesService().createWindowId(
+ FREEZONE_PORTLET_NAME, null, page.getName());
+ } else {
+ return LabsServices.getProjectPagesService().createWindowId(
+ FREEZONE_PORTLET_NAME, projectId, null);
+ }
+ } catch (ServiceRetrievalException e) {
+ return null;
+ }
+ }
+
+ private void sendRedirect(ServerInvocation invocation, String where) {
+ try {
+ invocation.getServerContext().getClientResponse().sendRedirect(where);
+ } catch (IOException e) {
+ // Oh well ...
+ }
+ }
+
+ public ControllerCommand doMapping(ServerInvocation invocation, PathParser parser,
+ Page page) {
if (page == null) {
+ throw new IllegalArgumentException("Page cannot be null.");
+ }
+
+ // If a page is requested, the URL must end with a /, in order for
+ // relative paths to work.
+ if ((!parser.hasFirstToken()) && (!parser.getFullPath().endsWith("/"))) {
+ sendRedirect(invocation, parser.getFullPath()+"/");
return null;
}
- if (!parser.hasFirstToken()) {
- if (!parser.getFullPath().endsWith("/")) {
- System.out.println("REDIRECTING");
- sendRedirect(invocation, parser.getFullPath()+"/");
- return null;
+ // Checking if there is a freezone on the page.
+ String projectId = page.getDeclaredProperty(Constants.PORTAL_OBJECT_LABS_MARKER);
+
+ Window freezone = null;
+ String freezoneId = getFreezoneWindowId(projectId, page);
+
+ if (freezoneId != null) {
+ freezone = page.getWindow(freezoneId);
+ }
+
+ if (freezone != null) {
+ // Found a freezone window; invoking a render command on it.
+ String path = parser.getCurrent();
+
+ // Checking the mime type of the requested resource.
+ try {
+ String absPath = ProjectsHelper.createAbsoluteFreezonePath(projectId,
+ parser.getCurrent());
+ if (!Constants.PAGES_MIME_TYPE.equals(cm.getNode(absPath).getMimeType())) {
+ // A binary request; redirecting to file-access.
+ sendRedirect(invocation, ForgeHelper.createFileAccessPath(absPath));
+ return null;
+ }
+ } catch (ResourceDoesNotExist resourceDoesNotExist) {
+ // The page does not exist; proceeding.
}
- System.out.println("SHOWING NORMAL PAGE");
- return new RenderPageCommand(page.getId());
- } else {
- Window freezone = page.getWindow(freezoneWindowId);
+ // Setting the path parameter for the freezone to know what page
+ // to display. It has to be not-null, so "" is used as a
+ // null-marker.
+ if (path == null) { path = ""; }
- if (freezone == null) {
- return null;
+ // Checking if this is not an action request.
+ if (invocation.getServerContext().getQueryParameterMap().get(
+ PortletRequestDecoder.META_PARAMETER) != null) {
+ // If so, invoking default portal actions on a window action request,
+ // with a default path parameter.
+ Map<String, String> additionalParameters = new HashMap<String, String>();
+ additionalParameters.put(Constants.FREEZONE_PATH_PARAM, path);
+
+ return doMapping(invocation, freezone, additionalParameters);
}
- System.out.println("INVOKING FREEZONE: " + parser.getCurrent());
- PortletParameters params = new PortletParameters();
- params.put(Constants.FREEZONE_PATH_PARAM, new String[] { parser.getCurrent() });
+ // Otherwise, invoking a render command on the freezone window.
+ PortletParametersStateString params = new PortletParametersStateString();
+ params.setValue(Constants.FREEZONE_PATH_PARAM, path);
+ return invokeRenderCommand(invocation, freezone, params);
+ }
- return invokeActionCommand(invocation, freezone, params);
+ // Invoking a normal page render command.
+ String action = invocation.getServerContext().getQueryParameterMap().getValue("action");
+
+ //
+ if ("import".equals(action)) {
+ return new ImportPageToDashboardCommand(page.getId());
+ } else {
+ return new RenderPageCommand(page.getId());
}
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/LabsMainUrlFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/LabsMainUrlFactory.java 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/LabsMainUrlFactory.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -3,32 +3,61 @@
import org.jboss.portal.core.controller.command.mapper.URLFactoryDelegate;
import org.jboss.portal.core.controller.ControllerCommand;
import org.jboss.portal.core.model.portal.command.*;
-import org.jboss.portal.core.model.portal.PortalObject;
-import org.jboss.portal.core.model.portal.Window;
-import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.core.model.portal.*;
import org.jboss.portal.server.ServerURL;
import org.jboss.portal.server.ServerInvocation;
import org.jboss.portal.server.AbstractServerURL;
import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.PortletParametersStateString;
import org.jboss.portal.portlet.impl.PortletRequestEncoder;
-import org.jboss.portal.Mode;
-import org.jboss.portal.WindowState;
+import org.jboss.portal.portlet.impl.PortletRequestDecoder;
import org.jboss.forge.common.Constants;
+import java.util.Iterator;
+
/**
* @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
*/
public class LabsMainUrlFactory extends URLFactoryDelegate {
- private static final String FREEZONE_WINDOW_COMPONENT = "Freezone";
+ /*
+ * Getters and setters.
+ */
+ private PortalObjectContainer container;
+
+ public PortalObjectContainer getContainer() {
+ return container;
+ }
+
+ public void setContainer(PortalObjectContainer container) {
+ this.container = container;
+ }
+
private void addTokenToPath(StringBuffer sb, String toAdd) {
sb.append('/').append(toAdd);
}
- private void addToPath(StringBuffer sb, PortalObject po) {
- while ((po instanceof Window) || (po instanceof Page)) {
- addTokenToPath(sb, po.getName());
- po = po.getParent();
+ private static final String FREEZONE_WINDOW_COMPONENT = "Freezone";
+
+ /**
+ * To the given buffer, adds a portal-id-path to the given portal object id,
+ * without the portal name (that is, the first part of the id).
+ * @param sb Buffer to which to add the path.
+ * @param id Id from which to read the information.
+ * @param addLast Should the last token be added to the buffer.
+ */
+ private void addToPath(StringBuffer sb, PortalObjectId id, boolean addLast) {
+ Iterator it = id.names();
+ // Skipping the portal name.
+ it.next();
+ for (; it.hasNext();) {
+ String current = (String) it.next();
+
+ if ((addLast || it.hasNext())) {
+ addTokenToPath(sb, current);
+ } else {
+ break;
+ }
}
}
@@ -45,73 +74,69 @@
throw new IllegalArgumentException("No null command accepted");
}
- System.out.println(" LABS URLS");
-
if (command instanceof PortalObjectCommand) {
StringBuffer sb = new StringBuffer();
PortalObjectCommand poc = (PortalObjectCommand) command;
- if (poc.getTarget() == null) {
+ if (poc instanceof RenderPageCommand) {
+ // A simple render page command - only adding the portal-id path.
+ addToPath(sb, poc.getTargetId(), true);
+
return convertToURL(sb);
- }
+ } else
+ if (poc instanceof InvokeWindowCommand) {
+ InvokeWindowCommand wndCmd = (InvokeWindowCommand) poc;
+ InvokePortletWindowActionCommand actionCmd = null;
+ InvokePortletWindowRenderCommand renderCmd = null;
+ boolean freezone = false;
- String projectId = poc.getTarget().getDeclaredProperty(
- Constants.PORTAL_OBJECT_LABS_MARKER);
+ StateString navigationalState = null;
- if (projectId != null) {
- System.out.println(" ADDING PROJECT");
- addTokenToPath(sb, projectId);
- }
+ if (poc instanceof InvokePortletWindowActionCommand) {
+ actionCmd = (InvokePortletWindowActionCommand) poc;
+ navigationalState = actionCmd.getNavigationalState();
+ } else if (poc instanceof InvokePortletWindowRenderCommand) {
+ renderCmd = (InvokePortletWindowRenderCommand) poc;
+ navigationalState = renderCmd.getNavigationalState();
+ }
- if (poc instanceof RenderPageCommand) {
- System.out.println(" RENDER PAGE");
- addToPath(sb, poc.getTarget());
+ if (wndCmd.getTargetId().toString().contains(FREEZONE_WINDOW_COMPONENT)) {
+ // A freezone window request; adding the resource path to
+ // the buffer.
+ freezone = true;
+ String path = null;
+ if (navigationalState instanceof PortletParametersStateString) {
+ PortletParametersStateString ppss =
+ (PortletParametersStateString) navigationalState;
+ path = ppss.getParameters().getValue(Constants.FREEZONE_PATH_PARAM);
+ ppss.getParameters().remove(Constants.FREEZONE_PATH_PARAM);
+ }
- return convertToURL(sb);
- } else if (poc instanceof InvokePortletWindowActionCommand) {
- System.out.println(" ACTION");
- InvokePortletWindowActionCommand actionCmd =
- (InvokePortletWindowActionCommand) poc;
-
- if (actionCmd.getWindow().getName().contains(FREEZONE_WINDOW_COMPONENT)) {
- System.out.println(" FREEZONE");
- String path =
- actionCmd.getFormParameters().getValue(Constants.FREEZONE_PATH_PARAM);
- if (path != null) {
- addTokenToPath(sb, path);
- actionCmd.getFormParameters().remove(Constants.FREEZONE_PATH_PARAM);
- } else {
- addToPath(sb, poc.getTarget().getParent());
- }
+ addToPath(sb, poc.getTargetId(), false);
+ if (path != null) { addTokenToPath(sb, path); }
} else {
- addToPath(sb, poc.getTarget());
+ // A non-freezone window request; constructing the URL in a
+ // canonical (almost standard portal) way.
+ addToPath(sb, poc.getTargetId(), true);
}
- Mode mode = actionCmd.getMode();
- WindowState windowState = actionCmd.getWindowState();
-
ServerURL url = convertToURL(sb);
- StateString interactionState = actionCmd.getInteractionState();
- StateString navigationalState = actionCmd.getNavigationalState();
- PortletRequestEncoder.encodeAction(url, navigationalState, interactionState,
- mode, windowState);
- } else if (poc instanceof InvokePortletWindowRenderCommand) {
- System.out.println(" RENDER");
- InvokePortletWindowRenderCommand renderCmd =
- (InvokePortletWindowRenderCommand) poc;
+ if (actionCmd != null) {
+ PortletRequestEncoder.encodeAction(url, actionCmd.getNavigationalState(),
+ actionCmd.getInteractionState(), actionCmd.getMode(),
+ actionCmd.getWindowState());
+ } else if (renderCmd != null) {
+ PortletRequestEncoder.encodeRender(url, navigationalState,
+ renderCmd.getMode(), renderCmd.getWindowState());
- addToPath(sb, poc.getTarget());
+ if (freezone) {
+ url.getParameterMap().remove(PortletRequestDecoder.META_PARAMETER);
+ }
+ }
- Mode mode = renderCmd.getMode();
- WindowState windowState = renderCmd.getWindowState();
-
- ServerURL url = convertToURL(sb);
-
- StateString navigationalState = renderCmd.getNavigationalState();
- PortletRequestEncoder.encodeRender(url, navigationalState, mode, windowState);
+ return url;
} else if (poc instanceof ImportPageToDashboardCommand) {
- System.out.println(" DASHBOARD");
ServerURL url = convertToURL(sb);
url.setParameterValue("action", "import");
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-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/freezone/Freezone.java 2007-02-19 12:21:19 UTC (rev 9591)
@@ -69,7 +69,11 @@
// 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
+ if ("".equals(requestedRelPath)) {
+ requestedRelPath = null;
+ }
+
+ // It is used if an instance has defined preference in instance
// descriptor.
Object requestedPathFromPref = request.getPreferences().getValue("page", null);
@@ -77,12 +81,7 @@
requestedRelPath = requestedPathFromPref.toString();
}
- if (requestedRelPath == null) {
- requestedRelPath = Constants.FREEZONE_DEFAULT_PAGE;
- }
-
- return Constants.LABS_PORTAL + "/" + ProjectsHelper.MEMBERS_DIR + "/" +
- projectId + "/" + ProjectsHelper.FREEZONE_DIR + "/" + requestedRelPath;
+ return ProjectsHelper.createAbsoluteFreezonePath(projectId, requestedRelPath);
}
public void labsDoView(JBossRenderRequest request,
@@ -92,7 +91,6 @@
* checked in the url mapper).
*/
String projectId = ProjectsHelper.getSelectedProjectId(request);
- System.out.println("PROJECT ID: " + projectId);
if ((projectId != null) && (!"default".equals(projectId))
&& (!ProjectsHelper.getProjects(Constants.LABS_PORTAL)
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-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/portlet-instances.xml 2007-02-19 12:21:19 UTC (rev 9591)
@@ -7,8 +7,12 @@
<portlet-ref>FreezonePortlet</portlet-ref>
<preferences>
<preference>
+ <name>projectId</name>
+ <value>default</value>
+ </preference>
+ <preference>
<name>page</name>
- <value>default/members/default/freezone/welcome.html</value>
+ <value>welcome.html</value>
</preference>
</preferences>
</instance>
@@ -20,8 +24,12 @@
<portlet-ref>FreezonePortlet</portlet-ref>
<preferences>
<preference>
+ <name>projectId</name>
+ <value>default</value>
+ </preference>
+ <preference>
<name>page</name>
- <value>default/members/default/freezone/rightPanelContent.html</value>
+ <value>rightPanelContent.html</value>
</preference>
</preferences>
</instance>
@@ -33,8 +41,12 @@
<portlet-ref>FreezonePortlet</portlet-ref>
<preferences>
<preference>
+ <name>projectId</name>
+ <value>default</value>
+ </preference>
+ <preference>
<name>page</name>
- <value>default/members/default/freezone/mostdownloaded.html</value>
+ <value>mostdownloaded.html</value>
</preference>
</preferences>
</instance>
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/portlet.xml 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/portlet.xml 2007-02-19 12:21:19 UTC (rev 9591)
@@ -2,28 +2,6 @@
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
- <!--
- <portlet>
- <description>Forge project info portlet</description>
- <portlet-name>InfoPortlet</portlet-name>
- <display-name>Project information</display-name>
- <portlet-class>org.jboss.forge.projects.info.Info</portlet-class>
- <supports>
- <mime-type>text/html</mime-type>
- <portlet-mode>VIEW</portlet-mode>
- </supports>
- <portlet-info>
- <title>Project information</title>
- </portlet-info>
- <portlet-preferences>
- <preference>
- <name>projectId</name>
- <value>default</value>
- </preference>
- </portlet-preferences>
- </portlet>
- -->
-
<portlet>
<description>Forge project info portlet</description>
<portlet-name>InfoPortlet</portlet-name>
Modified: labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml 2007-02-19 11:51:50 UTC (rev 9590)
+++ labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml 2007-02-19 12:21:19 UTC (rev 9591)
@@ -83,7 +83,7 @@
</window>
<window>
- <window-name>FreezoneDefaultPortletWindow</window-name>
+ <window-name>FreezoneDefaultWindow</window-name>
<instance-ref>FreezoneDefaultPageInstance</instance-ref>
<region>left</region>
<height>0</height>
More information about the jboss-svn-commits
mailing list