[jboss-svn-commits] JBL Code SVN: r5021 - in labs/jbosslabs/trunk/portal-extensions: . forge-contributor/src/java/org/jboss/forge/contributor forge-feeds forge-feeds/src/java/org/jboss/forge/feeds forge-links forge-links/src forge-links/src/java forge-links/src/java/org forge-links/src/java/org/jboss forge-links/src/java/org/jboss/labs forge-links/src/java/org/jboss/labs/links forge-links/src/java/org/jboss/labs/links/service forge-links/src/java/org/jboss/labs/links/tools forge-mapper
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 11 17:51:07 EDT 2006
Author: adamw
Date: 2006-07-11 17:50:53 -0400 (Tue, 11 Jul 2006)
New Revision: 5021
Added:
labs/jbosslabs/trunk/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/CmsLinkParser.java
labs/jbosslabs/trunk/portal-extensions/forge-links/
labs/jbosslabs/trunk/portal-extensions/forge-links/forge-links.iml
labs/jbosslabs/trunk/portal-extensions/forge-links/maven.xml
labs/jbosslabs/trunk/portal-extensions/forge-links/project.properties
labs/jbosslabs/trunk/portal-extensions/forge-links/project.xml
labs/jbosslabs/trunk/portal-extensions/forge-links/src/
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/FreezoneLink.java
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/Link.java
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/LinksService.java
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/OutsideLink.java
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/PageLink.java
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/service/
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/service/LinksServiceImpl.java
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/service/LinksServiceLocal.java
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/tools/
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/tools/Constants.java
labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/tools/LinksTools.java
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java
labs/jbosslabs/trunk/portal-extensions/forge-feeds/forge-feeds.iml
labs/jbosslabs/trunk/portal-extensions/forge-mapper/forge-mapper.iml
Log:
http://jira.jboss.org/jira/browse/JBLAB-711
Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2006-07-11 21:50:53 UTC (rev 5021)
@@ -28,7 +28,7 @@
*/
public class ConAccessBean {
public boolean isAdminLogged() {
- return isUserLogged() && ConTools.hasPermission("con-admin");
+ return isUserLogged() && ConTools.hasPermission("con-admin");
}
public boolean isUserLogged() {
Modified: labs/jbosslabs/trunk/portal-extensions/forge-feeds/forge-feeds.iml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-feeds/forge-feeds.iml 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-feeds/forge-feeds.iml 2006-07-11 21:50:53 UTC (rev 5021)
@@ -15,6 +15,8 @@
<orderEntry type="module" module-name="shotoku-aop" />
<orderEntry type="module" module-name="shotoku-base" />
<orderEntry type="module" module-name="shotoku-feeds" />
+ <orderEntry type="library" name="velocity" level="application" />
+ <orderEntry type="module" module-name="forge-links" />
<orderEntryProperties />
</component>
</module>
Added: labs/jbosslabs/trunk/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/CmsLinkParser.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/CmsLinkParser.java 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/CmsLinkParser.java 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,46 @@
+package org.jboss.forge.feeds;
+
+import org.jboss.shotoku.tools.Tools;
+import org.jboss.forge.common.ForgeHelper;
+import org.jboss.forge.common.projects.ProjectsHelper;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class CmsLinkParser {
+ public static final String PRJ_FREEZONE_LINK_PREFIX =
+ ForgeHelper.LABS_PORTAL + "/" +
+ ProjectsHelper.MEMBERS_DIR + "/";
+ public static final int PRJ_FREEZONE_LINK_PREFIX_LEN =
+ PRJ_FREEZONE_LINK_PREFIX.length();
+
+ public String parseLink(String cmsPath) {
+ cmsPath = Tools.normalizeSlashes(cmsPath, false);
+
+ // Checking if this a link to a project's freezone page.
+ if (cmsPath.startsWith(PRJ_FREEZONE_LINK_PREFIX)) {
+ // Cutting off the default/members/
+ cmsPath = cmsPath.substring(PRJ_FREEZONE_LINK_PREFIX_LEN);
+
+ // Splitting into project and path
+ String[] tokens = cmsPath.split("[/]", 2);
+
+ // If there is enough data, creating a freezone link.
+ if (tokens.length == 2) {
+ int freezoneDirLen = ProjectsHelper.FREEZONE_DIR.length()+1;
+ if (tokens[1].length() > freezoneDirLen) {
+ tokens[1] = tokens[1].substring(freezoneDirLen);
+ }
+
+ if (org.jboss.forge.common.Constants.
+ DEFAULT_PORTAL_PAGE.equals(tokens[0])) {
+ return "/portal/" + tokens[1];
+ } else {
+ return "/portal/" + tokens[0] + "/" + tokens[1];
+ }
+ }
+ }
+
+ return ForgeHelper.FILE_ACCESS_DIR + "/" + cmsPath;
+ }
+}
Property changes on: labs/jbosslabs/trunk/portal-extensions/forge-links
___________________________________________________________________
Name: svn:ignore
+ target
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/forge-links.iml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/forge-links.iml 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/forge-links.iml 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4" relativePaths="true" type="JAVA_MODULE">
+ <component name="ModuleRootManager" />
+ <component name="NewModuleRootManager">
+ <output url="file://$MODULE_DIR$/target" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="jboss" level="application" />
+ <orderEntry type="module" module-name="forge-common" />
+ <orderEntry type="module" module-name="shotoku-aop" />
+ <orderEntry type="module" module-name="shotoku-base" />
+ <orderEntry type="library" name="portal" level="application" />
+ <orderEntryProperties />
+ </component>
+</module>
+
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/maven.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/maven.xml 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/maven.xml 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,25 @@
+<!--
+ JBoss, the OpenSource J2EE webOS
+ Distributable under LGPL license.
+ See terms of license at gnu.org.
+ -->
+<project xmlns:j="jelly:core" xmlns:ant="jelly:ant" xmlns:u="jelly:util">
+ <goal name="all">
+ <attainGoal name="prj-all" />
+ </goal>
+
+ <goal name="clean">
+ <attainGoal name="prj-clean" />
+ </goal>
+
+ <goal name="build">
+ <attainGoal name="ejb" />
+ </goal>
+
+ <goal name="deploy">
+ <!-- <ant:copy
+ file="target/forge-links.jar"
+ tofile="${local.deploy.dir}/forge-links.ejb3"
+ overwrite="true" />-->
+ </goal>
+</project>
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/project.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/project.properties 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/project.properties 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,5 @@
+maven.repo.remote=http://repository.atlassian.com,http://www.ibiblio.org/maven,http://dist.codehaus.org/
+maven.junit.fork=yes
+maven.war.src=${basedir}/src/web
+
+maven.final.name=${pom.artifactId}
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/project.xml 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/project.xml 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,51 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<project>
+ <pomVersion>3</pomVersion>
+ <extend>../common.xml</extend>
+ <id>forge-links</id>
+ <name>Forge links service</name>
+ <currentVersion>1.0</currentVersion>
+ <organization>
+ <name>Adam Warski</name>
+ <url>http://mamut.net.pl</url>
+ </organization>
+ <description></description>
+
+ <dependencies>
+ <dependency>
+ <groupId>jboss-forge</groupId>
+ <artifactId>forge-common</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>shotoku</groupId>
+ <artifactId>shotoku-base</artifactId>
+ <jar>shotoku-base.jar</jar>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>ejb3-persistence</artifactId>
+ <jar>ejb3-persistence.jar</jar>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-ejb3x</artifactId>
+ <jar>jboss-ejb3x.jar</jar>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-j2ee</artifactId>
+ <jar>jboss-j2ee.jar</jar>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-annotations-ejb3</artifactId>
+ <jar>jboss-annotations-ejb3.jar</jar>
+ </dependency>
+ <dependency>
+ <groupId>aslibs</groupId>
+ <artifactId>javax.servlet</artifactId>
+ <jar>javax.servlet.jar</jar>
+ </dependency>
+ </dependencies>
+</project>
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/FreezoneLink.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/FreezoneLink.java 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/FreezoneLink.java 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,14 @@
+package org.jboss.labs.links;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class FreezoneLink extends Link {
+ public FreezoneLink(String freezone) {
+ super(null, null, null, null, freezone, null);
+ }
+
+ public FreezoneLink(String projectId, String freezone) {
+ super(projectId, null, null, null, freezone, null);
+ }
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/Link.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/Link.java 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/Link.java 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,118 @@
+package org.jboss.labs.links;
+
+import org.jboss.labs.links.tools.Constants;
+import org.jboss.shotoku.tools.Tools;
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.projects.Projects;
+import org.jboss.forge.common.ForgeHelper;
+
+import java.util.Map;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public abstract class Link {
+ private String projectId;
+ private String page;
+ private String windowName;
+ private String renderMode;
+ private String freezone;
+ private Map<String, String> params;
+
+ private String link;
+
+ protected Link(String projectId, String page, String windowName,
+ String renderMode, String freezone,
+ Map<String, String> params) {
+ this.projectId = projectId;
+ this.page = page;
+ this.windowName = windowName;
+ this.renderMode = renderMode;
+ this.freezone = freezone;
+ this.params = params;
+ }
+
+ private void appendLinkPart(StringBuffer sb, String linkPart) {
+ if (linkPart != null) {
+ sb.append(linkPart);
+ sb.append(Constants.LINK_SEPARATOR);
+ }
+ }
+
+ /**
+ * Generates a string representation of this link basing on the
+ * not-null data that is provided.
+ */
+ private void generateLink() {
+ StringBuffer sb = new StringBuffer();
+
+ appendLinkPart(sb, Constants.LINK_PREFIX);
+ appendLinkPart(sb, projectId);
+
+ if (page != null) {
+ appendLinkPart(sb, page);
+ appendLinkPart(sb, windowName);
+ appendLinkPart(sb, renderMode);
+
+ if (params != null) {
+ boolean firstParam = true;
+ for (String key : params.keySet()) {
+ if (firstParam) {
+ sb.append("?");
+ } else {
+ sb.append("&");
+ }
+
+ sb.append(key).append("=").append(params.get(key));
+
+ firstParam = false;
+ }
+ }
+ } else {
+ appendLinkPart(sb, freezone);
+ }
+
+ link = sb.toString();
+ }
+
+ /**
+ * @return A string representation of that link, that can be used in a
+ * browser.
+ */
+ public String toString() {
+ if (link == null) {
+ generateLink();
+ }
+
+ return link;
+ }
+
+ /*
+ * Getters.
+ */
+
+ public String getProjectId() {
+ return projectId;
+ }
+
+ public String getPage() {
+ return page;
+ }
+
+ public String getWindowName() {
+ return windowName;
+ }
+
+ public String getRenderMode() {
+ return renderMode;
+ }
+
+ public String getFreezone() {
+ return freezone;
+ }
+
+ public Map<String, String> getParams() {
+ return params;
+ }
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/LinksService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/LinksService.java 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/LinksService.java 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,32 @@
+package org.jboss.labs.links;
+
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public interface LinksService {
+ /**
+ * Basing on the given link, creates a link representation (structured).
+ * @param container Portal container (to read page information from it).
+ * @param link Link to parse.
+ * @return A link class initialized with data basing on the given link.
+ */
+ public Link parseLink(PortalObjectContainer container, String link);
+
+ /**
+ * Generates a link basing on the path to a resource in the CMS.
+ * @param cmsPath Full path to the resource in the CMS.
+ * @return A link to this resource.
+ */
+ public Link parseLink(String cmsPath);
+
+ /*
+ * SERVICE MANAGEMENT METHODS
+ */
+
+ public void create() throws Exception;
+ public void start() throws Exception;
+ public void stop();
+ public void destroy();
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/OutsideLink.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/OutsideLink.java 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/OutsideLink.java 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,16 @@
+package org.jboss.labs.links;
+
+import java.util.Map;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class OutsideLink extends Link {
+ public OutsideLink(String outsideLink) {
+ super(null, null, null, null, outsideLink, null);
+ }
+
+ public String toString() {
+ return getFreezone();
+ }
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/PageLink.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/PageLink.java 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/PageLink.java 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,26 @@
+package org.jboss.labs.links;
+
+import java.util.Map;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class PageLink extends Link {
+ public PageLink(String page, String windowName, String renderMode,
+ Map<String, String> params) {
+ super(null, page, windowName, renderMode, null, params);
+ }
+
+ public PageLink(String page) {
+ super(null, page, null, null, null, null);
+ }
+
+ public PageLink(String projectId, String page, String windowName,
+ String renderMode, Map<String, String> params) {
+ super(projectId, page, windowName, renderMode, null, params);
+ }
+
+ public PageLink(String projectId, String page) {
+ super(projectId, page, null, null, null, null);
+ }
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/service/LinksServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/service/LinksServiceImpl.java 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/service/LinksServiceImpl.java 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,138 @@
+package org.jboss.labs.links.service;
+
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
+import org.jboss.shotoku.tools.Tools;
+import org.jboss.labs.links.tools.Constants;
+import org.jboss.labs.links.*;
+import org.jboss.forge.common.projects.Projects;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.ForgeHelper;
+import org.jboss.annotation.ejb.Service;
+import org.jboss.annotation.ejb.Management;
+import org.jboss.annotation.ejb.Depends;
+
+import javax.ejb.Local;
+import java.util.Map;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+ at Service(objectName = Constants.LINKS_SERVICE_NAME)
+ at Local(LinksServiceLocal.class)
+ at Management(LinksServiceLocal.class)
+ at Depends(org.jboss.shotoku.tools.Constants.SHOTOKU_SERVICE_NAME)
+public class LinksServiceImpl implements LinksService, LinksServiceLocal {
+ public Link parseLink(String cmsPath) {
+ cmsPath = Tools.normalizeSlashes(cmsPath, false);
+
+ // Checking if this a link to a project's freezone page.
+ if (cmsPath.startsWith(Constants.PRJ_FREEZONE_LINK_PREFIX)) {
+ // Cutting off the default/members/
+ cmsPath = cmsPath.substring(Constants.PRJ_FREEZONE_LINK_PREFIX_LEN);
+
+ // Splitting into project and path
+ String[] tokens = cmsPath.split(Constants.LINK_SEPARATOR_RE, 2);
+
+ // If there is enough data, creating a freezone link.
+ if (tokens.length == 2) {
+ if (org.jboss.forge.common.Constants.
+ DEFAULT_PORTAL_PAGE.equals(tokens[0])) {
+ return new FreezoneLink(tokens[1]);
+ } else {
+ return new FreezoneLink(tokens[0], tokens[1]);
+ }
+ }
+ }
+
+ return new OutsideLink(ForgeHelper.FILE_ACCESS_DIR +
+ Constants.LINK_SEPARATOR + cmsPath);
+ }
+
+ public Link parseLink(PortalObjectContainer container, String link) {
+ link = Tools.normalizeSlashes(link, true);
+
+ // Removing the link prefix (however many times it is present).
+ while (link.startsWith(Constants.LINK_PREFIX)) {
+ link = link.substring(Constants.LINK_PREFIX_LEN);
+ }
+
+ // Removing the starting slash.
+ if (link.length() > 0) {
+ link = link.substring(1);
+ }
+
+ String[] tokens = link.split(Constants.LINK_SEPARATOR_RE, 2);
+ String[] newTokens;
+
+ if (tokens.length == 0) {
+ // Returning a link to the default page.
+ return new PageLink(org.jboss.forge.common.Constants.
+ DEFAULT_PORTAL_PAGE);
+ }
+
+ Projects projects = ProjectsHelper.getProjects(ForgeHelper.LABS_PORTAL);
+
+ String projectId = null;
+ if (projects.projectExists(tokens[0])) {
+ projectId = tokens[0];
+
+ if (tokens.length == 0) {
+ /*
+ * Returning a link to the project page.
+ * This can be:
+ * - a normal info page
+ * - a freezone page - in this case we just redirect to a
+ * freezone
+ * - an outside page - in this case, we redirect to this
+ * outside page.
+ */
+ String freezonePage = projects.getProjectPageFreezone(projectId);
+ if (!org.jboss.shotoku.tools.Tools.isEmpty(freezonePage)) {
+ if (ForgeHelper.isOutsideLink(freezonePage)) {
+ return new OutsideLink(freezonePage);
+ } else {
+ return new FreezoneLink(projectId, freezonePage);
+ }
+ }
+
+ return new PageLink(projectId,
+ org.jboss.forge.common.Constants.DEFAULT_PROJECT_PAGE);
+ }
+
+ newTokens = tokens[1].split(Constants.LINK_SEPARATOR_RE, 2);
+ } else {
+ newTokens = tokens;
+ }
+
+ if (container.getContext().getDefaultPortal().getPage(newTokens[0])
+ == null) {
+ // This page is not present - which indicates a freezone page.
+ return new FreezoneLink(projectId, tokens[1]);
+ }
+
+ String page = newTokens[0];
+ newTokens = newTokens[1].split(Constants.LINK_SEPARATOR_RE);
+ String windowName = newTokens.length > 0 ? newTokens[0] : null;
+ String renderMode = newTokens.length > 1 ? newTokens[1] : null;
+ Map<String, String> params = newTokens.length > 2 ? null : null;
+
+ return new PageLink(projectId, page, windowName, renderMode, params);
+ }
+
+
+ public void create() throws Exception {
+
+ }
+
+ public void start() throws Exception {
+
+ }
+
+ public void stop() {
+
+ }
+
+ public void destroy() {
+
+ }
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/service/LinksServiceLocal.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/service/LinksServiceLocal.java 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/service/LinksServiceLocal.java 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,7 @@
+package org.jboss.labs.links.service;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public interface LinksServiceLocal {
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/tools/Constants.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/tools/Constants.java 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/tools/Constants.java 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,35 @@
+package org.jboss.labs.links.tools;
+
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.ForgeHelper;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class Constants {
+ /**
+ * Name of the links service.
+ */
+ public static final String LINKS_SERVICE_NAME = "labs:service=links";
+
+ /**
+ * Beginning of each generated link.
+ */
+ public static final String LINK_PREFIX = "/portal";
+ public static final int LINK_PREFIX_LEN = LINK_PREFIX.length();
+
+ /**
+ * String that separates different parts of a link.
+ */
+ public static final String LINK_SEPARATOR = "/";
+ public static final String LINK_SEPARATOR_RE = "[" + LINK_SEPARATOR + "]";
+
+ /**
+ * Start of project freezone pages links.
+ */
+ public static final String PRJ_FREEZONE_LINK_PREFIX =
+ ForgeHelper.LABS_PORTAL + LINK_SEPARATOR +
+ ProjectsHelper.MEMBERS_DIR + LINK_SEPARATOR;
+ public static final int PRJ_FREEZONE_LINK_PREFIX_LEN =
+ PRJ_FREEZONE_LINK_PREFIX.length();
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/tools/LinksTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/tools/LinksTools.java 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-links/src/java/org/jboss/labs/links/tools/LinksTools.java 2006-07-11 21:50:53 UTC (rev 5021)
@@ -0,0 +1,30 @@
+package org.jboss.labs.links.tools;
+
+import org.jboss.labs.links.LinksService;
+import org.jboss.mx.util.MBeanProxyExt;
+import org.jboss.mx.util.MBeanServerLocator;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class LinksTools {
+ private static LinksService instance;
+
+ /**
+ * Gets an instance of the Links Service.
+ */
+ public static LinksService getService() {
+ try {
+ if (instance == null) {
+ instance = (LinksService) MBeanProxyExt.create(
+ LinksService.class,
+ Constants.LINKS_SERVICE_NAME,
+ MBeanServerLocator.locate());
+ }
+
+ return instance;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/forge-mapper.iml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/forge-mapper.iml 2006-07-11 21:36:04 UTC (rev 5020)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/forge-mapper.iml 2006-07-11 21:50:53 UTC (rev 5021)
@@ -13,6 +13,7 @@
<orderEntry type="module" module-name="forge-common" />
<orderEntry type="module" module-name="shotoku-aop" />
<orderEntry type="module" module-name="shotoku-base" />
+ <orderEntry type="library" name="portal" level="application" />
<orderEntryProperties />
</component>
</module>
More information about the jboss-svn-commits
mailing list