[jboss-svn-commits] JBL Code SVN: r6098 - in labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status: plugins plugins/cc plugins/jira plugins/svn tools

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 6 12:27:50 EDT 2006


Author: wrzep
Date: 2006-09-06 12:27:43 -0400 (Wed, 06 Sep 2006)
New Revision: 6098

Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/KosmosStatusPlugin.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/cc/CcStatusPlugin.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/cc/ErrorsStatusPlugin.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/jira/JiraStatusPlugin.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/svn/SvnStatusPlugin.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tools.java
Log:
JBLAB-599
Multiple CruiseControl adresses for one project.

Pawel


Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/KosmosStatusPlugin.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/KosmosStatusPlugin.java	2006-09-06 15:20:44 UTC (rev 6097)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/KosmosStatusPlugin.java	2006-09-06 16:27:43 UTC (rev 6098)
@@ -30,6 +30,7 @@
 import org.jboss.logging.Logger;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
@@ -48,7 +49,7 @@
 	/**
 	 * Binds project ids with kosmos-service specyfic Maps.
 	 */
-	private Map<String,Object> projectServices;
+	private Map<String,List> projectServices;
 	
 	/**
 	 * Kosmos service adress.
@@ -61,7 +62,7 @@
 		super();
 		
 		log = Logger.getLogger(this.getClass());
-		projectServices = new HashMap<String,Object>();
+		projectServices = new HashMap<String,List>();
 	}
 	
 	@Override
@@ -97,7 +98,7 @@
 	}
 
 	/**
-	 * For the given service specyfic Map, computes plugin specyfic value.
+	 * For the given service specyfic Maps, computes plugin specyfic value.
 	 * 
 	 * @param projectMap service specyfic Map
 	 * @return Plugin value
@@ -111,13 +112,12 @@
 	protected abstract int getPluginSpecyficDefaultValue();
 	
 	/**
-	 * Returns service specyfic Map for the project,
-	 * which is equals given <code>projectId</code>
+	 * Returns service specyfic Maps for the given project.
 	 * 
 	 * @param projectId
 	 * @return service specyfic Map
 	 */
-	protected abstract Object getProjectService(String projectId);
+	protected abstract List getProjectServices(String projectId);
 	
 	/* (non-Javadoc)
 	 * @see org.jboss.forge.status.Plugin#getValue(java.lang.String)
@@ -126,15 +126,22 @@
 	public long getValue(String projectId) {
 		
 		if (!projectServices.containsKey(projectId)) {
-			projectServices.put(projectId, getProjectService(projectId));
+			projectServices.put(projectId, getProjectServices(projectId));
 		}
 		
-		Object projectService = projectServices.get(projectId);
+		List projectServicesList = projectServices.get(projectId);
 		
-		if (projectService == null) {
+		if (projectServicesList == null) {
 			return getPluginSpecyficDefaultValue();
 		}
 		
-		return getPluginSpecyficValue(projectService);
+		long value = 0;
+		
+		for (Object projectService : projectServicesList) {
+		
+			value += getPluginSpecyficValue(projectService);
+		}
+		
+		return value;
 	}
 }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/cc/CcStatusPlugin.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/cc/CcStatusPlugin.java	2006-09-06 15:20:44 UTC (rev 6097)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/cc/CcStatusPlugin.java	2006-09-06 16:27:43 UTC (rev 6098)
@@ -22,11 +22,13 @@
 
 package org.jboss.forge.status.plugins.cc;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.net.MalformedURLException;
 
 import org.jboss.forge.status.common.Tags;
 import org.jboss.forge.status.plugins.KosmosStatusPlugin;
+import org.jboss.forge.status.tools.Tools;
 import org.jboss.logging.Logger;
 
 import com.caucho.hessian.client.HessianProxyFactory;
@@ -57,17 +59,15 @@
 	}
 	
 	@Override
-	protected CcProject getProjectService(String projectId) {
+	protected List<CcProject> getProjectServices(String projectId) {
 		
-		// Get project cc URL
-	    String ccURL = getCcURL(projectId);
+		// Get project cc URLs
+	    List<String> ccURLs = getCcURLs(projectId);
 		
-	    if (ccURL == null) {
+	    if ((ccURLs == null) || (ccURLs.isEmpty())) {
 	    	return null;
 		}
 		
-		CcProject ccProject = null;
-		
 		// Connect to the kosmos service
 		HessianProxyFactory factory = new HessianProxyFactory();
 		CcService service;
@@ -79,31 +79,39 @@
 			return null;
 		}
 		    
-		// Get map with the cc statistics
-		List<CcProject> stats = null;
-		try {
-			stats = service.getProjects(ccURL);
-		} catch (Exception e) {
-			log.error("Can not analyze cc: " + ccURL, e);
-			return null;
-		}
+
+		List<CcProject> stats = new ArrayList<CcProject>();
 		
-		if ((stats != null) && (stats.size() > 0)) {
-			ccProject = stats.get(0);
+		for (String ccURL : ccURLs) {
+		
+			//	Get map with the cc statistics
+			try {
+				stats.addAll(service.getProjects(ccURL));
+			} catch (Exception e) {
+				log.warn("Can not analyze cc: " + ccURL, e);
+			}
 		}
 		
-		return ccProject;
+		return (stats.isEmpty() ? null : stats);
 	}
 
 
-	private String getCcURL(String projectId) {
-		String ccURL = projects.getProjectProperty(projectId, Tags.CC_ADRESS_TAG);
-		return (ccURL == "" ? null : ccURL);
+	private List<String> getCcURLs(String projectId) {
+		
+		String ccURLsString =
+				projects.getProjectProperty(projectId, Tags.CC_ADRESS_TAG);
+		
+		if (ccURLsString == "") {
+			return null; 
+		}
+	
+		return Tools.getCommaSeparatedStrings(ccURLsString);
 	}
 	
 	@Override
 	public String getLink(String projectId) {
-		return getCcURL(projectId);
+		
+		return getCcURLs(projectId).get(0);
 	}
 
 	@Override

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/cc/ErrorsStatusPlugin.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/cc/ErrorsStatusPlugin.java	2006-09-06 15:20:44 UTC (rev 6097)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/cc/ErrorsStatusPlugin.java	2006-09-06 16:27:43 UTC (rev 6098)
@@ -33,6 +33,7 @@
 
 	@Override
 	protected int getPluginSpecyficValue(Object ccProject) {
+		
 		CcProject ccPrj = (CcProject) ccProject;
 		return ccPrj.getErrors();
 	}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/jira/JiraStatusPlugin.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/jira/JiraStatusPlugin.java	2006-09-06 15:20:44 UTC (rev 6097)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/jira/JiraStatusPlugin.java	2006-09-06 16:27:43 UTC (rev 6098)
@@ -57,7 +57,8 @@
 	}
 
 	@Override
-	protected JiraProject getProjectService(String projectId) {
+	protected List<JiraProject> getProjectServices(String projectId) {
+		
 		// Get project jira URL
 	    String jiraURL = getJiraURL(projectId);
 		
@@ -65,8 +66,6 @@
 	    	return null;
 		}
 		
-		JiraProject jiraProject = null;
-		
 		// Connect to kosmos service
 		HessianProxyFactory factory = new HessianProxyFactory();
 		JiraService service;
@@ -87,11 +86,7 @@
 			return null;
 		}
 		
-		if ((projects != null) && (projects.size() > 0)) {
-			jiraProject = projects.get(0);
-		}
-		
-		return jiraProject;
+		return projects;
 	}
 
 

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/svn/SvnStatusPlugin.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/svn/SvnStatusPlugin.java	2006-09-06 15:20:44 UTC (rev 6097)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/svn/SvnStatusPlugin.java	2006-09-06 16:27:43 UTC (rev 6098)
@@ -57,7 +57,7 @@
 	}
 		
 	@Override
-	protected SvnRepository getProjectService(String projectId) {
+	protected List<SvnRepository> getProjectServices(String projectId) {
 
 		// Get project repository URL
 	    String repoURL = getRepoURL(projectId);
@@ -66,8 +66,6 @@
 	    		return null;
 		}
 		
-		SvnRepository repository = null;
-		
 		// Connect to kosmos service
 		HessianProxyFactory factory = new HessianProxyFactory();
 		SvnService service;
@@ -89,11 +87,7 @@
 			return null;
 		}
 		
-		if ((repositories != null) && (repositories.size() > 0)) {
-			repository = repositories.get(0);
-		}
-		
-		return repository;
+		return repositories;
 	}
 	
 	

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tools.java	2006-09-06 15:20:44 UTC (rev 6097)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tools.java	2006-09-06 16:27:43 UTC (rev 6098)
@@ -1,6 +1,9 @@
 package org.jboss.forge.status.tools;
 
+import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.List;
+import java.util.StringTokenizer;
 
 import org.jboss.forge.status.StatusDescriptor;
 import org.jboss.forge.status.StatusConfWatcher;
@@ -28,5 +31,18 @@
 		cal.set(Calendar.SECOND, 0);
 		cal.set(Calendar.MILLISECOND, 0);
 		
+	}
+
+	public static List<String> getCommaSeparatedStrings(String s) {
+
+		List<String> list = new ArrayList<String>();
+        
+        StringTokenizer tokenizer = new StringTokenizer(s, ",");
+        
+        while(tokenizer.hasMoreTokens()) {
+            list.add(tokenizer.nextToken().trim());
+        }
+        
+        return list;
 	}	
 }




More information about the jboss-svn-commits mailing list