[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