[jboss-svn-commits] JBL Code SVN: r12030 - in labs/jbosslabs/trunk/portal-extensions: forge-kosmos and 12 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon May 21 12:41:47 EDT 2007


Author: wrzep
Date: 2007-05-21 12:41:47 -0400 (Mon, 21 May 2007)
New Revision: 12030

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/maven.xml
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/project.properties
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/project.xml
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/KosmosJiraAssigneePortlet.java
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/KosmosTestPortlet.java
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-app.xml
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-portlet.xml
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-web.xml
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet-instances.xml
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet.xml
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tags/
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tags/listExpander.tag
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tags/zoomableImage.tag
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/displaytag-el-12.tld
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/forge.tld
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/kosmos-taglib.tld
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/portlet.tld
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/web.xml
Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos/conf/portlet/portlet.xml
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos/maven.xml
Log:
http://jira.jboss.com/jira/browse/JBLAB-868
-Pawel


Modified: labs/jbosslabs/trunk/portal-extensions/forge-kosmos/conf/portlet/portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos/conf/portlet/portlet.xml	2007-05-21 16:38:48 UTC (rev 12029)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos/conf/portlet/portlet.xml	2007-05-21 16:41:47 UTC (rev 12030)
@@ -4,7 +4,7 @@
 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" version="1.0">
   <portlet>
     <portlet-name>JBossJiraMonitoringPortlet</portlet-name>
-    <portlet-class>hu.midori.kosmos.portlet.jira.JiraMonitoringPortlet</portlet-class>
+    <portlet-class>hu.midori.kosmos.portlet.jira.JiraMonitoringPortlet</portlet-class>
     <init-param>
       <name>monitored.resource</name>
       <value>JBoss JIRA</value>

Modified: labs/jbosslabs/trunk/portal-extensions/forge-kosmos/maven.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos/maven.xml	2007-05-21 16:38:48 UTC (rev 12029)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos/maven.xml	2007-05-21 16:41:47 UTC (rev 12030)
@@ -53,7 +53,8 @@
 		</ant:copy>
 	</goal>
 		
-	<goal name="deploy-portlet">	
+	<goal name="deploy-portlet">
+	    <!--  	
 		<ant:unzip src="to-copy/kosmos-portlet.war" dest="target/kosmos-portlet.war" overwrite="true" />
 
 		<ant:copy todir="target/kosmos-portlet.war/WEB-INF" overwrite="true">
@@ -69,6 +70,7 @@
 				<ant:filename name="kosmos-portlet*/**" />
 		    </ant:fileset>
 		</ant:copy>
+		-->
     </goal>
 
 	<ant:copy todir="${local.deploy.dir}"


Property changes on: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets
___________________________________________________________________
Name: svn:ignore
   + target


Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/maven.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/maven.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/maven.xml	2007-05-21 16:41:47 UTC (rev 12030)
@@ -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">
+	<!-- Default war-project goals -->
+
+	<goal name="all">
+		<attainGoal name="prj-all" />
+	</goal>
+
+	<goal name="build">
+		<attainGoal name="prj-war-build" />
+	</goal>
+    
+	<goal name="deploy">
+		<attainGoal name="prj-war-deploy" />
+		<ant:copy todir="${local.deploy.dir}" file="../binaries/maven-repo-addons/hessian/jars/hessian-3.0.13.jar" overwrite="true"/>
+	</goal>
+	
+	<goal name="clean">
+		<attainGoal name="prj-clean" />
+	</goal>
+</project>

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/project.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/project.properties	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/project.properties	2007-05-21 16:41:47 UTC (rev 12030)
@@ -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/forge-kosmos-portlets/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/project.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/project.xml	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,91 @@
+<?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>forge-kosmos-portlets</id>
+    <name>Forge kosmos</name>
+    <dependencies>
+    
+    	<dependency>
+    	    <groupId>jboss-forge</groupId>
+	    <artifactId>forge-common</artifactId>
+	    <version>1.0</version>
+    	</dependency>
+
+	<dependency>
+	    <groupId>quartz</groupId>
+	    <artifactId>quartz</artifactId>
+	    <version>1.5.2</version>
+	</dependency>
+
+	<dependency>
+	    <groupId>com.lowagie</groupId>
+	    <artifactId>itext</artifactId>
+	    <version>1.4</version>
+	</dependency>
+    	
+	<dependency>
+	    <groupId>kosmos</groupId>
+	    <artifactId>kosmos-server</artifactId>
+	       <version>1.0</version>
+	       <jar>kosmos-server.jar</jar>
+	</dependency>
+
+	 <dependency>
+        <groupId>hessian</groupId>
+        <artifactId>hessian</artifactId>
+        <version>3.0.1</version> 
+		<jar>hessian-3.0.13.jar</jar>
+		 <properties>
+		 		<!-- <war.bundle>true</war.bundle>-->
+				<war.manifest.classpath>true</war.manifest.classpath>
+				 
+        </properties>
+    </dependency>
+	      
+		    <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.1</version>
+        </dependency>
+	   
+	    <dependency>
+            <groupId>taglibs</groupId>
+            <artifactId>standard</artifactId>
+            <version>1.0</version>
+            <jar>standard.jar</jar>
+            <properties>
+               <war.bundle>true</war.bundle>
+           		<war.manifest.classpath>true</war.manifest.classpath>
+            </properties> 
+         </dependency>
+	   
+	    <dependency>
+            <groupId>jstl</groupId>
+            <artifactId>jstl</artifactId>
+            <version>1.1.2</version>
+            <properties>
+                <war.bundle>true</war.bundle>
+            </properties>
+        </dependency>
+        
+          <dependency>
+            <groupId>displaytag</groupId>
+            <artifactId>displaytag</artifactId>
+            <version>1.1</version>
+            <properties>
+                <war.bundle>true</war.bundle>
+            </properties>
+        </dependency>
+	      
+    </dependencies>			
+    
+    <build>
+        <sourceDirectory>src/java</sourceDirectory>
+    </build>									
+</project>

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/KosmosJiraAssigneePortlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/KosmosJiraAssigneePortlet.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/KosmosJiraAssigneePortlet.java	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,146 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.forge.kosmos;
+
+import hu.midori.kosmos.model.JiraProject;
+import hu.midori.kosmos.protocol.JiraService;
+import java.net.MalformedURLException;
+import java.util.Date;
+import java.util.List;
+
+import javax.portlet.GenericPortlet;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.commons.lang.StringUtils;
+import org.jboss.forge.common.ForgeHelper;
+import org.jboss.logging.Logger;
+import com.caucho.hessian.client.HessianProxyFactory;
+
+/**
+ * @author <a href="mailto:aron.gombas at midori.hu">Aron Gombas</a>
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+public class KosmosJiraAssigneePortlet extends GenericPortlet {
+	
+	private final static Logger log = Logger.getLogger(KosmosJiraAssigneePortlet.class);
+
+	private String serviceUrl;
+
+	@Override
+	public void init(PortletConfig config) throws PortletException {
+		log.info("Initializing...");
+		serviceUrl = getServiceUrlInitParameter(config);
+		super.init(config);	
+	}
+
+	@Override
+	public void destroy() {
+		log.info("Destroying...");
+	}
+
+	@Override
+	public void doView(RenderRequest request, RenderResponse response) {
+		log.info("Viewing...");
+
+		// connect to web-service
+		JiraService service = null;
+		HessianProxyFactory factory = new HessianProxyFactory();
+		try {
+			service = (JiraService)factory.create(JiraService.class, serviceUrl);
+		} catch (MalformedURLException ex) {
+			log.error("Unable to connect to the service", ex);
+		}
+
+		// get project list if the service was successfully set-up
+		Date timestamp = null;
+		List<JiraProject> projects = null;
+		if(service != null) {
+			String monitoredUrl = "http://jira.jboss.com/jira/browse/JBLAB";
+			projects = service.getProjects(monitoredUrl);
+	
+			log.debug("JIRA project downloaded: " + monitoredUrl);
+
+			timestamp = service.getTimestamp();
+			log.debug("JIRA timestamp: " + timestamp);
+		}
+
+		// render response
+		getPortletContext().setAttribute("timestamp", timestamp);
+
+		String id = request.getParameter("id");
+		String page = "kosmos/jira_monitoring_assignee_details.jsp";
+
+		if ((projects != null) && (projects.size() >= 0)) {
+			
+			JiraProject project = projects.get(0);
+			if(project != null) {
+				getPortletContext().setAttribute("project", project);
+
+				renderJsp(request, response, page, String.format("%s / %s", "JIRA", project.getName()));
+				return;
+			} else {
+				log.error(String.format("Project \"%s\" not found", id));
+			}
+		}
+
+		renderJsp(request, response, "kosmos/error.jsp", "ERROR");
+	}
+
+	@Override
+	public void doHelp(RenderRequest request, RenderResponse response) {
+		log.info("Helping...");
+
+		// render response
+		renderJsp(request, response, "/kosmos/jira_monitoring_help.jsp", "JIRA");
+	}
+	
+	protected void renderJsp(RenderRequest request, RenderResponse response, String jspName, String title) {
+	        response.setTitle(title);
+	        renderJsp(request, response, jspName);
+	}
+	
+    /** Renders a JSP. */
+    protected void renderJsp(RenderRequest request, RenderResponse response, String jspName) {
+        response.setContentType("text/html");
+        
+        PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
+				ForgeHelper.createRepoAccessPath("default", jspName));
+        
+        try {
+            rd.include(request, response);
+        } catch(Exception ex) {
+            log.error("Unable to include", ex);
+        }        
+    }
+	
+	protected static String getServiceUrlInitParameter(PortletConfig config) {
+	    String serviceUrl = config.getInitParameter("service.url");        
+	    if(StringUtils.isBlank(serviceUrl))
+	            throw new IllegalStateException("'service.url' is a required init-param");
+
+	    return serviceUrl.trim();
+	}
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/KosmosTestPortlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/KosmosTestPortlet.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/KosmosTestPortlet.java	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,64 @@
+ /*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+
+package org.jboss.forge.kosmos;
+
+import java.io.IOException;
+
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+
+import org.jboss.forge.common.ForgeHelper;
+import org.jboss.portal.core.servlet.jsp.taglib.context.DelegateContext;
+import org.jboss.portal.core.servlet.jsp.PortalJsp;
+
+import org.jboss.portlet.JBossPortlet;
+import org.jboss.portlet.JBossRenderRequest;
+import org.jboss.portlet.JBossRenderResponse;
+
+/**
+ * @author Pawel Wrzeszcz
+ */
+public class KosmosTestPortlet extends JBossPortlet {
+
+    public void doView(JBossRenderRequest request, JBossRenderResponse response)
+            throws IOException, PortletException {
+       
+    	response.setContentType("text/html");
+	
+        String portalName = ForgeHelper.getPortalName(request);
+       
+        // Select appropriate jsp
+        String jspPath = "/kosmos/test.jsp";
+        
+        // Getting the podcast context
+        DelegateContext context = null;
+        
+        // Displaying the JSP
+        request.setAttribute(PortalJsp.CTX_REQUEST, context);
+
+        PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
+				ForgeHelper.createRepoAccessPath(portalName, jspPath));
+        rd.include(request, response);
+	
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-app.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-app.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-app.xml	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,3 @@
+<jboss-app>
+    <app-name>kosmos-portlets</app-name>
+</jboss-app>

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-portlet.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-portlet.xml	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,8 @@
+<portlet-app>
+    <portlet>
+        <portlet-name>KosmosJIRAAssingeePortlet</portlet-name>
+        <transaction>
+            <trans-attribute>Required</trans-attribute>
+        </transaction>
+    </portlet>
+</portlet-app>
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-web.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-web.xml	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<jboss-web>
+</jboss-web>

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet-instances.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet-instances.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet-instances.xml	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployments>
+</deployments>

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet.xml	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,24 @@
+<?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>Kosmos JIRA Open Issues By Assignee Portlet</description>
+        <portlet-name>KosmosJIRAAssingeePortlet</portlet-name>
+        <display-name>Kosmos JIRA Open Issues By Assignee Portlet</display-name>
+        <portlet-class>org.jboss.forge.kosmos.KosmosJiraAssigneePortlet</portlet-class>
+        <init-param>
+      		<name>service.url</name>
+      		<value>http://localhost:8080/kosmos-server/kosmos-services/jira-service</value>
+    	</init-param>
+        <supports>
+            <mime-type>text/html</mime-type>
+            <portlet-mode>VIEW</portlet-mode>
+        </supports>
+        <portlet-info>
+            <title>Kosmos JIRA Open Issues By Assignee Portlet</title>
+        </portlet-info>
+    </portlet>
+    
+</portlet-app>

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tags/listExpander.tag
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tags/listExpander.tag	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tags/listExpander.tag	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,30 @@
+<%@ tag language="java" pageEncoding="UTF-8" %>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
+
+<%@ attribute name="id" required="true" description="ID of this list in the page. It must match the 'id' of the appropriate 'tr' elements." %>
+<%@ attribute name="size" required="true" description="Size of the list." %>
+
+<c:if test="${size > 10}">
+  <script src="<c:url value="/pages/scripts/scriptaculous/prototype.js"/>" language="javascript"></script>
+  <script src="<c:url value="/pages/scripts/scriptaculous/scriptaculous.js?load=effects"/>" language="javascript"></script>
+  <script src="<c:url value="/pages/scripts/kosmos.js"/>" language="javascript"></script>
+
+  <img src="<c:url value="/pages/images/table.gif"/>"/>
+  &nbsp;
+  <a href="javascript:void(0);" onclick="javascript:showTableRows('row-<portlet:namespace/>-${id}-', ${size}, 10);">
+    <fmt:message key="action.show"/>&nbsp;10
+  </a>
+  &nbsp;|&nbsp;
+  <c:if test="${size > 25}">
+    <a href="javascript:void(0);" onclick="javascript:showTableRows('row-<portlet:namespace/>-${id}-', ${size}, 25);">
+      <fmt:message key="action.show"/>&nbsp;25
+    </a>
+    &nbsp;|&nbsp;
+  </c:if>
+  <a href="javascript:void(0);" onclick="javascript:showTableRows('row-<portlet:namespace/>-${id}-', ${size}, ${size});">
+    <fmt:message key="action.showAll"/>&nbsp;(${size})
+  </a>
+</c:if>

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tags/zoomableImage.tag
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tags/zoomableImage.tag	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tags/zoomableImage.tag	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,25 @@
+<%@ tag language="java" pageEncoding="UTF-8" %>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
+
+<%@ attribute name="id" required="true" description="ID of this zoomable image in the page." %>
+<%@ attribute name="locator" required="true" type="hu.midori.kosmos.model.util.ZoomableImageLocator" description="Specifies the URLs for both versions of the image." %>
+<%@ attribute name="titleKey" description="Resource bundle key of the title string to display hovering the images." %>
+
+<script src="<c:url value="/pages/scripts/scriptaculous/prototype.js"/>" language="javascript"></script>
+<script src="<c:url value="/pages/scripts/scriptaculous/scriptaculous.js?load=effects"/>" language="javascript"></script>
+<script src="<c:url value="/pages/scripts/kosmos.js"/>" language="javascript"></script>
+
+<span id="zoomable-<portlet:namespace/>-${id}-lo">
+  <a href="javascript:void(0);" onclick="javascript:toggleZoomableImage('zoomable-<portlet:namespace/>-${id}-lo', 'zoomable-<portlet:namespace/>-${id}-hi');">
+    <img src="${locator.loresUrl}" title="<fmt:message key="${titleKey}"/>" border="0"/>
+  </a>
+</span>
+
+<span id="zoomable-<portlet:namespace/>-${id}-hi" style="display: none;">
+  <a href="javascript:void(0);" onclick="javascript:toggleZoomableImage('zoomable-<portlet:namespace/>-${id}-lo', 'zoomable-<portlet:namespace/>-${id}-hi');">
+    <img src="${locator.hiresUrl}" title="<fmt:message key="${titleKey}"/>" border="0"/>
+  </a>
+</span>

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/displaytag-el-12.tld
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/displaytag-el-12.tld	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/displaytag-el-12.tld	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,668 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" 
+  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+<taglib>
+    <tlib-version>1.0</tlib-version>
+    <jsp-version>1.2</jsp-version>
+    <short-name>display-el</short-name>
+    <uri>http://displaytag.sf.net/el</uri>
+    <display-name>Display *: Tag Library (EL)</display-name>
+    <description>
+        The display tag library is an open source suite of custom tags that provide high level web presentation patterns
+        which will work in a MVC model, and provide a significant amount of functionality while still being simple and
+        straight-forward to use. The primary tag in the library is the Table tag.
+    </description>
+    <tag>
+        <name>table</name>
+        <tag-class>org.displaytag.tags.el.ELTableTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>table</display-name>
+        <description>
+            Displays a list in an html table, formatting each item in the list according to the Column tags nested
+            inside of this tag. Use the list attribute to indicate the Collection of data, in some scope, that the tag
+            should operate on. Supports the export of the list data to alternative formats such as CSV, Excel, and XML.
+            The contents of the list can be sorted, and the list can be broken into individual pages for display. If you
+            use this tag in Struts, or in some other framework where the page is included via a jsp:include, you should
+            use the requestURI attribute to indicate where tag generated links should point.
+        </description>
+        <attribute>
+            <name>name</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                reference to the object used as source for the table. Can be an expression like
+                requestScope.object.property. In the EL version of the taglibrary this must be an EL expression which
+                points to the source object.
+            </description>
+        </attribute>
+        <attribute>
+            <name>length</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>number of records to be shown</description>
+        </attribute>
+        <attribute>
+            <name>offset</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>index of the first record to be shown</description>
+        </attribute>
+        <attribute>
+            <name>pagesize</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>number of records in a page</description>
+        </attribute>
+        <attribute>
+            <name>decorator</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                Fully qualified class name for a TableDecorator. Use a TableDecorator to provide custom operations
+                against the whole list, such as computing totals. Must extend org.displaytag.decorator.TableDecorator.
+            </description>
+        </attribute>
+        <attribute>
+            <name>requestURI</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                When the present, links for sorting, exports, and paging are formed by adding any tag generated
+                parameters to the value of requestURI attribute.
+            </description>
+        </attribute>
+        <attribute>
+            <name>requestURIcontext</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                Enable/disable prepending of application context to generated links. Default is true, you can set it to
+                false in order to generate cross-context links.
+            </description>
+        </attribute>
+        <attribute>
+            <name>excludedParams</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <type>java.lang.String</type>
+            <description>
+                Whitespace separated list containg the name of parameters which should NOT be forwarded during paging or
+                sorting. You can use excludedParams="*" to match (exclude) any parameter.
+            </description>
+        </attribute>
+        <attribute>
+            <name>width</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>style</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute</description>
+        </attribute>
+        <attribute>
+            <name>class</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute</description>
+        </attribute>
+        <attribute>
+            <name>styleClass</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>@deprecated: use "class"</description>
+        </attribute>
+        <attribute>
+            <name>border</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>@deprecated html pass through attribute. Use css "border"</description>
+        </attribute>
+        <attribute>
+            <name>cellspacing</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute</description>
+        </attribute>
+        <attribute>
+            <name>cellpadding</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                html pass through attribute. Better using "padding" css attribute in style or class
+            </description>
+        </attribute>
+        <attribute>
+            <name>align</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>background</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>bgcolor</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>frame</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute.</description>
+        </attribute>
+        <attribute>
+            <name>height</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>hspace</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>rules</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute.</description>
+        </attribute>
+        <attribute>
+            <name>summary</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute</description>
+        </attribute>
+        <attribute>
+            <name>htmlId</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html "id" pass through attribute</description>
+        </attribute>
+        <attribute>
+            <name>vspace</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>export</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>enable/disable export. Valid values are true or false</description>
+        </attribute>
+        <attribute>
+            <name>id</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>See "uid".</description>
+        </attribute>
+        <attribute>
+            <name>uid</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                Unique id used to identify this table. The object representing the current row is also added to the
+                pageContext under this name, so that you can refer to it in column bodies using ${uid}. You can also use
+                uid_rowNum to refer to the current row number. Two tables in the same page can't have the same id
+                (paging and sorting will affect both). If no "htmlId" is specified the same value will be used for the
+                html id of the generated table.
+            </description>
+        </attribute>
+        <attribute>
+            <name>sort</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                Use 'page' if you want to sort only visible records, or 'list' if you want to sort the full list
+            </description>
+        </attribute>
+        <attribute>
+            <name>defaultsort</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <!--<type>int</type>-->
+            <description>
+                The index of the column that will be used by default for sorting (starting from 1)
+            </description>
+        </attribute>
+        <attribute>
+            <name>defaultorder</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                The default order for the sorted column. Valid values are "ascending" (default) or "descending"
+            </description>
+        </attribute>
+        <example>
+            <![CDATA[
+&lt;display:table name="someList" export="true" id="row" requestURI="MyAction.do">
+  &lt;display:column sortable="true" title="ID"> &lt;c:out value="${row.id}"/> &lt;/display:column>
+  &lt;display:column property="email" autolink="true"/>
+  &lt;display:column property="description" title="Comments"/>
+&lt;/display:table>
+]]>
+        </example>
+    </tag>
+    <tag>
+        <name>column</name>
+        <tag-class>org.displaytag.tags.el.ELColumnTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>column</display-name>
+        <description>
+            Displays a property of a row object inside a table. MUST be nested inside of a Table tag. The value
+            displayed will be the results of a decorator (if any); else the property named by the 'property' attribute;
+            or if the 'property' attribute is null, then the results of evaluating the JSP body of the tag.
+        </description>
+        <attribute>
+            <name>property</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                name of the property in the bean specified in the parent table tag (via the "name" attribute) mapped to
+                this column
+            </description>
+        </attribute>
+        <attribute>
+            <name>sortProperty</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                name of the property in the bean specified in the parent table tag (via the "name" attribute) which will
+                be used to sort values in the column. This can be used when the column body is filled or a decorator is
+                used and column should sort on undeorated values.
+            </description>
+        </attribute>
+        <attribute>
+            <name>title</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>title of the column (text for the th cell)</description>
+        </attribute>
+        <attribute>
+            <name>titleKey</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                Resource key used to lookup the title value. Only works if "title" is not defined. Works together with a
+                configured I18nResourceProvider, specified via the displaytag.properties file. By default, if JSTL is
+                available, the JSTL provider is used, which makes this attribute work the same as fmt:message's key
+                property.
+            </description>
+        </attribute>
+        <attribute>
+            <name>nulls</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                By default, null values don't appear in the list. By setting 'nulls' to 'true', then null values will
+                appear as "null" in the list (mostly useful for debugging). Defaults to 'false'.
+            </description>
+        </attribute>
+        <attribute>
+            <name>sort</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>@deprecated: use "sortable"</description>
+        </attribute>
+        <attribute>
+            <name>sortable</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>Set to 'true' to make the column sortable. Defaults to 'false'.</description>
+        </attribute>
+        <attribute>
+            <name>autolink</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                Automatically hyperlink URLs and email addresses that appear in the column. Defaults to 'false'.
+            </description>
+        </attribute>
+        <attribute>
+            <name>media</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                Render the column for the media type(s). The column won't be added to the table if the current request
+                media is not supported. Can be any space separated combination of 'html', 'csv', 'xml', 'all', or
+                'excel'. Defaults to 'all'.
+            </description>
+        </attribute>
+        <attribute>
+            <name>href</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                The base URL used to construct the dynamic link. If this attribute is provided, then the data that is
+                shown for this column is wrapped inside a &lt;a href&gt; tag with the url provided through this
+                attribute. Typically you would use this attribute along with one of the struts-like param attributes
+                (param*) to create a dynamic link so that each row creates a different URL based on the data that is
+                being viewed. An empty href value will generate a link to the current page, preserving parameters just
+                like for paging links.
+            </description>
+        </attribute>
+        <attribute>
+            <name>url</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                The base URL used to construct the dynamic link. This attribute has the same functionality as the href
+                attribute, but it pre-pends the contextPath.
+            </description>
+        </attribute>
+        <attribute>
+            <name>paramId</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                The name of the request parameter that will be dynamically added to the generated href URL. The
+                corresponding value is defined by the perty and (optional) paramName attributes, optionally scoped by
+                the paramScope attribute.
+            </description>
+        </attribute>
+        <attribute>
+            <name>paramName</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                The name of a JSP bean that is a String containing the value for the request parameter named by paramId
+                (if paramProperty is not specified), or a JSP bean whose property getter is called to return a String
+                (if paramProperty is specified). The JSP bean is constrained to the bean scope specified by the
+                paramScope property, if it is specified. If paramName is omitted, then it is assumed that the current
+                object being iterated on is the target bean.
+            </description>
+        </attribute>
+        <attribute>
+            <name>paramProperty</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                The name of a property of the current object being iterated on, whose return value will be used as the
+                value of the parameter (named by the paramId attribute) that will be dynamically added to this href URL.
+                If paramName is also specified the property will not be fetched from the object being iterated on, but
+                from the bean specified by paramName. The support of paramProperty in conjunction with paramName will be
+                probably removed in future: use paramProperty only if you need a property in the iterated object,
+                elsewhere use only paramName (you can select a property using an expression name.property).
+            </description>
+        </attribute>
+        <attribute>
+            <name>paramScope</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated - use Expressions in paramName. The scope within which to search for the bean specified by
+                the paramName attribute. If not specified, all scopes are searched. If paramName is not provided, then
+                the current object being iterated on is assumed to be the target bean.
+            </description>
+        </attribute>
+        <attribute>
+            <name>maxLength</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                If this attribute is provided, then the column's displayed is limited to this number of characters. An
+                elipse (...) is appended to the end if this column is linked, and the user can mouseover the elipse to
+                get the full text. Be careful on using this attribute for String which can contain html tags or
+                entities, or together with the autolink attribute turned on: displaytag will do its best trying to avoid
+                leaving unclosed tags or broken entities in the output, but a complex or bad input could lead to
+                unattended results.
+            </description>
+        </attribute>
+        <attribute>
+            <name>maxWords</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                If this attribute is provided, then the column's displayed is limited to this number of words. An elipse
+                (...) is appended to the end if this column is linked, and the user can mouseover the elipse to get the
+                full text. Be careful on using this attribute for String which can contain html tags or entities, or
+                together with the autolink attribute turned on: displaytag will do its best trying to avoid leaving
+                unclosed tags or broken entities in the output, but a complex or bad input could lead to unattended
+                results.
+            </description>
+        </attribute>
+        <attribute>
+            <name>width</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated; html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>class</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                html pass through attribute; use this instead of directly coding presentational atttributes.
+            </description>
+        </attribute>
+        <attribute>
+            <name>styleClass</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>@deprecated: use "class"</description>
+        </attribute>
+        <attribute>
+            <name>headerClass</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>"class" html attribute added only for header cells.</description>
+        </attribute>
+        <attribute>
+            <name>headerStyleClass</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>@deprecated: use "headerClass"</description>
+        </attribute>
+        <attribute>
+            <name>style</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute.</description>
+        </attribute>
+        <attribute>
+            <name>align</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>background</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>bgcolor</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>height</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>nowrap</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>valign</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                @deprecated html attribute. Use "style" or "class" to set presentational attributes using css.
+            </description>
+        </attribute>
+        <attribute>
+            <name>group</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                The grouping level (starting at 1 and incrementing) of this column (indicates if successive contain the
+                same values, then they should not be displayed). The level indicates that if a lower level no longer
+                matches, then the matching for this higher level should start over as well. If this attribute is not
+                included, then no grouping is performed.
+            </description>
+        </attribute>
+        <attribute>
+            <name>decorator</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                The fully qualified class name of a class that should be used to "decorate" the underlying object being
+                displayed. The class should implement org.displaytag.decorator.ColumnDecorator. If a decorator is
+                specified for the entire table, then this decorator will decorate that decorator.
+            </description>
+        </attribute>
+    </tag>
+    <tag>
+        <name>setProperty</name>
+        <tag-class>org.displaytag.tags.el.ELSetPropertyTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>setProperty</display-name>
+        <description>
+            Sets the indicated property on the enclosing Table tag. MUST be nested within a Table tag. As an
+            alternative, you may create a property file that holds sitewide defaults; see the configuration
+            documentation or the DisplayPropertiesLoaderServlet javadoc for information.
+        </description>
+        <attribute>
+            <name>name</name>
+            <required>true</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>The name of the property to set on the enclosing Table tag.</description>
+        </attribute>
+        <attribute>
+            <name>value</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>
+                The value to which the property is set. You can also set the property value in the tag body.
+            </description>
+        </attribute>
+        <example>
+            <![CDATA[
+<display:setProperty name="paging.banner.placement" value="bottom" />
+or
+<display:setProperty name="paging.banner.placement">bottom</display:setProperty>
+]]>
+        </example>
+    </tag>
+    <tag>
+        <name>footer</name>
+        <tag-class>org.displaytag.tags.TableFooterTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>footer</display-name>
+        <description>
+            Tag wich should be nested into a table tag to provide a custom table footer. The body of the tag is
+            outputted as is in the generated table in the tfoot section.
+        </description>
+        <example>
+            <![CDATA[
+<display:table name="someList">
+  <display:column property="mail"/>
+  <display:column property="total"/>
+  <display:footer>
+  	<tr>
+  		<td>total:</td>
+  		<td><c:out value="${something}" /></td>
+  	<tr>
+  </display:footer>
+</display:table>
+]]>
+        </example>
+    </tag>
+    <tag>
+        <name>caption</name>
+        <tag-class>org.displaytag.tags.el.ELCaptionTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>caption</display-name>
+        <description>
+            Simple tag which mimics the html caption tag. Use it inside a table tag to display a caption.
+        </description>
+        <attribute>
+            <name>style</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute.</description>
+        </attribute>
+        <attribute>
+            <name>class</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute.</description>
+        </attribute>
+        <attribute>
+            <name>id</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute.</description>
+        </attribute>
+        <attribute>
+            <name>title</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute.</description>
+        </attribute>
+        <attribute>
+            <name>lang</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute.</description>
+        </attribute>
+        <attribute>
+            <name>dir</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+            <description>html pass through attribute.</description>
+        </attribute>
+        <example>
+            <![CDATA[
+<display:table name="someList">
+  <display:column property="mail"/>
+  <display:column property="total"/>
+  <display:caption>This is the table caption</display:caption>
+</display:table>
+]]>
+        </example>
+    </tag>
+</taglib>
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/forge.tld
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/forge.tld	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/forge.tld	2007-05-21 16:41:47 UTC (rev 12030)
@@ -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/forge-kosmos-portlets/src/web/WEB-INF/tld/kosmos-taglib.tld
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/kosmos-taglib.tld	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/kosmos-taglib.tld	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" 
+  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+<taglib>
+  <tlib-version>1.0</tlib-version>
+  <jsp-version>0.1.1</jsp-version>
+  <short-name>kosmos-taglib</short-name>
+  <uri>http://labs.jboss.com/projects/kosmos</uri>
+  <display-name>Kosmos Tag Library</display-name>
+  <description>
+    JSP tags for Kosmos Portlets view-tier.
+  </description>
+  <tag>
+    <name>age</name>
+    <tag-class>hu.midori.kosmos.portlet.taglib.AgeTag</tag-class>
+    <body-content>empty</body-content>
+    <display-name>age</display-name>
+    <description>
+      Display "age" information, see its javadocs.
+    </description>
+    <attribute>
+      <name>time</name>
+      <required>true</required>
+      <rtexprvalue>true</rtexprvalue>
+      <description>
+        See its javadocs.
+      </description>
+    </attribute>
+    <example>
+      <![CDATA[
+&lt;kosmos:age time="1234">
+]]>
+    </example>
+  </tag>
+</taglib>

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/portlet.tld
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/portlet.tld	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/tld/portlet.tld	2007-05-21 16:41:47 UTC (rev 12030)
@@ -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/forge-kosmos-portlets/src/web/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/web.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/web.xml	2007-05-21 16:41:47 UTC (rev 12030)
@@ -0,0 +1,20 @@
+<?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">
+    
+    <!-- File access -->
+    <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




More information about the jboss-svn-commits mailing list