[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