[jboss-svn-commits] JBL Code SVN: r12184 - in labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets: src/java/org/jboss/forge/kosmos and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon May 28 13:32:28 EDT 2007


Author: wrzep
Date: 2007-05-28 13:32:28 -0400 (Mon, 28 May 2007)
New Revision: 12184

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/LabsKosmosSvnPortlet.java
Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/project.xml
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet.xml
Log:
jblab-868
svn portlets


Modified: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/project.xml	2007-05-28 17:28:14 UTC (rev 12183)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/project.xml	2007-05-28 17:32:28 UTC (rev 12184)
@@ -84,6 +84,20 @@
 			<version>2.0</version>
 			<jar>jaxb-api.jar</jar>
         </dependency>
+        
+        <dependency>
+            <groupId>jboss</groupId>
+            <artifactId>javax.servlet</artifactId>
+            <version>1.0</version>
+            <jar>javax.servlet.jar</jar>
+        </dependency>
+        
+         <dependency>
+            <groupId>jboss</groupId>
+            <artifactId>javax.servlet.jsp</artifactId>
+            <version>1.0</version>
+            <jar>javax.servlet.jsp.jar</jar>
+        </dependency>
           
     </dependencies>			
     

Added: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/LabsKosmosSvnPortlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/LabsKosmosSvnPortlet.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/LabsKosmosSvnPortlet.java	2007-05-28 17:32:28 UTC (rev 12184)
@@ -0,0 +1,109 @@
+/*
+ * 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.SvnRepository;
+import hu.midori.kosmos.protocol.SvnService;
+
+import java.net.MalformedURLException;
+import java.util.Date;
+import java.util.List;
+
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.jboss.forge.common.ejb3.LabsServices;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.projects.project.rw.RepoTypeRW;
+
+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 LabsKosmosSvnPortlet extends LabsKosmosPortlet {
+
+	private static final String ERROR_PAGE = "kosmos/error.jsp";
+
+	@Override
+	public void doView(RenderRequest request, RenderResponse response) {
+		log.info("Viewing...");
+
+		// connect to web-service
+		SvnService service = null;
+		HessianProxyFactory factory = new HessianProxyFactory();
+		try {
+			service = (SvnService)factory.create(SvnService.class, serviceUrl);
+		} catch (MalformedURLException ex) {
+			log.error("Unable to connect to the service", ex);
+		}
+		
+		Date timestamp = null;
+		List<SvnRepository> repositories = null;
+		
+		String projectId = ProjectsHelper.getSelectedProjectId(request);
+		String monitoredUrl = getProjectSvn(projectId);
+		
+		// get project list if the service was successfully set-up
+		if ((service != null) && (monitoredUrl != null)) {
+		
+			repositories = service.getRepositories(monitoredUrl);
+			log.info("SVN repository downloaded: " + monitoredUrl);
+
+			timestamp = service.getTimestamp();
+			log.debug("SVN timestamp: " + timestamp);
+		}
+
+		// render response
+		getPortletContext().setAttribute("timestamp", timestamp);
+
+		if ((repositories != null) && (repositories.size() > 0)) {
+			
+			SvnRepository repository = repositories.get(0);
+
+			getPortletContext().setAttribute("repository", repository);
+
+			renderJsp(request, response, page, String.format("%s / %s", "SVN", repository.getLocation()));
+		} else {
+			renderJsp(request, response, ERROR_PAGE, "ERROR");
+		}
+	}
+
+	private static String getProjectSvn(String projectId) {
+			
+		try {
+			
+			if (RepoTypeRW.SVN.equals(
+					LabsServices.getProjectsService().getProjectRepoType(projectId))) {
+				
+				return LabsServices.getProjectsService().getProjectAnonRepo(projectId);
+			}
+			
+		} catch (ServiceRetrievalException e) {
+			log.warn("Unable to get project " + projectId, e);
+		}
+		
+		return null;
+	}
+}

Modified: 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	2007-05-28 17:28:14 UTC (rev 12183)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/web/WEB-INF/portlet.xml	2007-05-28 17:32:28 UTC (rev 12184)
@@ -3,6 +3,8 @@
              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 -->
+    
     <portlet>
         <description>Kosmos JIRA Open Issues By Assignee Portlet</description>
         <portlet-name>KosmosJIRAIssuesByAssigneePortlet</portlet-name>
@@ -68,5 +70,95 @@
             <title>Kosmos JIRA Issues By Priority Portlet</title>
         </portlet-info>
     </portlet>
+    
+    <!-- SVN portlets  --> 
+    
+    <portlet>
+        <description>Kosmos Svn Activity</description>
+        <portlet-name>KosmosSvnActivityPortlet</portlet-name>
+        <display-name>Kosmos Svn Activity Portlet</display-name>
+        <portlet-class>org.jboss.forge.kosmos.LabsKosmosSvnPortlet</portlet-class>
+        <init-param>
+      		<name>service.url</name>
+      		<value>http://localhost:8080/kosmos-server/kosmos-services/svn-service</value>
+    	</init-param>
+    	<init-param>
+      		<name>jsp.page</name>
+      		<value>kosmos/svn_monitoring_activity_details.jsp</value>
+    	</init-param>
+        <supports>
+            <mime-type>text/html</mime-type>
+            <portlet-mode>VIEW</portlet-mode>
+        </supports>
+        <portlet-info>
+            <title>Kosmos Svn Activity Portlet</title>
+        </portlet-info>
+    </portlet>
+    
+    <portlet>
+        <description>Kosmos Svn Commiters</description>
+        <portlet-name>KosmosSvnCommitersPortlet</portlet-name>
+        <display-name>Kosmos Svn Commiters Portlet</display-name>
+        <portlet-class>org.jboss.forge.kosmos.LabsKosmosSvnPortlet</portlet-class>
+        <init-param>
+      		<name>service.url</name>
+      		<value>http://localhost:8080/kosmos-server/kosmos-services/svn-service</value>
+    	</init-param>
+    	<init-param>
+      		<name>jsp.page</name>
+      		<value>kosmos/svn_monitoring_commiter_details.jsp</value>
+    	</init-param>
+        <supports>
+            <mime-type>text/html</mime-type>
+            <portlet-mode>VIEW</portlet-mode>
+        </supports>
+        <portlet-info>
+            <title>Kosmos Svn Commiters Portlet</title>
+        </portlet-info>
+    </portlet>
+    
+    <portlet>
+        <description>Kosmos Svn Repository Details</description>
+        <portlet-name>KosmosSvnRepositoryPortlet</portlet-name>
+        <display-name>Kosmos Svn Repository Details Portlet</display-name>
+        <portlet-class>org.jboss.forge.kosmos.LabsKosmosSvnPortlet</portlet-class>
+        <init-param>
+      		<name>service.url</name>
+      		<value>http://localhost:8080/kosmos-server/kosmos-services/svn-service</value>
+    	</init-param>
+    	<init-param>
+      		<name>jsp.page</name>
+      		<value>kosmos/svn_monitoring_repository_details.jsp</value>
+    	</init-param>
+        <supports>
+            <mime-type>text/html</mime-type>
+            <portlet-mode>VIEW</portlet-mode>
+        </supports>
+        <portlet-info>
+            <title>Kosmos Svn Repository Details Portlet</title>
+        </portlet-info>
+    </portlet>
+    
+    <portlet>
+        <description>Kosmos Svn Revision Details</description>
+        <portlet-name>KosmosSvnRevisionPortlet</portlet-name>
+        <display-name>Kosmos Svn Revision Details Portlet</display-name>
+        <portlet-class>org.jboss.forge.kosmos.LabsKosmosSvnPortlet</portlet-class>
+        <init-param>
+      		<name>service.url</name>
+      		<value>http://localhost:8080/kosmos-server/kosmos-services/svn-service</value>
+    	</init-param>
+    	<init-param>
+      		<name>jsp.page</name>
+      		<value>kosmos/svn_monitoring_revision_details.jsp</value>
+    	</init-param>
+        <supports>
+            <mime-type>text/html</mime-type>
+            <portlet-mode>VIEW</portlet-mode>
+        </supports>
+        <portlet-info>
+            <title>Kosmos Svn Revision Details Portlet</title>
+        </portlet-info>
+    </portlet>
      
 </portlet-app>




More information about the jboss-svn-commits mailing list