[jboss-svn-commits] JBL Code SVN: r10854 - in labs/jbosslabs/trunk/portal-extensions: jboss-forums and 14 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Apr 10 12:17:32 EDT 2007


Author: dejp
Date: 2007-04-10 12:17:32 -0400 (Tue, 10 Apr 2007)
New Revision: 10854

Added:
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/lucene.jar
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums-authz-plugin.sar
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums-ui.jar
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums.sar
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums.war
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/tomahawk.jar
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/build.properties
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/common.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/maven.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/project.properties
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/project.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/Constants.java
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/DevForumEntriesPortlet.java
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/ForumEntriesPortlet.java
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/ForumsTools.java
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/UserForumEntriesPortlet.java
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-app.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-portlet.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-web.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/portlet-instances.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/portlet.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/tld/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/tld/forge.tld
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/tld/portlet.tld
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/web.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/maven.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/project.properties
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/project.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/MANIFEST.MF
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/application.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/jboss-app.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/security-config.xml
   labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/jboss-service.xml
Log:
JBLAB-848

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/lucene.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/lucene.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums-authz-plugin.sar
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums-authz-plugin.sar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums-ui.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums-ui.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums.sar
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums.sar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums.war
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/portal-forums.war
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/tomahawk.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions/jboss-forums/binaries/tomahawk.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/build.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/build.properties	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/build.properties	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,19 @@
+# Path to where JBoss AS is to be copied.
+local.server.dir=/home/przemek/forge/jboss
+
+# Path to where your portal extensions are to be deployed - you shouldn't
+# have to change that.
+local.deploy.dir=${local.server.dir}/server/default/deploy
+
+# Directory on your filesystem where portal-extensions reside.
+# The path must end with a /. 
+ext.root.dir=/home/przemek/forge/content/trunk/forge/portal-extensions/
+
+# Path to your local maven repository - you can comment this out if you use 
+# the default location. You can also create a build.properties in your home
+# directory to set the maven.repo.local for all projects.
+# maven.repo.local=
+
+# URL of your content repository. You don't have to specify this if you don't
+# plan to update the content by maven (it's need for CruiseControl).
+maven.scm.url=

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/common.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/common.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/common.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,126 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<project>
+	<pomVersion>3</pomVersion>
+	
+	<dependencies>
+		<dependency>
+			<id>portlet-api</id>
+			<version>1.0</version>
+		</dependency>
+		
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>jboss-jmx</artifactId>
+			<version>1.0</version>
+			<jar>jboss-jmx.jar</jar>
+		</dependency>
+		
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>jboss-common</artifactId>
+			<version>1.0</version>
+			<jar>jboss-common.jar</jar>
+		</dependency>
+		
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>portal-common-lib</artifactId>
+			<version>1.0</version>
+			<jar>portal-common-lib.jar</jar>
+		</dependency>
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>portal-identity-lib</artifactId>
+			<version>1.0</version>
+			<jar>portal-identity-lib.jar</jar>
+		</dependency>
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>portal-core-lib</artifactId>
+			<version>1.0</version>
+			<jar>portal-core-lib.jar</jar>
+		</dependency>
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>jboss-portlet-api-lib</artifactId>
+			<version>1.0</version>
+			<jar>jboss-portlet-api-lib.jar</jar>
+		</dependency>
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>portal-api-lib</artifactId>
+			<version>1.0</version>
+			<jar>portal-api-lib.jar</jar>
+		</dependency>
+		
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>portal-portlet-lib</artifactId>
+			<version>1.0</version>
+			<jar>portal-portlet-lib.jar</jar>
+		</dependency>
+		
+		<!--dependency>
+			<groupId>shotoku</groupId>
+			<artifactId>shotoku-base</artifactId>
+			<version>1.0</version>
+			<jar>shotoku-base.jar</jar>
+			<properties>
+				<ejb.manifest.classpath>true</ejb.manifest.classpath>
+			</properties>
+		</dependency>
+		
+		<dependency>
+			<groupId>shotoku</groupId>
+			<artifactId>shotoku-aop</artifactId>
+			<version>1.0</version>
+			<jar>shotoku-aop.jar</jar>
+		</dependency-->
+		
+		<dependency>
+			<groupId>velocity</groupId>
+			<artifactId>velocity</artifactId>
+			<version>1.4</version>
+		</dependency>
+		<dependency>
+			<groupId>velocity</groupId>
+			<artifactId>velocity-dep</artifactId>
+			<version>1.4</version>
+		</dependency>
+		<dependency>
+			<groupId>velocity</groupId>
+			<artifactId>velocity</artifactId>
+			<version>1.4-dev</version>
+		</dependency>
+		
+		<!-- AOP -->
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>javassist</artifactId>
+			<version>1.0</version>
+			<jar>javassist.jar</jar>
+		</dependency>
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>trove</artifactId>
+			<version>1.0</version>
+			<jar>trove.jar</jar>
+		</dependency>
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>concurrent</artifactId>
+			<version>1.0</version>
+			<jar>concurrent.jar</jar>
+		</dependency>
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>jboss-aop-jdk50</artifactId>
+			<version>1.0</version>
+			<jar>jboss-aop-jdk50.jar</jar>
+		</dependency>
+	</dependencies>
+	
+	<build>
+		<sourceDirectory>src/java</sourceDirectory>
+	</build>
+</project>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/maven.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/maven.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/maven.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,27 @@
+<!-- 
+  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="clean" />
+		<attainGoal name="build" />
+	</goal>
+
+	<goal name="build">
+		<attainGoal name="jar" />
+		
+		<attainGoal name="war" />
+	</goal>
+ 
+	<goal name="deploy">	
+
+	</goal>
+	
+	<goal name="clean">
+		<ant:delete dir="target" />
+	</goal>
+
+</project>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/project.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/project.properties	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/project.properties	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,5 @@
+maven.repo.remote=http://repo1.maven.org/maven
+maven.junit.fork=yes
+maven.war.src=${basedir}/src/web
+
+maven.final.name=${pom.artifactId}
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/project.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/project.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,95 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!-- 
+	JBoss, the OpenSource J2EE webOS
+	Distributable under LGPL license.
+	See terms of license at gnu.org. 
+-->
+<project>
+	<pomVersion>3</pomVersion>
+	<extend>../common.xml</extend>
+	<id>forums-portlets</id>
+	<name>Forums portlets</name>
+	<currentVersion>1.0</currentVersion>
+	<organization></organization>
+	<description></description>
+
+	<dependencies>
+		<dependency>
+			<groupId>jboss-forge</groupId>
+			<artifactId>forge-common</artifactId>
+			<version>1.0</version>
+		</dependency>
+		<dependency>
+			<groupId>jstl</groupId>
+			<artifactId>jstl</artifactId>
+			<version>1.1.2</version>
+			<properties>
+				<war.bundle>true</war.bundle>
+			</properties>
+		</dependency>
+		<dependency>
+			<groupId>taglibs</groupId>
+			<artifactId>standard</artifactId>
+			<version>1.0</version>
+			<jar>standard.jar</jar>
+			<properties>
+				<war.bundle>true</war.bundle>
+			</properties>
+		</dependency>
+		<dependency>
+			<groupId>jboss</groupId>
+			<artifactId>javax.servlet</artifactId>
+			<version>1.0</version>
+			<jar>javax.servlet.jar</jar>
+		</dependency>
+		<dependency>
+			<groupId>myfaces</groupId>
+			<artifactId>myfaces-all</artifactId>
+			<version>1.1.1</version>
+		</dependency>
+		<dependency>
+			<groupId>jaxb</groupId>
+			<artifactId>JAXB2</artifactId>
+			<version>2.0</version>
+			<jar>jaxb-api.jar</jar>
+		</dependency>
+		<dependency>
+			<groupId>jdom</groupId>
+			<artifactId>jdom</artifactId>
+			<version>1.0</version>
+		</dependency>
+		<dependency>
+			<groupId>rome</groupId>
+			<artifactId>rome</artifactId>
+			<version>0.7</version>
+			<jar>rome-0.7.jar</jar>
+		</dependency>
+		<dependency>
+			<groupId>informa</groupId>
+			<artifactId>informa</artifactId>
+			<version>0.6.5</version>
+			<jar>informa.jar</jar>
+		</dependency>
+		<dependency>
+			<groupId>xerces</groupId>
+			<artifactId>xercesImpl</artifactId>
+			<version>2.6.2</version>
+		</dependency>
+		<dependency>
+			<groupId>jboss-forums</groupId>
+			<artifactId>portal-forums-ui</artifactId>
+			<jar>portal-forums-ui.jar</jar>
+			<version>1.0</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<sourceDirectory>src/java</sourceDirectory>
+		<resources>
+			<resource>
+				<directory>src/etc/</directory>
+				<include>**/*.properties</include>
+			</resource>
+		</resources>
+	</build>
+</project>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/Constants.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/Constants.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/Constants.java	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,17 @@
+package org.jboss.forge.forums;
+
+public class Constants {
+
+	public static final String FORUMS_DIR = "forums";
+	
+	public static final String FORUM_ENTRIES_JSP = "forumEntries.jsp";
+	
+	public static final String DEV_FORUM_ENTRIES_JSP = "devForumEntries.jsp";
+	
+	public static final String USER_FORUM_ENTRIES_JSP = "userForumEntries.jsp";
+	
+	public static final String PROJECT_ID = "projectId";
+
+	public static final String PROJECT_ID_NOT_SELECTED = "notSelected";
+	
+}

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/DevForumEntriesPortlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/DevForumEntriesPortlet.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/DevForumEntriesPortlet.java	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,43 @@
+package org.jboss.forge.forums;
+
+import java.io.IOException;
+
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.PortletSecurityException;
+
+import org.jboss.forge.common.ForgeHelper;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.portal.core.servlet.jsp.PortalJsp;
+import org.jboss.portal.core.servlet.jsp.taglib.context.DelegateContext;
+import org.jboss.portlet.JBossPortlet;
+import org.jboss.portlet.JBossRenderRequest;
+import org.jboss.portlet.JBossRenderResponse;
+
+public class DevForumEntriesPortlet extends JBossPortlet {
+
+	@Override
+	protected void doView(JBossRenderRequest request, JBossRenderResponse response) 
+			throws PortletException, PortletSecurityException, IOException {
+		response.setContentType("text/html");
+
+		String portalName = ForgeHelper.getPortalName(request);
+        //String serverAdress = ForgeHelper.getBaseServerAddress(request);
+		
+		String jspPath = ForumsTools.getDevForumsEntriesJspCmPath();
+		
+		Object forumIdObj = request.getPreferences().getValue("forumId", null);
+		String forumId = (String) forumIdObj;
+
+        String projectId = ProjectsHelper.getSelectedProjectId(request);
+		
+        DelegateContext context = ForumsTools.getLatestDevForumPostsCtx(forumId, projectId, response);
+        
+        request.setAttribute(PortalJsp.CTX_REQUEST, context);
+        
+        PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
+        		ForgeHelper.createRepoAccessPath(portalName, jspPath));
+        rd.include(request, response);
+	}
+
+}

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/ForumEntriesPortlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/ForumEntriesPortlet.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/ForumEntriesPortlet.java	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,54 @@
+package org.jboss.forge.forums;
+
+import java.io.IOException;
+
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.PortletSecurityException;
+
+import org.jboss.forge.common.ForgeHelper;
+import org.jboss.portal.core.servlet.jsp.PortalJsp;
+import org.jboss.portal.core.servlet.jsp.taglib.context.DelegateContext;
+import org.jboss.portlet.JBossActionRequest;
+import org.jboss.portlet.JBossActionResponse;
+import org.jboss.portlet.JBossPortlet;
+import org.jboss.portlet.JBossRenderRequest;
+import org.jboss.portlet.JBossRenderResponse;
+
+public class ForumEntriesPortlet extends JBossPortlet {
+
+	@Override
+	protected void doView(JBossRenderRequest request, JBossRenderResponse response) 
+			throws PortletException, PortletSecurityException, IOException {
+		response.setContentType("text/html");
+
+		String portalName = ForgeHelper.getPortalName(request);
+        //String serverAdress = ForgeHelper.getBaseServerAddress(request);
+		
+		String jspPath = ForumsTools.getForumEntriesJspCmPath();
+		
+        String projectId = request.getParameter(Constants.PROJECT_ID);
+        
+        DelegateContext context = null;
+        if (projectId == null || projectId.equals(Constants.PROJECT_ID_NOT_SELECTED)) {
+        	context = ForumsTools.getLatestForumPostsCtx(response);
+        } else {
+        	context = ForumsTools.getProjectLatestForumPostsCtx(projectId, response);
+        }
+        
+        request.setAttribute(PortalJsp.CTX_REQUEST, context);
+        
+        PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
+        		ForgeHelper.createRepoAccessPath(portalName, jspPath));
+        rd.include(request, response);
+	}
+
+	@Override
+	protected void processAction(JBossActionRequest request, JBossActionResponse response) 
+			throws PortletException, PortletSecurityException, IOException {
+		
+        String projectId = request.getParameter(Constants.PROJECT_ID);
+        response.setRenderParameter(Constants.PROJECT_ID, projectId); 
+	}
+	
+}

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/ForumsTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/ForumsTools.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/ForumsTools.java	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,425 @@
+package org.jboss.forge.forums;
+
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.naming.InitialContext;
+
+import org.jboss.forge.common.ejb3.LabsServices;
+import org.jboss.forge.common.ejb3.ProjectsService;
+import org.jboss.forge.common.projects.project.Project;
+import org.jboss.logging.Logger;
+import org.jboss.portal.core.servlet.jsp.taglib.context.DelegateContext;
+import org.jboss.portal.identity.User;
+import org.jboss.portlet.JBossRenderResponse;
+import org.jboss.portlet.forums.ForumsModule;
+import org.jboss.portlet.forums.model.Forum;
+import org.jboss.portlet.forums.model.Message;
+import org.jboss.portlet.forums.model.Post;
+import org.jboss.portlet.forums.model.Poster;
+import org.jboss.portlet.forums.model.Topic;
+
+public class ForumsTools {
+
+	private static final Logger logger = Logger.getLogger(ForumsTools.class); 
+	
+	public static String getForumEntriesJspCmPath() {
+		return Constants.FORUMS_DIR + File.separator + Constants.FORUM_ENTRIES_JSP;
+	}
+	
+	public static String getDevForumsEntriesJspCmPath() {
+		return Constants.FORUMS_DIR + File.separator + Constants.DEV_FORUM_ENTRIES_JSP;
+	}
+	
+	public static String getUserForumsEntriesJspCmPath() {
+		return Constants.FORUMS_DIR + File.separator + Constants.USER_FORUM_ENTRIES_JSP;
+	}
+	
+	private static final String DATE_PATTERN = "EEEEE, MMM d, yyyy 'at' hh:mm aaa";
+	private static final String DATE_PATTERN2 = "EEE, MMM d, yyyy hh:mm aaa";
+	
+	private static final int NUMBER_OF_DISPLAYED_POSTS = 3;
+	
+	public static final String ERROR_PARAMETER_NAME = "error";
+	
+	private static ForumsModule getForumModule() {
+		ForumsModule forumsModule = null;
+		try {
+			InitialContext initialContext = new InitialContext();
+			
+			Object obj = initialContext.lookup("java:portal/ForumsModule");
+
+			forumsModule = (ForumsModule) obj;
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		
+		return forumsModule;
+	}
+	
+	public static List<Project> getProjects() {
+		List<Project> projectsList = new ArrayList<Project>();
+
+		try {
+			ProjectsService projectsService = LabsServices.getProjectsService();
+			Collection<? extends Project> projects = projectsService.getProjects();
+			for (Project project : projects) {
+				if (!project.getId().equals("default")) {
+					projectsList.add(project);
+				}
+			}
+		} catch (Exception e) {
+			logger.warn(e.getMessage(), e);
+		}
+		
+		return projectsList;
+	}
+	
+	public static DelegateContext getLatestForumPostsCtx(JBossRenderResponse response) {
+		DelegateContext ctx = new DelegateContext();
+
+		DelegateContext projectsCtx = ctx.next("projects");
+		for (Project project : getProjects()) {
+			DelegateContext projectCtx = projectsCtx.next("project");
+			projectCtx.put("id", project.getId());
+			projectCtx.put("name", project.getName());
+		}
+		
+		ForumsModule forumsModule = getForumModule();
+
+		DelegateContext postsCtx = ctx.next("posts");
+		try {
+			Map lastForumPosts = forumsModule.findLastPostsOfForums();
+			
+			if (lastForumPosts.isEmpty()) {
+				postsCtx.put("message", "There are not any entries.");
+			}
+			
+			int counter = 0;
+			for (Object topic : lastForumPosts.keySet()) {
+				
+				if (counter == NUMBER_OF_DISPLAYED_POSTS) {
+					break;
+				}
+				
+				Post post = (Post) lastForumPosts.get(topic);
+				
+				if (post != null) {
+					DelegateContext postCtx = postsCtx.next("post");
+					
+					Message message = post.getMessage();
+					if (message != null) {
+						postCtx.put("subject", message.getSubject());
+						
+						postCtx.put("address", prepareForumPostLink(forumsModule.findTopicById((Integer) topic), post));
+						
+						SimpleDateFormat formatter = new SimpleDateFormat(DATE_PATTERN2, Locale.US);
+						postCtx.put("date", getPostCreateDate(post, formatter));
+					
+						Poster poster = post.getPoster();
+						if (poster != null) {
+							User user = poster.getUser();
+							postCtx.put("userId", user.getUserName());
+						}
+					}
+
+					counter++;
+				}
+				
+			}
+		} catch (Exception e) {
+			logger.error(e.getMessage(), e);
+			postsCtx.put("error", "Cannot display latest forum entries.");
+		}
+	
+		return ctx;
+	}
+
+	public static DelegateContext getProjectLatestForumPostsCtx(String projectId, 
+			JBossRenderResponse response) {
+		DelegateContext ctx = new DelegateContext();
+
+		DelegateContext projectsCtx = ctx.next("projects");
+		for (Project project : getProjects()) {
+			DelegateContext projectCtx = projectsCtx.next("project");
+			projectCtx.put("id", project.getId());
+			projectCtx.put("name", project.getName());
+			if (projectId.equals(project.getId())) {
+				projectCtx.put("selected", "selected=\"selected\"");
+			}
+		}
+		
+		ForumsModule forumsModule = getForumModule();
+		
+		DelegateContext postsCtx = ctx.next("posts");
+		try {
+			ProjectsService projectsService = LabsServices.getProjectsService();
+			
+			if (projectsService != null) {
+				Project project = projectsService.getProjectById(projectId);
+
+				if (project != null) {
+					Integer devForumId = getForumIdFromLink(project.getDevForum());
+					Integer userForumId = getForumIdFromLink(project.getUserForum());
+					
+					Set<Topic> topics = new HashSet<Topic>();
+					
+					if (devForumId != null) {
+						Forum devForum = forumsModule.findForumById(devForumId);
+						
+						if (devForum != null) {
+							topics.addAll(devForum.getTopics());
+						}
+					}
+					
+					if (userForumId != null) {
+						Forum userForum = forumsModule.findForumById(userForumId);
+						
+						if (userForum != null) {
+							topics.addAll(userForum.getTopics());
+						}
+					}
+					
+					Map latestForumPosts = forumsModule.findLastPostsOfTopics(topics);
+				
+					
+					if (latestForumPosts.isEmpty()) {
+						postsCtx.put("message", "There are not any entries.");
+					}					
+					
+					int counter = 0;
+					for (Object topic : latestForumPosts.keySet()) {
+
+						if (counter == NUMBER_OF_DISPLAYED_POSTS) {
+							break;
+						}
+						
+						Post post = (Post) latestForumPosts.get(topic);
+						
+						if (post != null) {
+							DelegateContext postCtx = postsCtx.next("post");
+							
+							Message message = post.getMessage();
+							if (message != null) {
+								postCtx.put("subject", message.getSubject());
+								postCtx.put("address", prepareForumPostLink(forumsModule.findTopicById((Integer) topic), post));
+								
+								SimpleDateFormat formatter = new SimpleDateFormat(DATE_PATTERN2, Locale.US);
+								postCtx.put("date", getPostCreateDate(post, formatter));
+							
+								Poster poster = post.getPoster();
+								if (poster != null) {
+									User user = poster.getUser();
+									postCtx.put("userId", user.getUserName());
+								}
+							}
+
+							counter++;							
+						}
+					}					
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+			postsCtx.put("error", "Cannot display latest forum entries.");
+		}
+		
+		return ctx;
+	}
+	
+	public static DelegateContext getLatestUserForumPostsCtx(String forumId, String projectId, 
+			JBossRenderResponse response) {
+		DelegateContext ctx = new DelegateContext();
+		
+		DelegateContext postsCtx = ctx.next("posts");
+		try {
+			ForumsModule forumsModule = getForumModule();
+
+			if (forumId != null) {
+				Forum forum = forumsModule.findForumById(new Integer((String) forumId));
+
+				Map latestForumPosts = null;
+				if (forum != null) {
+					latestForumPosts = forumsModule.findLastPostsOfTopics(forum.getTopics());
+				}
+
+				if (latestForumPosts != null) {
+					if (latestForumPosts.isEmpty()) {
+						postsCtx.put("message", "There are not any entries.");
+					}
+					
+					int counter = 0;
+					for (Object topic : latestForumPosts.keySet()) {
+						if (counter == NUMBER_OF_DISPLAYED_POSTS) {
+							break;
+						}
+					
+						Post post = (Post) latestForumPosts.get(topic);
+
+						if (post != null) {
+							DelegateContext postCtx = postsCtx.next("post");
+							
+							Message message = post.getMessage();
+							if (message != null) {
+								postCtx.put("subject", message.getSubject());
+								postCtx.put("address", prepareForumPostLink(forumId, post.getId()));
+								
+								SimpleDateFormat formatter = new SimpleDateFormat(DATE_PATTERN, Locale.US);
+								postCtx.put("date", getPostCreateDate(post, formatter));
+							
+								Poster poster = post.getPoster();
+								if (poster != null) {
+									User user = poster.getUser();
+									postCtx.put("userId", user.getUserName());
+								}
+							}
+
+							counter++;
+						}
+					}
+
+				} else {
+					postsCtx.put("message", "There are not any entries.");
+				}
+			}
+			
+		} catch (Exception e) {
+			logger.error(e.getMessage(), e);
+			postsCtx.put("error", "Cannot display latest forum entries.");
+		}
+		
+		try {
+			ProjectsService projectsService = LabsServices.getProjectsService();
+			Project project = projectsService.getProjectById(projectId);
+			if (project != null) {
+				postsCtx.put("userForumsAddress", project.getUserForum());
+			}
+		} catch (Exception e) {
+			logger.error(e.getMessage(), e);
+		}
+		
+		return ctx;
+	}
+	
+	public static DelegateContext getLatestDevForumPostsCtx(String forumId, String projectId, 
+			JBossRenderResponse response) {
+		DelegateContext ctx = new DelegateContext();
+		
+		DelegateContext postsCtx = ctx.next("posts");
+		try {
+			ForumsModule forumsModule = getForumModule();
+			
+			if (forumId != null) {
+				Forum forum = forumsModule.findForumById(new Integer((String) forumId));
+
+				Map latestForumPosts = null;
+				if (forum != null) {
+					latestForumPosts = forumsModule.findLastPostsOfTopics(forum.getTopics());
+				}
+
+				if (latestForumPosts != null) {
+					if (latestForumPosts.isEmpty()) {
+						postsCtx.put("message", "There are not any entries.");
+					}
+					
+					int counter = 0;
+					for (Object topic : latestForumPosts.keySet()) {
+						if (counter == NUMBER_OF_DISPLAYED_POSTS) {
+							break;
+						}
+					
+						Post post = (Post) latestForumPosts.get(topic);
+
+						if (post != null) {
+							DelegateContext postCtx = postsCtx.next("post");
+							
+							Message message = post.getMessage();
+							if (message != null) {
+								postCtx.put("subject", message.getSubject());
+								postCtx.put("address", prepareForumPostLink(forumId, post.getId()));
+								
+								SimpleDateFormat formatter = new SimpleDateFormat(DATE_PATTERN, Locale.US);
+								postCtx.put("date", getPostCreateDate(post, formatter));
+							
+								Poster poster = post.getPoster();
+								if (poster != null) {
+									User user = poster.getUser();
+									postCtx.put("userId", user.getUserName());
+								}
+							}
+
+							counter++;
+						}
+					}
+					
+				} else {
+					postsCtx.put("message", "There are not any entries.");
+				}
+			}			
+		} catch (Exception e) {
+			logger.error(e.getMessage(), e);
+			postsCtx.put("error", "Cannot display latest forum entries.");
+		}
+
+		try {
+			ProjectsService projectsService = LabsServices.getProjectsService();
+			Project project = projectsService.getProjectById(projectId);
+
+			if (project != null) {
+				postsCtx.put("devForumsAddress", project.getDevForum());
+			}
+		} catch (Exception e) {
+			logger.error(e.getMessage(), e);
+		}
+		
+		return ctx;
+	}
+	
+	private static String getPostCreateDate(Post post, SimpleDateFormat formatter) {
+		Date date = post.getCreateDate();
+		
+		if (date == null) {
+			return "";
+		}
+		
+		return formatter.format(date);
+	}
+	
+	private static Integer getForumIdFromLink(String forumLink) {
+		Integer forumId = null;
+
+		if (forumLink != null) {
+			String[] tokens = forumLink.split("/");
+			try {
+				if (tokens.length > 0) {
+					forumId = new Integer(tokens[tokens.length - 1]);
+				}
+			} catch (NumberFormatException e) {}
+		}
+		
+		return forumId;
+	}
+	
+	private static String prepareForumPostLink(Topic topic, Post post) {
+		Forum forum = topic.getForum();
+		
+		if (forum == null) {
+			return null;
+		}
+		
+		return "/forums/" + forum.getId() + "/" + post.getId();
+	}
+	
+	private static String prepareForumPostLink(String forumId, Integer postId) {
+		return "/forums/" + forumId + "/" + postId;
+	}
+	
+}

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/UserForumEntriesPortlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/UserForumEntriesPortlet.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/java/org/jboss/forge/forums/UserForumEntriesPortlet.java	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,43 @@
+package org.jboss.forge.forums;
+
+import java.io.IOException;
+
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.PortletSecurityException;
+
+import org.jboss.forge.common.ForgeHelper;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.portal.core.servlet.jsp.PortalJsp;
+import org.jboss.portal.core.servlet.jsp.taglib.context.DelegateContext;
+import org.jboss.portlet.JBossPortlet;
+import org.jboss.portlet.JBossRenderRequest;
+import org.jboss.portlet.JBossRenderResponse;
+
+public class UserForumEntriesPortlet extends JBossPortlet {
+
+	@Override
+	protected void doView(JBossRenderRequest request, JBossRenderResponse response) 
+			throws PortletException, PortletSecurityException, IOException {
+		response.setContentType("text/html");
+
+		String portalName = ForgeHelper.getPortalName(request);
+        //String serverAdress = ForgeHelper.getBaseServerAddress(request);
+		
+		String jspPath = ForumsTools.getUserForumsEntriesJspCmPath();
+
+		Object forumIdObj = request.getPreferences().getValue("forumId", null);
+		String forumId = (String) forumIdObj;
+		
+        String projectId = ProjectsHelper.getSelectedProjectId(request);
+        
+        DelegateContext context = ForumsTools.getLatestUserForumPostsCtx(forumId, projectId, response);
+        
+        request.setAttribute(PortalJsp.CTX_REQUEST, context);
+        
+        PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
+        		ForgeHelper.createRepoAccessPath(portalName, jspPath));
+        rd.include(request, response);
+	}
+	
+}

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-app.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-app.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-app.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,3 @@
+<jboss-app>
+    <app-name>forgeforums</app-name>
+</jboss-app>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-portlet.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-portlet.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<portlet-app>
+	
+	<portlet>
+		<portlet-name>ForumEntriesPortlet</portlet-name>
+		<transaction>
+			<trans-attribute>Required</trans-attribute>
+		</transaction>
+	</portlet>
+	
+	<portlet>
+		<portlet-name>DevForumEntriesPortlet</portlet-name>
+		<transaction>
+			<trans-attribute>Required</trans-attribute>
+		</transaction>
+	</portlet>
+
+	<portlet>
+		<portlet-name>UserForumEntriesPortlet</portlet-name>
+		<transaction>
+			<trans-attribute>Required</trans-attribute>
+		</transaction>
+	</portlet>
+	
+</portlet-app>
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-web.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/jboss-web.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<jboss-web>
+</jboss-web>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/portlet-instances.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/portlet-instances.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/portlet-instances.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployments>
+
+	<deployment>
+		<if-exists>overwrite</if-exists>
+		<instance>
+			<instance-id>ForumEntriesPortletInstance</instance-id>
+			<portlet-ref>ForumEntriesPortlet</portlet-ref>
+		</instance>
+	</deployment>
+
+	<deployment>
+		<if-exists>overwrite</if-exists>
+		<instance>
+			<instance-id>DevForumEntriesPortletInstance</instance-id>
+			<portlet-ref>DevForumEntriesPortlet</portlet-ref>
+		</instance>
+	</deployment>
+
+	<deployment>
+		<if-exists>overwrite</if-exists>
+		<instance>
+			<instance-id>UserForumEntriesPortletInstance</instance-id>
+			<portlet-ref>UserForumEntriesPortlet</portlet-ref>
+		</instance>
+	</deployment>
+
+</deployments>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/portlet.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/portlet.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>Forum Entries Portlet</description>
+        <portlet-name>ForumEntriesPortlet</portlet-name>
+        <display-name>Forums</display-name>
+        <portlet-class>org.jboss.forge.forums.ForumEntriesPortlet</portlet-class>
+        <supports>
+            <mime-type>text/html</mime-type>
+            <portlet-mode>VIEW</portlet-mode>
+        </supports>
+        <portlet-info>
+            <title>Forums</title>
+        </portlet-info>
+        <portlet-preferences/>
+	</portlet>
+
+	<portlet>
+		<description>Latest Developer Forum Entries Portlet</description>
+        <portlet-name>DevForumEntriesPortlet</portlet-name>
+        <display-name>Latest Developer Forum Entries</display-name>
+        <portlet-class>org.jboss.forge.forums.DevForumEntriesPortlet</portlet-class>
+        <supports>
+            <mime-type>text/html</mime-type>
+            <portlet-mode>VIEW</portlet-mode>
+        </supports>
+        <portlet-info>
+            <title>Latest Developer Forum Entries</title>
+        </portlet-info>
+        <portlet-preferences/>
+	</portlet>
+	
+	<portlet>
+		<description>Latest User Forum Entries Portlet</description>
+        <portlet-name>UserForumEntriesPortlet</portlet-name>
+        <display-name>Latest User Forum Entries</display-name>
+        <portlet-class>org.jboss.forge.forums.UserForumEntriesPortlet</portlet-class>
+        <supports>
+            <mime-type>text/html</mime-type>
+            <portlet-mode>VIEW</portlet-mode>
+        </supports>
+        <portlet-info>
+            <title>Latest User Forum Entries</title>
+        </portlet-info>
+        <portlet-preferences/>
+	</portlet>
+    
+</portlet-app>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/tld/forge.tld
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/tld/forge.tld	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/tld/forge.tld	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,181 @@
+<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
+  version="2.0">
+  <!-- 
+  JBoss, the OpenSource J2EE webOS
+  Distributable under LGPL license.
+  See terms of license at gnu.org. 
+ -->
+   <tlib-version>1.1</tlib-version>
+   <jsp-version>2.0</jsp-version>
+   <shortname>forge</shortname>
+   <info>Forge tags</info>
+   
+   <tag>
+      <name>pageURL</name>
+      <tagclass>org.jboss.forge.common.taglib.PageURLTag</tagclass>
+      <attribute>
+         <name>page</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+      <attribute>
+         <name>form</name>
+         <required>false</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+   
+   <tag>
+		<name>tagmeButton</name>
+		<tagclass>org.jboss.forge.common.taglib.TagMeTag</tagclass>
+		<attribute>
+	         <name>div</name>
+	         <required>true</required>
+	         <rtexprvalue>true</rtexprvalue>
+      	</attribute>
+      	<attribute>
+	         <name>service</name>
+	         <required>true</required>
+	         <rtexprvalue>true</rtexprvalue>
+	    </attribute>
+      	<attribute>
+	         <name>user</name>
+	         <required>true</required>
+	         <rtexprvalue>true</rtexprvalue>
+	    </attribute>
+      	<attribute>
+	         <name>path</name>
+	         <required>true</required>
+	         <rtexprvalue>true</rtexprvalue>
+	    </attribute>
+	    <attribute>
+	         <name>id</name>
+	         <required>true</required>
+	         <rtexprvalue>true</rtexprvalue>
+	    </attribute>
+	    <attribute>
+	         <name>website</name>
+	         <required>true</required>
+	         <rtexprvalue>true</rtexprvalue>
+	    </attribute>
+   </tag>
+   
+   <tag>
+      <name>param</name>
+      <tagclass>org.jboss.forge.common.taglib.ParamTag</tagclass>
+      <attribute>
+         <name>name</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+      <attribute>
+         <name>value</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+   
+   <tag>
+      <name>wikiURL</name>
+      <tagclass>org.jboss.forge.common.taglib.WikiURLTag</tagclass>
+      <attribute>
+         <name>page</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+   
+   <tag>
+      <name>freezoneURL</name>
+      <tagclass>org.jboss.forge.common.taglib.FreezoneURLTag</tagclass>
+      <attribute>
+         <name>page</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+   
+   <tag>
+      <name>projectURL</name>
+      <tagclass>org.jboss.forge.common.taglib.ProjectURLTag</tagclass>
+      <attribute>
+         <name>project</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+      <attribute>
+         <name>page</name>
+         <required>false</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+      <attribute>
+         <name>form</name>
+         <required>false</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+   
+   
+   <tag>
+      <name>selectedProject</name>
+      <tagclass>org.jboss.forge.common.taglib.SelectedProjectTag</tagclass>
+   </tag>
+   
+   <tag>
+      <name>imagePath</name>
+      <tagclass>org.jboss.forge.common.taglib.ImagePathTag</tagclass>
+      <attribute>
+         <name>src</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+      <attribute>
+         <name>project</name>
+         <required>false</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+   
+   <tag>
+      <name>attrValue</name>
+      <tagclass>org.jboss.forge.common.taglib.AttrValueTag</tagclass>
+      <attribute>
+         <name>name</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+   
+   <tag>
+      <name>attrIf</name>
+      <tagclass>org.jboss.forge.common.taglib.AttrIfTag</tagclass>
+      <attribute>
+         <name>name</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+   
+    <tag>
+      <name>ifEmpty</name>
+      <tagclass>org.jboss.forge.common.taglib.IfEmptyTag</tagclass>
+      <attribute>
+         <name>value</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+   
+    <tag>
+      <name>ifNotEmpty</name>
+      <tagclass>org.jboss.forge.common.taglib.IfNotEmptyTag</tagclass>
+      <attribute>
+         <name>value</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+   
+</taglib>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/tld/portlet.tld
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/tld/portlet.tld	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/tld/portlet.tld	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,81 @@
+<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
+  version="2.0">
+   <tlib-version>1.1</tlib-version>
+   <short-name>JBoss-Portal-tags</short-name>
+
+   <tag>
+      <name>if</name>
+      <tag-class>org.jboss.portal.core.servlet.jsp.taglib.IfTag</tag-class>
+      <body-content>JSP</body-content>
+      <attribute>
+         <name>ctx</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+
+   <tag>
+      <name>iterate</name>
+      <tag-class>org.jboss.portal.core.servlet.jsp.taglib.IterateTag</tag-class>
+      <body-content>JSP</body-content>
+      <attribute>
+         <name>ctx</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+
+   <tag>
+      <name>include</name>
+      <tag-class>org.jboss.portal.core.servlet.jsp.taglib.IncludeTag</tag-class>
+      <body-content>JSP</body-content>
+      <attribute>
+         <name>page</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+
+   <tag>
+      <name>error</name>
+      <tag-class>org.jboss.portal.core.servlet.jsp.taglib.ErrorTag</tag-class>
+      <body-content>JSP</body-content>
+      <attribute>
+         <name>key</name>
+         <required>true</required>
+         <rtexprvalue>true</rtexprvalue>
+      </attribute>
+   </tag>
+
+   <tag>
+      <name>errors</name>
+      <tag-class>org.jboss.portal.core.servlet.jsp.taglib.ErrorsTag</tag-class>
+      <body-content>JSP</body-content>
+   </tag>
+
+   <tag>
+      <name>success</name>
+      <tag-class>org.jboss.portal.core.servlet.jsp.taglib.SuccessTag</tag-class>
+      <body-content>JSP</body-content>
+   </tag>
+   <function>
+      <name>i18n</name>
+      <function-class>org.jboss.portal.core.servlet.jsp.taglib.PortalLib</function-class>
+      <function-signature>java.lang.String getMessage(java.lang.String)</function-signature>
+   </function>
+
+   <function>
+      <name>out</name>
+      <function-class>org.jboss.portal.core.servlet.jsp.taglib.PortalLib</function-class>
+      <function-signature>java.lang.String out(java.lang.String)</function-signature>
+   </function>
+
+   <function>
+      <name>i18nout</name>
+      <function-class>org.jboss.portal.core.servlet.jsp.taglib.PortalLib</function-class>
+      <function-signature>java.lang.String i18nOut(java.lang.String)</function-signature>
+   </function>
+
+</taglib>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/web.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/forums-portlets/src/web/WEB-INF/web.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+            http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+         version="2.4">
+
+    <filter>
+        <filter-name>filesFromRepoFilter</filter-name>
+        <filter-class>org.jboss.forge.common.FilesFromRepoFilter</filter-class>
+    </filter>
+
+    <filter-mapping>
+        <filter-name>filesFromRepoFilter</filter-name>
+        <url-pattern>/repo-access/*</url-pattern>
+        <dispatcher>INCLUDE</dispatcher>
+    </filter-mapping>
+
+</web-app>
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/maven.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/maven.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/maven.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,84 @@
+<!-- 
+  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" xmlns:maven="jelly:maven">
+
+	<goal name="all">
+		<attainGoal name="forums:all" />
+	</goal>
+	
+	<goal name="build">
+		<attainGoal name="forums:build" />
+	</goal>
+	
+	<goal name="deploy">
+		<attainGoal name="forums:deploy" />
+	</goal>
+	
+	<goal name="clean">
+		<ant:delete dir="target" />
+		<ant:delete dir="forums-portlets/target" />
+	</goal>
+	
+	<goal name="prj-install">
+        </goal>
+	
+	<goal name="forums:localbuild">
+		<ant:copy todir="${maven.repo.local}/jboss-forums/jars" 
+			  file="binaries/portal-forums-ui.jar" overwrite="true" />
+		
+		<maven:reactor includes="forums-portlets/project.xml" excludes="" basedir="." 
+			       banner="Building forums portlets" 
+			       goals="clean,build" ignoreFailures="false" />
+		
+		<attainGoal name="prepare-ear" />
+		
+		<attainGoal name="ear" />
+	</goal>
+ 
+	<goal name="forums:build">
+		<ant:copy todir="${maven.repo.local}/jboss-forums/jars" 
+			  file="binaries/portal-forums-ui.jar" overwrite="true" />
+		
+		<maven:reactor includes="jboss-forums/forums-portlets/project.xml" excludes="" basedir="." 
+			       banner="Building forums portlets" 
+			       goals="clean,build" ignoreFailures="false" />
+		
+		<attainGoal name="prepare-ear" />
+		
+		<attainGoal name="ear" />
+	</goal>
+	
+	<goal name="prepare-ear">
+		<ant:delete dir="target/ear" />
+		
+		<ant:copy tofile="target/ear/forums-portlets.war" file="forums-portlets/target/forums-portlets.war" />
+		<ant:copy tofile="target/ear/forums-portlets.jar" file="forums-portlets/target/forums-portlets.jar" />
+		
+		<ant:copy todir="target/ear">
+			<ant:fileset dir="binaries">
+				<ant:filename name="*.jar" />
+			</ant:fileset>
+			<ant:fileset dir="binaries">
+				<ant:filename name="*.war" />
+			</ant:fileset>
+			<ant:fileset dir="binaries">
+				<ant:filename name="*.sar" />
+			</ant:fileset>
+		</ant:copy>
+	</goal>
+	
+	<goal name="forums:deploy">
+		<ant:copy tofile="${local.deploy.dir}/jboss-forums.ear" file="target/jboss-forums.ear" />
+	</goal>
+	
+	<goal name="forums:all">
+		<attainGoal name="forums:localbuild" />
+		
+		<attainGoal name="forums:deploy" />
+	</goal>
+
+	
+</project>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/project.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/project.properties	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/project.properties	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,9 @@
+maven.repo.remote=http://repo1.maven.org/maven
+maven.junit.fork=yes
+
+maven.final.name=${pom.artifactId}
+
+maven.jar.override=on
+
+maven.ear.resources=${maven.build.dir}/ear
+maven.ear.src=${maven.src.dir}/application

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/project.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/project.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!-- 
+  JBoss, the OpenSource J2EE webOS
+  Distributable under LGPL license.
+  See terms of license at gnu.org. 
+ -->
+<project>
+    <pomVersion>3</pomVersion>
+    <!--extend>../common.xml</extend-->
+    <id>jboss-forums</id>
+    <name>JBoss Forums</name>
+    <currentVersion>1.0</currentVersion>
+    <organization></organization>
+    <description></description>
+</project>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/MANIFEST.MF
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/MANIFEST.MF	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/MANIFEST.MF	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Created-By: Apache Ant 1.5.1
+

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/application.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/application.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/application.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application>
+   <display-name>JBoss Forums</display-name>
+   <module>
+	<java>portal-forums-ui.jar</java>
+   </module>
+   <!--module>
+	   <java>jsf-facelets.jar</java>
+   </module>
+   <module>
+	   <java>el-api.jar</java>
+   </module>
+   <module>
+	   <java>el-ri.jar</java>
+   </module-->
+
+   <module>
+	   <java>tomahawk.jar</java>
+   </module>
+   <!--module>
+	   <java>myfaces-impl.jar</java>
+   </module>
+   <module>
+	   <java>myfaces-api.jar</java>
+   </module>
+   <module>
+	   <java>commons-collections.jar</java>
+   </module>
+   <module>
+	   <java>commons-fileupload.jar</java>
+   </module>
+   <module>
+	   <java>javassist.jar</java>
+   </module>-->
+   <module>
+      <web>
+         <web-uri>portal-forums.war</web-uri>
+         <!--context-root>/forums</context-root-->
+      </web>
+   </module>
+
+   <module>
+	<java>forums-portlets.jar</java>
+   </module>
+   <module>
+     <web>
+	<web-uri>forums-portlets.war</web-uri>
+     </web>
+   </module>
+</application>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/jboss-app.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/jboss-app.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/jboss-app.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jboss-app>
+   <!--loader-repository> 
+         forums.jboss.com:loader=jboss-forums-sar 
+      <loader-repository-config>
+         java2ParentDelegation=false 
+      </loader-repository-config> 
+   </loader-repository-->
+   <module>
+	   <java>portal-forums-ui.jar</java>
+   </module>
+   <module>
+      <service>portal-forums.sar</service>
+   </module>
+   <module>
+	   <service>portal-forums-authz-plugin.sar</service>
+   </module>
+   <module>
+      <service>jboss-service.xml</service>
+   </module>
+</jboss-app>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/security-config.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/security-config.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/META-INF/security-config.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,34 @@
+<?xml version='1.0'?>
+<!DOCTYPE policy PUBLIC
+      "-//JBoss//DTD JBOSS Security Config 3.0//EN"
+      "http://www.jboss.org/j2ee/dtd/security_config.dtd">
+
+<!-- The JAAS login configuration file for the java:/jaas/jbossweb-form-auth
+security domain used by the security-spec test case
+-->
+<!--<policy>
+    <application-policy name="forums">       
+       <authentication>
+	       <login-module code="org.jboss.portal.identity.auth.IdentityLoginModule" flag="required">
+            <module-option name="unauthenticatedIdentity">guest</module-option>
+            <module-option name="hashAlgorithm">MD5</module-option>
+            <module-option name="hashEncoding">HEX</module-option>
+            <module-option name="userModuleJNDIName">java:/portal/UserModule</module-option>
+            <module-option name="additionalRole">Authenticated</module-option>
+            <module-option name="password-stacking">useFirstPass</module-option>
+         </login-module>
+      </authentication>
+    </application-policy>
+</policy>-->
+<policy>
+	<application-policy name="forums">       
+       <authentication>
+<login-module code="org.jboss.portal.identity.auth.IdentityLoginModule" flag="required">             <module-option name="unauthenticatedIdentity">guest</module-option>
+	<module-option name="userModuleJNDIName">java:/portal/UserModule</module-option>
+	<module-option name="roleModuleJNDIName">java:/portal/RoleModule</module-option>
+	<module-option name="additionalRole">Authenticated</module-option>
+	<module-option name="password-stacking">useFirstPass</module-option>
+</login-module>
+</authentication>
+</application-policy>
+</policy>

Added: labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/jboss-service.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/jboss-service.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/jboss-forums/src/application/jboss-service.xml	2007-04-10 16:17:32 UTC (rev 10854)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>   
+   <!-- hooking in a login module for the standalone version of JSF Forums -->
+    <!-- The custom JAAS login configuration that installs 
+       a Configuration capable of dynamically updating the
+       config settings
+   -->
+   <mbean code="org.jboss.security.auth.login.DynamicLoginConfig"
+      name="jboss.security.tests:service=LoginConfig">
+      <attribute name="AuthConfig">META-INF/security-config.xml</attribute>
+      <depends optional-attribute-name="LoginConfigService">
+         jboss.security:service=XMLLoginConfig
+      </depends>
+      <depends optional-attribute-name="SecurityManagerService">
+         jboss.security:service=JaasSecurityManager
+      </depends>
+   </mbean>
+</server>




More information about the jboss-svn-commits mailing list