From: <jbo...@li...> - 2005-11-24 12:35:27
|
Author: wrzep Date: 2005-11-24 07:35:24 -0500 (Thu, 24 Nov 2005) New Revision: 1639 Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/CommitsTotalStatusPlugin.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/SvnStatusPlugin.java Log: more flexible class for svn plugins http://jira.jboss.com/jira/browse/JBLAB-415 Pawel Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/CommitsTotalStatusPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/CommitsTotalStatusPlugin.java 2005-11-24 11:49:00 UTC (rev 1638) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/CommitsTotalStatusPlugin.java 2005-11-24 12:35:24 UTC (rev 1639) @@ -23,8 +23,6 @@ package org.jboss.forge.status.plugins; import java.util.Map; -import java.util.HashMap; - import org.jboss.forge.common.projects.Projects; /** @@ -35,31 +33,22 @@ protected static String PLUGIN_NAME = "Commits total"; protected static String PLUGIN_ID = "commitstotal"; - - private Map<String,Map> projectsMaps; public String getId() { return PLUGIN_ID; } public String getName() { return PLUGIN_NAME; } public CommitsTotalStatusPlugin(Projects projects) { super(projects); - projectsMaps = new HashMap<String,Map>(); } - - public int getValue(String projectId) { - - if (!projectsMaps.containsKey(projectId)) { - projectsMaps.put(projectId, getProjectMap(projectId)); - } - - Map projectMap = projectsMaps.get(projectId); - - //System.out.println("commits class " + projectMap.get("commitsTotal").getClass()); - return ((Integer)projectMap.get("commitsTotal")).intValue(); + @Override + protected int getPluginSpecyficValue(Map projectMap) { + Integer commitsTotal = (Integer) projectMap.get("commitsTotal"); + return commitsTotal.intValue(); } - private Map getProjectMap(String projectId) { - return getSvnRepository(projectId); + @Override + protected int getPluginSpecyficDefaultValue() { + return 0; } } \ No newline at end of file Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/SvnStatusPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/SvnStatusPlugin.java 2005-11-24 11:49:00 UTC (rev 1638) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/SvnStatusPlugin.java 2005-11-24 12:35:24 UTC (rev 1639) @@ -22,11 +22,14 @@ package org.jboss.forge.status.plugins; +import java.net.MalformedURLException; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.jboss.forge.common.projects.Projects; +import org.jboss.logging.Logger; import com.caucho.hessian.client.HessianProxyFactory; @@ -39,51 +42,89 @@ public abstract class SvnStatusPlugin extends StatusPlugin { + private Map<String,Map> projectsMaps; + + private Logger log; + + private final static String KOSMOS_SVN_SERVICE_URL = + "http://localhost:8080/kosmos-server/kosmos-services/svn-service"; + //TODO shoud be parameter in xml config file + public SvnStatusPlugin(Projects projects) { super(projects); + + projectsMaps = new HashMap<String,Map>(); + log = Logger.getLogger(this.getClass()); } + protected abstract int getPluginSpecyficValue(Map projectMap); + protected abstract int getPluginSpecyficDefaultValue(); + protected Map getSvnRepository(String projectId) { + + // Get project repository URL + String repoURL = getRepoURL(projectId); + System.out.println("repo for project " + projectId + " " + repoURL); - SvnService service = null; + if (repoURL == null) { + return null; + } + + Map repositoryMap = null; + + // Connect to kosmos service HessianProxyFactory factory = new HessianProxyFactory(); - String serviceUrl = "http://localhost:8080/kosmos-server/kosmos-services/svn-service"; + SvnService service; - Map m = null; - try { - - service = (SvnService) factory.create(SvnService.class, serviceUrl); - - String repoURL = getRepoURL(projectId); - System.out.println("repo for project " + projectId + " " + repoURL); + service = (SvnService) factory.create(SvnService.class, + KOSMOS_SVN_SERVICE_URL); + } catch (MalformedURLException e) { + log.error("Can not connect to kosmos svn service: " + KOSMOS_SVN_SERVICE_URL); + return null; + } - if (repoURL == null) { - repoURL = "http://anonsvn.labs.jboss.com/trunk/labs/demo"; //DEBUG - } - - List repositories = service.getRepositories(repoURL); + // Get repository map + List repositories = service.getRepositories(repoURL); - m = (Map) repositories.get(0); - if (m != null) { - - for (Iterator iter = m.keySet().iterator(); iter.hasNext();) { - Object obj = (Object) iter.next(); - //System.out.println("object: " + obj + " binding: " + m.get(obj)); - } + repositoryMap = (Map) repositories.get(0); + printRepo(repositoryMap); + + return repositoryMap; + } + + private void printRepo(Map repositoryMap) { //debug + if (repositoryMap != null) { + + for (Iterator iter = repositoryMap.keySet().iterator(); iter.hasNext();) { + Object obj = (Object) iter.next(); + System.out.println("object: " + obj + " binding: " + repositoryMap.get(obj)); } + } + } - } catch (Exception e) { - e.printStackTrace(); + public int getValue(String projectId) { + + if (!projectsMaps.containsKey(projectId)) { + projectsMaps.put(projectId, getProjectMap(projectId)); } - - return m; + + Map projectMap = projectsMaps.get(projectId); + + if (projectMap == null) { + return getPluginSpecyficDefaultValue(); + } + + return getPluginSpecyficValue(projectMap); } - private String getRepoURL(String projectId) { String repoURL = projects.getProjectProperty(projectId, "svn-repo"); return (repoURL == "" ? null : repoURL); } + private Map getProjectMap(String projectId) { + return getSvnRepository(projectId); + } + } |