[jboss-svn-commits] JBL Code SVN: r12782 - in labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src: web/WEB-INF and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jun 22 11:58:30 EDT 2007
Author: wrzep
Date: 2007-06-22 11:58:30 -0400 (Fri, 22 Jun 2007)
New Revision: 12782
Added:
labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/MetricsPortlet.java
Modified:
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/portlet-instances.xml
labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet.template.xml
Log:
JBLAB-868
implementing James' design
Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/MetricsPortlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/MetricsPortlet.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/MetricsPortlet.java 2007-06-22 15:58:30 UTC (rev 12782)
@@ -0,0 +1,100 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC 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 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.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.kosmos.jira.LabsKosmosJiraDescriptor;
+import org.jboss.forge.kosmos.jira.LabsKosmosJiraWatcher;
+import org.jboss.forge.kosmos.svn.LabsKosmosSvnDescriptor;
+import org.jboss.forge.kosmos.svn.LabsKosmosSvnWatcher;
+import org.jboss.logging.Logger;
+import org.jboss.shotoku.aop.CacheItem;
+import org.jboss.shotoku.tools.Pair;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ * @author <a href="mailto:aron.gombas at midori.hu">Aron Gombas</a>
+ */
+public class MetricsPortlet extends GenericPortlet {
+
+ protected final static Logger log = Logger.getLogger(MetricsPortlet.class);
+
+ private static final String SERVICE_URL_INIT_PARAM = "service.url";
+ private static final String METRICS_JSP = "kosmos/labs/metrics.jsp";
+ private static final long METRICS_PORTLET_UPDATE_INTERVAL = 1000*60*30; // 30 minutes
+
+ @CacheItem(interval=METRICS_PORTLET_UPDATE_INTERVAL)
+ private static LabsKosmosJiraWatcher jiraWatcher;
+
+ @CacheItem(interval=METRICS_PORTLET_UPDATE_INTERVAL)
+ private static LabsKosmosSvnWatcher svnWatcher;
+
+ private String serviceUrl;
+
+ @Override
+ public void init(PortletConfig config) throws PortletException {
+ serviceUrl = getInitParameter(SERVICE_URL_INIT_PARAM, config);
+ super.init(config);
+ }
+
+ @Override
+ public void doView(RenderRequest request, RenderResponse response) {
+
+ String projectId = ProjectsHelper.getSelectedProjectId(request);
+
+ LabsKosmosJiraDescriptor jiraDesc = jiraWatcher.get(new Pair<String, String>(projectId,serviceUrl));
+ jiraDesc.fillContext(getPortletContext());
+
+ LabsKosmosSvnDescriptor svnDesc = svnWatcher.get(new Pair<String, String>(projectId,serviceUrl));
+ svnDesc.fillContext(getPortletContext());
+
+ getPortletContext().setAttribute("pref", request.getPreferences().getMap());
+
+ response.setContentType("text/html");
+
+ PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
+ ForgeHelper.createRepoAccessPath("default", METRICS_JSP));
+
+ try {
+ rd.include(request, response);
+ } catch(Exception ex) {
+ log.error("Unable to include", ex);
+ }
+ }
+
+ protected static String getInitParameter(String paramName, PortletConfig config) {
+ String value = config.getInitParameter(paramName);
+ if(StringUtils.isBlank(value))
+ throw new IllegalStateException("'" + paramName + "' is a required init-param");
+
+ return value.trim();
+ }
+}
\ No newline at end of file
Modified: 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 2007-06-22 15:40:52 UTC (rev 12781)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/jboss-portlet.xml 2007-06-22 15:58:30 UTC (rev 12782)
@@ -1,5 +1,12 @@
<portlet-app>
+ <portlet>
+ <portlet-name>MetricsPortlet</portlet-name>
+ <transaction>
+ <trans-attribute>Required</trans-attribute>
+ </transaction>
+ </portlet>
+
<portlet>
<portlet-name>KosmosJIRAIssuesByAssingeePortlet</portlet-name>
<transaction>
Modified: 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 2007-06-22 15:40:52 UTC (rev 12781)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet-instances.xml 2007-06-22 15:58:30 UTC (rev 12782)
@@ -1,3 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<deployments>
-</deployments>
+</deployments>
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet.template.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet.template.xml 2007-06-22 15:40:52 UTC (rev 12781)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet.template.xml 2007-06-22 15:58:30 UTC (rev 12782)
@@ -3,9 +3,63 @@
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">
- <!-- JIRA portlets -->
+ <!-- Metrics Portlet (both JIRA and SVN) -->
<portlet>
+ <description>Project Metrics Portlet</description>
+ <portlet-name>MetricsPortlet</portlet-name>
+ <display-name>Project Metrics Portlet</display-name>
+ <portlet-class>org.jboss.forge.kosmos.MetricsPortlet</portlet-class>
+ <init-param>
+ <name>service.url</name>
+ <value>#{kosmos.server.address}/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>Project Metrics Portlet</title>
+ </portlet-info>
+ <portlet-preferences>
+ <preference>
+ <name>showJIRAIssuesByAssignee</name>
+ <value>true</value>
+ </preference>
+ <preference>
+ <name>showJIRAIssuesByStatus</name>
+ <value>true</value>
+ </preference>
+ <preference>
+ <name>showJIRAIssuesByPriority</name>
+ <value>true</value>
+ </preference>
+ <preference>
+ <name>showCommitHistory</name>
+ <value>true</value>
+ </preference>
+ <preference>
+ <name>showMostActiveCommiters</name>
+ <value>true</value>
+ </preference>
+ <preference>
+ <name>showRepositoryEntryHistory</name>
+ <value>true</value>
+ </preference>
+ <preference>
+ <name>showFilesByFileType</name>
+ <value>true</value>
+ </preference>
+ <preference>
+ <name>showMostActiveFiles</name>
+ <value>true</value>
+ </preference>
+ </portlet-preferences>
+ </portlet>
+
+ <!-- JIRA Portlets -->
+
+ <portlet>
<description>Kosmos JIRA Open Issues By Assignee Portlet</description>
<portlet-name>KosmosJIRAIssuesByAssigneePortlet</portlet-name>
<display-name>Kosmos JIRA Open Issues By Assignee Portlet</display-name>
@@ -71,7 +125,7 @@
</portlet-info>
</portlet>
- <!-- SVN portlets -->
+ <!-- SVN Portlets -->
<portlet>
<description>Kosmos Svn Activity</description>
More information about the jboss-svn-commits
mailing list