From: <jbo...@li...> - 2005-12-07 23:30:53
|
Author: wrzep Date: 2005-12-07 18:30:47 -0500 (Wed, 07 Dec 2005) New Revision: 1734 Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/jira/JiraStatusPlugin.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/svn/SvnStatusPlugin.java Log: slight changes after creating common subclass for plugins using kosmos service http://jira.jboss.com/jira/browse/JBLAB-415 Pawel Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/jira/JiraStatusPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/jira/JiraStatusPlugin.java 2005-12-07 22:54:08 UTC (rev 1733) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/jira/JiraStatusPlugin.java 2005-12-07 23:30:47 UTC (rev 1734) @@ -22,14 +22,12 @@ package org.jboss.forge.status.plugins.jira; -import java.util.HashMap; -import java.util.Iterator; +import java.net.MalformedURLException; import java.util.List; import java.util.Map; -import org.jboss.forge.common.projects.Projects; -import org.jboss.forge.status.plugins.InvalidPluginPropertiesException; -import org.jboss.forge.status.plugins.StatusPlugin; +import org.jboss.forge.status.KosmosStatusPlugin; +import org.jboss.logging.Logger; import com.caucho.hessian.client.HessianProxyFactory; @@ -39,87 +37,61 @@ * @author Pawel Wrzeszcz */ -public abstract class JiraStatusPlugin extends StatusPlugin { +public abstract class JiraStatusPlugin extends KosmosStatusPlugin { private static final String JIRA_SERVICE_PROPERTY = "jira-service"; + private static final String JIRA_ADRESS_TAG = "jira-adress"; - private Map<String,Map> projectsMaps; + protected String getKosmosServiceProperty() { return JIRA_SERVICE_PROPERTY;}; - private String serviceURL; + protected Logger log; public JiraStatusPlugin() { super(); - projectsMaps = new HashMap<String,Map>(); + log = Logger.getLogger(this.getClass()); } - public void init(String name, String id, Projects projects, Map<String,String> properties) throws InvalidPluginPropertiesException { - super.init(name, id, projects,properties); + + protected Map getProjectMap(String projectId) { + // Get project jira URL + String jiraURL = getJiraURL(projectId); - getProperties(properties); - - } - private void getProperties(Map<String, String> properties) throws InvalidPluginPropertiesException { - if (properties == null) { - throw new InvalidPluginPropertiesException("Missing properties for " + getName() + " plugin."); + if (jiraURL == null) { + return null; } - - serviceURL = properties.get(JIRA_SERVICE_PROPERTY); - if (serviceURL == null) { - throw new InvalidPluginPropertiesException( - "Missing " + JIRA_SERVICE_PROPERTY + " property for " + getName() + " plugin."); - } - } - - protected abstract int getPluginSpecyficValue(Map projectMap); - protected abstract int getPluginSpecyficDefaultValue(); - - protected Map getJiraProject(String projectId) { - //Get the projects from kosmo server - - List jiraProjects = null; + Map jiraMap = null; - JiraService service = null; - + // Connect to kosmos service HessianProxyFactory factory = new HessianProxyFactory(); - + JiraService service; + try { - service = (JiraService) factory.create(JiraService.class, serviceURL); - - if (service != null) { - System.out.println("KOSMOS service: " + service.toString()); - } else { - System.out.println("KOSMOS service == null"); - } + service = (JiraService) factory.create(JiraService.class, serviceURL); + } catch (MalformedURLException e) { + log.error("Can not connect to kosmos jira service: " + serviceURL); + return null; + } - jiraProjects = service.getProjects("http://jira.jboss.com/jira/browse/JBLAB"); - - System.out.println("class: " + service.getProjects("http://jira.jboss.com/jira/browse/JBLAB").getClass()); - + // Get map with jira statistics + List repositories = null; + try { + repositories = service.getProjects(jiraURL); } catch (Exception e) { - e.printStackTrace(); + log.error("Can not analyze jira: " + jiraURL, e); + return null; } - - Map jiraMap = (Map) jiraProjects.get(0); + jiraMap = (Map) repositories.get(0); + return jiraMap; } - - public int getValue(String projectId) { - - if (!projectsMaps.containsKey(projectId)) { - projectsMaps.put(projectId, getJiraProject(projectId)); - } - - Map projectMap = projectsMaps.get(projectId); - - if (projectMap == null) { - return getPluginSpecyficDefaultValue(); - } - - return getPluginSpecyficValue(projectMap); + + private String getJiraURL(String projectId) { + String jiraURL = projects.getProjectProperty(projectId, JIRA_ADRESS_TAG); + return (jiraURL == "" ? null : jiraURL); } } Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/svn/SvnStatusPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/svn/SvnStatusPlugin.java 2005-12-07 22:54:08 UTC (rev 1733) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/svn/SvnStatusPlugin.java 2005-12-07 23:30:47 UTC (rev 1734) @@ -40,6 +40,7 @@ public abstract class SvnStatusPlugin extends KosmosStatusPlugin { private static final String SVN_SERVICE_PROPERTY = "svn-service"; + private static final String SVN_REPO_ADRESS_TAG = "svn-repo"; protected String getKosmosServiceProperty() { return SVN_SERVICE_PROPERTY;}; @@ -73,7 +74,7 @@ return null; } - // Get repository map + // Get map with repository statistics List repositories = null; try { repositories = service.getRepositories(repoURL); @@ -88,7 +89,7 @@ } private String getRepoURL(String projectId) { - String repoURL = projects.getProjectProperty(projectId, "svn-repo"); + String repoURL = projects.getProjectProperty(projectId, SVN_REPO_ADRESS_TAG); return (repoURL == "" ? null : repoURL); } |